-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Many tests failing with "Couldn't compile the test" on 32-bit PowerPC with 1.49 beta #81334
Comments
I am seeing a lot of signal 4 (SIGILL) errors in the build log. |
Ah, that reminds me of one bug in LLVM: https://bugs.llvm.org/show_bug.cgi?id=46683 I'll check whether this one fixes it: llvm/llvm-project@a5d161c |
Debian's LLVM 11 package ( I'm trying to bisect this now in the Rust compiler itself but I just stumbled into the problem that a cross build no longer builds a full stage2 compiler with the std compiler which can be used on the target system, so I will first have to figure out what changed in Rust here. |
You can pass |
Thanks, that's what I guessed already, I just couldn't find the change in the vast amount of other changes ;). |
Just cross-compiled 1.50 and the issue is still there:
|
I cannot get a sensible backtrace, unfortunately:
|
I'm bisecting this now. I think it might actually be a bug in the Rust compiler and not LLVM. |
|
At a first blush sounds like a limitation of the platform most likely (much like how it doesn't really support e.g. copy relocations all that well on PPC64) in which case a simple exclusion would make sense here. |
I can confirm that reverting that change fixes the Rust compiler on 32-bit PowerPC for me. So, I agree, it should just be disabled on this target. |
I can submit a simple patch either tonight or tomorrow some time. |
…ec-tls, r=Mark-Simulacrum bootstrap: Disable initial-exec TLS model on powerpc Fixes rust-lang#81334.
@glaubitz there are reports of powerpc little endian toolchains still hitting this bug, can you imagine to push a simple patch to include the case of little endian as well? example: https://github.com/void-ppc/void-packages/blob/master/srcpkgs/rust/patches/fix-ppc32.patch |
...Does LLVM, or any of our codegen backends for that matter, actually support PowerPC 32-bit LE targets? Do they really exist? I know PowerPCs are bi-endian, but I thought the endian-switch bit was an extension that 32-bit architectures didn't have to include. Well, I do know we don't actually support any ppc32le Rust targets. I don't think it would exactly be what one would call a "maintenance burden" to accept a patch that adds a mild fix to bootstrap for custom targets. But if people are really using this target, it might be better to submit an application to add it as a new tier 3 target, so we can at least be Formally Aware of it. |
Fair enough! @stefson The patch you ask for is simple so if you send it in we probably would happily accept it, but the best way to make sure Void Linux's |
Since 1.49 beta, many tests fail on 32-bit PowerPC with the error that the test could not be compiled:
I have not bisected the issue yet.
Full log in: https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=powerpc&ver=1.49.0%7Ebeta.4%2Bdfsg1-1%7Eexp1&stamp=1611482142&raw=0
CC @jrtc27 @infinity0 @smaeul @mator
The text was updated successfully, but these errors were encountered: