- backport "Do not probe to find main data root start if
 dl_iterate_phdr exists" upstream fix for https://bugzilla.redhat.com/show_bug.cgi?id=2063942
This commit is contained in:
Alexandra Hájková 2022-06-16 07:20:58 -04:00
parent d00480593d
commit 126a052cc2
2 changed files with 51 additions and 1 deletions

View File

@ -0,0 +1,44 @@
From b2875e6e5262785056d49ad2f94bfed295977b2d Mon Sep 17 00:00:00 2001
From: Ivan Maidanski <ivmai@mail.ru>
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

View File

@ -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á <ahajkova@redhat.com> - 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 <releng@fedoraproject.org> - 8.0.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild