-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.1
-Release: 3
+# NOTE: 7.4.0 is considered experimental (as of Nov 2013)
+Version: 7.2e
+Release: 1
License: BSD-like
-Group: Development/Libraries
-Source0: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/%{name}%{version}.tar.gz
+Group: Libraries
+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.64
BuildRequires: automake
+BuildRequires: libatomic_ops >= 7.2e
+BuildRequires: libstdc++-devel
+BuildRequires: libtool >= 2:1.5
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
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êc 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}
+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}
+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
+%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.
+
%prep
-%setup -q -n %{name}%{version}
+%setup -q -n %{name}-7.2
+%patch0 -p0
+
+# don't install docs to %{_datadir}/%{name}
+%{__perl} -pi -e 's/^dist_pkgdata_DATA/EXTRA_DIST/' doc/doc.am
%build
-cp -f /usr/share/automake/config.* .
-%configure2_13 \
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__automake}
+%configure \
+%ifnarch sparc64
+ CPPFLAGS="-DUSE_LIBC_PRIVATES" \
+%endif
+ --enable-cplusplus \
--enable-threads=posix
-#sed -e 's/-lpthread/& -ldl/' Makefile > Makefile.tmp
-#mv -f Makefile.tmp Makefile
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_includedir}/gc
-cp -ar include/* $RPM_BUILD_ROOT%{_includedir}/gc
+install -d $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
-install -d $RPM_BUILD_ROOT%{_mandir}/man3
-install doc/gc.man $RPM_BUILD_ROOT%{_mandir}/man3/gc.3
+%clean
+rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%clean
-rm -rf $RPM_BUILD_ROOT
+%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}/*.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)
-%{_includedir}/gc
-%{_libdir}/*.so
-%{_libdir}/*.la
-%{_mandir}/*/*
+%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}/*.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