X-Git-Url: http://git.pld-linux.org/?p=packages%2Fvalgrind.git;a=blobdiff_plain;f=valgrind.spec;h=376e94750194e799c33ac46e87161b7bed0efdb3;hp=6ff311ad274b12423d6f81ab830ad5334c409b70;hb=HEAD;hpb=802cf4bcbaf0a6e9307b7dfe44e4c927a6af7fb0 diff --git a/valgrind.spec b/valgrind.spec index 6ff311a..d95f37c 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -1,71 +1,93 @@ -#%define snap 20031012 -Summary: An open-source memory debugger for x86-GNU/Linux -Summary(pl): Otwarty odpluskwiacz pamiêci dla Linuksa x86 +# 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: 2.1.0 +Version: 3.23.0 Release: 1 -License: GPL +License: GPL v2+ Group: Development/Tools -Source0: http://developer.kde.org/~sewardj/valgrind-%{version}.tar.bz2 -# Source0-md5: 3e4056dd45163a5f555a23ced2f95191 -#Source0: %{name}-%{snap}.tar.bz2 -Patch0: %{name}-sockios.patch -URL: http://valgrind.kde.org/downloads.html -BuildRequires: autoconf -BuildRequires: automake -ExclusiveArch: %{ix86} +Source0: https://sourceware.org/pub/valgrind/%{name}-%{version}.tar.bz2 +# Source0-md5: c59775fcbfa82fcce796843d0aaa7538 +Patch0: %{name}-native-cpuid.patch +Patch1: %{name}-ld_linux_strlen.patch +Patch2: %{name}-datadir.patch +URL: https://www.valgrind.org/ +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: libgomp-devel +BuildRequires: libstdc++-devel +%{?with_mpi:BuildRequires: mpi-devel} +BuildRequires: rpmbuild(macros) >= 2.007 +Obsoletes: valgrind-callgrind < 0.11 +Obsoletes: valgrind-calltree < 0.10 +ExclusiveArch: %{ix86} %{x8664} %{armv7} ppc ppc64 s390x x32 aarch64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -# Valgrind binaries should _never_ be stripped -%define no_install_post_strip 1 +%define _noautostrip .*/vgpreload.*\\.so +%define filterout_c -fstack-protector-strong +# ld portion broken +%undefine with_ccache -# Same name as libpthread -%define _noautoprovfiles %{_libdir}/%{name}/libpthread.so.0 %{_libdir}/%{name}/libpthread.so %{_libdir}/%{name}/valgrind.so %{_libdir}/%{name}/valgrinq.so +%define specflags_arm -marm %description -Valgrind is a flexible tool for debugging and profiling Linux-x86 -executables. The tool consists of a core, which provides a synthetic -x86 CPU in software, and a series of "skins", each of which is a -debugging or profiling tool. The architecture is modular, so that new -skins can be created easily and without disturbing the existing -structure. +Valgrind is a GPL'd system for debugging and profiling Linux programs. +With the tools that come with Valgrind, you can automatically detect +many memory management and threading bugs, avoiding hours of +frustrating bug-hunting, making your programs more stable. You can +also perform detailed profiling to help speed up your programs. -A number of useful skins are supplied as standard. In summary, these -are: -- The memcheck skin detects memory-management problems in your - programs, -- cachegrind performs detailed simulation of the I1, D1 and L2 caches - in your CPU and so can accurately pinpoint the sources of cache misses - in your code, -- addrcheck skin is a lightweight version of memcheck, -- helgrind is designed to find data races in multithreaded programs. - -%description -l pl -Valgrind jest elastycznym narzêdziem s³u¿±cym do odpluskwiania i -profilowania programów pod Linuksem. Sk³ada siê z rdzenia -dostarczaj±cego syntetyczny emulowany procesor zgodny z x86 i ze -"skórek" bêd±cych narzêdziami o ró¿nych zastosowaniach. Architektura -programu jest modularna, wobec czego ³atwo mo¿na stworzyæ nowe skórki -nie ryzykuj±c popsucia reszty. - -Standardowo dostarczone jest kilka u¿ytecznych skórek: -- memcheck wykrywa problemy z zarz±dzaniem pamiêci± w programach, -- cachegrind przeprowadza symulacjê pamiêci cache procesora w celu - znalezienia miejsc, w których cache zawodzi, -- addrcheck jest lekk± wersj± memchecka, -- helgrind wykrywa konflikty dostêpu w wielow±tkowych programach. +%description -l pl.UTF-8 +Valgrind jest systemem służącym do odpluskwiania i profilowania +programów na Linuksie. Używając dostarczanych z nim narzędzi można +automatycznie wykrywać wiele błędów związanych z zarządzaniem pamięcią +i wątkowaniem, dzięki czemu unika się frustrującego polowania na +błędy, a także czyni się programy bardziej stabilnymi. Możliwe jest +również dokładne profilowanie, dzięki któremu programy zaczną szybciej +pracować. %prep %setup -q %patch0 -p1 +%patch1 -p1 +%patch2 -p1 + +%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python3(\s|$),#!%{__python3}\1,' \ + cachegrind/cg_annotate.in \ + cachegrind/cg_merge.in \ + cachegrind/cg_diff.in + +%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+perl(\s|$),#!%{__perl}\1,' \ + callgrind/callgrind_annotate.in \ + callgrind/callgrind_control.in %build %{__aclocal} -%{__autoheader} %{__autoconf} +%{__autoheader} %{__automake} + +ac_cv_path_GDB=/usr/bin/gdb \ %configure \ + --enable-tls \ + %{!?with_mpi:--with-mpicc=/bin/false} \ +%if "%{_lib}" != "lib" + --enable-only64bit \ +%endif \ + --enable-lto \ LDFLAGS="" # no strip! + %{__make} %install @@ -74,15 +96,52 @@ rm -rf $RPM_BUILD_ROOT %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc +cp -p docs/index.pdf docs/valgrind_manual.pdf +cp -p docs/index.ps docs/valgrind_manual.ps + %clean rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc ACKNOWLEDGEMENTS AUTHORS FAQ.txt NEWS PATCHES_APPLIED -%doc README README_MISSING_SYSCALL_OR_IOCTL TODO -%doc $RPM_BUILD_ROOT%{_docdir}/valgrind/*.html -%attr(755,root,root) %{_bindir}/* -%{_libdir}/%{name} -%{_includedir}/* -%{_pkgconfigdir}/*.pc +%doc AUTHORS NEWS README README_MISSING_SYSCALL_OR_IOCTL +%doc docs/html docs/valgrind_manual.pdf docs/valgrind_manual.ps +%attr(755,root,root) %{_bindir}/callgrind_annotate +%attr(755,root,root) %{_bindir}/callgrind_control +%attr(755,root,root) %{_bindir}/cg_annotate +%attr(755,root,root) %{_bindir}/cg_diff +%attr(755,root,root) %{_bindir}/cg_merge +%attr(755,root,root) %{_bindir}/ms_print +%attr(755,root,root) %{_bindir}/valgrind +%attr(755,root,root) %{_bindir}/valgrind-di-server +%attr(755,root,root) %{_bindir}/valgrind-listener +%attr(755,root,root) %{_bindir}/vgdb +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/lib*-linux.a +%if %{with mpi} +# TODO: subpackage? +%attr(755,root,root) %{_libdir}/%{name}/libmpiwrap-*-linux.so +%endif +%if "%{_libexecdir}" != "%{_libdir}" +%dir %{_libexecdir}/%{name} +%endif +%attr(755,root,root) %{_libexecdir}/%{name}/*-linux +%attr(755,root,root) %{_libexecdir}/%{name}/valgrind-monitor.py +%attr(755,root,root) %{_libexecdir}/%{name}/valgrind-monitor-def.py +%attr(755,root,root) %{_libexecdir}/%{name}/vgpreload_*-linux.so +%{_libexecdir}/%{name}/*.xml +%{_libexecdir}/%{name}/default.supp +%{_datadir}/%{name} +%{_includedir}/valgrind +%{_mandir}/man1/callgrind_annotate.1* +%{_mandir}/man1/callgrind_control.1* +%{_mandir}/man1/cg_annotate.1* +%{_mandir}/man1/cg_diff.1* +%{_mandir}/man1/cg_merge.1* +%{_mandir}/man1/ms_print.1* +%{_mandir}/man1/valgrind.1* +%{_mandir}/man1/valgrind-di-server.1* +%{_mandir}/man1/valgrind-listener.1* +%{_mandir}/man1/vgdb.1* +%{_pkgconfigdir}/valgrind.pc