Skip to content

cg_llvm: Remove the mod llvm_ hack, which should no longer be necessary #136611

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 2 commits into from
Feb 6, 2025

Conversation

Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Feb 6, 2025

This re-export was introduced in c76fc3d, as a workaround for #53912.

In short, there was/is an assumption in some LLVM LTO code that symbol names would not contain .llvm., but legacy symbol mangling would sometimes naturally produce that sequence in the presence of a module named llvm.

This was later “fixed” by adding a special case to the legacy symbol mangler in #61195, which detects the sequence llvm and emits the m in an escaped form. As a result, there should no longer be any need to avoid the module name llvm in the compiler itself.

(Symbol mangling v0 avoids this problem by not using . in the first place, outside of the “vendor-specific suffix”.)

@rustbot
Copy link
Collaborator

rustbot commented Feb 6, 2025

r? @petrochenkov

rustbot has assigned @petrochenkov.
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 rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 6, 2025
@workingjubilee
Copy link
Member

nice

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Feb 6, 2025

📌 Commit 042fd8c has been approved by workingjubilee

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 Feb 6, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 6, 2025
…kingjubilee

Rollup of 13 pull requests

Successful merges:

 - rust-lang#133932 (Avoid using make_direct_deprecated() in extern "ptx-kernel")
 - rust-lang#136269 (Pass spans around new solver)
 - rust-lang#136550 (Fix `rustc_hidden_type_of_opaques` for RPITITs with no default body)
 - rust-lang#136558 (Document minimum supported host tooling on macOS)
 - rust-lang#136563 (Clean up `Trivial*Impls` macros)
 - rust-lang#136566 (Fix link in from_fn.rs)
 - rust-lang#136573 (Document why some "type mismatches" exist)
 - rust-lang#136583 (Only highlight unmatchable parameters at the definition site)
 - rust-lang#136587 (Update browser-ui-test version to `0.20.2`)
 - rust-lang#136590 (Implement RustcInternal for RawPtrKind)
 - rust-lang#136591 (Add `rustc_hir_pretty::expr_to_string` function)
 - rust-lang#136595 (Fix `unreachable_pub` lint for hermit target)
 - rust-lang#136611 (cg_llvm: Remove the `mod llvm_` hack, which should no longer be necessary)

Failed merges:

 - rust-lang#136565 (compiler: Clean up weird `rustc_abi` reexports)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit c549268 into rust-lang:master Feb 6, 2025
6 checks passed
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Feb 6, 2025
Rollup merge of rust-lang#136611 - Zalathar:llvm-underscore, r=workingjubilee

cg_llvm: Remove the `mod llvm_` hack, which should no longer be necessary

This re-export was introduced in rust-lang@c76fc3d, as a workaround for rust-lang#53912.

In short, there was/is an assumption in some LLVM LTO code that symbol names would not contain `.llvm.`, but legacy symbol mangling would naturally produce that sequence for symbols in a module named `llvm`.

This was later “fixed” by adding a special case to the legacy symbol mangler in rust-lang#61195, which detects the sequence `llvm` and emits the `m` in an escaped form. As a result, there should no longer be any need to avoid the module name `llvm` in the compiler itself.

(Symbol mangling v0 avoids this problem by not using `.` in the first place, outside of the “vendor-specific suffix”.)
@rustbot rustbot added this to the 1.86.0 milestone Feb 6, 2025
@Zalathar Zalathar deleted the llvm-underscore branch February 6, 2025 09:39
github-actions bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request Mar 11, 2025
…kingjubilee

Rollup of 13 pull requests

Successful merges:

 - rust-lang#133932 (Avoid using make_direct_deprecated() in extern "ptx-kernel")
 - rust-lang#136269 (Pass spans around new solver)
 - rust-lang#136550 (Fix `rustc_hidden_type_of_opaques` for RPITITs with no default body)
 - rust-lang#136558 (Document minimum supported host tooling on macOS)
 - rust-lang#136563 (Clean up `Trivial*Impls` macros)
 - rust-lang#136566 (Fix link in from_fn.rs)
 - rust-lang#136573 (Document why some "type mismatches" exist)
 - rust-lang#136583 (Only highlight unmatchable parameters at the definition site)
 - rust-lang#136587 (Update browser-ui-test version to `0.20.2`)
 - rust-lang#136590 (Implement RustcInternal for RawPtrKind)
 - rust-lang#136591 (Add `rustc_hir_pretty::expr_to_string` function)
 - rust-lang#136595 (Fix `unreachable_pub` lint for hermit target)
 - rust-lang#136611 (cg_llvm: Remove the `mod llvm_` hack, which should no longer be necessary)

Failed merges:

 - rust-lang#136565 (compiler: Clean up weird `rustc_abi` reexports)

r? `@ghost`
`@rustbot` modify labels: rollup
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants