summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-23 17:58:57 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-23 17:58:57 +0000
commiteedcd8ac62021450233acebe0d2d42faaf6a99c4 (patch)
tree39103be234a3e19ac19bd12912df0b40cd3fdd85 /gcc/testsuite
parent89f52430e03dbd16ae436ce4d06b09e9334baf65 (diff)
downloadgcc-eedcd8ac62021450233acebe0d2d42faaf6a99c4.tar.gz
libjava:
* configure.ac (*-*-solaris2.8): Use alternate thread library. Add libthread. (*-*-solaris2.9): Use libthread. * configure: Regenerate. libgomp: * configure.tgt (*-*-solaris2.[56]*): Removed. gcc: * configure.ac: Don't disable TLS on Solaris 8/9 by default Set tga_func for Solaris 2/x86 resp. SPARC. Remove duplicate parts of sparc*-sun-solaris2.* TLS check. (LIB_THREAD_LDFLAGS_SPEC): Define. (LIB_TLS_SPEC): Define. Check for required Sun ld version. * configure: Regenerate. * config.in: Regenerate. * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with -pthread, -threads, LIB_TLS_SPEC with -pthread. * doc/install.texi (Specific, *-*-solaris2*): Document use of alternate thread libraries on Solaris 8. Document TLS patch requirements. * doc/sourcebuild.texi (Add Options): Sort alphabetically. Document tls. PR target/18788 * config/sol2.h (LIB_SPEC): Link with thread libraries even with -shared. gcc/testsuite: * lib/target-supports.exp (add_options_for_tls): New proc. * g++.dg/tls/static-1.C: Use dg-add-options tls. * g++.dg/tls/static-1a.cc: Likewise. * gcc.dg/tls/emutls-1.c: Likewise. * gcc.dg/tls/opt-11.c: Likewise. * gcc.dg/tls/opt-12.c: Likewise. * gcc.dg/tls/pr24428-2.c: Likewise. * gcc.dg/tls/pr24428.c: Likewise. * obj-c++.dg/tls/static-1.mm: Likewise. * obj-c++.dg/torture/tls/thr-init-1.mm: Likewise. * obj-c++.dg/torture/tls/thr-init-2.mm: Likewise. * obj-c++.dg/torture/tls/thr-init-3.mm: Likewise. * objc.dg/torture/tls/thr-init-2.m: Likewise. * objc.dg/torture/tls/thr-init-3.m: Likewise. * objc.dg/torture/tls/thr-init.m: Likewise. * gcc.dg/lto/20090210_0.c: Add -pthread for *-*-solaris2.[89]. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162478 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog19
-rw-r--r--gcc/testsuite/g++.dg/tls/static-1.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/static-1a.cc1
-rw-r--r--gcc/testsuite/gcc.dg/lto/20090210_0.c2
-rw-r--r--gcc/testsuite/gcc.dg/tls/emutls-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/tls/opt-11.c1
-rw-r--r--gcc/testsuite/gcc.dg/tls/opt-12.c1
-rw-r--r--gcc/testsuite/gcc.dg/tls/pr24428-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tls/pr24428.c1
-rw-r--r--gcc/testsuite/lib/target-supports.exp18
-rw-r--r--gcc/testsuite/obj-c++.dg/tls/static-1.mm1
-rw-r--r--gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm1
-rw-r--r--gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm3
-rw-r--r--gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm1
-rw-r--r--gcc/testsuite/objc.dg/torture/tls/thr-init-2.m1
-rw-r--r--gcc/testsuite/objc.dg/torture/tls/thr-init-3.m1
-rw-r--r--gcc/testsuite/objc.dg/torture/tls/thr-init.m1
17 files changed, 54 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 578b4d0f653..59cd07429de 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,22 @@
+2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lib/target-supports.exp (add_options_for_tls): New proc.
+ * g++.dg/tls/static-1.C: Use dg-add-options tls.
+ * g++.dg/tls/static-1a.cc: Likewise.
+ * gcc.dg/tls/emutls-1.c: Likewise.
+ * gcc.dg/tls/opt-11.c: Likewise.
+ * gcc.dg/tls/opt-12.c: Likewise.
+ * gcc.dg/tls/pr24428-2.c: Likewise.
+ * gcc.dg/tls/pr24428.c: Likewise.
+ * obj-c++.dg/tls/static-1.mm: Likewise.
+ * obj-c++.dg/torture/tls/thr-init-1.mm: Likewise.
+ * obj-c++.dg/torture/tls/thr-init-2.mm: Likewise.
+ * obj-c++.dg/torture/tls/thr-init-3.mm: Likewise.
+ * objc.dg/torture/tls/thr-init-2.m: Likewise.
+ * objc.dg/torture/tls/thr-init-3.m: Likewise.
+ * objc.dg/torture/tls/thr-init.m: Likewise.
+ * gcc.dg/lto/20090210_0.c: Add -pthread for *-*-solaris2.[89].
+
2010-07-23 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/tree-ssa/loadpre6.c: Cleanup fre dump file.
diff --git a/gcc/testsuite/g++.dg/tls/static-1.C b/gcc/testsuite/g++.dg/tls/static-1.C
index 027a9429766..506b0fcf7a0 100644
--- a/gcc/testsuite/g++.dg/tls/static-1.C
+++ b/gcc/testsuite/g++.dg/tls/static-1.C
@@ -1,6 +1,7 @@
// { dg-do run }
// { dg-options "-O2" }
// { dg-require-effective-target tls_runtime }
+// { dg-add-options tls }
// { dg-additional-sources "static-1a.cc" }
extern "C" void abort ();
diff --git a/gcc/testsuite/g++.dg/tls/static-1a.cc b/gcc/testsuite/g++.dg/tls/static-1a.cc
index 47a7a2717c0..1c6109f861e 100644
--- a/gcc/testsuite/g++.dg/tls/static-1a.cc
+++ b/gcc/testsuite/g++.dg/tls/static-1a.cc
@@ -1,6 +1,7 @@
// { dg-do run }
// { dg-options "-O2" }
// { dg-require-effective-target tls_runtime }
+// { dg-add-options tls }
// { dg-additional-sources "static-1a.cc" }
struct A
diff --git a/gcc/testsuite/gcc.dg/lto/20090210_0.c b/gcc/testsuite/gcc.dg/lto/20090210_0.c
index c588e8a2778..2c858a67d32 100644
--- a/gcc/testsuite/gcc.dg/lto/20090210_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20090210_0.c
@@ -1,5 +1,7 @@
/* { dg-lto-do run } */
/* { dg-suppress-ld-options {-fPIC} } */
+/* { dg-require-effective-target tls } */
+/* { dg-extra-ld-options "-pthread" { target *-*-solaris2.[89] } } */
int foo (int x)
{
return x;
diff --git a/gcc/testsuite/gcc.dg/tls/emutls-1.c b/gcc/testsuite/gcc.dg/tls/emutls-1.c
index a0dea509434..3b3577c895e 100644
--- a/gcc/testsuite/gcc.dg/tls/emutls-1.c
+++ b/gcc/testsuite/gcc.dg/tls/emutls-1.c
@@ -1,5 +1,6 @@
/* { dg-do run { target *-wrs-vxworks } } */
/* { dg-require-effective-target tls } */
+/* { dg-add-options tls } */
/* vxworks' TLS model requires no extra padding on the tls proxy
objects. */
diff --git a/gcc/testsuite/gcc.dg/tls/opt-11.c b/gcc/testsuite/gcc.dg/tls/opt-11.c
index 3739645257a..0069c484a2c 100644
--- a/gcc/testsuite/gcc.dg/tls/opt-11.c
+++ b/gcc/testsuite/gcc.dg/tls/opt-11.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-require-effective-target tls_runtime } */
+/* { dg-add-options tls } */
extern void abort (void);
extern void *memset (void *, int, __SIZE_TYPE__);
diff --git a/gcc/testsuite/gcc.dg/tls/opt-12.c b/gcc/testsuite/gcc.dg/tls/opt-12.c
index 7c6e73430a1..7b9e498a5a8 100644
--- a/gcc/testsuite/gcc.dg/tls/opt-12.c
+++ b/gcc/testsuite/gcc.dg/tls/opt-12.c
@@ -2,6 +2,7 @@
/* { dg-do run } */
/* { dg-options "-O2 -fpic" } */
/* { dg-require-effective-target tls_runtime } */
+/* { dg-add-options tls } */
/* { dg-require-effective-target fpic } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/tls/pr24428-2.c b/gcc/testsuite/gcc.dg/tls/pr24428-2.c
index a0ceecc0624..b147f60d6a9 100644
--- a/gcc/testsuite/gcc.dg/tls/pr24428-2.c
+++ b/gcc/testsuite/gcc.dg/tls/pr24428-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target tls_runtime } */
+/* { dg-add-options tls } */
__thread double thrtest[81];
int main ()
diff --git a/gcc/testsuite/gcc.dg/tls/pr24428.c b/gcc/testsuite/gcc.dg/tls/pr24428.c
index ecb747ede6d..6439698775a 100644
--- a/gcc/testsuite/gcc.dg/tls/pr24428.c
+++ b/gcc/testsuite/gcc.dg/tls/pr24428.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target tls_runtime } */
+/* { dg-add-options tls } */
__thread double thrtest[81];
int main ()
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 9fb18d16715..b3123442837 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -569,6 +569,24 @@ proc check_effective_target_pcc_bitfield_type_matters { } {
}]
}
+# Add to FLAGS all the target-specific flags needed to use thread-local storage.
+
+proc add_options_for_tls { flags } {
+ # On Solaris 8 and 9, __tls_get_addr/___tls_get_addr only lives in
+ # libthread, so always pass -pthread for native TLS.
+ # Need to duplicate native TLS check from
+ # check_effective_target_tls_native to avoid recursion.
+ if { [istarget *-*-solaris2.\[89\]*] &&
+ [check_no_messages_and_pattern tls_native "!emutls" assembly {
+ __thread int i;
+ int f (void) { return i; }
+ void g (int j) { i = j; }
+ }] } {
+ return "$flags -pthread"
+ }
+ return $flags
+}
+
# Return 1 if thread local storage (TLS) is supported, 0 otherwise.
proc check_effective_target_tls {} {
diff --git a/gcc/testsuite/obj-c++.dg/tls/static-1.mm b/gcc/testsuite/obj-c++.dg/tls/static-1.mm
index 2d20b8881f9..6d58010eb0c 100644
--- a/gcc/testsuite/obj-c++.dg/tls/static-1.mm
+++ b/gcc/testsuite/obj-c++.dg/tls/static-1.mm
@@ -1,5 +1,6 @@
// { dg-do run }
// { dg-require-effective-target tls }
+// { dg-add-options tls }
// { dg-additional-sources "static-1a.mm" }
extern "C" {
diff --git a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
index 056073789a5..1ec8623f3ee 100644
--- a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
+++ b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-1.mm
@@ -1,5 +1,6 @@
// { dg-do run }
// { dg-require-effective-target tls }
+// { dg-add-options tls }
/* { dg-skip-if "PR44140" { *-*-* } { "-flto" "-fwhopr" } { "" } } */
extern "C" {
extern void abort ();
diff --git a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
index 233cf20e132..4e5baac790d 100644
--- a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
+++ b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-2.mm
@@ -1,5 +1,6 @@
// { dg-do run }
// { dg-require-effective-target tls }
+// { dg-add-options tls }
/* { dg-skip-if "PR44140" { *-*-* } { "-flto" "-fwhopr" } { "" } } */
extern "C" {
@@ -42,4 +43,4 @@ int main (int ac, char *av[])
abort () ;
return 0;
-} \ No newline at end of file
+}
diff --git a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm
index e106a9fe878..1515d250057 100644
--- a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm
+++ b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-require-effective-target tls } */
+/* { dg-add-options tls } */
/* { dg-skip-if "PR44140" { *-*-* } { "-flto" "-fwhopr" } { "" } } */
/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.mm" } */
diff --git a/gcc/testsuite/objc.dg/torture/tls/thr-init-2.m b/gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
index b637e2544e6..9a946bb444d 100644
--- a/gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
+++ b/gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
@@ -1,5 +1,6 @@
// { dg-do run }
// { dg-require-effective-target tls }
+// { dg-add-options tls }
/* { dg-skip-if "PR44140" { *-*-* } { "-flto" "-fwhopr" } { "" } } */
extern void _exit(int);
diff --git a/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m b/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
index f30315d8819..6ac977c9bae 100644
--- a/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
+++ b/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-require-effective-target tls } */
+/* { dg-add-options tls } */
/* { dg-skip-if "PR44140" { *-*-* } { "-flto" "-fwhopr" } { "" } } */
/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.m" } */
diff --git a/gcc/testsuite/objc.dg/torture/tls/thr-init.m b/gcc/testsuite/objc.dg/torture/tls/thr-init.m
index 6c3bad1b9bb..286a4706f06 100644
--- a/gcc/testsuite/objc.dg/torture/tls/thr-init.m
+++ b/gcc/testsuite/objc.dg/torture/tls/thr-init.m
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-require-effective-target tls } */
+/* { dg-add-options tls } */
/* { dg-skip-if "PR44140" { *-*-* } { "-flto" "-fwhopr" } { "" } } */
extern void _exit(int);