Package: gcc-bpf
Version: 21
Severity: normal
X-Debbugs-Cc: debian-amd64@lists.debian.org, debian-powerpc@lists.debian.org, debian-sparc@lists.debian.org
User: debian-powerpc@lists.debian.org
Usertags: ppc64
User: debian-sparc@lists.debian.org
Usertags: sparc64
User: debian-x32@lists.debian.org
Usertags: x32
In https://salsa.debian.org/utopia-team/network-manager/-/merge_requests/18
support for CLAT (464XLAT) in NetworkManager was enabled.
It is implemented using an eBPF program.
This resulted in build failures on ppc64, sparc64 and x32 (and alpha).
ppc64
=====
https://buildd.debian.org/status/fetch.php?pkg=network-manager&arch=ppc64&ver=1.58.0-3&stamp=1786826236&raw=0
/usr/bin/bpf-gcc -std=gnu17 -Wunused -Wimplicit-fallthrough -fno-stack-protector -fno-ssa-phiopt -O2 -mcpu=v3 -mco-re -gbtf -c -D__powerpc64__ -D__TARGET_ARCH_powerpc -D_CALL_ELF=2 -mbig-endian -I. -isystem /usr/include/powerpc64-linux-gnu -idirafter /usr/include ../src/core/bpf/clat.bpf.c -o src/core/bpf/clat.bpf.unstripped.o
In file included from /usr/include/features.h:563,
from /usr/include/powerpc64-linux-gnu/sys/socket.h:22,
from /usr/include/linux/if.h:28,
from /usr/include/linux/icmp.h:23,
from ../src/core/bpf/clat.bpf.c:16:
/usr/include/powerpc64-linux-gnu/gnu/stubs.h:14:11: fatal error: gnu/stubs-64-v2.h: No such file or directory
14 | # include <gnu/stubs-64-v2.h>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
sparc64
=======
https://buildd.debian.org/status/fetch.php?pkg=network-manager&arch=sparc64&ver=1.58.0-3&stamp=1786827038&raw=0
/usr/bin/bpf-gcc -std=gnu17 -Wunused -Wimplicit-fallthrough -fno-stack-protector -fno-ssa-phiopt -O2 -mcpu=v3 -mco-re -gbtf -c -D__sparc64__ -mbig-endian -I. -isystem /usr/include/sparc64-linux-gnu -idirafter /usr/include ../src/core/bpf/clat.bpf.c -o src/core/bpf/clat.bpf.unstripped.o
In file included from /usr/include/features.h:563,
from /usr/include/sparc64-linux-gnu/sys/socket.h:22,
from /usr/include/linux/if.h:28,
from /usr/include/linux/icmp.h:23,
from ../src/core/bpf/clat.bpf.c:16:
/usr/include/sparc64-linux-gnu/gnu/stubs.h:8:11: fatal error: gnu/stubs-32.h: No such file or directory
8 | # include <gnu/stubs-32.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
x32
===
https://buildd.debian.org/status/fetch.php?pkg=network-manager&arch=sparc64&ver=1.58.0-3&stamp=1786827038&raw=0
/usr/bin/bpf-gcc -std=gnu17 -Wunused -Wimplicit-fallthrough -fno-stack-protector -fno-ssa-phiopt -O2 -mcpu=v3 -mco-re -gbtf -c -D__x86_64__ -mlittle-endian -I. -isystem /usr/include/x86_64-linux-gnux32 -idirafter /usr/include ../src/core/bpf/clat.bpf.c -o src/core/bpf/clat.bpf.unstripped.o
In file included from /usr/include/features.h:563,
from /usr/include/x86_64-linux-gnux32/sys/socket.h:22,
from /usr/include/linux/if.h:28,
from /usr/include/linux/icmp.h:23,
from ../src/core/bpf/clat.bpf.c:16:
/usr/include/x86_64-linux-gnux32/gnu/stubs.h:10:11: fatal error: gnu/stubs-64.h: No such file or directory
10 | # include <gnu/stubs-64.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
On IRC, jrtc27 and waldi said this:
jrtc27
======
sparc64 is identified by __sparc__ && __arch64__, there is no __sparc64__ in the linux world
(some BSDs do however use it)
note __aarch64__ != __aarch64__ :)
... sigh I mistyped it there, just proves my point
__arch64__ != __aarch64__
waldi
=====
jrtc27: so the -D__sparc64__ was never correct
jrtc27
======
it's never been the right define for sparc64-linux-gnu, no
some software recognises it because it's confused
some software recognises it because of BSDs
(and some software recognises __sparcv9__ because of solaris)
some software recognises it because it's confused
https://wiki.debian.org/ArchitectureSpecificsMemo#Summary is your friend
Regards,
Michael