]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Don't run cproj-fails-with-broken-glibc for broken glibc
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2014 06:16:07 +0000 (06:16 +0000)
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2014 06:16:07 +0000 (06:16 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213403 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cproj-fails-with-broken-glibc.c
gcc/testsuite/lib/target-supports.exp

index df30b4b8804716335856f0fdc045c1f51c21a3d5..37b42b390063f1381b9ae42f3cf3618a2ea87075 100644 (file)
@@ -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.
index fe143b9ea5b76ffeee8f279697c52ee0db1c8018..1df29f912fcef0324d5e914b0544e7f8a97ef69b 100644 (file)
@@ -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);
index fa5137ea472e1773be60759caad32bbc7ab4c551..cbe29307c28ae0f0aecc9f9a36e82a1b808a77f4 100644 (file)
@@ -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 {} {