<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sys/unix/weak.rs, branch 1.34.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.34.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.34.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2019-02-13T22:07:08+00:00</updated>
<entry>
<title>Return without a reference in unix Weak::get()</title>
<updated>2019-02-13T22:07:08+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2019-02-13T22:07:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=33d80bfaa0f2a4ca996a942e6d65a932e72fec1b'/>
<id>urn:sha1:33d80bfaa0f2a4ca996a942e6d65a932e72fec1b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid allocation in std::sys::unix::weak</title>
<updated>2019-02-13T21:46:45+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2019-02-13T21:46:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=70c5af85e09be583128df5eda6b4de25a23387c1'/>
<id>urn:sha1:70c5af85e09be583128df5eda6b4de25a23387c1</id>
<content type='text'>
If we add a terminating NUL to the name in the `weak!` macro, then
`fetch()` can use `CStr::from_bytes_with_nul()` instead of `CString`.
</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>Properly report ENOSYS by modifying errno</title>
<updated>2018-12-21T13:53:37+00:00</updated>
<author>
<name>Adrian Budau</name>
<email>budau.adi@gmail.com</email>
</author>
<published>2018-12-21T13:53:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bf172c532af44628e3c3323a5f8a8c1726ffbd30'/>
<id>urn:sha1:bf172c532af44628e3c3323a5f8a8c1726ffbd30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix typo in comment</title>
<updated>2018-12-20T11:29:04+00:00</updated>
<author>
<name>Adrian Budau</name>
<email>budau.adi@gmail.com</email>
</author>
<published>2018-12-20T11:29:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=da47bd3ae01f9a651b652bb141685b128c5058b0'/>
<id>urn:sha1:da47bd3ae01f9a651b652bb141685b128c5058b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix pipe2 and accept4 on static linked executables on linux (like musl).</title>
<updated>2018-12-20T11:22:31+00:00</updated>
<author>
<name>Adrian Budau</name>
<email>budau.adi@gmail.com</email>
</author>
<published>2018-12-19T14:13:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cc53f4e9f48747d44718bb1b51e549437edae916'/>
<id>urn:sha1:cc53f4e9f48747d44718bb1b51e549437edae916</id>
<content type='text'>
</content>
</entry>
<entry>
<title>use field init shorthand EVERYWHERE</title>
<updated>2017-08-15T22:29:17+00:00</updated>
<author>
<name>Zack M. Davis</name>
<email>code@zackmdavis.net</email>
</author>
<published>2017-08-07T05:54:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1b6c9605e41b7c7dc23e0e6f633f05912d0463dd'/>
<id>urn:sha1:1b6c9605e41b7c7dc23e0e6f633f05912d0463dd</id>
<content type='text'>
Like #43008 (f668999), but _much more aggressive_.
</content>
</entry>
<entry>
<title>std: Fix linking against `signal` on Android</title>
<updated>2016-04-05T04:54:59+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-03-21T23:54:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9c462b84c8e15c3b33229a2604b273fc58acf60a'/>
<id>urn:sha1:9c462b84c8e15c3b33229a2604b273fc58acf60a</id>
<content type='text'>
Currently the minimum supported Android version of the standard library is
API level 18 (android-18). Back in those days [1] the `signal` function was
just an inline wrapper around `bsd_signal`, but starting in API level
android-20 the `signal` symbols was introduced [2]. Finally, in android-21
the API `bsd_signal` was removed [3].

Basically this means that if we want to be binary compatible with multiple
Android releases (oldest being 18 and newest being 21) then we need to check
for both symbols and not actually link against either.

This was first discovered in rust-lang/libc#236 with a fix proposed in
rust-lang/libc#237. I suspect that we'll want to accept rust-lang/libc#237 so
Rust crates at large continue to be compatible with newer releases of Android
and crates, like the standard library, that want to opt into older support can
continue to do so via similar means.

Closes rust-lang/libc#236

[1]: https://chromium.googlesource.com/android_tools/+/20ee6d20/ndk/platforms/android-18/arch-arm/usr/include/signal.h
[2]: https://chromium.googlesource.com/android_tools/+/fbd420/ndk_experimental/platforms/android-20/arch-arm/usr/include/signal.h
[3]: https://chromium.googlesource.com/android_tools/+/20ee6d/ndk/platforms/android-21/arch-arm/usr/include/signal.h
</content>
</entry>
<entry>
<title>std: Add support for accept4 on Linux</title>
<updated>2016-02-06T01:11:02+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-04T23:22:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=46315184cb74a98dbd10a0d300a0c3ee62b78049'/>
<id>urn:sha1:46315184cb74a98dbd10a0d300a0c3ee62b78049</id>
<content type='text'>
This is necessary to atomically accept a socket and set the CLOEXEC flag at the
same time. Support only appeared in Linux 2.6.28 so we have to dynamically
determine which syscall we're supposed to call in this case.
</content>
</entry>
<entry>
<title>std: Add a helper for symbols that may not exist</title>
<updated>2016-02-06T01:11:02+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2016-02-04T21:56:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1a31e1c09f89daeefa06ca9336912e9bcadb0c1d'/>
<id>urn:sha1:1a31e1c09f89daeefa06ca9336912e9bcadb0c1d</id>
<content type='text'>
Right now we only attempt to call one symbol which my not exist everywhere,
__pthread_get_minstack, but this pattern will come up more often as we start to
bind newer functionality of systems like Linux.

Take a similar strategy as the Windows implementation where we use `dlopen` to
lookup whether a symbol exists or not.
</content>
</entry>
</feed>
