Package: src:rustc
Version: 1.14.0+dfsg1-3
Severity: important

Dear Maintainer,

The s390x build FTBFS due to Illegal instruction:

https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=s390x&ver=1.14.0%2Bdfsg1-3&stamp=1484054421
https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=s390x&ver=1.14.0%2Bdfsg1-3&stamp=1484054421&raw=1

[..]
CFG_LLVM_LINKAGE_FILE=/«BUILDDIR»/rustc-1.14.0+dfsg1/s390x-unknown-linux-gnu/rt/llvmdeps.rs
 
LD_LIBRARY_PATH=/«BUILDDIR»/rustc-1.14.0+dfsg1/s390x-unknown-linux-gnu/stage0/lib:/usr/lib/llvm-3.9/lib:$LD_LIBRARY_PATH
   s390x-unknown-linux-gnu/stage0/bin/rustc --cfg stage0 -C 
link-args=-Wl,-z,relro -O --cfg rtopt -Cdebuginfo=1 -C rpath -C prefer-dynamic 
-C no-stack-check --target=s390x-unknown-linux-gnu   -L 
"s390x-unknown-linux-gnu/rt" -L 
native="/usr/lib/llvm-3.9/lib"     --out-dir 
s390x-unknown-linux-gnu/stage0/lib/rustlib/s390x-unknown-linux-gnu/lib -C 
extra-filename=-f5a209a9 -C metadata=f5a209a9 src/libcore/lib.rs
Illegal instruction
/«BUILDDIR»/rustc-1.14.0+dfsg1/mk/target.mk:191: recipe for target 
's390x-unknown-linux-gnu/stage0/lib/rustlib/s390x-unknown-linux-gnu/lib/stamp.core'
 failed
[..]

It was done by https://db.debian.org/machines.cgi?host=zemlinsky which is a z10 
machine. This is claimed to be supported by rustc:

https://anonscm.debian.org/cgit/pkg-rust/rust.git/tree/src/librustc_back/target/s390x_unknown_linux_gnu.rs
https://github.com/rust-lang/rust/commits/1.14.0/src/librustc_back/target/s390x_unknown_linux_gnu.rs
https://github.com/rust-lang/rust/commits/master/src/librustc_back/target/s390x_unknown_linux_gnu.rs

There is a comment "// z10 is the oldest CPU supported by LLVM"

>From oldest to newest, the models go [z10, z196, zEC12, z13], e.g. see 
>https://en.wikipedia.org/wiki/IBM_z196

<xnox> apoikos, ubuntu is z13.
<xnox> infinity0, i believe debian is z196 baseline (or maybe even lower)

It succeeded on ubuntu: 
https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa/+build/11822485

(They are also ignoring test results, which we're not doing - but that is 
separate from this issue, which occurs before we run any tests.)

Since rustc (via llvm) does support z10 which is the Debian s390x baseline, 
this issue is slightly puzzling. One theory is:

<xnox> infinity0, whilst crc32 stuff may be implemented, it might not be 
enabled for the lpar|z/VM in question in cpu features and hence may not work.
<xnox> e.g. it could be our s390x instance config option too =/
<xnox> infinity0, can the asm crc32 optimisations be disabled for s390x in that 
third-party code?
<infinity0> not sure. *if* it is possible, it would be an llvm target config 
option

X

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (300, 'unstable'), (200, 'experimental'), (1, 
'experimental-debug')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.8.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to