Bug#1070495: Should qbe be Architecture: amd64 arm64 riscv64 ?

2024-05-06 Thread Helmut Grohne
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 '/<>'
> tools/test.sh all
> abi1.ssa...  /tmp/qbe..s: Assembler 
> messages:
> /tmp/qbe..s:3: Error: unrecognized opcode: `pushq'
> /tmp/qbe..s:4: Error: unrecognized opcode: `movq'
> /tmp/qbe..s:5: Error: unrecognized opcode: `movq'
> /tmp/qbe..s:6: Error: unrecognized opcode: `addq'
> /tmp/qbe..s:8: Error: unrecognized opcode: `movb'
> /tmp/qbe..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 .

Helmut



Bug#1070495: Should qbe be Architecture: amd64 arm64 riscv64 ?

2024-05-06 Thread Adrian Bunk
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 '/<>'
tools/test.sh all
abi1.ssa...  /tmp/qbe..s: Assembler 
messages:
/tmp/qbe..s:3: Error: unrecognized opcode: `pushq'
/tmp/qbe..s:4: Error: unrecognized opcode: `movq'
/tmp/qbe..s:5: Error: unrecognized opcode: `movq'
/tmp/qbe..s:6: Error: unrecognized opcode: `addq'
/tmp/qbe..s:8: Error: unrecognized opcode: `movb'
/tmp/qbe..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?