Hi, On Mon, May 06, 2024 at 02:51:56PM +0300, Adrian Bunk wrote: > Source: qbe > Version: 1.2-1 > Severity: important > Tags: ftbfs > > https://buildd.debian.org/status/logs.php?pkg=qbe&ver=1.2-1 > > ... > dh_auto_test -a > make -j8 check > make[1]: Entering directory '/<<PKGBUILDDIR>>' > tools/test.sh all > abi1.ssa... /tmp/qbe.zzzz.s: Assembler > messages: > /tmp/qbe.zzzz.s:3: Error: unrecognized opcode: `pushq' > /tmp/qbe.zzzz.s:4: Error: unrecognized opcode: `movq' > /tmp/qbe.zzzz.s:5: Error: unrecognized opcode: `movq' > /tmp/qbe.zzzz.s:6: Error: unrecognized opcode: `addq' > /tmp/qbe.zzzz.s:8: Error: unrecognized opcode: `movb' > /tmp/qbe.zzzz.s:9: Error: unrecognized opcode: `movq' > ... > 50 of 50 tests failed! > make[1]: *** [Makefile:72: check] Error 50 > > > > This is due to explicit support required for every architecture, > and defaulting to amd64 otherwise: > https://sources.debian.org/src/qbe/1.2-1/Makefile/#L44-L54 > > (The package also builds on m68k/sh4 in ports since these are > building with nocheck.) > > An explicit > Architecture: amd64 arm64 riscv64 > might be a better option for such a package that needs > a backend written for every architecture it supports?
You are conflating host architecture and target architecture here. The compiler only targets three architectures at this time, but there is little limitation in host architectures. The test suite fails, because it performs the testing for a target derived from the current host architecture (same conflation). Unlike gcc and like llvm/clang, qbe is a multi-target compiler with runtime selection of target architecture. Hence, the test suite should be repeated for each supported target and for doing so it likely needs to Build-Depends: qemu-user <!nocheck>. Helmut