This commit is contained in:
Rex Dieter 2022-09-20 10:32:00 -05:00
parent 7212ec14d2
commit 0f9f8891ae
5 changed files with 14 additions and 65 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
/gc-7.6.4.tar.gz
/gc-8.0.4.tar.gz
/gc-8.0.6.tar.gz
/gc-8.2.2.tar.gz

View File

@ -1,44 +0,0 @@
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,12 +0,0 @@
diff -up gc-7.6.4/pthread_start.c.dont_disable_exceptions gc-7.6.4/pthread_start.c
--- gc-7.6.4/pthread_start.c.dont_disable_exceptions 2018-01-26 07:16:17.000000000 -0600
+++ gc-7.6.4/pthread_start.c 2018-03-14 09:21:34.263477197 -0500
@@ -22,7 +22,7 @@
/* case at the top of the file. FIXME: it's still unclear whether this */
/* will actually cause the exit handler to be invoked last when */
/* thread_exit is called (and if -fexceptions is used). */
-#if defined(__GNUC__) && defined(__linux__)
+#if 0 && defined(__GNUC__) && defined(__linux__)
/* We undefine __EXCEPTIONS to avoid using GCC __cleanup__ attribute. */
/* The current NPTL implementation of pthread_cleanup_push uses */
/* __cleanup__ attribute when __EXCEPTIONS is defined (-fexceptions). */

20
gc.spec
View File

@ -1,7 +1,7 @@
Summary: Garbage collector for C and C++
Name: gc
Version: 8.0.6
Release: 4%{?dist}
Version: 8.2.2
Release: 1%{?dist}
License: BSD
URL: https://www.hboehm.info/gc/
@ -9,12 +9,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
Patch100: gc-7.6.4-dont_disable_exceptions.patch
BuildRequires: automake libtool
BuildRequires: gcc-c++
@ -50,7 +45,11 @@ rm -f libtool libtool.m4
autoreconf -i -f
# see https://bugzilla.redhat.com/689877
CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN"; export CPPFLAGS
CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN $CPPFLAGS"
# https://github.com/ivmai/bdwgc/commit/3ea130ae326d02e224921017d3ee9c287fd4e670
# WAS https://bugzilla.redhat.com/show_bug.cgi?id=1551671
CPPFLAGS="-DDONT_UNDEF_EXCEPTIONS $CPPFLAGS"
export CPPFLAGS
%configure \
--disable-docs \
@ -89,6 +88,7 @@ make check %{?arch_ignore}
%{_libdir}/libcord.so.1*
%{_libdir}/libgc.so.1*
%{_libdir}/libgccpp.so.1*
%{_libdir}/libgctba.so.1*
%files devel
%doc doc/README.environment doc/README.linux
@ -99,11 +99,15 @@ make check %{?arch_ignore}
%{_libdir}/libcord.so
%{_libdir}/libgc.so
%{_libdir}/libgccpp.so
%{_libdir}/libgctba.so
%{_libdir}/pkgconfig/bdw-gc.pc
%{_mandir}/man3/gc.3*
%changelog
* Tue Sep 20 2022 Rex Dieter <rdieter@fedoraproject.org> 8.2.2-1
- 8.2.2 (#2124760)
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (gc-8.0.6.tar.gz) = 2ea25003d585118e3ac0e12be9240e8195db511c6e94949f20453dc3cb771380bd5b956c04243b2a8ce31508587aa32de4f0f10a813577e6dbe8367688b7614e
SHA512 (gc-8.2.2.tar.gz) = 4a7b26789ce22ab72bfaadf3029362c5fe26737df1e856e43db7d9b24ee8acf625e35d596bb3f698f91d6a5ddfb6c45a952a1dbd18d47359569696a544c9c248