Index of /cracauer/download/sh-interrupt/testsuite/makestuff

[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[   ]test02.sh11-Mar-1998 11:57 340  
[   ]test01.sh11-Mar-1998 11:57 278  
[TXT]Makefile210-Mar-1998 14:53 38  
[TXT]Makefile110-Mar-1998 14:53 38  
[TXT]Makefile310-Mar-1998 14:17 13  

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);
  }
  
  /*