[PATCH v2 2/6] Makerules: Only install the ABI lib-names header from the top level (BZ 34439)

Adhemerval Zanella <[email protected]> Thu, 6 Aug 2026 14:07:56 -0300
Newsgroups gmane.comp.lib.glibc.alpha
Message-ID <[email protected]>
From: Rudi Heitbaum <[email protected]>

The $(inst_includedir)/%.h install rules exist only where $(headers) is
non-empty, so in a subdir without headers (e.g. csu) the prerequisite
added on install-others-nosubdir has no rule.

It only worked because .NOTPARALLEL made the top level install the header
first, which the parallel subdir recursion no longer guarantees.
---
 Makerules | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Makerules b/Makerules
index cef30974f15..dfe66b7fa6c 100644
--- a/Makerules
+++ b/Makerules
@@ -312,7 +312,12 @@ lib-names-h-abi = gnu/lib-names-$(default-abi).h
 lib-names-stmp-abi = gnu/lib-names-$(default-abi).stmp
 before-compile += $(common-objpfx)$(lib-names-h-abi)
 common-generated += gnu/lib-names.h
+# The $(inst_includedir)/%.h install rules are defined only where $(headers)
+# is non-empty, and with parallel subdir recursion a subdir without headers
+# (e.g. csu) may run before the top level has installed the header.
+ifndef subdir
 install-others-nosubdir: $(inst_includedir)/$(lib-names-h-abi)
+endif
 $(common-objpfx)gnu/lib-names.h:
 	$(make-target-directory)
 	{ \
-- 
2.53.0