Skip to content

Commit 8c9c01c

Browse files
maddy-kerneldevmpe
authored andcommitted
selftests/powerpc: Allow building without static libc
Currently exec-target.c is linked statically with libc, which on Fedora at least requires installing an additional package (glibc-static). If that package is not installed the build fails with: CC exec_target /usr/bin/ld: cannot find -lc: No such file or directory collect2: error: ld returned 1 exit status All exec_target.c does is call sys_exit, which can be done easily enough using inline assembly, and removes the requirement for a static libc to be installed. Suggested-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20240812094152.418586-1-maddy@linux.ibm.com
1 parent a5a670d commit 8c9c01c

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

tools/testing/selftests/powerpc/benchmarks/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ $(OUTPUT)/context_switch: LDLIBS += -lpthread
1818

1919
$(OUTPUT)/fork: LDLIBS += -lpthread
2020

21-
$(OUTPUT)/exec_target: CFLAGS += -static -nostartfiles
21+
$(OUTPUT)/exec_target: CFLAGS += -nostartfiles

tools/testing/selftests/powerpc/benchmarks/exec_target.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,22 @@
77
*/
88

99
#define _GNU_SOURCE
10-
#include <unistd.h>
1110
#include <sys/syscall.h>
1211

1312
void _start(void)
1413
{
15-
syscall(SYS_exit, 0);
14+
asm volatile (
15+
"li %%r0, %[sys_exit];"
16+
"li %%r3, 0;"
17+
"sc;"
18+
:
19+
: [sys_exit] "i" (SYS_exit)
20+
/*
21+
* "sc" will clobber r0, r3-r13, cr0, ctr, xer and memory.
22+
* Even though sys_exit never returns, handle clobber
23+
* registers.
24+
*/
25+
: "r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10",
26+
"r11", "r12", "r13", "cr0", "ctr", "xer", "memory"
27+
);
1628
}

0 commit comments

Comments
 (0)