1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 2 3 ccflags-y := $(call cc-disable-warning,fortify 3 ccflags-y := $(call cc-disable-warning,fortify-source) 4 4 5 quiet_cmd_test_fortify = TEST $@ 5 quiet_cmd_test_fortify = TEST $@ 6 cmd_test_fortify = $(CONFIG_SHELL) $(src 6 cmd_test_fortify = $(CONFIG_SHELL) $(src)/test_fortify.sh \ 7 $< $@ "$(NM)" $(CC) $( 7 $< $@ "$(NM)" $(CC) $(c_flags) -DKBUILD_EXTRA_WARN1 8 8 9 $(obj)/%.log: $(src)/%.c $(src)/test_fortify.s 9 $(obj)/%.log: $(src)/%.c $(src)/test_fortify.sh FORCE 10 $(call if_changed_dep,test_fortify) 10 $(call if_changed_dep,test_fortify) 11 11 12 logs = $(patsubst $(src)/%.c, %.log, $(wildcar 12 logs = $(patsubst $(src)/%.c, %.log, $(wildcard $(src)/*-*.c)) 13 targets += $(logs) 13 targets += $(logs) 14 14 15 quiet_cmd_gen_fortify_log = CAT $@ 15 quiet_cmd_gen_fortify_log = CAT $@ 16 cmd_gen_fortify_log = cat $(or $(real-pr 16 cmd_gen_fortify_log = cat $(or $(real-prereqs),/dev/null) > $@ 17 17 18 $(obj)/test_fortify.log: $(addprefix $(obj)/, 18 $(obj)/test_fortify.log: $(addprefix $(obj)/, $(logs)) FORCE 19 $(call if_changed,gen_fortify_log) 19 $(call if_changed,gen_fortify_log) 20 20 21 # GCC<=7 does not always produce *.d files. 21 # GCC<=7 does not always produce *.d files. 22 # Run the tests only for GCC>=8 or Clang. 22 # Run the tests only for GCC>=8 or Clang. 23 always-$(call gcc-min-version, 80000) += test_ 23 always-$(call gcc-min-version, 80000) += test_fortify.log 24 always-$(CONFIG_CC_IS_CLANG) += test_ 24 always-$(CONFIG_CC_IS_CLANG) += test_fortify.log 25 25 26 # Some architectures define __NO_FORTIFY if __ 26 # Some architectures define __NO_FORTIFY if __SANITIZE_ADDRESS__ is undefined. 27 # Pass CFLAGS_KASAN to avoid warnings. 27 # Pass CFLAGS_KASAN to avoid warnings. 28 KASAN_SANITIZE := y 28 KASAN_SANITIZE := y
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.