Since commit57fd251c78("kbuild: split cc-option and friends to scripts/Makefile.compiler"), some kselftests fail to build. The tools/ directory opted out Kbuild, and went in a different direction. People copied scripts and Makefiles to the tools/ directory to create their own build system. tools/build/Build.include mimics scripts/Kbuild.include, but some tool Makefiles include the Kbuild one to import a feature that is missing in tools/build/Build.include: - Commitec04aa3ae8("tools/thermal: tmon: use "-fstack-protector" only if supported") included scripts/Kbuild.include from tools/thermal/tmon/Makefile to import the cc-option macro. - Commitc2390f16fc("selftests: kvm: fix for compilers that do not support -no-pie") included scripts/Kbuild.include from tools/testing/selftests/kvm/Makefile to import the try-run macro. - Commit9cae4ace80("selftests/bpf: do not ignore clang failures") included scripts/Kbuild.include from tools/testing/selftests/bpf/Makefile to import the .DELETE_ON_ERROR target. - Commit0695f8bca9("selftests/powerpc: Handle Makefile for unrecognized option") included scripts/Kbuild.include from tools/testing/selftests/powerpc/pmu/ebb/Makefile to import the try-run macro. Copy what they need into tools/build/Build.include, and make them include it instead of scripts/Kbuild.include. Link: https://lore.kernel.org/lkml/86dadf33-70f7-a5ac-cb8c-64966d2f45a1@linux.ibm.com/ Fixes:57fd251c78("kbuild: split cc-option and friends to scripts/Makefile.compiler") Reported-by: Janosch Frank <frankja@linux.ibm.com> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Yonghong Song <yhs@fb.com>
38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
include ../../../../../build/Build.include
|
|
|
|
noarg:
|
|
$(MAKE) -C ../../
|
|
|
|
# The EBB handler is 64-bit code and everything links against it
|
|
CFLAGS += -m64
|
|
|
|
TMPOUT = $(OUTPUT)/TMPDIR/
|
|
# Toolchains may build PIE by default which breaks the assembly
|
|
no-pie-option := $(call try-run, echo 'int main() { return 0; }' | \
|
|
$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -no-pie -x c - -o "$$TMP", -no-pie)
|
|
|
|
LDFLAGS += $(no-pie-option)
|
|
|
|
TEST_GEN_PROGS := reg_access_test event_attributes_test cycles_test \
|
|
cycles_with_freeze_test pmc56_overflow_test \
|
|
ebb_vs_cpu_event_test cpu_event_vs_ebb_test \
|
|
cpu_event_pinned_vs_ebb_test task_event_vs_ebb_test \
|
|
task_event_pinned_vs_ebb_test multi_ebb_procs_test \
|
|
multi_counter_test pmae_handling_test \
|
|
close_clears_pmcc_test instruction_count_test \
|
|
fork_cleanup_test ebb_on_child_test \
|
|
ebb_on_willing_child_test back_to_back_ebbs_test \
|
|
lost_exception_test no_handler_test \
|
|
cycles_with_mmcr2_test
|
|
|
|
top_srcdir = ../../../../../..
|
|
include ../../../lib.mk
|
|
|
|
$(TEST_GEN_PROGS): ../../harness.c ../../utils.c ../event.c ../lib.c \
|
|
ebb.c ebb_handler.S trace.c busy_loop.S
|
|
|
|
$(OUTPUT)/instruction_count_test: ../loop.S
|
|
|
|
$(OUTPUT)/lost_exception_test: ../lib.c
|