commit 4f4d0dcc915ad4a286a62b663931614c217961915134ba7b91b99bc8c5662ce4 Author: Adrian Schröter Date: Fri May 3 12:42:28 2024 +0200 Sync from SUSE:SLFO:Main gc revision 405a6cb9fd34959c2304967ff1e2e45e diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/gc-8.2.4.tar.gz b/gc-8.2.4.tar.gz new file mode 100644 index 0000000..2452cdd --- /dev/null +++ b/gc-8.2.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d0d3cdbe077403d3106bb40f0cbb563413d6efdbb2a7e1cd6886595dec48fc2 +size 1210929 diff --git a/gc.changes b/gc.changes new file mode 100644 index 0000000..034d7df --- /dev/null +++ b/gc.changes @@ -0,0 +1,294 @@ +------------------------------------------------------------------- +Fri May 26 20:42:53 UTC 2023 - Jan Engelhardt + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + diff --git a/gc.spec b/gc.spec new file mode 100644 index 0000000..a4a72f3 --- /dev/null +++ b/gc.spec @@ -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