On 11/16/2011 08:38 AM, Rainer Orth wrote: > * config/generic/asmcfi.h: Fix comment. > * config/x86/sjlj.S (_ITM_beginTransaction): Provide PIC code > sequence without .hidden support. > (GTM_longjmp) [__ELF__]: Only use .hidden if > HAVE_ATTRIBUTE_VISIBILITY.
Nearly ok. > + subl $4, %esp > + movl %ebx, 24(%esp) > + call 1f > +1: popl %ebx > + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx > + call GTM_begin_transaction@PLT > + movl 24(%esp), %ebx > + addl $4, %esp This is overly complicated. We've saved %ebx at 12(%esp) above. This should be as simple as call 1f 1: popl %ebx addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx call GTM_begin_transaction@PLT movl 12(%esp), %ebx It also needs wrapping like #elif defined(__ELF__) ... #else # error "Unsupported PIC sequence" #endif ... which will almost certainly immediately fail on Darwin, but at least not with some reference to @PLT. r~