Search code examples
c++gccdebianglibc

Upgraded to Debian 7.5; now 'memcpy@GLIBC_2.14' is undefined


A week ago I could compile and link my project (C++) with no issues. However, after doing a sudo apt-get dist-upgrade earlier this week, I can no longer link my program.

The error I get is like so:

Compiling CEF Client
scons: Reading SConscript files ...
Compiling cef_client
Build type: release-with-debug
scons: done reading SConscript files.
scons: Building targets ...
Compiling ==> 'AttributeBinding.cpp'
Compiling ==> 'ClientApp.cpp'
Compiling ==> 'DuplicateAttributeException.cpp'
Compiling ==> 'DuplicateFunctionException.cpp'
Compiling ==> 'FunctionBinding.cpp'
Compiling ==> 'Main.cpp'
Compiling ==> 'ObjectBinding.cpp'
Compiling ==> 'Logger.cpp'
Linking program ==> 'cef3_client'
/home/jarrett/projects/icebreakers/glr/deps/boost/lib/libboost_log.so: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status
scons: *** [build/cef3_client] Error 1
scons: building terminated because of errors.

Thing is, I built the boost log library on this same machine, and it worked fine until I did a dist-upgrade.

I had several other problems with include files before this, and I fixed it by reinstalling gcc-4.7 and gcc-4.7-base. I tried reinstalling libc as well, with: sudo aptitude reinstall libc6 libc6-dbg libc6-dev, but it didn't fix anything.

I also tried reinstalling a whole slew of packages that had glib in the name:

sudo aptitude reinstall gir1.2-glib-2.0 gir1.2-telepathyglib-0.12 gir1.2-upowerglib-1.0 glib-networking glib-networking-common glib-networking-services libavahi-glib1 libcglib-java libdbus-glib-1-2 libdbus-glib-1-dev libdbus-glib1.0-cil libgeocode-glib0 libghc-glib-dev libglib-perl libglib2.0-0 libglib2.0-bin libglib2.0-cil libglib2.0-cil-dev libglib2.0-data libglib2.0-dev libglibmm-2.4-1c2a libglibmm-2.4-dev libjson-glib-1.0-0 libnm-glib-vpn1 libnm-glib4 libpackagekit-glib2-14 libpoppler-glib8 libpulse-mainloop-glib0 libsofia-sip-ua-glib3 libtelepathy-glib0 libupower-glib1

I also tried reinstalling build-essentials, gcc, and g++, to no effect.

Anyone have any ideas what is going on here?


Solution

  • You need to recompile the Boost log library against the upgraded glibc. The .so file you have now was compiled against a previous version.