Skip site navigation (1)Skip section navigation (2)
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>