]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Support libitm on Solaris 8 and 9/x86 with Sun as
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Fri, 18 Nov 2011 16:15:59 +0000 (16:15 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Fri, 18 Nov 2011 16:15:59 +0000 (16:15 +0000)
* 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

libitm/ChangeLog
libitm/config/generic/asmcfi.h
libitm/config/x86/sjlj.S

index 19e9fe3863029d8e8012aaffdf2853de00fbc38e..642c42a01b7bf4dac20f2577e556a66b111247b7 100644 (file)
@@ -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,
index fcb45c58739807eed819ac6ed51e92351b484ab0..4344d6f8f9798b9b97df79299363a20719758eef 100644 (file)
@@ -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 */
index 32572d9db60e1488733529640396c6dd01042b47..ed755daa8a03f575ee00db83652e58e24bad4a12 100644 (file)
@@ -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