1 # SPDX-License-Identifier: GPL-2.0
3 ccflags-y
:= $(call cc-disable-warning
,fortify-source
)
5 quiet_cmd_test_fortify
= TEST
$@
6 cmd_test_fortify
= $(CONFIG_SHELL
) $(src
)/test_fortify.sh \
7 $< $@
"$(NM)" $(CC
) $(c_flags
) -DKBUILD_EXTRA_WARN1
9 $(obj
)/%.log
: $(src
)/%.c
$(src
)/test_fortify.sh FORCE
10 $(call if_changed_dep
,test_fortify
)
12 logs
= $(patsubst $(src
)/%.c
, %.log
, $(wildcard $(src
)/*-*.c
))
15 quiet_cmd_gen_fortify_log
= CAT
$@
16 cmd_gen_fortify_log
= cat
$(or
$(real-prereqs
),/dev
/null
) > $@
18 $(obj
)/test_fortify.log
: $(addprefix $(obj
)/, $(logs
)) FORCE
19 $(call if_changed
,gen_fortify_log
)
21 # GCC<=7 does not always produce *.d files.
22 # Run the tests only for GCC>=8 or Clang.
23 always-
$(call gcc-min-version
, 80000) += test_fortify.log
24 always-
$(CONFIG_CC_IS_CLANG
) += test_fortify.log
26 # Some architectures define __NO_FORTIFY if __SANITIZE_ADDRESS__ is undefined.
27 # Pass CFLAGS_KASAN to avoid warnings.