+#
+# Conditional build:
+%bcond_with tests # perform "make check" (fails randomly)
+%bcond_without doc # man pages
+#
Summary: libunwind - a (mostly) platform-independent unwind API
-Summary(pl): libunwind - (prawie) niezale¿ne od platformy API do rozwijania
+Summary(pl.UTF-8): libunwind - (prawie) niezależne od platformy API do rozwijania
Name: libunwind
-Version: 0.98.3
-Release: 1
+Version: 1.6.2
+Release: 2
License: MIT
Group: Libraries
-Source0: ftp://ftp.hpl.hp.com/pub/linux-ia64/%{name}-%{version}.tar.gz
-# Source0-md5: e6daa3498b80c00888276fb5292f18bd
-URL: http://www.hpl.hp.com/research/linux/libunwind/
-ExclusiveArch: %{ix86} amd64 hppa ia64
+Source0: https://download.savannah.gnu.org/releases/libunwind/%{name}-%{version}.tar.gz
+# Source0-md5: f625b6a98ac1976116c71708a73dc44a
+Patch0: %{name}-link.patch
+Patch1: %{name}-x32.patch
+URL: http://www.nongnu.org/libunwind/
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake >= 1.6
+%ifarch %{x8664}
+BuildRequires: binutils >= 2:2.15.94.0.2.2
+%endif
+%{?with_doc:BuildRequires: latex2man}
+BuildRequires: libtool >= 2:2.0
+BuildRequires: rpmbuild(macros) >= 1.213
+BuildRequires: xz-devel
+ExclusiveArch: %{ix86} %{x8664} x32 %{arm} aarch64 hppa ia64 mips ppc ppc64 sh tilegx
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# some setjmp tricks expect non-redirected functions
+%define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+
+
+# x86/x86_64/hppa/ia64
+%ifarch %{ix86}
+%define asuf x86
+%else
+%ifarch %{x8664} x32
+%define asuf x86_64
+%else
+%ifarch %{arm}
+%define asuf arm
+%else
+%define asuf %{_target_cpu}
+%endif
+%endif
+%endif
+
%description
The goal of the libunwind project is to define a portable and
efficient C programming interface (API) to determine the call-chain
of a program.
-
-%description -l pl
-Celem projektu libunwind jest zdefiniowanie przeno¶nego i wydajnego
-API w jêzyku C do okre¶lania ³añcucha wywo³añ w programie.
+
+%description -l pl.UTF-8
+Celem projektu libunwind jest zdefiniowanie przenośnego i wydajnego
+API w języku C do określania łańcucha wywołań w programie.
%package devel
Summary: Header files for libunwind library
-Summary(pl): Pliki nag³ówkowe biblioteki libunwind
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libunwind
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: xz-devel%{?_isa}
%description devel
Header files for libunwind library.
-%description devel -l pl
-Pliki nag³ówkowe biblioteki libunwind.
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki libunwind.
%package static
Summary: Static libunwind library
-Summary(pl): Statyczna biblioteka libunwind
+Summary(pl.UTF-8): Statyczna biblioteka libunwind
Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
%description static
Static libunwind library.
-%description static -l pl
+%description static -l pl.UTF-8
Statyczna biblioteka libunwind.
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
%build
-%configure
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+# what needs additional -fPIC? libtool already uses it for shared objects
+%configure \
+ CFLAGS="%{rpmcflags} -fPIC" \
+ %{!?with_doc:--disable-documentation}
%{__make}
+%{?with_tests:%{__make} check}
+
%install
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%doc AUTHORS COPYING ChangeLog NEWS README TODO
-%attr(755,root,root) %{_libdir}/libunwind*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libunwind.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libunwind.so.8
+%attr(755,root,root) %{_libdir}/libunwind-coredump.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libunwind-coredump.so.0
+%attr(755,root,root) %{_libdir}/libunwind-ptrace.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libunwind-ptrace.so.0
+%attr(755,root,root) %{_libdir}/libunwind-setjmp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libunwind-setjmp.so.0
+%attr(755,root,root) %{_libdir}/libunwind-%{asuf}.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libunwind-%{asuf}.so.8
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libunwind*.so
-%{_libdir}/libunwind*.la
-%{_includedir}/*unwind*.h
-%{_mandir}/man3/*.3*
+%attr(755,root,root) %{_libdir}/libunwind.so
+%attr(755,root,root) %{_libdir}/libunwind-coredump.so
+%attr(755,root,root) %{_libdir}/libunwind-generic.so
+%attr(755,root,root) %{_libdir}/libunwind-ptrace.so
+%attr(755,root,root) %{_libdir}/libunwind-setjmp.so
+%attr(755,root,root) %{_libdir}/libunwind-%{asuf}.so
+%{_libdir}/libunwind.la
+%{_libdir}/libunwind-coredump.la
+%{_libdir}/libunwind-ptrace.la
+%{_libdir}/libunwind-setjmp.la
+%{_libdir}/libunwind-%{asuf}.la
+%{_includedir}/libunwind*.h
+%{_includedir}/unwind.h
+%{_pkgconfigdir}/libunwind.pc
+%{_pkgconfigdir}/libunwind-coredump.pc
+%{_pkgconfigdir}/libunwind-generic.pc
+%{_pkgconfigdir}/libunwind-ptrace.pc
+%{_pkgconfigdir}/libunwind-setjmp.pc
+%if %{with doc}
+%{_mandir}/man3/_U_dyn_*.3*
+%{_mandir}/man3/libunwind*.3*
+%{_mandir}/man3/unw_*.3*
+%endif
%files static
%defattr(644,root,root,755)
-%{_libdir}/libunwind*.a
+%{_libdir}/libunwind.a
+%{_libdir}/libunwind-coredump.a
+%{_libdir}/libunwind-generic.a
+%{_libdir}/libunwind-ptrace.a
+%{_libdir}/libunwind-setjmp.a
+%{_libdir}/libunwind-%{asuf}.a