On Tue, Apr 13, 2021 at 8:34 AM Yonghong Song <yhs@xxxxxx> wrote: > > With clang compiler: > make -j60 LLVM=1 LLVM_IAS=1 <=== compile kernel > make -j60 -C tools/testing/selftests/bpf LLVM=1 LLVM_IAS=1 > Some linker flags are not used/effective for some binaries and > we have warnings like: > warning: -lelf: 'linker' input unused [-Wunused-command-line-argument] > > We also have warnings like: > .../selftests/bpf/prog_tests/ns_current_pid_tgid.c:74:57: note: treat the string as an argument to avoid this > if (CHECK(waitpid(cpid, &wstatus, 0) == -1, "waitpid", strerror(errno))) > ^ > "%s", > .../selftests/bpf/test_progs.h:129:35: note: expanded from macro 'CHECK' > _CHECK(condition, tag, duration, format) > ^ > .../selftests/bpf/test_progs.h:108:21: note: expanded from macro '_CHECK' > fprintf(stdout, ##format); \ > ^ > The first warning can be silenced with clang option -Wno-unused-command-line-argument. > For the second warning, source codes are modified as suggested by the compiler > to silence the warning. Since gcc does not support the option > -Wno-unused-command-line-argument and the warning only happens with clang > compiler, the option -Wno-unused-command-line-argument is enabled only when > clang compiler is used. > > Signed-off-by: Yonghong Song <yhs@xxxxxx> > --- LGTM, please see the question below. Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > tools/testing/selftests/bpf/Makefile | 5 +++++ > tools/testing/selftests/bpf/prog_tests/fexit_sleep.c | 4 ++-- > tools/testing/selftests/bpf/prog_tests/ns_current_pid_tgid.c | 4 ++-- > 3 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile > index dcc2dc1f2a86..c45ae13b88a0 100644 > --- a/tools/testing/selftests/bpf/Makefile > +++ b/tools/testing/selftests/bpf/Makefile > @@ -28,6 +28,11 @@ CFLAGS += -g -Og -rdynamic -Wall $(GENFLAGS) $(SAN_CFLAGS) \ > -Dbpf_load_program=bpf_test_load_program > LDLIBS += -lcap -lelf -lz -lrt -lpthread > > +# Silence some warnings when compiled with clang > +ifneq ($(LLVM),) This won't handle the case where someone does `make CC=clang`, right? Do we care at all? > +CFLAGS += -Wno-unused-command-line-argument > +endif > + [...]