Comment 15 for bug 922199

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Good to know :)

I did a little more trial-and-error investigation into this last night, since I was suspecting a linker bug might be at hand here (as it makes no sense that static libraries linked into a shared library which is linked to a binary which dlopens other libraries should cause multiple copies of the static data in the shared library to appear in the libraries).

/usr/bin/c++ -fPIC -fPIC -Wall -Wno-deprecated-declarations -Werror -fPIC -Wall -Wno-deprecated-declarations -Werror -fPIC -Wall -Wno-deprecated-declarations -Werror -fPIC -Wall -Wno-deprecated-declarations -Werror -fPIC -Wall -Wno-deprecated-declarations -Werror -O2 -g -DQT_NO_DEBUG -Wl,-Bsymbolic-functions -shared -Wl,-soname,libdecor.so -o libdecor.so CMakeFiles/decor.dir/src/decor.cpp.o CMakeFiles/decor.dir/__/__/generated/decor_options.cpp.o -L/home/smspillaz/Applications/Compiz/lib/compiz -L/home/smspillaz/Applications/Compiz/lib -lXdamage -lXfixes -lXcomposite -lX11-xcb -lX11 -lxcb -lXrandr -lXinerama -lXext -lICE -lSM -lxslt -lxml2 -lgio-2.0 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0 -lstartup-notification-1 -lboost_serialization-mt -lboost_serialization-mt -lboost_serialization-mt ../composite/libcomposite.so ../opengl/libopengl.so ../../libdecoration/libdecoration.so.0.0.0 ../composite/libcomposite.so -lXdamage -lXfixes -lXcomposite -lX11-xcb -lxcb -lXrandr -lXinerama -lXext -lICE -lSM -lxslt -lxml2 -lgio-2.0 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lglib-2.0 -lstartup-notification-1 -lboost_serialization-mt -lGL -lXrender -lX11 -lm -Wl,-rpath,::::::::::::::::::::::::::::::::::::::::::::::
make[2]: Leaving directory `/media/d1dddb1a-729f-40ef-9725-dc2a9ad56031/smspillaz/Source/Compiz/dev/dev/merges/compiz/core/compiz-core/build'

Would seem to indicate that those dependencies aren't being pulled in.

Incidentally, if I create another shared library built from some other static libraries, this bug doesn't happen anymore. No idea why.