mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-24 03:04:16 -05:00
vdso_standalone_test_x86 provides its own ASM syscall wrappers and _start() implementation. The in-tree nolibc library already provides this functionality for multiple architectures. By making use of nolibc, the standalone testcase can be built from the exact same codebase as the non-standalone version. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Acked-by: Shuah Khan <skhan@linuxfoundation.org> Link: https://lore.kernel.org/all/20250226-parse_vdso-nolibc-v2-16-28e14e031ed8@linutronix.de
51 lines
1.9 KiB
Makefile
51 lines
1.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
include ../../../scripts/Makefile.arch
|
|
|
|
TEST_GEN_PROGS := vdso_test_gettimeofday
|
|
TEST_GEN_PROGS += vdso_test_getcpu
|
|
TEST_GEN_PROGS += vdso_test_abi
|
|
TEST_GEN_PROGS += vdso_test_clock_getres
|
|
ifeq ($(ARCH),$(filter $(ARCH),x86 x86_64))
|
|
TEST_GEN_PROGS += vdso_standalone_test_x86
|
|
endif
|
|
TEST_GEN_PROGS += vdso_test_correctness
|
|
TEST_GEN_PROGS += vdso_test_getrandom
|
|
TEST_GEN_PROGS += vdso_test_chacha
|
|
|
|
CFLAGS := -std=gnu99 -O2
|
|
|
|
ifeq ($(CONFIG_X86_32),y)
|
|
LDLIBS += -lgcc_s
|
|
endif
|
|
|
|
include ../lib.mk
|
|
|
|
CFLAGS += $(TOOLS_INCLUDES)
|
|
|
|
CFLAGS_NOLIBC := -nostdlib -nostdinc -ffreestanding -fno-asynchronous-unwind-tables \
|
|
-fno-stack-protector -include $(top_srcdir)/tools/include/nolibc/nolibc.h \
|
|
-I$(top_srcdir)/tools/include/nolibc/ $(KHDR_INCLUDES)
|
|
|
|
$(OUTPUT)/vdso_test_gettimeofday: parse_vdso.c vdso_test_gettimeofday.c
|
|
$(OUTPUT)/vdso_test_getcpu: parse_vdso.c vdso_test_getcpu.c
|
|
$(OUTPUT)/vdso_test_abi: parse_vdso.c vdso_test_abi.c
|
|
$(OUTPUT)/vdso_test_clock_getres: vdso_test_clock_getres.c
|
|
|
|
$(OUTPUT)/vdso_standalone_test_x86: vdso_standalone_test_x86.c parse_vdso.c | headers
|
|
$(OUTPUT)/vdso_standalone_test_x86: CFLAGS:=$(CFLAGS_NOLIBC) $(CFLAGS)
|
|
|
|
$(OUTPUT)/vdso_test_correctness: vdso_test_correctness.c
|
|
$(OUTPUT)/vdso_test_correctness: LDFLAGS += -ldl
|
|
|
|
$(OUTPUT)/vdso_test_getrandom: parse_vdso.c
|
|
$(OUTPUT)/vdso_test_getrandom: CFLAGS += -isystem $(top_srcdir)/tools/include \
|
|
$(KHDR_INCLUDES) \
|
|
-isystem $(top_srcdir)/include/uapi
|
|
|
|
$(OUTPUT)/vdso_test_chacha: vgetrandom-chacha.S
|
|
$(OUTPUT)/vdso_test_chacha: CFLAGS += -idirafter $(top_srcdir)/tools/include \
|
|
-idirafter $(top_srcdir)/tools/include/generated \
|
|
-idirafter $(top_srcdir)/arch/$(SRCARCH)/include \
|
|
-idirafter $(top_srcdir)/include \
|
|
-Wa,--noexecstack
|