Skip to content

Commit 9686813

Browse files
committed
selftests/powerpc: Fix try-run when source tree is not writable
We added a usage of try-run to pmu/ebb/Makefile to detect if the toolchain supported the -no-pie option. This fails if we build out-of-tree and the source tree is not writable, as try-run tries to write its temporary files to the current directory. That leads to the -no-pie option being silently dropped, which leads to broken executables with some toolchains. If we remove the redirect to /dev/null in try-run, we see the error: make[3]: Entering directory '/linux/tools/testing/selftests/powerpc/pmu/ebb' /usr/bin/ld: cannot open output file .54.tmp: Read-only file system collect2: error: ld returned 1 exit status make[3]: Nothing to be done for 'all'. And looking with strace we see it's trying to use a file that's in the source tree: lstat("/linux/tools/testing/selftests/powerpc/pmu/ebb/.54.tmp", 0x7ffffc0f83c8) We can fix it by setting TMPOUT to point to the $(OUTPUT) directory, and we can verify with strace it's now trying to write to the output directory: lstat("/output/kselftest/powerpc/pmu/ebb/.54.tmp", 0x7fffd1bf6bf8) And also see that the -no-pie option is now correctly detected. Fixes: 0695f8b ("selftests/powerpc: Handle Makefile for unrecognized option") Cc: [email protected] # v5.5+ Signed-off-by: Michael Ellerman <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent ead9836 commit 9686813

File tree

1 file changed

+1
-0
lines changed
  • tools/testing/selftests/powerpc/pmu/ebb

1 file changed

+1
-0
lines changed

tools/testing/selftests/powerpc/pmu/ebb/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ noarg:
77
# The EBB handler is 64-bit code and everything links against it
88
CFLAGS += -m64
99

10+
TMPOUT = $(OUTPUT)/
1011
# Toolchains may build PIE by default which breaks the assembly
1112
no-pie-option := $(call try-run, echo 'int main() { return 0; }' | \
1213
$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -no-pie -x c - -o "$$TMP", -no-pie)

0 commit comments

Comments
 (0)