summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.m@jp.panasonic.com>2013-12-11 20:11:34 +0900
committerTom Rini <trini@ti.com>2014-02-25 07:51:08 -0500
commit5b1f1f4aff912d8c8a98113d1af1fdaa2c9038a4 (patch)
tree202c35c1ac0d444fbcb6b2f04f312bd45a660c68
parentad21fbc1186732962eafd841daa5d2795fab327a (diff)
downloadu-boot-imx-5b1f1f4aff912d8c8a98113d1af1fdaa2c9038a4.zip
u-boot-imx-5b1f1f4aff912d8c8a98113d1af1fdaa2c9038a4.tar.gz
u-boot-imx-5b1f1f4aff912d8c8a98113d1af1fdaa2c9038a4.tar.bz2
Makefile: add a new script to check -fstack-usage support
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>
-rw-r--r--Makefile4
-rw-r--r--scripts/gcc-stack-usage.sh18
2 files changed, 21 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index ed7c6a0..d187e6b 100644
--- 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
index 0000000..27ac928
--- /dev/null
+++ b/scripts/gcc-stack-usage.sh
@@ -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