--- gcc-4.0.4/gcc/config/rs6000/host-darwin.c.orig 2007-11-10 13:24:23.000000000 +0900 +++ gcc-4.0.4/gcc/config/rs6000/host-darwin.c 2007-11-10 13:19:23.000000000 +0900 @@ -33,10 +33,6 @@ static void segv_handler (int, siginfo_t *, void *); static void darwin_rs6000_extra_signals (void); -/* This doesn't have a prototype in signal.h in 10.2.x and earlier, - fixed in later releases. */ -extern int sigaltstack(const struct sigaltstack *, struct sigaltstack *); - #undef HOST_HOOKS_EXTRA_SIGNALS #define HOST_HOOKS_EXTRA_SIGNALS darwin_rs6000_extra_signals @@ -60,7 +60,7 @@ which case the next line will segfault _again_. Handle this case. */ signal (SIGSEGV, segv_crash_handler); - faulting_insn = *(unsigned *)uc->uc_mcontext->ss.srr0; + faulting_insn = *(unsigned *)uc->uc_mcontext->__ss.__srr0; /* Note that this only has to work for GCC, so we don't have to deal with all the possible cases (GCC has no AltiVec code, for @@ -109,7 +109,7 @@ } fprintf (stderr, "[address=%08lx pc=%08x]\n", - uc->uc_mcontext->es.dar, uc->uc_mcontext->ss.srr0); + uc->uc_mcontext->__es.__dar, uc->uc_mcontext->__ss.__srr0); internal_error ("Segmentation Fault"); exit (FATAL_EXIT_CODE); }