README 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. To run these tests, you will have to replace /bin/sh with the shell to
  2. test, the symlink trick doesn't work since we want the shell that make
  3. uses to be the testshell as well.
  4. You may
  5. TESTMAKE=gmake ./test01.sh
  6. to test various makes.
  7. Currently, FreeBSD's make depends on the /bin/sh to exit on SIGINT even
  8. when a foreground job is run to behave right. GNU make works right
  9. with fixed FreeBSD shells.
  10. The following fix makes FreeBSD behave right (IMHO) for the non-compat
  11. case. Note that if you don't pass a `-j` parameter to make, it will be
  12. in compat mode even if you don't pass -B. test it like this
  13. export TESTMAKE=/foo/bar/make -j 1
  14. ./test01.sh
  15. diff -c make.original/job.c make.work/job.c
  16. *** make.original/job.c Tue Aug 26 12:06:38 1997
  17. --- make.work/job.c Wed Mar 11 12:49:52 1998
  18. ***************
  19. *** 2904,2910 ****
  20. }
  21. }
  22. (void) eunlink(tfile);
  23. ! exit(signo);
  24. }
  25. /*
  26. --- 2904,2918 ----
  27. }
  28. }
  29. (void) eunlink(tfile);
  30. !
  31. ! /*
  32. ! * For some signals, we don't want a direct exit, but to
  33. ! * let them resent to ourself, which is done by the calling
  34. ! * Routine.
  35. ! */
  36. !
  37. ! if (signo != SIGINT && signo != SIGTERM && signo != SIGHUP)
  38. ! exit(signo);
  39. }
  40. /*