You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rustbot
added
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
T-bootstrap
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
A-testsuite
Area: The testsuite used to check the correctness of rustc
T-infra
Relevant to the infrastructure team, which will review and decide on the PR/issue.
labels
Jul 18, 2023
The issue on Windows seems to be that weak symbols can be defined, but not dllexport'ed. This causes problems when building the standard library as a DLL since compiler_builtins is placed in it, and the rustc_driver DLL imports the compiler_builtins functions from it.
Weak symbols on Windows with ld.bfd are a can of worms.
Generally you can expect them to rather work as long as you are combining static archives with weak symbols into one final binary/library. Trying to do the same with shared libraries might work for simplest cases but generally think of it as broken.
You may have more luck with __declspec(selectany) but it will use more COMDATs which Windows limits to 2^16.
LLD is has working weak symbols (in both static and shared cases) but we cannot use it because of another Binutils bug import libraries created by LLD break symbol table with Binutils <2.40.
Dylan-DPC
added
S-experimental
Status: Ongoing experiment that does not require reviewing and won't be merged in its current state.
and removed
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Aug 22, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A-testsuiteArea: The testsuite used to check the correctness of rustcS-experimentalStatus: Ongoing experiment that does not require reviewing and won't be merged in its current state.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.
6 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an experiment to try making all compiler-builtins symbols weak by default. This should solve issues like rust-lang/compiler-builtins#353 and rust-lang/compiler-builtins#420 where our symbols conflict with those from libgcc/libclang_rt.
r? @ghost