# TODO:
# - fix CC detection in configure, so CC=gcc won't be needed
+#
+# Conditional build:
+%bcond_with mpi # MPI wrapper module
+#
Summary: An open-source memory debugger
Summary(pl.UTF-8): Otwarty odpluskwiacz pamięci
Name: valgrind
-Version: 3.10.1
-Release: 1
-License: GPL
+Version: 3.13.0
+Release: 3
+License: GPL v2+
Group: Development/Tools
-Source0: http://valgrind.org/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: 60ddae962bc79e7c95cfc4667245707f
+Source0: ftp://sourceware.org/pub/valgrind/%{name}-%{version}.tar.bz2
+# Source0-md5: 817dd08f1e8a66336b9ff206400a5369
Patch0: %{name}-native-cpuid.patch
Patch1: %{name}-ld_linux_strlen.patch
+Patch2: valgrind-3.13.0-ld-separate-code.patch
+Patch3: valgrind-3.13.0-arch_prctl.patch
URL: http://valgrind.org/
-BuildRequires: autoconf
-BuildRequires: automake
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake >= 1:1.10
BuildRequires: gcc >= 5:3.0
+%ifarch x32
+BuildRequires: gcc-multilib-64 >= 5:3.0
+%endif
# check in configure.ac:882 AC_MSG_CHECKING([the GLIBC_VERSION version])
BuildRequires: glibc-devel >= 6:2.2
-BuildRequires: glibc-devel <= 6:2.19
BuildRequires: libgomp-devel
BuildRequires: libstdc++-devel
+%{?with_mpi:BuildRequires: mpi-devel}
Obsoletes: valgrind-callgrind
Obsoletes: valgrind-calltree
-ExclusiveArch: %{ix86} %{x8664} arm ppc ppc64 s390x
+ExclusiveArch: %{ix86} %{x8664} arm ppc ppc64 s390x x32
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _noautostrip .*/vgpreload.*\\.so
+%define filterout_c -fstack-protector-strong
# ld portion broken
%undefine with_ccache
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.ac
%build
%{__aclocal}
-%{__autoheader}
%{__autoconf}
+%{__autoheader}
%{__automake}
ac_cv_path_GDB=/usr/bin/gdb \
%dir %{_libdir}/%{name}
%attr(755,root,root) %{_libdir}/%{name}/*-linux
%attr(755,root,root) %{_libdir}/%{name}/vgpreload_*-linux.so
+%if %{with mpi}
+# TODO: subpackage?
+%attr(755,root,root) %{_libdir}/%{name}/libmpiwrap-*-linux.so
+%endif
%{_libdir}/%{name}/*.xml
%{_libdir}/%{name}/default.supp
%{_libdir}/%{name}/lib*-linux.a