diff --git a/0001-Do-not-probe-to-find-main-data-root-start-if-dl_iter.patch b/0001-Do-not-probe-to-find-main-data-root-start-if-dl_iter.patch new file mode 100644 index 0000000..908c7d7 --- /dev/null +++ b/0001-Do-not-probe-to-find-main-data-root-start-if-dl_iter.patch @@ -0,0 +1,44 @@ +From b2875e6e5262785056d49ad2f94bfed295977b2d Mon Sep 17 00:00:00 2001 +From: Ivan Maidanski +Date: Mon, 13 Jun 2022 12:28:56 -0400 +Subject: [PATCH] Do not probe to find main data root start if dl_iterate_phdr + exists + +Issue #432 (bdwgc). + +This avoids invocation of GC_find_limit to get GC_data_start value in +case of GC_register_data_segments is not called. + +* misc.c [SEARCH_FOR_DATA_START] (GC_init): Call +GC_init_linux_data_start() only if GC_REGISTER_MAIN_STATIC_DATA(); +move GC_init_linux_data_start() call down (to be close but precede +GC_dirty_init call); add comment. +--- + misc.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/misc.c b/misc.c +index 0869e01..02dc430 100644 +--- a/misc.c ++++ b/misc.c +@@ -1186,11 +1186,12 @@ GC_API void GC_CALL GC_init(void) + /* entirety as part of the root set. This will grow them to */ + /* maximum size, and is generally not desirable. */ + # endif +-# if defined(SEARCH_FOR_DATA_START) +- GC_init_linux_data_start(); +-# endif +-# if defined(NETBSD) && defined(__ELF__) +- GC_init_netbsd_elf(); ++# ifdef SEARCH_FOR_DATA_START ++ /* For MPROTECT_VDB, the temporary fault handler should be */ ++ /* installed first, before the write fault one in GC_dirty_init. */ ++ if (GC_REGISTER_MAIN_STATIC_DATA()) GC_init_linux_data_start(); ++# elif defined(NETBSD) && defined(__ELF__) ++ if (GC_REGISTER_MAIN_STATIC_DATA()) GC_init_netbsd_elf(); + # endif + # if !defined(THREADS) || defined(GC_PTHREADS) \ + || defined(NN_PLATFORM_CTR) || defined(NINTENDO_SWITCH) \ +-- +2.36.0 + diff --git a/gc.spec b/gc.spec index 861da2d..8db5ab6 100644 --- a/gc.spec +++ b/gc.spec @@ -1,7 +1,7 @@ Summary: Garbage collector for C and C++ Name: gc Version: 8.0.6 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD URL: https://www.hboehm.info/gc/ @@ -10,6 +10,7 @@ Source0: https://github.com/ivmai/bdwgc/releases/download/v%{version}/gc-%{versi ## upstreamable patches ## upstream patches +Patch0001: 0001-Do-not-probe-to-find-main-data-root-start-if-dl_iter.patch ## downstream patches # https://bugzilla.redhat.com/show_bug.cgi?id=1551671 @@ -103,6 +104,11 @@ make check %{?arch_ignore} %changelog +* Thu Jun 16 2022 Alexandra Hájková - 8.0.6-3 +- backport upstream "Do not probe to find main data root start if + dl_iterate_phdr exists" +- https://bugzilla.redhat.com/show_bug.cgi?id=2063942 + * Thu Jan 20 2022 Fedora Release Engineering - 8.0.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild