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