]> git.lizzy.rs Git - rust.git/commit
auto merge of #10199 : alexcrichton/rust/no-propagate, r=brson
authorbors <bors@rust-lang.org>
Sun, 3 Nov 2013 05:16:02 +0000 (22:16 -0700)
committerbors <bors@rust-lang.org>
Sun, 3 Nov 2013 05:16:02 +0000 (22:16 -0700)
commitb5c1b48048cc911c3caa07ada776239123a97b50
tree8129865701c0d4d288cbc1453801db3e583910f9
parenta248e34fc7afdccf0f50b7b6b28dac86f1b93374
parent0ce1b2f04d5b1a427f966ed70b09e95ae882947e
auto merge of #10199 : alexcrichton/rust/no-propagate, r=brson

This commit removes the propagation of `link_args` attributes across crates. The first commit message has the reasons as to why. Additionally, this starts statically linking some C/C++ helper libraries that we have to their respective crates instead of throwing then in librustrt and then having everything depend on librustrt.

The major downside of this movement is that we're losing the ability to control visible symbols. I couldn't figure out a way to internalize symbols from a static library during the linking process, so everyone who links to librustdoc will be able to use its sundown implementation (not exactly ideal). I'm not entirely sure how to fix this (beyond generating a list of all public symbols, including rust ones, and passing that to the linker), but we may have a much easier time with this once we start using llvm's linker toolchain.

There's certainly a lot more possibilities in where this can go, but I didn't want to go too deep just yet. The main idea here is to stop propagating linker arguments and then see how we're able to start statically linking libraries as a result.

r? @catamorphism, you're going to be working on linking soon, so feel free to completely throw this away for something else!
Makefile.in