Diego, Testing w/ ubuntu lucid native bootstrap + check (C/C++), with --with-pic and numerous other flags, looking good.
OK for google/main (assuming tests succeed)? chris -- [libgcc/ChangeLog.google-main] 2011-05-04 Chris Demetriou <c...@google.com> Backport from trunk r173391: 2011-05-04 Chris Demetriou <c...@google.com> * config/i386/morestack.S (__i686.get_pc_thunk.bx): Rename to... (__x86.get_pc_thunk.bx): ...this. (__morestack): Adjust for rename, remove undef of __i686. Backport from trunk r173345: 2011-05-03 Chris Demetriou <c...@google.com> * config/i386/morestack.S (__i686.get_pc_thunk.bx): New. Index: libgcc/config/i386/morestack.S =================================================================== --- libgcc/config/i386/morestack.S (revision 173353) +++ libgcc/config/i386/morestack.S (working copy) @@ -278,8 +278,7 @@ movl 4(%esp),%eax # Function argument. movl %eax,(%esp) #ifdef __PIC__ -#undef __i686 - call __i686.get_pc_thunk.bx # %ebx may not be set up for us. + call __x86.get_pc_thunk.bx # %ebx may not be set up for us. addl $_GLOBAL_OFFSET_TABLE_, %ebx call _Unwind_Resume@PLT # Resume unwinding. #else @@ -449,6 +448,23 @@ .size __morestack, . - __morestack #endif +#if !defined(__x86_64__) && defined(__PIC__) +# Output the thunk to get PC into bx, since we use it above. + .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat + .globl __x86.get_pc_thunk.bx + .hidden __x86.get_pc_thunk.bx +#ifdef __ELF__ + .type __x86.get_pc_thunk.bx, @function +#endif +__x86.get_pc_thunk.bx: + .cfi_startproc + movl (%esp), %ebx + ret + .cfi_endproc +#ifdef __ELF__ + .size __x86.get_pc_thunk.bx, . - __x86.get_pc_thunk.bx +#endif +#endif # The exception table. This tells the personality routine to execute # the exception handler. -- This patch is available for review at http://codereview.appspot.com/4465045