Path: utzoo!yunexus!geac!syntron!jtsv16!uunet!mcvax!unido!fauern!faui44!immd3.informatik.uni-erlangen.de!rtregn From: rtregn@immd3.informatik.uni-erlangen.de (Robert Regn) Newsgroups: comp.os.minix Subject: Re: SIGINT problems... Summary: The bug is in cc.c and asld Keywords: process groups, make, background Message-ID: <700@faui44.informatik.uni-erlangen.de> Date: 24 Oct 88 13:38:36 GMT Article-I.D.: faui44.700 References: <2573@sultra.UUCP> Organization: IMMD III, University of Erlangen, W-Germany Lines: 28 In <2573@sultra.UUCP> Der Tynan writes ... from the shell, if you put 'make' into the background (make &), and then run some other command (such as 'ls'), then type your SIGINT character (DEL in most cases), not only will the 'ls' stop, but so too will the make process. The reason for this is the line in cc.c : signal (SIGINT, trapcc); It reconnects an ignored signal. Then in the childs of cc the action to the SIGINT is resetted by the kernel (because the adress of trapcc makes no sense for another program). To eliminate the bug this line must canged to (for example): if (signal (SIGINT, SIG_IGN) != SIG_IGN) signal (SIGINT, trapcc); Similary for SIGQUIT. So nothing is changed (to bad) if ignore is already adjusted, and cc runs over cpp, cem, opt, cg well even if DEL is typed UNTIL to asld. I think asld.c contains same line for removing his temp file ! The fix to cc.c should included in the 1.3c Version. More difficult is the fix for asld. Here we are thrown upon a new binary version from ast. Robert Regn rtregn.faui32.uucp