xref: /linux/tools/testing/selftests/vDSO/Makefile (revision d53b8e36925256097a08d7cb749198d85cbf9b2b)
1# SPDX-License-Identifier: GPL-2.0
2uname_M := $(shell uname -m 2>/dev/null || echo not)
3ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
4SODIUM := $(shell pkg-config --libs libsodium 2>/dev/null)
5
6TEST_GEN_PROGS := vdso_test_gettimeofday
7TEST_GEN_PROGS += vdso_test_getcpu
8TEST_GEN_PROGS += vdso_test_abi
9TEST_GEN_PROGS += vdso_test_clock_getres
10ifeq ($(ARCH),$(filter $(ARCH),x86 x86_64))
11TEST_GEN_PROGS += vdso_standalone_test_x86
12endif
13TEST_GEN_PROGS += vdso_test_correctness
14ifeq ($(uname_M),x86_64)
15TEST_GEN_PROGS += vdso_test_getrandom
16ifneq ($(SODIUM),)
17TEST_GEN_PROGS += vdso_test_chacha
18endif
19endif
20
21CFLAGS := -std=gnu99
22
23ifeq ($(CONFIG_X86_32),y)
24LDLIBS += -lgcc_s
25endif
26
27include ../lib.mk
28$(OUTPUT)/vdso_test_gettimeofday: parse_vdso.c vdso_test_gettimeofday.c
29$(OUTPUT)/vdso_test_getcpu: parse_vdso.c vdso_test_getcpu.c
30$(OUTPUT)/vdso_test_abi: parse_vdso.c vdso_test_abi.c
31$(OUTPUT)/vdso_test_clock_getres: vdso_test_clock_getres.c
32
33$(OUTPUT)/vdso_standalone_test_x86: vdso_standalone_test_x86.c parse_vdso.c
34$(OUTPUT)/vdso_standalone_test_x86: CFLAGS +=-nostdlib -fno-asynchronous-unwind-tables -fno-stack-protector
35
36$(OUTPUT)/vdso_test_correctness: vdso_test_correctness.c
37$(OUTPUT)/vdso_test_correctness: LDFLAGS += -ldl
38
39$(OUTPUT)/vdso_test_getrandom: parse_vdso.c
40$(OUTPUT)/vdso_test_getrandom: CFLAGS += -isystem $(top_srcdir)/tools/include \
41                                         -isystem $(top_srcdir)/include/uapi
42
43$(OUTPUT)/vdso_test_chacha: $(top_srcdir)/arch/$(ARCH)/entry/vdso/vgetrandom-chacha.S
44$(OUTPUT)/vdso_test_chacha: CFLAGS += -idirafter $(top_srcdir)/tools/include \
45                                      -isystem $(top_srcdir)/arch/$(ARCH)/include \
46                                      -isystem $(top_srcdir)/include \
47                                      -D__ASSEMBLY__ -DBULID_VDSO -DCONFIG_FUNCTION_ALIGNMENT=0 \
48                                      -Wa,--noexecstack $(SODIUM)
49