-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Prebuilt powerpc64-unknown-linux-gnu binaries require Power ISA v.2.07 #38453
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
Comments
I'm not particularly familiar with the powerpc64 architecture myself, but this is likely due to how we configure powerpc64 by default and LLVM has this feature enabled by default. We can differ from the LLVM defaults, however, if older systems are more common! |
Hm. In clang (3.8.1) you need to specify either |
Looking at |
If you look at the file @alexcrichton linked, base.cpu is set to "ppc64". This is what is used to choose ProcessorModel. base.cpu defaults to "generic". |
Then it's weird that the instruction is generated, since that ProcessorModel does not have the required FeatureVSX. Well, I'm going to cross compile rustc on Linux/AArch64 (which has a working beta available to bootstrap the process) so that I can investigate more directly. |
Ok, it's becoming more clear now. The offending instruction does not come from compilation of Rust code at all, it is in fact C++ code from
For me this does not produce any VSX instructions, so I suspect the cross toolchain on the build server has been configure with inappropriate defaults. |
Fascinating. I downloaded the
It had
(excerpt of the output of What apt repo are you using? Could you check the output from |
@zeldin the build machine is actually that docker image which was most recently built as
I get this output |
Most peculiar. I don't see anything in there that would turn on POWER8 instructions by default... |
Well, at least I can reproduce the issue by running the g++ command inside the docker image. I also tried
Ok, so apparently some IBM patches have been applied to the toolchain? Might be relevant... |
I can also confirm that passing |
So, I guess my proposal would be to add
to the environment in the build script. That should fix it. |
Created a pull-request rust-lang-deprecated/rust-buildbot#145 for this solution. |
rust-lang-deprecated/rust-buildbot#149 appears to have resolved the root issue, just waiting for the updated builds to hit the regular download page now. |
Normal nightlies are now working (tested with |
The prebuild
rustc
binary for powerpc64-unknown-linux-gnu uses thelxvw4x
instruction only available in Power ISA v.2.07 and newer. I'm on a PA6T system which implements Power ISA v.2.04, and thus I get an Illegal instruction when trying to run the binary. For bootstrapping purposes it would be good if the prebuilt binaries used only Power ISA v.2.03 instructions so that they work on all 64-bit implementations.The text was updated successfully, but these errors were encountered: