Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog @@ -34,6 +34,10 @@ * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU compilers, then use it. +2012-04-06 H.J. Lu + + * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32. + 2012-04-06 Anthony Green * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases. Index: libffi/m4/libtool.m4 =================================================================== --- libffi.orig/m4/libtool.m4 +++ libffi/m4/libtool.m4 @@ -1280,7 +1280,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" Index: libffi/configure =================================================================== --- libffi.orig/configure +++ libffi/configure @@ -6844,7 +6844,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" Index: libffi/README =================================================================== --- libffi.orig/README +++ libffi/README @@ -79,7 +79,6 @@ tested: | X86 | Interix | | X86 | kFreeBSD | | X86 | Linux | -| X86 | Linux/x32 | | X86 | Mac OSX | | X86 | OpenBSD | | X86 | OS/2 | @@ -88,6 +87,7 @@ tested: | X86 | Windows/MingW | | X86-64 | FreeBSD | | X86-64 | Linux | +| X86-64 | Linux/x32 | | X86-64 | OpenBSD | | X86-64 | Windows/MingW | |--------------+------------------|