linux - appname: /lib/libc.so.6: version `GLIBC_2.8' not found (required by appname) -


ldd -v appname

linux-gate.so.1 =>  (0x00949000) libpthread.so.0 => /lib/libpthread.so.0 (0x00cea000) libm.so.6 => /lib/libm.so.6 (0x00a83000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00ba1000) libc.so.6 => /lib/libc.so.6 (0x0015c000) /lib/ld-linux.so.2 (0x0012f000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b93000)  version information: appname:     libm.so.6 (glibc_2.0) => /lib/libm.so.6     libc.so.6 (glibc_2.8) => not found     libc.so.6 (glibc_2.2) => /lib/libc.so.6     libc.so.6 (glibc_2.3.2) => /lib/libc.so.6     libc.so.6 (glibc_2.7) => not found     libc.so.6 (glibc_2.4) => /lib/libc.so.6     libc.so.6 (glibc_private) => /lib/libc.so.6     libc.so.6 (glibc_2.1) => /lib/libc.so.6     libc.so.6 (glibc_2.1.3) => /lib/libc.so.6     libc.so.6 (glibc_2.2.4) => /lib/libc.so.6     libc.so.6 (glibc_2.3) => /lib/libc.so.6     libc.so.6 (glibc_2.0) => /lib/libc.so.6     libstdc++.so.6 (cxxabi_1.3) => /usr/lib/libstdc++.so.6     libstdc++.so.6 (glibcxx_3.4.5) => /usr/lib/libstdc++.so.6     libstdc++.so.6 (glibcxx_3.4) => /usr/lib/libstdc++.so.6     libpthread.so.0 (glibc_2.2) => /lib/libpthread.so.0     libpthread.so.0 (glibc_2.1) => /lib/libpthread.so.0     libpthread.so.0 (glibc_2.0) => /lib/libpthread.so.0     libpthread.so.0 (glibc_2.3.2) => /lib/libpthread.so.0 /lib/libpthread.so.0:     ld-linux.so.2 (glibc_2.3) => /lib/ld-linux.so.2     ld-linux.so.2 (glibc_2.1) => /lib/ld-linux.so.2     ld-linux.so.2 (glibc_private) => /lib/ld-linux.so.2     libc.so.6 (glibc_2.1.3) => /lib/libc.so.6     libc.so.6 (glibc_2.1) => /lib/libc.so.6     libc.so.6 (glibc_2.3.2) => /lib/libc.so.6     libc.so.6 (glibc_2.2) => /lib/libc.so.6     libc.so.6 (glibc_private) => /lib/libc.so.6     libc.so.6 (glibc_2.0) => /lib/libc.so.6 /lib/libm.so.6:     ld-linux.so.2 (glibc_private) => /lib/ld-linux.so.2     libc.so.6 (glibc_2.1.3) => /lib/libc.so.6     libc.so.6 (glibc_2.0) => /lib/libc.so.6 /usr/lib/libstdc++.so.6:     ld-linux.so.2 (glibc_2.3) => /lib/ld-linux.so.2     libgcc_s.so.1 (gcc_4.2.0) => /lib/libgcc_s.so.1     libgcc_s.so.1 (glibc_2.0) => /lib/libgcc_s.so.1     libgcc_s.so.1 (gcc_3.3) => /lib/libgcc_s.so.1     libgcc_s.so.1 (gcc_3.0) => /lib/libgcc_s.so.1     libc.so.6 (glibc_2.3.2) => /lib/libc.so.6     libc.so.6 (glibc_2.4) => /lib/libc.so.6     libc.so.6 (glibc_2.1) => /lib/libc.so.6     libc.so.6 (glibc_2.3) => /lib/libc.so.6     libc.so.6 (glibc_2.1.3) => /lib/libc.so.6     libc.so.6 (glibc_2.0) => /lib/libc.so.6     libc.so.6 (glibc_2.2) => /lib/libc.so.6 /lib/libc.so.6:     ld-linux.so.2 (glibc_private) => /lib/ld-linux.so.2     ld-linux.so.2 (glibc_2.3) => /lib/ld-linux.so.2     ld-linux.so.2 (glibc_2.1) => /lib/ld-linux.so.2 /lib/libgcc_s.so.1:     libc.so.6 (glibc_2.1.3) => /lib/libc.so.6     libc.so.6 (glibc_2.2.4) => /lib/libc.so.6     libc.so.6 (glibc_2.4) => /lib/libc.so.6     libc.so.6 (glibc_2.0) => /lib/libc.so.6 

appname compiled on ubuntu 9.10, trying run compiled product on centos 5.

my guess centos5's /lib/libc.so.5 provides version glibc_2.4, appname calls glibc_2.8.

but here's funny thing. problem didn't happen until started linking boost's system library. before boost's thread library, need both thread , system. did compile boost on ubuntu system. i'm going try compile boost on centos, , bring on generated .a files. i'm linking boost .a files btw.

question, how reduce these types of headaches versioning? use tricks setting chroot environment lower library versions, in you'd compile product? clearly, compiling on newer linux distro makes product incompatible slightest older version of linux. how people ship binaries decent compatibility? yes, can static linking, libc can not statically linked correct?

using chroot environment 1 way of doing it, don't need work. can set older, reference version of sdk (including libc , others) somewhere, , force gcc link against rather libraries , headers in standard system directories. gcc options are: -isystem, -isysroot , --sysroot.

as example, apple's gcc often, linking various sdk versions depending os version you're targeting.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -