# Maintainer: Levente Polyak # Contributor: Dan McGee # Contributor: Allan McRae # ALARM: Kevin Mihelich # - hold for toolchain update, only build for v7/v8 # - patch from Fedora for AArch64 # - removed lib32 package make/optdepends buildarch=12 #noautobuild=1 pkgname=valgrind pkgver=3.13.0+292+2b0aa0a5 pkgrel=1 pkgdesc='Tool to help find memory-management problems in programs' arch=('x86_64') license=('GPL') url='http://valgrind.org/' depends=('glibc' 'perl') makedepends=('gdb' 'openmpi' 'git' 'docbook-xml' 'docbook-xsl' 'docbook-sgml') checkdepends=('procps-ng') optdepends=('openmpi: MPI support') provides=('valgrind-multilib') replaces=('valgrind-multilib') options=('!emptydirs' '!strip') _commit=2b0aa0a5b88f900e986a3360952fcb3d2513419d source=(git+http://repo.or.cz/valgrind.git#commit=$_commit valgrind-3.7.0-respect-flags.patch valgrind-3.13.0-arm64-hwcap.patch) md5sums=('SKIP' '470d9881870aacc210b7a6efb64cc9a9' 'b7c24e58fa058578c9bf6fef4ccdd47d') sha512sums=('SKIP' 'e0cec39381cefeca09ae4794cca309dfac7c8693e6315e137e64f5c33684598726d41cfbb4edf764fe985503b13ff596184ca5fc32b159d500ec092e4cf8838c' '5af853399c6abdf8016fd1c2be854b3952b7d7e9ca16c870f84eed72e606e639d5f64de32e60105899f5201b53156380ae460111e05209e843301492742c9bfd') pkgver() { cd valgrind local _basever=${pkgver%%+*} local _count="$(git rev-list --count svn/VALGRIND_${_basever//./_}..master)" printf "%s+%s+%s" $_basever $_count ${_commit:0:8} } prepare() { cd valgrind patch -Np1 < ../valgrind-3.7.0-respect-flags.patch patch -Np1 < ../valgrind-3.13.0-arm64-hwcap.patch sed -i 's|sgml/docbook/xsl-stylesheets|xml/docbook/xsl-stylesheets-1.79.2|' docs/Makefile.am autoreconf -ifv } build() { # valgrind does not like stack protector flags CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/} CFLAGS=${CFLAGS/-fstack-protector-strong -fno-plt/} CXXFLAGS=${CXXFLAGS/-fstack-protector-strong -fno-plt/} cd valgrind ./configure \ --prefix=/usr \ --mandir=/usr/share/man \ --with-mpicc=mpicc make make -C docs man-pages } check() { cd valgrind # Make sure a basic binary runs. There should be no errors. ./vg-in-place --error-exitcode=1 /bin/true # Make sure no extra CFLAGS, CXXFLAGS or LDFLAGS leak through, # the testsuite sets all flags necessary. See also configure above. make check CFLAGS="" CXXFLAGS="" LDFLAGS="" # XXX: run full regtest but only report issues some tests fail duo # current toolchain and expectations, take a manual look if its fine echo ===============TESTING=================== make regtest || : # Make sure test failures show up in build.log # Gather up the diffs (at most the first 20 lines for each one) MAX_LINES=20 diff_files=$(find . -name '*.diff' | sort) if [ z"${diff_files}" = z ] ; then echo "Congratulations, all tests passed!" else warning "Some tests failed!" for f in ${diff_files} ; do echo "=================================================" >> diffs echo "${f}" >> diffs echo "=================================================" >> diffs if [ "$(wc -l < "${f}")" -le ${MAX_LINES} ] ; then cat "${f}" >> diffs else head -n ${MAX_LINES} "${f}" >> diffs echo "" >> diffs fi done fi cat diffs echo ===============END TESTING=============== } package() { cd valgrind make DESTDIR="${pkgdir}" install install -d "$pkgdir/usr/share/man/man1" install -m644 docs/*.1 -t "$pkgdir/usr/share/man/man1" if check_option 'debug' n; then find "${pkgdir}/usr/bin" -type f -executable -exec strip $STRIP_BINARIES {} + || true fi } # vim: ts=2 sw=2 et: