This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4



------- Comment #3 from rguenth at gcc dot gnu dot org  2007-10-31 15:23 -------
The complete statically linked __cxa_guard_release looks like:

00000000005528d0 <__cxa_guard_release>:
  5528d0:       53                      push   %rbx
  5528d1:       48 89 fb                mov    %rdi,%rbx
  5528d4:       48 83 ec 10             sub    $0x10,%rsp
  5528d8:       48 83 3d 90 e6 31 00    cmpq   $0x0,0x31e690(%rip)        #
870f70 <rtld_search_dirs+0xe0>
  5528df:       00 
  5528e0:       74 4b                   je     55292d
<__cxa_guard_release+0x5d>
  5528e2:       c6 44 24 0f 01          movb   $0x1,0xf(%rsp)
  5528e7:       e8 c4 fd ff ff          callq  5526b0
<_ZN12_GLOBAL__N_116get_static_mutexEv>
  5528ec:       48 89 c7                mov    %rax,%rdi
  5528ef:       e8 cc 44 01 00          callq  566dc0 <__pthread_mutex_lock>
  5528f4:       85 c0                   test   %eax,%eax
  5528f6:       75 3e                   jne    552936
<__cxa_guard_release+0x66>
  5528f8:       c6 43 01 00             movb   $0x0,0x1(%rbx)
  5528fc:       c6 03 01                movb   $0x1,(%rbx)
  5528ff:       e8 5c fe ff ff          callq  552760
<_ZN12_GLOBAL__N_115get_static_condEv>
  552904:       48 89 c7                mov    %rax,%rdi
  552907:       e8 f4 d6 aa ff          callq  0 <_nl_current_LC_CTYPE>
  55290c:       85 c0                   test   %eax,%eax
  55290e:       75 54                   jne    552964
<__cxa_guard_release+0x94>
  552910:       80 7c 24 0f 00          cmpb   $0x0,0xf(%rsp)
  552915:       74 10                   je     552927
<__cxa_guard_release+0x57>
  552917:       48 8b 3d aa 23 33 00    mov    0x3323aa(%rip),%rdi        #
884cc8 <_ZN12_GLOBAL__N_1L12static_mutexE>
  55291e:       e8 0d 4f 01 00          callq  567830 <__pthread_mutex_unlock>
  552923:       85 c0                   test   %eax,%eax
  552925:       75 6b                   jne    552992
<__cxa_guard_release+0xc2>
  552927:       48 83 c4 10             add    $0x10,%rsp
  55292b:       5b                      pop    %rbx
  55292c:       c3                      retq   
  55292d:       c6 47 01 00             movb   $0x0,0x1(%rdi)
  552931:       c6 07 01                movb   $0x1,(%rdi)
  552934:       eb f1                   jmp    552927
<__cxa_guard_release+0x57>
  552936:       bf 08 00 00 00          mov    $0x8,%edi
  55293b:       e8 40 ec ff ff          callq  551580
<__cxa_allocate_exception>
  552940:       48 89 c7                mov    %rax,%rdi
  552943:       48 8b 05 3e e6 31 00    mov    0x31e63e(%rip),%rax        #
870f88 <rtld_search_dirs+0xf8>
  55294a:       48 8b 15 e7 e5 31 00    mov    0x31e5e7(%rip),%rdx        #
870f38 <rtld_search_dirs+0xa8>
  552951:       48 8b 35 40 e6 31 00    mov    0x31e640(%rip),%rsi        #
870f98 <rtld_search_dirs+0x108>
  552958:       48 83 c0 10             add    $0x10,%rax
  55295c:       48 89 07                mov    %rax,(%rdi)
  55295f:       e8 0c fc ff ff          callq  552570 <__cxa_throw>
  552964:       bf 08 00 00 00          mov    $0x8,%edi
  552969:       e8 12 ec ff ff          callq  551580
<__cxa_allocate_exception>
  55296e:       48 89 c7                mov    %rax,%rdi
  552971:       48 8b 05 08 e6 31 00    mov    0x31e608(%rip),%rax        #
870f80 <rtld_search_dirs+0xf0>
  552978:       48 8b 15 41 e6 31 00    mov    0x31e641(%rip),%rdx        #
870fc0 <rtld_search_dirs+0x130>
  55297f:       48 8b 35 6a e5 31 00    mov    0x31e56a(%rip),%rsi        #
870ef0 <rtld_search_dirs+0x60>
  552986:       48 83 c0 10             add    $0x10,%rax
  55298a:       48 89 07                mov    %rax,(%rdi)
  55298d:       e8 de fb ff ff          callq  552570 <__cxa_throw>
  552992:       bf 08 00 00 00          mov    $0x8,%edi
  552997:       e8 e4 eb ff ff          callq  551580
<__cxa_allocate_exception>
  55299c:       48 89 c7                mov    %rax,%rdi
  55299f:       48 8b 05 72 e5 31 00    mov    0x31e572(%rip),%rax        #
870f18 <rtld_search_dirs+0x88>
  5529a6:       48 8b 15 1b e6 31 00    mov    0x31e61b(%rip),%rdx        #
870fc8 <rtld_search_dirs+0x138>
  5529ad:       48 8b 35 2c e5 31 00    mov    0x31e52c(%rip),%rsi        #
870ee0 <rtld_search_dirs+0x50>
  5529b4:       48 83 c0 10             add    $0x10,%rax
  5529b8:       48 89 07                mov    %rax,(%rdi)
  5529bb:       e8 b0 fb ff ff          callq  552570 <__cxa_throw>
  5529c0:       48 8d 7c 24 0f          lea    0xf(%rsp),%rdi
  5529c5:       48 89 c3                mov    %rax,%rbx
  5529c8:       e8 c3 fd ff ff          callq  552790
<_ZN10__cxxabiv113mutex_wrapperD1Ev>
  5529cd:       48 89 df                mov    %rbx,%rdi
  5529d0:       e8 5b 07 01 00          callq  563130 <_Unwind_Resume>

showing the obvious error.  The shared libstdc++v3 has a relocation to
pthread_cond_broadcast instead:

   c4aff:       e8 5c fe ff ff          callq  c4960
<_ZN12_GLOBAL__N_115get_static_condEv>
   c4b04:       48 89 c7                mov    %rax,%rdi
   c4b07:       e8 24 0d f9 ff          callq  55830
<pthread_cond_broadcast@plt>
   c4b0c:       85 c0                   test   %eax,%eax


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]