Skip to content

Conversation

saethlin
Copy link
Member

@saethlin saethlin commented Sep 8, 2025

MCP: rust-lang/compiler-team#909

This adds a new panic strategy, -Cpanic=immediate-abort. This panic strategy essentially just codifies use of -Zbuild-std-features=panic_immediate_abort. This PR is intended to just set up infrastructure, and while it will change how the compiler is invoked for users of the feature, there should be no other impacts.

In many parts of the compiler, PanicStrategy::ImmediateAbort behaves just like PanicStrategy::Abort, because actually most parts of the compiler just mean to ask "can this unwind?" so I've added a helper function so we can say sess.panic_strategy().unwinds().

The panic and unwind strategies have some level of compatibility, which mostly means that we can pre-compile the sysroot with unwinding panics then the sysroot can be linked with aborting panics later. The immediate-abort strategy is all-or-nothing, enforced by compiler/rustc_metadata/src/dependency_format.rs and this is tested for in tests/ui/panic-runtime/. We could technically be more compatible with the other panic strategies, but immediately-aborting panics primarily exist for users who want to eliminate all the code size responsible for the panic runtime. I'm open to other use cases if people want to present them, but not right now. This PR is already large.

-Cpanic=immediate-abort sets both cfg(panic = "immediate-abort") and cfg(panic = "abort"). bjorn3 pointed out that people may be checking for the abort cfg to ask if panics will unwind, and also the sysroot feature this is replacing used to require -Cpanic=abort so this seems like a good back-compat step. At least for the moment. Unclear if this is a good idea indefinitely. I can imagine this being confusing.

The changes to the standard library attributes are purely mechanical. Apart from that, I removed an unsafe we haven't needed for a while since the abort intrinsic became safe, and I've added a helpful diagnostic for people trying to use the old feature.

To test that -Cpanic=immediate-abort conflicts with other panic strategies, I've beefed up the core-stubs infrastructure a bit. There is now a separate attribute to set flags on it.

I've added a test that this produces the desired codegen, called tests/run-make-cargo/panic-immediate-abort-codegen/ and also a separate run-make-cargo test that checks that we can build a binary.

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Sep 8, 2025
@saethlin saethlin force-pushed the panic=immediate-abort branch from 3b57f28 to 3dbe512 Compare September 8, 2025 06:45
@rust-log-analyzer

This comment has been minimized.

@saethlin saethlin force-pushed the panic=immediate-abort branch from 3dbe512 to aa16ee3 Compare September 8, 2025 07:09
@rust-log-analyzer

This comment has been minimized.

@rustbot rustbot added A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Sep 9, 2025
@saethlin saethlin force-pushed the panic=immediate-abort branch from b7cb10a to f69c5cd Compare September 11, 2025 15:17
@rust-log-analyzer

This comment has been minimized.

@saethlin saethlin force-pushed the panic=immediate-abort branch from f69c5cd to fd30646 Compare September 11, 2025 15:33
@saethlin saethlin linked an issue Sep 13, 2025 that may be closed by this pull request
@bors
Copy link
Collaborator

bors commented Sep 13, 2025

☔ The latest upstream changes (presumably #146499) made this pull request unmergeable. Please resolve the merge conflicts.

@saethlin saethlin force-pushed the panic=immediate-abort branch 3 times, most recently from 49ae76e to 301ff58 Compare September 13, 2025 21:46
@saethlin saethlin marked this pull request as ready for review September 18, 2025 02:28
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 18, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 18, 2025

Some changes occurred in compiler/rustc_codegen_ssa

cc @WaffleLapkin

Some changes occurred in compiler/rustc_codegen_gcc

cc @antoyo, @GuillaumeGomez

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

Some changes occurred in src/tools/compiletest

cc @jieyouxu

These commits modify compiler targets.
(See the Target Tier Policy.)

Some changes occurred in cfg and check-cfg configuration

cc @Urgau

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 18, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 18, 2025

r? @nnethercote

rustbot has assigned @nnethercote.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

if_let_rescope,
if_while_or_patterns,
ignore,
immediate_abort,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if the symbol shouldn't be immediate-abort, to follow the CLI.

Which would make the cfgs be like #[cfg(panic = "immediate-abort")] which seems nicer than #[cfg(panic = "immediate_abort")].

Suggested change
immediate_abort,
immediate_abort: "immediate-abort",

Copy link
Member Author

@saethlin saethlin Sep 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect that if this is ever stabilized we will need some kind of special handling for the underscore version; we have -Cdebug-assertions which sets cfg(debug_assertions) and many other such flags.

I agree that the - is better, but there's a lot of precedent.

@saethlin saethlin force-pushed the panic=immediate-abort branch from fec8fa4 to 2da7064 Compare September 18, 2025 15:06
Copy link
Contributor

@nnethercote nnethercote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically looks fine. A couple of things I don't understand, and some of the tests need some light documentation.

@rustbot author

View changes since this review

let minicore_path = self.build_minicore();
aux_rustc.arg("--extern");
aux_rustc.arg(&format!("minicore={}", minicore_path));
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's going on here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without this code added, the //@ add-core-stubs attribute silently does nothing in an auxillary crate.

@saethlin
Copy link
Member Author

Argh, the test as I wrote it would need a cross-linker in order to actually work, but it looks like we are using a host-only linker to run the tests. I found several other uses of //@ ignore-cross-compile in the test suite that seem to be using it for the same purpose.

@saethlin
Copy link
Member Author

@bors r=nnethercote rollup=iffy

@bors
Copy link
Collaborator

bors commented Sep 23, 2025

📌 Commit 4c1595a has been approved by nnethercote

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 23, 2025
@bors
Copy link
Collaborator

bors commented Sep 23, 2025

⌛ Testing commit 4c1595a with merge 4056082...

@bors
Copy link
Collaborator

bors commented Sep 23, 2025

☀️ Test successful - checks-actions
Approved by: nnethercote
Pushing 4056082 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 23, 2025
@bors bors merged commit 4056082 into rust-lang:master Sep 23, 2025
11 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Sep 23, 2025
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing f6092f2 (parent) -> 4056082 (this PR)

Test differences

Show 209 test diffs

Stage 0

  • errors::verify_metadata_async_drop_types_in_dependency_52: [missing] -> pass (J1)
  • errors::verify_metadata_conflicting_global_alloc_24: [missing] -> pass (J1)
  • errors::verify_metadata_crate_location_unknown_type_45: [missing] -> pass (J1)
  • errors::verify_metadata_crate_not_compiler_builtins_17: pass -> [missing] (J1)
  • errors::verify_metadata_crate_not_panic_runtime_18: [missing] -> pass (J1)
  • errors::verify_metadata_empty_renaming_target_11: [missing] -> pass (J1)
  • errors::verify_metadata_empty_renaming_target_9: pass -> [missing] (J1)
  • errors::verify_metadata_extern_location_not_exist_33: pass -> [missing] (J1)
  • errors::verify_metadata_extern_location_not_exist_35: [missing] -> pass (J1)
  • errors::verify_metadata_extern_location_not_file_36: [missing] -> pass (J1)
  • errors::verify_metadata_fail_create_file_encoder_14: pass -> [missing] (J1)
  • errors::verify_metadata_fail_write_file_15: pass -> [missing] (J1)
  • errors::verify_metadata_failed_copy_to_stdout_27: pass -> [missing] (J1)
  • errors::verify_metadata_failed_copy_to_stdout_29: [missing] -> pass (J1)
  • errors::verify_metadata_failed_create_encoded_metadata_31: pass -> [missing] (J1)
  • errors::verify_metadata_failed_create_encoded_metadata_33: [missing] -> pass (J1)
  • errors::verify_metadata_failed_create_tempdir_29: pass -> [missing] (J1)
  • errors::verify_metadata_failed_create_tempdir_31: [missing] -> pass (J1)
  • errors::verify_metadata_found_staticlib_41: pass -> [missing] (J1)
  • errors::verify_metadata_found_staticlib_43: [missing] -> pass (J1)
  • errors::verify_metadata_full_metadata_not_found_37: [missing] -> pass (J1)
  • errors::verify_metadata_global_alloc_required_24: pass -> [missing] (J1)
  • errors::verify_metadata_global_alloc_required_26: [missing] -> pass (J1)
  • errors::verify_metadata_incompatible_panic_in_drop_strategy_6: pass -> [missing] (J1)
  • errors::verify_metadata_incompatible_panic_in_drop_strategy_8: [missing] -> pass (J1)
  • errors::verify_metadata_incompatible_rustc_42: pass -> [missing] (J1)
  • errors::verify_metadata_incompatible_rustc_44: [missing] -> pass (J1)
  • errors::verify_metadata_incompatible_target_modifiers_46: pass -> [missing] (J1)
  • errors::verify_metadata_incompatible_target_modifiers_l_missed_49: [missing] -> pass (J1)
  • errors::verify_metadata_incompatible_target_modifiers_r_missed_50: [missing] -> pass (J1)
  • errors::verify_metadata_incompatible_with_immediate_abort_6: [missing] -> pass (J1)
  • errors::verify_metadata_lib_filename_form_46: [missing] -> pass (J1)
  • errors::verify_metadata_lib_framework_apple_10: [missing] -> pass (J1)
  • errors::verify_metadata_lib_framework_apple_8: pass -> [missing] (J1)
  • errors::verify_metadata_link_ordinal_raw_dylib_9: [missing] -> pass (J1)
  • errors::verify_metadata_multiple_renamings_13: [missing] -> pass (J1)
  • errors::verify_metadata_newer_crate_version_39: pass -> [missing] (J1)
  • errors::verify_metadata_newer_crate_version_41: [missing] -> pass (J1)
  • errors::verify_metadata_no_crate_with_triple_42: [missing] -> pass (J1)
  • errors::verify_metadata_no_link_mod_override_12: pass -> [missing] (J1)
  • errors::verify_metadata_no_link_mod_override_14: [missing] -> pass (J1)
  • errors::verify_metadata_no_multiple_alloc_error_handler_21: pass -> [missing] (J1)
  • errors::verify_metadata_no_multiple_alloc_error_handler_23: [missing] -> pass (J1)
  • errors::verify_metadata_no_multiple_global_alloc_20: pass -> [missing] (J1)
  • errors::verify_metadata_no_multiple_global_alloc_22: [missing] -> pass (J1)
  • errors::verify_metadata_no_panic_strategy_20: [missing] -> pass (J1)
  • errors::verify_metadata_no_transitive_needs_dep_25: pass -> [missing] (J1)
  • errors::verify_metadata_no_transitive_needs_dep_27: [missing] -> pass (J1)
  • errors::verify_metadata_non_ascii_name_32: pass -> [missing] (J1)
  • errors::verify_metadata_not_profiler_runtime_21: [missing] -> pass (J1)
  • errors::verify_metadata_raw_dylib_malformed_53: [missing] -> pass (J1)
  • errors::verify_metadata_raw_dylib_unsupported_abi_13: pass -> [missing] (J1)
  • errors::verify_metadata_raw_dylib_unsupported_abi_15: [missing] -> pass (J1)
  • errors::verify_metadata_stable_crate_id_collision_37: pass -> [missing] (J1)
  • errors::verify_metadata_stable_crate_id_collision_39: [missing] -> pass (J1)
  • errors::verify_metadata_symbol_conflicts_current_38: [missing] -> pass (J1)
  • errors::verify_metadata_unknown_target_modifier_unsafe_allowed_49: pass -> [missing] (J1)
  • errors::verify_metadata_unknown_target_modifier_unsafe_allowed_51: [missing] -> pass (J1)
  • errors::verify_metadata_wasm_c_abi_45: pass -> [missing] (J1)

Stage 1

  • errors::verify_metadata_async_drop_types_in_dependency_50: pass -> [missing] (J0)
  • errors::verify_metadata_binary_output_to_tty_28: pass -> [missing] (J0)
  • errors::verify_metadata_crate_location_unknown_type_43: pass -> [missing] (J0)
  • errors::verify_metadata_crate_not_compiler_builtins_17: pass -> [missing] (J0)
  • errors::verify_metadata_crate_not_compiler_builtins_19: [missing] -> pass (J0)
  • errors::verify_metadata_extern_location_not_exist_33: pass -> [missing] (J0)
  • errors::verify_metadata_fail_create_file_encoder_14: pass -> [missing] (J0)
  • errors::verify_metadata_fail_create_file_encoder_16: [missing] -> pass (J0)
  • errors::verify_metadata_fail_write_file_17: [missing] -> pass (J0)
  • errors::verify_metadata_failed_copy_to_stdout_27: pass -> [missing] (J0)
  • errors::verify_metadata_failed_copy_to_stdout_29: [missing] -> pass (J0)
  • errors::verify_metadata_failed_create_file_32: [missing] -> pass (J0)
  • errors::verify_metadata_failed_create_tempdir_29: pass -> [missing] (J0)
  • errors::verify_metadata_failed_write_error_28: [missing] -> pass (J0)
  • errors::verify_metadata_full_metadata_not_found_37: [missing] -> pass (J0)
  • errors::verify_metadata_global_alloc_required_26: [missing] -> pass (J0)
  • errors::verify_metadata_incompatible_panic_in_drop_strategy_6: pass -> [missing] (J0)
  • errors::verify_metadata_incompatible_panic_in_drop_strategy_8: [missing] -> pass (J0)
  • errors::verify_metadata_incompatible_rustc_42: pass -> [missing] (J0)
  • errors::verify_metadata_incompatible_rustc_44: [missing] -> pass (J0)
  • errors::verify_metadata_incompatible_target_modifiers_48: [missing] -> pass (J0)
  • errors::verify_metadata_incompatible_target_modifiers_r_missed_48: pass -> [missing] (J0)
  • errors::verify_metadata_incompatible_target_modifiers_r_missed_50: [missing] -> pass (J0)
  • errors::verify_metadata_lib_filename_form_46: [missing] -> pass (J0)
  • errors::verify_metadata_lib_framework_apple_10: [missing] -> pass (J0)
  • errors::verify_metadata_lib_framework_apple_8: pass -> [missing] (J0)
  • errors::verify_metadata_link_ordinal_raw_dylib_7: pass -> [missing] (J0)
  • errors::verify_metadata_no_multiple_global_alloc_20: pass -> [missing] (J0)
  • errors::verify_metadata_no_panic_strategy_20: [missing] -> pass (J0)
  • errors::verify_metadata_no_transitive_needs_dep_27: [missing] -> pass (J0)
  • errors::verify_metadata_raw_dylib_unsupported_abi_15: [missing] -> pass (J0)
  • errors::verify_metadata_renaming_no_link_12: [missing] -> pass (J0)
  • errors::verify_metadata_stable_crate_id_collision_37: pass -> [missing] (J0)
  • errors::verify_metadata_symbol_conflicts_current_36: pass -> [missing] (J0)
  • errors::verify_metadata_wasm_c_abi_47: [missing] -> pass (J0)
  • [run-make] tests/run-make-cargo/panic-immediate-abort-codegen: [missing] -> pass (J1)
  • [ui] tests/ui/panic-runtime/immediate-abort-default-sysroot.rs: [missing] -> pass (J1)
  • [ui] tests/ui/panic-runtime/need-immediate-abort-got-abort.rs: [missing] -> pass (J1)
  • [ui] tests/ui/panic-runtime/need-immediate-abort-got-unwind.rs: [missing] -> pass (J1)
  • [ui] tests/ui/panic-runtime/need-unwind-got-immediate-abort.rs: [missing] -> pass (J1)

Stage 2

  • [run-make] tests/run-make-cargo/panic-immediate-abort-codegen: [missing] -> pass (J2)

(and 103 additional test diffs)

Additionally, 6 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 40560823602064f4c726aea3e15e104449e1a392 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-aarch64-linux: 6468.9s -> 8802.5s (36.1%)
  2. dist-apple-various: 4093.1s -> 3478.2s (-15.0%)
  3. pr-check-1: 1488.8s -> 1705.3s (14.5%)
  4. aarch64-apple: 5516.4s -> 6242.9s (13.2%)
  5. dist-aarch64-apple: 7799.1s -> 6979.5s (-10.5%)
  6. x86_64-gnu-tools: 3636.0s -> 3320.5s (-8.7%)
  7. i686-gnu-nopt-1: 7520.0s -> 8137.4s (8.2%)
  8. i686-gnu-1: 7760.7s -> 8389.1s (8.1%)
  9. i686-gnu-2: 5638.4s -> 6056.3s (7.4%)
  10. dist-x86_64-apple: 7928.5s -> 7358.7s (-7.2%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (4056082): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.4% [0.3%, 0.6%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.5%, secondary -1.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.5% [-2.9%, -1.8%] 3
Improvements ✅
(secondary)
-1.9% [-1.9%, -1.9%] 1
All ❌✅ (primary) -2.5% [-2.9%, -1.8%] 3

Cycles

Results (secondary 1.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.2% [2.0%, 2.3%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.1% [-2.1%, -2.1%] 1
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 471.715s -> 472.868s (0.24%)
Artifact size: 389.94 MiB -> 389.97 MiB (0.01%)

github-merge-queue bot pushed a commit to rust-lang/cargo that referenced this pull request Sep 24, 2025
### What does this PR try to resolve?

The test exercises a regression of extra `-Zbuild-std-features`
overriding the entire default-features set.
However, after rust-lang/rust#146317 panic_immediate_abort
became a codegen flag not a Cargo feature anymore.
We pick another `optimize_for_size` feature flag to ensure the
regression case is still covered.

### How to test and review this PR?

To verify `optimize_for_size` actually triggers the regression,
git revert f004691
and changes to `-Zbuild-std-features=optimize_for_size`.

Alternatively, we can just drop this test.
Muscraft pushed a commit to Muscraft/rust that referenced this pull request Sep 24, 2025
…ethercote

Add panic=immediate-abort

MCP: rust-lang/compiler-team#909

This adds a new panic strategy, `-Cpanic=immediate-abort`. This panic strategy essentially just codifies use of `-Zbuild-std-features=panic_immediate_abort`. This PR is intended to just set up infrastructure, and while it will change how the compiler is invoked for users of the feature, there should be no other impacts.

In many parts of the compiler, `PanicStrategy::ImmediateAbort` behaves just like `PanicStrategy::Abort`, because actually most parts of the compiler just mean to ask "can this unwind?" so I've added a helper function so we can say `sess.panic_strategy().unwinds()`.

The panic and unwind strategies have some level of compatibility, which mostly means that we can pre-compile the sysroot with unwinding panics then the sysroot can be linked with aborting panics later. The immediate-abort strategy is all-or-nothing, enforced by `compiler/rustc_metadata/src/dependency_format.rs` and this is tested for in `tests/ui/panic-runtime/`. We could _technically_ be more compatible with the other panic strategies, but immediately-aborting panics primarily exist for users who want to eliminate all the code size responsible for the panic runtime. I'm open to other use cases if people want to present them, but not right now. This PR is already large.

`-Cpanic=immediate-abort` sets both `cfg(panic = "immediate-abort")` _and_ `cfg(panic = "abort")`. bjorn3 pointed out that people may be checking for the abort cfg to ask if panics will unwind, and also the sysroot feature this is replacing used to require `-Cpanic=abort` so this seems like a good back-compat step. At least for the moment. Unclear if this is a good idea indefinitely. I can imagine this being confusing.

The changes to the standard library attributes are purely mechanical. Apart from that, I removed an `unsafe` we haven't needed for a while since the `abort` intrinsic became safe, and I've added a helpful diagnostic for people trying to use the old feature.

To test that `-Cpanic=immediate-abort` conflicts with other panic strategies, I've beefed up the core-stubs infrastructure a bit. There is now a separate attribute to set flags on it.

I've added a test that this produces the desired codegen, called `tests/run-make-cargo/panic-immediate-abort-codegen/` and also a separate run-make-cargo test that checks that we can build a binary.
aarongable pushed a commit to chromium/chromium that referenced this pull request Sep 25, 2025
…40-g4d4cb757-1 / 99317ef14d0be42fa4039eea7c5ce50cb4e9aee7-4 : 15283f6fe95e5b604273d13a428bab5fc0788f5a-1

https://chromium.googlesource.com/external/github.com/llvm/llvm-project/+log/2384a6a2..4d4cb757

https://chromium.googlesource.com/external/github.com/rust-lang/rust/+log/99317ef14d0b..15283f6fe95e

Ran: ./tools/clang/scripts/upload_revision.py 4d4cb757f94470b95458fcbe3b88332b212feeee

Also:
* ran gnrt_stdlib.py
* use immediate-abort for official builds for *all* crates (instead of
  just the stdlib) to deal with
  rust-lang/rust#146317.

Bug: 444224976,447200172
Disable-Rts: True
Cq-Include-Trybots: chromium/try:android-cronet-riscv64-dbg
Cq-Include-Trybots: chromium/try:android-cronet-riscv64-rel
Cq-Include-Trybots: chromium/try:chromeos-amd64-generic-cfi-thin-lto-rel
Cq-Include-Trybots: chromium/try:dawn-win10-x86-deps-rel
Cq-Include-Trybots: chromium/try:fuchsia-arm64-cast-receiver-rel
Cq-Include-Trybots: chromium/try:ios-catalyst,win-asan,android-official
Cq-Include-Trybots: chromium/try:linux-cast-x64-rel
Cq-Include-Trybots: chromium/try:linux-chromeos-dbg
Cq-Include-Trybots: chromium/try:linux-swangle-try-x64,win-swangle-try-x86
Cq-Include-Trybots: chromium/try:linux-v4l2-codec-rel
Cq-Include-Trybots: chromium/try:linux-wayland-mutter-rel
Cq-Include-Trybots: chromium/try:linux_chromium_cfi_rel_ng
Cq-Include-Trybots: chromium/try:linux_chromium_msan_rel_ng
Cq-Include-Trybots: chromium/try:mac-official,linux-official
Cq-Include-Trybots: chromium/try:mac12-arm64-rel,mac_chromium_asan_rel_ng
Cq-Include-Trybots: chromium/try:win-arm64-rel
Cq-Include-Trybots: chromium/try:win-official,win32-official
Cq-Include-Trybots: chrome/try:android-arm32-pgo,android-arm64-pgo
Cq-Include-Trybots: chrome/try:android-x64-rel-ready
Cq-Include-Trybots: chrome/try:chromeos-brya-chrome,chromeos-eve-chrome
Cq-Include-Trybots: chrome/try:chromeos-volteer-chrome
Cq-Include-Trybots: chrome/try:iphone-device
Cq-Include-Trybots: chrome/try:linux-chromeos-chrome
Cq-Include-Trybots: chrome/try:linux-pgo,mac-pgo,win32-pgo,win64-pgo
Cq-Include-Trybots: chrome/try:win-chrome,win64-chrome,linux-chrome,mac-chrome
Cq-Include-Trybots: chromium/try:android-rust-arm32-rel
Cq-Include-Trybots: chromium/try:android-rust-arm64-dbg
Cq-Include-Trybots: chromium/try:android-rust-arm64-rel
Cq-Include-Trybots: chromium/try:linux-rust-x64-dbg
Cq-Include-Trybots: chromium/try:linux-rust-x64-rel
Cq-Include-Trybots: chromium/try:mac-rust-x64-dbg
Cq-Include-Trybots: chromium/try:win-rust-x64-dbg
Cq-Include-Trybots: chromium/try:win-rust-x64-rel
Change-Id: I078392e5e8cd86b791906fc47aebafed25527097
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6980648
Commit-Queue: Nico Weber <[email protected]>
Reviewed-by: Nico Weber <[email protected]>
Auto-Submit: Alan Zhao <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1520848}
aqrln added a commit to prisma/prisma-engines that referenced this pull request Sep 29, 2025
Update the Rust toolchain for query-engine-wasm to `nightly-2025-09-29`.

Update the cargo and compiler flags in `build.sh` to use the new panic
strategy introduced in <rust-lang/rust#146317>.
aqrln added a commit to prisma/prisma-engines that referenced this pull request Sep 29, 2025
Update the Rust toolchain for query-engine-wasm to `nightly-2025-09-29`.

Update the cargo and compiler flags in `build.sh` to use the new panic
strategy introduced in <rust-lang/rust#146317>.
aqrln added a commit to prisma/prisma-engines that referenced this pull request Sep 30, 2025
Update the Rust toolchain for query-engine-wasm to `nightly-2025-09-29`.

Update the cargo and compiler flags in `build.sh` to use the new panic
strategy introduced in <rust-lang/rust#146317>.
github-merge-queue bot pushed a commit to rust-lang/cargo that referenced this pull request Oct 4, 2025
I recently turned `-Zbuild-std-features=panic_immediate_abort` into
`-Cpanic=immediate-abort` in
rust-lang/rust#146317. There was some discussion
of the feature on Zulip here: [#t-compiler/major changes > Unstably add
-Cpanic=immediate-abort
compiler-team#909](https://rust-lang.zulipchat.com/#narrow/channel/233931-t-compiler.2Fmajor-changes/topic/Unstably.20add.20-Cpanic.3Dimmediate-abort.20compiler-team.23909/with/542845480)

One of the outcomes of this shipping in nightly is that a few use
patterns were broken, see
rust-lang/rust#146974 and
rust-lang/rust#146317 for examples. I think most
of the users commenting on these issues are having trouble with how
`RUSTFLAGS` is propagated through Cargo, and most likely they would have
just gotten what they wanted if they could have set a profile option
instead. So I'm trying to implement that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add codegen test(s) for -Zbuild-std-features=panic_immediate_abort
8 participants