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.

Reply via email to