I ran into the following problem under 3.1.6 while doing a recompile; after
stopping (ctrl-Z) the make process, doing an 'fg' would not continue the
make process. Looking at the process tree, the make itself is continued,
but its child process is still stopped.
Another datapoint is that I generally use a shell function to run make; if
I _don't_ use the function, it works properly.
Here's a distilled example:
% cat Makefile
default:
read i
% zsh -f
% echo $$
1106
% gm() {gmake $*}
% gm
read i
^Zzsh: suspended gm
% fg
[1] + continued gm
At this point, hitting return after return doesn't finish the make.
On another terminal:
% /usr/proc/bin/ptree 1106
220 /usr/local/sbin/sshd
21855 /usr/local/sbin/sshd
21858 -zsh
1106 zsh -f
1110 gmake
1111 /bin/sh -c read i
1113 zsh -f
% truss -p 1106
sigsuspend(0xEFFFEB48) (sleeping...)
% truss -p 1110
wait() (sleeping...)
% truss -p 1111
Stopped by signal #24, SIGTSTP, in read()
% truss -p 1113
Stopped by signal #23, SIGSTOP
I found it odd that there's a second zsh process there (1113), and didn't
know what to make of it.
The problem doesn't occur under 3.1.5 (nor does the extra zsh process).
Looking through the code, it was clear things had changed quite a bit, but
I couldn't understand the code well enough to hazard a guess as to what's
causing the problem.
For reference, this is under Solaris 2.6, with zsh-3.1.6 (both with and
without dynamic-loading) as well as with zsh-3.1.6-pws-1. Gmake is 3.71,
but it occurs with solaris /usr/ccs/bin/make as well.
--
Will Day <PGP mail preferred> OIT / O&E / Technical Support
willday@xxxxxxxxxxxxxxxxxx Georgia Tech, Atlanta 30332-0715
-> Opinions expressed are mine alone and do not reflect OIT policy <-
Those who would give up essential Liberty, to purchase a little temporary
Safety, deserve neither Liberty nor Safety.
Benjamin Franklin, Pennsylvania Assembly, Nov. 11, 1755
Attachment:
pgpT32kj0zH44.pgp
Description: PGP signature