diff --git a/README.md b/README.md index 7344cb4..546a665 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # libgc +This is a garbage collecting storage allocator that is intended to be used as a plug-in replacement for C's malloc. + +Since the collector does not require pointers to be tagged, it does not attempt to ensure that all inaccessible storage is reclaimed. However, in our experience, it is typically more successful at reclaiming unused memory than most C programs using explicit deallocation. Unlike manually introduced leaks, the amount of unreclaimed memory typically stays bounded. + diff --git a/libgc-7.1-dup_cpp_headers.patch b/libgc-7.1-dup_cpp_headers.patch new file mode 100644 index 0000000..a9d6ea0 --- /dev/null +++ b/libgc-7.1-dup_cpp_headers.patch @@ -0,0 +1,14 @@ +diff -up gc-7.1/include/include.am.dup_headers gc-7.1/include/include.am +--- gc-7.1/include/include.am.dup_headers 2007-12-21 18:20:15.000000000 -0600 ++++ gc-7.1/include/include.am 2009-07-18 20:34:58.812906860 -0500 +@@ -21,10 +21,8 @@ pkginclude_HEADERS += \ + include/gc_typed.h \ + include/gc_inline.h \ + include/gc_mark.h \ +- include/gc_cpp.h \ + include/weakpointer.h \ + include/new_gc_alloc.h \ +- include/gc_allocator.h \ + include/gc_backptr.h \ + include/gc_gcj.h \ + include/leak_detector.h \ diff --git a/libgc-7.2alpha4-install_dups.patch b/libgc-7.2alpha4-install_dups.patch new file mode 100644 index 0000000..345768d --- /dev/null +++ b/libgc-7.2alpha4-install_dups.patch @@ -0,0 +1,20 @@ +diff -up gc-7.2alpha4/libatomic_ops/doc/Makefile.am.install_dups gc-7.2alpha4/libatomic_ops/doc/Makefile.am +--- gc-7.2alpha4/libatomic_ops/doc/Makefile.am.install_dups 2009-09-29 08:41:50.000000000 -0500 ++++ gc-7.2alpha4/libatomic_ops/doc/Makefile.am 2009-12-11 07:31:08.816754621 -0600 +@@ -1,3 +1,3 @@ + # installed documentation + # +-dist_pkgdata_DATA=COPYING LICENSING.txt README.txt COPYING README_stack.txt README_malloc.txt README_win32.txt ++dist_pkgdata_DATA=COPYING LICENSING.txt README.txt README_stack.txt README_malloc.txt README_win32.txt +diff -up gc-7.2alpha4/libatomic_ops/doc/Makefile.in.install_dups gc-7.2alpha4/libatomic_ops/doc/Makefile.in +--- gc-7.2alpha4/libatomic_ops/doc/Makefile.in.install_dups 2009-12-11 07:28:57.584740154 -0600 ++++ gc-7.2alpha4/libatomic_ops/doc/Makefile.in 2009-12-11 07:31:44.285741617 -0600 +@@ -177,7 +177,7 @@ top_srcdir = @top_srcdir@ + + # installed documentation + # +-dist_pkgdata_DATA = COPYING LICENSING.txt README.txt COPYING README_stack.txt README_malloc.txt README_win32.txt ++dist_pkgdata_DATA = COPYING LICENSING.txt README.txt README_stack.txt README_malloc.txt README_win32.txt + all: all-am + + .SUFFIXES: diff --git a/libgc.spec b/libgc.spec new file mode 100644 index 0000000..6c159d5 --- /dev/null +++ b/libgc.spec @@ -0,0 +1,139 @@ +%define majver %(echo %version | sed "s|[a-z]||") +Name: libgc +Epoch: 1 +Version: 7.4.0 +Release: 1mamba +Summary: Boehm Conservative Garbage Collection for C/C++ +Group: System/Libraries +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.hpl.hp.com/personal/Hans_Boehm/gc/ +Source: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-%{version}.tar.gz +Patch0: libgc-7.1-dup_cpp_headers.patch +Patch1: libgc-7.2alpha4-install_dups.patch +License: BSD +BuildRequires: glibc +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libgcc +BuildRequires: libstdc++6-devel +## AUTOBUILDREQ-END +BuildRequires: libatomic_ops-devel +BuildRequires: libtool +BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot + +%description +This is a garbage collecting storage allocator that is intended to be used as a plug-in replacement for C's malloc. + +Since the collector does not require pointers to be tagged, it does not attempt to ensure that all inaccessible storage is reclaimed. However, in our experience, it is typically more successful at reclaiming unused memory than most C programs using explicit deallocation. Unlike manually introduced leaks, the amount of unreclaimed memory typically stays bounded. + +%package devel +Group: Development/Libraries +Summary: Static libraries and headers for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +This is a garbage collecting storage allocator that is intended to be used as a plug-in replacement for C's malloc. + +This package contains static libraries and header files need for development. + +%package -n libatomic_ops-devel +Summary: Atomic memory update operations +Group: Development/Libraries + +%description -n libatomic_ops-devel +Provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code. Unlike earlier similar packages, this one explicitly considers memory barrier semantics, and allows the construction of code that involves minimum overhead across a variety of architectures. + +This package contains static libraries and header files need for development. + +%prep +%setup -q -n gc-%{majver} +#%patch0 -p1 +#%patch1 -p1 +rm -f libtool libtool.m4 +autoreconf -i + +%build +%configure \ + --prefix=%{_prefix} \ + --disable-dependency-tracking \ + --disable-static \ + --enable-cplusplus \ + --enable-large-config \ +%ifarch %{ix86} x86_64 + --enable-parallel-mark \ +%endif + --enable-threads=posix \ + --with-libatomic-ops=external + +%make +#% make -C libatomic_ops + +%install +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +%makeinstall DESTDIR=%{buildroot} + +mkdir -p %{buildroot}%{_mandir}/man3 +install -pm 644 doc/gc.man %{buildroot}%{_mandir}/man3/gc.3 + +rm -rf %{buildroot}%{_datadir}/gc/ + +%ifnarch arm +%check +make check +%endif + +%clean +[ "%{buildroot}" != / ] && rm -rf %{buildroot} + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +#%{_datadir}/gc/* +%{_libdir}/*.so.* + +%files devel +%defattr(-,root,root) +%{_includedir}/*.h +%{_includedir}/gc/*.h +#%{_libdir}/*.a +%{_libdir}/*.la +%{_libdir}/*.so +%{_libdir}/pkgconfig/bdw-gc.pc +%{_mandir}/man3 +%doc doc/README* + +%changelog +* Tue Nov 26 2013 Automatic Build System 7.4.0-1mamba +- automatic update by autodist + +* Sun Dec 09 2012 Automatic Build System 7.2d-1mamba +- update to 7.2d + +* Sun Aug 19 2012 Silvan Calarco 7.2-1mamba +- update to 7.2 + +* Sun Jul 24 2011 Automatic Build System 7.2alpha6-1mamba +- automatic version update by autodist + +* Sun Dec 26 2010 Silvan Calarco 7.2alpha4-3mamba +- automatic port from devel-java + +* Sat Dec 04 2010 gil 7.2alpha4-2mamba +- rebuilt devel + +* Sun May 02 2010 gil 7.2alpha4-1mamba +- update to 7.2alpha4 + +* Sat May 31 2008 gil 7.1-1mamba +- update to 7.1 +- edit URL + +* Thu Mar 03 2005 Silvan Calarco 6.4-1qilnx +- update to version 6.4 by autospec + +* Fri Dec 03 2004 Davide Madrisan 6.3-1qilnx +- package created by autospec