At 2026-07-29T11:55:30+0900, Nguyễn Gia Phong wrote: > On 2026-07-28 at 21:38-05:00, G. Branden Robinson wrote: > > At 2026-07-29T10:52:45+0900, Nguyễn Gia Phong wrote: > > > On 2026-07-29 at 00:05+01:00, Richard Purdie wrote: > > > > Just to be clear, in general we (as in Yocto Project/OpenEmbedded) > > > > build things using the standard "make -j X", where X is some level of > > > > parallelism that varies depending on the hardware. > > > > > > One quick note, parallel build seems to be broken > > > since at most groff 1.22.3 according to Guix history. > > > > Do you mean "at least"? Meaning every release back to 1.22.3 and some > > undetermined count of releases before that? > > I used _since at most X_ to mean from version <= X, as the Guix commit > that disable parallel build was at groff 1.22.3.
Okay. That feels somewhat like nonidiomatic English to me, but your
interval notation is crystal clear.
> On 2026-07-28 at 21:38-05:00, G. Branden Robinson wrote:
> > At 2026-07-29T10:52:45+0900, Nguyễn Gia Phong wrote:
> > > I can still reproduce the build failure with the latest groff.
> >
> > Please report the failure mode. I and others have been building
> > groff successfully with `make -j` for many years--for as long as
> > I've been involved, since 2017 at least.
>
> Most interesting, please find attached the build log with parallel
> build for groff commit d6675ad14d71 ("Stop using host's soelim(1).").
>
> The same version could be built successfully without parallel build.
I see the issue(s), and they appear to be the exact ones I've been
discussing with Richard on this list today.
You have 4 more cores than I do (though I often build with 1-2 fewer, to
keep resources free for interactive tasks), and that seems to make a big
difference.
Just dropping to `-j10` or `-j8` should escape the problem unless your
make(1)'s job orchestrator works very differently from mine.[1] I've
built groff concurrently literally thousands of times without ever
hitting this problem.
CXXLD lkbib
CXXLD grn
/tmp/guix-build-groff-1.25.0.rc1.drv-0/source/groff: error: couldn't exec eqn:
No such file or directory
/tmp/guix-build-groff-1.25.0.rc1.drv-0/source/groff: error: couldn't exec tbl:
No such file or directory
CXXLD indxbib
GEN contrib/chem/chem.1
GEN contrib/eqn2graph/eqn2graph.1
GEN contrib/gdiffmk/gdiffmk.1
GEN contrib/glilypond/glilypond.1
GEN contrib/gperl/gperl.1
pdfmom: fatal error: test-groff exited with status 24
make[2]: *** [Makefile:19426: doc/automake.pdf] Error 1
make[2]: *** Deleting file 'doc/automake.pdf'
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/tmp/guix-build-groff-1.25.0.rc1.drv-0/source'
make[1]: *** [Makefile:13192: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-groff-1.25.0.rc1.drv-0/source'
make: *** [Makefile:7616: all] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "16"
"--max-load=16") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 12.2 seconds
command "make" "-j" "16" "--max-load=16" failed with status 2
build process 18 exited with status 256
The decoding procedure for "exited with status 24" is in groff(1).
groff(1):
Exit status
groff exits successfully (with status 0) if either of the options
-h or --help is specified, status 2 if the program cannot interpret
its command‐line arguments, and status 1 if it encounters an error
during operation. Otherwise, groff runs a pipeline to process its
input; if all commands within the pipeline exit successfully, groff
does likewise. If not, groff’s exit status encodes a summary of
problems encountered, setting bit 2 if a command exited with a
failure status, bit 3 if a command was terminated with a signal,
and bit 4 if a command could not be executed. (Thus, if all three
misfortunes befall one’s pipeline, groff exits with status 2^2 +
2^3 + 2^4 = 4+8+16 = 28.) To troubleshoot pipeline problems, re‐
run the groff command with the -V option and break the reported
pipeline down into separate stages, inspecting the exit status of,
and diagnostic messages emitted by, each command.
I hope to have the observed problems resolved for groff 1.25.0.rc2.
Please let me know!
Thanks for the report.
Regards,
Branden
[1] $ make --version | head -n 1
GNU Make 4.3
signature.asc
Description: PGP signature
