| Age | Commit message (Collapse) | Author | Lines |
|
Previously, bootstrap was using `Config::last_modified_commit` unconditionally to figure
the commit has to download precompiled rustc artifact from CI, which was leading builds to
fail on tarball sources as `Config::last_modified_commit` requires `git` to be present in the project
source. This change makes bootstrap to call `Config::last_modified_commit` only when it's running on
git-managed source and read `git-commit-hash` file otherwise.
Signed-off-by: onur-ozkan <work@onurozkan.dev>
(cherry picked from commit 903cddb392bc9a5bc43194bcbb8b031f2fcc2c56)
|
|
There is a chance that these tools are being installed from an external LLVM
and we have no control over them. If any of these tools use symlinks, they will
fail during tarball distribution. This change makes copying process to resolve
symlinks just before placing them into the destination path.
Signed-off-by: onur-ozkan <work@onurozkan.dev>
(cherry picked from commit cde58dd5f781c3998d2421132854d2a833937e85)
|
|
(cherry picked from commit 7d806171d00f53a720e6784a878a98cbef5c3d4a)
|
|
(cherry picked from commit 4c6d793c66993a0f5455f35e73a1549d232c3ae5)
|
|
This reverts commit 2316749ca954030afed6145342808a8c1ae29fac.
|
|
This reverts commit f5577a8174685aca342b9189e625648f25a23a20.
|
|
fmt
fix cfg for windows
remove unused imports
address comments
update libc to 0.2.164
fmt
remove unused imports
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is an ongoing discussion about this on Zulip and for now we
want to keep these disabled.
Zulip thread: https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/.60download-rustc.20.3D.20'if-unchanged'.60.20for.20.60compiler.60.20profile.3F
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
r=jieyouxu"
This reverts commit c0cee4e36b5f0964bdeb2ac12cfd9002addb51cc.
|
|
Rollup of 7 pull requests
Successful merges:
- #131831 (extend the "if-unchanged" logic for compiler builds)
- #132541 (Proper support for cross-crate recursive const stability checks)
- #132657 (AIX: add run-make support)
- #132901 (Warn about invalid `mir-enable-passes` pass names)
- #132923 (Triagebot: Consolidate the T-compiler ad hoc assignment groups)
- #132938 (Make precise capturing suggestion machine-applicable only if it has no APITs)
- #132947 (clarify `must_produce_diag` ICE for debugging)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
r=Mark-Simulacrum
extend the "if-unchanged" logic for compiler builds
Implements the first item from [this tracking issue](https://github.com/rust-lang/rust/issues/131744).
In short, we want to make "if-unchanged" logic to check for changes outside of certain allowed directories, and this PR implements that.
See https://github.com/rust-lang/rust/issues/131658 for more context.
|
|
Delete the `cfg(not(parallel))` serial compiler
Since it's inception a long time ago, the parallel compiler and its cfgs have been a maintenance burden. This was a necessary evil the allow iteration while not degrading performance because of synchronization overhead.
But this time is over. Thanks to the amazing work by the parallel working group (and the dyn sync crimes), the parallel compiler has now been fast enough to be shipped by default in nightly for quite a while now.
Stable and beta have still been on the serial compiler, because they can't use `-Zthreads` anyways.
But this is quite suboptimal:
- the maintenance burden still sucks
- we're not testing the serial compiler in nightly
Because of these reasons, it's time to end it. The serial compiler has served us well in the years since it was split from the parallel one, but it's over now.
Let the knight slay one head of the two-headed dragon!
#113349
Note that the default is still 1 thread, as more than 1 thread is still fairly broken.
cc `@onur-ozkan` to see if i did the bootstrap field removal correctly, `@SparrowLii` on the sync parts
|
|
Since it's inception a long time ago, the parallel compiler and its cfgs
have been a maintenance burden. This was a necessary evil the allow
iteration while not degrading performance because of synchronization
overhead.
But this time is over. Thanks to the amazing work by the parallel
working group (and the dyn sync crimes), the parallel compiler has now
been fast enough to be shipped by default in nightly for quite a while
now.
Stable and beta have still been on the serial compiler, because they
can't use `-Zthreads` anyways.
But this is quite suboptimal:
- the maintenance burden still sucks
- we're not testing the serial compiler in nightly
Because of these reasons, it's time to end it. The serial compiler has
served us well in the years since it was split from the parallel one,
but it's over now.
Let the knight slay one head of the two-headed dragon!
|
|
ismailarilik:test/configure/cover-parse-args-in-src-bootstrap-configure-py, r=onur-ozkan
test(configure): cover `parse_args` in `src/bootstrap/configure.py`
I was reading `src/bootstrap/configure.py` and `parse_args` function there seems complex. So I added some tests to cover it and prevent regressions.
|
|
|
|
Rollup of 4 pull requests
Successful merges:
- #129627 (Ensure that tail expr receive lifetime extension)
- #130999 (Implement file_lock feature)
- #132873 (handle separate prefixes in clippy rules)
- #132891 (Remove `rustc_session::config::rustc_short_optgroups`)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Only copy, rename and link `llvm-objcopy` if llvm tools are enabled
Fixes #132719.
cc `@bjorn3` who reported the bootstrapping problem for cg_clif.
cc `@davidtwco` in case this might be problematic for linux -> macOS cross-compile builds, but seems very unlikely.
cc `@albertlarsan68` (co-reviewed #131405)
r? bootstrap
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
This reverts commit c435fa8c4b55f0f8ef8e2e839ce7de960613267e, reversing
changes made to 88acd493f9dbbc8228db2b123c9b4132a995de92.
Seems to have unintentionally omitted commit hash leading to
<https://github.com/rust-lang/rust/pull/132772>.
|
|
use `download-rustc="if-unchanged"` as a global default
If `download-rustc` isn't explicitly set and the source is Git-managed, it should be totally okay to utilize "if-unchanged" behaviour. The "dist" profile already sets `download-rustc` to `false`, so this shouldn’t impact anything on CI.
This also resolves an unhandled case where `bootstrap` unexpectedly panics if `"if-unchanged"` was used with a non-Git source. Now we exits gracefully with an error message pointing the problem.
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
"whenever possible" means applying it if `download-rustc` isn't explicitly set and
the source is Git-managed.
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
bootstrap: Print better message if lock pid isn't available
Not actually sure why, but sometimes the PID isn't available so we print
```
WARNING: build directory locked by process , waiting for lock
```
This makes the message a bit nicer in this case
|
|
Add `{ignore,needs}-{rustc,std}-debug-assertions` directive support
Add `{ignore,needs}-{rustc,std}-debug-assertions` compiletest directives and retire the old `{ignore,only}-debug` directives. The old `{ignore,only}-debug` directives were ambiguous because you could have std built with debug assertions but rustc not built with debug assertions or vice versa. If we want to support the use case of controlling test run based on if rustc was built with debug assertions, then having `{ignore,only}-debug` will be very confusing.
cc ````@matthiaskrgr````
Closes #123987.
r? bootstrap (or compiler tbh)
|
|
|
|
Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
|
|
bootstrap: add quoting support to avoid splitting
With this change, it is now possible to pass quotes to the configure script, such as
`./configure.py --set=target.\"thumbv8m.main-none-eabi\".linker=/linker`
or
`./configure.py '--set=target."thumbv8m.main-none-eabi".linker=/linker'`
, which will treat `thumbv8.main-none-eabi` as a whole part. Currently, the string would be split into two elements: `thumbv8`, and `main-none-eabi`.
The approach taken is to perform custom splitting instead of using `str.split()` and then repairing the split. Also, There are numerous corner cases not handled: the custom split doesn't differentiate between single quotes or double quotes, so it is perfectly possible to pass `./configure.py --set=target.\"thumbv8m.main-none-eabi\'.linker=/linker` and the behaviour would be the same as with all double quotes or single quotes.
As for the code, i'm unsure on whether to delimit strings with double or single quotes. I've seen both single quotes and double quotes used to delimit strings, like in
```py
err("Option '{}' provided more than once".format(key))
```
and this a handful of lines down:
```py
if option.name == 'sccache':
set('llvm.ccache', 'sccache', config)
```
Please advise on the wanted one.
Fixes #130602
r? `@onur-ozkan`
Thanks in advance for the feedback!
|
|
With this change, it is now possible to pass quotes to the configure
script, such as
`./configure.py --set=target.\"thumbv8m.main-none-eabi\".linker=/linker`
, which will treat `thumbv8.main-none-eabi` as a whole part. Currently,
the string would be split into two elements: `thumbv8`, and
`main-none-eabi`.
|
|
|
|
Because it's the target libdir.
`--print` uses the same terminology, and it's a simple way to make it
obviously different from `$sysroot/lib`.
|
|
make `download-rustc="if-unchanged"` default for library profile
Since `download-rustc` is tested on CI and https://github.com/rust-lang/rust/pull/132267 makes it effective for library development, we can now make it default for the library profile.
Implements the 3rd item from [this tracking issue](https://github.com/rust-lang/rust/issues/131744).
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
|
Remove unncessary option for default rust-analyzer setting
In favor of https://github.com/rust-lang/rust-analyzer/pull/17888
|
|
Use protected visibility when building rustc with LLD
https://github.com/rust-lang/compiler-team/issues/782
I wasn't sure about having two commits in a PR, but I figured, at least initially it might make sense to discuss these commits together. Happy to squash, or move the second commit to a separate PR.
I contemplated trying to enable protected visibility for more cases when LLD will be used other than just `-Zlinker-features=+lld`, but that would be more a complex change that probably still wouldn't cover all cases when LLD is used, so went with the simplest option of just checking if the linker-feature is enabled.
r? lqd
|