#1103566 llc: Fail to build with -march=bpf on armhf (error: unknown directive)

Package:
llvm-19
Source:
llvm-19
Description:
Modular compiler and toolchain technologies
Submitter:
Petter Reinholdtsen
Date:
2025-04-19 08:03:01 UTC
Severity:
normal
#1103566#5
Date:
2025-04-19 07:22:49 UTC
From:
To:
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.