selftests/bpf: Fix cross-compiling urandom_read
authorTony Ambardar <tony.ambardar@gmail.com>
Wed, 9 Oct 2024 04:07:20 +0000 (21:07 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 11 Oct 2024 02:08:14 +0000 (19:08 -0700)
Linking of urandom_read and liburandom_read.so prefers LLVM's 'ld.lld' but
falls back to using 'ld' if unsupported. However, this fallback discards
any existing makefile macro for LD and can break cross-compilation.

Fix by changing the fallback to use the target linker $(LD), passed via
'-fuse-ld=' using an absolute path rather than a linker "flavour".

Fixes: 08c79c9cd67f ("selftests/bpf: Don't force lld on non-x86 architectures")
Signed-off-by: Tony Ambardar <tony.ambardar@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241009040720.635260-1-tony.ambardar@gmail.com
tools/testing/selftests/bpf/Makefile

index 6f9838a..7501696 100644 (file)
@@ -264,7 +264,7 @@ $(OUTPUT)/%:%.c
 ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 riscv))
 LLD := lld
 else
-LLD := ld
+LLD := $(shell command -v $(LD))
 endif
 
 # Filter out -static for liburandom_read.so and its dependent targets so that static builds