libtool
[Top][All Lists]
Advanced

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

relinking and cross-compiling


From: Simon Richter
Subject: relinking and cross-compiling
Date: Mon, 22 Mar 2010 12:36:41 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

Hi,

I'm using libtool in a project that builds a few shared libraries, a
main program and plugins to the program, all in the same source package.

I've made Debian style packages from my source tree, which requires
installation into DESTDIR to work.

In the native case, this works:

/bin/sh ../libtool   --mode=install /usr/bin/install -c   interfaces.la 
'/srv/repo/build/sid/sge_0.0.20100322-1_amd64/debian/tmp/usr/lib/sge/backend'
libtool: install: warning: relinking `interfaces.la'
libtool: install: (cd /srv/repo/build/sid/sge_0.0.20100322-1_amd64/interfaces; 
/bin/sh /srv/repo/build/sid/sge_0.0.20100322-1_amd64/libtool  --tag CXX 
--mode=relink x86_64-linux-gnu-g++ -g -O2 -fvisibility=hidden -module 
-avoid-version -no-undefined -o interfaces.la -rpath /usr/lib/sge/backend 
linux_network_service.lo plugin.lo network_service.lo ../libsge-agent.la 
-llazybox -inst-prefix-dir 
/srv/repo/build/sid/sge_0.0.20100322-1_amd64/debian/tmp)
libtool: relink: x86_64-linux-gnu-g++ -shared -nostdlib 
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/crti.o 
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/crtbeginS.o .libs/linux_network_service.o 
.libs/plugin.o .libs/network_service.o 
-L/srv/repo/build/sid/sge_0.0.20100322-1_amd64/debian/tmp/usr/lib -L/usr/lib 
-lsge-agent -llazybox -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2 
-L/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib -L/lib/../lib 
-L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../..  -lstdc++ -lm 
-lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.3.2/crtendS.o 
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/crtn.o -Wl,-soname 
-Wl,interfaces.so -o .libs/interfaces.so
libtool: install: /usr/bin/install -c .libs/interfaces.soT 
/srv/repo/build/sid/sge_0.0.20100322-1_amd64/debian/tmp/usr/lib/sge/backend/interfaces.so

However, cross compiled packages fail here:

/bin/sh ../libtool   --mode=install /usr/bin/install -c   interfaces.la 
'/srv/repo/build/sid/sge_0.0.20100322-1_armel/debian/tmp/usr/lib/sge/backend'
libtool: install: warning: relinking `interfaces.la'
libtool: install: (cd /srv/repo/build/sid/sge_0.0.20100322-1_armel/interfaces; 
/bin/sh /srv/repo/build/sid/sge_0.0.20100322-1_armel/libtool  --tag CXX 
--mode=relink arm-linux-gnueabi-g++ -g -O2 -fvisibility=hidden -module 
-avoid-version -no-undefined -o interfaces.la -rpath /usr/lib/sge/backend 
linux_network_service.lo plugin.lo network_service.lo ../libsge-agent.la 
-llazybox -inst-prefix-dir 
/srv/repo/build/sid/sge_0.0.20100322-1_armel/debian/tmp)
libtool: relink: arm-linux-gnueabi-g++ -shared -nostdlib 
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/lib/crti.o 
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/crtbeginS.o .libs/linux_network_service.o 
.libs/plugin.o .libs/network_service.o -Wl,-rpath 
-Wl,/usr/arm-linux-gnueabi/lib 
-L/srv/repo/build/sid/sge_0.0.20100322-1_armel/debian/tmp/usr/lib -L/usr/lib 
-lsge-agent 
-L/srv/repo/build/sid/sge_0.0.20100322-1_armel/debian/tmp/usr/arm-linux-gnueabi/lib
 -L/usr/arm-linux-gnueabi/lib -llazybox -L/usr/lib/gcc/arm-linux-gnueabi/4.3.2 
-L/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/lib 
-lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/arm-linux-gnueabi/4.3.2/crtendS.o 
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/lib/crtn.o 
-Wl,-soname -Wl,interfaces.so -o .libs/interfaces.so
/usr/lib/liblazybox.so: file not recognized: File format not recognized
collect2: ld returned 1 exit status

The problem here appears to be the "-L/usr/lib", which I suspect comes
from $libdir. I'm not sure the "installed" $libdir should ever be
searched for libraries, unless it also happens to be in the compiler's
default path (which it is in the native case).

If the "-L/usr/lib" is omitted, relinking works (the proper
liblazybox.so is then found in /usr/arm-linux-gnueabi/lib).

I can work around the problem by splitting the package, compiling the
libraries separately and installing them before building the plugins (in
this case, no relinking step is necessary).

   Simon

Attachment: signature.asc
Description: Digital signature


reply via email to

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