diff options
author | Mike Stump <mrs@apple.com> | 2006-12-08 23:54:21 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 2006-12-08 23:54:21 +0000 |
commit | 9a35ada53504bbf2a522c20303ccf606dd730307 (patch) | |
tree | 1c1c8ea15b95c3c6affc6b3856a93c448d654f4f /boehm-gc | |
parent | 920aeaf3da2eed578c4f2b73551a44a62b8329a3 (diff) | |
download | gcc-9a35ada53504bbf2a522c20303ccf606dd730307.zip gcc-9a35ada53504bbf2a522c20303ccf606dd730307.tar.gz gcc-9a35ada53504bbf2a522c20303ccf606dd730307.tar.bz2 |
configure.ac: Fix x86 darwin builds.
* configure.ac: Fix x86 darwin builds.
* darwin_stop_world.c: Likewise.
* include/private/gcconfig.h: Likewise.
* connfigure: Regenerate.
From-SVN: r119670
Diffstat (limited to 'boehm-gc')
-rw-r--r-- | boehm-gc/ChangeLog | 7 | ||||
-rwxr-xr-x | boehm-gc/configure | 7 | ||||
-rw-r--r-- | boehm-gc/configure.ac | 6 | ||||
-rw-r--r-- | boehm-gc/darwin_stop_world.c | 27 | ||||
-rw-r--r-- | boehm-gc/include/private/gcconfig.h | 4 |
5 files changed, 37 insertions, 14 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index b8183a5..2739c38 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,10 @@ +2006-12-08 Mike Stump <mrs@apple.com> + + * configure.ac: Fix x86 darwin builds. + * darwin_stop_world.c: Likewise. + * include/private/gcconfig.h: Likewise. + * connfigure: Regenerate. + 2006-09-26 Jack Howarth <howarth@bromo.med.uc.edu> PR target/29180 diff --git a/boehm-gc/configure b/boehm-gc/configure index 00b1430..f509b34 100755 --- a/boehm-gc/configure +++ b/boehm-gc/configure @@ -5465,7 +5465,8 @@ _ACEOF #define THREAD_LOCAL_ALLOC 1 _ACEOF - cat >>confdefs.h <<\_ACEOF + +cat >>confdefs.h <<\_ACEOF #define USE_COMPILER_TLS 1 _ACEOF @@ -6084,6 +6085,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#include <sys/cdefs.h> #include <mach/thread_status.h> int @@ -6129,6 +6131,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#include <sys/cdefs.h> #include <mach/thread_status.h> int @@ -6195,6 +6198,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#include <sys/cdefs.h> #include <mach/thread_status.h> int @@ -6240,6 +6244,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#include <sys/cdefs.h> #include <mach/thread_status.h> int diff --git a/boehm-gc/configure.ac b/boehm-gc/configure.ac index 45937dc..84dd7ec 100644 --- a/boehm-gc/configure.ac +++ b/boehm-gc/configure.ac @@ -267,11 +267,13 @@ case "$host" in AC_CHECK_MEMBER(i386_thread_state_t.eax, AC_DEFINE(HAS_I386_THREAD_STATE_EAX,,dnl [i386_thread_state_t has field eax]),, - [#include <mach/thread_status.h>]) + [#include <sys/cdefs.h> +#include <mach/thread_status.h>]) AC_CHECK_MEMBER(i386_thread_state_t.__eax, AC_DEFINE(HAS_I386_THREAD_STATE___EAX,,dnl [i386_thread_state_t has field __eax]),, - [#include <mach/thread_status.h>]) + [#include <sys/cdefs.h> +#include <mach/thread_status.h>]) ;; *) ;; esac diff --git a/boehm-gc/darwin_stop_world.c b/boehm-gc/darwin_stop_world.c index 2984592..bdd6f3a 100644 --- a/boehm-gc/darwin_stop_world.c +++ b/boehm-gc/darwin_stop_world.c @@ -49,6 +49,15 @@ # else # error can not work out how to access fields of i386_thread_state_t # endif +#elif defined(__x86_64__) +# define THREAD_STATE i386_thread_state_t +# if defined (HAS_I386_THREAD_STATE_EAX) +# define THREAD_FLD(x) x +# elif defined (HAS_I386_THREAD_STATE___EAX) +# define THREAD_FLD(x) __ ## x +# else +# error can not work out how to access fields of i386_thread_state_t +# endif #else # error unknown architecture #endif @@ -127,15 +136,15 @@ void GC_push_all_stacks() { if(r != KERN_SUCCESS) ABORT("thread_get_state failed"); #if defined(I386) - lo = state.esp; - - GC_push_one(state.eax); - GC_push_one(state.ebx); - GC_push_one(state.ecx); - GC_push_one(state.edx); - GC_push_one(state.edi); - GC_push_one(state.esi); - GC_push_one(state.ebp); + lo = (void*)state . THREAD_FLD (esp); + + GC_push_one(state . THREAD_FLD (eax)); + GC_push_one(state . THREAD_FLD (ebx)); + GC_push_one(state . THREAD_FLD (ecx)); + GC_push_one(state . THREAD_FLD (edx)); + GC_push_one(state . THREAD_FLD (edi)); + GC_push_one(state . THREAD_FLD (esi)); + GC_push_one(state . THREAD_FLD (ebp)); #elif defined(POWERPC) lo = (void*)(state . THREAD_FLD (r1) - PPC_RED_ZONE_SIZE); diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h index 26db82e..e06a756 100644 --- a/boehm-gc/include/private/gcconfig.h +++ b/boehm-gc/include/private/gcconfig.h @@ -302,7 +302,7 @@ # if defined(__ppc__) || defined(__ppc64__) # define POWERPC # define mach_type_known -# elif defined(__i386__) +# elif defined(__i386__) || defined(__x86_64) # define I386 # define mach_type_known # endif @@ -787,7 +787,7 @@ # define DATAEND (_end) # endif # ifdef DARWIN -# ifdef __ppc64__ +# if defined(__ppc64__) || defined(__x86_64) # define ALIGNMENT 8 # define CPP_WORDSZ 64 # else |