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.