Xavier L'Heureux 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago
..
Makefile1 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago
Makefile2 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago
Makefile3 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago
README 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago
test01.sh 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago
test02.sh 00c25fc0fd Add the https://www.cons.org/cracauer/sigint.html signals test suite 5 years ago

README

To run these tests, you will have to replace /bin/sh with the shell to
test, the symlink trick doesn't work since we want the shell that make
uses to be the testshell as well.

You may
TESTMAKE=gmake ./test01.sh
to test various makes.

Currently, FreeBSD's make depends on the /bin/sh to exit on SIGINT even
when a foreground job is run to behave right. GNU make works right
with fixed FreeBSD shells.

The following fix makes FreeBSD behave right (IMHO) for the non-compat
case. Note that if you don't pass a `-j` parameter to make, it will be
in compat mode even if you don't pass -B. test it like this
export TESTMAKE=/foo/bar/make -j 1
./test01.sh

diff -c make.original/job.c make.work/job.c
*** make.original/job.c Tue Aug 26 12:06:38 1997
--- make.work/job.c Wed Mar 11 12:49:52 1998
***************
*** 2904,2910 ****
}
}
(void) eunlink(tfile);
! exit(signo);
}

/*
--- 2904,2918 ----
}
}
(void) eunlink(tfile);
!
! /*
! * For some signals, we don't want a direct exit, but to
! * let them resent to ourself, which is done by the calling
! * Routine.
! */
!
! if (signo != SIGINT && signo != SIGTERM && signo != SIGHUP)
! exit(signo);
}

/*