From 7c82c403908b45ec83cbe759640c26bda6b4f9e4 Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Wed, 9 Jul 2025 09:58:56 +0200 Subject: [PATCH] Reduce spurious rebuilds while running tests (RHEL-95247) Resolves: RHEL-95247 --- glibc-RHEL-95247.patch | 103 +++++++++++++++++++++++++++++++++++++++++ glibc.spec | 6 ++- 2 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 glibc-RHEL-95247.patch diff --git a/glibc-RHEL-95247.patch b/glibc-RHEL-95247.patch new file mode 100644 index 0000000..bd4100a --- /dev/null +++ b/glibc-RHEL-95247.patch @@ -0,0 +1,103 @@ +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: Adjust for missing test in context lines. + +diff --git a/elf/Makefile b/elf/Makefile +index 3a50ca90366aec94..86d4dd9960088ee1 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1165,11 +1165,11 @@ $(objpfx)$(1).generated-makefile: $(objpfx)$(1) + endef + endif + +-postclean-generated += $(objpfx)/dso-sort-tests-1.generated-makefile \ +- $(objpfx)/dso-sort-tests-2.generated-makefile \ +- $(objpfx)/dso-sort-tests-all2.generated-makefile \ +- $(objpfx)/dso-sort-tests-all3.generated-makefile \ +- $(objpfx)/dso-sort-tests-all4.generated-makefile ++postclean-generated += $(objpfx)dso-sort-tests-1.generated-makefile \ ++ $(objpfx)dso-sort-tests-2.generated-makefile \ ++ $(objpfx)dso-sort-tests-all2.generated-makefile \ ++ $(objpfx)dso-sort-tests-all3.generated-makefile \ ++ $(objpfx)dso-sort-tests-all4.generated-makefile + + # Generate from each testcase description file + ifeq (yes,$(have-tunables)) +@@ -2757,7 +2757,7 @@ $(objpfx)tst-ro-dynamic-mod.so: $(objpfx)tst-ro-dynamic-mod.os \ + -Wl,--script=tst-ro-dynamic-mod.map \ + $(objpfx)tst-ro-dynamic-mod.os + +-$(objpfx)tst-rtld-run-static.out: $(objpfx)/ldconfig ++$(objpfx)tst-rtld-run-static.out: $(objpfx)ldconfig + + $(objpfx)tst-tls-allocation-failure-static-patched: \ + $(objpfx)tst-tls-allocation-failure-static $(..)scripts/tst-elf-edit.py +diff --git a/nss/Makefile b/nss/Makefile +index 62a68880198c243c..dbdba5bf815136ef 100644 +--- a/nss/Makefile ++++ b/nss/Makefile +@@ -191,39 +191,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 fc6fbda..a994311 100644 --- a/glibc.spec +++ b/glibc.spec @@ -157,7 +157,7 @@ end \ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 212%{?dist} +Release: 213%{?dist} # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -1290,6 +1290,7 @@ Patch980: glibc-RHEL-47403-8.patch Patch981: glibc-RHEL-47403-9.patch Patch982: glibc-RHEL-47403-10.patch Patch983: glibc-RHEL-47403-11.patch +Patch984: glibc-RHEL-95247.patch ############################################################################## # Continued list of core "glibc" package information: @@ -3287,6 +3288,9 @@ update_gconv_modules_cache () %endif %changelog +* Wed Jul 09 2025 Arjun Shankar - 2.34-213 +- Reduce spurious rebuilds while running tests (RHEL-95247) + * Tue Jul 08 2025 Frédéric Bérat - 2.34-212 - Prevented `ld.so` from asserting and crashing during audited library loads. (RHEL-47403)