This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Oct 2007 15:23:05 -0000
- Subject: [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
- References: <bug-33960-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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