On Mon, Mar 10, 2025 at 02:51:12PM +0000, Anton Protopopov wrote: > The Makefile uses the exit code of the `llvm-config --link-static --libs` > command to choose between statically-linked and dynamically-linked LLVMs. > The stdout and stderr of that command are redirected to /dev/null. > To redirect the output the "&>" construction is used, which might not be > supported by /bin/sh, which is executed by make for $(shell ...) commands. > On such systems the test will fail even if static LLVM is actually > supported. Replace "&>" by ">/dev/null 2>&1" to fix this. > > Fixes: 2a9d30fac818 ("selftests/bpf: Support dynamically linking LLVM if static is not available") > Signed-off-by: Anton Protopopov <aspsk@xxxxxxxxxxxxx> > --- > tools/testing/selftests/bpf/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile > index 739305064839..ca41d47d4ba6 100644 > --- a/tools/testing/selftests/bpf/Makefile > +++ b/tools/testing/selftests/bpf/Makefile > @@ -180,7 +180,7 @@ ifeq ($(feature-llvm),1) > # both llvm-config and lib.mk add -D_GNU_SOURCE, which ends up as conflict > LLVM_CFLAGS += $(filter-out -D_GNU_SOURCE,$(shell $(LLVM_CONFIG) --cflags)) > # Prefer linking statically if it's available, otherwise fallback to shared > - ifeq ($(shell $(LLVM_CONFIG) --link-static --libs &> /dev/null && echo static),static) > + ifeq ($(shell $(LLVM_CONFIG) --link-static --libs >/dev/null 2>&1 && echo static),static) > LLVM_LDLIBS += $(shell $(LLVM_CONFIG) --link-static --libs $(LLVM_CONFIG_LIB_COMPONENTS)) > LLVM_LDLIBS += $(shell $(LLVM_CONFIG) --link-static --system-libs $(LLVM_CONFIG_LIB_COMPONENTS)) > LLVM_LDLIBS += -lstdc++ > -- > 2.34.1 > Acked-by: Daniel Xu <dxu@xxxxxxxxx>