[PATCH v2 1/6] scripts/gen-sorted.awk: Also emit the subdirectory dependency edges
Sam James
sam@gentoo.org
Fri Jul 3 10:49:21 GMT 2026
Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
> gen-sorted.awk collects the inter-subdirectory dependencies from the
> Depend files and the sysdeps Subdirs 'first' directives, but only uses
> them to compute the flattened sorted-subdirs list.
>
> This change also emit the raw edges as subdir-deps-<dir> make variables
> so the parent makefile can express the same ordering as explicit
> dependencies between the per-subdirectory recursion targets and run
> independent subdirectories in parallel.
>
> For instance, on x86_64-linux-gnu build the 'sysd-sorted' now shows:
>
> [...]
> subdir-deps-assert += iconvdata
> subdir-deps-assert += localedata
> subdir-deps-catgets += intl
> subdir-deps-debug += localedata
> subdir-deps-iconvdata += iconv
> subdir-deps-iconvdata += localedata
> subdir-deps-intl += iconvdata
> subdir-deps-intl += localedata
> subdir-deps-libio += localedata
> subdir-deps-localedata += locale
> [...]
> ---
Reviewed-by: Sam James <sam@gentoo.org>
> scripts/gen-sorted.awk | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/scripts/gen-sorted.awk b/scripts/gen-sorted.awk
> index f207f9ace12..9b74a5e3151 100755
> --- a/scripts/gen-sorted.awk
> +++ b/scripts/gen-sorted.awk
> @@ -108,5 +108,11 @@ END {
> }
> printf "%s\n", saw_elf ? " elf" : "";
>
> + # Also emit the raw dependency edges so the parent makefile can
> + # parallelize the subdirectory recursion while preserving the
> + # relative ordering the Depend files request.
> + for (i = 0; i < dnt; ++i)
> + printf "subdir-deps-%s += %s\n", from[i], to[i];
> +
> print "sysd-sorted-done := t"
> }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 418 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20260703/3cf29783/attachment.sig>
More information about the Libc-alpha
mailing list