We use OUTPUT directory as TMPOUT for checking no-pie option. Since commitf2f02ebd8f("kbuild: improve cc-option to clean up all temporary files") when building powerpc/ from selftests directory, the OUTPUT directory points to powerpc/pmu/ebb/ and gets removed when checking for -no-pie option in try-run routine, subsequently build fails with the following: $ make -C powerpc ... TARGET=ebb; BUILD_TARGET=$OUTPUT/$TARGET; mkdir -p $BUILD_TARGET; make OUTPUT=$BUILD_TARGET -k -C $TARGET all make[2]: Entering directory '/home/linux-master/tools/testing/selftests/powerpc/pmu/ebb' make[2]: *** No rule to make target 'Makefile'. make[2]: Failed to remake makefile 'Makefile'. make[2]: *** No rule to make target 'ebb.c', needed by '/home/linux-master/tools/testing/selftests/powerpc/pmu/ebb/reg_access_test'. make[2]: *** No rule to make target 'ebb_handler.S', needed by '/home/linux-master/tools/testing/selftests/powerpc/pmu/ebb/reg_access_test'. make[2]: *** No rule to make target 'trace.c', needed by '/home/linux-master/tools/testing/selftests/powerpc/pmu/ebb/reg_access_test'. make[2]: *** No rule to make target 'busy_loop.S', needed by '/home/linux-master/tools/testing/selftests/powerpc/pmu/ebb/reg_access_test'. make[2]: Target 'all' not remade because of errors. Fix this by adding a suffix to the OUTPUT directory so that the failure is avoided. Fixes:9686813f6e("selftests/powerpc: Fix try-run when source tree is not writable") Signed-off-by: Harish <harish@linux.ibm.com> [mpe: Mention that commit that triggered the breakage] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200625165721.264904-1-harish@linux.ibm.com
38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
include ../../../../../../scripts/Kbuild.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
|