Skip to content

rustc: Work around an upstream wasm ThinLTO bug - #52506

Merged
bors merged 1 commit into
rust-lang:masterfrom
alexcrichton:dont-duplicate-wasm-sections
Jul 23, 2018
Merged

rustc: Work around an upstream wasm ThinLTO bug#52506
bors merged 1 commit into
rust-lang:masterfrom
alexcrichton:dont-duplicate-wasm-sections

Conversation

@alexcrichton

Copy link
Copy Markdown
Member

This commit implements a workaround for an upstream LLVM bug where custom
sections were accidentally duplicated amongst codegen units when ThinLTO passes
were performed. This is due to the fact that custom sections for wasm are stored
as metadata nodes which are automatically imported into modules when ThinLTO
happens. The fix here is to forcibly delete the metadata node from imported
modules before LLVM has a chance to try to copy it over.

This commit implements a workaround for an [upstream LLVM bug][1] where custom
sections were accidentally duplicated amongst codegen units when ThinLTO passes
were performed. This is due to the fact that custom sections for wasm are stored
as metadata nodes which are automatically imported into modules when ThinLTO
happens. The fix here is to forcibly delete the metadata node from imported
modules before LLVM has a chance to try to copy it over.

[1]: https://bugs.llvm.org/show_bug.cgi?id=38184
@rust-highfive

Copy link
Copy Markdown
Contributor

r? @aturon

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 18, 2018
@alexcrichton

Copy link
Copy Markdown
Member Author

r? @michaelwoerister

@emilyalbini

Copy link
Copy Markdown
Member

Ping from triage @michaelwoerister! This PR needs your review.

@michaelwoerister

Copy link
Copy Markdown
Member

@bors r+

@bors

bors commented Jul 23, 2018

Copy link
Copy Markdown
Collaborator

📌 Commit e08fcbb has been approved by michaelwoerister

@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 Jul 23, 2018
@bors

bors commented Jul 23, 2018

Copy link
Copy Markdown
Collaborator

⌛ Testing commit e08fcbb with merge 5665a2d...

bors added a commit that referenced this pull request Jul 23, 2018
…ichaelwoerister

rustc: Work around an upstream wasm ThinLTO bug

This commit implements a workaround for an [upstream LLVM bug][1] where custom
sections were accidentally duplicated amongst codegen units when ThinLTO passes
were performed. This is due to the fact that custom sections for wasm are stored
as metadata nodes which are automatically imported into modules when ThinLTO
happens. The fix here is to forcibly delete the metadata node from imported
modules before LLVM has a chance to try to copy it over.

[1]: https://bugs.llvm.org/show_bug.cgi?id=38184
@bors bors mentioned this pull request Jul 23, 2018
@bors

bors commented Jul 23, 2018

Copy link
Copy Markdown
Collaborator

☀️ Test successful - status-appveyor, status-travis
Approved by: michaelwoerister
Pushing 5665a2d to master...

@bors
bors merged commit e08fcbb into rust-lang:master Jul 23, 2018
@alexcrichton
alexcrichton deleted the dont-duplicate-wasm-sections branch July 31, 2018 21:15
alexcrichton added a commit to alexcrichton/wasm-bindgen that referenced this pull request Aug 25, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants