Stable backport of #73613
This is the backport of #73613 to stable.
r? @ghost
cc @Mark-Simulacrum
In addition the tests added in the original PR passing, I've also confirmed that the test case in #74739 works correctly.
Also, promote defaults.run.shell from inside only the primary jobs to
the top level.
The src/ci/exec-with-shell.py wrapper script was formerly used to change
out the shell mid-job by intercepting a CI_OVERRIDE_SHELL environment
variable. Now, instead, we just set `bash` as the global default across
all jobs, and we also delete the exec-with-shell.py script.
Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
This will render the src/ci/exec-with-shell.py script more or less
useless, but we're going to replace that by just using the system bash
instead.
Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
A follow-up to #74406, this commit merely removes the `shell: bash`
lines where they are explicitly added in favor of setting defaults for
*all* "run" steps.
Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
This is not a user-visible change as Cargo's library API is not exposed by Rust,
but this way the version in 1.45.1 will appropriately match with published Cargo
0.46.1.
[beta] next
Backports of:
* rustdoc: Fix doc aliases with crate filtering #73644
* rustdoc: Rename invalid_codeblock_attribute lint to be plural #74131
* rustc_lexer: Simplify shebang parsing once more #73596
* Perform obligation deduplication to avoid buggy `ExistentialMismatch` #73485
* Reorder order in which MinGW libs are linked to fix recent breakage #73184
* Change how compiler-builtins gets many CGUs #73136
* Fix wasm32 being broken due to a NodeJS version bump #73885
Emscripten's SDK recently bumped the version of NodeJS they shipped, but
our Dockerfile for the wasm32 builder hardcoded the version number. This
will cause consistent CI failures once the currently cached image is
rebuilt (either due to a change or due to the cache expiring).
This commit fixes the problem by finding the latest version of NodeJS in
the Emscripten SDK and symlinking it to a "latest" directory, which is
then added to the PATH.
This commit intends to fix an accidental regression from #70846. The
goal of #70846 was to build compiler-builtins with a maximal number of
CGUs to ensure that each module in the source corresponds to an object
file. This high degree of control for compiler-builtins is desirable to
ensure that there's at most one exported symbol per CGU, ideally
enabling compiler-builtins to not conflict with the system libgcc as
often.
In #70846, however, only part of the compiler understands that
compiler-builtins is built with many CGUs. The rest of the compiler
thinks it's building with `sess.codegen_units()`. Notably the
calculation of `sess.lto()` consults `sess.codegen_units()`, which when
there's only one CGU it disables ThinLTO. This means that
compiler-builtins is built without ThinLTO, which is quite harmful to
performance! This is the root of the cause from #73135 where intrinsics
were found to not be inlining trivial functions.
The fix applied in this commit is to remove the special-casing of
compiler-builtins in the compiler. Instead the build system is now
responsible for special-casing compiler-builtins. It doesn't know
exactly how many CGUs will be needed but it passes a large number that
is assumed to be much greater than the number of source-level modules
needed. After reading the various locations in the compiler source, this
seemed like the best solution rather than adding more and more special
casing in the compiler for compiler-builtins.
Closes#73135
Fix a crash when searching for an alias contained in the currently selected filter crate.
Also remove alias search results for crates that should be filtered out.
The test suite needed to be fixed to actually take into account the crate filtering and check that there are no results when none are expected.
[beta] backports
This PR backports the following:
* Make novel structural match violations not a `bug` #73446
* linker: Never pass `-no-pie` to non-gnu linkers #73384
* Disable the `SimplifyArmIdentity` pass #73262
* Allow inference regions when relating consts #73225
* Fix link error with #[thread_local] introduced by #71192#73065
* Ensure stack when building MIR for matches #72941
* Don't create impl candidates when obligation contains errors #73005
r? @ghost