<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/codegen/external-no-mangle-statics.rs, branch 1.52.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.52.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.52.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2019-10-17T00:06:48+00:00</updated>
<entry>
<title>Upgrade Emscripten targets to use upstream LLVM backend</title>
<updated>2019-10-17T00:06:48+00:00</updated>
<author>
<name>Thomas Lively</name>
<email>tlively@google.com</email>
</author>
<published>2019-08-17T05:08:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2bf59bea481dd4b4365cafe2e94fa8bf330a6877'/>
<id>urn:sha1:2bf59bea481dd4b4365cafe2e94fa8bf330a6877</id>
<content type='text'>
 - Compatible with Emscripten 1.38.46-upstream or later upstream.
 - Refactors the Emscripten target spec to share code with other wasm
   targets.
 - Replaces the old incorrect wasm32 C call ABI with the correct one,
   preserving the old one as wasm32_bindgen_compat for wasm-bindgen
   compatibility.
 - Updates the varargs ABI used by Emscripten and deletes the old one.
 - Removes the obsolete wasm32-experimental-emscripten target.
 - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
</content>
</entry>
<entry>
<title>Revert "Auto merge of #63649 - tlively:emscripten-upstream-upgrade, r=alexcrichton"</title>
<updated>2019-10-06T04:38:45+00:00</updated>
<author>
<name>Tyler Mandry</name>
<email>tmandry@gmail.com</email>
</author>
<published>2019-10-06T04:38:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d16b7f705bd7c266a924e43a31495477dc4c9321'/>
<id>urn:sha1:d16b7f705bd7c266a924e43a31495477dc4c9321</id>
<content type='text'>
This reverts commit 7870050796e5904a0fc85ecbe6fa6dde1cfe0c91, reversing
changes made to 2e7244807a7878f6eca3eb7d97ae9b413aa49014.
</content>
</entry>
<entry>
<title>Fix ABI, run and fix more tests, re-enable CI for PRs</title>
<updated>2019-10-04T07:47:21+00:00</updated>
<author>
<name>Thomas Lively</name>
<email>tlively@google.com</email>
</author>
<published>2019-10-02T18:02:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5b56c660c9cf55b240d26854fa0ffd41db068ff9'/>
<id>urn:sha1:5b56c660c9cf55b240d26854fa0ffd41db068ff9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>test: support both (`legacy` and `v0`) choices of mangling.</title>
<updated>2019-05-31T15:24:53+00:00</updated>
<author>
<name>Eduard-Mihai Burtescu</name>
<email>edy.burt@gmail.com</email>
</author>
<published>2019-04-13T16:03:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5fd3e89d70d7a1d6187c7a6ec55896e5e14d43ba'/>
<id>urn:sha1:5fd3e89d70d7a1d6187c7a6ec55896e5e14d43ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove licenses</title>
<updated>2018-12-26T04:08:33+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2018-12-25T15:56:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2a663555ddf36f6b041445894a8c175cd1bc718c'/>
<id>urn:sha1:2a663555ddf36f6b041445894a8c175cd1bc718c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Various minor/cosmetic improvements to code</title>
<updated>2018-12-07T23:53:34+00:00</updated>
<author>
<name>Alexander Regueiro</name>
<email>alexreg@me.com</email>
</author>
<published>2018-11-27T02:59:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ee89c088b057affb5bdb96195e107a218b64b1c5'/>
<id>urn:sha1:ee89c088b057affb5bdb96195e107a218b64b1c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rustc: Allow `#[no_mangle]` anywhere in a crate</title>
<updated>2018-10-06T20:57:30+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-09-21T22:58:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d7d704537457c613e667e9f0cd9fda32600bfb36'/>
<id>urn:sha1:d7d704537457c613e667e9f0cd9fda32600bfb36</id>
<content type='text'>
This commit updates the compiler to allow the `#[no_mangle]` (and
`#[export_name]` attributes) to be located anywhere within a crate.
These attributes are unconditionally processed, causing the compiler to
always generate an exported symbol with the appropriate name.

After some discussion on #54135 it was found that not a great reason
this hasn't been allowed already, and it seems to match the behavior
that many expect! Previously the compiler would only export a
`#[no_mangle]` symbol if it were *publicly reachable*, meaning that it
itself is `pub` and it's otherwise publicly reachable from the root of
the crate. This new definition is that `#[no_mangle]` *is always
reachable*, no matter where it is in a crate or whether it has `pub` or
not.

This should make it much easier to declare an exported symbol with a
known and unique name, even when it's an internal implementation detail
of the crate itself. Note that these symbols will persist beyond LTO as
well, always making their way to the linker.

Along the way this commit removes the `private_no_mangle_functions` lint
(also for statics) as there's no longer any need to lint these
situations. Furthermore a good number of tests were updated now that
symbol visibility has been changed.

Closes #54135
</content>
</entry>
</feed>
