• Bug#1103566: llc: Fail to build with -march=bpf on armhf (error: unknow

    From Petter Reinholdtsen@21:1/5 to All on Sat Apr 19 09:40:01 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)