include/bpf.mk: fix compile for big-endian targets
authorFelix Fietkau <nbd@nbd.name>
Tue, 2 Nov 2021 09:39:35 +0000 (10:39 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 2 Nov 2021 09:39:37 +0000 (10:39 +0100)
llvm-opt and llc need endian flags in the target as well

Signed-off-by: Felix Fietkau <nbd@nbd.name>
include/bpf.mk

index 6223648c5d34e0b438f6bf12004150456843f519..9636ad5165497ce434c39213739db9374442d03f 100644 (file)
@@ -22,6 +22,7 @@ LLVM_STRIP:=$(LLVM_PATH)/llvm-strip$(LLVM_VER)
 
 BPF_KARCH:=mips
 BPF_ARCH:=mips$(if $(CONFIG_BIG_ENDIAN),,el)
+BPF_TARGET:=bpf$(if $(CONFIG_BIG_ENDIAN),eb,el)
 
 BPF_HEADERS_DIR:=$(STAGING_DIR)/bpf-headers
 
@@ -59,9 +60,9 @@ BPF_CFLAGS := \
 define CompileBPF
        $(CLANG) -g -target $(BPF_ARCH)-linux-gnu $(BPF_CFLAGS) $(2) \
                -c $(1) -o $(patsubst %.c,%.bc,$(1))
-       $(LLVM_OPT) -O2 -mtriple=bpf-pc-linux < $(patsubst %.c,%.bc,$(1)) > $(patsubst %.c,%.opt,$(1))
+       $(LLVM_OPT) -O2 -mtriple=$(BPF_TARGET) < $(patsubst %.c,%.bc,$(1)) > $(patsubst %.c,%.opt,$(1))
        $(LLVM_DIS) < $(patsubst %.c,%.opt,$(1)) > $(patsubst %.c,%.S,$(1))
-       $(LLVM_LLC) -march=bpf -filetype=obj -o $(patsubst %.c,%.o,$(1)) < $(patsubst %.c,%.S,$(1))
+       $(LLVM_LLC) -march=$(BPF_TARGET) -filetype=obj -o $(patsubst %.c,%.o,$(1)) < $(patsubst %.c,%.S,$(1))
        $(LLVM_STRIP) --strip-debug $(patsubst %.c,%.o,$(1))
 endef