public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
@ 2007-10-31 14:52 rguenth at gcc dot gnu dot org
2007-10-31 14:54 ` [Bug c++/33960] " rguenth at gcc dot gnu dot org
` (12 more replies)
0 siblings, 13 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-10-31 14:52 UTC (permalink / raw)
To: gcc-bugs
Starting with r129030 tramp3d-v4 segfaults on startup if compiled statically
with -fopenmp. This can be reproduced with the preprocessed testcase from
http://www.suse.de/~rguenther/tramp3d/tramp3d-v4.ii.gz (x86_64) and compiling
with -fopenmp -static (optimization does not change the effect).
Author: jason
Date: Fri Oct 5 05:35:46 2007
New Revision: 129030
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129030
Log:
2007-09-13 Doug Kwan <dougkwan@google.com>
* gcc/gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
__gthread_cond_wait_recursive): Add to extend interface for POSIX
conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
support of conditional variables.
* gcc/gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
__gthread_cond_wait_recursive): Add to extend interface for POSIX
conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
support of conditional variables.
* gcc/gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
__gthread_cond_wait_recursive): Add to extend interface for POSIX
conditional variables.
* gcc/gthr.h: Update comments to document new interface.
* libstdc++-v3/include/ext/concurrent.h (class __mutex,
class __recursive_mutex): Add new method gthread_mutex to access
inner gthread mutex.
[__GTHREAD_HAS_COND] (class __concurrence_broadcast_error,
class __concurrence_wait_error, class __cond): Add.
* guard.cc (recursive_push, recursive_pop): Delete.
(init_in_progress_flag, set_init_in_progress_flag): Add to
replace recursive_push and recursive_pop.
(throw_recursive_init_exception): Add.
(acquire, __cxa_guard_acquire, __cxa_guard_abort and
__cxa_guard_release): [__GTHREAD_HAS_COND] Use a conditional
for synchronization of static variable initialization.
The global mutex is only held briefly when guards are
accessed. [!__GTHREAD_HAS_COND] Fall back to the old code,
which deadlocks.
* testsuite/thread/guard.cc: Add new test. It deadlocks with the
old locking code in libstdc++-v3/libsup++/guard.cc.
--
Summary: [4.3 Regression] r129030 breaks -fopenmp -static compile
of tramp3d-v4
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
@ 2007-10-31 14:54 ` rguenth at gcc dot gnu dot org
2007-10-31 14:59 ` rguenth at gcc dot gnu dot org
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-10-31 14:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from rguenth at gcc dot gnu dot org 2007-10-31 14:53 -------
gdb doesn't like static code too much but the following is a backtrace of the
crash:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x88d8a0 (LWP 8358)]
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
warning: (Internal error: pc 0x55290b in read in psymtab, but not in symtab.)
#1 0x000000000055290c in __cxa_guard_release (g=warning: (Internal error: pc
0x5528d0 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x55290b in read in psymtab, but not in symtab.)
0x874a70)
at
/space/rguenther/tramp3d/obj/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu/bits/gthr-default.h:749
#2 0x00000000004fc9ac in get_locale_mutex ()
at ../../../../trunk/libstdc++-v3/src/locale_init.cc:42
#3 0x00000000004fe99a in locale (this=0x872dd8)
at ../../../../trunk/libstdc++-v3/src/locale_init.cc:215
#4 0x00000000004fa325 in Init (this=<value optimized out>)
at
/space/rguenther/tramp3d/obj/x86_64-unknown-linux-gnu/libstdc++-v3/include/streambuf:462
#5 0x0000000000402a79 in __static_initialization_and_destruction_0 (
__initialize_p=1, __priority=65535)
at
/space/rguenther/tramp3d/install/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/../../../../include/c++/4.3.0/iostream:77
#6 0x0000000000402fc9 in global constructors keyed to _ZN5Pooma5pinfoE ()
at tramp3d-v4.cpp:56094
#7 0x00000000005cb046 in __do_global_ctors_aux ()
#8 0x00000000004001a3 in _init ()
#9 0x0000000000000001 in ?? ()
#10 0x0000000000569736 in __libc_csu_init ()
#11 0x00000000005691e2 in __libc_start_main ()
#12 0x00000000004001d9 in _start ()
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
2007-10-31 14:54 ` [Bug c++/33960] " rguenth at gcc dot gnu dot org
@ 2007-10-31 14:59 ` rguenth at gcc dot gnu dot org
2007-10-31 15:23 ` rguenth at gcc dot gnu dot org
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-10-31 14:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from rguenth at gcc dot gnu dot org 2007-10-31 14:59 -------
Which is
static inline int
__gthread_cond_broadcast (__gthread_cond_t *cond)
{
return __gthrw_(pthread_cond_broadcast) (cond);
}
It looks like pthread_cond_broadcast is not correctly bound, as the disassembly
shows:
<__cxa_guard_release+52>: mov %rax,%rdi
<__cxa_guard_release+55>: callq 0x0
though it _does_ work for pthread_mutex_lock:
<__cxa_guard_release+28>: mov %rax,%rdi
<__cxa_guard_release+31>: callq 0x566dc0 <pthread_mutex_lock>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
2007-10-31 14:54 ` [Bug c++/33960] " rguenth at gcc dot gnu dot org
2007-10-31 14:59 ` rguenth at gcc dot gnu dot org
@ 2007-10-31 15:23 ` rguenth at gcc dot gnu dot org
2007-10-31 15:49 ` pinskia at gcc dot gnu dot org
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-10-31 15:23 UTC (permalink / raw)
To: gcc-bugs
------- 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
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (2 preceding siblings ...)
2007-10-31 15:23 ` rguenth at gcc dot gnu dot org
@ 2007-10-31 15:49 ` pinskia at gcc dot gnu dot org
2007-10-31 18:00 ` dougkwan at google dot com
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-10-31 15:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from pinskia at gcc dot gnu dot org 2007-10-31 15:48 -------
What happens if you force libpthreads to be all linked in?
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (3 preceding siblings ...)
2007-10-31 15:49 ` pinskia at gcc dot gnu dot org
@ 2007-10-31 18:00 ` dougkwan at google dot com
2007-11-02 2:02 ` dougkwan at google dot com
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: dougkwan at google dot com @ 2007-10-31 18:00 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from dougkwan at google dot com 2007-10-31 18:00 -------
Subject: Re: New: [4.3 Regression] r129030 breaks -fopenmp -static compile of
tramp3d-v4
I'm looking at that.
-Doug
31 Oct 2007 14:52:04 -0000, rguenth at gcc dot gnu dot org
<gcc-bugzilla@gcc.gnu.org>:
> Starting with r129030 tramp3d-v4 segfaults on startup if compiled statically
> with -fopenmp. This can be reproduced with the preprocessed testcase from
> http://www.suse.de/~rguenther/tramp3d/tramp3d-v4.ii.gz (x86_64) and compiling
> with -fopenmp -static (optimization does not change the effect).
>
> Author: jason
> Date: Fri Oct 5 05:35:46 2007
> New Revision: 129030
>
> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129030
> Log:
> 2007-09-13 Doug Kwan <dougkwan@google.com>
>
> * gcc/gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
> __gthread_cond_wait_recursive): Add to extend interface for POSIX
> conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
> support of conditional variables.
> * gcc/gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
> __gthread_cond_wait_recursive): Add to extend interface for POSIX
> conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
> support of conditional variables.
> * gcc/gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
> __gthread_cond_wait_recursive): Add to extend interface for POSIX
> conditional variables.
> * gcc/gthr.h: Update comments to document new interface.
> * libstdc++-v3/include/ext/concurrent.h (class __mutex,
> class __recursive_mutex): Add new method gthread_mutex to access
> inner gthread mutex.
> [__GTHREAD_HAS_COND] (class __concurrence_broadcast_error,
> class __concurrence_wait_error, class __cond): Add.
> * guard.cc (recursive_push, recursive_pop): Delete.
> (init_in_progress_flag, set_init_in_progress_flag): Add to
> replace recursive_push and recursive_pop.
> (throw_recursive_init_exception): Add.
> (acquire, __cxa_guard_acquire, __cxa_guard_abort and
> __cxa_guard_release): [__GTHREAD_HAS_COND] Use a conditional
> for synchronization of static variable initialization.
> The global mutex is only held briefly when guards are
> accessed. [!__GTHREAD_HAS_COND] Fall back to the old code,
> which deadlocks.
> * testsuite/thread/guard.cc: Add new test. It deadlocks with the
> old locking code in libstdc++-v3/libsup++/guard.cc.
>
>
> --
> Summary: [4.3 Regression] r129030 breaks -fopenmp -static compile
> of tramp3d-v4
> Product: gcc
> Version: 4.3.0
> Status: UNCONFIRMED
> Keywords: wrong-code
> Severity: normal
> Priority: P3
> Component: c++
> AssignedTo: unassigned at gcc dot gnu dot org
> ReportedBy: rguenth at gcc dot gnu dot org
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (4 preceding siblings ...)
2007-10-31 18:00 ` dougkwan at google dot com
@ 2007-11-02 2:02 ` dougkwan at google dot com
2007-11-02 2:21 ` ian at airs dot com
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: dougkwan at google dot com @ 2007-11-02 2:02 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from dougkwan at google dot com 2007-11-02 02:02 -------
Richard,
I think I know what happened. Could you please do an
nm a.out|grep " pthread_"
or your executable and send that to me? It seems that we need to change glibc
unfortunately. Here is code at the end of libc/nptl/pthread_create.c:
/* If pthread_create is present, libgcc_eh.a and libsupc++.a expects some other
POSIX thread
functions to be present as well. */
PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_lock)
PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_unlock)
PTHREAD_STATIC_FN_REQUIRE (pthread_once)
PTHREAD_STATIC_FN_REQUIRE (pthread_cancel)
PTHREAD_STATIC_FN_REQUIRE (pthread_key_create)
PTHREAD_STATIC_FN_REQUIRE (pthread_setspecific)
PTHREAD_STATIC_FN_REQUIRE (pthread_getspecific)
When the linker sees pthread_create, it will also bring in pthread_mutex_lock
and pthread_mutex_unlock automatically but not pthread_cond_broadcast and
pthread_cond_wait. Those two symbols are defined as weak references so they
will remain NULL. Apparently the fix is to add dependency of
pthread_cond_broadcast and pthread_cond_wait into glibc.
A band-aid is removing the #define __GTHREAD_HAS_COND in gthr-posix*.h to
diasable the new code temporarily and util glibc is fixed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (5 preceding siblings ...)
2007-11-02 2:02 ` dougkwan at google dot com
@ 2007-11-02 2:21 ` ian at airs dot com
2007-11-02 14:05 ` rguenth at gcc dot gnu dot org
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ian at airs dot com @ 2007-11-02 2:21 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from ian at airs dot com 2007-11-02 02:20 -------
It seems that this is only a problem for a static link. And it would
presumably work fine if we had strong references to the functions we need. So
let's just do this at the end of guard.cc:
#if !defined(__PIC__) && defined(__GLIBC__) && defined(__GTHREAD_HAS_COND)
asm(".globl pthread_cond_wait");
asm(".globl pthread_cond_broadcast");
#endif
Seems like that should work.
--
ian at airs dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (6 preceding siblings ...)
2007-11-02 2:21 ` ian at airs dot com
@ 2007-11-02 14:05 ` rguenth at gcc dot gnu dot org
2007-11-02 14:24 ` jakub at redhat dot com
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-11-02 14:05 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from rguenth at gcc dot gnu dot org 2007-11-02 14:05 -------
Yes, the analysis from comment #6 looks correct - Jakub, can you take care of
the
required glibc fix? I'll check if Ians trick works as well.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu dot org
Last reconfirmed|0000-00-00 00:00:00 |2007-11-02 14:05:30
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (7 preceding siblings ...)
2007-11-02 14:05 ` rguenth at gcc dot gnu dot org
@ 2007-11-02 14:24 ` jakub at redhat dot com
2007-11-02 16:39 ` rguenth at gcc dot gnu dot org
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: jakub at redhat dot com @ 2007-11-02 14:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from jakub at redhat dot com 2007-11-02 14:24 -------
The only at least partially workable way of linking statically against NPTL
libpthread.a is -Wl,--whole-archive -lpthread -Wl,--no-whole-archive.
There is just a huge amount of issues if you don't have everything in there in
(e.g. the various cancellation wrappers, which for dynamically linked code can
handle cancellation even in libc.so, but not so for the heavily unsupported
static linking. Guess we should just change glibc Makefiles to ld -r all
libpthread.a
objects together and install that as libpthread.a instead.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (8 preceding siblings ...)
2007-11-02 14:24 ` jakub at redhat dot com
@ 2007-11-02 16:39 ` rguenth at gcc dot gnu dot org
2007-11-02 16:43 ` rguenth at gcc dot gnu dot org
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-11-02 16:39 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from rguenth at gcc dot gnu dot org 2007-11-02 16:39 -------
The trick from comment #7 doesn't work.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (9 preceding siblings ...)
2007-11-02 16:39 ` rguenth at gcc dot gnu dot org
@ 2007-11-02 16:43 ` rguenth at gcc dot gnu dot org
2007-11-19 6:06 ` pinskia at gcc dot gnu dot org
2007-11-19 7:33 ` jakub at gcc dot gnu dot org
12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-11-02 16:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from rguenth at gcc dot gnu dot org 2007-11-02 16:43 -------
Linking pthread with --whole-archive works.
Re comment #6 - here's the output of nm tramp3d-v4 | grep " pthread_"
0000000000569440 T pthread_attr_destroy
0000000000569480 T pthread_attr_getstacksize
0000000000569420 W pthread_attr_init
000000000056a980 W pthread_attr_setaffinity_np
0000000000569460 T pthread_attr_setdetachstate
00000000005694a0 T pthread_attr_setstacksize
000000000056a150 T pthread_cancel
w pthread_cond_broadcast
w pthread_cond_wait
0000000000568400 W pthread_create
000000000056a7d0 W pthread_getaffinity_np
0000000000569fd0 T pthread_getspecific
0000000000569f70 T pthread_key_create
00000000005694c0 T pthread_mutex_lock
0000000000569f30 T pthread_mutex_unlock
000000000056a1c0 T pthread_once
0000000000569410 T pthread_self
000000000056a8d0 W pthread_setaffinity_np
w pthread_setcancelstate
000000000056a050 T pthread_setspecific
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
Ever Confirmed|0 |1
Last reconfirmed|2007-11-02 14:05:30 |2007-11-02 16:43:03
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (10 preceding siblings ...)
2007-11-02 16:43 ` rguenth at gcc dot gnu dot org
@ 2007-11-19 6:06 ` pinskia at gcc dot gnu dot org
2007-11-19 7:33 ` jakub at gcc dot gnu dot org
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-11-19 6:06 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/33960] [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
` (11 preceding siblings ...)
2007-11-19 6:06 ` pinskia at gcc dot gnu dot org
@ 2007-11-19 7:33 ` jakub at gcc dot gnu dot org
12 siblings, 0 replies; 14+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-11-19 7:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from jakub at gcc dot gnu dot org 2007-11-19 07:33 -------
This is not a bug on the GCC side.
--
jakub at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33960
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2007-11-19 7:33 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-31 14:52 [Bug c++/33960] New: [4.3 Regression] r129030 breaks -fopenmp -static compile of tramp3d-v4 rguenth at gcc dot gnu dot org
2007-10-31 14:54 ` [Bug c++/33960] " rguenth at gcc dot gnu dot org
2007-10-31 14:59 ` rguenth at gcc dot gnu dot org
2007-10-31 15:23 ` rguenth at gcc dot gnu dot org
2007-10-31 15:49 ` pinskia at gcc dot gnu dot org
2007-10-31 18:00 ` dougkwan at google dot com
2007-11-02 2:02 ` dougkwan at google dot com
2007-11-02 2:21 ` ian at airs dot com
2007-11-02 14:05 ` rguenth at gcc dot gnu dot org
2007-11-02 14:24 ` jakub at redhat dot com
2007-11-02 16:39 ` rguenth at gcc dot gnu dot org
2007-11-02 16:43 ` rguenth at gcc dot gnu dot org
2007-11-19 6:06 ` pinskia at gcc dot gnu dot org
2007-11-19 7:33 ` jakub at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).