-Summary: Conservative garbage collector
-Summary(pl): Konserwatywny od¶miecacz pamiêci
+Summary: The Boehm-Demers-Weiser conservative garbage collector
+Summary(pl.UTF-8): Konserwatywny odśmiecacz pamięci Boehma-Demersa-Weisera
Name: gc
-Version: 6.4
+# NOTE: 7.4.0 is considered experimental (as of Nov 2013)
+Version: 7.2e
Release: 2
License: BSD-like
Group: Libraries
-Source0: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/%{name}%{version}.tar.gz
-# Source0-md5: ef03495e980b834a99c0e27eedaa546e
+Source0: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/%{name}-%{version}.tar.gz
+# Source0-md5: 5e230029f802d0ac633b1d9b3d4934c9
+Patch0: %{name}-ac.patch
URL: http://www.hpl.hp.com/personal/Hans_Boehm/gc/
-BuildRequires: autoconf >= 2.53
+BuildRequires: autoconf >= 2.64
BuildRequires: automake
-BuildRequires: libtool
+BuildRequires: libatomic_ops >= 7.2e
+BuildRequires: libstdc++-devel
+BuildRequires: libtool >= 2:1.5
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _includedir %{_prefix}/include/gc
-
%description
Gc is a conservative garbage collector for C and C++. It is used as a
replacement for standard malloc() and free(). GC_malloc will attempt
to reclaim inaccessible space automatically by invoking a conservative
garbage collector at appropriate points.
-%description -l pl
-Gc jest konserwatywnym od¶miecaczem pamiêci dla C i C++. Jest u¿ywany
+%description -l pl.UTF-8
+Gc jest konserwatywnym odśmiecaczem pamięci dla C i C++. Jest używany
jako zamiennik dla standardowych funkcji malloc() i free(). GC_malloc
-próbuje odzyskaæ niedostêpna pamiêæ automatycznie przez wywo³ywanie
-konserwatywnego od¶miecacza pamiêci w odpowiednich miejscach.
+próbuje odzyskać niedostępna pamięć automatycznie przez wywoływanie
+konserwatywnego odśmiecacza pamięci w odpowiednich miejscach.
%package devel
Summary: Headers for conservative garbage collector
-Summary(pl): Nag³ówki dla konserwatywnego od¶miecacza pamiêci
+Summary(pl.UTF-8): Nagłówki dla konserwatywnego odśmiecacza pamięci
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
+Requires: libatomic_ops >= 7.2e
%description devel
Headers for conservative garbage collector
-%description devel -l pl
-Nag³ówki dla konserwatywnego od¶miecacza pamiêci
+%description devel -l pl.UTF-8
+Nagłówki dla konserwatywnego odśmiecacza pamięci
%package static
Summary: Static version of gc library
-Summary(pl): Statyczna wersja biblioteki gc
+Summary(pl.UTF-8): Statyczna wersja biblioteki gc
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
Static version of gc library
-%description static -l pl
+%description static -l pl.UTF-8
Statyczna wersja biblioteki gc
-%prep
-%setup -q -n %{name}%{version}
+%package c++
+Summary: C++ interface to GC library
+Summary(pl.UTF-8): Interfejs C++ do biblioteki GC
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description c++
+C++ interface to GC library.
+
+%description c++ -l pl.UTF-8
+Interfejs C++ do biblioteki GC.
+
+%package c++-devel
+Summary: Header files for C++ interface for GC library
+Summary(pl.UTF-8): Pliki nagłówkowe interfejsu C++ do biblioteki GC
+Group: Development/Libraries
+Requires: %{name}-c++ = %{version}-%{release}
+Requires: %{name}-devel = %{version}-%{release}
+Requires: libstdc++-devel
+
+%description c++-devel
+Header files for C++ interface for GC library.
+
+%description c++-devel -l pl.UTF-8
+Pliki nagłówkowe interfejsu C++ do biblioteki GC.
+
+%package c++-static
+Summary: C++ interface to GC library - static library
+Summary(pl.UTF-8): Interfejs C++ do biblioteki GC - biblioteka statyczna
+Group: Development/Libraries
+Requires: %{name}-c++-devel = %{version}-%{release}
+
+%description c++-static
+C++ interface to GC library - static library.
+
+%description c++-static -l pl.UTF-8
+Interfejs C++ do biblioteki GC - biblioteka statyczna.
-# kill libtool.m4 inclusion
-%{__perl} -pi -e 's/^sinclude.*//' acinclude.m4
+%prep
+%setup -q -n %{name}-7.2
+%patch0 -p0
-%{__perl} -pi -e 's/^dist_pkgdata_DATA/EXTRA_DIST/' doc/Makefile.am
+# don't install docs to %{_datadir}/%{name}
+%{__perl} -pi -e 's/^dist_pkgdata_DATA/EXTRA_DIST/' doc/doc.am
%build
%{__libtoolize}
%{__autoconf}
%{__automake}
%configure \
+%ifnarch sparc64
+ CPPFLAGS="-DUSE_LIBC_PRIVATES" \
+%endif
+ --enable-cplusplus \
--enable-threads=posix
%{__make}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
+
install -d $RPM_BUILD_ROOT%{_includedir}/gc/private
-install include/private/* $RPM_BUILD_ROOT%{_includedir}/gc/private/
install -D doc/gc.man $RPM_BUILD_ROOT%{_mandir}/man3/gc.3
+# are these still needed? (what is ecls?)
+install include/private/* $RPM_BUILD_ROOT%{_includedir}/gc/private
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+%post c++ -p /sbin/ldconfig
+%postun c++ -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
-%doc README.QUICK doc/README{,.{linux,changes,contributors,environment,macros}}
-%doc doc/*.html
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
+%doc README.QUICK doc/README{,.{linux,changes,contributors,environment,macros}} doc/*.html
+%attr(755,root,root) %{_libdir}/libcord.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcord.so.1
+%attr(755,root,root) %{_libdir}/libgc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgc.so.1
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/lib*.la
-%{_includedir}
+%attr(755,root,root) %{_libdir}/libcord.so
+%attr(755,root,root) %{_libdir}/libgc.so
+%{_libdir}/libcord.la
+%{_libdir}/libgc.la
+%dir %{_includedir}/gc
+%{_includedir}/gc/private
+%{_includedir}/gc/cord.h
+%{_includedir}/gc/gc.h
+%{_includedir}/gc/gc_allocator.h
+%{_includedir}/gc/gc_amiga_redirects.h
+%{_includedir}/gc/gc_backptr.h
+%{_includedir}/gc/gc_config_macros.h
+%{_includedir}/gc/gc_gcj.h
+%{_includedir}/gc/gc_inline.h
+%{_includedir}/gc/gc_mark.h
+%{_includedir}/gc/gc_pthread_redirects.h
+%{_includedir}/gc/gc_tiny_fl.h
+%{_includedir}/gc/gc_typed.h
+%{_includedir}/gc/gc_version.h
+%{_includedir}/gc/leak_detector.h
+%{_includedir}/gc/new_gc_alloc.h
+%{_includedir}/gc/weakpointer.h
+%{_includedir}/gc.h
+%{_pkgconfigdir}/bdw-gc.pc
%{_mandir}/man3/gc.3*
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libcord.a
+%{_libdir}/libgc.a
+
+%files c++
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgccpp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgccpp.so.1
+
+%files c++-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgccpp.so
+%{_libdir}/libgccpp.la
+%{_includedir}/gc/gc_cpp.h
+%{_includedir}/gc_cpp.h
+
+%files c++-static
+%defattr(644,root,root,755)
+%{_libdir}/libgccpp.a