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 <yamad...@jp.panasonic.com> --- Some crosstools currently do not support -fstack-usage option. For example, bfin-uclinux-gcc, which is available at https://www.kernel.org/pub/tools/crosstool/ If -fstack-usage option is given to such crosstools, gcc displays a warning message as follows: warning: -fstack-usage not supported for this target [enabled by default] But it still exits with status 0. So, $(call cc-option,-fstack-usage) does not work as we expect because cc-option checks exit status to judge whether the given option is supported or not. Changes in v5: - Rebased on Kbuild series Changes in v4: - Drop executable permission of scripts/gcc-stack-usage.sh - Fix commit log - Add the rationale below --- Makefile | 4 +++- scripts/gcc-stack-usage.sh | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 scripts/gcc-stack-usage.sh diff --git a/Makefile b/Makefile index e034677..8f8a131 100644 --- a/Makefile +++ b/Makefile @@ -553,7 +553,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 <yamad...@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 -- 1.8.3.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot