fixed2
This commit is contained in:
1 parent
1d7aebb888
commit
2a693d095b
1 file changed
+15
-8
+15
-8
@@ -15,20 +15,27 @@ BPF_OBJS := bridge_xdp.o xdp_ddos_filter.o xdp_wg_mtu_optimizer.o
|
|||||||
|
|
||||||
all: $(BPF_OBJS) loader af_xdp_user
|
all: $(BPF_OBJS) loader af_xdp_user
|
||||||
|
|
||||||
# Regra genérica: qualquer programa XDP (.c -> .ll -> .o) segue o mesmo
|
# Regra genérica: qualquer programa XDP compila num passo só (clang
|
||||||
# caminho de compilação. Antes só existia a regra explícita pra
|
# direto pra .o, sem o pipeline antigo emit-llvm + llc). Antes só existia
|
||||||
# bridge_xdp.o — xdp_ddos_filter.o e xdp_wg_mtu_optimizer.o que estavam
|
# a regra explícita pra bridge_xdp.o — xdp_ddos_filter.o e
|
||||||
# na pasta foram gerados por fora do Makefile, então "make" nunca os
|
# xdp_wg_mtu_optimizer.o que estavam na pasta foram gerados por fora do
|
||||||
# reconstruía depois de editar o .c correspondente.
|
# Makefile, então "make" nunca os reconstruía depois de editar o .c
|
||||||
|
# correspondente.
|
||||||
|
#
|
||||||
|
# -g é OBRIGATÓRIO aqui: os mapas destes programas usam a sintaxe
|
||||||
|
# moderna (struct { __uint(type,...); ... } SEC(".maps")), que depende
|
||||||
|
# de BTF pra o libbpf conseguir interpretar. Sem -g não sai BTF, e
|
||||||
|
# "ip link set ... xdp obj" falha com "BTF is required, but is missing
|
||||||
|
# or corrupted" — foi exatamente esse erro que o pipeline antigo
|
||||||
|
# (emit-llvm sem -g, depois llc) causava.
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(CLANG) -S \
|
$(CLANG) -g -O2 \
|
||||||
-target bpf \
|
-target bpf \
|
||||||
-D __BPF_TRACING__ \
|
-D __BPF_TRACING__ \
|
||||||
-D__TARGET_ARCH_$(ARCH) \
|
-D__TARGET_ARCH_$(ARCH) \
|
||||||
-I/usr/include/$(MULTIARCH) \
|
-I/usr/include/$(MULTIARCH) \
|
||||||
-Wall \
|
-Wall \
|
||||||
-O2 -emit-llvm -c -o $*.ll $<
|
-c -o $@ $<
|
||||||
$(LLC) -march=bpf -filetype=obj -o $@ $*.ll
|
|
||||||
|
|
||||||
loader: loader.c
|
loader: loader.c
|
||||||
$(CC) -Wall -o loader loader.c -l:libbpf.a -lelf -lz
|
$(CC) -Wall -o loader loader.c -l:libbpf.a -lelf -lz
|
||||||
|
|||||||
Reference in new issue
Block a user