diff options
-rw-r--r-- | boehm-gc/ChangeLog.x32 | 9 | ||||
-rw-r--r-- | boehm-gc/include/private/gcconfig.h | 11 | ||||
-rw-r--r-- | libffi/ChangeLog.x32 | 17 |
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. |