Hi Jim, > ./bootstrap: Copying ._bootmp/gnulib-tests/Makefile.am to > gnulib-tests/gnulib.mk... > -sed: couldn't write 60 items to stdout: Broken pipe > +sed: couldn't write 56 items to stdout: Broken pipe > > I see that it's technically harmless and comes from here: > > sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/$gnulib_mk || { > echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." && > > because using GNU cmp's -s (--silent/ exit-status-only) option > makes it refrain from reading all input, so sed's write evokes SIGPIPE. > > I may take this as encouragement not to use -s, > and just redirect to /dev/null instead.
The purpose of SIGPIPE is to speed up pipes of commands. By piping cmp's result to /dev/null you renounce this optimization. In order to exploit this optimization, without getting bash's error message, all you need is func_reset_sigpipe from gnulib-tool, and (func_reset_sigpipe sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/$gnulib_mk || { echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." && ... } ) Let me add one more comment: 2009-01-01 Bruno Haible <br...@clisp.org> * gnulib-tool (func_reset_sigpipe): Add more comments. *** gnulib-tool.orig 2009-01-01 20:40:45.000000000 +0100 --- gnulib-tool 2009-01-01 20:40:21.000000000 +0100 *************** *** 578,584 **** # will read from this pipe might prematurely exit or close its standard input # descriptor. if test -n "$BASH_VERSION"; then ! # The problem has only been reported with bash. # Note that Solaris sh does not understand "trap - SIGPIPE". func_reset_sigpipe () { --- 578,586 ---- # will read from this pipe might prematurely exit or close its standard input # descriptor. if test -n "$BASH_VERSION"; then ! # The problem has only been reported with bash. Probably it occurs only with ! # bash-3.2. For the reasons, see ! # <http://lists.gnu.org/archive/html/bug-bash/2008-12/msg00050.html>. # Note that Solaris sh does not understand "trap - SIGPIPE". func_reset_sigpipe () {