updpatch: rust 1:1.82.0-1#4243
Merged
felixonmars merged 1 commit intofelixonmars:masterfrom Oct 20, 2024
Merged
Conversation
Musl Patch ========== riscv64gc-unknown-linux-musl gets promoted to tier 2 and `crt_static_default` is updated to false in rust-lang/rust#122049, which triggers rust-lang/rust#82521 (comment) when building stage2 library artifacts (riscv64gc-unknown-linux-gnu -> riscv64gc-unknown-linux-musl). I patched it to re-enable `crt_static_default` for `riscv64gc-unknown-linux-musl` to fix the build and align with the behavior on x86 Arch Linux, where `rust-musl` defaults to statically link musl. Wasm compiler_builtins bug ========================== Wasm compiler_builtins rlib from built `rust-wasm` package includes objects for host architecture(riscv64 in our case, and x86_64 for x86 Arch Linux). This is not reproducible for toolchains installed via rustup so I have reported it to Arch Linux: https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3 Complications when building 1.82.0 ================================== rust-lang/rust#125016 landed in 1.82.0, which breaks building rust 1.82.0 using our packaged rust 1.81.0. Compiling the new compiler_builtins component requires a rustc compiler that includes rust-lang/rust@99e6a28 but unfortunately 1.81.0 does not, leading to the following ICE: https://archriscv.felixc.at/.status/log.htm?url=logs/rust/rust-1:1.82.0-1.log internal compiler error: compiler/rustc_codegen_llvm/src/abi.rs:126:22: unsupported float: Reg { kind: Float, size: Size(2 bytes) } This is mitigated upstream by bumping stage0 to 1.82: rust-lang/rust#129268 (comment) So we need to first build 1.82.0 rustc once without the f16/f128 handling part in compiler_builtins, to get a compiler that is capable of handling f16/f128. And then we can use this compiler to compile compiler_builtins with f16/f128 handling. It's not easy to do so in one patch. The most easy way is to build and package rust 1.82.0 twice. This PR covers the first part and disable-f16-f128.diff will be removed in the second part.
kxxt
added a commit
to kxxt/archriscv-packages
that referenced
this pull request
Oct 21, 2024
- Fix rotten - Drop disable-f16-f128.diff as the second part of felixonmars#4243 - The compiler_builtins bug I reported to arch has been fixed: https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3
felixonmars
pushed a commit
that referenced
this pull request
Oct 21, 2024
- Fix rotten - Drop disable-f16-f128.diff as the second part of #4243 - The compiler_builtins bug I reported to arch has been fixed: https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Musl Patch
riscv64gc-unknown-linux-musl gets promoted to tier 2 and
crt_static_defaultis updated to false in rust-lang/rust#122049, which triggers rust-lang/rust#82521 (comment) when building stage2 library artifacts(riscv64gc-unknown-linux-gnu -> riscv64gc-unknown-linux-musl).
I patched it to re-enable
crt_static_defaultforriscv64gc-unknown-linux-muslto fix the build and align with the behavior on x86 Arch Linux, whererust-musldefaults to statically link musl.Wasm compiler_builtins bug
Wasm compiler_builtins rlib from built
rust-wasmpackage includes objects for host architecture(riscv64 in our case, and x86_64 for x86 Arch Linux). This is not reproducible for toolchains installed via rustup so I have reported it to Arch Linux:https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/3
Complications when building 1.82.0
rust-lang/rust#125016 landed in 1.82.0, which breaks building rust 1.82.0 using our packaged rust 1.81.0. Compiling the new compiler_builtins component requires a rustc compiler that includes
rust-lang/rust@99e6a28 but unfortunately 1.81.0 does not, leading to the following ICE: https://archriscv.felixc.at/.status/log.htm?url=logs/rust/rust-1:1.82.0-1.log
This is mitigated upstream by bumping stage0 to 1.82: rust-lang/rust#129268 (comment)
So we need to first build 1.82.0 rustc once without the f16/f128 handling part in compiler_builtins, to get a compiler that is capable of handling f16/f128. And then we can use this compiler to compile compiler_builtins with f16/f128 handling. It's not easy to do so in one patch. The most easy way is to build and package rust 1.82.0 twice. This PR covers the first part and disable-f16-f128.diff will be removed in the second part.