* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
@ 2012-02-10 11:21 ` rguenth at gcc dot gnu.org
2012-02-10 11:26 ` redi at gcc dot gnu.org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-10 11:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ABI
Target Milestone|--- |4.7.0
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-10 11:20:33 UTC ---
4) Don't export them (thus, eventually live with undefined symbols?)
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
2012-02-10 11:21 ` [Bug libstdc++/52189] " rguenth at gcc dot gnu.org
@ 2012-02-10 11:26 ` redi at gcc dot gnu.org
2012-02-10 11:29 ` redi at gcc dot gnu.org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: redi at gcc dot gnu.org @ 2012-02-10 11:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-10 11:25:35 UTC ---
This change:
--- baseline_symbols.txt 2012-01-23 19:01:03.590486000 +0100
+++ baseline_symbols.txt.s8g 2012-01-23 19:03:38.063402000 +0100
@@ -2176,0 +2177 @@
+FUNC:_ZSt16__get_once_mutexv@@GLIBCXX_3.4.12
@@ -2209,0 +2211 @@
+FUNC:_ZSt23__get_once_functor_lockv@@GLIBCXX_3.4.11
@@ -2212,0 +2215 @@
+FUNC:_ZSt27__set_once_functor_lock_ptrPSt11unique_lockISt5mutexE@@GLIBCXX_3.4.12
@@ -2649,0 +2653 @@
+OBJECT:16:_ZSt14__once_functor@@GLIBCXX_3.4.11
@@ -2715,2 +2718,0 @@
-OBJECT:16:__emutls_v._ZSt11__once_call@@GLIBCXX_3.4.15
-OBJECT:16:__emutls_v._ZSt15__once_callable@@GLIBCXX_3.4.15
indicates that it was previously using TLS and now isn't (as discussed in PR
52104) so that's what should be fixed to bring the __once_call* symbols back
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
2012-02-10 11:21 ` [Bug libstdc++/52189] " rguenth at gcc dot gnu.org
2012-02-10 11:26 ` redi at gcc dot gnu.org
@ 2012-02-10 11:29 ` redi at gcc dot gnu.org
2012-02-10 11:31 ` redi at gcc dot gnu.org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: redi at gcc dot gnu.org @ 2012-02-10 11:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-10 11:29:09 UTC ---
(In reply to comment #0)
> * Default to --disable-threads on Solaris 8/9 to avoid breaking symbol
> versioning. That's my current preference, but certainly requires
> documentation
> explaining the choice, since it's obviously a pity.
Or override the autoconf check which decides to enable C++11 thread support,
which would only disable std::thread, std::future etc. (the source of the
problem symbols) rather than disabling all thread support.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
` (2 preceding siblings ...)
2012-02-10 11:29 ` redi at gcc dot gnu.org
@ 2012-02-10 11:31 ` redi at gcc dot gnu.org
2012-02-16 20:07 ` ro at CeBiTec dot Uni-Bielefeld.DE
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: redi at gcc dot gnu.org @ 2012-02-10 11:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-10 11:31:22 UTC ---
i.e #undef _GLIBCXX_HAS_GTHREADS
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
` (3 preceding siblings ...)
2012-02-10 11:31 ` redi at gcc dot gnu.org
@ 2012-02-16 20:07 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-16 20:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2012-02-16 20:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #6 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2012-02-16 20:04:42 UTC ---
> --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-10 11:25:35 UTC ---
> This change:
>
> --- baseline_symbols.txt 2012-01-23 19:01:03.590486000 +0100
> +++ baseline_symbols.txt.s8g 2012-01-23 19:03:38.063402000 +0100
> @@ -2176,0 +2177 @@
> +FUNC:_ZSt16__get_once_mutexv@@GLIBCXX_3.4.12
> @@ -2209,0 +2211 @@
> +FUNC:_ZSt23__get_once_functor_lockv@@GLIBCXX_3.4.11
> @@ -2212,0 +2215 @@
> +FUNC:_ZSt27__set_once_functor_lock_ptrPSt11unique_lockISt5mutexE@@GLIBCXX_3.4.12
> @@ -2649,0 +2653 @@
> +OBJECT:16:_ZSt14__once_functor@@GLIBCXX_3.4.11
> @@ -2715,2 +2718,0 @@
> -OBJECT:16:__emutls_v._ZSt11__once_call@@GLIBCXX_3.4.15
> -OBJECT:16:__emutls_v._ZSt15__once_callable@@GLIBCXX_3.4.15
>
> indicates that it was previously using TLS and now isn't (as discussed in PR
> 52104) so that's what should be fixed to bring the __once_call* symbols back
It's rather the other way round: baseline_symbols.txt (i.e. native tools
where as lacks TLS support) is with emutls, while
baseline_symbols.txt.s8g uses gas/ld (or gas/gld) with native TLS. What
put me off at first was that both symbols were removed and added, but
Jakub already provided the solution: omit the emutls symbols in the
installed baseline.txt, so both emutls and native TLS only adds to the
baseline.
Rainer
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
` (4 preceding siblings ...)
2012-02-16 20:07 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2012-02-16 20:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-16 20:48 ` ro at CeBiTec dot Uni-Bielefeld.DE
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2012-02-16 20:30 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #5 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2012-02-16 20:02:08 UTC ---
> --- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-10 11:20:33 UTC ---
> 4) Don't export them (thus, eventually live with undefined symbols?)
Right, that's what my patch does, with the options for users to override
that if they don't care about compatiblity.
Rainer
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
` (5 preceding siblings ...)
2012-02-16 20:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2012-02-16 20:48 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-17 13:45 ` ro at gcc dot gnu.org
2012-02-17 14:44 ` ro at gcc dot gnu.org
8 siblings, 0 replies; 10+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2012-02-16 20:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2012-02-16 20:05:27 UTC ---
> --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-10 11:29:09 UTC ---
> (In reply to comment #0)
>> * Default to --disable-threads on Solaris 8/9 to avoid breaking symbol
>> versioning. That's my current preference, but certainly requires
>> documentation
>> explaining the choice, since it's obviously a pity.
>
> Or override the autoconf check which decides to enable C++11 thread support,
> which would only disable std::thread, std::future etc. (the source of the
> problem symbols) rather than disabling all thread support.
That's what my patch does.
Thanks.
Rainer
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
` (6 preceding siblings ...)
2012-02-16 20:48 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2012-02-17 13:45 ` ro at gcc dot gnu.org
2012-02-17 14:44 ` ro at gcc dot gnu.org
8 siblings, 0 replies; 10+ messages in thread
From: ro at gcc dot gnu.org @ 2012-02-17 13:45 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
--- Comment #8 from Rainer Orth <ro at gcc dot gnu.org> 2012-02-17 13:38:22 UTC ---
Author: ro
Date: Fri Feb 17 13:38:15 2012
New Revision: 184335
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184335
Log:
Disable gthreads on Solaris 8/9 (PR libstdc++/52189)
PR libstdc++/52189
* acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Handle
--enable-libstdcxx-threads.
Disable on Solaris 8/9 with symbol versioning.
* configure.ac (GLIBCXX_CHECK_GTHREADS): Move after
GLIBCXX_ENABLE_SYMVERS.
* configure: Regenerate.
* doc/xml/manual/configure.xml (--enable-libstdcxx-threads): Explain.
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/acinclude.m4
trunk/libstdc++-v3/configure
trunk/libstdc++-v3/configure.ac
trunk/libstdc++-v3/doc/xml/manual/configure.xml
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libstdc++/52189] [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning
2012-02-09 18:44 [Bug libstdc++/52189] New: [4.7 regression] Relaxed gthreads check breaks Solaris 8/9 symbol versioning ro at gcc dot gnu.org
` (7 preceding siblings ...)
2012-02-17 13:45 ` ro at gcc dot gnu.org
@ 2012-02-17 14:44 ` ro at gcc dot gnu.org
8 siblings, 0 replies; 10+ messages in thread
From: ro at gcc dot gnu.org @ 2012-02-17 14:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52189
Rainer Orth <ro at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
URL| |http://gcc.gnu.org/ml/gcc-p
| |atches/2012-02/msg00937.htm
| |l
Resolution| |FIXED
AssignedTo|unassigned at gcc dot |ro at gcc dot gnu.org
|gnu.org |
--- Comment #9 from Rainer Orth <ro at gcc dot gnu.org> 2012-02-17 13:45:01 UTC ---
Fixed for 4.7.0.
^ permalink raw reply [flat|nested] 10+ messages in thread