1# SPDX-License-Identifier: GPL-2.0 2 3ccflags-y := $(call cc-disable-warning,fortify-source) 4 5quiet_cmd_test_fortify = TEST $@ 6 cmd_test_fortify = $(CONFIG_SHELL) $(srctree)/scripts/test_fortify.sh \ 7 $< $@ "$(NM)" $(CC) $(c_flags) -DKBUILD_EXTRA_WARN1 8 9$(obj)/%.log: $(src)/%.c $(srctree)/scripts/test_fortify.sh \ 10 $(src)/test_fortify.h \ 11 $(srctree)/include/linux/fortify-string.h \ 12 FORCE 13 $(call if_changed,test_fortify) 14 15logs = $(patsubst $(src)/%.c, %.log, $(wildcard $(src)/*-*.c)) 16targets += $(logs) 17 18quiet_cmd_gen_fortify_log = CAT $@ 19 cmd_gen_fortify_log = cat $(or $(real-prereqs),/dev/null) > $@ 20 21$(obj)/test_fortify.log: $(addprefix $(obj)/, $(logs)) FORCE 22 $(call if_changed,gen_fortify_log) 23 24always-y += test_fortify.log 25 26# Some architectures define __NO_FORTIFY if __SANITIZE_ADDRESS__ is undefined. 27# Pass CFLAGS_KASAN to avoid warnings. 28KASAN_SANITIZE := y 29