Re: [PATCH v2 2/6] Makefile: Run the subdirectory recursion in parallel

"H.J. Lu" <[email protected]>
Newsgroups gmane.comp.lib.glibc.alpha
Message-ID <CAMe9rOpKF6_V5A0n_BACHCtKqQMCqrZ04N4kbt+qd+P0b4Xnyg@mail.gmail.com>
On Fri, Jul 3, 2026 at 11:27 PM Adhemerval Zanella Netto
<[email protected]> wrote:
>
>
>
> On 03/07/26 07:57, Sam James wrote:
> > Adhemerval Zanella <[email protected]> writes:
> >
> >>
> >>  .PHONY: $(+subdir_targets) $(all-subdirs-targets)
> >> +
> >> +# Encode the topological ordering computed by scripts/gen-sorted.awk as
> >> +# explicit dependencies between the per-subdirectory targets, so that
> >> +# independent subdirectories build concurrently:
> >
> > I suggest: ". In summary:"
> >
> > It makes clear that there's independent comments below about the same thing.
>
> Ack.
>
> >> +# Building and running a subdirectory's tests are fused in its sub-make,
> >> +# and run-built-tests is fixed for a make instance, so the only way to
> >> +# build every test program with the recursion fully parallel while the
> >> +# run still honors the per-subdirectory .NOTPARALLEL (nptl/htl/rt) and the
> >> +# run-time ordering is to use two passes.  At the top level, 'make check'
> >> +# therefore builds the test programs (run-built-tests=no, recursion fully
> >> +# parallel) and then runs them (run-built-tests=yes).  'make tests' and a
> >> +# subdirectory's own 'check' stay single pass.
> >
> > Nit: single-pass.
>
> Ack.
>
> >> index 5bad0333a5a..0e5a8b8f689 100644
> >> --- a/htl/Makefile
> >> +++ b/htl/Makefile
> >> @@ -257,3 +257,10 @@ $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(srcdir)/libpthread_sy
> >>  else
> >>  $(addprefix $(objpfx),$(tests) $(test-srcs)): $(srcdir)/libpthread_syms.a $(objpfx)libpthread.a
> >>  endif
> >> +
> >> +# The tests here better do not run in parallel.
> >
> > Say something like: "Like rt, these tests prefer to be run serially."
>
> Ack.
>
> >
> >> +ifeq ($(run-built-tests),yes)
> >> +ifneq ($(filter %tests,$(MAKECMDGOALS)),)
> >> +.NOTPARALLEL:
> >> +endif
> >> +endif
> >> diff --git a/rt/Makefile b/rt/Makefile
> >> index 39a3e5620b3..24e43a87599 100644
> >> --- a/rt/Makefile
> >> +++ b/rt/Makefile
> >> @@ -109,3 +109,11 @@ LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
> >>  $(objpfx)librt.so: $(shared-thread-library)
> >>
> >>  tst-mqueue7-ARGS = -- $(host-test-program-cmd)
> >> +
> >> +# The timer and message-queue tests here are timing-sensitive and better
> >> +# do not run in parallel.
> >> +ifeq ($(run-built-tests),yes)
> >> +ifneq ($(filter %tests,$(MAKECMDGOALS)),)
> >> +.NOTPARALLEL:
> >> +endif
> >> +endif
> >
> > Reviewed-by: Sam James <[email protected]>
> >
> > The changes look good. Also, when testing, thus far I only had one small
> > issue:
> > https://inbox.sourceware.org/libc-alpha/822344f7cd03b8f199d0e612868221d13d14300d.1783035357.git.sam@gentoo.org/
> Thanks for the review, I was about to check on this but I noticed Collin
> already reviewed it.

This caused:

https://sourceware.org/bugzilla/show_bug.cgi?id=34355

-- 
H.J.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.