14e9903b0SMasahiro Yamada# SPDX-License-Identifier: GPL-2.0 24e9903b0SMasahiro Yamada 34e9903b0SMasahiro Yamadaccflags-y := $(call cc-disable-warning,fortify-source) 44e9903b0SMasahiro Yamada 54e9903b0SMasahiro Yamadaquiet_cmd_test_fortify = TEST $@ 65a8d0c46SMasahiro Yamada cmd_test_fortify = $(CONFIG_SHELL) $(src)/test_fortify.sh \ 74e9903b0SMasahiro Yamada $< $@ "$(NM)" $(CC) $(c_flags) -DKBUILD_EXTRA_WARN1 84e9903b0SMasahiro Yamada 9*9c6b7fbbSMasahiro Yamada$(obj)/%.log: $(src)/%.c $(src)/test_fortify.sh FORCE 10*9c6b7fbbSMasahiro Yamada $(call if_changed_dep,test_fortify) 114e9903b0SMasahiro Yamada 124e9903b0SMasahiro Yamadalogs = $(patsubst $(src)/%.c, %.log, $(wildcard $(src)/*-*.c)) 134e9903b0SMasahiro Yamadatargets += $(logs) 144e9903b0SMasahiro Yamada 154e9903b0SMasahiro Yamadaquiet_cmd_gen_fortify_log = CAT $@ 164e9903b0SMasahiro Yamada cmd_gen_fortify_log = cat $(or $(real-prereqs),/dev/null) > $@ 174e9903b0SMasahiro Yamada 184e9903b0SMasahiro Yamada$(obj)/test_fortify.log: $(addprefix $(obj)/, $(logs)) FORCE 194e9903b0SMasahiro Yamada $(call if_changed,gen_fortify_log) 204e9903b0SMasahiro Yamada 21*9c6b7fbbSMasahiro Yamada# GCC<=7 does not always produce *.d files. 22*9c6b7fbbSMasahiro Yamada# Run the tests only for GCC>=8 or Clang. 23*9c6b7fbbSMasahiro Yamadaalways-$(call gcc-min-version, 80000) += test_fortify.log 24*9c6b7fbbSMasahiro Yamadaalways-$(CONFIG_CC_IS_CLANG) += test_fortify.log 254e9903b0SMasahiro Yamada 264e9903b0SMasahiro Yamada# Some architectures define __NO_FORTIFY if __SANITIZE_ADDRESS__ is undefined. 274e9903b0SMasahiro Yamada# Pass CFLAGS_KASAN to avoid warnings. 284e9903b0SMasahiro YamadaKASAN_SANITIZE := y 29