Sync from SUSE:SLFO:Main gc revision 405a6cb9fd34959c2304967ff1e2e45e

This commit is contained in:
Adrian Schröter 2024-05-03 12:42:28 +02:00
commit 4f4d0dcc91
4 changed files with 444 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

BIN
gc-8.2.4.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

294
gc.changes Normal file
View File

@ -0,0 +1,294 @@
-------------------------------------------------------------------
Fri May 26 20:42:53 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 8.2.4
* Avoid potential race between realloc and GC_block_was_dirty
* Fix comparisons to heap boundary in GC_get_back_ptr_info and
GC_mark_from
* Fix data race in GC_heapsize_at_forced_unmap variable
* Workaround a malfunction of soft-dirty bits clearing on Power9
-------------------------------------------------------------------
Fri Aug 26 19:56:22 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 8.2.2
* Avoid potential race in GC_init_real_syms after
GC_allow_register_threads
* Do not count unmapped regions if GC_unmap is madvise-based
(Linux)
* Fix assertion violation of GC_thread_key alignment if
pthread-based TLS
* Fix hang on sem_wait in GC_suspend_thread if thread was
resumed recently
- Delete 0001-Distribute-gc_gcj.h-and-some-other-headers-in-single.patch
(applied)
-------------------------------------------------------------------
Thu Dec 2 17:28:08 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Add 0001-Distribute-gc_gcj.h-and-some-other-headers-in-single.patch
to repair `make install` forgetting to install gc_pthread.h.
- Drop C++98 build mode; just use what g++ uses.
-------------------------------------------------------------------
Wed Sep 29 22:03:07 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 8.2.0
* Add API for accessing incremental GC time limit with
nanosecond precision
* Add API function to force start of incremental collection
* Add GC_get/set_disable_automatic_collection API
* New API (GC_set_markers_count) to control number of parallel
markers
* New API function to clear GC exclusion table
* New API function to get size of object debug header
* New API standalone functions to acquire and release the
allocator lock
* Always abort on failure to access /proc/self/maps
* Avoid initial 3ms pause on world stop/start with GC_retry_signals
* Enable mprotect-based incremental GC for Linux/arm and
Linux/aarch64
* Enable true incremental collection even if parallel marker is on
* Fix mmap(PROT_NONE) failure if RLIMIT_AS value is low (Linux)
* Report memory region bounds and errno on GC_unmap/remap failure
* Use mprotect-based VDB on PowerPC and S390 (Linux)
* Use soft dirty bits on Linux (i386, powerpc, s390, x86_64)
* Fix copyright message in de_win.rc, gc_cpp.cc, ec.h and
specific.h
-------------------------------------------------------------------
Tue Sep 28 22:27:54 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 8.0.6
* Allocate start_info struct on the stack in GC_pthread_create.
* Allow GC_PAUSE_TIME_TARGET environment variable values
smaller than 5 ms.
* Disable mprotect-based incremental GC if /proc roots are used.
* Enable sbrk-to-mmap fallback on major supported Unix-like
platforms.
* Ensure process is running on one CPU core if AO ops are
emulated with locks.
* Fix data race regarding *rlh value in generic_malloc_many.
* Fix handling of areas smaller than page size in
GC_scratch_recycle.
* Limit number of unmapped regions.
-------------------------------------------------------------------
Fri Mar 15 09:35:41 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 8.0.4
* Avoid a full GC when growing finalizer tables if in
incremental mode.
* Avoid potential race in hb_sz access between realloc and
reclaim_block.
* Ensure result of every variant of MS_TIME_DIFF has unsigned
long type.
* Fix 'unexpected mark stack overflow' abort in push_all_stack.
-------------------------------------------------------------------
Tue Jan 8 13:51:13 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Add libatomic_ops-devel as a package require, since it shows up
in bdw-gc.pc.
-------------------------------------------------------------------
Tue Jan 8 02:37:16 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 8.0.2
* Explicitly unblock GC signals on GC initialization.
* Add initial RISC-V support.
* Never return null by C++ GC allocators and gc_cpp
operator new.
* Add AO primitives implementation to GC based on C11 atomic
intrinsic.
* Change pointer arguments of push_all[_eager]/conditional API
to void * type.
* Change type of hb_sz field (of hblkhdr) from size_t to word.
* Decide between memory unmapping and mprotect-based dirty bits
at runtime.
* New API function (GC_dump_named) to produce named dumps.
* New API function (get_size_map_at) to get content of size_map
table.
* New API to stop and start the GC world externally.
* New API to turn on manual VDB at runtime.
-------------------------------------------------------------------
Tue Jan 30 00:23:41 UTC 2018 - jengelh@inai.de
- Update to new upstream release 7.6.4
* Also enable the TSX workaround for i386 (Linux)
* Relax mark_mutex attribute needed to disable elision (Linux/x64)
* Process all PT_LOAD segments before PT_GNU_RELRO segments (Glibc)
* Add API function to calculate total memory in use by all GC blocks
* Add API function to set/modify GC log file descriptor (Unix)
* Add alt-stack registration support
* Implement the finalization extension API
* Implement thread suspend/resume API (Linux threads only)
-------------------------------------------------------------------
Mon Feb 1 10:03:41 UTC 2016 - rguenther@suse.com
- Force -std=gnu++98 for C++ testcases.
-------------------------------------------------------------------
Thu Mar 5 09:42:40 UTC 2015 - jengelh@inai.de
- Update homepage URLs
-------------------------------------------------------------------
Mon Dec 29 17:51:02 UTC 2014 - p.drouand@gmail.com
- Update to version 7.4.2
* Add config option to use STGRTMIN-based signals for thread
suspend/resume.
* Allow parallel mark to be enabled on powerpc-linux systems.
* Fix 'Array subscript is above array bounds' GCC warning in
GC_new_kind/proc.
* Fix 'attribute declaration must precede definition' warning.
* Fix GC_finalized_malloc failure on disclaim_test.
* Fix GC_sig_suspend initialization when non-constant SIGRTMIN used.
* Fix data roots registration for Android/x86 and NDK ARM 'gold'
linker.
* Fix find stackbottom on BlueGene P/Q systems.
* Fix machdep .lo files path in configure (SPARC, IA-64).
* Fix ok_init assignment (missing cast) in GC_new_kind_inner.
- Remove aarch64-support.patch; merged on upstream release
- gc project has a new home; update URL tag and download source URL
-------------------------------------------------------------------
Sun May 26 20:09:26 UTC 2013 - jengelh@inai.de
- Make use of external libatomic_ops --
openSUSE has it in a separate source package
- Fix version: 7.2d is not a prerelease, so there is no need to
call it 7.1*
- More portable make install call; more robust file list
-------------------------------------------------------------------
Sat May 25 19:16:48 UTC 2013 - root@localhost
- libatomic_ops-aarch64.patch: update makefile to install missing headers,
don't use AO_EXPECT_FALSE.
-------------------------------------------------------------------
Sat May 18 08:10:09 UTC 2013 - schwab@suse.de
- aarch64-support.patch: aarch64 support for gc from upstream
- libatomic_ops-aarch64.patch: aarch64 support for libatomic_ops from
upstream add-aarch64-support branch
-------------------------------------------------------------------
Mon Mar 25 14:50:51 UTC 2013 - dmueller@suse.com
- update to 7.2d
+ no upstream changelog available, but bring it two years
further up to date
- remove all patches. All upstream meanwhile
- fix packaging of atomic_ops.pc
-------------------------------------------------------------------
Sun Mar 3 20:42:59 UTC 2013 - jengelh@inai.de
- Record autoconf requirements in spec file
-------------------------------------------------------------------
Tue Aug 7 15:23:30 UTC 2012 - uli@suse.com
- fix for malloc()/calloc() overflows (CVE-2012-2673, bnc#765444)
-------------------------------------------------------------------
Sat Feb 11 08:55:11 UTC 2012 - coolo@suse.com
- put the provides for libatomic-ops-devel in a package actually
in existance
-------------------------------------------------------------------
Sun Dec 25 16:02:21 UTC 2011 - idonmez@suse.com
- Provide libatomic-ops-devel package too
-------------------------------------------------------------------
Tue Dec 13 09:55:10 UTC 2011 - werner@suse.de
- To use this with asymptote from TeX Live large config is required.
Also fast garbage collection iby using pthread-based parallel mark
implementation will help a lot.
-------------------------------------------------------------------
Sat Oct 1 05:39:10 UTC 2011 - coolo@suse.com
- add libtool as buildrequire to make the spec file more reliable
-------------------------------------------------------------------
Fri Sep 30 19:06:55 UTC 2011 - crrodriguez@opensuse.org
- Workaround qemu-arm bugs.
-------------------------------------------------------------------
Thu Sep 22 11:26:47 UTC 2011 - jengelh@medozas.de
- Implement shlib policy
- Resolve rpmlint warning "no-pkg-config-provides"
- Remove redundant/obsolete tags (cf. specfile guidelines;
License field is inherited from (main) subpackage)
-------------------------------------------------------------------
Mon Jun 20 15:08:02 UTC 2011 - pgajdos@novell.com
- updated to 7.2alpha6
* many bug fixes and new features from 6.6, see doc/README.changes
for older changes and ChangeLog for recent changes
-------------------------------------------------------------------
Thu Apr 2 15:40:11 CEST 2009 - crrodriguez@suse.de
- remove static libraries and "la" files
- run make check
-------------------------------------------------------------------
Wed Dec 10 12:34:56 CET 2008 - olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
-------------------------------------------------------------------
Tue Nov 11 09:35:00 CET 2008 - olh@suse.de
- use gcc built-in atomic functions, to fix w3m build
-------------------------------------------------------------------
Thu Oct 30 12:34:56 CET 2008 - olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
-------------------------------------------------------------------
Mon Feb 25 06:37:27 CET 2008 - crrodriguez@suse.de
- fix library-without-ldconfig-postin errors
-------------------------------------------------------------------
Wed Nov 21 18:00:27 CET 2007 - uli@suse.de
- implicit malloc() redirection breaks some apps (bug #335123)
-------------------------------------------------------------------
Sat May 26 23:51:37 CEST 2007 - ro@suse.de
- split off devel package
-------------------------------------------------------------------
Mon Jan 30 15:45:19 CET 2006 - uli@suse.de
- enabled malloc redirection, C++ support
- fixed shared libs
-------------------------------------------------------------------
Wed Jan 25 21:36:07 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Wed Jan 11 13:42:27 CET 2006 - uli@suse.de
- initial package

124
gc.spec Normal file
View File

@ -0,0 +1,124 @@
#
# spec file for package gc
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: gc
Version: 8.2.4
Release: 0
Summary: A garbage collector for C and C++
License: BSD-3-Clause
Group: Development/Libraries/C and C++
URL: http://www.hboehm.info/gc/
#Git-Clone: https://github.com/ivmai/bdwgc
Source: https://github.com/ivmai/bdwgc/releases/download/v%version/%name-%version.tar.gz
BuildRequires: autoconf >= 2.64
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: pkg-config
BuildRequires: pkgconfig(atomic_ops)
%description
The Boehm-Demers-Weiser conservative garbage collector can be used as a
garbage collecting replacement for C malloc or C++ new. It allows you
to allocate memory basically as you normally would, without explicitly
deallocating memory that is no longer useful. The collector
automatically recycles memory when it determines that it can no longer
be otherwise accessed.
%package -n libgc1
Summary: A garbage collector for C and C++
Group: System/Libraries
%ifarch ppc64
# bug437293
Obsoletes: boehm-gc-64bit
%endif
%description -n libgc1
The Boehm-Demers-Weiser conservative garbage collector can be used as a
garbage collecting replacement for C malloc or C++ new. It allows you
to allocate memory basically as you normally would, without explicitly
deallocating memory that is no longer useful. The collector
automatically recycles memory when it determines that it can no longer
be otherwise accessed.
%package devel
Summary: A garbage collector for C and C++
Group: Development/Libraries/C and C++
Provides: gc:/usr/include/gc/gc.h
Requires: glibc-devel
Requires: libatomic_ops-devel
Requires: libgc1 = %version
%description devel
The Boehm-Demers-Weiser conservative garbage collector can be used as a
garbage collecting replacement for C malloc or C++ new. It allows you
to allocate memory basically as you normally would, without explicitly
deallocating memory that is no longer useful. The collector
automatically recycles memory when it determines that it can no longer
be otherwise accessed.
%prep
%autosetup -p0
%build
autoreconf -fi
# see bugzilla.redhat.com/689877
export CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN"
export CXXFLAGS="%optflags"
%configure --disable-static --docdir="%_docdir/%name" \
--with-gnu-ld \
--enable-cplusplus \
--enable-large-config \
--enable-threads=posix \
--enable-parallel-mark \
--with-libatomic-ops=yes
# --with-libatomic-ops=yes means to use the system library
%make_build
%install
%make_install
rm -Rf "%buildroot/%_datadir/gc" "%buildroot/%_libdir"/*.la
for i in README.Mac README.OS2 README.win32; do
rm -f "%buildroot/%_docdir/%name/$i"
done
%check
%if !0%{?qemu_user_space_build}
make check -j1
%endif
%post -n libgc1 -p /sbin/ldconfig
%postun -n libgc1 -p /sbin/ldconfig
%files -n libgc1
%_libdir/libcord.so.1*
%_libdir/libgc*.so.1*
%files devel
%_docdir/%name/
%_libdir/libcord.so
%_libdir/libgc*.so
%_libdir/pkgconfig/bdw-gc.pc
%_mandir/man3/gc.3*
%_includedir/gc.h
%_includedir/gc_cpp.h
%_includedir/gc/
%changelog