Use LLVM to compile XDP program.

This commit is contained in:
gamemann
2021-11-13 01:39:43 +00:00
parent 7c061a2570
commit 8b49ba87e0

View File

@@ -19,6 +19,7 @@ XDPFWSRC = xdpfw.c
XDPFWOUT = xdpfw XDPFWOUT = xdpfw
XDPPROGSRC = xdpfw_kern.c XDPPROGSRC = xdpfw_kern.c
XDPPROGBC = xdpfw_kern.bc
XDPPROGOBJ = xdpfw_kern.o XDPPROGOBJ = xdpfw_kern.o
OBJS = $(BUILDDIR)/$(CONFIGOBJ) $(BUILDDIR)/$(CMDLINEOBJ) OBJS = $(BUILDDIR)/$(CONFIGOBJ) $(BUILDDIR)/$(CMDLINEOBJ)
@@ -32,7 +33,8 @@ xdpfw: utils libbpf $(OBJS)
$(CC) $(LDFLAGS) $(INCS) -o $(BUILDDIR)/$(XDPFWOUT) $(LIBBPFOBJS) $(OBJS) $(SRCDIR)/$(XDPFWSRC) $(CC) $(LDFLAGS) $(INCS) -o $(BUILDDIR)/$(XDPFWOUT) $(LIBBPFOBJS) $(OBJS) $(SRCDIR)/$(XDPFWSRC)
xdpfw_filter: xdpfw_filter:
mkdir -p $(BUILDDIR)/ mkdir -p $(BUILDDIR)/
$(CC) $(INCS) -D__BPF__ -O2 -target bpf -D__TARGET_ARCH_$(ARCH) -c -o $(BUILDDIR)/$(XDPPROGOBJ) $(SRCDIR)/$(XDPPROGSRC) $(CC) $(INCS) -D__BPF__ -O2 -emit-llvm -c -o $(BUILDDIR)/$(XDPPROGBC) $(SRCDIR)/$(XDPPROGSRC)
llc -march=bpf -filetype=obj -o $(BUILDDIR)/$(XDPPROGOBJ) $(BUILDDIR)/$(XDPPROGBC)
utils: utils:
mkdir -p $(BUILDDIR)/ mkdir -p $(BUILDDIR)/
$(CC) -O2 -c -o $(BUILDDIR)/$(CONFIGOBJ) $(SRCDIR)/$(CONFIGSRC) $(CC) -O2 -c -o $(BUILDDIR)/$(CONFIGOBJ) $(SRCDIR)/$(CONFIGSRC)