Follow-up Comment #16, bug #63307 (project make):

> It appears that make still performs the same build.  But maybe I just got
something wrong in my test.

For example something like this

++++
$ cat makefile
all: one
one: two
        @echo cp $< $@ >&2
        @cp $< $@
two:
        @echo touch $@ >&2
        @touch $@
$ rm one two
$ # this is make-4.3
$ (sleep 2 ; ~/src/make/4.3/make --debug=b)|:
$ ls one two
ls: cannot access 'one': No such file or directory
ls: cannot access 'two': No such file or directory
$ # this is make which handles sigpipe and completes the build
$ (sleep 2 ; ~/src/make/l64/make --debug=b)|:
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
received sigpipe
touch two
received sigpipe
received sigpipe
cp two one
received sigpipe
received sigpipe
received sigpipe
make: write error: stdout
$ ls one two
one  two
----

~/src/make/l64/make is a modified make which has the following sigpipe handler
installed
++++
static void
sigpipe_handler (int sig)
{
    static const char msg[] = "received sigpipe\n";
    write (STDERR_FILENO, msg, sizeof msg);
}
----

i remember you reported that on your system you had to modify make to set
sigpipe to default, otherwise it was ignored.
What about something like
++++
$ cat test.pl
#!/usr/bin/perl

$SIG{'PIPE'} = 'DEFAULT';
system('bash -c "(sleep 4 ; ~/src/make/l64/make --debug=b)|:"');
----


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?63307>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/


Reply via email to