bug-libtool
[Top][All Lists]
Advanced

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

Re: Can't cross-compile with same libdir as the host one


From: Loïc Minier
Subject: Re: Can't cross-compile with same libdir as the host one
Date: Mon, 1 Nov 2010 16:12:28 -0700

On Mon, Nov 01, 2010, Ralf Wildenhues wrote:
> >  It is entirely possible that this is a toolchain bug, but I think
> >  libtool has this design to use -rpath to specify the installation
> >  directory, which might be why the linker looks in this directory.
> 
> Can you work around it by using the Libtool 2.4 --with-sysroot feature?
> Please report back if that doesn't help.

 I didn't manage to get it working with this feature; I hope I'm using
 it properly

 Starting from tests/depdemo as the previous time, I tried:
./configure --build=x86_64-linux-gnu --host=arm-linux-gnueabi --libdir=/usr/lib 
--with-sysroot=/usr/arm-linux-gnueabi
make install DESTDIR=`pwd`/destdir

 and it fails as follows:
libtool: link: ( cd ".libs" && rm -f "libl2.la" && ln -s "../libl2.la" 
"libl2.la" )
make[2]: entrant dans le répertoire « 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/l2 »
test -z "/usr/lib" || /bin/mkdir -p 
"/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir/usr/lib"
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libl2.la 
'/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir/usr/lib'
libtool: install: warning: relinking `libl2.la'
libtool: install: (cd 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/l2; /bin/bash 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/libtool  --tag CC 
--mode=relink arm-linux-gnueabi-gcc -g -O2 -no-undefined -o libl2.la -rpath 
/usr/lib l2.lo ../l1/libl1.la -inst-prefix-dir 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir)
libtool: relink: arm-linux-gnueabi-gcc -shared  -fPIC -DPIC  .libs/l2.o   
-L/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir/usr/lib 
-L/usr/lib -ll1  -O2   -Wl,-soname -Wl,libl2.so.0 -o .libs/libl2.so.0.0.0
/usr/lib/gcc/arm-linux-gnueabi/4.4.5/../../../../arm-linux-gnueabi/bin/ld: 
skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/lib/libc.a: could not read symbols: File format not recognized

 In any case, passing special ./configure flags would not make this
 particular project easy as these are encoded in many individual Debian
 source packages, so it would make it hard to cross-compile them without
 modification.

 I tried this as well:
./configure --build=x86_64-linux-gnu --host=arm-linux-gnueabi --libdir=/usr/lib 
--with-sysroot=/usr/arm-linux-gnueabi CFLAGS="--sysroot /usr/arm-linux-gnueabi"

 and got:
make[2]: entrant dans le répertoire « 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/l2 »
test -z "/usr/lib" || /bin/mkdir -p 
"/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir/usr/lib"
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libl2.la 
'/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir/usr/lib'
libtool: install: warning: relinking `libl2.la'
libtool: install: (cd 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/l2; /bin/bash 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/libtool  --tag CC 
--mode=relink arm-linux-gnueabi-gcc --sysroot /usr/arm-linux-gnueabi 
-no-undefined -o libl2.la -rpath /usr/lib l2.lo ../l1/libl1.la -inst-prefix-dir 
/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir)
libtool: relink: arm-linux-gnueabi-gcc -shared  -fPIC -DPIC  .libs/l2.o   
-L/home/lool/scratch/libtool/latest/libtool-2.4/tests/depdemo/destdir/usr/lib 
-L/usr/lib -ll1  --sysroot /usr/arm-linux-gnueabi   -Wl,-soname -Wl,libl2.so.0 
-o .libs/libl2.so.0.0.0
/usr/lib/gcc/arm-linux-gnueabi/4.4.5/../../../../arm-linux-gnueabi/bin/ld: 
skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/lib/libc.a: could not read symbols: File format not recognized

 Even this doesn't work:
./configure --build=x86_64-linux-gnu --host=arm-linux-gnueabi --libdir=/usr/lib 
--with-sysroot=/usr/arm-linux-gnueabi CFLAGS="--sysroot /usr/arm-linux-gnueabi 
-L/usr/arm-linux-gnueabi"

 I think that's because RPATH takes precedence over -L; I tried adding
 -rpath=/usr/arm-linux-gnueabi -rpath-link=/usr/arm-linux-gnueabi to
 CFLAGS as well, but no luck there either.

   Cheers,
-- 
Loïc Minier



reply via email to

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