On Thu, Nov 14, 2019 at 05:30:34PM +0200, Lauri Tirkkonen wrote:
> > > @@ -347,10 +360,9 @@ print_errors(void)
> > > static void
> > > setup_signal(int sig)
> > > {
> > > - if (signal(sig, SIG_IGN) != SIG_IGN) {
> > > - (void)signal(sig, notice_signal);
> > > - sigaddset(&sigset, sig);
> > > - }
> > > + sigaction(sig, &(struct sigaction) { .sa_handler = notice_signal },
> > > + NULL);
> > > + sigaddset(&sigset, sig);
> > > }
> > Why did you change this ? this is gratuitous.
>
> Actually, it's not gratuitous, but it's subtle. signal() enables
> SA_RESTART, but we depend on EINTR returns in a couple places, so I did
> this. I should've mentioned this originally, sorry.
Err, thinking some more. You can't do that. This affects ALL of make's code
and not just this file. Some parts are belt-and-suspenders type and include
checks for EINTR, but NOWHERE near every part.
In particular, you *lose* stdio.h entirely.