about summary refs log tree commit diff
path: root/scripts/check-installed-headers.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/check-installed-headers.sh')
-rw-r--r--scripts/check-installed-headers.sh23
1 files changed, 23 insertions, 0 deletions
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