Stream: cranelift

Topic: rustc 1.70, s390x, SIGILL


view this post on Zulip Alex Crichton (Jun 01 2023 at 22:47):

@Ulrich Weigand you might be interested in that the 1.70.0 release of Rust, which notably contains an LLVM 15->16 upgrade, is causing issues on CI for s390x. CI itself showed segfaults in QEMU but locally I can't even get that far as it's SIGILL-ing in rustc itself (somewhere buried in LLVM). My guess/hunch is that there maybe s390x-specific bugs in LLVM to cause rustc to SIGILL

A fast and secure runtime for WebAssembly. Contribute to bytecodealliance/wasmtime development by creating an account on GitHub.

view this post on Zulip Ulrich Weigand (Jun 02 2023 at 07:14):

Hi @Alex Crichton , at this link I only see a riscv64 crash, not a s390x one - did you intend to post a different link? I've just run a build and test of current mainline using rust 1.70 natively on s390x, and everything looks fine to me.

view this post on Zulip Alex Crichton (Jun 02 2023 at 14:59):

Ah sorry I think I got confused looking at logs, but looking through things again this is the crash I think which tipped me off about s390x. I can reproduce that locally and my previous characterization was mistaken, this is a SIGILL in rustc itself during cross-compilation.

My guess is that if you can't reproduce that locally it

A fast and secure runtime for WebAssembly. Contribute to bytecodealliance/wasmtime development by creating an account on GitHub.

view this post on Zulip Alex Crichton (Jun 02 2023 at 15:00):

may be related to cross-compilation? An LLVM with asserts is probably the best way to debug further since it's probably something internal in LLVM failing to trigger the SIGILL

view this post on Zulip Alex Crichton (Jun 02 2023 at 18:39):

Ok I can reproduce this locally with a cross-compile for rustc 1.70 but I can't reproduce with 1.71 beta. Between those rustc versions there were some LLVM changes, looks like minor bumps to LLVM (e.g. 16.0.0 to 16.0.4 or something like that). There is indeed a SystemZ-specific change there too so may be that we don't need to take action here

Rust-specific fork of LLVM. Contribute to rust-lang/llvm-project development by creating an account on GitHub.
The new test case showed that the NoPHIs flag needs to be cleared. Original commit message: [SystemZ] Bugfix in expansion of memmem operations. Since NC, OC, and XC clobber CC, the EXRL_Pseudo t...

Last updated: Dec 23 2024 at 12:05 UTC