Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Mar 1998 02:13:11 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, cracauer@cons.org
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: make/SIGINT (Re: cvs commit: src/bin/sh jobs.c)
Message-ID:  <199803131513.CAA27634@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>The appended fix seems to treat signals right for compat mode,
>too. I'll do some make world's with patched make and sh over the
>weekend and look for further trouble.

I changed the handling of SIGQUIT and fixed the style bugs:

diff -c2 compat.c~ compat.c
*** compat.c~	Mon Feb 24 01:43:20 1997
--- compat.c	Sat Mar 14 01:53:45 1998
***************
*** 126,130 ****
  
      }
!     exit (signo);
  }
  
--- 126,133 ----
  
      }
!     if (signo == SIGQUIT)
! 	exit(signo);
!     (void) signal(signo, SIG_DFL);
!     (void) kill(getpid(), signo);
  }
  
diff -c2 job.c~ job.c
*** job.c~	Mon Feb 24 01:43:21 1997
--- job.c	Fri Feb 13 05:06:16 1998
***************
*** 2905,2909 ****
      }
      (void) eunlink(tfile);
-     exit(signo);
  }
  
--- 2905,2908 ----

SIGQUIT handling is still buggy.  For the simple Makefile:
---
foo:
	sleep 1000
---
killing make with SIGQUIT gives the following behaviours:

1. make:      exits with status 3 (SIGQUIT) (per the above change).
2. make -j4:  hangs (broken).
3: gmake:     exits with status 1.
3: gmake -j4: exits with status 1.

POSIX.2 only requires a nonzero exit status for SIGQUIT.  We've just
fixed the handling of SIGINT, SIGTERM and SIGHUP.

Bruce

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803131513.CAA27634>