<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src, branch v0.9.2</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>add process_vm_readv and process_vm_writev syscall wrappers</title>
<updated>2012-06-24T01:38:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-24T01:38:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=9cf9c39e48342a5d4007824d49b88132d93d83e3'/>
<id>9cf9c39e48342a5d4007824d49b88132d93d83e3</id>
<content type='text'>
based on a patch submitted by Kristian L. &lt;email@thexception.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
based on a patch submitted by Kristian L. &lt;email@thexception.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>proper error handling for fcntl F_GETOWN on modern kernels</title>
<updated>2012-06-21T02:16:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-21T02:16:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=4e8b0938d90793d6e1e200d6b25e6581b72bd4d0'/>
<id>4e8b0938d90793d6e1e200d6b25e6581b72bd4d0</id>
<content type='text'>
on old kernels, there's no way to detect errors; we must assume
negative syscall return values are pgrp ids. but if the F_GETOWN_EX
fcntl works, we can get a reliable answer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
on old kernels, there's no way to detect errors; we must assume
negative syscall return values are pgrp ids. but if the F_GETOWN_EX
fcntl works, we can get a reliable answer.
</pre>
</div>
</content>
</entry>
<entry>
<title>math: fix fma bug on x86 (found by Bruno Haible with gnulib)</title>
<updated>2012-06-20T21:25:58+00:00</updated>
<author>
<name>nsz</name>
<email>nsz@port70.net</email>
</author>
<published>2012-06-20T21:25:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=e5fb6820a42a1f675ba09c15273953e1ace65777'/>
<id>e5fb6820a42a1f675ba09c15273953e1ace65777</id>
<content type='text'>
The long double adjustment was wrong:
The usual check is
  mant_bits &amp; 0x7ff == 0x400
before doing a mant_bits++ or mant_bits-- adjustment since
this is the only case when rounding an inexact ld80 into
double can go wrong. (only in nearest rounding mode)

After such a check the ++ and -- is ok (the mantissa will end
in 0x401 or 0x3ff).

fma is a bit different (we need to add 3 numbers with correct
rounding: hi_xy + lo_xy + z so we should survive two roundings
at different places without precision loss)

The adjustment in fma only checks for zero low bits
  mant_bits &amp; 0x3ff == 0
this way the adjusted value is correct when rounded to
double or *less* precision.
(this is an important piece in the fma puzzle)

Unfortunately in this case the -- is not a correct adjustment
because mant_bits might underflow so further checks are needed
and this was the source of the bug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The long double adjustment was wrong:
The usual check is
  mant_bits &amp; 0x7ff == 0x400
before doing a mant_bits++ or mant_bits-- adjustment since
this is the only case when rounding an inexact ld80 into
double can go wrong. (only in nearest rounding mode)

After such a check the ++ and -- is ok (the mantissa will end
in 0x401 or 0x3ff).

fma is a bit different (we need to add 3 numbers with correct
rounding: hi_xy + lo_xy + z so we should survive two roundings
at different places without precision loss)

The adjustment in fma only checks for zero low bits
  mant_bits &amp; 0x3ff == 0
this way the adjusted value is correct when rounded to
double or *less* precision.
(this is an important piece in the fma puzzle)

Unfortunately in this case the -- is not a correct adjustment
because mant_bits might underflow so further checks are needed
and this was the source of the bug.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix broken wcwidth tables</title>
<updated>2012-06-20T19:22:03+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T19:22:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=ac4fb51dde2f1fe9371a4cb51ff309d4868245ec'/>
<id>ac4fb51dde2f1fe9371a4cb51ff309d4868245ec</id>
<content type='text'>
unicode char data has both "W" and "F" wide types and the old table
only included the "W" ones. this omitted U+3000 (ideographic space)
and all the wide-ascii, etc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
unicode char data has both "W" and "F" wide types and the old table
only included the "W" ones. this omitted U+3000 (ideographic space)
and all the wide-ascii, etc.
</pre>
</div>
</content>
</entry>
<entry>
<title>support ld80 pseudo-denormal invalid bit patterns; treat them as nan</title>
<updated>2012-06-20T19:15:10+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T19:15:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=fad231b9609470e4c51b29b6bcb9abd23b7e9346'/>
<id>fad231b9609470e4c51b29b6bcb9abd23b7e9346</id>
<content type='text'>
this is silly, but it makes apps that read binary junk and interpret
it as ld80 "safer", and it gets gnulib to stop replacing printf...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is silly, but it makes apps that read binary junk and interpret
it as ld80 "safer", and it gets gnulib to stop replacing printf...
</pre>
</div>
</content>
</entry>
<entry>
<title>fix ptsname_r to conform to the upcoming posix requirements</title>
<updated>2012-06-20T19:11:27+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T19:11:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=c21a19d5a559cbd39963b89547900d24624f1fad'/>
<id>c21a19d5a559cbd39963b89547900d24624f1fad</id>
<content type='text'>
it should return the error code rather than 0/-1 and setting errno.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
it should return the error code rather than 0/-1 and setting errno.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix fwrite return value when full write does not succeed</title>
<updated>2012-06-20T19:04:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T19:04:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=cea106fb8976d04b916953469439bc58fa111266'/>
<id>cea106fb8976d04b916953469439bc58fa111266</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>avoid cancellation in pclose</title>
<updated>2012-06-20T18:50:29+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T18:50:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1af8c255040b3e1ba4913fd935d117490bfe8774'/>
<id>1af8c255040b3e1ba4913fd935d117490bfe8774</id>
<content type='text'>
at the point pclose might receive and act on cancellation, it has
already invalidated the FILE passed to it. thus, per musl's QOI
guarantees about cancellation and resource allocation/deallocation,
it's not a candidate for cancellation.

if it were required to be a cancellation point by posix, we would have
to switch the order of deallocation, but somehow still close the pipe
in order to trigger the child process to exit. i looked into doing
this, but the logic gets ugly, and i'm not sure the semantics are
conformant, so i'd rather just leave it alone unless there's a need to
change it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
at the point pclose might receive and act on cancellation, it has
already invalidated the FILE passed to it. thus, per musl's QOI
guarantees about cancellation and resource allocation/deallocation,
it's not a candidate for cancellation.

if it were required to be a cancellation point by posix, we would have
to switch the order of deallocation, but somehow still close the pipe
in order to trigger the child process to exit. i looked into doing
this, but the logic gets ugly, and i'm not sure the semantics are
conformant, so i'd rather just leave it alone unless there's a need to
change it.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix invalid memory access in pclose</title>
<updated>2012-06-20T18:47:34+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T18:47:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=9799560f79d37fb53d821b2f0b591a6ff260ebc3'/>
<id>9799560f79d37fb53d821b2f0b591a6ff260ebc3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>make popen cancellation-safe</title>
<updated>2012-06-20T18:39:50+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T18:39:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=9c21f4342c787e04a9e31ad8a1d87a65c89968ca'/>
<id>9c21f4342c787e04a9e31ad8a1d87a65c89968ca</id>
<content type='text'>
close was the only cancellation point called from popen, but it left
popen with major resource leaks if any call to close got cancelled.
the easiest, cheapest fix is just to use a non-cancellable close
function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
close was the only cancellation point called from popen, but it left
popen with major resource leaks if any call to close got cancelled.
the easiest, cheapest fix is just to use a non-cancellable close
function.
</pre>
</div>
</content>
</entry>
</feed>
