about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-11-07 23:32:17 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-11-07 23:32:17 +0000
commit06b9e94f797b910da782b4608545e416ec5af1df (patch)
tree753897c89fce3aba5846215259b1066974432617
parent327792ce5709dd9f6cc8d15732c4af65705eff76 (diff)
downloadglibc-06b9e94f797b910da782b4608545e416ec5af1df.tar.gz
glibc-06b9e94f797b910da782b4608545e416ec5af1df.tar.xz
glibc-06b9e94f797b910da782b4608545e416ec5af1df.zip
Make check-installed-headers.sh ignore sys/sysctl.h for x32.
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.
-rw-r--r--ChangeLog4
-rw-r--r--scripts/check-installed-headers.sh23
2 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 87559da072..18d74ba3b4 100644
--- 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>
 
diff --git a/scripts/check-installed-headers.sh b/scripts/check-installed-headers.sh
index 87d6142fa6..a245fe6be2 100644
--- a/scripts/check-installed-headers.sh
+++ b/scripts/check-installed-headers.sh
@@ -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