Date: Sat, 1 Oct 2011 13:22:55 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r225894 - in head/sys: kern sys Message-ID: <20111001102255.GC1511@deviant.kiev.zoral.com.ua> In-Reply-To: <201110011018.p91AItDp010921@svn.freebsd.org> References: <201110011018.p91AItDp010921@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--CYvw4a70jcGnzNfi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Oct 01, 2011 at 10:18:55AM +0000, Konstantin Belousov wrote: > Author: kib > Date: Sat Oct 1 10:18:55 2011 > New Revision: 225894 > URL: http://svn.freebsd.org/changeset/base/225894 >=20 > Log: > The sigwait(3) function shall not return EINTR, according to the > POSIX/SUSvN. The sigwait(2) syscall does return EINTR, and libc.so.7 > contains the wrapper sigwait(3) which hides EINTR from callers. The r212405 will be merged to stable/8 shortly. > EINTR return is used by libthr to handle required cancellation point > in the sigwait(3). > =20 > To help the binaries linked against pre-libc.so.7, i.e. RELENG_6 and > earlier, to have right ABI for sigwait(3), transform EINTR return from > sigwait(2) into ERESTART. This leaves the static binaries linked against libc.a from a system with libc.so.N, where N < 7 or N =3D=3D 7 and does not contain r212405, with the broken sigwait(). More intrusive change is to allocate new syscall number for sigwait(2), and change old sigwait(2) to never return EINTR. Then, the static binaries linked on HEAD and stable/9 prior to introduction of the new sigwait syscall numbers will have broken cancellation at sigwait. I had this done, but sort of agreement we reached is to go with less intrusive commit you see. And before you ask, the story started from the real user report of a broken binary-only program that is not prepared to handle EINTR there. --CYvw4a70jcGnzNfi Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk6G6f8ACgkQC3+MBN1Mb4iJ5wCcD2XQJUtLmnDu00Su3uP1Hpud NyoAn3qAcKbac+hPO70tgtGoKBQhwCI3 =N9TP -----END PGP SIGNATURE----- --CYvw4a70jcGnzNfi--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111001102255.GC1511>