summaryrefslogtreecommitdiffstats
path: root/scripts/gcc-x86_32-has-stack-protector.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gcc-x86_32-has-stack-protector.sh')
-rwxr-xr-xscripts/gcc-x86_32-has-stack-protector.sh8
1 files changed, 8 insertions, 0 deletions
diff --git a/scripts/gcc-x86_32-has-stack-protector.sh b/scripts/gcc-x86_32-has-stack-protector.sh
new file mode 100755
index 000000000..825c75c5b
--- /dev/null
+++ b/scripts/gcc-x86_32-has-stack-protector.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+# This requires GCC 8.1 or better. Specifically, we require
+# -mstack-protector-guard-reg, added by
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81708
+
+echo "int foo(void) { char X[200]; return 3; }" | $* -S -x c -c -m32 -O0 -fstack-protector -mstack-protector-guard-reg=fs -mstack-protector-guard-symbol=__stack_chk_guard - -o - 2> /dev/null | grep -q "%fs"