On 8/4/2026 10:51 AM, Jeffrey Law wrote:


On 7/21/2026 9:28 AM, [email protected] wrote:
From: Kyrylo Tkachov <[email protected]>

The stage 2 and stage 3 object comparison runs one command per object in a serial shell loop.  Everything after it waits while an otherwise idle machine
compares thousands of objects.

Generate one make target per object and run the comparisons through $(MAKE), so they share the original jobserver.  Keep the generated makefile and result shards invocation-specific, clean them on normal and signal exits, and sort the shards before creating the traditional .bad_compare diagnostic.  Files in the exclusion list still only warn.  Comparator statuses other than zero or
one now report an operational error instead of being treated as equal.

The tail-based fallback for cmp implementations without byte skipping used fixed temporary names.  Give those files process-specific names, clean them
with a trap, and preserve the same status contract for tail failures and
signals.

On highly parallel AArch64 and x86_64 systems this reduces comparison wall
time by about 95%.

ChangeLog:

    * Makefile.tpl ([+compare-target+]): Run object comparisons through an     invocation-specific parallel sub-make.  Collect sorted failure shards
    and clean temporary state on exit.
    * Makefile.in: Regenerate.
    * configure: Regenerate.

config/ChangeLog:

    * acx.m4 (ACX_PROG_CMP_IGNORE_INITIAL): Use process-specific temporary
    files and clean them on exit.  Diagnose tail failures as errors.

Signed-off-by: Kyrylo Tkachov <[email protected]>
Given the utility of the bootstrap comparison test, I hope you you tested with a forced failure to ensure it'll trigger failures properly.

Assuming you've done a force failure test, OK.
BTW, I think this cut about 2hrs off the bootstrap time for hppa-linux-gnu on my 40c systems.  Similarly for alpha.  I suspect the others will show similarly sized gains (m68k, loongarch, sh4, etc).  Essentially everything where I'm using QEMU user mode emulation to provide an emulated native environment suitable for bootstrapping and regression testing I would expect to see comparable gains.  It's a full 10%+ improvement in the total cycle time.

Jeff

Reply via email to