Skip to content
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

Adjust frame IP in SGX relative to image base #566

Merged
merged 3 commits into from
Oct 6, 2023

Conversation

mzohreva
Copy link
Contributor

The backtraces printed by panic! are broken in SGX, this PR is a prerequisite for fixing the issue in the standard library.

The SGX-only API added in this PR (backtrace::set_image_base) enables the standard library to set the correct image base address before calling trace_unsynchronized here: https://github.com/rust-lang/rust/blob/1.72.1/library/std/src/sys_common/backtrace.rs#L65.

cc @jethrogb

@workingjubilee
Copy link
Contributor

Is there no way to automatically recover the base image address in this scenario?

@mzohreva
Copy link
Contributor Author

mzohreva commented Oct 2, 2023

Is there no way to automatically recover the base image address in this scenario?

No, due to ASLR the base address changes every time the enclave is loaded into memory.

@workingjubilee
Copy link
Contributor

Then how does std know? Apologies if this is an obvious/silly question, I am not familiar with the particulars of the SGX target, as opposed to my familiarity with x86.

@mzohreva
Copy link
Contributor Author

mzohreva commented Oct 2, 2023

Then how does std know? Apologies if this is an obvious/silly question, I am not familiar with the particulars of the SGX target, as opposed to my familiarity with x86.

The relevant code is here: https://github.com/rust-lang/rust/blob/1.72.1/library/std/src/sys/sgx/abi/mem.rs#L37 it's using inline assembly (that's why I don't think it's a good idea to duplicate that code in this crate or elsewhere)

@workingjubilee
Copy link
Contributor

I see.

// Do not remove inline: will result in relocation failure

That... seems like a compiler bug? Is there a bug tracking this concern?

Can you mark the exposed APIs #[doc(hidden)]? I want to retain plausible deniability about whether this is a sanctioned usage of this crate, here.

src/backtrace/mod.rs Outdated Show resolved Hide resolved
@mzohreva
Copy link
Contributor Author

mzohreva commented Oct 2, 2023

I see.

// Do not remove inline: will result in relocation failure

That... seems like a compiler bug? Is there a bug tracking this concern?

I'm not aware. @jethrogb might know.

Can you mark the exposed APIs #[doc(hidden)]? I want to retain plausible deniability about whether this is a sanctioned usage of this crate, here.

Sure, I'll update the PR

@workingjubilee
Copy link
Contributor

With that, happy to merge this once the question about the relocation thing is settled. Maybe it's a bug but unfixable? Either way, I'd like to know so I'm sure there's no loose ends, or er... more like the loose ends are properly loosened? I don't know.

@jethrogb
Copy link
Contributor

jethrogb commented Oct 3, 2023

SGX doesn't have a dynamic loader, so the Rust entry code needs to do the relocations manually. Any code that's used to compute the relocations (which includes fn image_base()) shouldn't itself contain relocations.

@workingjubilee
Copy link
Contributor

Oh, I see!

That's kinda wild.

@mzohreva
Copy link
Contributor Author

mzohreva commented Oct 4, 2023

@workingjubilee the CI failures seem unrelated to the changes, is there a separate effort to address those? How should we proceed with this PR?

@github-actions
Copy link

github-actions bot commented Oct 6, 2023

Code size changes for a hello-world Rust program linked with libstd with backtrace:

On platform ubuntu-latest:

  • Original binary size: 395,632 B
  • Updated binary size: 395,640 B
  • Difference: 8 B (0%)

Copy link
Contributor

@workingjubilee workingjubilee left a comment

Choose a reason for hiding this comment

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

Thank you!

@workingjubilee workingjubilee merged commit 036d490 into rust-lang:master Oct 6, 2023
36 of 37 checks passed
@mzohreva mzohreva deleted the mz/sgx-image-base branch October 9, 2023 17:55
bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 29, 2023
…-Simulacrum

Update backtrace submodule

This pulls in a few notable changes (see the [complete list](rust-lang/backtrace-rs@99faef8...e9da96e) for details):

- rust-lang/backtrace-rs#508
- rust-lang/backtrace-rs#566
- rust-lang/backtrace-rs#569
  - Fixes rust-lang#116403 by no longer using `dbghelp.dll` during backtrace capture.
bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 29, 2023
…-Simulacrum

Update backtrace submodule

This pulls in a few notable changes (see the [complete list](rust-lang/backtrace-rs@99faef8...e9da96e) for details):

- rust-lang/backtrace-rs#508
- rust-lang/backtrace-rs#566
- rust-lang/backtrace-rs#569
  - Fixes rust-lang#116403 by no longer using `dbghelp.dll` during backtrace capture.
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Nov 2, 2023
Update backtrace submodule

This pulls in a few notable changes (see the [complete list](rust-lang/backtrace-rs@99faef8...e9da96e) for details):

- rust-lang/backtrace-rs#508
- rust-lang/backtrace-rs#566
- rust-lang/backtrace-rs#569
  - Fixes #116403 by no longer using `dbghelp.dll` during backtrace capture.
compiler-errors added a commit to compiler-errors/rust that referenced this pull request Nov 18, 2023
…ark-Simulacrum

Adjust frame IP in backtraces relative to image base for SGX target

This is followup to rust-lang/backtrace-rs#566.

The backtraces printed by `panic!` or generated by `std::backtrace::Backtrace` in SGX target are not usable. The frame addresses need to be relative to image base address so they can be used for symbol resolution. Here's an example panic backtrace generated before this change:

```
$ cargo r --target x86_64-fortanix-unknown-sgx
...
stack backtrace:
   0:     0x7f8fe401d3a5 - <unknown>
   1:     0x7f8fe4034780 - <unknown>
   2:     0x7f8fe401c5a3 - <unknown>
   3:     0x7f8fe401d1f5 - <unknown>
   4:     0x7f8fe401e6f6 - <unknown>
```
Here's the same panic after this change:
```
$ cargo +stage1 r --target x86_64-fortanix-unknown-sgx
stack backtrace:
   0:            0x198bf - <unknown>
   1:            0x3d181 - <unknown>
   2:            0x26164 - <unknown>
   3:            0x19705 - <unknown>
   4:            0x1ef36 - <unknown>
```
cc `@jethrogb` and `@workingjubilee`
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 19, 2023
…k-Simulacrum

Adjust frame IP in backtraces relative to image base for SGX target

This is followup to rust-lang/backtrace-rs#566.

The backtraces printed by `panic!` or generated by `std::backtrace::Backtrace` in SGX target are not usable. The frame addresses need to be relative to image base address so they can be used for symbol resolution. Here's an example panic backtrace generated before this change:

```
$ cargo r --target x86_64-fortanix-unknown-sgx
...
stack backtrace:
   0:     0x7f8fe401d3a5 - <unknown>
   1:     0x7f8fe4034780 - <unknown>
   2:     0x7f8fe401c5a3 - <unknown>
   3:     0x7f8fe401d1f5 - <unknown>
   4:     0x7f8fe401e6f6 - <unknown>
```
Here's the same panic after this change:
```
$ cargo +stage1 r --target x86_64-fortanix-unknown-sgx
stack backtrace:
   0:            0x198bf - <unknown>
   1:            0x3d181 - <unknown>
   2:            0x26164 - <unknown>
   3:            0x19705 - <unknown>
   4:            0x1ef36 - <unknown>
```
cc `@jethrogb` and `@workingjubilee`
bors added a commit to rust-lang/miri that referenced this pull request Nov 21, 2023
Adjust frame IP in backtraces relative to image base for SGX target

This is followup to rust-lang/backtrace-rs#566.

The backtraces printed by `panic!` or generated by `std::backtrace::Backtrace` in SGX target are not usable. The frame addresses need to be relative to image base address so they can be used for symbol resolution. Here's an example panic backtrace generated before this change:

```
$ cargo r --target x86_64-fortanix-unknown-sgx
...
stack backtrace:
   0:     0x7f8fe401d3a5 - <unknown>
   1:     0x7f8fe4034780 - <unknown>
   2:     0x7f8fe401c5a3 - <unknown>
   3:     0x7f8fe401d1f5 - <unknown>
   4:     0x7f8fe401e6f6 - <unknown>
```
Here's the same panic after this change:
```
$ cargo +stage1 r --target x86_64-fortanix-unknown-sgx
stack backtrace:
   0:            0x198bf - <unknown>
   1:            0x3d181 - <unknown>
   2:            0x26164 - <unknown>
   3:            0x19705 - <unknown>
   4:            0x1ef36 - <unknown>
```
cc `@jethrogb` and `@workingjubilee`
lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request Apr 7, 2024
Update backtrace submodule

This pulls in a few notable changes (see the [complete list](rust-lang/backtrace-rs@99faef8...e9da96e) for details):

- rust-lang/backtrace-rs#508
- rust-lang/backtrace-rs#566
- rust-lang/backtrace-rs#569
  - Fixes #116403 by no longer using `dbghelp.dll` during backtrace capture.
lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request Apr 7, 2024
Adjust frame IP in backtraces relative to image base for SGX target

This is followup to rust-lang/backtrace-rs#566.

The backtraces printed by `panic!` or generated by `std::backtrace::Backtrace` in SGX target are not usable. The frame addresses need to be relative to image base address so they can be used for symbol resolution. Here's an example panic backtrace generated before this change:

```
$ cargo r --target x86_64-fortanix-unknown-sgx
...
stack backtrace:
   0:     0x7f8fe401d3a5 - <unknown>
   1:     0x7f8fe4034780 - <unknown>
   2:     0x7f8fe401c5a3 - <unknown>
   3:     0x7f8fe401d1f5 - <unknown>
   4:     0x7f8fe401e6f6 - <unknown>
```
Here's the same panic after this change:
```
$ cargo +stage1 r --target x86_64-fortanix-unknown-sgx
stack backtrace:
   0:            0x198bf - <unknown>
   1:            0x3d181 - <unknown>
   2:            0x26164 - <unknown>
   3:            0x19705 - <unknown>
   4:            0x1ef36 - <unknown>
```
cc `@jethrogb` and `@workingjubilee`
RalfJung pushed a commit to RalfJung/rust-analyzer that referenced this pull request Apr 27, 2024
Update backtrace submodule

This pulls in a few notable changes (see the [complete list](rust-lang/backtrace-rs@99faef8...e9da96e) for details):

- rust-lang/backtrace-rs#508
- rust-lang/backtrace-rs#566
- rust-lang/backtrace-rs#569
  - Fixes #116403 by no longer using `dbghelp.dll` during backtrace capture.
RalfJung pushed a commit to RalfJung/rust-analyzer that referenced this pull request Apr 27, 2024
Adjust frame IP in backtraces relative to image base for SGX target

This is followup to rust-lang/backtrace-rs#566.

The backtraces printed by `panic!` or generated by `std::backtrace::Backtrace` in SGX target are not usable. The frame addresses need to be relative to image base address so they can be used for symbol resolution. Here's an example panic backtrace generated before this change:

```
$ cargo r --target x86_64-fortanix-unknown-sgx
...
stack backtrace:
   0:     0x7f8fe401d3a5 - <unknown>
   1:     0x7f8fe4034780 - <unknown>
   2:     0x7f8fe401c5a3 - <unknown>
   3:     0x7f8fe401d1f5 - <unknown>
   4:     0x7f8fe401e6f6 - <unknown>
```
Here's the same panic after this change:
```
$ cargo +stage1 r --target x86_64-fortanix-unknown-sgx
stack backtrace:
   0:            0x198bf - <unknown>
   1:            0x3d181 - <unknown>
   2:            0x26164 - <unknown>
   3:            0x19705 - <unknown>
   4:            0x1ef36 - <unknown>
```
cc `@jethrogb` and `@workingjubilee`
kodiakhq bot pushed a commit to X-oss-byte/Canary-nextjs that referenced this pull request May 1, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [backtrace](https://togithub.com/rust-lang/backtrace-rs) | dependencies | patch | `0.3` -> `0.3.71` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>rust-lang/backtrace-rs (backtrace)</summary>

### [`v0.3.71`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.71)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.70...0.3.71)

This is mostly CI changes, with a very mild bump to our effective cc crate version recorded, and a small modification to a previous changeset to allow backtrace to run at its current checked-in MSRV on Windows. Sorry about that! We will be getting 0.3.70 yanked shortly.

##### What's Changed

-   Make sgx functions exist with cfg(miri) by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#591
-   Update version of cc crate by [@&#8203;jfgoog](https://togithub.com/jfgoog) in [rust-lang/backtrace-rs#592
-   Pull back MSRV on Windows by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#598
-   Force frame pointers on all i686 tests by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#601
-   Use rustc from stage0 instead of stage0-sysroot by [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) in [rust-lang/backtrace-rs#602
-   Cut backtrace 0.3.71 by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#599

##### New Contributors

-   [@&#8203;jfgoog](https://togithub.com/jfgoog) made their first contribution in [rust-lang/backtrace-rs#592
-   [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) made their first contribution in [rust-lang/backtrace-rs#602

**Full Changelog**: rust-lang/backtrace-rs@0.3.70...0.3.71

### [`v0.3.70`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.70)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.69...0.3.70)

##### New API

-   A `BacktraceFrame` can now have `resolve(&mut self)` called on it thanks to [@&#8203;fraillt](https://togithub.com/fraillt) in [rust-lang/backtrace-rs#526

##### Platform Support

We added support for new platforms in this release!

-   Thanks to [@&#8203;bzEq](https://togithub.com/bzEq) in [rust-lang/backtrace-rs#508 we now have AIX support!
-   Thanks to [@&#8203;sthibaul](https://togithub.com/sthibaul) in [rust-lang/backtrace-rs#567 we now have GNU/Hurd support!
-   Thanks to [@&#8203;dpaoliello](https://togithub.com/dpaoliello) in [rust-lang/backtrace-rs#587 we now support "emulation-compatible" AArch64 Windows (aka arm64ec)

##### Windows

-   Rewrite msvc backtrace support to be much faster on 64-bit platforms by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#569
-   Fix i686-pc-windows-gnu missing dbghelp module by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#571
-   Fix build errors on `thumbv7a-*-windows-msvc` targets by [@&#8203;kleisauke](https://togithub.com/kleisauke) in [rust-lang/backtrace-rs#573
-   Fix panic in backtrace symbolication on win7 by [@&#8203;roblabla](https://togithub.com/roblabla) in [rust-lang/backtrace-rs#578
-   remove few unused windows ffi fn by [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#576
-   Make dbghelp look for PDBs next to their exe/dll. by [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) in [rust-lang/backtrace-rs#584
-   Revert 32-bit dbghelp to a version WINE (presumably) likes by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#588
-   Update for Win10+ by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#589

##### SGX

Thanks to

-   Adjust frame IP in SGX relative to image base by [@&#8203;mzohreva](https://togithub.com/mzohreva) in [rust-lang/backtrace-rs#566

##### Internals

We did a bunch more work on our CI and internal cleanups

-   Modularise CI workflow and validate outputs for binary size checks. by [@&#8203;detly](https://togithub.com/detly) in [rust-lang/backtrace-rs#549
-   Commit Cargo.lock by [@&#8203;bjorn3](https://togithub.com/bjorn3) in [rust-lang/backtrace-rs#562
-   Enable calling build.rs externally v2 by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#568
-   Upgrade to 2021 ed and inline panics by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#538
-   Fix deny(unused) of an unused import with SGX + Miri by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#581
-   Fix unused_imports warning on latest nightly by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#575
-   Fix CI by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#582
-   Use `addr_of!` by [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) in [rust-lang/backtrace-rs#585
-   Write down MSRV policy by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#561
-   Apply clippy::uninlined_format_args fixes by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#486
-   ignore clippy lints in `symbolize/gimli/stash.rs` by [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) in [rust-lang/backtrace-rs#586

##### New Contributors

-   [@&#8203;nyurik](https://togithub.com/nyurik) made their first contribution in [rust-lang/backtrace-rs#538
-   [@&#8203;bzEq](https://togithub.com/bzEq) made their first contribution in [rust-lang/backtrace-rs#508
-   [@&#8203;bjorn3](https://togithub.com/bjorn3) made their first contribution in [rust-lang/backtrace-rs#562
-   [@&#8203;sthibaul](https://togithub.com/sthibaul) made their first contribution in [rust-lang/backtrace-rs#567
-   [@&#8203;mzohreva](https://togithub.com/mzohreva) made their first contribution in [rust-lang/backtrace-rs#566
-   [@&#8203;wesleywiser](https://togithub.com/wesleywiser) made their first contribution in [rust-lang/backtrace-rs#569
-   [@&#8203;kleisauke](https://togithub.com/kleisauke) made their first contribution in [rust-lang/backtrace-rs#573
-   [@&#8203;roblabla](https://togithub.com/roblabla) made their first contribution in [rust-lang/backtrace-rs#578
-   [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) made their first contribution in [rust-lang/backtrace-rs#584
-   [@&#8203;dpaoliello](https://togithub.com/dpaoliello) made their first contribution in [rust-lang/backtrace-rs#587
-   [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) made their first contribution in [rust-lang/backtrace-rs#585
-   [@&#8203;fraillt](https://togithub.com/fraillt) made their first contribution in [rust-lang/backtrace-rs#526
-   [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) made their first contribution in [rust-lang/backtrace-rs#586

**Full Changelog**: rust-lang/backtrace-rs@0.3.69...0.3.70

### [`v0.3.69`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.69)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.68...0.3.69)

Thank you everyone for contributing to a very nice release!

##### Tracking Binary Size

As backtrace-rs is compiled into every single Rust program, we have begun tracking its binary size in order to find ways to reduce its impact on programs that only minimally use backtraces over time. This change is mostly relevant to this crate's CI, and has been implemented by [@&#8203;Kobzol](https://togithub.com/Kobzol) and [@&#8203;detly](https://togithub.com/detly) over PRs [#&#8203;542](https://togithub.com/rust-lang/backtrace-rs/issues/542), [#&#8203;544](https://togithub.com/rust-lang/backtrace-rs/issues/544), [#&#8203;546](https://togithub.com/rust-lang/backtrace-rs/issues/546), and [#&#8203;550](https://togithub.com/rust-lang/backtrace-rs/issues/550)!

##### Platform-Specific Fixes

As usual, the majority of PRs for this release only affect 1 or 2 platforms. Technically, even the binary-size tracking is only implemented to track binary size on `x86_64-unknown-linux-gnu`.

##### fuchsia

Backtraces for Fuchsia will now uses extended symbolization thanks to [@&#8203;liudangyi](https://togithub.com/liudangyi) in [rust-lang/backtrace-rs#559

##### unix (with `procfs`)

Many Unix-y platforms support `/proc`, including Linux and FreeBSD, but not OpenBSD. For those which do, backtrace uses `/proc/self/maps` to assist in recovering the trace. We did not parse the output of `/proc/self/maps` in a way that accounted for the fact that it may have spaces in path names, but this was fixed thanks to [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) in [rust-lang/backtrace-rs#553

##### windows-msvc

Some changes that should help binary size specifically on Windows MSVC targets, or at least compile times, have already been implemented, thanks to [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#543 omitting compiling-in ELF backtrace capabilities. We don't have full binary size tracking for all major supported operating systems yet, so we believe this is worth 30KiB but that's more of an estimate than hard stats.

##### Dependency Management

-   Update addr2line and object dependencies by [@&#8203;philipc](https://togithub.com/philipc) in [rust-lang/backtrace-rs#557
-   Exclude ci directory from packaged crate by [@&#8203;mulkieran](https://togithub.com/mulkieran) in [rust-lang/backtrace-rs#555
-   Enable calling build.rs directly from std/build.rs by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#556

##### New Contributors

-   [@&#8203;Kobzol](https://togithub.com/Kobzol) made their first contribution in [rust-lang/backtrace-rs#542
-   [@&#8203;detly](https://togithub.com/detly) made their first contribution in [rust-lang/backtrace-rs#550
-   [@&#8203;liudangyi](https://togithub.com/liudangyi) made their first contribution in [rust-lang/backtrace-rs#559
-   [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) made their first contribution in [rust-lang/backtrace-rs#553
-   [@&#8203;mulkieran](https://togithub.com/mulkieran) made their first contribution in [rust-lang/backtrace-rs#555
-   [@&#8203;pitaj](https://togithub.com/pitaj) made their first contribution in [rust-lang/backtrace-rs#556
-   [@&#8203;klensy](https://togithub.com/klensy) made their first contribution in [rust-lang/backtrace-rs#543

**Full Changelog**: rust-lang/backtrace-rs@0.3.68...0.3.69

### [`v0.3.68`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.68)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.67...0.3.68)

A bunch of behind-the-scenes work on upgrading CI has finally got things to a place where we can do confident releases again, so hopefully the next backtrace version will not take 6 months! Thanks to everyone who contributed to that! Most of the user-facing changes are about dependency updates and consequent improved platform compatibility, including with split DWARF. A few new functions on BacktraceFmt should also make it easier to inject additional text into backtrace's output.

-   Adapt to new Fuchsia target name by [@&#8203;flba-eb](https://togithub.com/flba-eb) in [rust-lang/backtrace-rs#509
-   armv7 PSVita OS support by [@&#8203;nikarh](https://togithub.com/nikarh) in [rust-lang/backtrace-rs#523
-   Upgrade addr2line and properly handle split DWARF on Linux by [@&#8203;khuey](https://togithub.com/khuey) in [rust-lang/backtrace-rs#513
-   deps: update miniz_oxide to 0.7 by [@&#8203;poliorcetics](https://togithub.com/poliorcetics) in [rust-lang/backtrace-rs#521
-   Add print in BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#527
-   Bump object to 0.31 by [@&#8203;lnicola](https://togithub.com/lnicola) in [rust-lang/backtrace-rs#522
-   Add an exception for QNX Neutrino 7.0 as a 'no-op' platform by [@&#8203;samkearney](https://togithub.com/samkearney) in [rust-lang/backtrace-rs#529
-   Use mmap64 on Linux. by [@&#8203;mikebenfield](https://togithub.com/mikebenfield) in [rust-lang/backtrace-rs#501
-   dbghlp: Make mutex name unique to the process by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#518
-   gimli add netbsd to handle dl_iterate_phdr as well. by [@&#8203;devnexen](https://togithub.com/devnexen) in [rust-lang/backtrace-rs#512
-   Add other apple targets to libunwind workaround by [@&#8203;thomcc](https://togithub.com/thomcc) in [rust-lang/backtrace-rs#516
-   Add fmt method for BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#532

##### New Contributors

-   [@&#8203;bwmf2](https://togithub.com/bwmf2) made their first contribution in [rust-lang/backtrace-rs#515
-   [@&#8203;flba-eb](https://togithub.com/flba-eb) made their first contribution in [rust-lang/backtrace-rs#509
-   [@&#8203;nikarh](https://togithub.com/nikarh) made their first contribution in [rust-lang/backtrace-rs#523
-   [@&#8203;poliorcetics](https://togithub.com/poliorcetics) made their first contribution in [rust-lang/backtrace-rs#521
-   [@&#8203;GuillaumeGomez](https://togithub.com/GuillaumeGomez) made their first contribution in [rust-lang/backtrace-rs#524
-   [@&#8203;chenyukang](https://togithub.com/chenyukang) made their first contribution in [rust-lang/backtrace-rs#527
-   [@&#8203;lnicola](https://togithub.com/lnicola) made their first contribution in [rust-lang/backtrace-rs#522
-   [@&#8203;samkearney](https://togithub.com/samkearney) made their first contribution in [rust-lang/backtrace-rs#529
-   [@&#8203;mikebenfield](https://togithub.com/mikebenfield) made their first contribution in [rust-lang/backtrace-rs#501
-   [@&#8203;devnexen](https://togithub.com/devnexen) made their first contribution in [rust-lang/backtrace-rs#512
-   [@&#8203;thomcc](https://togithub.com/thomcc) made their first contribution in [rust-lang/backtrace-rs#516
-   [@&#8203;workingjubilee](https://togithub.com/workingjubilee) made their first contribution in [rust-lang/backtrace-rs#533
-   [@&#8203;chriswailes](https://togithub.com/chriswailes) made their first contribution in [rust-lang/backtrace-rs#534

**Full Changelog**: rust-lang/backtrace-rs@0.3.67...0.3.68

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Canary-nextjs).
kodiakhq bot pushed a commit to X-oss-byte/Nextjs that referenced this pull request May 1, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [backtrace](https://togithub.com/rust-lang/backtrace-rs) | dependencies | patch | `0.3` -> `0.3.71` |

---

### Release Notes

<details>
<summary>rust-lang/backtrace-rs (backtrace)</summary>

### [`v0.3.71`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.71)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.70...0.3.71)

This is mostly CI changes, with a very mild bump to our effective cc crate version recorded, and a small modification to a previous changeset to allow backtrace to run at its current checked-in MSRV on Windows. Sorry about that! We will be getting 0.3.70 yanked shortly.

##### What's Changed

-   Make sgx functions exist with cfg(miri) by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#591
-   Update version of cc crate by [@&#8203;jfgoog](https://togithub.com/jfgoog) in [rust-lang/backtrace-rs#592
-   Pull back MSRV on Windows by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#598
-   Force frame pointers on all i686 tests by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#601
-   Use rustc from stage0 instead of stage0-sysroot by [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) in [rust-lang/backtrace-rs#602
-   Cut backtrace 0.3.71 by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#599

##### New Contributors

-   [@&#8203;jfgoog](https://togithub.com/jfgoog) made their first contribution in [rust-lang/backtrace-rs#592
-   [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) made their first contribution in [rust-lang/backtrace-rs#602

**Full Changelog**: rust-lang/backtrace-rs@0.3.70...0.3.71

### [`v0.3.70`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.70)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.69...0.3.70)

##### New API

-   A `BacktraceFrame` can now have `resolve(&mut self)` called on it thanks to [@&#8203;fraillt](https://togithub.com/fraillt) in [rust-lang/backtrace-rs#526

##### Platform Support

We added support for new platforms in this release!

-   Thanks to [@&#8203;bzEq](https://togithub.com/bzEq) in [rust-lang/backtrace-rs#508 we now have AIX support!
-   Thanks to [@&#8203;sthibaul](https://togithub.com/sthibaul) in [rust-lang/backtrace-rs#567 we now have GNU/Hurd support!
-   Thanks to [@&#8203;dpaoliello](https://togithub.com/dpaoliello) in [rust-lang/backtrace-rs#587 we now support "emulation-compatible" AArch64 Windows (aka arm64ec)

##### Windows

-   Rewrite msvc backtrace support to be much faster on 64-bit platforms by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#569
-   Fix i686-pc-windows-gnu missing dbghelp module by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#571
-   Fix build errors on `thumbv7a-*-windows-msvc` targets by [@&#8203;kleisauke](https://togithub.com/kleisauke) in [rust-lang/backtrace-rs#573
-   Fix panic in backtrace symbolication on win7 by [@&#8203;roblabla](https://togithub.com/roblabla) in [rust-lang/backtrace-rs#578
-   remove few unused windows ffi fn by [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#576
-   Make dbghelp look for PDBs next to their exe/dll. by [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) in [rust-lang/backtrace-rs#584
-   Revert 32-bit dbghelp to a version WINE (presumably) likes by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#588
-   Update for Win10+ by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#589

##### SGX

Thanks to

-   Adjust frame IP in SGX relative to image base by [@&#8203;mzohreva](https://togithub.com/mzohreva) in [rust-lang/backtrace-rs#566

##### Internals

We did a bunch more work on our CI and internal cleanups

-   Modularise CI workflow and validate outputs for binary size checks. by [@&#8203;detly](https://togithub.com/detly) in [rust-lang/backtrace-rs#549
-   Commit Cargo.lock by [@&#8203;bjorn3](https://togithub.com/bjorn3) in [rust-lang/backtrace-rs#562
-   Enable calling build.rs externally v2 by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#568
-   Upgrade to 2021 ed and inline panics by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#538
-   Fix deny(unused) of an unused import with SGX + Miri by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#581
-   Fix unused_imports warning on latest nightly by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#575
-   Fix CI by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#582
-   Use `addr_of!` by [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) in [rust-lang/backtrace-rs#585
-   Write down MSRV policy by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#561
-   Apply clippy::uninlined_format_args fixes by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#486
-   ignore clippy lints in `symbolize/gimli/stash.rs` by [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) in [rust-lang/backtrace-rs#586

##### New Contributors

-   [@&#8203;nyurik](https://togithub.com/nyurik) made their first contribution in [rust-lang/backtrace-rs#538
-   [@&#8203;bzEq](https://togithub.com/bzEq) made their first contribution in [rust-lang/backtrace-rs#508
-   [@&#8203;bjorn3](https://togithub.com/bjorn3) made their first contribution in [rust-lang/backtrace-rs#562
-   [@&#8203;sthibaul](https://togithub.com/sthibaul) made their first contribution in [rust-lang/backtrace-rs#567
-   [@&#8203;mzohreva](https://togithub.com/mzohreva) made their first contribution in [rust-lang/backtrace-rs#566
-   [@&#8203;wesleywiser](https://togithub.com/wesleywiser) made their first contribution in [rust-lang/backtrace-rs#569
-   [@&#8203;kleisauke](https://togithub.com/kleisauke) made their first contribution in [rust-lang/backtrace-rs#573
-   [@&#8203;roblabla](https://togithub.com/roblabla) made their first contribution in [rust-lang/backtrace-rs#578
-   [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) made their first contribution in [rust-lang/backtrace-rs#584
-   [@&#8203;dpaoliello](https://togithub.com/dpaoliello) made their first contribution in [rust-lang/backtrace-rs#587
-   [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) made their first contribution in [rust-lang/backtrace-rs#585
-   [@&#8203;fraillt](https://togithub.com/fraillt) made their first contribution in [rust-lang/backtrace-rs#526
-   [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) made their first contribution in [rust-lang/backtrace-rs#586

**Full Changelog**: rust-lang/backtrace-rs@0.3.69...0.3.70

### [`v0.3.69`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.69)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.68...0.3.69)

Thank you everyone for contributing to a very nice release!

##### Tracking Binary Size

As backtrace-rs is compiled into every single Rust program, we have begun tracking its binary size in order to find ways to reduce its impact on programs that only minimally use backtraces over time. This change is mostly relevant to this crate's CI, and has been implemented by [@&#8203;Kobzol](https://togithub.com/Kobzol) and [@&#8203;detly](https://togithub.com/detly) over PRs [#&#8203;542](https://togithub.com/rust-lang/backtrace-rs/issues/542), [#&#8203;544](https://togithub.com/rust-lang/backtrace-rs/issues/544), [#&#8203;546](https://togithub.com/rust-lang/backtrace-rs/issues/546), and [#&#8203;550](https://togithub.com/rust-lang/backtrace-rs/issues/550)!

##### Platform-Specific Fixes

As usual, the majority of PRs for this release only affect 1 or 2 platforms. Technically, even the binary-size tracking is only implemented to track binary size on `x86_64-unknown-linux-gnu`.

##### fuchsia

Backtraces for Fuchsia will now uses extended symbolization thanks to [@&#8203;liudangyi](https://togithub.com/liudangyi) in [rust-lang/backtrace-rs#559

##### unix (with `procfs`)

Many Unix-y platforms support `/proc`, including Linux and FreeBSD, but not OpenBSD. For those which do, backtrace uses `/proc/self/maps` to assist in recovering the trace. We did not parse the output of `/proc/self/maps` in a way that accounted for the fact that it may have spaces in path names, but this was fixed thanks to [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) in [rust-lang/backtrace-rs#553

##### windows-msvc

Some changes that should help binary size specifically on Windows MSVC targets, or at least compile times, have already been implemented, thanks to [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#543 omitting compiling-in ELF backtrace capabilities. We don't have full binary size tracking for all major supported operating systems yet, so we believe this is worth 30KiB but that's more of an estimate than hard stats.

##### Dependency Management

-   Update addr2line and object dependencies by [@&#8203;philipc](https://togithub.com/philipc) in [rust-lang/backtrace-rs#557
-   Exclude ci directory from packaged crate by [@&#8203;mulkieran](https://togithub.com/mulkieran) in [rust-lang/backtrace-rs#555
-   Enable calling build.rs directly from std/build.rs by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#556

##### New Contributors

-   [@&#8203;Kobzol](https://togithub.com/Kobzol) made their first contribution in [rust-lang/backtrace-rs#542
-   [@&#8203;detly](https://togithub.com/detly) made their first contribution in [rust-lang/backtrace-rs#550
-   [@&#8203;liudangyi](https://togithub.com/liudangyi) made their first contribution in [rust-lang/backtrace-rs#559
-   [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) made their first contribution in [rust-lang/backtrace-rs#553
-   [@&#8203;mulkieran](https://togithub.com/mulkieran) made their first contribution in [rust-lang/backtrace-rs#555
-   [@&#8203;pitaj](https://togithub.com/pitaj) made their first contribution in [rust-lang/backtrace-rs#556
-   [@&#8203;klensy](https://togithub.com/klensy) made their first contribution in [rust-lang/backtrace-rs#543

**Full Changelog**: rust-lang/backtrace-rs@0.3.68...0.3.69

### [`v0.3.68`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.68)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.67...0.3.68)

A bunch of behind-the-scenes work on upgrading CI has finally got things to a place where we can do confident releases again, so hopefully the next backtrace version will not take 6 months! Thanks to everyone who contributed to that! Most of the user-facing changes are about dependency updates and consequent improved platform compatibility, including with split DWARF. A few new functions on BacktraceFmt should also make it easier to inject additional text into backtrace's output.

-   Adapt to new Fuchsia target name by [@&#8203;flba-eb](https://togithub.com/flba-eb) in [rust-lang/backtrace-rs#509
-   armv7 PSVita OS support by [@&#8203;nikarh](https://togithub.com/nikarh) in [rust-lang/backtrace-rs#523
-   Upgrade addr2line and properly handle split DWARF on Linux by [@&#8203;khuey](https://togithub.com/khuey) in [rust-lang/backtrace-rs#513
-   deps: update miniz_oxide to 0.7 by [@&#8203;poliorcetics](https://togithub.com/poliorcetics) in [rust-lang/backtrace-rs#521
-   Add print in BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#527
-   Bump object to 0.31 by [@&#8203;lnicola](https://togithub.com/lnicola) in [rust-lang/backtrace-rs#522
-   Add an exception for QNX Neutrino 7.0 as a 'no-op' platform by [@&#8203;samkearney](https://togithub.com/samkearney) in [rust-lang/backtrace-rs#529
-   Use mmap64 on Linux. by [@&#8203;mikebenfield](https://togithub.com/mikebenfield) in [rust-lang/backtrace-rs#501
-   dbghlp: Make mutex name unique to the process by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#518
-   gimli add netbsd to handle dl_iterate_phdr as well. by [@&#8203;devnexen](https://togithub.com/devnexen) in [rust-lang/backtrace-rs#512
-   Add other apple targets to libunwind workaround by [@&#8203;thomcc](https://togithub.com/thomcc) in [rust-lang/backtrace-rs#516
-   Add fmt method for BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#532

##### New Contributors

-   [@&#8203;bwmf2](https://togithub.com/bwmf2) made their first contribution in [rust-lang/backtrace-rs#515
-   [@&#8203;flba-eb](https://togithub.com/flba-eb) made their first contribution in [rust-lang/backtrace-rs#509
-   [@&#8203;nikarh](https://togithub.com/nikarh) made their first contribution in [rust-lang/backtrace-rs#523
-   [@&#8203;poliorcetics](https://togithub.com/poliorcetics) made their first contribution in [rust-lang/backtrace-rs#521
-   [@&#8203;GuillaumeGomez](https://togithub.com/GuillaumeGomez) made their first contribution in [rust-lang/backtrace-rs#524
-   [@&#8203;chenyukang](https://togithub.com/chenyukang) made their first contribution in [rust-lang/backtrace-rs#527
-   [@&#8203;lnicola](https://togithub.com/lnicola) made their first contribution in [rust-lang/backtrace-rs#522
-   [@&#8203;samkearney](https://togithub.com/samkearney) made their first contribution in [rust-lang/backtrace-rs#529
-   [@&#8203;mikebenfield](https://togithub.com/mikebenfield) made their first contribution in [rust-lang/backtrace-rs#501
-   [@&#8203;devnexen](https://togithub.com/devnexen) made their first contribution in [rust-lang/backtrace-rs#512
-   [@&#8203;thomcc](https://togithub.com/thomcc) made their first contribution in [rust-lang/backtrace-rs#516
-   [@&#8203;workingjubilee](https://togithub.com/workingjubilee) made their first contribution in [rust-lang/backtrace-rs#533
-   [@&#8203;chriswailes](https://togithub.com/chriswailes) made their first contribution in [rust-lang/backtrace-rs#534

**Full Changelog**: rust-lang/backtrace-rs@0.3.67...0.3.68

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Nextjs).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants