@@ -37,6 +37,7 @@ GNU_CC ?= gcc
37
37
MUSL_CC ?= musl-gcc
38
38
OBJDIR ?= .
39
39
STATIC_OBJDIR := $(OBJDIR ) /staticobjs
40
+ EXTDIR := $(OBJDIR ) /user/extended
40
41
41
42
define compile_socket_trace_elf
42
43
@echo " COMPILE ELF kernel version $(1 ) "
@@ -71,7 +72,7 @@ CLANG_VER := $(shell ${CLANG} --version | grep "version" | awk '{if ($$3!="versi
71
72
CLANG_VER_MAIN := $(shell ${CLANG} --version | grep "version" | awk '{print $$3}' | awk -F. '{print $$1}' | awk '{if (int($$0) !=0){print $$0}else{exit -1}}' || ${CLANG} --version | grep "version" | awk '{print $$4}' | awk -F. '{print $$1}' | awk '{if (int($$0)!=0){print $$0}else{exit -1}}')
72
73
LIBTRACE := libtrace.a
73
74
OBJS := user/elf.o \
74
- user/common .o \
75
+ user/utils .o \
75
76
user/symbol.o \
76
77
user/proc.o \
77
78
user/go_tracer.o \
@@ -91,8 +92,8 @@ OBJS := user/elf.o \
91
92
user/vec.o \
92
93
user/bihash.o \
93
94
user/profile/profile_common.o \
94
- $(patsubst % .c,% .o,$(wildcard user/extended /* .c) ) \
95
- $(patsubst % .c,% .o,$(wildcard user/extended /profile/* .c) ) \
95
+ $(patsubst % .c,% .o,$(wildcard $( EXTDIR ) /* .c) ) \
96
+ $(patsubst % .c,% .o,$(wildcard $( EXTDIR ) /profile/* .c) ) \
96
97
user/profile/perf_profiler.o \
97
98
user/profile/stringifier.o \
98
99
user/profile/java/jvm_symbol_collect.o \
@@ -107,7 +108,7 @@ JAVA_AGENT_SRC := user/profile/java/symbol_collect_agent.c
107
108
JAVA_AGENT_MACROS := -DAGENT_LIB_NAME="\"$(JAVA_AGENT_GNU_SO ) \"" -DAGENT_MUSL_LIB_NAME="\"$(JAVA_AGENT_MUSL_SO ) \""
108
109
109
110
STATIC_OBJS := $(addprefix $(STATIC_OBJDIR ) /,$(OBJS ) )
110
- CFLAGS ?= -std=gnu99 -g -O2 -ffunction-sections -fdata-sections -fPIC -Wall -Wno-strict-aliasing -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/bcc -I../../../crates/trace-utils/src/
111
+ CFLAGS ?= -std=gnu99 -g -O0 -ffunction-sections -fdata-sections -fPIC -Wall -Wno-strict-aliasing -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers -I/usr/include/bcc -I../../../crates/trace-utils/src/
111
112
# '-Wformat-truncation' : The warning was added in gcc7.1
112
113
GCC_VER_GTE71 := $(shell echo `gcc --version | grep ^gcc | cut -f3 -d' '|cut -f1-2 -d.` \>= 7.1 | sed -e 's/\./* 100+/g' | bc )
113
114
ifeq ($(GCC_VER_GTE71 ) ,1)
@@ -127,7 +128,7 @@ CFLAGS += -I../../crates/trace-utils/src
127
128
# where the error occurred.
128
129
# -DDF_MEM_DEBUG Used for memory leak detection, to check for memory
129
130
# leak issues during the debugging phase.
130
- CFLAGS += $(MACHINE_CFLAGS ) -fno-omit-frame-pointer -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I.
131
+ CFLAGS += $(MACHINE_CFLAGS ) -DBPF_DEBUG - fno-omit-frame-pointer -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I.
131
132
ifeq ($(findstring musl,$(CC ) ) ,musl)
132
133
IS_MUSL := 1
133
134
ifeq ($(findstring aarch64,$(ARCH)),aarch64)
@@ -139,14 +140,16 @@ endif
139
140
140
141
all : build
141
142
142
- SOCKET_TRACE_ELFS := user/socket_trace_bpf_common.c \
143
- user/socket_trace_bpf_3_10_0.c \
143
+ SOCKET_TRACE_ELFS :=
144
+ # user/socket_trace_bpf_common.c
145
+ # user/socket_trace_bpf_3_10_0.c \
144
146
user/socket_trace_bpf_5_2_plus.c \
145
147
user/socket_trace_bpf_kfunc.c \
146
148
user/socket_trace_bpf_kylin.c \
147
149
user/socket_trace_bpf_rt.c
148
150
149
- PERF_PROFILER_ELFS := user/perf_profiler_bpf_common.c \
151
+ PERF_PROFILER_ELFS :=
152
+ # user/perf_profiler_bpf_common.c \
150
153
user/perf_profiler_bpf_5_2_plus.c \
151
154
152
155
ELFFILES := $(SOCKET_TRACE_ELFS ) $(PERF_PROFILER_ELFS )
@@ -163,6 +166,11 @@ define check_clang
163
166
@rm -rf data
164
167
endef
165
168
169
+ ext-bpf : $(EXTDIR ) /bpf/.ebpf-compile.ok
170
+ $(EXTDIR ) /bpf/.ebpf-compile.ok : tools/bintobuffer
171
+ @make -C $(EXTDIR ) /bpf -f extended.bpf.mk --no-print-directory
172
+ @touch $@
173
+
166
174
user/socket_trace_bpf_common.c : tools/bintobuffer kernel/socket_trace.bpf.c
167
175
$(call check_clang)
168
176
$(call compile_socket_trace_elf, common)
@@ -228,15 +236,15 @@ $(JAVA_AGENT_MUSL_SO): tools/bintobuffer $(JAVA_AGENT_SRC)
228
236
@rm -rf user/profile/java_agent_so_musl.c
229
237
@./tools/bintobuffer ./$@ user/profile/java_agent_so_musl.c java_agent_so_musl
230
238
231
- build : $(ELFFILES ) $(JAVA_TOOL ) $(LIBTRACE )
239
+ build : $(ELFFILES ) $(EXTDIR ) /bpf/.ebpf-compile.ok $( JAVA_TOOL ) $(LIBTRACE )
232
240
233
241
tools : $(LIBTRACE )
234
242
$(call msg,TOOLS,deepflow-ebpfctl)
235
243
$(Q )$(CC ) $(CFLAGS ) --static -g -O2 user/ctrl_tracer.c user/ctrl.c $(LIBTRACE ) -o deepflow-ebpfctl -lelf -lz -lpthread
236
244
237
- $(JAVA_TOOL ) : $(JAVA_AGENT_SO ) user/log.c user/common .c user/mem.c user/vec.c user/profile/java/jvm_symbol_collect.c libs/jattach/build/libjattach.a
245
+ $(JAVA_TOOL ) : $(JAVA_AGENT_SO ) user/log.c user/utils .c user/mem.c user/vec.c user/profile/java/jvm_symbol_collect.c libs/jattach/build/libjattach.a
238
246
$(call msg,TOOLS,$@ )
239
- @$(GNU_CC ) $(CFLAGS ) -DJAVA_AGENT_ATTACH_TOOL user/log.c user/common .c user/mem.c user/vec.c user/profile/java/jvm_symbol_collect.c libs/jattach/build/libjattach.a -o $@ -ldl -lpthread
247
+ @$(GNU_CC ) $(CFLAGS ) -DJAVA_AGENT_ATTACH_TOOL user/log.c user/utils .c user/mem.c user/vec.c user/profile/java/jvm_symbol_collect.c libs/jattach/build/libjattach.a -o $@ -ldl -lpthread
240
248
@rm -rf user/profile/deepflow_jattach_bin.c
241
249
@./tools/bintobuffer ./$@ user/profile/deepflow_jattach_bin.c deepflow_jattach_bin
242
250
@@ -320,9 +328,15 @@ clean:
320
328
$(Q ) rm -rf samples/rust/socket-tracer/target
321
329
$(Q ) rm -rf samples/rust/profiler/target
322
330
$(Q ) rm -rf $(JAVA_AGENT_SO ) $(JAVA_TOOL ) tools/bintobuffer
331
+ $(Q ) make -C $(EXTDIR ) /bpf -f extended.bpf.mk clean --no-print-directory
332
+ $(Q ) rm -rf $(EXTDIR ) /bpf/.ebpf-compile.ok
323
333
324
334
test : $(ELFFILES ) $(LIBTRACE )
325
335
$(Q )$(MAKE ) -C test --no-print-directory
326
336
327
- .PHONY : all build clean tools test rust-sample .socket-tracer .profiler
337
+ ext-test : $(ELFFILES ) $(LIBTRACE )
338
+ $(Q )$(MAKE ) -C $(EXTDIR ) /test clean --no-print-directory
339
+ $(Q )$(MAKE ) -C $(EXTDIR ) /test --no-print-directory
340
+
341
+ .PHONY : all build ext-bpf clean tools test rust-sample .socket-tracer .profiler
328
342
0 commit comments