help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libtool installs a "T" version of shared library, with wrong LIBADD met


From: Andy Buckley
Subject: libtool installs a "T" version of shared library, with wrong LIBADD metadata
Date: Fri, 10 Oct 2008 09:51:04 -0700 (PDT)
User-agent: G2/1.0

Hi,

I've got a library, libLHAPDF.so, which is accessed by a SWIG Python
wrapper, implemented as a libtool library module, _lhapdf.so. In order
to work, _lhapdf.so needs to open the main LHAPDF library to get the
function definitions, so my Makefile.am for the SWIG wrapper contains
the line

_lhapdf_la_LIBADD = $(top_builddir)/lib/libLHAPDF.la

which on my system puts a nice NEEDED section into the .so:

buckley@d18:~/proj/hep/lhapdf$ objdump -p pyext/.libs/_lhapdf.so
[...]
Dynamic Section:
  NEEDED      libLHAPDF.so.0
  NEEDED      libstdc++.so.6
[...]

And all is well. However, on another developer's machine, the NEEDED
reference to libLHAPDF.so.0 is present in the build directory, but
missing in the installed library. The result is that the Python import
of the "lhapdf" module fails due to undefined symbols. After a bit of
investigation I noticed that libtool is actually creating a secondary
"T" version of the library:

whalley@h3:~/proj/lhapdf/pyext$ ls -l .libs/_*
-rw-r--r-- 1 whalley nisusers 1705640 2008-10-10 17:06 .libs/_lhapdf.a
lrwxrwxrwx 1 whalley nisusers      13 2008-10-10 17:06 .libs/
_lhapdf.la -> ../_lhapdf.la
-rw-r--r-- 1 whalley nisusers     976 2008-10-10 17:06 .libs/
_lhapdf.lai
-rw-r--r-- 1 whalley nisusers 1689040 2008-10-10 17:06 .libs/
_lhapdf_la-lhapdf_wrap.o
lrwxrwxrwx 1 whalley nisusers      16 2008-10-10 17:06 .libs/
_lhapdf.so -> _lhapdf.so.0.0.0
lrwxrwxrwx 1 whalley nisusers      16 2008-10-10 17:06 .libs/
_lhapdf.so.0 -> _lhapdf.so.0.0.0
-rwxr-xr-x 1 whalley nisusers 1090000 2008-10-10 17:06 .libs/
_lhapdf.so.0.0.0
-rwxr-xr-x 1 whalley nisusers 1090000 2008-10-10 17:43 .libs/
_lhapdf.so.0.0.0T

(note the timestamp on .libs/_lhapdf.so.0.0.0T ... I tried deleting it
and it was automatically rebuilt) This version is missing the library
chaining NEEDED entry for libLHAPDF and is the one that's installed,
since this appears in the build log:

/usr/bin/install -c .libs/_lhapdf.so.0.0.0T /scratch/local/lib/
python2.5/site-packages/_lhapdf.so.0.0.0

Can anyone help? I can't find anything useful on the Web or in the
libtool documentation about these "T" suffixes, and it's currently
blocking release of the library!

Best wishes,
Andy


reply via email to

[Prev in Thread] Current Thread [Next in Thread]