From cac5195e9e0418607d123fb9cc52ab1d5a3e03ce Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 24 Jul 2025 13:25:18 +0200 Subject: [PATCH] Reduce spurious rebuilds while running tests (RHEL-95246) Resolves: RHEL-95246 --- glibc-RHEL-95246-1.patch | 26 +++++++++++ glibc-RHEL-95246-2.patch | 98 ++++++++++++++++++++++++++++++++++++++++ glibc.spec | 7 ++- 3 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 glibc-RHEL-95246-1.patch create mode 100644 glibc-RHEL-95246-2.patch diff --git a/glibc-RHEL-95246-1.patch b/glibc-RHEL-95246-1.patch new file mode 100644 index 0000000..0b431c6 --- /dev/null +++ b/glibc-RHEL-95246-1.patch @@ -0,0 +1,26 @@ +commit 062257c5d929e3c9a83a26624a09e57936ac6b5e +Author: Joseph Myers +Date: Thu Dec 5 21:40:57 2024 +0000 + + Fix typo in elf/Makefile:postclean-generated + + The postclean-generated setting in elf/Makefile lists + $(objpfx)/dso-sort-tests-2.generated-makefile twice and + $(objpfx)/dso-sort-tests-1.generated-makefile not at all, which looks + like a typo; fix it to list each once. + + Tested for x86_64. + +diff --git a/elf/Makefile b/elf/Makefile +index 51d52b57876fc5ba..3af1ad44fb789c4c 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1229,7 +1229,7 @@ $(objpfx)$(1).generated-makefile: $(1) + endef + endif + +-postclean-generated += $(objpfx)/dso-sort-tests-2.generated-makefile \ ++postclean-generated += $(objpfx)/dso-sort-tests-1.generated-makefile \ + $(objpfx)/dso-sort-tests-2.generated-makefile + + # Generate from each testcase description file diff --git a/glibc-RHEL-95246-2.patch b/glibc-RHEL-95246-2.patch new file mode 100644 index 0000000..2358e0c --- /dev/null +++ b/glibc-RHEL-95246-2.patch @@ -0,0 +1,98 @@ +commit 2fca4b624bd3ceb8c756b4145c7e96aa032b2b98 +Author: Florian Weimer +Date: Wed Jun 4 17:44:19 2025 +0200 + + Makefile: Avoid $(objpfx)/ in makefiles + + If paths with both $(objpfx)/ and $(objpfx) (which already includes + a trailing slash) appear during the build, this can trigger unexpected + rebuilds, or incorrect concurrent rebuilds. + +Conflicts: + elf/Makefile + (additional generated files upstream) + +diff --git a/elf/Makefile b/elf/Makefile +index 3af1ad44fb789c4c..0d34de3b2c99e5bd 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1229,8 +1229,8 @@ $(objpfx)$(1).generated-makefile: $(1) + endef + endif + +-postclean-generated += $(objpfx)/dso-sort-tests-1.generated-makefile \ +- $(objpfx)/dso-sort-tests-2.generated-makefile ++postclean-generated += $(objpfx)dso-sort-tests-1.generated-makefile \ ++ $(objpfx)dso-sort-tests-2.generated-makefile + + # Generate from each testcase description file + $(eval $(call include_dsosort_tests,dso-sort-tests-1.def)) +@@ -2823,7 +2823,7 @@ $(objpfx)tst-rtld-list-diagnostics.out: tst-rtld-list-diagnostics.py \ + > $@; \ + $(evaluate-test) + +-$(objpfx)tst-rtld-run-static.out: $(objpfx)/ldconfig ++$(objpfx)tst-rtld-run-static.out: $(objpfx)ldconfig + + $(objpfx)tst-dl_find_object.out: \ + $(objpfx)tst-dl_find_object-mod1.so $(objpfx)tst-dl_find_object-mod2.so +diff --git a/nss/Makefile b/nss/Makefile +index 9331b3308c36c45b..37bec502fcff2f72 100644 +--- a/nss/Makefile ++++ b/nss/Makefile +@@ -475,39 +475,39 @@ libof-nss_test1 = extramodules + libof-nss_test2 = extramodules + libof-nss_test_errno = extramodules + libof-nss_test_gai_hv2_canonname = extramodules +-$(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps) ++$(objpfx)libnss_test1.so: $(objpfx)nss_test1.os $(link-libc-deps) + $(build-module) +-$(objpfx)/libnss_test2.so: $(objpfx)nss_test2.os $(link-libc-deps) ++$(objpfx)libnss_test2.so: $(objpfx)nss_test2.os $(link-libc-deps) + $(build-module) +-$(objpfx)/libnss_test_errno.so: $(objpfx)nss_test_errno.os $(link-libc-deps) ++$(objpfx)libnss_test_errno.so: $(objpfx)nss_test_errno.os $(link-libc-deps) + $(build-module) +-$(objpfx)/libnss_test_gai_hv2_canonname.so: \ ++$(objpfx)libnss_test_gai_hv2_canonname.so: \ + $(objpfx)nss_test_gai_hv2_canonname.os $(link-libc-deps) + $(build-module) + $(objpfx)nss_test2.os : nss_test1.c + # Use the nss_files suffix for these objects as well. +-$(objpfx)/libnss_test1.so$(libnss_files.so-version): $(objpfx)/libnss_test1.so ++$(objpfx)libnss_test1.so$(libnss_files.so-version): $(objpfx)libnss_test1.so + $(make-link) +-$(objpfx)/libnss_test2.so$(libnss_files.so-version): $(objpfx)/libnss_test2.so ++$(objpfx)libnss_test2.so$(libnss_files.so-version): $(objpfx)libnss_test2.so + $(make-link) +-$(objpfx)/libnss_test_errno.so$(libnss_files.so-version): \ +- $(objpfx)/libnss_test_errno.so ++$(objpfx)libnss_test_errno.so$(libnss_files.so-version): \ ++ $(objpfx)libnss_test_errno.so + $(make-link) +-$(objpfx)/libnss_test_gai_hv2_canonname.so$(libnss_files.so-version): \ +- $(objpfx)/libnss_test_gai_hv2_canonname.so ++$(objpfx)libnss_test_gai_hv2_canonname.so$(libnss_files.so-version): \ ++ $(objpfx)libnss_test_gai_hv2_canonname.so + $(make-link) + $(patsubst %,$(objpfx)%.out,$(tests) $(tests-container)) : \ +- $(objpfx)/libnss_test1.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test2.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test_errno.so$(libnss_files.so-version) \ +- $(objpfx)/libnss_test_gai_hv2_canonname.so$(libnss_files.so-version) ++ $(objpfx)libnss_test1.so$(libnss_files.so-version) \ ++ $(objpfx)libnss_test2.so$(libnss_files.so-version) \ ++ $(objpfx)libnss_test_errno.so$(libnss_files.so-version) \ ++ $(objpfx)libnss_test_gai_hv2_canonname.so$(libnss_files.so-version) + + ifeq (yes,$(have-thread-library)) + $(objpfx)tst-cancel-getpwuid_r: $(shared-thread-library) + endif + +-$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)/libnss_files.so +-$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)/libnss_files.so ++$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)libnss_files.so ++$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)libnss_files.so + + tst-nss-gai-hv2-canonname-ENV = \ + MALLOC_TRACE=$(objpfx)tst-nss-gai-hv2-canonname.mtrace \ diff --git a/glibc.spec b/glibc.spec index 60672d1..1e500a9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -145,7 +145,7 @@ Version: %{glibcversion} # - It allows using the Release number without the %%dist tag in the dependency # generator to make the generated requires interchangeable between Rawhide # and ELN (.elnYY < .fcXX). -%global baserelease 44 +%global baserelease 45 Release: %{baserelease}%{?dist} # Licenses: @@ -577,6 +577,8 @@ Patch259: glibc-RHEL-82285.patch Patch260: glibc-RHEL-101754-1.patch Patch261: glibc-RHEL-101754-2.patch Patch262: glibc-RHEL-104151.patch +Patch263: glibc-RHEL-95246-1.patch +Patch264: glibc-RHEL-95246-2.patch ############################################################################## # Continued list of core "glibc" package information: @@ -2574,6 +2576,9 @@ update_gconv_modules_cache () %endif %changelog +* Thu Jul 24 2025 Florian Weimer - 2.39-45 +- Reduce spurious rebuilds while running tests (RHEL-95246) + * Wed Jul 23 2025 Florian Weimer - 2.39-44 - iconv: Do not create executable output files (RHEL-104151)