Hi, I compiled bash 3.2 locally. When I set SHELL=/home/waterlan/src/bash-3.2/bash -e -o pipefail everything works as expected. So the problem must be in the AT&T sh. -- Erwin Waterlander
________________________________ From: Erwin Waterlander Sent: Wed 6/20/2007 16:46 To: bug-make@gnu.org Subject: Problems with gmake and pipefail. make doesn't give up. Hi, I have a problem that gnu make doesn't give up after an error in a command in a pipe. I have attached a simple example. I run a command (ls) and the output is piped to command 'tee' to send the output of 'ls' to a file and stdout. Normally the shell returns the exit code of the last command in a pipe. In this case it is tee, which returns 0 even if 'ls' fails. Therefore I set the shell option "-o pipefail" so that the last non-zero return code of a command in a pipe is returned. But gnu-make still continues after a failing 'ls adsfafa' command. When I echo the exit code ($?) you can see that it is non-zero. How can I make that gnu-make stops after the first failing ls command? Here is the output when I type make: echo SHELL=/bin/ksh -e -o pipefail SHELL=/bin/ksh -e -o pipefail ls > ls.log ;echo $? 0 ls adsfafa | tee -i ls.log ls: adsfafa: No such file or directory ls adsfafa | tee -i ls.log ;echo $? ls: adsfafa: No such file or directory 1 ls bbbbb | tee -i ls.log ls: bbbbb: No such file or directory I used shell /bin/ksh, which is on our system "sh (AT&T Labs Research) 1993-12-28". I you want to test this with "bash" you need version 3 to have support for the -o pipefail option. We don't have bash 3 on our system, only bash version 2.05. I tried gnu-make version 3.81 -- Erwin Waterlander
_______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make