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

Attachment: signature.asc
Description: PGP signature

  • ... Richard Purdie
    • ... G. Branden Robinson
      • ... Paul Eggert
        • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
        • ... G. Branden Robinson
          • ... Paul Eggert
            • ... G. Branden Robinson
              • ... Richard Purdie
                • ... Nguyễn Gia Phong via discussion of the GNU roff typesetting system and related software
                • ... G. Branden Robinson
                • ... G. Branden Robinson
                • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
                • ... Richard Purdie
          • ... Bruno Haible via discussion of the GNU roff typesetting system and related software
            • ... Richard Purdie
    • ... G. Branden Robinson
      • ... Richard Purdie
      • ... Dave Kemper
        • ... G. Branden Robinson
          • ... Dave Kemper
      • ... Deri via discussion of the GNU roff typesetting system and related software

Reply via email to