[glibc] scripts/gen-sorted.awk: Also emit the subdirectory dependency edges

Adhemerval Zanella via Glibc-cvs <[email protected]> Fri, 3 Jul 2026 23:33:54 +0000 (GMT)
Newsgroups gmane.comp.lib.glibc.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e80612e5969d619a7f948c783d0a66b3dbe17e5c

commit e80612e5969d619a7f948c783d0a66b3dbe17e5c
Author: Adhemerval Zanella <[email protected]>
Date:   Wed Jun 10 16:25:50 2026 -0300

    scripts/gen-sorted.awk: Also emit the subdirectory dependency edges
    
    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 <[email protected]>

Diff:
---
 scripts/gen-sorted.awk | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/gen-sorted.awk b/scripts/gen-sorted.awk
index f207f9ace1..9b74a5e315 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"
 }