This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Libtool problem (Was: Multilib libjava problem)
- From: Bo Thorsen <bo at sonofthor dot dk>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 1 Oct 2002 16:58:33 +0200
- Subject: Libtool problem (Was: Multilib libjava problem)
- References: <200210011208.26635.bo@sonofthor.dk>
On Tuesday 01 October 2002 12:08, Bo Thorsen wrote:
> I have a linking problem in libjava, trying to link the 32 bit libjava on
> x86-64:
>
> /bin/sh ./libtool --tag=CXX --mode=link /suse/bo/Work/gcc/build/gcc/xgcc
> -shared-libgcc -B/suse/bo/Work/gcc/build/gcc/ -nostdinc++
> -L/suse/bo/Work/gcc/build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src
> -L/suse/bo/Work/gcc/build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.lib
>s -B/usr/local/x86_64-unknown-linux-gnu/bin/
> -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
> /usr/local/x86_64-unknown-linux-gnu/include -m32
> -L/suse/bo/Work/gcc/build/x86_64-unknown-linux-gnu/32/libjava -ffloat-store
> -g -O2 -m32 -m32 -o libgcj.la -objectlist libgcj.objectlist
> ../boehm-gc/libgcjgc_convenience.la ../libffi/libffi_convenience.la
> ../zlib/libzgcj_convenience.la -rpath /usr/local/lib/32 -rpath
> /usr/local/lib/32 -lpthread ./libltdl/libltdlc.la -version-info `grep -v
> '^#' ../../../../gcc/libjava/libtool-version`
>
> creating reloadable object files...
>
> creating a temporary reloadable object file: .libs/libgcj.la-2.o
>
> /usr/bin/ld -r -o .libs/libgcj.la-1.o <aLOToffiles>.o
>
> /usr/bin/ld: Relocatable linking with relocations from format elf32-i386
> (.libs/prims.o) to format elf64-x86-64 (.libs/libgcj.la-1.o) is not
> supported
>
> make[5]: *** [libgcj.la] Error 1
>
> The problem here is the /usr/bin/ld command. This ought to have a -m
> elf_i386 switch.
This is a libtool problem. I have come up with two different patches to try to
solve this:
Index: libtool.m4
===================================================================
RCS file: /cvs/gcc/gcc/libtool.m4,v
retrieving revision 1.9
diff -u -r1.9 libtool.m4
--- libtool.m4 14 Aug 2002 02:39:52 -0000 1.9
+++ libtool.m4 1 Oct 2002 14:51:18 -0000
@@ -175,6 +175,19 @@
rm -rf conftest*
;;
+x86_64*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
I tried this and just running configure && make bootstrap (srcdir!=builddir)
but that didn't do any change. The libtool in 32/libjava didn't have any line
with x86_64 in it??
Now I'm running a test with this:
Index: libtool.m4
===================================================================
RCS file: /cvs/gcc/gcc/libtool.m4,v
retrieving revision 1.9
diff -u -r1.9 libtool.m4
--- libtool.m4 14 Aug 2002 02:39:52 -0000 1.9
+++ libtool.m4 1 Oct 2002 14:50:41 -0000
@@ -622,7 +622,7 @@
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | x86_64* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
Is there something I have to do to make it actually use these changes?
Am I completely wrong in trying this - any comments on the patches?
Help! I don't know how to handle libtool. I can just see that it doesn't work
as it is now.
Bo.
--
Bo Thorsen | Praestevejen 4
Senior Software Engineer | 5290 Marslev
Klarälvdalens Datakonsult | Denmark