tests: Port symbol-mangling-hashed
to rmake.rs by jieyouxu · Pull Request #135768 · 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
Conversation55 Commits5 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 }})
Part of #121876.
This PR supersedes #128567 and is co-authored with @lolbinarycat.
Summary
This PR ports tests/run-make/symbol-mangling-hashed
to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses
object
crate to be more precise in the filtering, and avoids relying on parsing the human-readablenm
output for somenm
in the given environment (which isn't really a thing on msvc anyway, andllvm-nm
doesn't handle msvc dylibs AFAICT). - Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
Review advice
- Best reviewed commit-by-commit.
- I'm not super sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: i686-mingw
try-job: x86_64-mingw-1
try-job: x86_64-apple-1
try-job: aarch64-apple
try-job: test-various
This comment was marked as off-topic.
rustbot added A-run-make
Area: port run-make Makefiles to rmake.rs
Area: The tidy tool
Status: Awaiting review from the assignee but also interested parties.
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.
labels
(Sorry Mark, this isn't ready for review yet)
bors added a commit to rust-lang-ci/rust that referenced this pull request
…hed, r=
tests: Port symbol-mangling-hashed
to rmake.rs
Part of rust-lang#121876.
This PR supersedes rust-lang#128567 and is co-authored with @lolbinarycat.
Summary
This PR ports tests/run-make/symbol-mangling-hashed
to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses
object
crate to be more precise in the filtering, and avoids relying on parsing the human-readablenm
output for somenm
in the given environment (which isn't really a thing on msvc anyway, andllvm-nm
doesn't handle msvc dylibs AFAICT). - Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
Review advice
- Best reviewed commit-by-commit.
- I'm not super sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
try-job: x86_64-msvc try-job: i686-msvc try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-apple-1 try-job: aarch64-apple try-job: test-various
This comment was marked as resolved.
jieyouxu added S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
bors added a commit to rust-lang-ci/rust that referenced this pull request
…hed, r=
tests: Port symbol-mangling-hashed
to rmake.rs
Part of rust-lang#121876.
This PR supersedes rust-lang#128567 and is co-authored with @lolbinarycat.
Summary
This PR ports tests/run-make/symbol-mangling-hashed
to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses
object
crate to be more precise in the filtering, and avoids relying on parsing the human-readablenm
output for somenm
in the given environment (which isn't really a thing on msvc anyway, andllvm-nm
doesn't handle msvc dylibs AFAICT). - Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
Review advice
- Best reviewed commit-by-commit.
- I'm not super sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
try-job: x86_64-msvc try-job: i686-msvc-1 try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-apple-1 try-job: aarch64-apple try-job: test-various
This comment has been minimized.
This comment was marked as outdated.
bors added a commit to rust-lang-ci/rust that referenced this pull request
…hed, r=
tests: Port symbol-mangling-hashed
to rmake.rs
Part of rust-lang#121876.
This PR supersedes rust-lang#128567 and is co-authored with @lolbinarycat.
Summary
This PR ports tests/run-make/symbol-mangling-hashed
to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses
object
crate to be more precise in the filtering, and avoids relying on parsing the human-readablenm
output for somenm
in the given environment (which isn't really a thing on msvc anyway, andllvm-nm
doesn't handle msvc dylibs AFAICT). - Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
Review advice
- Best reviewed commit-by-commit.
- I'm not super sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
try-job: x86_64-msvc try-job: i686-msvc-1 try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-apple-1 try-job: aarch64-apple try-job: test-various
This comment has been minimized.
Changes since last review:
- Fixed symbol helper comment.
- Dropped symbol checks on binary.
- Changed
hello
fn names to be different between the various input rlib/dylib crates.
bors added a commit to rust-lang-ci/rust that referenced this pull request
…hed, r=
tests: Port symbol-mangling-hashed
to rmake.rs
Part of rust-lang#121876.
This PR supersedes rust-lang#128567 and is co-authored with @lolbinarycat.
Summary
This PR ports tests/run-make/symbol-mangling-hashed
to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses
object
crate to be more precise in the filtering, and avoids relying on parsing the human-readablenm
output for somenm
in the given environment (which isn't really a thing on msvc anyway, andllvm-nm
doesn't handle msvc dylibs AFAICT). - Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
Review advice
- Best reviewed commit-by-commit.
- I'm not super sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
try-job: x86_64-msvc-1 try-job: i686-msvc-1 try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-apple-1 try-job: aarch64-apple try-job: test-various
☀️ Try build successful - checks-actions
Build commit: 1395e24 (1395e249256ef3527df6193bb9a86b7f9649ae3f
)
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
and removed S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
labels
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gamer
…ic` helpers to rustc
Co-authored-by: binarycat binarycat@envs.net
dynamic_symbol_names
text_section_global_dynamic_symbol_names
global_undefined_dynamic_symbol_names
Also add some missing #[track_caller]
attributes.
Co-authored-by: binarycat binarycat@envs.net
- Use
object
based test logic instead of processingnm
human-readable textual output. - Try to expand test coverage to not be limited to only linux + x86_64.
Co-authored-by: binarycat binarycat@envs.net
Rebased to fix tidy conflict.
@bors r=Noratrieb rollup=iffy (might bounce)
📌 Commit 9734ebb has been approved by Noratrieb
It is now in the queue for this repository.
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
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
…ashed, r=Noratrieb
tests: Port symbol-mangling-hashed
to rmake.rs
Part of rust-lang#121876.
This PR supersedes rust-lang#128567 and is co-authored with @lolbinarycat.
Summary
This PR ports tests/run-make/symbol-mangling-hashed
to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses
object
crate to be more precise in the filtering, and avoids relying on parsing the human-readablenm
output for somenm
in the given environment (which isn't really a thing on msvc anyway, andllvm-nm
doesn't handle msvc dylibs AFAICT). - Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
Review advice
- Best reviewed commit-by-commit.
- I'm not super sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
try-job: x86_64-msvc-1 try-job: i686-msvc-1 try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-apple-1 try-job: aarch64-apple try-job: test-various
bors added a commit to rust-lang-ci/rust that referenced this pull request
…kingjubilee
Rollup of 16 pull requests
Successful merges:
- rust-lang#133266 (ci: fix explanation why LLVM download is disabled for windows-gnu)
- rust-lang#135768 (tests: Port
symbol-mangling-hashed
to rmake.rs) - rust-lang#135836 (bootstrap: only build
crt{begin,end}.o
when compiling to MUSL) - rust-lang#135840 (omit unused args warnings for intrinsics without body)
- rust-lang#135900 (Manually walk into WF obligations in
BestObligation
proof tree visitor) - rust-lang#136146 (Explicitly choose x86 softfloat/hardfloat ABI)
- rust-lang#136154 (Use +secure-plt for powerpc-unknown-linux-gnu{,spe})
- rust-lang#136163 (Fix off-by-one error causing slice::sort to abort the program)
- rust-lang#136266 (fix broken release notes id)
- rust-lang#136283 (Update encode_utf16 to mention it is native endian)
- rust-lang#136309 (set rustc dylib on manually constructed rustc command)
- rust-lang#136314 (Use proper type when applying deref adjustment in const)
- rust-lang#136339 (CompileTest: Add Directives to Ignore
arm-unknown-*
Targets) - rust-lang#136348 (miri: make float min/max non-deterministic)
- rust-lang#136351 (Add documentation for derive(CoercePointee))
- rust-lang#136358 (
#[optimize(none)]
implies#[inline(never)]
)
Failed merges:
- rust-lang#135994 (Rename rustc_middle::Ty::is_unsafe_ptr to is_raw_ptr)
r? @ghost
@rustbot
modify labels: rollup
bors mentioned this pull request
jieyouxu deleted the migrate-symbol-mangling-hashed branch
Finished benchmarking commit (9709af7): comparison URL.
Overall result: ❌ regressions - no action needed
@rustbot label: -perf-regression
Instruction count
This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
mean | range | count | |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | 0.4% | [0.4%, 0.4%] | 1 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
Results (primary 3.2%)
This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
mean | range | count | |
---|---|---|---|
Regressions ❌ (primary) | 3.2% | [3.2%, 3.2%] | 1 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | - | - | 0 |
All ❌✅ (primary) | 3.2% | [3.2%, 3.2%] | 1 |
Cycles
Results (secondary -2.8%)
This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
mean | range | count | |
---|---|---|---|
Regressions ❌ (primary) | - | - | 0 |
Regressions ❌ (secondary) | - | - | 0 |
Improvements ✅ (primary) | - | - | 0 |
Improvements ✅ (secondary) | -2.8% | [-3.6%, -2.3%] | 7 |
All ❌✅ (primary) | - | - | 0 |
Binary size
This benchmark run did not return any relevant results for this metric.
Bootstrap: 779.222s -> 778.098s (-0.14%)
Artifact size: 328.75 MiB -> 328.85 MiB (0.03%)
Labels
Area: port run-make Makefiles to rmake.rs
Area: The tidy tool
This PR was explicitly merged by bors.
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.