Bug#1103566: llc: Fail to build with -march=bpf on armhf (error: unknown directive)
Petter Reinholdtsen
pere at hungry.com
Sat Apr 19 08:22:49 BST 2025
Package: llvm-19
Version: 1:19.1.7-3
Affects: src:opensnitch
When trying to build opensnitch on armhf, the ebpf modules fail to build
with the following error:
make[2]: Entering directory '/home/pere/opensnitch-1.6.8/ebpf_prog'
clang -I. -I/usr/src/linux-headers-6.12.22-armmp//arch/arm/include/generated/ -I/usr/src/linux-headers-6.12.22-armmp//include -include /lib/modules/6.12.22-armmp/source/include/linux/kconfig.h -I/lib/modules/6.12.22-armmp/source/include -I/lib/modules/6.12.22-armmp/source/include/uapi -I/lib/modules/6.12.22-armmp/source/include/generated/uapi -I/lib/modules/6.12.22-armmp/source/arch/arm/include -I/lib/modules/6.12.22-armmp/source/arch/arm/include/generated -I/lib/modules/6.12.22-armmp/source/arch/arm/include/uapi -I/lib/modules/6.12.22-armmp/source/arch/arm/include/generated/uapi -I/lib/modules/6.12.22-armmp/source/tools/testing/selftests/bpf/ -D__KERNEL__ -D__BPF_TRACING__ -Wno-unused-value -Wno-pointer-sign -D__TARGET_ARCH_arm -Wno-compare-distinct-pointer-types "-D__LINUX_ARM_ARCH__=7" -Wno-gnu-variable-sized-type-not-at-end -Wno-address-of-packed-member -Wno-tautological-compare -Wno-unknown-warning-option -g -O2 -emit-llvm -c opensnitch.c -o opensnitch.o.partial
llc -march=bpf -mcpu=generic -filetype=obj -o opensnitch.o opensnitch.o.partial
<inline asm>:1:1: error: unknown directive
.syntax unified
^
The problem is the -march=bpf option on the command line. Without it,
the code build, but is not a eBPF module. :(
Because of this, I had to exclude armhf from building the ebpf modules
in debian/rules. To test for yourself, update d/rules and add armhf to
the list of architectures with EBPF enabled.
The same code build with llvm-19 on arm64 and amd64.
--
Happy hacking
Petter Reinholdtsen
More information about the Pkg-llvm-team
mailing list