public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
@ 2012-10-12 13:02 howarth at nitro dot med.uc.edu
  2012-10-12 13:22 ` [Bug target/54908] " howarth at nitro dot med.uc.edu
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-12 13:02 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 54908
           Summary: misc regressions on emutls targets remain from dynamic
                    initialization of non-function-local TLS variables
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: howarth@nitro.med.uc.edu


At r192374, a number of regressions from the introduction of dynamic
initialization of non-function-local TLS variables still remain on emutls
targets like x86_64-apple-darwin12. These include...

FAIL: g++.dg/gomp/tls-5.C -std=c++11 (test for excess errors)
FAIL: g++.dg/tls/thread_local-cse.C (test for excess errors)
WARNING: g++.dg/tls/thread_local-cse.C compilation failed to produce executable
FAIL: g++.dg/tls/thread_local-order1.C (test for excess errors)
WARNING: g++.dg/tls/thread_local-order1.C compilation failed to produce
executable
FAIL: g++.dg/tls/thread_local-order2.C (test for excess errors)
WARNING: g++.dg/tls/thread_local-order2.C compilation failed to produce
executable
FAIL: g++.dg/tls/thread_local2g.C (test for excess errors)
WARNING: g++.dg/tls/thread_local2g.C compilation failed to produce executable
FAIL: g++.dg/tls/thread_local3.C -std=gnu++11 execution test
FAIL: g++.dg/tls/thread_local3g.C -std=gnu++11 (test for excess errors)
WARNING: g++.dg/tls/thread_local3g.C -std=gnu++11 compilation failed to produce
executable
FAIL: g++.dg/tls/thread_local4.C -std=gnu++11 execution test
FAIL: g++.dg/tls/thread_local4g.C -std=gnu++11 (test for excess errors)
WARNING: g++.dg/tls/thread_local4g.C -std=gnu++11 compilation failed to produce
executable
FAIL: g++.dg/tls/thread_local5.C -std=gnu++11 execution test
FAIL: g++.dg/tls/thread_local5g.C -std=gnu++11 (test for excess errors)
WARNING: g++.dg/tls/thread_local5g.C -std=gnu++11 compilation failed to produce
executable
FAIL: g++.dg/tls/thread_local6g.C (test for excess errors)
WARNING: g++.dg/tls/thread_local6g.C compilation failed to produce executable
FAIL: g++.dg/tls/thread_local7g.C (test for excess errors)
UNRESOLVED: g++.dg/tls/thread_local7g.C scan-assembler-not \\\\.data

FAIL: libgomp.c++/pr24455.C  -O0  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -O0  compilation failed to produce executable
FAIL: libgomp.c++/pr24455.C  -O1  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -O1  compilation failed to produce executable
FAIL: libgomp.c++/pr24455.C  -O2  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -O2  compilation failed to produce executable
FAIL: libgomp.c++/pr24455.C  -O3 -fomit-frame-pointer  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -O3 -fomit-frame-pointer  compilation failed to
produce executable
FAIL: libgomp.c++/pr24455.C  -O3 -fomit-frame-pointer -funroll-loops  (test for
excess errors)
WARNING: libgomp.c++/pr24455.C  -O3 -fomit-frame-pointer -funroll-loops 
compilation failed to produce executable
FAIL: libgomp.c++/pr24455.C  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  compilation failed to produce executable
FAIL: libgomp.c++/pr24455.C  -O3 -g  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -O3 -g  compilation failed to produce
executable
FAIL: libgomp.c++/pr24455.C  -Os  (test for excess errors)
WARNING: libgomp.c++/pr24455.C  -Os  compilation failed to produce executable
FAIL: libgomp.c++/tls-init1.C  -O  (test for excess errors)
WARNING: libgomp.c++/tls-init1.C  -O  compilation failed to produce executable


The failures all show warnings of the form...

/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20121011/gcc/testsuite/g++.dg/tls/thread_local-cse.C:15:18:
sorry, unimplemented: dynamic initialization of non-function-local thread_local
variables not supported on this target


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
@ 2012-10-12 13:22 ` howarth at nitro dot med.uc.edu
  2012-10-12 15:44 ` howarth at nitro dot med.uc.edu
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-12 13:22 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #1 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-12 13:21:27 UTC ---
I don't know if this is too strict for non-emutls targets but on
x86_64-apple-darwin12, adding...

// { dg-require-effective-target tls_native }

to the failing testcases converts them into unsupported tests. Or will support
for dynamic initialization of non-function-local TLS variables be expanded to
emutls?


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
  2012-10-12 13:22 ` [Bug target/54908] " howarth at nitro dot med.uc.edu
@ 2012-10-12 15:44 ` howarth at nitro dot med.uc.edu
  2012-10-12 15:49 ` howarth at nitro dot med.uc.edu
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-12 15:44 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #2 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-12 15:44:24 UTC ---
Created attachment 28433
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28433
patch to suppress dynamic initialization of non-function-local TLS variables
failures on emutls


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
  2012-10-12 13:22 ` [Bug target/54908] " howarth at nitro dot med.uc.edu
  2012-10-12 15:44 ` howarth at nitro dot med.uc.edu
@ 2012-10-12 15:49 ` howarth at nitro dot med.uc.edu
  2012-10-12 18:38 ` jason at gcc dot gnu.org
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-12 15:49 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #3 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-12 15:48:47 UTC ---
The patch in comment 2 suppresses the failures on x86_64-apple-darwin12. Note
that I had to move dg-run to the top of
gcc/testsuite/g++.dg/tls/thread_local-cse.C for the addition of "// {
dg-require-effective-target tls_native }" to be honored. It is unfortunate that
the dynamic initialization of non-function-local TLS variables loses us so many
test cases on emutls.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (2 preceding siblings ...)
  2012-10-12 15:49 ` howarth at nitro dot med.uc.edu
@ 2012-10-12 18:38 ` jason at gcc dot gnu.org
  2012-10-12 18:51 ` dominiq at lps dot ens.fr
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at gcc dot gnu.org @ 2012-10-12 18:38 UTC (permalink / raw)
  To: gcc-bugs


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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2012-10-12
                 CC|                            |jason at gcc dot gnu.org
         AssignedTo|unassigned at gcc dot       |jason at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> 2012-10-12 18:38:06 UTC ---
I think the right fix is to use pthread TLS rather than thread_local in
atexit_thread.cc, so that it doesn't matter when emutls frees its storage.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (3 preceding siblings ...)
  2012-10-12 18:38 ` jason at gcc dot gnu.org
@ 2012-10-12 18:51 ` dominiq at lps dot ens.fr
  2012-10-15  7:32 ` jason at gcc dot gnu.org
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: dominiq at lps dot ens.fr @ 2012-10-12 18:51 UTC (permalink / raw)
  To: gcc-bugs


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

Dominique d'Humieres <dominiq at lps dot ens.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|x86_64-apple-darwin12       |*-apple-darwin*
               Host|x86_64-apple-darwin12       |*-apple-darwin*
              Build|x86_64-apple-darwin12       |*-apple-darwin*

--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2012-10-12 18:50:43 UTC ---
AFAICT 

(1) the failures for libgomp.c++/pr24455.C are (at least for
x86_64-apple-darwin10)

FAIL: libgomp.c++/pr24455.C  -O*  (test for excess errors)
Excess errors:
Undefined symbols:
  "TLS init function for i", referenced from:
      TLS wrapper function for i in ccoTk54U.o
      __ZTH1i$non_lazy_ptr in ccoTk54U.o
     (maybe you meant: __ZTH1i$non_lazy_ptr)
ld: symbol(s) not found

(2) The error "... dynamic initialization of non-function-local ..." comes from
gcc/cp/decl2.c if ASM_OUTPUT_DEF is not defined. I see in gcc/config/darwin.c

/* The Darwin's implementation of TARGET_ASM_OUTPUT_ANCHOR.  Define the
   anchor relative to ".", the current section position.  We cannot use
   the default one because ASM_OUTPUT_DEF is wrong for Darwin.  */


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (4 preceding siblings ...)
  2012-10-12 18:51 ` dominiq at lps dot ens.fr
@ 2012-10-15  7:32 ` jason at gcc dot gnu.org
  2012-10-15  7:43 ` jason at gcc dot gnu.org
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at gcc dot gnu.org @ 2012-10-15  7:32 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> 2012-10-15 07:32:24 UTC ---
Author: jason
Date: Mon Oct 15 07:32:13 2012
New Revision: 192449

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192449
Log:
    PR target/54908
    * libsupc++/atexit_thread.cc: Rewrite to keep the cleanup list
    with get/setspecific.  Destroy the key on dlclose.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/tls/thread_local7g.C
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/libsupc++/atexit_thread.cc


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (5 preceding siblings ...)
  2012-10-15  7:32 ` jason at gcc dot gnu.org
@ 2012-10-15  7:43 ` jason at gcc dot gnu.org
  2012-10-15 14:08 ` howarth at nitro dot med.uc.edu
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at gcc dot gnu.org @ 2012-10-15  7:43 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> 2012-10-15 07:43:16 UTC ---
(In reply to comment #5)
> Undefined symbols:
>   "TLS init function for i", referenced from:
>       TLS wrapper function for i in ccoTk54U.o
>       __ZTH1i$non_lazy_ptr in ccoTk54U.o
>      (maybe you meant: __ZTH1i$non_lazy_ptr)

The wrapper tries to use a weak reference to the init function so that if the
variable doesn't need dynamic initialization it can just omit the init function
so the wrapper won't call it.  This seems to not be working on darwin, but I
thought darwin had weakrefs?


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (6 preceding siblings ...)
  2012-10-15  7:43 ` jason at gcc dot gnu.org
@ 2012-10-15 14:08 ` howarth at nitro dot med.uc.edu
  2012-10-15 14:24 ` howarth at nitro dot med.uc.edu
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-15 14:08 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #8 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-15 14:07:26 UTC ---
At r192457 on x86_64-apple-darwin12, I am still seeing the failures in tls.exp
due to the absence of ASM_OUTPUT_DEF support on darwin. Any chance we can get
the "FIXME other targets could use small thunks instead of aliases." in
handle_tls_init () of gcc/cp/decl2.c implemented for gcc 4.8?


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (7 preceding siblings ...)
  2012-10-15 14:08 ` howarth at nitro dot med.uc.edu
@ 2012-10-15 14:24 ` howarth at nitro dot med.uc.edu
  2012-10-16 15:51 ` howarth at nitro dot med.uc.edu
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-15 14:24 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #9 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-15 14:24:00 UTC ---
(In reply to comment #7)
> (In reply to comment #5)
> > Undefined symbols:
> >   "TLS init function for i", referenced from:
> >       TLS wrapper function for i in ccoTk54U.o
> >       __ZTH1i$non_lazy_ptr in ccoTk54U.o
> >      (maybe you meant: __ZTH1i$non_lazy_ptr)
> 
> The wrapper tries to use a weak reference to the init function so that if the
> variable doesn't need dynamic initialization it can just omit the init function
> so the wrapper won't call it.  This seems to not be working on darwin, but I
> thought darwin had weakrefs?

At r192457 on x86_64-apple-darwin12, this failure still exists but can be
converted into passes with the change...

Index: libgomp/testsuite/libgomp.c++/pr24455.C
===================================================================
--- libgomp/testsuite/libgomp.c++/pr24455.C    (revision 192457)
+++ libgomp/testsuite/libgomp.c++/pr24455.C    (working copy)
@@ -1,6 +1,7 @@
 // { dg-do run }
 // { dg-additional-sources pr24455-1.C }
 // { dg-require-effective-target tls_runtime }
+// { dg-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } }

 extern "C" void abort (void);

The failures at -m32/-m64 of...

FAIL: libgomp.c++/tls-init1.C  -O  (test for excess errors)
WARNING: libgomp.c++/tls-init1.C  -O  compilation failed to produce executable

still remain due to the usage of ASM_OUTPUT_DEF as with the remaining failing
g++.dg testcases.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (8 preceding siblings ...)
  2012-10-15 14:24 ` howarth at nitro dot med.uc.edu
@ 2012-10-16 15:51 ` howarth at nitro dot med.uc.edu
  2012-12-15  4:16 ` [Bug target/54908] [4.8 regression] " jason at gcc dot gnu.org
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: howarth at nitro dot med.uc.edu @ 2012-10-16 15:51 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #10 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-16 15:50:45 UTC ---
Note that the fix in comment 9 for libgomp/testsuite/libgomp.c++/pr24455.C
works for Xcode 3.2.6 and earlier on darwin10 but not Xcode 4.2. This is
because Apple broke weak symbol lookup in Xcode 4.2's linker (radr://10466868,
"-undefined dynamic_lookup linker bug"). This issue wasn't fixed until Xcode
4.4 (which is only available on darwin11 and darwin12). 

Note that a simple testcase for this bug is...

--------------- weak.c ---------------------
#include <stdio.h>

char *myweakfunc(void) __attribute__((weak)) ;

int main(int argc, char **argv)
{
  if (myweakfunc)
    printf ("found myweakfunc %s\n", myweakfunc());
  else
    printf("Weak func not found\n");
  return 0;
}
--------------------------------------------

% gcc weak.c -o wk -undefined dynamic_lookup
% ./wk
Weak func not found


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] [4.8 regression] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (9 preceding siblings ...)
  2012-10-16 15:51 ` howarth at nitro dot med.uc.edu
@ 2012-12-15  4:16 ` jason at gcc dot gnu.org
  2013-01-19  5:25 ` jason at gcc dot gnu.org
  2013-02-01 17:53 ` jason at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: jason at gcc dot gnu.org @ 2012-12-15  4:16 UTC (permalink / raw)
  To: gcc-bugs


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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|4.7.0                       |4.8.0
   Target Milestone|---                         |4.8.0
            Summary|misc regressions on emutls  |[4.8 regression] misc
                   |targets remain from dynamic |regressions on emutls
                   |initialization of           |targets remain from dynamic
                   |non-function-local TLS      |initialization of
                   |variables                   |non-function-local TLS
                   |                            |variables


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] [4.8 regression] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (10 preceding siblings ...)
  2012-12-15  4:16 ` [Bug target/54908] [4.8 regression] " jason at gcc dot gnu.org
@ 2013-01-19  5:25 ` jason at gcc dot gnu.org
  2013-02-01 17:53 ` jason at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: jason at gcc dot gnu.org @ 2013-01-19  5:25 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #11 from Jason Merrill <jason at gcc dot gnu.org> 2013-01-19 05:25:32 UTC ---
Author: jason
Date: Sat Jan 19 05:25:25 2013
New Revision: 195310

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195310
Log:
    PR target/54908
c-family/
    * c.opt (-fextern-tls-init): New.
    * c-opts.c (c_common_post_options): Handle it.
cp/
    * decl2.c (get_local_tls_init_fn): New.
    (get_tls_init_fn): Handle flag_extern_tls_init.  Don't bother
    with aliases for internal variables.  Don't use weakrefs if
    the variable needs destruction.
    (generate_tls_wrapper): Mark the wrapper as const if no
    initialization is needed.
    (handle_tls_init): Don't require aliases.

Modified:
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-opts.c
    trunk/gcc/c-family/c.opt
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/decl2.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/g++.dg/gomp/tls-wrap3.C
    trunk/gcc/testsuite/g++.dg/tls/thread_local-wrap3.C
    trunk/libgomp/testsuite/libgomp.c++/pr24455.C


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug target/54908] [4.8 regression] misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables
  2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
                   ` (11 preceding siblings ...)
  2013-01-19  5:25 ` jason at gcc dot gnu.org
@ 2013-02-01 17:53 ` jason at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: jason at gcc dot gnu.org @ 2013-02-01 17:53 UTC (permalink / raw)
  To: gcc-bugs


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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #12 from Jason Merrill <jason at gcc dot gnu.org> 2013-02-01 17:53:17 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-02-01 17:53 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-12 13:02 [Bug target/54908] New: misc regressions on emutls targets remain from dynamic initialization of non-function-local TLS variables howarth at nitro dot med.uc.edu
2012-10-12 13:22 ` [Bug target/54908] " howarth at nitro dot med.uc.edu
2012-10-12 15:44 ` howarth at nitro dot med.uc.edu
2012-10-12 15:49 ` howarth at nitro dot med.uc.edu
2012-10-12 18:38 ` jason at gcc dot gnu.org
2012-10-12 18:51 ` dominiq at lps dot ens.fr
2012-10-15  7:32 ` jason at gcc dot gnu.org
2012-10-15  7:43 ` jason at gcc dot gnu.org
2012-10-15 14:08 ` howarth at nitro dot med.uc.edu
2012-10-15 14:24 ` howarth at nitro dot med.uc.edu
2012-10-16 15:51 ` howarth at nitro dot med.uc.edu
2012-12-15  4:16 ` [Bug target/54908] [4.8 regression] " jason at gcc dot gnu.org
2013-01-19  5:25 ` jason at gcc dot gnu.org
2013-02-01 17:53 ` jason at gcc dot gnu.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).