summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--boehm-gc/ChangeLog.x329
-rw-r--r--boehm-gc/include/private/gcconfig.h11
-rw-r--r--libffi/ChangeLog.x3217
3 files changed, 35 insertions, 2 deletions
diff --git a/boehm-gc/ChangeLog.x32 b/boehm-gc/ChangeLog.x32
new file mode 100644
index 00000000000..385d21ad22b
--- /dev/null
+++ b/boehm-gc/ChangeLog.x32
@@ -0,0 +1,9 @@
+2012-03-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/private/gcconfig.h: (ALIGNMENT): Check GCC 4.0 for x32.
+ (CPP_WORDSZ): Likewise.
+
+2011-12-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/private/gcconfig.h: (ALIGNMENT): Set to 4 for x32.
+ (CPP_WORDSZ): Set to 32 for x32.
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index fb09cf73cc0..a545fbf1508 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -1974,8 +1974,15 @@
# ifdef X86_64
# define MACH_TYPE "X86_64"
-# define ALIGNMENT 8
-# define CPP_WORDSZ 64
+ /* __LP64__ is defined for LP64 after GCC 3.3. If __LP64__ isn't */
+ /* defined, it must be x32. */
+# if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__LP64__)
+# define ALIGNMENT 4
+# define CPP_WORDSZ 32
+# else
+# define ALIGNMENT 8
+# define CPP_WORDSZ 64
+# endif
# ifndef HBLKSIZE
# define HBLKSIZE 4096
# endif
diff --git a/libffi/ChangeLog.x32 b/libffi/ChangeLog.x32
new file mode 100644
index 00000000000..00d713dc3bc
--- /dev/null
+++ b/libffi/ChangeLog.x32
@@ -0,0 +1,17 @@
+2012-01-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ * src/x86/ffi64.c (ffi_prep_closure_loc): Cast to 64bit address
+ in trampoline.
+ (ffi_closure_unix64_inner): Cast return pointer to unsigned long
+ first.
+
+ * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
+
+2011-12-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * src/x86/ffi64.c (ffi_call): Cast the return value to
+ unsigned long.
+
+ * src/x86/ffitarget.h (ffi_arg): Set to unsigned long long for
+ x32.
+ (ffi_sarg): Set to long for x32.