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_LIBS := $(shell pkg-config --libs libsodium 2>/dev/null) 5SODIUM_CFLAGS := $(shell pkg-config --cflags libsodium 2>/dev/null) 6 7TEST_GEN_PROGS := vdso_test_gettimeofday 8TEST_GEN_PROGS += vdso_test_getcpu 9TEST_GEN_PROGS += vdso_test_abi 10TEST_GEN_PROGS += vdso_test_clock_getres 11ifeq ($(ARCH),$(filter $(ARCH),x86 x86_64)) 12TEST_GEN_PROGS += vdso_standalone_test_x86 13endif 14TEST_GEN_PROGS += vdso_test_correctness 15ifeq ($(uname_M),x86_64) 16TEST_GEN_PROGS += vdso_test_getrandom 17ifneq ($(SODIUM_LIBS),) 18TEST_GEN_PROGS += vdso_test_chacha 19endif 20endif 21 22CFLAGS := -std=gnu99 23 24ifeq ($(CONFIG_X86_32),y) 25LDLIBS += -lgcc_s 26endif 27 28include ../lib.mk 29$(OUTPUT)/vdso_test_gettimeofday: parse_vdso.c vdso_test_gettimeofday.c 30$(OUTPUT)/vdso_test_getcpu: parse_vdso.c vdso_test_getcpu.c 31$(OUTPUT)/vdso_test_abi: parse_vdso.c vdso_test_abi.c 32$(OUTPUT)/vdso_test_clock_getres: vdso_test_clock_getres.c 33 34$(OUTPUT)/vdso_standalone_test_x86: vdso_standalone_test_x86.c parse_vdso.c 35$(OUTPUT)/vdso_standalone_test_x86: CFLAGS +=-nostdlib -fno-asynchronous-unwind-tables -fno-stack-protector 36 37$(OUTPUT)/vdso_test_correctness: vdso_test_correctness.c 38$(OUTPUT)/vdso_test_correctness: LDFLAGS += -ldl 39 40$(OUTPUT)/vdso_test_getrandom: parse_vdso.c 41$(OUTPUT)/vdso_test_getrandom: CFLAGS += -isystem $(top_srcdir)/tools/include \ 42 -isystem $(top_srcdir)/include/uapi 43 44$(OUTPUT)/vdso_test_chacha: $(top_srcdir)/tools/arch/$(ARCH)/vdso/vgetrandom-chacha.S 45$(OUTPUT)/vdso_test_chacha: LDLIBS += $(SODIUM_LIBS) 46$(OUTPUT)/vdso_test_chacha: CFLAGS += -idirafter $(top_srcdir)/tools/include \ 47 -idirafter $(top_srcdir)/arch/$(ARCH)/include \ 48 -idirafter $(top_srcdir)/include \ 49 -D__ASSEMBLY__ -Wa,--noexecstack $(SODIUM_CFLAGS) 50