aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.dg/cproj-fails-with-broken-glibc.c1
-rw-r--r--gcc/testsuite/lib/target-supports.exp38
3 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index df30b4b..37b42b3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2014-08-01 Tom de Vries <tom@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_glibc)
+ (check_effective_target_glibc_2_12_or_later)
+ (check_effective_target_not_glibc_2_11_or_earlier): New proc.
+ * gcc.dg/cproj-fails-with-broken-glibc.c: Require effective target
+ not_glibc_2_11_or_earlier.
+
2014-07-31 Tom de Vries <tom@codesourcery.com>
* gcc.dg/pr51879-7.c: Remove superfluous declaration of bar.
diff --git a/gcc/testsuite/gcc.dg/cproj-fails-with-broken-glibc.c b/gcc/testsuite/gcc.dg/cproj-fails-with-broken-glibc.c
index fe143b9..1df29f9 100644
--- a/gcc/testsuite/gcc.dg/cproj-fails-with-broken-glibc.c
+++ b/gcc/testsuite/gcc.dg/cproj-fails-with-broken-glibc.c
@@ -11,6 +11,7 @@
/* { dg-options "-fno-builtin-cproj" } */
/* { dg-add-options c99_runtime } */
/* { dg-require-effective-target c99_runtime } */
+/* { dg-require-effective-target not_glibc_2_11_or_earlier } */
extern void abort(void);
extern void exit(int);
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index fa5137e..cbe2930 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5038,6 +5038,44 @@ proc check_effective_target_newlib {} {
}]
}
+# Return true if this is a glibc target.
+
+proc check_effective_target_glibc {} {
+ return [check_no_compiler_messages glibc object {
+ #include <features.h>
+ #if !(defined (__GLIBC__) && defined (__GLIBC_MINOR__))
+ #error FOO
+ #endif
+ }]
+}
+
+# Return true if this is a glibc 2.12 or later target.
+
+proc check_effective_target_glibc_2_12_or_later {} {
+ return [check_no_compiler_messages glibc_2_12_or_later object {
+ #include <features.h>
+ #if !(defined (__GLIBC__) && defined (__GLIBC_MINOR__) \
+ && __GLIBC_PREREQ(2,12))
+ #error FOO
+ #endif
+ }]
+}
+
+# Return true if this is a not a glibc 2.11 or earlier target.
+
+proc check_effective_target_not_glibc_2_11_or_earlier {} {
+
+ if { ![check_effective_target_glibc] } {
+ return 1
+ }
+
+ if { [check_effective_target_glibc_2_12_or_later] } {
+ return 1
+ }
+
+ return 0
+}
+
# Return true if this is NOT a Bionic target.
proc check_effective_target_non_bionic {} {