-
Notifications
You must be signed in to change notification settings - Fork 13k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rustc: Add some suppot for mixing rlibs and dylibs
Currently, rustc requires that a linkage be a product of 100% rlibs or 100% dylibs. This is to satisfy the requirement that each object appear at most once in the final output products. This is a bit limiting, and the upcoming libcore library cannot exist as a dylib, so these rules must change. The goal of this commit is to enable *some* use cases for mixing rlibs and dylibs, primarily libcore's use case. It is not targeted at allowing an exhaustive number of linkage flavors. There is a new dependency_format module in rustc which calculates what format each upstream library should be linked as in each output type of the current unit of compilation. The module itself contains many gory details about what's going on here. cc #10729
- Loading branch information
1 parent
adcbf53
commit a82f921
Showing
23 changed files
with
543 additions
and
150 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
a82f921
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
saw approval from brson
at alexcrichton@a82f921
a82f921
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merging alexcrichton/rust/mixing-rlib-dylib-deps = a82f921 into auto
a82f921
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
alexcrichton/rust/mixing-rlib-dylib-deps = a82f921 merged ok, testing candidate = 24f6f26e
a82f921
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all tests pass:
success: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/5618
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/5614
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/4708
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/4720
success: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/5716
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/4804
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/4812
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/5718
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/4803
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/4809
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/4871
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android-t/builds/2605
success: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/5711
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/4807
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/4822
a82f921
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fast-forwarding master to auto = 24f6f26e