Fix backtraces with -C panic=abort on qnx; emit unwind tables by default#147454
Merged
bors merged 1 commit intorust-lang:masterfrom Oct 18, 2025
Merged
Conversation
Collaborator
|
These commits modify compiler targets. |
Collaborator
wesleywiser
approved these changes
Oct 13, 2025
Member
There was a problem hiding this comment.
Looks reasonable enough to me but let's cc the target maintainers: @flba-eb @gh-tr @jonathanpallant @japaric
Member
|
r? compiler |
Member
|
Going to assign to wesley, since they seem to have given approval pending any feedback from target maintainers r? @wesleywiser |
Collaborator
|
|
Contributor
|
I don't know enough about unwinding on QNX to comment here. |
Contributor
|
I cannot test this right now, but it seems to make sense. Also, risk is low as the default can easily be changed at the command line. Thanks, @Hoverbear ! |
wesleywiser
approved these changes
Oct 17, 2025
Member
|
Target maintainers seem generally in favor so @bors r+ rollup |
Collaborator
GuillaumeGomez
added a commit
to GuillaumeGomez/rust
that referenced
this pull request
Oct 17, 2025
…tables-qnx, r=wesleywiser Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default While syncing rust-lang#143613 into Ferrocene as part of ferrocene/ferrocene#1803, we noted a failure on our QNX targets: ``` ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout ---- error: test did not exit with success! code=Some(134) so test would pass with `run-crash` status: exit status: 134 command: RUSTC="/home/ci/project/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUST_TEST_THREADS="1" "/home/ci/project/build/x86_64-unknown-linux-gnu/stage1-tools-bin/remote-test-client" "run" "0" "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a" --- stdout ------------------------------- uploaded "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a", waiting for result died due to signal 6 ------------------------------------------ --- stderr ------------------------------- thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:39:9: ERROR: no `this_function_must_be_in_the_backtrace` in stderr! actual stderr: thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:27:5: generate panic backtrace stack backtrace: 0: 0x4e66a53643 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h55e010263b1e3169 1: 0x4e66a68cd2 - core::fmt::write::h0d6e2e8752abc333 2: 0x4e66a16919 - std::io::Write::write_fmt::h71c4c024d832b384 3: 0x4e66a1f8e2 - std::sys::backtrace::BacktraceLock::print::hdd80dfdf90bb7100 4: 0x4e66a221e0 - std::panicking::default_hook::{{closure}}::h77758f25a686500f 5: 0x4e66a21f69 - std::panicking::default_hook::ha63f7d476af6c267 6: 0x4e66a22999 - std::panicking::panic_with_hook::h3a36a8a0f0dd8ccd 7: 0x4e66a21cac - std::panicking::begin_panic::{{closure}}::h570dedb92e232392 8: 0x4e66a1fa69 - std::sys::backtrace::__rust_end_short_backtrace::h5366eec354f92733 9: 0x4e669f9589 - std::panicking::begin_panic::h04a4bd4c33dd4056 10: 0x4e66a00aca - panic_abort_backtrace_without_debuginfo::and_this_function_too::h5b034b94cbe9c3d3 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ------------------------------------------ ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout end ---- failures: [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs test result: FAILED. 19958 passed; 1 failed; 328 ignored; 0 measured; 0 filtered out; finished in 1827.71s Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-pc-nto-qnx710 Build completed unsuccessfully in 0:43:28 Exited with code exit status 1 ``` This patch applies the same fix as the one found in rust-lang#143613 of adding the `default_uwtable: true` to the target. I've run it locally, when ferrocene/ferrocene#1803 merges we'll know it has passed within our CI, which is about a close an analog as I can offer to Rust.
GuillaumeGomez
added a commit
to GuillaumeGomez/rust
that referenced
this pull request
Oct 17, 2025
…tables-qnx, r=wesleywiser Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default While syncing rust-lang#143613 into Ferrocene as part of ferrocene/ferrocene#1803, we noted a failure on our QNX targets: ``` ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout ---- error: test did not exit with success! code=Some(134) so test would pass with `run-crash` status: exit status: 134 command: RUSTC="/home/ci/project/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUST_TEST_THREADS="1" "/home/ci/project/build/x86_64-unknown-linux-gnu/stage1-tools-bin/remote-test-client" "run" "0" "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a" --- stdout ------------------------------- uploaded "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a", waiting for result died due to signal 6 ------------------------------------------ --- stderr ------------------------------- thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:39:9: ERROR: no `this_function_must_be_in_the_backtrace` in stderr! actual stderr: thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:27:5: generate panic backtrace stack backtrace: 0: 0x4e66a53643 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h55e010263b1e3169 1: 0x4e66a68cd2 - core::fmt::write::h0d6e2e8752abc333 2: 0x4e66a16919 - std::io::Write::write_fmt::h71c4c024d832b384 3: 0x4e66a1f8e2 - std::sys::backtrace::BacktraceLock::print::hdd80dfdf90bb7100 4: 0x4e66a221e0 - std::panicking::default_hook::{{closure}}::h77758f25a686500f 5: 0x4e66a21f69 - std::panicking::default_hook::ha63f7d476af6c267 6: 0x4e66a22999 - std::panicking::panic_with_hook::h3a36a8a0f0dd8ccd 7: 0x4e66a21cac - std::panicking::begin_panic::{{closure}}::h570dedb92e232392 8: 0x4e66a1fa69 - std::sys::backtrace::__rust_end_short_backtrace::h5366eec354f92733 9: 0x4e669f9589 - std::panicking::begin_panic::h04a4bd4c33dd4056 10: 0x4e66a00aca - panic_abort_backtrace_without_debuginfo::and_this_function_too::h5b034b94cbe9c3d3 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ------------------------------------------ ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout end ---- failures: [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs test result: FAILED. 19958 passed; 1 failed; 328 ignored; 0 measured; 0 filtered out; finished in 1827.71s Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-pc-nto-qnx710 Build completed unsuccessfully in 0:43:28 Exited with code exit status 1 ``` This patch applies the same fix as the one found in rust-lang#143613 of adding the `default_uwtable: true` to the target. I've run it locally, when ferrocene/ferrocene#1803 merges we'll know it has passed within our CI, which is about a close an analog as I can offer to Rust.
bors
added a commit
that referenced
this pull request
Oct 17, 2025
Rollup of 7 pull requests Successful merges: - #140153 (Implement `Debug` for `EncodeWide`) - #147454 (Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default) - #147468 (Implement fs api set_times and set_times_nofollow) - #147494 (std::thread spawn: Docs: Link to Builder::spawn; Make same.) - #147783 (bootstrap: migrate to object 0.37) - #147792 (Fix autodiff incorrectly applying fat-lto to proc-macro crates ) - #147809 (rustdoc: Fix passes order so intra-doc links are collected after stripping passes) r? `@ghost` `@rustbot` modify labels: rollup
bors
added a commit
that referenced
this pull request
Oct 18, 2025
Rollup of 8 pull requests Successful merges: - #140153 (Implement `Debug` for `EncodeWide`) - #145724 (the `#[track_caller]` shim should not inherit `#[no_mangle]`) - #147258 (iter repeat: panic on last) - #147454 (Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default) - #147468 (Implement fs api set_times and set_times_nofollow) - #147764 (Undo CopyForDeref assertion in const qualif) - #147805 (use module_child index as disambiguator for external items) - #147824 (docs: update Motor OS target docs) r? `@ghost` `@rustbot` modify labels: rollup
rust-timer
added a commit
that referenced
this pull request
Oct 18, 2025
Rollup merge of #147454 - ferrocene:hoverbear/panic-abort-uwtables-qnx, r=wesleywiser Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default While syncing #143613 into Ferrocene as part of ferrocene/ferrocene#1803, we noted a failure on our QNX targets: ``` ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout ---- error: test did not exit with success! code=Some(134) so test would pass with `run-crash` status: exit status: 134 command: RUSTC="/home/ci/project/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUST_TEST_THREADS="1" "/home/ci/project/build/x86_64-unknown-linux-gnu/stage1-tools-bin/remote-test-client" "run" "0" "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a" --- stdout ------------------------------- uploaded "/home/ci/project/build/x86_64-unknown-linux-gnu/test/ui/panics/panic-abort-backtrace-without-debuginfo/a", waiting for result died due to signal 6 ------------------------------------------ --- stderr ------------------------------- thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:39:9: ERROR: no `this_function_must_be_in_the_backtrace` in stderr! actual stderr: thread 'main' (1) panicked at /home/ci/project/tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs:27:5: generate panic backtrace stack backtrace: 0: 0x4e66a53643 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h55e010263b1e3169 1: 0x4e66a68cd2 - core::fmt::write::h0d6e2e8752abc333 2: 0x4e66a16919 - std::io::Write::write_fmt::h71c4c024d832b384 3: 0x4e66a1f8e2 - std::sys::backtrace::BacktraceLock::print::hdd80dfdf90bb7100 4: 0x4e66a221e0 - std::panicking::default_hook::{{closure}}::h77758f25a686500f 5: 0x4e66a21f69 - std::panicking::default_hook::ha63f7d476af6c267 6: 0x4e66a22999 - std::panicking::panic_with_hook::h3a36a8a0f0dd8ccd 7: 0x4e66a21cac - std::panicking::begin_panic::{{closure}}::h570dedb92e232392 8: 0x4e66a1fa69 - std::sys::backtrace::__rust_end_short_backtrace::h5366eec354f92733 9: 0x4e669f9589 - std::panicking::begin_panic::h04a4bd4c33dd4056 10: 0x4e66a00aca - panic_abort_backtrace_without_debuginfo::and_this_function_too::h5b034b94cbe9c3d3 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ------------------------------------------ ---- [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs stdout end ---- failures: [ui] tests/ui/panics/panic-abort-backtrace-without-debuginfo.rs test result: FAILED. 19958 passed; 1 failed; 328 ignored; 0 measured; 0 filtered out; finished in 1827.71s Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-pc-nto-qnx710 Build completed unsuccessfully in 0:43:28 Exited with code exit status 1 ``` This patch applies the same fix as the one found in #143613 of adding the `default_uwtable: true` to the target. I've run it locally, when ferrocene/ferrocene#1803 merges we'll know it has passed within our CI, which is about a close an analog as I can offer to Rust.
Kobzol
pushed a commit
to Kobzol/rustc_codegen_cranelift
that referenced
this pull request
Dec 29, 2025
Rollup of 8 pull requests Successful merges: - rust-lang/rust#140153 (Implement `Debug` for `EncodeWide`) - rust-lang/rust#145724 (the `#[track_caller]` shim should not inherit `#[no_mangle]`) - rust-lang/rust#147258 (iter repeat: panic on last) - rust-lang/rust#147454 (Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default) - rust-lang/rust#147468 (Implement fs api set_times and set_times_nofollow) - rust-lang/rust#147764 (Undo CopyForDeref assertion in const qualif) - rust-lang/rust#147805 (use module_child index as disambiguator for external items) - rust-lang/rust#147824 (docs: update Motor OS target docs) r? `@ghost` `@rustbot` modify labels: rollup
christian-schilling
pushed a commit
to christian-schilling/rustc_codegen_cranelift
that referenced
this pull request
Jan 27, 2026
Rollup of 8 pull requests Successful merges: - rust-lang/rust#140153 (Implement `Debug` for `EncodeWide`) - rust-lang/rust#145724 (the `#[track_caller]` shim should not inherit `#[no_mangle]`) - rust-lang/rust#147258 (iter repeat: panic on last) - rust-lang/rust#147454 (Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default) - rust-lang/rust#147468 (Implement fs api set_times and set_times_nofollow) - rust-lang/rust#147764 (Undo CopyForDeref assertion in const qualif) - rust-lang/rust#147805 (use module_child index as disambiguator for external items) - rust-lang/rust#147824 (docs: update Motor OS target docs) r? `@ghost` `@rustbot` modify labels: rollup
christian-schilling
pushed a commit
to christian-schilling/rustc_codegen_cranelift
that referenced
this pull request
Jan 27, 2026
Rollup of 8 pull requests Successful merges: - rust-lang/rust#140153 (Implement `Debug` for `EncodeWide`) - rust-lang/rust#145724 (the `#[track_caller]` shim should not inherit `#[no_mangle]`) - rust-lang/rust#147258 (iter repeat: panic on last) - rust-lang/rust#147454 (Fix backtraces with `-C panic=abort` on qnx; emit unwind tables by default) - rust-lang/rust#147468 (Implement fs api set_times and set_times_nofollow) - rust-lang/rust#147764 (Undo CopyForDeref assertion in const qualif) - rust-lang/rust#147805 (use module_child index as disambiguator for external items) - rust-lang/rust#147824 (docs: update Motor OS target docs) r? `@ghost` `@rustbot` modify labels: rollup
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.
While syncing #143613 into Ferrocene as part of ferrocene/ferrocene#1803, we noted a failure on our QNX targets:
This patch applies the same fix as the one found in #143613 of adding the
default_uwtable: trueto the target.I've run it locally, when ferrocene/ferrocene#1803 merges we'll know it has passed within our CI, which is about a close an analog as I can offer to Rust.