Skip to content

Commit 8392bae

Browse files
committed
fix(build): include libbpf during libbpfgo compilation
An issue appears when we try to compile libbpfgo on an older kernel that doesn't have the XDP_FLAGS_REPLACE defined in /usr/include/linux/if_link.h. To overcome this, it is necessary to include the directory of libbpf under 3rdparty during the compilation, since install_uapi_headers doesn't install if_link.h.
1 parent 8f6b459 commit 8392bae

File tree

1 file changed

+7
-23
lines changed

1 file changed

+7
-23
lines changed

Makefile

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,6 @@ env:
237237
@echo "CGO_EXT_LDFLAGS_RULES $(CGO_EXT_LDFLAGS_RULES)"
238238
@echo ---------------------------------------
239239
@echo "GO_ENV_EBPF $(GO_ENV_EBPF)"
240-
@echo "GO_ENV_RULES $(GO_ENV_RULES)"
241240
@echo ---------------------------------------
242241
@echo "TRACEE_SRC $(TRACEE_SRC)"
243242
@echo "TRACEE_SRC_DIRS $(TRACEE_SRC_DIRS)"
@@ -349,6 +348,7 @@ $(OUTPUT_DIR)/btfhub:
349348
LIBBPF_CFLAGS = "-fPIC"
350349
LIBBPF_LDFLAGS =
351350
LIBBPF_SRC = ./3rdparty/libbpf/src
351+
LIBBPF_INCLUDE = $(abspath ./3rdparty/libbpf/include/uapi)
352352
LIBBPF_DESTDIR = $(OUTPUT_DIR)/libbpf
353353
LIBBPF_OBJDIR = $(LIBBPF_DESTDIR)/obj
354354
LIBBPF_OBJ = $(LIBBPF_OBJDIR)/libbpf.a
@@ -419,7 +419,7 @@ TRACEE_SRC_DIRS = ./cmd/ ./pkg/ ./signatures/
419419
TRACEE_SRC = $(shell find $(TRACEE_SRC_DIRS) -type f -name '*.go' ! -name '*_test.go')
420420
GO_TAGS_EBPF = core,ebpf
421421
CGO_EXT_LDFLAGS_EBPF =
422-
CUSTOM_CGO_CFLAGS = "-I$(abspath $(OUTPUT_DIR)/libbpf)"
422+
CUSTOM_CGO_CFLAGS = "-I$(abspath $(OUTPUT_DIR)/libbpf) -I$(LIBBPF_INCLUDE)"
423423
PKG_CONFIG_PATH = $(LIBBPF_OBJDIR)
424424
PKG_CONFIG_FLAG =
425425

@@ -529,22 +529,6 @@ clean-tracee-ebpf:
529529
# tracee-rules (deprecated)
530530
#
531531

532-
STATIC ?= 0
533-
GO_TAGS_RULES =
534-
CGO_EXT_LDFLAGS_RULES =
535-
536-
ifeq ($(STATIC), 1)
537-
CGO_EXT_LDFLAGS_RULES += -static
538-
GO_TAGS_RULES := netgo
539-
endif
540-
541-
GO_ENV_RULES =
542-
GO_ENV_RULES += GOOS=linux
543-
GO_ENV_RULES += CC=$(CMD_CLANG)
544-
GO_ENV_RULES += GOARCH=$(GO_ARCH)
545-
GO_ENV_RULES += CGO_CFLAGS=
546-
GO_ENV_RULES += CGO_LDFLAGS=
547-
548532
TRACEE_RULES_SRC_DIRS = ./cmd/tracee-rules/ ./pkg/signatures/
549533
TRACEE_RULES_SRC=$(shell find $(TRACEE_RULES_SRC_DIRS) -type f -name '*.go')
550534

@@ -557,7 +541,7 @@ $(OUTPUT_DIR)/tracee-rules: \
557541
$(OUTPUT_DIR) \
558542
signatures
559543
#
560-
$(GO_ENV_RULES) $(CMD_GO) build \
544+
$(GO_ENV_EBPF) $(CMD_GO) build \
561545
-tags $(GO_TAGS_RULES) \
562546
-ldflags="$(GO_DEBUG_FLAG) \
563547
-extldflags \"$(CGO_EXT_LDFLAGS_RULES)\" \
@@ -601,7 +585,7 @@ $(OUTPUT_DIR)/signatures: \
601585
$(OUTPUT_DIR)
602586
#
603587
$(CMD_MKDIR) -p $@
604-
$(GO_ENV_RULES) $(CMD_GO) build \
588+
$(GO_ENV_EBPF) $(CMD_GO) build \
605589
--buildmode=plugin \
606590
-o $@/builtin.so \
607591
$(GOSIGNATURES_SRC)
@@ -700,7 +684,7 @@ $(OUTPUT_DIR)/e2e-net-signatures: \
700684
$(OUTPUT_DIR)
701685
#
702686
$(CMD_MKDIR) -p $@
703-
$(GO_ENV_RULES) $(CMD_GO) build \
687+
$(GO_ENV_EBPF) $(CMD_GO) build \
704688
--buildmode=plugin \
705689
-o $@/builtin.so \
706690
$(E2E_NET_SRC)
@@ -731,7 +715,7 @@ $(OUTPUT_DIR)/e2e-inst-signatures: \
731715
$(OUTPUT_DIR)
732716
#
733717
$(CMD_MKDIR) -p $@
734-
$(GO_ENV_RULES) $(CMD_GO) build \
718+
$(GO_ENV_EBPF) $(CMD_GO) build \
735719
--buildmode=plugin \
736720
-o $@/builtin.so \
737721
$(E2E_INST_SRC)
@@ -1040,4 +1024,4 @@ k8s-generate: ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyOb
10401024
# benchmarks
10411025
.PHONY: bench-network
10421026
bench-network:
1043-
./performance/benchmark/network/bench.sh $(IMAGE) $(OUTPUT) $(TIME)
1027+
./performance/benchmark/network/bench.sh $(IMAGE) $(OUTPUT) $(TIME)

0 commit comments

Comments
 (0)