xref: /linux-6.15/lib/test_fortify/Makefile (revision 9c6b7fbb)
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