Message ID | D8F20203-D696-4C0A-8D08-F9FB2AFF0C73@sandoe-acoustics.co.uk |
---|---|
State | New |
Headers | show |
On Wed, 2011-11-02 at 19:33 +0000, Iain Sandoe wrote: > I'm going to try this .... > > $ svn diff -x -p gcc/config/rs6000/rs6000.c > Index: gcc/config/rs6000/rs6000.c > =================================================================== > --- gcc/config/rs6000/rs6000.c (revision 180788) > +++ gcc/config/rs6000/rs6000.c (working copy) > @@ -25071,7 +25071,7 @@ macho_branch_islands (void) > if (TARGET_LINK_STACK) > { > char name[32]; > - get_ppc64_thunk_name (name); > + get_ppc476_thunk_name (name); > strcat (tmp_buf, ":\n\tmflr r0\n\tbl "); > strcat (tmp_buf, name); > strcat (tmp_buf, "\n"); Oh my, I'm not sure how that got through. :( Oh, as you said, that is TARGET_MACHO which I can't really test. Sorry about that. > @@ -27956,10 +27956,11 @@ get_ppc476_thunk_name (char name[32]) > { > gcc_assert (TARGET_LINK_STACK); > > - if (HAVE_GAS_HIDDEN) > +#if defined(HAVE_GAS_HIDDEN) > sprintf (name, "__ppc476.get_thunk"); > - else > +#else > ASM_GENERATE_INTERNAL_LABEL (name, "LPPC476_", 0); > +#endif > } ... Instead of that, see my patch to fix David's AIX problem: http://gcc.gnu.org/ml/gcc-patches/2011-11/msg00198.html Peter
On 2 Nov 2011, at 19:39, Peter Bergner wrote: > On Wed, 2011-11-02 at 19:33 +0000, Iain Sandoe wrote: >> I'm going to try this .... >> char name[32]; >> - get_ppc64_thunk_name (name); >> + get_ppc476_thunk_name (name); This (together with the changes for HAVE_GAS_HIDDEN) fixes my bootstrap problem. > Oh my, I'm not sure how that got through. :( Well, I guess I should have looked at your patch before it hit trunk (I was mistakenly thinking it didn't touch Darwin). > Oh, as you said, that is TARGET_MACHO which I can't really test. > Sorry about that. FWIW, it's not really any worse building a cross from linux -> darwin9*** than a cross to any other foreign OS from linux (there are a couple of differences - because of the non-binutils tool-chain). I did it recently. ** Rainer, AFAICT, all is OK with your (much appreciated) rationalization of libgcc on *-Darwin9 & x86-64-Darwin10 (although testing is incomplete). cheers Iain *** x86-64-darwin10 and Darwin11 are more problematic, since the cross toolchains are not yet in place/mature (at least as of a few weeks ago).
Index: gcc/config/rs6000/rs6000.c =================================================================== --- gcc/config/rs6000/rs6000.c (revision 180788) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -25071,7 +25071,7 @@ macho_branch_islands (void) if (TARGET_LINK_STACK) { char name[32]; - get_ppc64_thunk_name (name); + get_ppc476_thunk_name (name); strcat (tmp_buf, ":\n\tmflr r0\n\tbl "); strcat (tmp_buf, name); strcat (tmp_buf, "\n"); @@ -27956,10 +27956,11 @@ get_ppc476_thunk_name (char name[32]) { gcc_assert (TARGET_LINK_STACK); - if (HAVE_GAS_HIDDEN) +#if defined(HAVE_GAS_HIDDEN) sprintf (name, "__ppc476.get_thunk"); - else +#else ASM_GENERATE_INTERNAL_LABEL (name, "LPPC476_", 0); +#endif } /* This function emits the simple thunk routine that is used to