diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2011-11-18 16:15:59 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2011-11-18 16:15:59 +0000 |
commit | 59659b596734466dd182fa99b0a189ca7c376129 (patch) | |
tree | c571e1e0ec2e804464122759d57525541ffd6d36 | |
parent | 919f402ca5eae1caf53ed2b9caffc9a50e92cdd0 (diff) | |
download | gcc-59659b596734466dd182fa99b0a189ca7c376129.zip gcc-59659b596734466dd182fa99b0a189ca7c376129.tar.gz gcc-59659b596734466dd182fa99b0a189ca7c376129.tar.bz2 |
Support libitm on Solaris 8 and 9/x86 with Sun as
* config/generic/asmcfi.h: Fix comment.
* config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
sequence without .hidden support, error for non-ELF targets.
(GTM_longjmp) [__ELF__]: Only use .hidden if
HAVE_ATTRIBUTE_VISIBILITY.
From-SVN: r181481
-rw-r--r-- | libitm/ChangeLog | 8 | ||||
-rw-r--r-- | libitm/config/generic/asmcfi.h | 2 | ||||
-rw-r--r-- | libitm/config/x86/sjlj.S | 12 |
3 files changed, 21 insertions, 1 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 19e9fe3..642c42a 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,11 @@ +2011-11-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * config/generic/asmcfi.h: Fix comment. + * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code + sequence without .hidden support, error for non-ELF targets. + (GTM_longjmp) [__ELF__]: Only use .hidden if + HAVE_ATTRIBUTE_VISIBILITY. + 2011-11-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv, diff --git a/libitm/config/generic/asmcfi.h b/libitm/config/generic/asmcfi.h index fcb45c5..4344d6f 100644 --- a/libitm/config/generic/asmcfi.h +++ b/libitm/config/generic/asmcfi.h @@ -41,4 +41,4 @@ #define cfi_def_cfa(r,n) #define cfi_register(o,n) -#endif /* HAVE_ASM_CFI */ +#endif /* HAVE_AS_CFI_PSEUDO_OP */ diff --git a/libitm/config/x86/sjlj.S b/libitm/config/x86/sjlj.S index 32572d9..ed755da 100644 --- a/libitm/config/x86/sjlj.S +++ b/libitm/config/x86/sjlj.S @@ -60,7 +60,17 @@ _ITM_beginTransaction: movl %edi, 20(%esp) movl %ebp, 24(%esp) leal 8(%esp), %edx +#if defined HAVE_ATTRIBUTE_VISIBILITY || !defined __PIC__ call GTM_begin_transaction +#elif defined __ELF__ + call 1f +1: popl %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx + call GTM_begin_transaction@PLT + movl 12(%esp), %ebx +#else +# error "Unsupported PIC sequence" +#endif addl $28, %esp cfi_def_cfa_offset(4) ret @@ -108,7 +118,9 @@ GTM_longjmp: #ifdef __ELF__ .type GTM_longjmp, @function +#ifdef HAVE_ATTRIBUTE_VISIBILITY .hidden GTM_longjmp +#endif .size GTM_longjmp, .-GTM_longjmp #endif |