-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Cannot bootstrap rust with system compiler and customized libdir from 1.85 (stage0-sysroot) #141722
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
This rust/src/bootstrap/src/utils/helpers.rs Lines 130 to 134 in 38081f2
when used for
|
We seem to be setting rust/src/bootstrap/src/core/config/config.rs Line 1913 in 38081f2
Is a workaround to set |
This could be related as well: Lines 366 to 367 in 38081f2
In fact it def. should be related as they don't have |
Yeah, I think there's several places that straight up explicitly or implicitly assume |
It seems that it works only for stage1 and stage2, but not for stage0.
No, it will not work, because I need to set libdir = "lib64" in stage0-sysroot. |
I think all we need is to update the logic I linked above, the rest will be handled properly as we always look and copy on |
Can you replace |
Please test #141729 once you have time and let us know if that fixes the problem you get. |
All works fine with this patch, with both system and pre-compiled (downloaded one) rustc. Many thanks!! |
Rollup merge of #141729 - onur-ozkan:fix-141722, r=jieyouxu resolve target-libdir directly from rustc Leaving stage0 target-libdir resolution to rustc. This should also fix the issue with hard-coding `$sysroot/lib` which fails on systems that use `$sysroot/lib64` or `$sysroot/lib32`. Haven't tested, but should fix #141722
Summary
Starting from rust 1.85, if using the system compiler, the boostrap system seems no more able to identify "libdir" of the compiler, so, if it is different than "lib" (e.g. "lib64"), the system compiler cannot find "core" and/or "std" crates while "Building compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu)"
Command used
Expected behaviour
We expect to find "rustlib" in the directory "stage0-sysroot/lib64"
Actual behaviour
"rustlib" is wrongly placed in the directory "stage0-sysroot/lib"
Bootstrap configuration (bootstrap.toml)
Operating system
Slackware 15.0 / Slackware current (developing branch 15.1)
HEAD
4d91de4
Additional context
If the system compiler was built with standard libdir = "lib", all works fine.
Build Log
The text was updated successfully, but these errors were encountered: