f7590e
Summary: A garbage collector for C and C++
f7590e
Name:    gc
f7590e
%global base_ver 7.2
f7590e
Version: 7.2d
f7590e
Release: 7%{?dist}
f7590e
f7590e
Group:   System Environment/Libraries
f7590e
License: BSD
f7590e
Url:     http://www.hpl.hp.com/personal/Hans_Boehm/gc/
f7590e
Source0: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-%{version}%{?pre}.tar.gz
f7590e
Patch1:  gc-7.2c-test-stack-infinite-loop.patch
f7590e
Patch2:  gc-7.2d-aarch64.patch
f7590e
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
f7590e
f7590e
## upstreamable patches
f7590e
f7590e
## upstream patches
f7590e
f7590e
BuildRequires: automake libtool
f7590e
BuildRequires: pkgconfig
f7590e
f7590e
# rpmforge compatibility
f7590e
Obsoletes: libgc < %{version}-%{release}
f7590e
Provides:  libgc = %{version}-%{release}
f7590e
f7590e
%description
f7590e
The Boehm-Demers-Weiser conservative garbage collector can be
f7590e
used as a garbage collecting replacement for C malloc or C++ new.
f7590e
f7590e
%package devel
f7590e
Summary: Libraries and header files for %{name} development
f7590e
Group:   Development/Libraries
f7590e
Requires: %{name}%{?_isa} = %{version}-%{release}
f7590e
Obsoletes: libgc-devel < %{version}-%{release}
f7590e
Provides:  libgc-devel = %{version}-%{release}
f7590e
%description devel
f7590e
%{summary}.
f7590e
f7590e
%package -n libatomic_ops-devel
f7590e
Summary:   Atomic memory update operations
f7590e
Group:     Development/Libraries
f7590e
# libatomic_ops.a is MIT
f7590e
# libatomic_ops_gpl.a is GPLv2+
f7590e
License:   MIT and GPLv2+
f7590e
Provides:  libatomic_ops-static = %{version}-%{release}
f7590e
%description -n libatomic_ops-devel
f7590e
Provides implementations for atomic memory update operations on a
f7590e
number of architectures. This allows direct use of these in reasonably
f7590e
portable code. Unlike earlier similar packages, this one explicitly
f7590e
considers memory barrier semantics, and allows the construction of code
f7590e
that involves minimum overhead across a variety of architectures.
f7590e
f7590e
f7590e
%prep
f7590e
%setup -q -n gc-%{base_ver}%{?pre}
f7590e
%patch1 -p1 -b .infinite-loop-in-tests
f7590e
%patch2 -p1 -b .aarch64
f7590e
f7590e
# refresh auto*/libtool to purge rpaths
f7590e
rm -f libtool libtool.m4
f7590e
autoreconf -i -f
f7590e
f7590e
f7590e
%build
f7590e
f7590e
# see bugzilla.redhat.com/689877
f7590e
CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN"; export CPPFLAGS
f7590e
f7590e
%configure \
f7590e
  --disable-dependency-tracking \
f7590e
  --disable-static \
f7590e
  --enable-cplusplus \
f7590e
  --enable-large-config \
f7590e
%ifarch %{ix86}
f7590e
  --enable-parallel-mark \
f7590e
%endif
f7590e
  --enable-threads=posix \
f7590e
  --with-libatomic-ops=no
f7590e
f7590e
make %{?_smp_mflags}
f7590e
make %{?_smp_mflags} -C libatomic_ops
f7590e
f7590e
f7590e
%install
f7590e
rm -rf %{buildroot}
f7590e
f7590e
make install DESTDIR=%{buildroot}
f7590e
make install DESTDIR=%{buildroot} -C libatomic_ops
f7590e
f7590e
install -p -D -m644 doc/gc.man  %{buildroot}%{_mandir}/man3/gc.3
f7590e
f7590e
## Unpackaged files
f7590e
rm -rfv %{buildroot}%{_datadir}/gc/
f7590e
rm -rfv %{buildroot}%{_datadir}/libatomic_ops/{COPYING,*.txt}
f7590e
rm -fv  %{buildroot}%{_libdir}/lib*.la
f7590e
f7590e
f7590e
%check
f7590e
make check
f7590e
# ignore results on powerpc - the atomic stack feature is not working correctly
f7590e
# there (#883748, #1125508)
f7590e
%ifarch ppc ppc64 ppc64le
f7590e
%global arch_ignore ||:
f7590e
%endif
f7590e
make check -C libatomic_ops %{?arch_ignore}
f7590e
f7590e
f7590e
%clean
f7590e
rm -rf %{buildroot}
f7590e
f7590e
f7590e
%post   -p /sbin/ldconfig
f7590e
%postun -p /sbin/ldconfig
f7590e
f7590e
%files
f7590e
%defattr(-,root,root,-)
f7590e
%doc doc/README
f7590e
%doc doc/README.changes doc/README.contributors
f7590e
%doc doc/README.environment doc/README.linux
f7590e
%{_libdir}/libcord.so.1*
f7590e
%{_libdir}/libgc.so.1*
f7590e
%{_libdir}/libgccpp.so.1*
f7590e
f7590e
%files devel
f7590e
%defattr(-,root,root,-)
f7590e
%doc doc/*.html
f7590e
%{_includedir}/gc.h
f7590e
%{_includedir}/gc_cpp.h
f7590e
%{_includedir}/gc/
f7590e
%{_libdir}/libcord.so
f7590e
%{_libdir}/libgc.so
f7590e
%{_libdir}/libgccpp.so
f7590e
%{_libdir}/pkgconfig/bdw-gc.pc
f7590e
%{_mandir}/man3/gc.3*
f7590e
f7590e
%files -n libatomic_ops-devel
f7590e
%defattr(-,root,root,-)
f7590e
%doc libatomic_ops/AUTHORS libatomic_ops/ChangeLog libatomic_ops/COPYING libatomic_ops/NEWS libatomic_ops/README
f7590e
%doc libatomic_ops/doc/*.txt
f7590e
%{_includedir}/atomic_ops.h
f7590e
%{_includedir}/atomic_ops/
f7590e
%{_libdir}/libatomic_ops.a
f7590e
%{_libdir}/pkgconfig/atomic_ops.pc
f7590e
# GPLv2+ bits
f7590e
%{_includedir}/atomic_ops_malloc.h
f7590e
%{_includedir}/atomic_ops_stack.h
f7590e
%{_libdir}/libatomic_ops_gpl.a
f7590e
f7590e
f7590e
%changelog
f7590e
* Thu Aug 14 2014 Pavel Raiskup <praiskup@redhat.com> - 7.2d-7
f7590e
- enable ppc64le build (#1125508)
f7590e
f7590e
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 7.2d-6
f7590e
- Mass rebuild 2014-01-24
f7590e
f7590e
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 7.2d-5
f7590e
- Mass rebuild 2013-12-27
f7590e
f7590e
* Wed Oct 30 2013 Pavel Raiskup <praiskup@redhat.com> - 7.2d-4
f7590e
- add support for aarch64 (#969817)
f7590e
- ignore testsuite results only for powerpc
f7590e
f7590e
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.2d-3
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
f7590e
f7590e
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.2d-2
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
f7590e
f7590e
* Mon Jan 07 2013 Rex Dieter <rdieter@fedoraproject.org> 7.2d-1
f7590e
- gc-7.2d
f7590e
f7590e
* Mon Oct 29 2012 Pavel Raiskup <praiskup@redhat.com> - 7.2c-5
f7590e
- fix possible infinite loop in test suite (#871067)
f7590e
f7590e
* Mon Oct 29 2012 Pavel Raiskup <praiskup@redhat.com> - 7.2c-4
f7590e
- trim lines, s/[tabs]/[spaces]/
f7590e
f7590e
* Fri Jul 27 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.2c-3
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
f7590e
f7590e
* Tue Jul 24 2012 Rex Dieter <rdieter@fedoraproject.org> 7.2c-2
f7590e
- rebuild
f7590e
f7590e
* Tue Jun 26 2012 Rex Dieter <rdieter@fedoraproject.org> 7.2c-1
f7590e
- 7.2c
f7590e
f7590e
* Fri Jun 15 2012 Rex Dieter <rdieter@fedoraproject.org>
f7590e
- 7.2b-2
f7590e
- backport patches from gc-7_2-hotfix-2 branch in lieu of 7.2c release
f7590e
- gc 7.2 final abi broken when changing several symbols to hidden (#825473)
f7590e
- CVE-2012-2673 gc: malloc() and calloc() overflows (#828878)
f7590e
f7590e
* Wed May 30 2012 Rex Dieter <rdieter@fedoraproject.org> 7.2b-1
f7590e
- gc-7.2b
f7590e
f7590e
* Mon May 14 2012 Rex Dieter <rdieter@fedoraproject.org>
f7590e
- 7.2-1
f7590e
- gc-7.2 (final)
f7590e
f7590e
* Fri Mar 02 2012 Rex Dieter <rdieter@fedoraproject.org> 7.2-0.7.alpha6
f7590e
- libatomic_ops: use -DAO_USE_PTHREAD_DEFS on ARMv5
f7590e
f7590e
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.2-0.6.alpha6
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
f7590e
f7590e
* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.2-0.5.alpha6
f7590e
- Rebuilt for glibc bug#747377
f7590e
f7590e
* Mon Jun 20 2011 Rex Dieter <rdieter@fedoraproject.rog> 7.2-0.4.alpha6.20110107
f7590e
- gc-7.2alpha6
f7590e
- build with -DUSE_GET_STACKBASE_FOR_MAIN (#689877)
f7590e
f7590e
* Wed Feb 09 2011 Rex Dieter <rdieter@fedoraproject.org> 7.2-0.3.alpha5.20110107
f7590e
- bdwgc-7.2alpha4 20110107 snapshot
f7590e
f7590e
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.2-0.2.alpha4
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
f7590e
f7590e
* Fri Dec 11 2009 Rex Dieter <rdieter@fedoraproject.org> - 7.2-0.1.alpha4
f7590e
- gc-7.2alpha4
f7590e
- use/package internal libatomic_ops
f7590e
f7590e
* Tue Dec  8 2009 Michael Schwendt <mschwendt@fedoraproject.org> - 7.1-10
f7590e
- Explicitly BR libatomic_ops-static in accordance with the Packaging
f7590e
  Guidelines (libatomic_ops-devel is still static-only).
f7590e
f7590e
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.1-9
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
f7590e
f7590e
* Sun Jul 19 2009 Rex Dieter 
f7590e
- FTBFS gc-7.1-7.fc11 (#511365)
f7590e
f7590e
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.1-7
f7590e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
f7590e
f7590e
* Fri Dec 12 2008 Rex Dieter <rdieter@fedoraproject.org> 7.1-6
f7590e
- rebuild for pkgconfig deps
f7590e
f7590e
* Wed Oct 15 2008 Rex Dieter <rdieter@fedoraproject.org> 7.1-5
f7590e
- forward-port patches (gcinit, sparc)
f7590e
f7590e
* Fri Oct 03 2008 Rex Dieter <rdieter@fedoraproject.org> 7.1-4
f7590e
- BR: libatomic_ops-devel
f7590e
f7590e
* Mon Sep 08 2008 Rex Dieter <rdieter@fedoraproject.org> 7.1-3
f7590e
- upstream DONT_ADD_BYTE_AT_END patch
f7590e
- spec cosmetics
f7590e
f7590e
* Sat Jul 12 2008 Rex Dieter <rdieter@fedoraproject.org> 7.1-2
f7590e
- --enable-large-config (#453972)
f7590e
f7590e
* Sun May 04 2008 Rex Dieter <rdieter@fedoraproject.org> 7.1-1
f7590e
- gc-7.1
f7590e
- purge rpaths
f7590e
f7590e
* Fri Feb 08 2008 Rex Dieter <rdieter@fedoraproject.org> 7.0-7
f7590e
- respin (gcc43)
f7590e
f7590e
* Wed Aug 29 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-6
f7590e
- BR: gawk
f7590e
- fixup compat_header patch to avoid needing auto* tools
f7590e
f7590e
* Wed Aug 29 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-5
f7590e
- compat_header patch (supercedes previous pkgconfig patch)
f7590e
f7590e
* Tue Aug 21 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-4
f7590e
- pkgconfig patch (cflags += -I%%_includedir/gc)
f7590e
f7590e
* Tue Aug 21 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-3
f7590e
- respin (ppc32)
f7590e
f7590e
* Tue Jul 24 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-2
f7590e
- gcinit patch, ABI compatibility (#248700)
f7590e
f7590e
* Mon Jul 09 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-1
f7590e
- gc-7.0
f7590e
f7590e
* Mon Dec 11 2006 Rex Dieter <rexdieter[AT]users.sf.net> 6.8-3
f7590e
- Obsoletes/Provides: libgc(-devel) (rpmforge compatibility)
f7590e
f7590e
* Mon Aug 28 2006 Rex Dieter <rexdieter[AT]users.sf.net> 6.8-2
f7590e
- fc6 respin
f7590e
f7590e
* Thu Jul 13 2006 Rex Dieter <rexdieter[AT]users.sf.net> 6.8-1
f7590e
- 6.8
f7590e
f7590e
* Fri Mar 03 2006 Rex Dieter <rexdieter[AT]users.sf.net> 6.7-1
f7590e
- 6.7
f7590e
f7590e
* Wed Mar 1 2006 Rex Dieter <rexdieter[AT]users.sf.net>
f7590e
- fc5: gcc/glibc respin
f7590e
f7590e
* Fri Feb 10 2006 Rex Dieter <rexdieter[AT]users.sf.net> 6.6-5
f7590e
- gcc(4.1) patch
f7590e
f7590e
* Thu Dec 01 2005 Rex Dieter <rexdieter[AT]users.sf.net> 6.6-4
f7590e
- Provides: libgc(-devel)
f7590e
f7590e
* Wed Sep 14 2005 Rex Dieter <rexdieter[AT]users.sf.net> 6.6-3
f7590e
- no-undefined patch, libtool madness (#166344)
f7590e
f7590e
* Mon Sep 12 2005 Rex Dieter <rexdieter[AT]users.sf.net> 6.6-2
f7590e
- drop opendl patch (doesn't appear to be needed anymore)
f7590e
f7590e
* Fri Sep 09 2005 Rex Dieter <rexdieter[AT]users.sf.net> 6.6-1
f7590e
- 6.6
f7590e
f7590e
* Wed May 25 2005 Rex Dieter <rexdieter[AT]users.sf.net> 6.5-1
f7590e
- 6.5
f7590e
f7590e
* Wed Apr  6 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
f7590e
- rebuilt
f7590e
f7590e
* Wed Jan 26 2005 Rex Dieter <rexdieter[AT]users.sf.net> 0:6.4-2
f7590e
- --enable-threads unconditionally
f7590e
- --enable-parallel-mark only on %%ix86 (#144681)
f7590e
f7590e
* Mon Jan 10 2005 Rex Dieter <rexdieter[AT]users.sf.net> 0:6.4-1
f7590e
- 6.4
f7590e
- update opendl patch
f7590e
f7590e
* Fri Jul 09 2004 Rex Dieter <rexdieter at sf.net> 0:6.3-0.fdr.1
f7590e
- 6.3(final)
f7590e
f7590e
* Tue Jun 01 2004 Rex Dieter <rexdieter at sf.net> 0:6.3-0.fdr.0.4.alpha6
f7590e
- dlopen patch
f7590e
f7590e
* Wed May 26 2004 Rex Dieter <rexdieter at sf.net> 0:6.3-0.fdr.0.3.alpha6
f7590e
- explictly --enable-threads ('n friends)
f7590e
f7590e
* Tue May 25 2004 Rex Dieter <rexdieter at sf.net> 0:6.3-0.fdr.0.2.alpha6
f7590e
- 6.3alpha6
f7590e
- --disable-static
f7590e
- --enable-parallel-mark
f7590e
f7590e
* Wed Dec 17 2003 Rex Dieter <rexdieter at sf.net> 0:6.3-0.fdr.0.1.alpha2
f7590e
- 6.3alpha2
f7590e
f7590e
* Thu Oct 02 2003 Rex Dieter <rexdieter at sf.net> 0:6.2-0.fdr.3
f7590e
- OK, put manpage in man3.
f7590e
f7590e
* Thu Oct 02 2003 Rex Dieter <rexdieter at sf.net> 0:6.2-0.fdr.2
f7590e
- drop manpage pending feedback from developer.
f7590e
f7590e
* Tue Sep 30 2003 Rex Dieter <rexdieter at sf.net> 0:6.2-0.fdr.1
f7590e
- fix manpage location
f7590e
- remove .la file (it appears unnecessary after all, thanks to opendl patch)
f7590e
- remove cvs tag from description
f7590e
- touchup -devel desc/summary.
f7590e
- macro update to support Fedora Core
f7590e
f7590e
* Thu Sep 11 2003 Rex Dieter <rexdieter at sf.net> 0:6.2-0.fdr.0
f7590e
- 6.2 release.
f7590e
- update license (BSD)
f7590e
- Consider building with: --enable-parallel-mark
f7590e
  (for now, no).