Makefile: add a new script to check -fstack-usage support
authorMasahiro Yamada <yamada.m@jp.panasonic.com>
Wed, 11 Dec 2013 11:11:34 +0000 (20:11 +0900)
committerTom Rini <trini@ti.com>
Tue, 25 Feb 2014 12:51:08 +0000 (07:51 -0500)
If -fstack-usage option is given to crosstools
that do not support it, gcc displays a warning message
but still exits with status 0.

This means we can not rely on $(call cc-option,...)
to detect if -fstack-usage option is supported or not.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Makefile
scripts/gcc-stack-usage.sh [new file with mode: 0644]

index ed7c6a00450aaa30ed56261da5f2a7ecdafc7e18..d187e6b3343bbe546a8e42d173c19b8ad7b786b7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -547,7 +547,9 @@ KBUILD_CFLAGS       += -g
 KBUILD_AFLAGS  += -g
 
 # Report stack usage if supported
-KBUILD_CFLAGS += $(call cc-option,-fstack-usage)
+ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-stack-usage.sh $(CC)),y)
+       KBUILD_CFLAGS += -fstack-usage
+endif
 
 KBUILD_CFLAGS += $(call cc-option,-Wno-format-nonliteral)
 
diff --git a/scripts/gcc-stack-usage.sh b/scripts/gcc-stack-usage.sh
new file mode 100644 (file)
index 0000000..27ac928
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Test for gcc '-fstack-usage' support
+# Copyright (C) 2013, Masahiro Yamada <yamada.m@jp.panasonic.com>
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+TMP="$$"
+
+cat <<END | $@ -Werror -fstack-usage -x c - -c -o $TMP >/dev/null 2>&1 \
+                                                       && echo "y"
+int main(void)
+{
+       return 0;
+}
+END
+
+rm -f $TMP $TMP.su