This patch is for the benefit of GDB, but as the binutils-gdb
repository shares the contrib/ directory with GCC, it must first be
applied to GCC and then copied back to binutils-gdb.

On Windows, GDB's "make check-parallel" dies when combining the
per-test gdb.sum / gdb.log files into the final combined pair:

 $ find outputs/ -name gdb.sum | wc -l
 2657
 .../dg-extract-results.sh: line 39: /ucrt64/bin/python3: Argument list too long
 make: *** [Makefile:274: check-parallel] Error 2

The GDB testsuite Makefile passes the whole file list to
contrib/dg-extract-results.sh on the command line, expanded from a
find(1) backtick.  As GDB's parallel harness writes one gdb.sum (and
one gdb.log) per test script, on a full run that command line argument
list holds thousands of paths, which overflows the Windows
command-line length limit (~32 KB).

This patch teaches dg-extract-results to read the file list from stdin
(or a file) instead.  After this is merged, GDB's Makefile will be
changed to pipe the find output straight in, so the length limit no
longer applies regardless of the host.

The GDB patch making use of this is here, if you're curious:
  
https://inbox.sourceware.org/gdb-patches/[email protected]/

Pedro Alves (1):
  dg-extract-results.{sh,py}: Optionally read file list from stdin/file

 contrib/dg-extract-results.py | 30 ++++++++++++++++++++++++++----
 contrib/dg-extract-results.sh | 17 +++++++++++++++--
 2 files changed, 41 insertions(+), 6 deletions(-)


base-commit: b3474d5cddda183dcd8d8a2745fba02578816055
-- 
2.54.0

Reply via email to