mirror of https://github.com/torvalds/linux.git
selftests: adopt BPF's approach to quieter builds
selftest build is fairly noisy, it's easy to miss warnings. It's standard practice to add alternative messages in the Makefile. I was grepping for existing solutions, and found that bpf already has the right knobs. Move them to lib.mk and adopt in net. Convert the basic rules in lib.mk. Acked-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/20240411190534.444918-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
2bd99aef1b
commit
6fc6d7f593
|
|
@ -135,18 +135,7 @@ TEST_GEN_PROGS_EXTENDED = test_sock_addr test_skb_cgroup_id_user \
|
|||
|
||||
TEST_GEN_FILES += liburandom_read.so urandom_read sign-file uprobe_multi
|
||||
|
||||
# Emit succinct information message describing current building step
|
||||
# $1 - generic step name (e.g., CC, LINK, etc);
|
||||
# $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
|
||||
# $3 - target (assumed to be file); only file name will be emitted;
|
||||
# $4 - optional extra arg, emitted as-is, if provided.
|
||||
ifeq ($(V),1)
|
||||
Q =
|
||||
msg =
|
||||
else
|
||||
Q = @
|
||||
msg = @printf ' %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
|
||||
MAKEFLAGS += --no-print-directory
|
||||
ifneq ($(V),1)
|
||||
submake_extras := feature_display=0
|
||||
endif
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,20 @@ endif
|
|||
selfdir = $(realpath $(dir $(filter %/lib.mk,$(MAKEFILE_LIST))))
|
||||
top_srcdir = $(selfdir)/../../..
|
||||
|
||||
# msg: emit succinct information message describing current building step
|
||||
# $1 - generic step name (e.g., CC, LINK, etc);
|
||||
# $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
|
||||
# $3 - target (assumed to be file); only file name will be emitted;
|
||||
# $4 - optional extra arg, emitted as-is, if provided.
|
||||
ifeq ($(V),1)
|
||||
Q =
|
||||
msg =
|
||||
else
|
||||
Q = @
|
||||
msg = @printf ' %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
|
||||
MAKEFLAGS += --no-print-directory
|
||||
endif
|
||||
|
||||
ifeq ($(KHDR_INCLUDES),)
|
||||
KHDR_INCLUDES := -isystem $(top_srcdir)/usr/include
|
||||
endif
|
||||
|
|
@ -176,7 +190,8 @@ endif
|
|||
ifeq ($(OVERRIDE_TARGETS),)
|
||||
LOCAL_HDRS += $(selfdir)/kselftest_harness.h $(selfdir)/kselftest.h
|
||||
$(OUTPUT)/%:%.c $(LOCAL_HDRS)
|
||||
$(LINK.c) $(filter-out $(LOCAL_HDRS),$^) $(LDLIBS) -o $@
|
||||
$(call msg,CC,,$@)
|
||||
$(Q)$(LINK.c) $(filter-out $(LOCAL_HDRS),$^) $(LDLIBS) -o $@
|
||||
|
||||
$(OUTPUT)/%.o:%.S
|
||||
$(COMPILE.S) $^ -o $@
|
||||
|
|
|
|||
|
|
@ -125,7 +125,8 @@ BPFOBJ := $(BUILD_DIR)/libbpf/libbpf.a
|
|||
|
||||
MAKE_DIRS := $(BUILD_DIR)/libbpf
|
||||
$(MAKE_DIRS):
|
||||
mkdir -p $@
|
||||
$(call msg,MKDIR,,$@)
|
||||
$(Q)mkdir -p $@
|
||||
|
||||
# Get Clang's default includes on this system, as opposed to those seen by
|
||||
# '--target=bpf'. This fixes "missing" files on some architectures/distros,
|
||||
|
|
@ -149,13 +150,15 @@ BPF_PROG_OBJS := $(OUTPUT)/nat6to4.o $(OUTPUT)/xdp_dummy.o \
|
|||
$(OUTPUT)/sample_map_ret0.bpf.o $(OUTPUT)/sample_ret0.bpf.o
|
||||
|
||||
$(BPF_PROG_OBJS): $(OUTPUT)/%.o : %.c $(BPFOBJ) | $(MAKE_DIRS)
|
||||
$(CLANG) -O2 -g --target=bpf $(CCINCLUDE) $(CLANG_SYS_INCLUDES) \
|
||||
$(call msg,BPF_PROG,,$@)
|
||||
$(Q)$(CLANG) -O2 -g --target=bpf $(CCINCLUDE) $(CLANG_SYS_INCLUDES) \
|
||||
-c $< -o $@
|
||||
|
||||
$(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
|
||||
$(APIDIR)/linux/bpf.h \
|
||||
| $(BUILD_DIR)/libbpf
|
||||
$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
|
||||
$(call msg,MAKE,,$@)
|
||||
$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
|
||||
EXTRA_CFLAGS='-g -O0' \
|
||||
DESTDIR=$(SCRATCH_DIR) prefix= all install_headers
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue