diff --git a/dev-util/google-perftools/Manifest b/dev-util/google-perftools/Manifest index 01ab3e3..1126863 100644 --- a/dev-util/google-perftools/Manifest +++ b/dev-util/google-perftools/Manifest @@ -1,3 +1,5 @@ AUX gperftools-2.0+glibc-2.16.patch 604 SHA256 abb19fd87ce092fc0cb0a4a5964834ec97b12d2462bc2b8bd8668c4ca71fcea5 SHA512 aa9b94c4712227b6414fc34a47154f416b120004c81704ab181c7985b6dce60bf1d98e4175678fb445cd59bb6c85d4d7bb0a093e186ecc9f115bc841d27cb964 WHIRLPOOL 75866b1e0e17ccc206459b31e284f7892d7e03c4cd862f8f6d66b374887aab938e9d79115228b7a7258f6bddd2439348fb48f67581744b9fdad1b4f6ae8079ef +AUX gperftools-2.0-32bit-barrier.patch 792 SHA256 224776d529f1a1d11a036f16f04d4f01e3fd805d6fdd361c7d4b714f5bfbb87c SHA512 a39fd183d76a76e5c4cb3915f966e008250b4c72098bd2a9d13f10e01efd8dd1e36a51e0d4ef5f712d20398fa8605aa40e2529af085e80f918a1e227d7c92def WHIRLPOOL dafa07810d202816462603457395491a7d5901c0faf3134383635ef9a267aeba9f6635e687659dd1634ef7219970334a485350d6f8cad33f6792d87b779c21a3 DIST gperftools-2.0.tar.gz 1261243 SHA256 7de3dd91f018825b1e7d332af1edace15c6211f430186febede1835069861080 SHA512 61bf7a26974058912a4165cbc363351bc735599d36ab569dc7e84a75a690adbc17a4178512a57469fc7c17befaad2a271ef4ea5c29a36b664153938939269926 WHIRLPOOL 4f49a7da976040cacdecb8e18294b09fbfe276422ba35058476a14a3c1df072f8748d70f738adafa03a3a445701ed32b6232f13962d8ec8c5a968652414797a6 +EBUILD google-perftools-2.0-r1.ebuild 2377 SHA256 7e995843f00fdb2facec45dace8c6ba1bedc69389e009aa41d7fc81c3056e788 SHA512 b3399df69dcd408ca0cd6c5eac5d5ffc2b482db005678684c2fa7f329f6ba47250eddd4d67304ae894d8b7654a3f00167db8bbf9a3f487568d33ccc20d8d9a22 WHIRLPOOL 75a0610c4c85ca8cc9c9e9cfa57862b6b4748315f8e78c55238af371d49872bdfea9ff26fdabbc8c57a0952cd6cf7145b2689ca91bda6efcbdfa1597e65bda23 EBUILD google-perftools-2.0.ebuild 2189 SHA256 030bd30f26588481e68c5c26ed5fd1bed21403dc6219f4548984e47b267b2e7e SHA512 270e6ab40967549b59df7cf7bf8ba30573686b3424ec1fed8d7f1da7bce73d3ca5c971e4cbafbc95a0c769fb12c890d0affe2ec24b1985f9644874dba188d80c WHIRLPOOL 23f57db2261419789f4e10cc57b74b1d7681aa6570773cc1f6240661bd8929711fe5c027fd0e6db9bcb0a8574d8b02f43a26438302d28f2f3661b1a3d7b7ed4b diff --git a/dev-util/google-perftools/files/gperftools-2.0-32bit-barrier.patch b/dev-util/google-perftools/files/gperftools-2.0-32bit-barrier.patch new file mode 100644 index 0000000..df89a92 --- /dev/null +++ b/dev-util/google-perftools/files/gperftools-2.0-32bit-barrier.patch @@ -0,0 +1,17 @@ +Atomic64 not available on all architectures. +Use AtomicWord instead. + +Signed-off-by: Robin H. Johnson + +diff -Nuar gperftools-2.0.orig/src/base/spinlock_internal.cc gperftools-2.0/src/base/spinlock_internal.cc +--- gperftools-2.0.orig/src/base/spinlock_internal.cc 2012-02-02 21:36:23.000000000 +0000 ++++ gperftools-2.0/src/base/spinlock_internal.cc 2013-01-20 23:44:01.629077919 +0000 +@@ -80,7 +80,7 @@ + static int SuggestedDelayNS(int loop) { + // Weak pseudo-random number generator to get some spread between threads + // when many are spinning. +- static base::subtle::Atomic64 rand; ++ static AtomicWord rand; + uint64 r = base::subtle::NoBarrier_Load(&rand); + r = 0x5deece66dLL * r + 0xb; // numbers from nrand48() + base::subtle::NoBarrier_Store(&rand, r); diff --git a/dev-util/google-perftools/google-perftools-2.0-r1.ebuild b/dev-util/google-perftools/google-perftools-2.0-r1.ebuild new file mode 100644 index 0000000..f87f173 --- /dev/null +++ b/dev-util/google-perftools/google-perftools-2.0-r1.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-util/google-perftools/google-perftools-2.0-r1.ebuild,v 1.1 2013/01/20 23:48:29 robbat2 Exp $ + +EAPI=4 + +MY_P="gperftools-${PV}" + +inherit toolchain-funcs eutils flag-o-matic + +DESCRIPTION="Fast, multi-threaded malloc() and nifty performance analysis tools" +HOMEPAGE="http://code.google.com/p/gperftools/" +SRC_URI="http://gperftools.googlecode.com/files/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +# contains ASM code, with support for +# freebsd x86/amd64 +# linux x86/amd64/ppc/ppc64/arm +# OSX ppc/amd64 +# AIX ppc/ppc64 +KEYWORDS="-* ~arm ~amd64 ~ppc64 ~x86 ~x86-fbsd" +IUSE="largepages +debug minimal test 64bitworkaround" + +DEPEND="!64bitworkaround? ( sys-libs/libunwind )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + # set up the make options in here so that we can actually make use + # of them on both compile and install. + + # Avoid building the unit testing if we're not going to execute + # tests; this trick here allows us to ignore the tests without + # touching the build system (and thus without rebuilding + # autotools). Keep commented as long as it's restricted. + use test || \ + makeopts="${makeopts} noinst_PROGRAMS= " + + # don't install _anything_ from the documentation, since it would + # install it in non-standard locations, and would just waste time. + makeopts="${makeopts} dist_doc_DATA= " +} + +src_prepare() { + epatch "${FILESDIR}/${MY_P}+glibc-2.16.patch" + epatch "${FILESDIR}/${MY_P}-32bit-barrier.patch" +} + +src_configure() { + use largepages && append-cppflags -DTCMALLOC_LARGE_PAGES + + append-flags -fno-strict-aliasing -fno-omit-frame-pointer + + econf \ + --disable-static \ + --disable-dependency-tracking \ + --enable-fast-install \ + $(use_enable 64bitworkaround frame-pointers) \ + $(use_enable debug debugalloc) \ + $(use_enable minimal) +} + +src_compile() { + emake ${makeopts} +} + +src_test() { + case "${LD_PRELOAD}" in + *libsandbox*) + ewarn "Unable to run tests when sanbox is enabled." + ewarn "See http://bugs.gentoo.org/290249" + return 0 + ;; + esac + + emake check +} + +src_install() { + emake DESTDIR="${D}" install ${makeopts} + + # Remove libtool files since we dropped the static libraries + find "${D}" -name '*.la' -delete + + dodoc README AUTHORS ChangeLog TODO NEWS + pushd doc + dohtml -r * + popd +} diff --git a/metadata/cache/dev-util/google-perftools-2.0-r1 b/metadata/cache/dev-util/google-perftools-2.0-r1 new file mode 100644 index 0000000..171a607 --- /dev/null +++ b/metadata/cache/dev-util/google-perftools-2.0-r1 @@ -0,0 +1,22 @@ +!64bitworkaround? ( sys-libs/libunwind ) +!64bitworkaround? ( sys-libs/libunwind ) +0 +http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz + +http://code.google.com/p/gperftools/ +MIT +Fast, multi-threaded malloc() and nifty performance analysis tools +-* ~arm ~amd64 ~ppc64 ~x86 ~x86-fbsd +eutils flag-o-matic multilib toolchain-funcs user +largepages +debug minimal test 64bitworkaround + + + +4 + +compile configure install prepare setup test + + + + +