I noticed that while compiling the BPF kernel code, the target architecture is set to x86.
Is there a specific reason for using x86 instead of x86_64? Understanding this would be helpful.
from https://github.com/libbpf/libbpf-bootstrap
libbpf-bootstrap/examples/c/Makefile
ARCH ?= $(shell uname -m | sed 's/x86_64/x86/'
| sed 's/arm./arm/'
| sed 's/aarch64/arm64/'
| sed 's/ppc64le/powerpc/'
| sed 's/mips./mips/'
| sed 's/riscv64/riscv/'
| sed 's/loongarch64/loongarch/')
# Build BPF code
$(OUTPUT)/%.bpf.o: %.bpf.c $(LIBBPF_OBJ) $(wildcard %.h) $(VMLINUX) | $(OUTPUT) $(BPFTOOL)
$(call msg,BPF,$@)
$(Q)$(CLANG) -g -O2 -target bpf -D__TARGET_ARCH_$(ARCH)
$(INCLUDES) $(CLANG_BPF_SYS_INCLUDES)
-c $(filter %.c,$^) -o $(patsubst %.bpf.o,%.tmp.bpf.o,$@)
$(Q)$(BPFTOOL) gen object $@ $(patsubst %.bpf.o,%.tmp.bpf.o,$@)
or
ARCH := $(subst x86_64,x86,$(shell arch))
clang -g -O2 -target bpf -D__TARGET_ARCH_$(ARCH) $(INCLUDES) -c $(SRC_DIR)/tracer.bpf.c -o $(SRC_DIR)/tracer.bpf.o