On 09/08/12 14:28, Luc Bourhis wrote:
On 9 Aug 2012, at 12:53, Radostan Riedel wrote:
On Thu, 09. Aug 03:35, Luc Bourhis wrote:
But in gcc4.7 libsctbx_boost_python should be linked by python lib otherwise I'm getting undefined references.
Could you elaborate? As that sounds like a bug we should fix. OK here the output: dpkg-shlibdeps -Tdebian/libscitbx-boost-python0.substvars debian/libscitbx-boost-python0/usr/lib/x86_64-linux-gnu/libscitbx_boost_python-py26.so.0.0.0 debian/libscitbx-boost-python0/usr/lib/x86_64-linux-gnu/libscitbx_boost_python-py27.so.0.0.0 dpkg-shlibdeps: warning: symbol PyImport_ImportModule used by debian/libscitbx-boost-python0/usr/lib/x86_64-linux-gnu/libscitbx_boost_python-py27.so.0.0.0 found in none of the libraries [...] I don't see this in gcc4.6.
When something is linked to libscitbx_boost_python, it is always linked to libboost_python as well, which in turn is linked to libpythonx.y.so. Thus I would argue that dpkg-shlibdeps warnings are irrelevant. I mean, scitbx scripts run fine after compiling with gcc 4.7, don't they? Last time I tried I had no issue. If on the contrary, you get a crash running such a script, then definitively we need to investigate.
When using gold linker (which has a strong underlinking detection) and most probably when using -Wl,--as-needed the linker will stop with an error here. With this, the warning is not irrelevant and the issue needs a fix. Mostly everything except some runtime loaded plugins should be linked against all depending libraries. For further readings I can point you to the blog of one of our QA devs http://blog.flameeyes.eu/tag/linker http://blog.flameeyes.eu/tag/gold http://blog.flameeyes.eu/tag/asneeded Thanks, justin