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