aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2017-04-14 02:17:26 -0400
committerMasahiro Yamada <yamada.masahiro@socionext.com>2017-04-18 10:38:53 -0400
commit90ad4052e85cece1bbae064ff4b14088de35df29 (patch)
treed31f3811206fc4f51d1677cceb74f58f5e6a557d /Makefile
parentebf003f0cfb3705e60d40dedc3ec949176c741af (diff)
kbuild: avoid conflict between -ffunction-sections and -pg on gcc-4.7
Arnd Bergmann reported: "When ftrace is enabled and we build with gcc-4.7 or older, we get a warning for each file on architectures that select CONFIG_LD_DEAD_CODE_DATA_ELIMINATION: warning: -ffunction-sections disabled; it makes profiling impossible [enabled by default] " Since commit c3f0d0bc5b01 ("kbuild, LLVMLinux: Add -Werror to cc-option to support clang"), warnings are treated as errors in cc-option checks. CC_FLAGS_FTRACE is blindly added to KBUILD_CFLAGS, so $(call cc-option,-ffunction-sections,) should be moved below it in order to detect the conflict between the two options. Reported-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile10
1 files changed, 5 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index d26618608633..245852f7b312 100644
--- a/Makefile
+++ b/Makefile
@@ -632,11 +632,6 @@ include arch/$(SRCARCH)/Makefile
632KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) 632KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
633KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) 633KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
634 634
635ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
636KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
637KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
638endif
639
640ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE 635ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
641KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) 636KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
642KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) 637KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
@@ -768,6 +763,11 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
768KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) 763KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
769endif 764endif
770 765
766ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
767KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
768KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
769endif
770
771# arch Makefile may override CC so keep this after arch Makefile is included 771# arch Makefile may override CC so keep this after arch Makefile is included
772NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) 772NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
773CHECKFLAGS += $(NOSTDINC_FLAGS) 773CHECKFLAGS += $(NOSTDINC_FLAGS)