diff options
Diffstat (limited to 'boehm-gc/include')
-rw-r--r-- | boehm-gc/include/gc.h | 2 | ||||
-rw-r--r-- | boehm-gc/include/private/gcconfig.h | 15 |
2 files changed, 13 insertions, 4 deletions
diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h index c73ecc0ae7a..7d5bd250b8b 100644 --- a/boehm-gc/include/gc.h +++ b/boehm-gc/include/gc.h @@ -888,7 +888,7 @@ extern void GC_thr_init(); /* Needed for Solaris/X86 */ # define GC_INIT() { extern end, etext; \ GC_noop(&end, &etext); } #else -# if defined(__CYGWIN32__) && defined(GC_USE_DLL) +# if (defined(__CYGWIN32__) && defined(GC_USE_DLL)) || defined (_AIX) /* * Similarly gnu-win32 DLLs need explicit initialization */ diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h index 75405dcd7af..1c92ee31f2f 100644 --- a/boehm-gc/include/private/gcconfig.h +++ b/boehm-gc/include/private/gcconfig.h @@ -1174,10 +1174,19 @@ # ifdef RS6000 # define MACH_TYPE "RS6000" -# define ALIGNMENT 4 -# define DATASTART ((ptr_t)0x20000000) +# ifdef __64BIT__ +# define ALIGNMENT 8 +# define CPP_WORDSZ 64 +# else +# define ALIGNMENT 4 +# define CPP_WORDSZ 32 +# endif + extern int _data, _end; +# define DATASTART ((ptr_t)((ulong)&_data)) +# define DATAEND ((ptr_t)((ulong)&_end)) extern int errno; # define STACKBOTTOM ((ptr_t)((ulong)&errno)) +# define USE_GENERIC_PUSH_REGS # define DYNAMIC_LOADING /* For really old versions of AIX, this may have to be removed. */ # endif @@ -1582,7 +1591,7 @@ # if defined(SVR4) || defined(LINUX) || defined(IRIX) || defined(HPUX) \ || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \ - || defined(BSD) || defined(AIX) || defined(MACOSX) || defined(OSF1) + || defined(BSD) || defined(_AIX) || defined(MACOSX) || defined(OSF1) # define UNIX_LIKE /* Basic Unix-like system calls work. */ # endif |