Hello.

Steffen Nurpmeso wrote in
 <20221105231048.8w3mb%stef...@sdaoden.eu>:
 |Steffen Nurpmeso wrote in
 | <20221105230326.qijdr%stef...@sdaoden.eu>:
 ||Dmitry Goncharov wrote in
 || <cag+z0ctj_u4x8otmd-yn5-eo4qhzfxhpyca4e0mgqwf4pt1...@mail.gmail.com>:
 |||On Sat, Nov 5, 2022 at 6:24 PM Steffen Nurpmeso <stef...@sdaoden.eu> \
 |||wrote:
 |||>   make[1]: *** Cannot open jobserver /tmp/GMfifo31074: No such file \
 |||>   or directory.  Stop.
 |||
 |||Can you please tell us how to reproduce?

        mkdir /tmp/t
        cd /tmp/t
        cat > makefile <<'EOT'
        .NOTPARALLEL:
        .WAIT: # Luckily BSD make supports specifying this as target, too
        config:
                @{ echo MAKE=\"$(MAKE)\";echo MAKEFLAGS=\"$(MAKEFLAGS)\"; } > 
./au;echo config
        all:
                . ./au;echo all;$${MAKE} internal_
        internal_:
                @echo MAKE=$(MAKE), MAKEFLAGS=$(MAKEFLAGS)
        EOT

If you run this

  #?2|kent:y$ make -j4 config OPT_POP3=y;make all;../x/make-4.4/make -j4 config 
OPT_POP3=y;make all
  config
  . ./au;echo all;${MAKE} internal_
  all
  make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make 
rule.
  make[1]: Entering directory '/tmp/y'
  MAKE=make, MAKEFLAGS=w -j1 -- OPT_POP3=y
  make[1]: Leaving directory '/tmp/y'
  config
  . ./au;echo all;${MAKE} internal_
  all
  make[1]: Entering directory '/tmp/y'
  make[1]: *** Cannot open jobserver /tmp/GMfifo17790: No such file or 
directory.  Stop.
  make[1]: Leaving directory '/tmp/y'
  make: *** [makefile:6: all] Error 2

I mean, _if_ the FIFO does not exist then "the server exited
gracefully", which it would not do upon crash, no?  Just ignore
ENOENT thus?  What do you say?
Btw if it would be me, i would pass that via environment
variables, which makes a natural connection to a server and its
child clients.  I mean, Linux and GNU LibC now make (some aspects
of) environment inaccessible for root aka SUID i think (E?UID
mismatches, issetuid or what-do-i-know, but this hardly is
a problem for GNU make.

I want to point out that this build system works with _all_ known
environments back to Y2K (*BSD, Linux, Solaris, [UnixWare 7.1.4]).

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Reply via email to