Skip to content
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 and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rustc: Work around an upstream wasm ThinLTO bug #52506

Merged
merged 1 commit into from
Jul 23, 2018

Conversation

alexcrichton
Copy link
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
Collaborator

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
Member Author

r? @michaelwoerister

@pietroalbini
Copy link
Member

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

@michaelwoerister
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Jul 23, 2018

📌 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
Copy link
Contributor

bors commented Jul 23, 2018

⌛ 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
Copy link
Contributor

bors commented Jul 23, 2018

☀️ 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