* [testsuite] Fix g++.dg/tls/thread_local* on Solaris 9
@ 2013-01-08 15:46 Rainer Orth
2013-01-10 13:55 ` Rainer Orth
0 siblings, 1 reply; 2+ messages in thread
From: Rainer Orth @ 2013-01-08 15:46 UTC (permalink / raw)
To: gcc-patches; +Cc: Eric Botcazou
[-- Attachment #1: Type: text/plain, Size: 2811 bytes --]
I'm seeing various failures in the g++.dg/tls/thread_local* tests on
Solaris 9:
With Sun as, I have
XPASS: g++.dg/tls/thread_local-cse.C execution test
XPASS: g++.dg/tls/thread_local2.C execution test
XPASS: g++.dg/tls/thread_local2g.C execution test
XPASS: g++.dg/tls/thread_local6.C execution test
on both SPARC and x86.
The Solaris 9 with as configuration uses emutls. These errors are due
to Eric's patch
2012-11-19 Eric Botcazou <ebotcazou@adacore.com>
* g++.dg/tls/thread_local-order1.C: Add dg-require-cxa-atexit.
* g++.dg/tls/thread_local3g.C: Likewise.
* g++.dg/tls/thread_local4g.C: Likewise.
* g++.dg/tls/thread_local5g.C: Likewise.
* g++.dg/tls/thread_local6g.C: Likewise.
* g++.dg/tls/thread_local-cse.C: XFAIL on Solaris 9.
* g++.dg/tls/thread_local2.C: Likewise.
* g++.dg/tls/thread_local2g.C: Likewise.
* g++.dg/tls/thread_local6.C: Likewise.
The XFAILs are wrong, instead one just needs to use dg-add-options tls,
which the patch below does.
Solaris 9/x86 with as also has
FAIL: g++.dg/tls/thread_local-wrap4.C scan-assembler-not _ZTW1i@PLT
The difference between the as and gas outputs is
-.LCFI2:
- call .LPR3
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
- call _ZTW1i@PLT
+ call _ZTW1i
No idea how best to handle this.
On Solaris 9, 10, and 11/x86 with gas and gld, I find
FAIL: g++.dg/tls/thread_local-order1.C execution test
FAIL: g++.dg/tls/thread_local3g.C -std=gnu++11 execution test
FAIL: g++.dg/tls/thread_local4g.C -std=gnu++11 execution test
FAIL: g++.dg/tls/thread_local5g.C -std=gnu++11 execution test
FAIL: g++.dg/tls/thread_local6g.C execution test
This happens (as in two other testcases, cf. PR c++/51923) since the
dg-require-cxa-atexit test passes on Solaris with gld though the
platform doesn't have __cxa_atexit and I'm ignoring it for now.
The patch below adds the missing dg-add-options tls in all run tests,
not just the immediately affected ones.
Tested with the appropriate runtest invocations on
{i386-pc,sparc-sun}-solaris2.{9,10} and x86_64-unknown-linux-gnu.
Ok for mainline?
Rainer
2013-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* g++.dg/tls/thread_local-cse.C: Don't xfail on *-*-solaris2.9.
Add tls options.
* g++.dg/tls/thread_local2.C: Likewise.
* g++.dg/tls/thread_local2g.C: Likewise.
* g++.dg/tls/thread_local6.C: Likewise.
* g++.dg/tls/thread_local-order1.C: Add tls options.
* g++.dg/tls/thread_local-order2.C: Likewise.
* g++.dg/tls/thread_local3.C: Likewise.
* g++.dg/tls/thread_local3g.C: Likewise.
* g++.dg/tls/thread_local4.C: Likewise.
* g++.dg/tls/thread_local4g.C: Likewise.
* g++.dg/tls/thread_local5.C: Likewise.
* g++.dg/tls/thread_local5g.C: Likewise.
* g++.dg/tls/thread_local6g.C: Likewise.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: sol9-testsuite-thread_local.patch --]
[-- Type: text/x-patch, Size: 5471 bytes --]
# HG changeset patch
# Parent 7eebbf02cdbac34362d53d0bfa39b375afefb2e3
Fix g++.dg/tls/thread_local* on Solaris 9
diff --git a/gcc/testsuite/g++.dg/tls/thread_local-cse.C b/gcc/testsuite/g++.dg/tls/thread_local-cse.C
--- a/gcc/testsuite/g++.dg/tls/thread_local-cse.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local-cse.C
@@ -1,7 +1,8 @@
// Test for CSE of the wrapper function: we should only call it once
// for the two references to ir.
-// { dg-do run { xfail *-*-solaris2.9 } }
+// { dg-do run }
// { dg-options "-std=c++11 -O -fno-inline -save-temps" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
// { dg-require-alias }
// { dg-final { scan-assembler-times "call *_ZTW2ir" 1 { xfail *-*-* } } }
diff --git a/gcc/testsuite/g++.dg/tls/thread_local-order1.C b/gcc/testsuite/g++.dg/tls/thread_local-order1.C
--- a/gcc/testsuite/g++.dg/tls/thread_local-order1.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local-order1.C
@@ -1,5 +1,6 @@
// { dg-do run }
// { dg-options "-std=c++11" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
// { dg-require-alias }
// { dg-require-cxa-atexit "" }
diff --git a/gcc/testsuite/g++.dg/tls/thread_local-order2.C b/gcc/testsuite/g++.dg/tls/thread_local-order2.C
--- a/gcc/testsuite/g++.dg/tls/thread_local-order2.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local-order2.C
@@ -4,6 +4,7 @@
// { dg-do run { xfail *-*-* } }
// { dg-options "-std=c++11" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
// { dg-require-alias }
diff --git a/gcc/testsuite/g++.dg/tls/thread_local2.C b/gcc/testsuite/g++.dg/tls/thread_local2.C
--- a/gcc/testsuite/g++.dg/tls/thread_local2.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local2.C
@@ -1,5 +1,6 @@
-// { dg-do run { xfail *-*-solaris2.9 } }
+// { dg-do run }
// { dg-options "-std=c++11" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
extern "C" void abort();
diff --git a/gcc/testsuite/g++.dg/tls/thread_local2g.C b/gcc/testsuite/g++.dg/tls/thread_local2g.C
--- a/gcc/testsuite/g++.dg/tls/thread_local2g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local2g.C
@@ -1,5 +1,6 @@
-// { dg-do run { xfail *-*-solaris2.9 } }
+// { dg-do run }
// { dg-options "-std=c++11" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
// { dg-require-alias }
diff --git a/gcc/testsuite/g++.dg/tls/thread_local3.C b/gcc/testsuite/g++.dg/tls/thread_local3.C
--- a/gcc/testsuite/g++.dg/tls/thread_local3.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local3.C
@@ -3,6 +3,7 @@
// { dg-require-effective-target tls_runtime }
// { dg-require-effective-target pthread }
// { dg-options -pthread }
+// { dg-add-options tls }
int c;
int d;
diff --git a/gcc/testsuite/g++.dg/tls/thread_local3g.C b/gcc/testsuite/g++.dg/tls/thread_local3g.C
--- a/gcc/testsuite/g++.dg/tls/thread_local3g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local3g.C
@@ -5,6 +5,7 @@
// { dg-require-alias }
// { dg-require-cxa-atexit "" }
// { dg-options -pthread }
+// { dg-add-options tls }
int c;
int d;
diff --git a/gcc/testsuite/g++.dg/tls/thread_local4.C b/gcc/testsuite/g++.dg/tls/thread_local4.C
--- a/gcc/testsuite/g++.dg/tls/thread_local4.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local4.C
@@ -5,6 +5,7 @@
// { dg-require-effective-target tls_runtime }
// { dg-require-effective-target pthread }
// { dg-options -pthread }
+// { dg-add-options tls }
#include <pthread.h>
#include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/tls/thread_local4g.C b/gcc/testsuite/g++.dg/tls/thread_local4g.C
--- a/gcc/testsuite/g++.dg/tls/thread_local4g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local4g.C
@@ -7,6 +7,7 @@
// { dg-require-alias }
// { dg-require-cxa-atexit "" }
// { dg-options -pthread }
+// { dg-add-options tls }
#include <pthread.h>
#include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/tls/thread_local5.C b/gcc/testsuite/g++.dg/tls/thread_local5.C
--- a/gcc/testsuite/g++.dg/tls/thread_local5.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local5.C
@@ -5,6 +5,7 @@
// { dg-require-effective-target tls_runtime }
// { dg-require-effective-target pthread }
// { dg-options -pthread }
+// { dg-add-options tls }
#include <pthread.h>
#include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/tls/thread_local5g.C b/gcc/testsuite/g++.dg/tls/thread_local5g.C
--- a/gcc/testsuite/g++.dg/tls/thread_local5g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local5g.C
@@ -7,6 +7,7 @@
// { dg-require-alias }
// { dg-require-cxa-atexit "" }
// { dg-options -pthread }
+// { dg-add-options tls }
#include <pthread.h>
#include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/tls/thread_local6.C b/gcc/testsuite/g++.dg/tls/thread_local6.C
--- a/gcc/testsuite/g++.dg/tls/thread_local6.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local6.C
@@ -1,7 +1,8 @@
// Test for cleanups in the main thread without -pthread.
-// { dg-do run { xfail *-*-solaris2.9 } }
+// { dg-do run }
// { dg-options "-std=c++11" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
extern "C" void _exit (int);
diff --git a/gcc/testsuite/g++.dg/tls/thread_local6g.C b/gcc/testsuite/g++.dg/tls/thread_local6g.C
--- a/gcc/testsuite/g++.dg/tls/thread_local6g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local6g.C
@@ -2,6 +2,7 @@
// { dg-do run }
// { dg-options "-std=c++11" }
+// { dg-add-options tls }
// { dg-require-effective-target tls_runtime }
// { dg-require-cxa-atexit "" }
// { dg-require-alias }
[-- Attachment #3: Type: text/plain, Size: 143 bytes --]
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [testsuite] Fix g++.dg/tls/thread_local* on Solaris 9
2013-01-08 15:46 [testsuite] Fix g++.dg/tls/thread_local* on Solaris 9 Rainer Orth
@ 2013-01-10 13:55 ` Rainer Orth
0 siblings, 0 replies; 2+ messages in thread
From: Rainer Orth @ 2013-01-10 13:55 UTC (permalink / raw)
To: gcc-patches; +Cc: Eric Botcazou
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
> 2013-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
>
> * g++.dg/tls/thread_local-cse.C: Don't xfail on *-*-solaris2.9.
> Add tls options.
> * g++.dg/tls/thread_local2.C: Likewise.
> * g++.dg/tls/thread_local2g.C: Likewise.
> * g++.dg/tls/thread_local6.C: Likewise.
> * g++.dg/tls/thread_local-order1.C: Add tls options.
> * g++.dg/tls/thread_local-order2.C: Likewise.
> * g++.dg/tls/thread_local3.C: Likewise.
> * g++.dg/tls/thread_local3g.C: Likewise.
> * g++.dg/tls/thread_local4.C: Likewise.
> * g++.dg/tls/thread_local4g.C: Likewise.
> * g++.dg/tls/thread_local5.C: Likewise.
> * g++.dg/tls/thread_local5g.C: Likewise.
> * g++.dg/tls/thread_local6g.C: Likewise.
Given that there were no objections and the patch falls completely under
my Solaris and testsuite maintainerships, I've installed it.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-01-10 13:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-08 15:46 [testsuite] Fix g++.dg/tls/thread_local* on Solaris 9 Rainer Orth
2013-01-10 13:55 ` Rainer Orth
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).