[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
libtool relinks against system libraries during make DESTDIR=... install
From: |
Peter Volkov |
Subject: |
libtool relinks against system libraries during make DESTDIR=... install |
Date: |
Mon, 20 Jun 2011 17:55:42 +0400 |
Hi. I'm looking for suggestion how to fix following issue:
I'm building wireshark-1.6.0 package which contains (among others)
following libraries:
wsutil/libwsutil.la (dlname='libwsutil.so.1')
wiretap/libwiretap.la
wiretap/Makefile.am has following lines to link with libwsutil.la:
libwiretap_la_LIBADD = libwiretap_generated.la
${top_builddir}/wsutil/libwsutil.la $(GLIB_LIBS)
libwiretap_la_DEPENDENCIES = libwiretap_generated.la
${top_builddir}/wsutil/libwsutil.la wtap.sym
At the same time my system has wireshark-1.4.7 installed and it also
have both libs, but with different versions - for this question it's
important that I have libwsutil.so.0 installed in my system. Now if try
to do staged install for libwiretap like this:
$ cd wsutil/ && make DESTDIR=/tmp/test install
$ cd ../wiretap && make DESTDIR=/tmp/test install
libtool relinks libwiretap.so against _system_ libwsutil.so:
make[1]: Entering directory
`/var/tmp/portage/net-analyzer/wireshark-1.6.0/work/wireshark-1.6.0/wiretap'
test -z "/usr/lib64" || mkdir -p -- "/tmp/test/usr/lib64"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'libwiretap.la'
'/tmp/test/usr/lib64/libwiretap.la'
libtool: install: warning: relinking `libwiretap.la'
libtool: install: (cd
/var/tmp/portage/net-analyzer/wireshark-1.6.0/work/wireshark-1.6.0/wiretap;
/bin/sh
/var/tmp/portage/net-analyzer/wireshark-1.6.0/work/wireshark-1.6.0/libtool
--tag CC --mode=relink x86_64-pc-linux-gnu-gcc -DINET6
"-D_U_=__attribute__((unused))" -O2 -pipe -march=k8 -mtune=k8 -ggdb -Wall -W
-Wextra -Wdeclaration-after-statement -Wendif-labels -Wpointer-arith
-Wno-pointer-sign -Warray-bounds -Wcast-align -Wformat-security
-fexcess-precision=fast -I/usr/include -I/usr/local/include -pthread
-I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm
-I/usr/include -Wl,--as-needed,--hash-style=gnu -Wl,--as-needed -L/usr/lib
-L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -o libwiretap.la -rpath
/usr/lib64 -version-info 1:0:0 -export-symbols wtap.sym [cutted many .lo files]
libwiretap_la-wtap.lo libwiretap_generated.la ../wsutil/libwsutil.la -pthread
-Wl,--export-dynamic -lgthread-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lz
-inst-prefix-dir /tmp/test)
libtool: relink: warning: `/usr/lib/libgthread-2.0.la' seems to be moved
libtool: relink: warning: `/usr/lib/libgmodule-2.0.la' seems to be moved
libtool: relink: warning: `/usr/lib/libglib-2.0.la' seems to be moved
libtool: relink: echo "{ global:" > .libs/libwiretap.ver
libtool: relink: cat wtap.sym | sed -e "s/\(.*\)/\1;/" >> .libs/libwiretap.ver
libtool: relink: echo "local: *; };" >> .libs/libwiretap.ver
libtool: relink: x86_64-pc-linux-gnu-gcc -shared -fPIC -DPIC [cutted many .o
files] .libs/libwiretap_la-wtap.o -Wl,--whole-archive
./.libs/libwiretap_generated.a -Wl,--no-whole-archive -L/usr/lib
-L/usr/local/lib -L/tmp/test/usr/lib64 -L/usr/lib64 -lwsutil -lgthread-2.0
-lpthread -lgmodule-2.0 -ldl -lglib-2.0 -lrt -lz -O2 -march=k8 -mtune=k8
-pthread -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--as-needed -pthread
-Wl,--export-dynamic -pthread -Wl,-soname -Wl,libwiretap.so.1
-Wl,-version-script -Wl,.libs/libwiretap.ver -o .libs/libwiretap.so.1.0.0
libtool: install: /usr/bin/install -c .libs/libwiretap.so.1.0.0T
/tmp/test/usr/lib64/libwiretap.so.1.0.0
libtool: install: (cd /tmp/test/usr/lib64 && { ln -s -f libwiretap.so.1.0.0
libwiretap.so.1 || { rm -f libwiretap.so.1 && ln -s libwiretap.so.1.0.0
libwiretap.so.1; }; })
libtool: install: (cd /tmp/test/usr/lib64 && { ln -s -f libwiretap.so.1.0.0
libwiretap.so || { rm -f libwiretap.so && ln -s libwiretap.so.1.0.0
libwiretap.so; }; })
libtool: install: /usr/bin/install -c .libs/libwiretap.lai
/tmp/test/usr/lib64/libwiretap.la
libtool: install: warning: remember to run `libtool --finish /usr/lib64'
make[1]: Nothing to be done for `install-data-am'.
make[1]: Leaving directory
`/var/tmp/portage/net-analyzer/wireshark-1.6.0/work/wireshark-1.6.0/wiretap'
Why libtool prepends -L/usr/lib -L/usr/local/lib before
-L/tmp/test/usr/lib64? How to force libtool link agains library inside
DESTDIR (library bundled with package) instead of system one?
libtool --config is in attachment.
Thank you in advance for any hints,
--
Peter.
libtool-config.txt
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- libtool relinks against system libraries during make DESTDIR=... install,
Peter Volkov <=