mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
This adds two tests for vgetrandom. The first one, vdso_test_chacha, simply checks that the assembly implementation of chacha20 matches that of libsodium, a basic sanity check that should catch most errors. The second, vdso_test_getrandom, is a full "libc-like" implementation of the userspace side of vgetrandom() support. It's meant to be used also as example code for libcs that might be integrating this. Cc: linux-kselftest@vger.kernel.org Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
49 lines
1.9 KiB
Makefile
49 lines
1.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
uname_M := $(shell uname -m 2>/dev/null || echo not)
|
|
ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
|
|
SODIUM := $(shell pkg-config --libs libsodium 2>/dev/null)
|
|
|
|
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
|
|
ifeq ($(uname_M),x86_64)
|
|
TEST_GEN_PROGS += vdso_test_getrandom
|
|
ifneq ($(SODIUM),)
|
|
TEST_GEN_PROGS += vdso_test_chacha
|
|
endif
|
|
endif
|
|
|
|
CFLAGS := -std=gnu99
|
|
|
|
ifeq ($(CONFIG_X86_32),y)
|
|
LDLIBS += -lgcc_s
|
|
endif
|
|
|
|
include ../lib.mk
|
|
$(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
|
|
$(OUTPUT)/vdso_standalone_test_x86: CFLAGS +=-nostdlib -fno-asynchronous-unwind-tables -fno-stack-protector
|
|
|
|
$(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 \
|
|
-isystem $(top_srcdir)/include/uapi
|
|
|
|
$(OUTPUT)/vdso_test_chacha: $(top_srcdir)/arch/$(ARCH)/entry/vdso/vgetrandom-chacha.S
|
|
$(OUTPUT)/vdso_test_chacha: CFLAGS += -idirafter $(top_srcdir)/tools/include \
|
|
-isystem $(top_srcdir)/arch/$(ARCH)/include \
|
|
-isystem $(top_srcdir)/include \
|
|
-D__ASSEMBLY__ -DBULID_VDSO -DCONFIG_FUNCTION_ALIGNMENT=0 \
|
|
-Wa,--noexecstack $(SODIUM)
|