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