Index: libffi/ChangeLog
===================================================================
--- libffi.orig/ChangeLog
+++ libffi/ChangeLog
@@ -29,6 +29,10 @@
* src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
compilers, then use it.
+2012-04-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
+
2012-04-06 Anthony Green <green@moxielogic.com>
* 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 |
|--------------+------------------|