Open uweigand opened 2 hours ago
Does adding an #[inline]
in this line help?
Does adding an
#[inline]
in this line help?
Yes, it does! With that change the native build completes successfully again.
s390x-unknown-linux-gnu is a Tier 2 With Host Tools target, so it should not have been possible for this breakage to merge.
@uweigand You are reporting this as a native build failure. I can of course compile a sysroot with -Zbuild-std
from x86_64, and I bet that's what we are doing in CI. Do you have any advice on how an interested contributor could get an s390x host to build on? I found some suggestions on how to do this via some casual searching, so I'm just curious if you have a recommended workflow that's publicly available.
Yes, I also assume this may be a difference between native builds and cross-builds. Do you generally perform native builds for the whole set of supported architectures (even just the Tier 2 With Host Tools ones)?
As to access to a s390x host for test purposes, there are various options; I'd recommend one of the following:
In addition, we're currently investigating options of making native s390x builds more directly available via GitHub actions (without you having to set up and manage the host yourself), but that is not yet available today.
Yes, it does! With that change the native build completes successfully again.
That is very strange, since https://github.com/rust-lang/rust/pull/133050 should do exactly that automatically...
... ah! But since you are doing a native build, and #133050 is not applied in the bootstrap compiler, things still break in the stage 0 build.
We could add a #[cfg_attr(bootstrap, inline)]
to fix this; that shouldn't affect the actually distributed sysroots since those are built at a later stage.
Btw @uweigand if IBM could help maintain the s390x LLVM backend, e.g. by fixing selection issues like this, that'd be great. :D
Btw @uweigand if IBM could help maintain the s390x LLVM backend, e.g. by fixing selection issues like this, that'd be great. :D
Yes, of course. We're already working on adding fp16 support to LLVM (and GCC as well): https://github.com/llvm/llvm-project/pull/109164
This should hopefully be available in LLVM 20.
For any other LLVM issues on s390x always feel free to contact me.
After https://github.com/rust-lang/rust/pull/133050 was merged, all native builds on s390x fail very early during stage0 library build:
Specifically, it looks like the problem was introduced by commit https://github.com/rust-lang/rust/pull/133050/commits/b77dbbd4fd2ed4083635f74612aa25b4be80fc43, which adds passing of an argument of type
f16
by value.