Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/rseq: Fix build with undefined __weak

Commit 3bcbc20942db ("selftests/rseq: Play nice with binaries statically
linked against glibc 2.35+") which is now in Linus' tree introduced uses
of __weak but did nothing to ensure that a definition is provided for it
resulting in build failures for the rseq tests:

rseq.c:41:1: error: unknown type name '__weak'
__weak ptrdiff_t __rseq_offset;
^
rseq.c:41:17: error: expected ';' after top level declarator
__weak ptrdiff_t __rseq_offset;
^
;
rseq.c:42:1: error: unknown type name '__weak'
__weak unsigned int __rseq_size;
^
rseq.c:43:1: error: unknown type name '__weak'
__weak unsigned int __rseq_flags;

Fix this by using the definition from tools/include compiler.h.

Fixes: 3bcbc20942db ("selftests/rseq: Play nice with binaries statically linked against glibc 2.35+")
Signed-off-by: Mark Brown <broonie@kernel.org>
Message-Id: <20230804-kselftest-rseq-build-v1-1-015830b66aa9@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

authored by

Mark Brown and committed by
Paolo Bonzini
d5ad9aae 251199f4

+5 -1
+3 -1
tools/testing/selftests/rseq/Makefile
··· 4 4 CLANG_FLAGS += -no-integrated-as 5 5 endif 6 6 7 + top_srcdir = ../../../.. 8 + 7 9 CFLAGS += -O2 -Wall -g -I./ $(KHDR_INCLUDES) -L$(OUTPUT) -Wl,-rpath=./ \ 8 - $(CLANG_FLAGS) 10 + $(CLANG_FLAGS) -I$(top_srcdir)/tools/include 9 11 LDLIBS += -lpthread -ldl 10 12 11 13 # Own dependencies because we only want to build against 1st prerequisite, but
+2
tools/testing/selftests/rseq/rseq.c
··· 31 31 #include <sys/auxv.h> 32 32 #include <linux/auxvec.h> 33 33 34 + #include <linux/compiler.h> 35 + 34 36 #include "../kselftest.h" 35 37 #include "rseq.h" 36 38