diff mbox

[libffi] Build 64-bit multilib for i?86-linux

Message ID yddaa6wqsie.fsf@manam.CeBiTec.Uni-Bielefeld.DE
State New
Headers show

Commit Message

Rainer Orth Dec. 13, 2011, 5:40 p.m. UTC
I've recently tried a i686-unknown-linux-gnu --enable-targets=all
bootstrap, which failed to link the 64-bit jv-convert etc.:

./.libs/libgcj.so: undefined reference to `ffi_raw_call'
./.libs/libgcj.so: undefined reference to `ffi_prep_raw_closure_loc'
./.libs/libgcj.so: undefined reference to `ffi_prep_cif_machdep'
./.libs/libgcj.so: undefined reference to `ffi_prep_closure_loc'
./.libs/libgcj.so: undefined reference to `ffi_call'
collect2: error: ld returned 1 exit status
make[5]: *** [jv-convert] Error 1

This happens because libffi doesn't build the x86_64 objects in this
configuration.  The following patch fixes this and allowed (together
with a libjava patch to be submitted shortly) the bootstrap to finish.

I've also bootstrapped x86_64-unknown-linux-gnu without regressions.

The same issue still exists in upstream libffi, and should be harmless
without --enable-targets=all since the added files are empty then.

Ok for mainline gcc?  

	Rainer


2011-12-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (i?86-*-*): Set TARGET to X86_64.
	* configure: Regenerate.
diff mbox

Patch

diff --git a/libffi/configure.ac b/libffi/configure.ac
--- a/libffi/configure.ac
+++ b/libffi/configure.ac
@@ -99,7 +99,7 @@  case "$host" in
 	TARGET=X86_64; TARGETDIR=x86
 	;;
   i?86-*-*)
-	TARGET=X86; TARGETDIR=x86
+	TARGET=X86_64; TARGETDIR=x86
 	;;
 
   ia64*-*-*)