%ifarch %{ix86} %define arch_val x86 %define arch_old_val %{nil} %endif %ifarch x86_64 %define arch_val amd64 %define arch_old_val x86 %endif %ifarch aarch64 %define arch_val arm64 %define arch_old_val %{nil} %endif Name: valgrind Version: 3.13.0 Release: 29 Epoch: 1 Summary: An instrumentation framework for building dynamic analysis tools License: GPLv2+ URL: http://www.valgrind.org/ Source0: ftp://sourceware.org/pub/%{name}/%{name}-%{version}.tar.bz2 Patch1: valgrind-3.9.0-cachegrind-improvements.patch Patch2: valgrind-3.9.0-helgrind-race-supp.patch Patch3: valgrind-3.9.0-ldso-supp.patch Patch4: valgrind-3.13.0-ppc64-check-no-vsx.patch Patch5: valgrind-3.13.0-epoll_pwait.patch Patch6: valgrind-3.13.0-ppc64-diag.patch Patch7: valgrind-3.13.0-arm64-hwcap.patch Patch8: valgrind-3.13.0-arm-index-hardwire.patch Patch9: valgrind-3.13.0-ucontext_t.patch Patch10: valgrind-3.13.0-gdb-8-testfix.patch Patch11: valgrind-3.13.0-disable-vgdb-child.patch Patch12: valgrind-3.13.0-xml-socket.patch Patch13: valgrind-3.13.0-ppc64-vex-fixes.patch Patch14: valgrind-3.13.0-amd64-eflags-tests.patch Patch15: valgrind-3.13.0-suppress-dl-trampoline-sse-avx.patch Patch16: valgrind-3.13.0-static-tls.patch Patch17: valgrind-3.13.0-ppc64-timebase.patch Patch18: valgrind-3.13.0-debug-alt-file.patch Patch19: valgrind-3.13.0-s390-cgijnl.patch Patch20: valgrind-3.13.0-ppc64-mtfprwa-constraint.patch Patch21: valgrind-3.13.0-build-id-phdrs.patch Patch22: valgrind-3.13.0-arm64-ptrace.patch Patch23: valgrind-3.13.0-ld-separate-code.patch Patch24: valgrind-3.13.0-arch_prctl.patch Patch25: valgrind-3.13.0-x86-arch_prctl.patch Patch26: valgrind-3.13.0-ppc64-xsmaxcdp.patch Patch27: valgrind-3.13.0-utime.patch BuildRequires: glibc glibc-devel gdb procps gcc-c++ perl(Getopt::Long) %description Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools. %package devel Summary: Development files for %{name} Requires: %{name} = %{epoch}:%{version}-%{release} %description devel This files contains the development files for %{name}. %package_help %prep %autosetup -n %{name}-%{version} -p1 %build CC=gcc %ifarch x86_64 mkdir -p shared/libgcc/32 ar r shared/libgcc/32/libgcc_s.a ar r shared/libgcc/libgcc_s_32.a CC="gcc -B `pwd`/shared/libgcc/" %endif %undefine _hardened_build %undefine _strict_symbol_defs_build OPTFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/ -fstack-protector\([-a-z]*\) / / g;s/ -Wp,-D_FORTIFY_SOURCE=2 / /g;s/ -O2 / /g;s/ -mcpu=\([a-z0-9]\+\) / /g;s/^ //;s/ $//'`" %configure CC="$CC" CFLAGS="$OPTFLAGS" CXXFLAGS="$OPTFLAGS" --with-mpicc=/bin/false GDB=%{_bindir}/gdb %make_build %install %make_install pushd %{buildroot}%{_libdir}/valgrind/ rm -f *.supp.in *.a %if "%{arch_old_val}" != "" rm -f *-%{arch_old_val}-* || : for i in *-%{arch_val}-*; do j=`echo $i | sed 's/-%{arch_val}-/-%{arch_old_val}-/'` ln -sf ../../lib/valgrind/$j $j done %endif popd pushd %{buildroot}%{_includedir}/%{name} rm -rf config.h libvex*h pub_tool_*h vki/ popd %files %license COPYING AUTHORS %doc %{_datadir}/doc/%{name}/{html,*.pdf} %exclude %{_datadir}/doc/%{name}/*.ps %{_bindir}/* %dir %{_libdir}/%{name} %{_libdir}/%{name}/*[^ao] %attr(0755,root,root) %{_libdir}/valgrind/vgpreload*-%{arch_val}-*so %if "%{arch_old_val}" != "" %{_libdir}/%{name}/vgpreload*-%{arch_old_val}-*so %endif %files devel %{_includedir}/%{name} %{_libdir}/pkgconfig/%{name}.pc %files help %doc NEWS README_* %{_mandir}/man1/* %changelog * Sat Dec 7 2019 openEuler Buildteam - 3.13.0-29 - Package init