<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/librustc_codegen_llvm/back/linker.rs, branch 1.31.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.31.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.31.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-11-15T19:19:13+00:00</updated>
<entry>
<title>xLTO: Don't pass --plugin-opt=thin to LLD. That's not supported anymore.</title>
<updated>2018-11-15T19:19:13+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-11-14T13:42:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3dfbe359eb0417a766d93ead2822144ad761dc4d'/>
<id>urn:sha1:3dfbe359eb0417a766d93ead2822144ad761dc4d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wasm: Explicitly export all symbols with LLD</title>
<updated>2018-10-02T20:49:51+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-10-02T20:49:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c7f4f3ad75997c495de1ec91b6d714d1653412dd'/>
<id>urn:sha1:c7f4f3ad75997c495de1ec91b6d714d1653412dd</id>
<content type='text'>
This commit fixes an oddity on the wasm target where LTO can produce
working executables but plain old optimizations doesn't. The compiler
already knows what set of symbols it would like to export, but LLD only
discovers this list transitively through symbol visibilities. LLD may
not, however, always find all the symbols that we'd like to export.

For example if you depend on an rlib with a `#[no_mangle]` symbol, then
if you don't actually use anything from the rlib then the symbol won't
appear in the final artifact! It will appear, however, with LTO. This
commit attempts to rectify this situation by ensuring that all symbols
rustc would otherwise preserve through LTO are also preserved through
the linking process with LLD by default.
</content>
</entry>
<entry>
<title>Enable fatal warnings for the wasm32 linker</title>
<updated>2018-09-15T16:15:48+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-09-15T16:15:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=42652565ee7da4053b24ec8cd1e31c0c30ac8174'/>
<id>urn:sha1:42652565ee7da4053b24ec8cd1e31c0c30ac8174</id>
<content type='text'>
Historically LLD has emitted warnings for various reasons but all the bugs have
since been fixed (yay!) and by enabling fatal warnings we should be able to head
off bugs like #53390 sooner.
</content>
</entry>
<entry>
<title>Allow for opting out of ThinLTO and clean up LTO related cli flag handling.</title>
<updated>2018-09-05T10:52:17+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2018-09-04T15:57:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=24093a6bdb33319bed76b3bc8d3f2efda63967c2'/>
<id>urn:sha1:24093a6bdb33319bed76b3bc8d3f2efda63967c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #53472 - eddyb:fx-pls, r=pnkfelix</title>
<updated>2018-08-30T18:15:29+00:00</updated>
<author>
<name>Pietro Albini</name>
<email>pietro@pietroalbini.org</email>
</author>
<published>2018-08-30T18:15:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ba832707cfb8dc4e3f22f18f86a00061772d5f07'/>
<id>urn:sha1:ba832707cfb8dc4e3f22f18f86a00061772d5f07</id>
<content type='text'>
Use FxHash{Map,Set} instead of the default Hash{Map,Set} everywhere in rustc.

Most of the compiler uses the `Fx` hasher but some places ended up with the default one.
</content>
</entry>
<entry>
<title>Fix warnings about the `native` target-cpu</title>
<updated>2018-08-28T20:32:11+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-08-23T18:03:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1fd45a13dee17701fc0aeaa847c1919d485d09fd'/>
<id>urn:sha1:1fd45a13dee17701fc0aeaa847c1919d485d09fd</id>
<content type='text'>
This fixes a regression from #53031 where specifying `-C target-cpu=native` is
printing a lot of warnings from LLVM about `native` being an unknown CPU. It
turns out that `native` is indeed an unknown CPU and we have to perform a
mapping to an actual CPU name, but this mapping is only performed in one
location rather than all locations we inform LLVM about the target CPU.

This commit centralizes the mapping of `native` to LLVM's value of the native
CPU, ensuring that all locations we inform LLVM about the `target-cpu` it's
never `native`.

Closes #53322
</content>
</entry>
<entry>
<title>Use FxHash{Map,Set} instead of the default Hash{Map,Set} everywhere in rustc.</title>
<updated>2018-08-28T14:04:04+00:00</updated>
<author>
<name>Eduard-Mihai Burtescu</name>
<email>edy.burt@gmail.com</email>
</author>
<published>2018-08-18T10:55:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=93f3f5b1552489dbee03020505d896f01fd53852'/>
<id>urn:sha1:93f3f5b1552489dbee03020505d896f01fd53852</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #52101 - japaric:linker-flavor, r=alexcrichton</title>
<updated>2018-08-20T01:12:58+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2018-08-20T01:12:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d2048b6db375299b681d4f4728b8e7cad9f74d5f'/>
<id>urn:sha1:d2048b6db375299b681d4f4728b8e7cad9f74d5f</id>
<content type='text'>
try to infer linker flavor from linker name and vice versa

This is a second take on PR #50359 that implements the logic proposed in https://github.com/rust-lang/rust/pull/50359#pullrequestreview-116663121

With this change it would become possible to link `thumb*` binaries using GNU's LD on stable as `-C linker=arm-none-eabi-ld` would be enough to change both the linker and the linker flavor from their default values of `arm-none-eabi-gcc` and `gcc`.

To link `thumb*` binaries using rustc's LLD on stable `-Z linker-flavor` would need to be stabilized as `-C linker=rust-lld -Z linker-flavor=ld.lld` are both required to change the linker and the linker flavor, but this PR doesn't propose that. We would probably need some sort of stability guarantee around `rust-lld`'s name and availability to make linking with rustc's LLD truly stable.

With this change it would also be possible to link `thumb*` binaries using a system installed LLD on stable using the `-C linker=ld.lld` flag (provided that `ld.lld` is a symlink to the system installed LLD).

r? @alexcrichton
</content>
</entry>
<entry>
<title>wasm: Remove --strip-debug argument to LLD</title>
<updated>2018-08-16T17:17:06+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-08-16T17:17:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ed39cc074aa5d25ec8d7fc2e17b69bf97c148cda'/>
<id>urn:sha1:ed39cc074aa5d25ec8d7fc2e17b69bf97c148cda</id>
<content type='text'>
Originally added in #52887 this commit disables passing `--strip-debug` to LLD
when optimized. This bring back the original bug of emitting broken debuginfo
but currently it *also* strips the `name` section which makes it very difficult
to inspect the final binary. A real fix is happening at
https://reviews.llvm.org/D50729 and we can reevaluate once we've updated LLD to
have that commit.
</content>
</entry>
<entry>
<title>try to infer linker flavor from linker name and vice versa</title>
<updated>2018-08-09T21:08:36+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>jorge@japaric.io</email>
</author>
<published>2018-07-06T05:41:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=eb74f21f5a66fcb667a6d7fdf9b4c2521c4d4030'/>
<id>urn:sha1:eb74f21f5a66fcb667a6d7fdf9b4c2521c4d4030</id>
<content type='text'>
</content>
</entry>
</feed>
