pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/55539 (pkgsrc graphviz-2.44.1 fails too build - failure to expand make variable?)



The following reply was made to PR pkg/55539; it has been noted by GNATS.

From: Roland Illig <roland.illig%gmx.de@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: pkg/55539 (pkgsrc graphviz-2.44.1 fails too build - failure to
 expand make variable?)
Date: Thu, 6 Aug 2020 09:24:34 +0200

 Thanks for the detailed information so far.
 
 I've built usr.bin/make with the exact same ident strings, and I could
 reproduce it on NetBSD 8.0 x86_64.  For the record, here is what I did.
 
 I checked out usr.bin/make:
 cvs up -D2020.08.02.20.13.06 -C
 
 I added to usr.bin/make/Makefile:
 CPPFLAGS+= -D_PATH_DEFSYSPATH='"/home/rillig/pkg/share/mk"'
 
 I built make:
 make -s cleandir
 make -s make test
 
 I built graphviz (with my default of MAKE_JOBS=7):
 cd ~/proj/pkgsrc/graphics/graphviz
 ~/proj/src/usr.bin/make/make MAKE_FLAGS=-dv 2>&1 | tee out-parallel
 
 This build succeeded.
 
 I then built graphviz again in sequential mode:
 
 env MAKE_JOBS_SAFE=no \
 ~/proj/src/usr.bin/make/make MAKE_FLAGS=-dv 2>&1 \
 | tee out-sequential
 
 This build stopped when groff tried to read a document from stdin to
 produce cdt.3.ps, just as in the original report:
 
     ...
       CCLD     libcdt_C.la
     cdt.3.ps:> = ./cdt.3
     cdt.3.ps:? = ./cdt.3
     groff -Tps -man  >cdt.3.ps
     ^C
 
 Here, the document name from $< is missing, and that's no surprise
 because there is no variable assignment to $<, only to $>.  The relevant
 lines from Makefile.am are:
 
     cdt.3.ps: $(srcdir)/cdt.3
             @GROFF@ -Tps -man $< >$@
 
 The variable $< is called .IMPSRC and only applies to .SUFFIXES rules
 like these:
 
     .3.ps:
             @GROFF@ -Tps -man $< >$@
 
 Therefore the behavior in sequential mode makes sense to me.
 
 There's something strange going on here though.  The parallel build had
 the exact same command lines but continued even though there was no
 input on stdin.  This might be an unrelated bug.  At least I didn't
 modify any of that code recently, I modified almost exclusively the
 variable parsing and handling.
 
 In parallel mode, for the target cdt.3.ps, the variables @ * > and ? are
 set, but not <, just like in sequential mode.
 
 In parallel mode, cdt.3.ps ends up as an empty file, which is much worse
 than a build that gets stuck reading from stdin.
 
 I could reproduce the missing argument to groff with bmake from pkgsrc,
 the version from 2020-05-24.  Therefore, this does not seem like a
 recent regression to me.
 
 But on the way to this bug I found an actual difference between bmake
 from 2020-05-24 and usr.bin/make from 2020-08-02: The package
 graphics/gts builds fine using bmake, but fails with "libtool: cannot
 find tag" using usr.bin/make.  I'll investigate this.
 


Home | Main Index | Thread Index | Old Index