Skip to content

Conversation

@hoodmane
Copy link
Contributor

@hoodmane hoodmane commented Jan 26, 2026

This makes cdylibs compile to working Emscripten dynamic libraries without passing extra RUSTFLAGS. This was previously approved as #98358 but there were CI failures that I never got around to fixing.

cc @workingjubilee

@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 Jan 26, 2026
@rustbot
Copy link
Collaborator

rustbot commented Jan 26, 2026

r? @JonathanBrouwer

rustbot has assigned @JonathanBrouwer.
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

This comment has been minimized.

@hoodmane hoodmane force-pushed the emscripten-set-output-kind branch from 357f3a8 to 481c68d Compare January 26, 2026 18:45
@JayanAXHF JayanAXHF added O-emscripten Target: 50% off wasm32-unknown-musl. the savings come out of stdio.h, but hey, you get SDL! A-linkers Area: linkers... you gotta love linkers labels Jan 26, 2026
@rust-log-analyzer

This comment has been minimized.

@JonathanBrouwer
Copy link
Contributor

@bors retry

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 27, 2026

❗ You can only retry pull requests that are approved and have a previously failed auto build.

@JonathanBrouwer
Copy link
Contributor

Not familiar with this code, rerolling
@rustbot reroll

@rustbot rustbot assigned tiif and unassigned JonathanBrouwer Jan 27, 2026
@hoodmane
Copy link
Contributor Author

The same rustdoc-gui/setting-go-to-only-result.goml test is failing on both of my open PRs... @JonathanBrouwer any ideas about that?

@JonathanBrouwer
Copy link
Contributor

Yes, this is a spurious issue, you can ignore this. We tried to fix this in #151692 but it didn't work

@hoodmane
Copy link
Contributor Author

Is the failure cancelling other CI jobs?

@JonathanBrouwer
Copy link
Contributor

This test is spurious and only sometimes succeeds, and got merged into develop

@hoodmane
Copy link
Contributor Author

I guess I should just wait a few days until it's fixed on the main branch and then rebase?

@hoodmane
Copy link
Contributor Author

Thanks for the help!

@JonathanBrouwer
Copy link
Contributor

JonathanBrouwer commented Jan 27, 2026

Yep, I just learned I can also rerun CI jobs if you don't feel like waiting

@hoodmane
Copy link
Contributor Author

Won't it just fail again in the same place?

@JonathanBrouwer
Copy link
Contributor

It seems to be like a 50/50 chance

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 27, 2026
…est, r=GuillaumeGomez

Update `browser-ui-test` version to `0.23.3`

Should fix rust-lang#151704 (comment).
Should help with rust-lang#93784.

r? ghost
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jan 27, 2026
…est, r=GuillaumeGomez

Update `browser-ui-test` version to `0.23.3`

Should fix rust-lang#151704 (comment).
Should help with rust-lang#93784.

r? ghost
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jan 27, 2026
…est, r=GuillaumeGomez

Update `browser-ui-test` version to `0.23.3`

Should fix rust-lang#151704 (comment).
Should help with rust-lang#93784.

r? ghost
This makes cdylibs compile to working Emscripten dynamic libraries without passing extra
RUSTFLAGS. This was previously approved as PR 98358 but there were CI failures that I
never got around to fixing.
@hoodmane hoodmane force-pushed the emscripten-set-output-kind branch from 481c68d to 10e053d Compare January 28, 2026 01:19
@rustbot
Copy link
Collaborator

rustbot commented Jan 28, 2026

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@tiif
Copy link
Member

tiif commented Jan 28, 2026

This PR looks interesting, but unfortunately I am not familiar with the linker part.

r? @petrochenkov

since you approved the previous PR.

@rustbot rustbot assigned petrochenkov and unassigned tiif Jan 28, 2026
@rust-bors rust-bors bot closed this in 5c0b064 Jan 28, 2026
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 28, 2026
rust-timer added a commit that referenced this pull request Jan 28, 2026
Rollup merge of #151759 - GuillaumeGomez:update-browser-ui-test, r=GuillaumeGomez

Update `browser-ui-test` version to `0.23.3`

Should fix #151704 (comment).
Should help with #93784.

r? ghost
@tiif
Copy link
Member

tiif commented Jan 28, 2026

I think bors accidentally closed this.

@tiif tiif reopened this Jan 28, 2026
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 28, 2026
@petrochenkov
Copy link
Contributor

@bors r+

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 28, 2026

📌 Commit 10e053d has been approved by petrochenkov

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 Jan 28, 2026
rust-bors bot pushed a commit that referenced this pull request Jan 28, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - #150491 (resolve: Mark items under exported ambiguous imports as exported)
 - #150720 (Do not suggest `derive` if there is already an impl)
 - #150968 (compiler-builtins: Remove the no-f16-f128 feature)
 - #151493 ([RFC] rustc_parse: improve the error diagnostic for "missing let in let chain")
 - #151660 (Bump `std`'s `backtrace`'s `rustc-demangle`)
 - #151696 (Borrowck: Simplify SCC annotation computation, placeholder rewriting)
 - #151704 (Implement `set_output_kind` for Emscripten linker)
 - #151706 (Remove Fuchsia from target OS list in unix.rs for sleep)
 - #151769 (fix undefined behavior in VecDeque::splice)
 - #151779 (stdarch subtree update)
 - #151449 ([rustdoc] Add regression test for #151411)
 - #151773 (clean up checks for constant promotion of integer division/remainder operations)
@rust-bors rust-bors bot merged commit b84cf6f into rust-lang:main Jan 29, 2026
22 checks passed
rust-timer added a commit that referenced this pull request Jan 29, 2026
Rollup merge of #151704 - hoodmane:emscripten-set-output-kind, r=petrochenkov

Implement `set_output_kind` for Emscripten linker

This makes cdylibs compile to working Emscripten dynamic libraries without passing extra RUSTFLAGS. This was previously approved as #98358 but there were CI failures that I never got around to fixing.

cc @workingjubilee
@hoodmane hoodmane deleted the emscripten-set-output-kind branch January 29, 2026 01:01
github-actions bot pushed a commit to rust-lang/compiler-builtins that referenced this pull request Jan 29, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - rust-lang/rust#150491 (resolve: Mark items under exported ambiguous imports as exported)
 - rust-lang/rust#150720 (Do not suggest `derive` if there is already an impl)
 - rust-lang/rust#150968 (compiler-builtins: Remove the no-f16-f128 feature)
 - rust-lang/rust#151493 ([RFC] rustc_parse: improve the error diagnostic for "missing let in let chain")
 - rust-lang/rust#151660 (Bump `std`'s `backtrace`'s `rustc-demangle`)
 - rust-lang/rust#151696 (Borrowck: Simplify SCC annotation computation, placeholder rewriting)
 - rust-lang/rust#151704 (Implement `set_output_kind` for Emscripten linker)
 - rust-lang/rust#151706 (Remove Fuchsia from target OS list in unix.rs for sleep)
 - rust-lang/rust#151769 (fix undefined behavior in VecDeque::splice)
 - rust-lang/rust#151779 (stdarch subtree update)
 - rust-lang/rust#151449 ([rustdoc] Add regression test for rust-lang/rust#151411)
 - rust-lang/rust#151773 (clean up checks for constant promotion of integer division/remainder operations)
tgross35 pushed a commit to rust-lang/compiler-builtins that referenced this pull request Jan 31, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - rust-lang/rust#150491 (resolve: Mark items under exported ambiguous imports as exported)
 - rust-lang/rust#150720 (Do not suggest `derive` if there is already an impl)
 - rust-lang/rust#150968 (compiler-builtins: Remove the no-f16-f128 feature)
 - rust-lang/rust#151493 ([RFC] rustc_parse: improve the error diagnostic for "missing let in let chain")
 - rust-lang/rust#151660 (Bump `std`'s `backtrace`'s `rustc-demangle`)
 - rust-lang/rust#151696 (Borrowck: Simplify SCC annotation computation, placeholder rewriting)
 - rust-lang/rust#151704 (Implement `set_output_kind` for Emscripten linker)
 - rust-lang/rust#151706 (Remove Fuchsia from target OS list in unix.rs for sleep)
 - rust-lang/rust#151769 (fix undefined behavior in VecDeque::splice)
 - rust-lang/rust#151779 (stdarch subtree update)
 - rust-lang/rust#151449 ([rustdoc] Add regression test for rust-lang/rust#151411)
 - rust-lang/rust#151773 (clean up checks for constant promotion of integer division/remainder operations)
github-actions bot pushed a commit to rust-lang/stdarch that referenced this pull request Feb 5, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - rust-lang/rust#150491 (resolve: Mark items under exported ambiguous imports as exported)
 - rust-lang/rust#150720 (Do not suggest `derive` if there is already an impl)
 - rust-lang/rust#150968 (compiler-builtins: Remove the no-f16-f128 feature)
 - rust-lang/rust#151493 ([RFC] rustc_parse: improve the error diagnostic for "missing let in let chain")
 - rust-lang/rust#151660 (Bump `std`'s `backtrace`'s `rustc-demangle`)
 - rust-lang/rust#151696 (Borrowck: Simplify SCC annotation computation, placeholder rewriting)
 - rust-lang/rust#151704 (Implement `set_output_kind` for Emscripten linker)
 - rust-lang/rust#151706 (Remove Fuchsia from target OS list in unix.rs for sleep)
 - rust-lang/rust#151769 (fix undefined behavior in VecDeque::splice)
 - rust-lang/rust#151779 (stdarch subtree update)
 - rust-lang/rust#151449 ([rustdoc] Add regression test for rust-lang/rust#151411)
 - rust-lang/rust#151773 (clean up checks for constant promotion of integer division/remainder operations)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Feb 9, 2026
…ow-dylibs, r=petrochenkov

Set crt_static_allow_dylibs to true for Emscripten target

And add a test. This is followup work to rust-lang#151704. It introduced a regression where cargo is now unwilling to build cdylibs for Emscripten because `crt_static_default` is `true` but `crt_static_allows_dylibs` is `false`. Unfortunately the added test does not fail without the change because the validation logic is in Cargo, not in rustc. But it's good to have some coverage of this anyways.
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Feb 9, 2026
…ow-dylibs, r=petrochenkov

Set crt_static_allow_dylibs to true for Emscripten target

And add a test. This is followup work to rust-lang#151704. It introduced a regression where cargo is now unwilling to build cdylibs for Emscripten because `crt_static_default` is `true` but `crt_static_allows_dylibs` is `false`. Unfortunately the added test does not fail without the change because the validation logic is in Cargo, not in rustc. But it's good to have some coverage of this anyways.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Feb 9, 2026
…ow-dylibs, r=petrochenkov

Set crt_static_allow_dylibs to true for Emscripten target

And add a test. This is followup work to rust-lang#151704. It introduced a regression where cargo is now unwilling to build cdylibs for Emscripten because `crt_static_default` is `true` but `crt_static_allows_dylibs` is `false`. Unfortunately the added test does not fail without the change because the validation logic is in Cargo, not in rustc. But it's good to have some coverage of this anyways.
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Feb 9, 2026
…ow-dylibs, r=petrochenkov

Set crt_static_allow_dylibs to true for Emscripten target

And add a test. This is followup work to rust-lang#151704. It introduced a regression where cargo is now unwilling to build cdylibs for Emscripten because `crt_static_default` is `true` but `crt_static_allows_dylibs` is `false`. Unfortunately the added test does not fail without the change because the validation logic is in Cargo, not in rustc. But it's good to have some coverage of this anyways.
rust-timer added a commit that referenced this pull request Feb 9, 2026
Rollup merge of #152134 - hoodmane:emscripten-crt-static-allow-dylibs, r=petrochenkov

Set crt_static_allow_dylibs to true for Emscripten target

And add a test. This is followup work to #151704. It introduced a regression where cargo is now unwilling to build cdylibs for Emscripten because `crt_static_default` is `true` but `crt_static_allows_dylibs` is `false`. Unfortunately the added test does not fail without the change because the validation logic is in Cargo, not in rustc. But it's good to have some coverage of this anyways.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-linkers Area: linkers... you gotta love linkers O-emscripten Target: 50% off wasm32-unknown-musl. the savings come out of stdio.h, but hey, you get SDL! 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.

7 participants