<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sys_common, branch 1.26.1</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.26.1</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.26.1'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-03-27T00:39:11+00:00</updated>
<entry>
<title>Implement `shrink_to` method on collections</title>
<updated>2018-03-27T00:39:11+00:00</updated>
<author>
<name>Diggory Blake</name>
<email>diggsey@googlemail.com</email>
</author>
<published>2018-03-26T22:24:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=04f6692aaf78809c041ba6145bde2dcbeec9725e'/>
<id>urn:sha1:04f6692aaf78809c041ba6145bde2dcbeec9725e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #48624 - bdrewery:freebsd-posix-spawn, r=alexcrichton</title>
<updated>2018-03-23T17:16:07+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2018-03-23T14:27:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=16eeb10bee51286d616f0d5de9f32b9b48aa4dc3'/>
<id>urn:sha1:16eeb10bee51286d616f0d5de9f32b9b48aa4dc3</id>
<content type='text'>
Command: Support posix_spawn() on FreeBSD/OSX/GNU Linux
</content>
</entry>
<entry>
<title>Deprecate the AsciiExt trait in favor of inherent methods</title>
<updated>2018-03-21T16:54:33+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-03-17T11:15:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c09b9f937250db0f51b705a3110f8cffdad083bb'/>
<id>urn:sha1:c09b9f937250db0f51b705a3110f8cffdad083bb</id>
<content type='text'>
The trait and some of its methods are stable and will remain.
Some of the newer methods are unstable and can be removed later.

Fixes https://github.com/rust-lang/rust/issues/39658
</content>
</entry>
<entry>
<title>Simplify PATH key comparison</title>
<updated>2018-03-19T23:15:26+00:00</updated>
<author>
<name>Bryan Drewery</name>
<email>bryan@shatow.net</email>
</author>
<published>2018-03-19T23:15:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8e0faf79c0859f22d4e11268f272247a6ef73709'/>
<id>urn:sha1:8e0faf79c0859f22d4e11268f272247a6ef73709</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't use posix_spawn() if PATH was modified in the environment.</title>
<updated>2018-03-19T22:40:09+00:00</updated>
<author>
<name>Bryan Drewery</name>
<email>bryan@shatow.net</email>
</author>
<published>2018-03-19T22:40:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6212904dd800864ca20ede8690fc827a1169fa26'/>
<id>urn:sha1:6212904dd800864ca20ede8690fc827a1169fa26</id>
<content type='text'>
The expected behavior is that the environment's PATH should be used
to find the process.  posix_spawn() could be used if we iterated
PATH to search for the binary to execute.  For now just skip
posix_spawn() if PATH is modified.
</content>
</entry>
<entry>
<title>while let all the things</title>
<updated>2018-03-05T18:58:54+00:00</updated>
<author>
<name>leonardo.yvens</name>
<email>leoyvens@gmail.com</email>
</author>
<published>2018-03-05T18:58:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2e7e68b76223b9f14b54852584a5334f33a8798d'/>
<id>urn:sha1:2e7e68b76223b9f14b54852584a5334f33a8798d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix more typos found by codespell.</title>
<updated>2018-02-17T16:38:49+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2018-02-16T14:56:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4452446292086d9c92ea709eea61a31cedb55e22'/>
<id>urn:sha1:4452446292086d9c92ea709eea61a31cedb55e22</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use a range to identify SIGSEGV in stack guards</title>
<updated>2018-01-31T19:41:29+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2018-01-31T19:41:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=55b54a999bcdb0b1c1f42b6e1ae670beb0717086'/>
<id>urn:sha1:55b54a999bcdb0b1c1f42b6e1ae670beb0717086</id>
<content type='text'>
Previously, the `guard::init()` and `guard::current()` functions were
returning a `usize` address representing the top of the stack guard,
respectively for the main thread and for spawned threads.  The `SIGSEGV`
handler on `unix` targets checked if a fault was within one page below
that address, if so reporting it as a stack overflow.

Now `unix` targets report a `Range&lt;usize&gt;` representing the guard
memory, so it can cover arbitrary guard sizes.  Non-`unix` targets which
always return `None` for guards now do so with `Option&lt;!&gt;`, so they
don't pay any overhead.

For `linux-gnu` in particular, the previous guard upper-bound was
`stackaddr + guardsize`, as the protected memory was *inside* the stack.
This was a glibc bug, and starting from 2.27 they are moving the guard
*past* the end of the stack.  However, there's no simple way for us to
know where the guard page actually lies, so now we declare it as the
whole range of `stackaddr ± guardsize`, and any fault therein will be
called a stack overflow.  This fixes #47863.
</content>
</entry>
<entry>
<title>Print inlined functions on Windows</title>
<updated>2018-01-26T03:49:54+00:00</updated>
<author>
<name>John Kåre Alsaker</name>
<email>john.kare.alsaker@gmail.com</email>
</author>
<published>2017-11-15T17:01:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=634f8cc06a88eb978c5e52390014740c4bab1e33'/>
<id>urn:sha1:634f8cc06a88eb978c5e52390014740c4bab1e33</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Only link res_init() on GNU/*nix</title>
<updated>2018-01-15T19:30:44+00:00</updated>
<author>
<name>Ryan Cumming</name>
<email>etaoins@gmail.com</email>
</author>
<published>2018-01-10T09:13:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=090a968fe7680cce0d3aa8fde25a5dc48948e43e'/>
<id>urn:sha1:090a968fe7680cce0d3aa8fde25a5dc48948e43e</id>
<content type='text'>
To workaround a bug in glibc &lt;= 2.26 lookup_host() calls res_init()
based on the glibc version detected at runtime. While this avoids
calling res_init() on platforms where it's not required we will still
end up linking against the symbol.

This causes an issue on macOS where res_init() is implemented in a
separate library (libresolv.9.dylib) from the main libc. While this is
harmless for standalone programs it becomes a problem if Rust code is
statically linked against another program. If the linked program doesn't
already specify -lresolv it will cause the link to fail. This is
captured in issue #46797

Fix this by hooking in to the glibc workaround in `cvt_gai` and only
activating it for the "gnu" environment on Unix This should include all
glibc platforms while excluding musl, windows-gnu, macOS, FreeBSD, etc.

This has the side benefit of removing the #[cfg] in sys_common; only
unix.rs has code related to the workaround now.
</content>
</entry>
</feed>
