Skip to content

Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports - #163462

Open
cezarbbb wants to merge 1 commit into
rust-lang:mainfrom
cezarbbb:symbol-edit-undecorate-coff
Open

cezarbbb wants to merge 1 commit into
rust-lang:mainfrom
cezarbbb:symbol-edit-undecorate-coff

Conversation

@cezarbbb

@cezarbbb cezarbbb commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

#163188 handled Arm64EC's # mangling in symbol_edit, but COFF decoration support there
was still incomplete: matching against exported symbols only stripped the i686 _ prefix,
so stdcall/fastcall/vectorcall exports were wrongly treated as internal and renamed.
link.rs already had the full undecoration, so this shares it as
symbol_export::undecorate_coff_symbol, uses it from both places, and covers the
decorated calling conventions in the run-make test.

LLM disclosure: Initially, I mistakenly over-scoped the extraction of the shared undecorate logic; the LLM helped me narrow the scope and ultimately pinpoint a single function, and I am currently using the streamlined version it suggested. Additionally, the LLM assisted me in designing the specific test functions within decorated_lib.rs.

r? @bjorn3

@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs 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 Sep 29, 2026
Comment thread compiler/rustc_codegen_ssa/src/back/symbol_export.rs Outdated
Comment thread compiler/rustc_codegen_ssa/src/back/symbol_export.rs
Comment thread compiler/rustc_codegen_ssa/src/back/symbol_export.rs Outdated
Comment thread compiler/rustc_codegen_ssa/src/back/symbol_export.rs Outdated
Comment thread tests/run-make/staticlib-rename-internal-symbols-coff/decorated_lib.rs Outdated
Comment thread tests/run-make/staticlib-rename-internal-symbols-coff/rmake.rs Outdated
@rustbot rustbot 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 Oct 2, 2026
@rustbot

rustbot commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@cezarbbb
cezarbbb force-pushed the symbol-edit-undecorate-coff branch from 33a8e64 to 3e2bec1 Compare October 8, 2026 01:42
@cezarbbb

cezarbbb commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

@rustbot ready

@rustbot 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 Oct 8, 2026
@bjorn3

bjorn3 commented Oct 8, 2026

Copy link
Copy Markdown
Member

@bors r+

@rust-bors

rust-bors Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3e2bec1 has been approved by bjorn3

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Oct 8, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 8, 2026
…ff, r=bjorn3

Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports

rust-lang#163188 handled Arm64EC's `#` mangling in `symbol_edit`, but COFF decoration support there
was still incomplete: matching against exported symbols only stripped the i686 `_` prefix,
so `stdcall`/`fastcall`/`vectorcall` exports were wrongly treated as internal and renamed.
`link.rs` already had the full undecoration, so this shares it as
`symbol_export::undecorate_coff_symbol`, uses it from both places, and covers the
decorated calling conventions in the run-make test.

LLM disclosure: Initially, I mistakenly over-scoped the extraction of the shared undecorate logic; the LLM helped me narrow the scope and ultimately pinpoint a single function, and I am currently using the streamlined version it suggested. Additionally, the LLM assisted me in designing the specific test functions within `decorated_lib.rs`.

r? @bjorn3
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 8, 2026
…ff, r=bjorn3

Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports

rust-lang#163188 handled Arm64EC's `#` mangling in `symbol_edit`, but COFF decoration support there
was still incomplete: matching against exported symbols only stripped the i686 `_` prefix,
so `stdcall`/`fastcall`/`vectorcall` exports were wrongly treated as internal and renamed.
`link.rs` already had the full undecoration, so this shares it as
`symbol_export::undecorate_coff_symbol`, uses it from both places, and covers the
decorated calling conventions in the run-make test.

LLM disclosure: Initially, I mistakenly over-scoped the extraction of the shared undecorate logic; the LLM helped me narrow the scope and ultimately pinpoint a single function, and I am currently using the streamlined version it suggested. Additionally, the LLM assisted me in designing the specific test functions within `decorated_lib.rs`.

r? @bjorn3

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-run-make Area: port run-make Makefiles to rmake.rs 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.

3 participants