selftests/bpf: Fix building bpf selftests statically
authorYosry Ahmed <yosryahmed@google.com>
Sat, 14 May 2022 00:21:15 +0000 (00:21 +0000)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 16 May 2022 22:48:14 +0000 (15:48 -0700)
bpf selftests can no longer be built with CFLAGS=-static with
liburandom_read.so and its dependent target.

Filter out -static for liburandom_read.so and its dependent target.

When building statically, this leaves urandom_read relying on
system-wide shared libraries.

Signed-off-by: Yosry Ahmed <yosryahmed@google.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220514002115.1376033-1-yosryahmed@google.com
tools/testing/selftests/bpf/Makefile

index 6bbc031..4030dd6 100644 (file)
@@ -168,13 +168,15 @@ $(OUTPUT)/%:%.c
        $(call msg,BINARY,,$@)
        $(Q)$(LINK.c) $^ $(LDLIBS) -o $@
 
+# Filter out -static for liburandom_read.so and its dependent targets so that static builds
+# do not fail. Static builds leave urandom_read relying on system-wide shared libraries.
 $(OUTPUT)/liburandom_read.so: urandom_read_lib1.c urandom_read_lib2.c
        $(call msg,LIB,,$@)
-       $(Q)$(CC) $(CFLAGS) -fPIC $(LDFLAGS) $^ $(LDLIBS) --shared -o $@
+       $(Q)$(CC) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $^ $(LDLIBS) -fPIC -shared -o $@
 
 $(OUTPUT)/urandom_read: urandom_read.c urandom_read_aux.c $(OUTPUT)/liburandom_read.so
        $(call msg,BINARY,,$@)
-       $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.c,$^)                        \
+       $(Q)$(CC) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^)  \
                  liburandom_read.so $(LDLIBS)                                 \
                  -Wl,-rpath=. -Wl,--build-id=sha1 -o $@