Make check-installed-headers.sh ignore sys/sysctl.h for x32.
authorJoseph Myers <joseph@codesourcery.com>
Mon, 7 Nov 2016 23:32:17 +0000 (23:32 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 7 Nov 2016 23:32:17 +0000 (23:32 +0000)
check-installed-headers tests were failing for x32 because of the x86
bits/sysctl.h containing a #error for x32.  This patch makes the tests
ignore sys/sysctl.h for x32, similar to the other special-casing of
particular headers.

Tested for x86_64 (full testing for -m64, compile-only for x32).

* scripts/check-installed-headers.sh: Ignore sys/sysctl.h for x32.

ChangeLog
scripts/check-installed-headers.sh

index 87559da..18d74ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-11-07  Joseph Myers  <joseph@codesourcery.com>
+
+       * scripts/check-installed-headers.sh: Ignore sys/sysctl.h for x32.
+
 2016-11-07  Yury Norov  <ynorov@caviumnetworks.com>
            Steve Ellcey  <sellcey@caviumnetworks.com>
 
index 87d6142..a245fe6 100644 (file)
@@ -66,6 +66,7 @@ trap "rm -f '$cih_test_c'" 0
 
 failed=0
 is_x86_64=unknown
+is_x32=unknown
 for header in "$@"; do
     # Skip various headers for which this test gets a false failure.
     case "$header" in
@@ -83,6 +84,28 @@ for header in "$@"; do
         (sys/elf.h)
             continue;;
 
+       # sys/sysctl.h is unsupported for x32.
+       (sys/sysctl.h)
+            case "$is_x32" in
+                (yes) continue;;
+                (no)  ;;
+                (unknown)
+                    cat >"$cih_test_c" <<EOF
+#if defined __x86_64__ && defined __ILP32__
+# error "is x32"
+#endif
+EOF
+                    if $cc_cmd -fsyntax-only "$cih_test_c" > /dev/null 2>&1
+                    then
+                        is_x32=no
+                    else
+                        is_x32=yes
+                        continue
+                    fi
+                ;;
+            esac
+           ;;
+
         # sys/vm86.h is "unsupported on x86-64" and errors out on that target.
         (sys/vm86.h)
             case "$is_x86_64" in