[LinuxBIOS] [PATCH][v3] Add automagic detection for -fno-stack-protector

Jordan Crouse jordan.crouse at amd.com
Tue Jul 3 01:38:43 CEST 2007


Yay!  You have no idea how happy I am to push this patch up.
No more -fno-stack-protector hacks (at least for v3).  

Jordan
-------------- next part --------------
[PATCH][v3] Add automatic detection for -fno-stack-protector

This borrows the cc-option call from the kernel to check if
-fno-stack-protector is supported by the compiler, and if it is,
then enable it.

Signed-off-by: Jordan Crouse <jordan.crouse at amd.com>

Index: LinuxBIOSv3/Makefile
===================================================================
--- LinuxBIOSv3.orig/Makefile	2007-07-02 17:21:19.000000000 -0600
+++ LinuxBIOSv3/Makefile	2007-07-02 17:26:32.000000000 -0600
@@ -32,6 +32,19 @@
 obj := $(shell pwd)/build
 export src obj
 
+# These functions are called by the kernel - we use these below
+# to check for -fno-stack-protector
+
+try-run= $(shell set -e; \
+	TMP=".$$$$.tmp"; \
+	if ($(1)) > /dev/null 2>&1; \
+	then echo "$(2)"; \
+	else echo "$(3)"; \
+	fi; rm -rf "$$TMP")
+
+cc-option=$(call try-run,\
+	$(CC) $(1) -S -xc /dev/null -o "$$TMP", $(1), $(2))
+
 # Do not print "Entering directory ...".
 MAKEFLAGS += --no-print-directory
 
@@ -42,6 +55,11 @@
 	      -mpreferred-stack-boundary=2 -mregparm=3 -pipe
 # FIXME: Does stack boundary or regparm break the code on real hardware?
 
+# Add in automagic detection for -fno-stack-protector
+# This is borrowed from the kernel 2.6 scripts
+
+CFLAGS += $(call cc-option, -fno-stack-protector,)
+
 HOSTCC     := gcc
 HOSTCXX    := g++
 HOSTCFLAGS := -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \


More information about the coreboot mailing list