From c2b94e9e6edca3af240146e1f65b792703d05d53 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Wed, 22 Jun 2011 11:39:55 +0200 Subject: add valgrind scm Signed-off-by: Marc-Antoine Perennou --- dev-util/valgrind/Manifest | 3 + .../files/valgrind-3.4.1-glibc-2.10.1.patch | 49 ++++++++++++ .../files/valgrind-3.6.0-local-labels.patch | 24 ++++++ dev-util/valgrind/valgrind-9999.ebuild | 86 ++++++++++++++++++++++ profiles/package.mask | 1 + 5 files changed, 163 insertions(+) create mode 100644 dev-util/valgrind/Manifest create mode 100644 dev-util/valgrind/files/valgrind-3.4.1-glibc-2.10.1.patch create mode 100644 dev-util/valgrind/files/valgrind-3.6.0-local-labels.patch create mode 100644 dev-util/valgrind/valgrind-9999.ebuild diff --git a/dev-util/valgrind/Manifest b/dev-util/valgrind/Manifest new file mode 100644 index 00000000..1625e6b0 --- /dev/null +++ b/dev-util/valgrind/Manifest @@ -0,0 +1,3 @@ +AUX valgrind-3.4.1-glibc-2.10.1.patch 1305 RMD160 27586a6140bc0c96589f7077a3c9ee266010ac9c SHA1 dc5df31911c93c98d7876fc6ad9157ab62b38de2 SHA256 b250a3f7e8654cbc835570b0647d035f25a866a51312a8c0d82119db474eddd6 +AUX valgrind-3.6.0-local-labels.patch 1388 RMD160 e9c0064d1e857f1e616c5d9ca7a03e78eae3d5ab SHA1 173820d5671f56c864850c2d8df9d6d301dfda38 SHA256 34ae13eda378677f1e662e0813f138de9b897d6592d20872c58ed8ac1bcf7def +EBUILD valgrind-9999.ebuild 2552 RMD160 baab36e734835aaa179fc9de56f8e8811a3e51c4 SHA1 85150a309b70a0d1c3c66ae0ad8f197e3e14f1d2 SHA256 b4598e0c246d9799044767889c909dbd80565fae134d1be74cfb0d4432baec85 diff --git a/dev-util/valgrind/files/valgrind-3.4.1-glibc-2.10.1.patch b/dev-util/valgrind/files/valgrind-3.4.1-glibc-2.10.1.patch new file mode 100644 index 00000000..393dc7c2 --- /dev/null +++ b/dev-util/valgrind/files/valgrind-3.4.1-glibc-2.10.1.patch @@ -0,0 +1,49 @@ +--- valgrind-3.4.1/glibc-2.X.supp.in.jj 2009-03-01 17:04:51.000000000 -0500 ++++ valgrind-3.4.1/glibc-2.X.supp.in 2009-05-11 11:17:35.605396000 -0400 +@@ -168,9 +168,9 @@ + Memcheck:Param + socketcall.sendto(msg) + fun:__sendto_nocancel +- obj:/*libc-@GLIBC_VERSION@.so +- obj:/*libc-@GLIBC_VERSION@.so +- obj:/*libc-@GLIBC_VERSION@.so ++ obj:/*libc-@GLIBC_VERSION@*.so ++ obj:/*libc-@GLIBC_VERSION@*.so ++ obj:/*libc-@GLIBC_VERSION@*.so + } + { + glibc24-64bit-padding-1c +@@ -180,7 +180,7 @@ + fun:__nscd_get_map_ref + fun:nscd_get*_r + fun:*nscd* +- obj:/*libc-@GLIBC_VERSION@.so ++ obj:/*libc-@GLIBC_VERSION@*.so + } + + +@@ -199,18 +199,18 @@ + Memcheck:Param + socketcall.sendto(msg) + fun:send +- obj:/*libc-@GLIBC_VERSION@.so +- obj:/*libc-@GLIBC_VERSION@.so +- obj:/*libc-@GLIBC_VERSION@.so ++ obj:/*libc-@GLIBC_VERSION@*.so ++ obj:/*libc-@GLIBC_VERSION@*.so ++ obj:/*libc-@GLIBC_VERSION@*.so + } + { + X11-64bit-padding-4b + Memcheck:Param + socketcall.send(msg) + fun:send +- obj:/*libc-@GLIBC_VERSION@.so +- obj:/*libc-@GLIBC_VERSION@.so +- obj:/*libc-@GLIBC_VERSION@.so ++ obj:/*libc-@GLIBC_VERSION@*.so ++ obj:/*libc-@GLIBC_VERSION@*.so ++ obj:/*libc-@GLIBC_VERSION@*.so + } + + ##----------------------------------------------------------------------## diff --git a/dev-util/valgrind/files/valgrind-3.6.0-local-labels.patch b/dev-util/valgrind/files/valgrind-3.6.0-local-labels.patch new file mode 100644 index 00000000..68e68225 --- /dev/null +++ b/dev-util/valgrind/files/valgrind-3.6.0-local-labels.patch @@ -0,0 +1,24 @@ +--- coregrind/m_libcassert.c 2010-10-21 04:19:45.000000000 +0800 ++++ coregrind/m_libcassert.c 2010-10-24 20:23:17.800001876 +0800 +@@ -81,8 +81,8 @@ + { UInt cia, r1, lr; \ + __asm__ __volatile__( \ + "mflr 0;" /* r0 = lr */ \ +- "bl m_libcassert_get_ip;" /* lr = pc */ \ +- "m_libcassert_get_ip:\n" \ ++ "bl 0f;" /* lr = pc */ \ ++ "0:\n" \ + "mflr %0;" /* %0 = pc */ \ + "mtlr 0;" /* restore lr */ \ + "mr %1,1;" /* %1 = r1 */ \ +@@ -100,8 +100,8 @@ + { ULong cia, r1, lr; \ + __asm__ __volatile__( \ + "mflr 0;" /* r0 = lr */ \ +- "bl .m_libcassert_get_ip;" /* lr = pc */ \ +- ".m_libcassert_get_ip:\n" \ ++ "bl 0f;" /* lr = pc */ \ ++ "0:\n" \ + "mflr %0;" /* %0 = pc */ \ + "mtlr 0;" /* restore lr */ \ + "mr %1,1;" /* %1 = r1 */ \ diff --git a/dev-util/valgrind/valgrind-9999.ebuild b/dev-util/valgrind/valgrind-9999.ebuild new file mode 100644 index 00000000..48709338 --- /dev/null +++ b/dev-util/valgrind/valgrind-9999.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +ESVN_REPO_URI="svn://svn.valgrind.org/valgrind/trunk" + +EAPI=4 +inherit autotools eutils flag-o-matic toolchain-funcs multilib pax-utils subversion +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="http://www.valgrind.org" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="mpi multilib" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" + +src_prepare() { + # Respect CFLAGS, LDFLAGS + sed -i -e '/^CPPFLAGS =/d' -e '/^CFLAGS =/d' -e '/^LDFLAGS =/d' \ + mpi/Makefile.am || die + + # Changing Makefile.all.am to disable SSP + sed -i -e 's:^AM_CFLAGS_BASE = :AM_CFLAGS_BASE = -fno-stack-protector :' \ + Makefile.all.am || die + + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" \ + docs/Makefile.am || die + + # Yet more local labels, this time for ppc32 & ppc64 + epatch "${FILESDIR}"/${PN}-3.6.0-local-labels.patch + + # Fix up some suppressions that were not general enough for glibc versions + # with more than just a major and minor number. + epatch "${FILESDIR}"/${PN}-3.4.1-glibc-2.10.1.patch + + # Regenerate autotools files + eautoreconf +} + +src_configure() { + local myconf + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fpie valgrind seemingly hangs when built with pie on + # amd64 (bug #102157) + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -ggdb3 segmentation fault on startup + filter-flags -fomit-frame-pointer + filter-flags -fpie + filter-flags -fstack-protector + replace-flags -ggdb3 -ggdb2 + + if use amd64; then + ! use multilib && myconf="${myconf} --enable-only64bit" + fi + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf="${myconf} --without-mpicc" + fi + + econf ${myconf} +} + +src_install() { + emake DESTDIR="${ED}" install || die + dodoc AUTHORS NEWS README* + + pax-mark m "${D}"/usr/$(get_libdir)/valgrind/*-*-linux +} + +pkg_postinst() { + if use amd64 ; then + ewarn "Valgrind will not work on amd64 if glibc does not have" + ewarn "debug symbols (see https://bugs.gentoo.org/show_bug.cgi?id=214065" + ewarn "and http://bugs.gentoo.org/show_bug.cgi?id=274771)." + ewarn "To fix this you can add splitdebug to FEATURES in make.conf and" + ewarn "remerge glibc." + fi +} diff --git a/profiles/package.mask b/profiles/package.mask index ba6e925e..1201aa17 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -6,6 +6,7 @@ ~app-laptop/pommed-9999 ~dev-libs/gjs-9999 ~dev-libs/gobject-introspection-9999 +~dev-util/valgrind-9999 ~gnome-base/gnome-shell-9999 ~gnome-extra/gnome-shell-extensions-9999 ~media-sound/pavucontrol-9999 -- cgit v1.2.3-65-gdbad