Implement -Z embed-source
(DWARFv5 source code embedding extension) by Mrmaxmeier · Pull Request #126985 · rust-lang/rust (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation30 Commits3 Checks6 Files changed
Conversation
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
[ Show hidden characters]({{ revealButtonHref }})
r? @TaKO8Ki
rustbot has assigned @TaKO8Ki.
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
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the compiler team, which will review and decide on the PR/issue.
labels
This should also get a test in tests/debuginfo/ to make sure it is doing what is expected
Mrmaxmeier changed the title
Implement Implement -C embed-source
(DWARFv5 source code embedding extension)-Z embed-source
(DWARFv5 source code embedding extension)
This comment has been minimized.
This should also get a test in tests/debuginfo/ to make sure it is doing what is expected
Both LLDB and GDB doesn't support this proposal yet, so there's not a great way to test for it. I guess something similar to the llvm-dwarfdump
-based tests in tests/run-make/remap-path-prefix-dwarf
might be the way to go.
Edit: Looks like support was added somewhat recently in LLDB, but looking at the DWARF is probably still easier. I didn't find a (non-horrible) way to differentiate between embedded source code and code loaded from disk. (settings set target.source-map
will fall back to the original paths if the mapped ones don't exist)
This comment was marked as resolved.
rustbot added A-run-make
Area: port run-make Makefiles to rmake.rs
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
labels
I've added a run-make test that depends on a new release of gimli
which includes support for the relevant DWARF tags.
I'll update the draft PR once the relevant update is available on crates.io. This PR will fail tidy
with invalid source: "git+https://github.com/gimli-rs/[...]
in the mean time.
You can probably ask for a minor release on your Gimli PR, then open a separate PR to bump the versions in this repo once it is released.
bors added a commit to rust-lang-ci/rust that referenced this pull request
run-make-support: update gimli to 0.31.0
This version bump is required for the tests in rust-lang#126985 as suggested [here](rust-lang#126985 (comment)).
r? tgross35
(^ that didn't work. cc @tgross35)
try-job: x86_64-msvc try-job: x86_64-mingw try-job: aarch64-apple try-job: test-various try-job: armhf-gnu try-job: dist-x86_64-linux
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…jieyouxu
run-make-support: update gimli to 0.31.0
This version bump is required for the tests in rust-lang#126985 as suggested [here](rust-lang#126985 (comment)).
r? tgross35
(^ that didn't work. cc @tgross35)
try-job: x86_64-msvc try-job: x86_64-mingw try-job: aarch64-apple try-job: test-various try-job: armhf-gnu try-job: dist-x86_64-linux
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
Rollup merge of rust-lang#127805 - Mrmaxmeier:run-make-bump-gimli, r=jieyouxu
run-make-support: update gimli to 0.31.0
This version bump is required for the tests in rust-lang#126985 as suggested [here](rust-lang#126985 (comment)).
r? tgross35
(^ that didn't work. cc @tgross35)
try-job: x86_64-msvc try-job: x86_64-mingw try-job: aarch64-apple try-job: test-various try-job: armhf-gnu try-job: dist-x86_64-linux
This comment has been minimized.
Status update:
The MCP got accepted (cc @davidtwco) and I've added a run-make test for the new functionality.
It turns out that LLVM 17 is not compatible with the way I'm emitting source code with each file. The proposed DWARF v6 spec was only implemented somewhat recently (llvm/llvm-project@87e22bd).
There does not seem to be an easy way to gate -Zembed-source
to LLVM 18+, and I'm tempted to just ignore the issue. (llvm_util::get_version
is not exposed outside of rustc_codegen_llvm
and I'd like to not plumb it though the target features functionality.)
Is rustc
going to be used with LLVM 17 for nightly builds anywhere? (I guess people might be able to run into this with RUSTC_BOOTSTRAP=1
on distro builds?)
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
…iaskrgr
Rollup of 7 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#128935 (More work on
zstd
compression) - rust-lang#129263 (Add a missing compatibility note in the 1.80.0 release notes)
- rust-lang#129386 (Use a LocalDefId in ResolvedArg.)
- rust-lang#129408 (Fix handling of macro arguments within the
dropping_copy_types
lint) - rust-lang#129410 (Miri subtree update)
- rust-lang#129416 (library: Move unstable API of new_uninit to new features)
r? @ghost
@rustbot
modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
…iaskrgr
Rollup of 7 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#128511 (Document WebAssembly target feature expectations)
- rust-lang#128935 (More work on
zstd
compression) - rust-lang#129263 (Add a missing compatibility note in the 1.80.0 release notes)
- rust-lang#129386 (Use a LocalDefId in ResolvedArg.)
- rust-lang#129408 (Fix handling of macro arguments within the
dropping_copy_types
lint) - rust-lang#129417 (Don't trigger refinement lint if predicates reference errors)
r? @ghost
@rustbot
modify labels: rollup
tgross35 added a commit to tgross35/rust that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 7 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#128349 (Enable
f16
tests on x86 and x86-64) - rust-lang#128511 (Document WebAssembly target feature expectations)
- rust-lang#129263 (Add a missing compatibility note in the 1.80.0 release notes)
- rust-lang#129276 (Stabilize feature
char_indices_offset
) - rust-lang#129350 (adapt integer comparison tests for LLVM 20 IR changes)
- rust-lang#129408 (Fix handling of macro arguments within the
dropping_copy_types
lint)
r? @ghost
@rustbot
modify labels: rollup
jieyouxu added a commit to jieyouxu/rust that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 7 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#128507 (Migrate
libtest-thread-limit
run-make
test to rmake) - rust-lang#128935 (More work on
zstd
compression) - rust-lang#129190 (Add f16 and f128 to tests/ui/consts/const-float-bits-conv.rs)
- rust-lang#129295 (Build
library/profiler_builtins
fromci-llvm
if appropriate) - rust-lang#129416 (library: Move unstable API of new_uninit to new features)
- rust-lang#129418 (rustc: Simplify getting sysroot library directory)
r? @ghost
@rustbot
modify labels: rollup
jieyouxu added a commit to jieyouxu/rust that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 5 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#128935 (More work on
zstd
compression) - rust-lang#129190 (Add f16 and f128 to tests/ui/consts/const-float-bits-conv.rs)
- rust-lang#129416 (library: Move unstable API of new_uninit to new features)
- rust-lang#129418 (rustc: Simplify getting sysroot library directory)
r? @ghost
@rustbot
modify labels: rollup
tgross35 added a commit to tgross35/rust that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 8 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#128935 (More work on
zstd
compression) - rust-lang#129134 (bootstrap: improve error recovery flags to curl)
- rust-lang#129190 (Add f16 and f128 to tests/ui/consts/const-float-bits-conv.rs)
- rust-lang#129416 (library: Move unstable API of new_uninit to new features)
- rust-lang#129418 (rustc: Simplify getting sysroot library directory)
- rust-lang#129459 (handle stage0
cargo
andrustc
separately) - rust-lang#129511 (Update minifier to 0.3.1)
r? @ghost
@rustbot
modify labels: rollup
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
bors added a commit to rust-lang-ci/rust that referenced this pull request
…kingjubilee
Rollup of 9 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#127922 (Add unsafe to extern blocks in style guide)
- rust-lang#128731 (simd_shuffle intrinsic: allow argument to be passed as vector)
- rust-lang#128935 (More work on
zstd
compression) - rust-lang#128942 (miri weak memory emulation: put previous value into initial store buffer)
- rust-lang#129418 (rustc: Simplify getting sysroot library directory)
- rust-lang#129490 (Add Trusty OS as tier 3 target)
- rust-lang#129559 (float types: document NaN bit pattern guarantees)
- rust-lang#129642 (Bump backtrace to rust-lang/backtrace@fc37b22)
r? @ghost
@rustbot
modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 9 pull requests
Successful merges:
- rust-lang#126985 (Implement
-Z embed-source
(DWARFv5 source code embedding extension)) - rust-lang#127922 (Add unsafe to extern blocks in style guide)
- rust-lang#128731 (simd_shuffle intrinsic: allow argument to be passed as vector)
- rust-lang#128935 (More work on
zstd
compression) - rust-lang#128942 (miri weak memory emulation: put previous value into initial store buffer)
- rust-lang#129418 (rustc: Simplify getting sysroot library directory)
- rust-lang#129490 (Add Trusty OS as tier 3 target)
- rust-lang#129536 (Add
f16
andf128
inline ASM support foraarch64
) - rust-lang#129559 (float types: document NaN bit pattern guarantees)
r? @ghost
@rustbot
modify labels: rollup
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
Labels
Area: port run-make Makefiles to rmake.rs
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Relevant to the compiler team, which will review and decide on the PR/issue.