@@ -44,7 +44,7 @@ KERNEL_CFLAGS += $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
4444cmd_download = @if [ ! -f $(1 ) ]; then wget -O $(1 ) $(REMOTE_ROOT ) /$(2 ) ; fi
4545cmd_exist = $(if $(wildcard $(1 ) ) ,$(2 ) ,$(3 ) )
4646cmd_or_exist = $(call cmd_exist,$(1 ) ,$(1 ) ,$(2 ) )
47- ifeq ("$(wildcard $(HEADERS ) )$(wildcard $(BTF ) ) ",)
47+ ifeq ("$(wildcard $(HEADERS ) )$(wildcard $(BTF ) ) ","" )
4848$(error BTF is not found in your system, please install kernel headers)
4949endif
5050
@@ -56,24 +56,12 @@ ifeq ($(if $(VMLINUX),$(wildcard $(VMLINUX)),"pass"),)
5656$(error vmlinux path not exist)
5757endif
5858
59- # preferred to generate drop reason from
60- ifeq ("$(KERNEL )$(VMLINUX ) ","")
61- DROP_REASON := $(call cmd_or_exist,$(HEADERS)/include/net/dropreason.h,\
62- $(call cmd_or_exist,$(HEADERS)/include/linux/skbuff.h,\
63- $(call cmd_exist,$(BTF),vmlinux.h,)))
64- endif
65-
6659# preferred to compile from kernel headers, then BTF
6760mode := $(if $(VMLINUX ) ,'btf',$(call cmd_exist,$(HEADERS ) ,'kernel','btf') )
6861ifeq ($(mode ) ,'btf')
69- DROP_REASON ?= vmlinux.h
7062 kheaders_cmd := ln -s vmlinux.h kheaders.h
7163 kheaders_dep := vmlinux.h
7264else
73- ifndef DROP_REASON
74- DROP_REASON := $(call cmd_or_exist,$(HEADERS)/include/net/dropreason.h,\
75- $(call cmd_or_exist,$(HEADERS)/include/linux/skbuff.h,))
76- endif
7765 kheaders_cmd := ln -s vmlinux_header.h kheaders.h
7866 BPF_CFLAGS += $(KERNEL_CFLAGS)
7967endif
@@ -92,45 +80,24 @@ vmlinux.h:
9280kheaders.h : $(kheaders_dep )
9381 $(call kheaders_cmd)
9482
95- drop_reason.h : $(DROP_REASON )
96- rm -rf $@
97- ifneq ($(strip $(DROP_REASON ) ) ,)
98- @awk 'BEGIN{ print "# ifndef _H_SKB_DROP_REASON"; \
99- print "#define _H_SKB_DROP_REASON\n";\
100- system("sed -e \"/enum skb_drop_reason {/,/}/!d\" $< >> $@");\
101- print "\n#define __DEFINE_SKB_REASON(FN) \\";\
102- }\
103- /^enum skb_drop/ { dr=1; }\
104- /^\};/ { dr=0; }\
105- /^\tSKB_DROP_REASON_/ {\
106- if (dr) {\
107- sub(/SKB_DROP_REASON_/, "", $$1);\
108- sub(/,/, "", $$1);\
109- printf "\tFN(%s)\t\\\n", $$1;\
110- }\
111- }\
112- END{ print "\n#endif" }' $< >> $@
113- @echo generated drop_reason.h
114- else
115- touch $@
116- @echo drop reason not supported, skips
117- endif
118-
11983progs/% .o : progs/% .c kheaders.h
12084 clang -O2 -c -g -S -Wall -Wno-pointer-sign -Wno-unused-value \
12185 -Wno-incompatible-pointer-types-discards-qualifiers \
12286 -fno-asynchronous-unwind-tables \
123- $< -emit-llvm -Wno-unknown-attributes $(BPF_CFLAGS ) -o - | \
87+ $< -emit-llvm -Wno-unknown-attributes $(BPF_CFLAGS ) -Xclang \
88+ -disable-llvm-passes -o - | \
89+ opt -O2 -mtriple=bpf-pc-linux | \
90+ llvm-dis | \
12491 llc -march=bpf -filetype=obj -o $@
12592 @file $@ | grep debug_info > /dev/null || (rm $@ && exit 1)
12693
12794% .skel.h : % .o
128- $(BPFTOOL ) gen skeleton $< > $@
95+ $(BPFTOOL ) gen skeleton $< $( SKEL_FLAGS ) > $@
12996
13097$(bpf_progs ) : % : % .skel.h
131- @echo " bpf compile success "
98+ @:
13299
133- bpf : $(bpf_progs )
100+ bpf : $(bpf_progs ) $( bpf_progs_ext )
134101
135102$(progs ) : % : % .c bpf
136103 @if [ -n " $( prog-$@ ) " ]; then \
0 commit comments