summaryrefslogtreecommitdiff
path: root/dev-util/google-perftools
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-util/google-perftools
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-util/google-perftools')
-rw-r--r--dev-util/google-perftools/Manifest11
-rw-r--r--dev-util/google-perftools/files/gperftools-2.0+glibc-2.16.patch13
-rw-r--r--dev-util/google-perftools/files/gperftools-2.0-32bit-barrier.patch17
-rw-r--r--dev-util/google-perftools/google-perftools-2.0-r2.ebuild71
-rw-r--r--dev-util/google-perftools/google-perftools-2.4.ebuild85
-rw-r--r--dev-util/google-perftools/google-perftools-2.6.2.ebuild85
-rw-r--r--dev-util/google-perftools/google-perftools-2.6.3.ebuild85
-rw-r--r--dev-util/google-perftools/metadata.xml26
8 files changed, 393 insertions, 0 deletions
diff --git a/dev-util/google-perftools/Manifest b/dev-util/google-perftools/Manifest
new file mode 100644
index 000000000000..9f675d110be0
--- /dev/null
+++ b/dev-util/google-perftools/Manifest
@@ -0,0 +1,11 @@
+AUX gperftools-2.0+glibc-2.16.patch 604 BLAKE2B c7f18515f32a2bcb4d8a0a7217f7d42df8224fd357af43ea691c8a5861318861f26cbc00a3c79225d641504ea8459803e563aefc57384ff4ed99e8cc5ef271a4 SHA512 aa9b94c4712227b6414fc34a47154f416b120004c81704ab181c7985b6dce60bf1d98e4175678fb445cd59bb6c85d4d7bb0a093e186ecc9f115bc841d27cb964
+AUX gperftools-2.0-32bit-barrier.patch 792 BLAKE2B 8efea587a96f4796d55809714ebf2b2a7058f0161431b7b3b404e0709e338f0a981525f74691b923354b622bbd2295ee001b2a2975da0e12a94cdc07ed207c1d SHA512 a39fd183d76a76e5c4cb3915f966e008250b4c72098bd2a9d13f10e01efd8dd1e36a51e0d4ef5f712d20398fa8605aa40e2529af085e80f918a1e227d7c92def
+DIST gperftools-2.0.tar.gz 1261243 BLAKE2B a37c62f6f3c27a29036955c37a58c480e5cc628bd49036e20fe616e610d45b6727b0782605892a543cb477c388093feb5527e6557c5bc8446aaf874e946884f6 SHA512 61bf7a26974058912a4165cbc363351bc735599d36ab569dc7e84a75a690adbc17a4178512a57469fc7c17befaad2a271ef4ea5c29a36b664153938939269926
+DIST gperftools-2.4.tar.gz 890402 BLAKE2B f4893d7c9bbd3a8dc5b4d8a25837039261fa32782e13653991002ab666d6e81de637932a8b46c66df219336adcc395a217a4ce32332e8e1558beeb140ea642f2 SHA512 77198c150ee26579adc8f190be0c4ba90a9e3854b006c3aa9252b5863b1fce317fd690c6aa0ed202c81f0bbcfbe2d5f8a182263e77b7fb4fbc6b3e8bfffc9fb0
+DIST gperftools-2.6.2.tar.gz 911744 BLAKE2B e5798a2f0f2973f02bccabb2550a9df54319e505fc715795cd836ced631b29bfd8e6f8ddf3c7f6dceb0f166523bb0fa55564b1cbc896c8cd8cfd475263c07c39 SHA512 20c3460f806c6425d54e8d1020f15bc8940aacd7bf1367b03a116fb873bbd6c1e1fbb75df1d0ca341eaec813552fec394327175115ea8442a4b7a1ef17f0df2f
+DIST gperftools-2.6.3.tar.gz 911813 BLAKE2B dae223927835f65b819836b25595df2943a0762ac3b6346e3d0186dab486cfa3e4eabc1f5a2ec43314f53ea96a68acb75991b76055591395bc52e78f655630d3 SHA512 6418c382760c8870ef42a535fcb65a623c1a9fd3ab58fcb7cfe2dd5048b2268b434427da36bc0c76beef2c28e13a6926d32d67084d8ca6675b78650a62de77a7
+EBUILD google-perftools-2.0-r2.ebuild 1803 BLAKE2B b81145202e20964c9c5784aa1b7b7afb1bef69659339654375a2019732d7696b2bd6fe0bf0347c7f559146b7c64e4c203ec7ad7626ccd68d3f030b488005a92e SHA512 7fe925ddae89c431f7177c4bc97dc2e5a663452e9fde34d16f28fd5dbfa8e584b961362cc1f65ee726478b54a2d000b15ef3bf81ce4e10c11aee2a78990e3a58
+EBUILD google-perftools-2.4.ebuild 2297 BLAKE2B 7c0dd1e856d745ecf215d3974f1bc2dd057f7ca3381bcc5ca7b8d2ce800b029c831934d27a938056aaa724a500f5799ef792155c2e371ea9fe2be4f0cdec0995 SHA512 026a68d5920847c00fd1af24397ce45575dab9e16f569c9d55b7b0424511cab365be429e33bb7d74ef70a57c38eacc825d3809d44c204678b046c9a76302a460
+EBUILD google-perftools-2.6.2.ebuild 2313 BLAKE2B 76778b92beab5a0c5c9bcca957551ab891e64dfb47db73eb296fffde41608b9c031e6f20f6d480202865e0776f844bf10b046a2cf4d6d7a656afd05be064245e SHA512 dd7328c32fdf020bfbbd35e074f12b43d7d8fb3cb59aadb430d2c0119be6bb08bb2fd7a22c62314b477aad6edff92e6a42c686d203fd9abceb0e3cd8587073db
+EBUILD google-perftools-2.6.3.ebuild 2318 BLAKE2B d33a9b7b8178087d2d4621b5fe19294844e6aeda7e1cbcbdc94184eb1582cc1f97c54b07d689218677b124fdd0e48b15c6315659875b1e1f11b3efc28ac3362b SHA512 4a49fa149ad25f5ce4b533259be598833ba3f99b5899abdcbc7cc6aefaea55dd047c09dfe02be22b12a880d3a57ec3da4dde69acb3d1bae6a3b912b3c8d2c90d
+MISC metadata.xml 894 BLAKE2B 1c28c2e2c55af11aa4f2fa160dc63d16f4ab9deee8be2265af431a4594f8dd6a51a5258dd81b125e2f61f8367e26b6d1ce4248820b437f393051a8f036bd0b27 SHA512 8b940221b8eab122bf8579bce312c71c4ff49e6a35982e9b38990ad181ead444b8cb98b8a919fa941f99842fa28be9e5b456eb07954b3b25f4acc4112d98c0d2
diff --git a/dev-util/google-perftools/files/gperftools-2.0+glibc-2.16.patch b/dev-util/google-perftools/files/gperftools-2.0+glibc-2.16.patch
new file mode 100644
index 000000000000..b17e0d57f5fb
--- /dev/null
+++ b/dev-util/google-perftools/files/gperftools-2.0+glibc-2.16.patch
@@ -0,0 +1,13 @@
+Index: gperftools-2.0/src/base/linuxthreads.cc
+===================================================================
+--- gperftools-2.0.orig/src/base/linuxthreads.cc
++++ gperftools-2.0/src/base/linuxthreads.cc
+@@ -193,7 +193,7 @@ static volatile int *sig_pids, sig_num_t
+ /* Signal handler to help us recover from dying while we are attached to
+ * other threads.
+ */
+-static void SignalHandler(int signum, siginfo_t *si, void *data) {
++static void SignalHandler(int signum, struct siginfo *si, void *data) {
+ if (sig_pids != NULL) {
+ if (signum == SIGABRT) {
+ while (sig_num_threads-- > 0) {
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 000000000000..df89a92ed010
--- /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 <robbat2@gentoo.org>
+
+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-r2.ebuild b/dev-util/google-perftools/google-perftools-2.0-r2.ebuild
new file mode 100644
index 000000000000..c0b175dcf38d
--- /dev/null
+++ b/dev-util/google-perftools/google-perftools-2.0-r2.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+MY_P="gperftools-${PV}"
+
+inherit toolchain-funcs eutils flag-o-matic autotools-utils
+
+DESCRIPTION="Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE="https://github.com/gperftools/gperftools"
+SRC_URI="https://github.com/gperftools/gperftools/archive/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/4"
+# contains ASM code, with support for
+# freebsd x86/amd64
+# linux x86/amd64/ppc/ppc64/arm
+# OSX ppc/amd64
+# AIX ppc/ppc64
+KEYWORDS="-* amd64 arm ppc ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="largepages +debug minimal test static-libs"
+
+DEPEND="sys-libs/libunwind"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+HTML_DOCS="doc"
+
+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+=" noinst_PROGRAMS= "
+}
+
+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
+
+ local myeconfargs=(
+ --htmldir=/usr/share/doc/${PF}/html
+ $(use_enable debug debugalloc)
+ $(use_enable minimal)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_test() {
+ case "${LD_PRELOAD}" in
+ *libsandbox*)
+ ewarn "Unable to run tests when sanbox is enabled."
+ ewarn "See https://bugs.gentoo.org/290249"
+ return 0
+ ;;
+ esac
+
+ autotools-utils_src_test
+}
diff --git a/dev-util/google-perftools/google-perftools-2.4.ebuild b/dev-util/google-perftools/google-perftools-2.4.ebuild
new file mode 100644
index 000000000000..a2986988f31c
--- /dev/null
+++ b/dev-util/google-perftools/google-perftools-2.4.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_P="gperftools-${PV}"
+inherit toolchain-funcs flag-o-matic vcs-snapshot autotools multilib-minimal
+
+DESCRIPTION="Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE="https://github.com/gperftools/gperftools"
+SRC_URI="https://github.com/gperftools/gperftools/tarball/${MY_P} -> ${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/4"
+# contains ASM code, with support for
+# freebsd x86/amd64
+# linux x86/amd64/ppc/ppc64/arm
+# OSX ppc/amd64
+# AIX ppc/ppc64
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="largepages +debug minimal optimisememory test static-libs"
+
+DEPEND="sys-libs/libunwind"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+HTML_DOCS="doc"
+
+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+=" noinst_PROGRAMS= "
+}
+
+src_prepare() {
+ default
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ use largepages && append-cppflags -DTCMALLOC_LARGE_PAGES
+ use optimisememory && append-cppflags -DTCMALLOC_SMALL_BUT_SLOW
+ append-flags -fno-strict-aliasing -fno-omit-frame-pointer
+
+ econf \
+ --htmldir=/usr/share/doc/${PF}/html \
+ --docdir=/usr/share/doc/${PF} \
+ --enable-shared \
+ $(use_enable static-libs static) \
+ $(use_enable debug debugalloc) \
+ $(if [[ ${ABI} == x32 ]]; then printf "--enable-minimal\n" else use_enable minimal; fi)
+}
+
+src_test() {
+ case "${LD_PRELOAD}" in
+ *libsandbox*)
+ ewarn "Unable to run tests when sandbox is enabled."
+ ewarn "See https://bugs.gentoo.org/290249"
+ return 0
+ ;;
+ esac
+
+ multilib-minimal_src_test
+}
+
+src_install() {
+ if ! use minimal && has x32 ${MULTILIB_ABIS}; then
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/gperftools/heap-checker.h
+ /usr/include/gperftools/heap-profiler.h
+ /usr/include/gperftools/stacktrace.h
+ /usr/include/gperftools/profiler.h
+ )
+ fi
+
+ multilib-minimal_src_install
+}
diff --git a/dev-util/google-perftools/google-perftools-2.6.2.ebuild b/dev-util/google-perftools/google-perftools-2.6.2.ebuild
new file mode 100644
index 000000000000..cdbf549f9647
--- /dev/null
+++ b/dev-util/google-perftools/google-perftools-2.6.2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_P="gperftools-${PV}"
+inherit toolchain-funcs flag-o-matic vcs-snapshot autotools multilib-minimal
+
+DESCRIPTION="Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE="https://github.com/gperftools/gperftools"
+SRC_URI="https://github.com/gperftools/gperftools/tarball/${MY_P} -> ${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/4"
+# contains ASM code, with support for
+# freebsd x86/amd64
+# linux x86/amd64/ppc/ppc64/arm
+# OSX ppc/amd64
+# AIX ppc/ppc64
+KEYWORDS="-* amd64 arm ~arm64 ppc ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="largepages +debug minimal optimisememory test static-libs"
+
+DEPEND="sys-libs/libunwind"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+HTML_DOCS="docs"
+
+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+=" noinst_PROGRAMS= "
+}
+
+src_prepare() {
+ default
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ use largepages && append-cppflags -DTCMALLOC_LARGE_PAGES
+ use optimisememory && append-cppflags -DTCMALLOC_SMALL_BUT_SLOW
+ append-flags -fno-strict-aliasing -fno-omit-frame-pointer
+
+ econf \
+ --htmldir=${EPREFIX}/usr/share/doc/${PF}/html \
+ --docdir=${EPREFIX}/usr/share/doc/${PF} \
+ --enable-shared \
+ $(use_enable static-libs static) \
+ $(use_enable debug debugalloc) \
+ $(if [[ ${ABI} == x32 ]]; then printf "--enable-minimal\n" else use_enable minimal; fi)
+}
+
+src_test() {
+ case "${LD_PRELOAD}" in
+ *libsandbox*)
+ ewarn "Unable to run tests when sandbox is enabled."
+ ewarn "See https://bugs.gentoo.org/290249"
+ return 0
+ ;;
+ esac
+
+ multilib-minimal_src_test
+}
+
+src_install() {
+ if ! use minimal && has x32 ${MULTILIB_ABIS}; then
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/gperftools/heap-checker.h
+ /usr/include/gperftools/heap-profiler.h
+ /usr/include/gperftools/stacktrace.h
+ /usr/include/gperftools/profiler.h
+ )
+ fi
+
+ multilib-minimal_src_install
+}
diff --git a/dev-util/google-perftools/google-perftools-2.6.3.ebuild b/dev-util/google-perftools/google-perftools-2.6.3.ebuild
new file mode 100644
index 000000000000..708d67991674
--- /dev/null
+++ b/dev-util/google-perftools/google-perftools-2.6.3.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_P="gperftools-${PV}"
+inherit toolchain-funcs flag-o-matic vcs-snapshot autotools multilib-minimal
+
+DESCRIPTION="Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE="https://github.com/gperftools/gperftools"
+SRC_URI="https://github.com/gperftools/gperftools/tarball/${MY_P} -> ${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/4"
+# contains ASM code, with support for
+# freebsd x86/amd64
+# linux x86/amd64/ppc/ppc64/arm
+# OSX ppc/amd64
+# AIX ppc/ppc64
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="largepages +debug minimal optimisememory test static-libs"
+
+DEPEND="sys-libs/libunwind"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+HTML_DOCS="docs"
+
+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+=" noinst_PROGRAMS= "
+}
+
+src_prepare() {
+ default
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ use largepages && append-cppflags -DTCMALLOC_LARGE_PAGES
+ use optimisememory && append-cppflags -DTCMALLOC_SMALL_BUT_SLOW
+ append-flags -fno-strict-aliasing -fno-omit-frame-pointer
+
+ econf \
+ --htmldir=${EPREFIX}/usr/share/doc/${PF}/html \
+ --docdir=${EPREFIX}/usr/share/doc/${PF} \
+ --enable-shared \
+ $(use_enable static-libs static) \
+ $(use_enable debug debugalloc) \
+ $(if [[ ${ABI} == x32 ]]; then printf "--enable-minimal\n" else use_enable minimal; fi)
+}
+
+src_test() {
+ case "${LD_PRELOAD}" in
+ *libsandbox*)
+ ewarn "Unable to run tests when sandbox is enabled."
+ ewarn "See https://bugs.gentoo.org/290249"
+ return 0
+ ;;
+ esac
+
+ multilib-minimal_src_test
+}
+
+src_install() {
+ if ! use minimal && has x32 ${MULTILIB_ABIS}; then
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/gperftools/heap-checker.h
+ /usr/include/gperftools/heap-profiler.h
+ /usr/include/gperftools/stacktrace.h
+ /usr/include/gperftools/profiler.h
+ )
+ fi
+
+ multilib-minimal_src_install
+}
diff --git a/dev-util/google-perftools/metadata.xml b/dev-util/google-perftools/metadata.xml
new file mode 100644
index 000000000000..e6791a60364b
--- /dev/null
+++ b/dev-util/google-perftools/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <use>
+ <flag name="largepages">
+ Use (experimental) larger pages for tcmalloc, this increases
+ memory usage, but should speed up the allocation/free
+ operations.
+ </flag>
+ <flag name="debug">
+ Build a set of libraries with debug support (so-called
+ debugalloc). These are available by default but are not needed
+ unless you're actually developing using tcmalloc.
+ </flag>
+ <flag name="minimal">
+ Only build the tcmalloc_minimal library, ignoring the heap
+ checker and the profilers.
+ </flag>
+ <flag name="optimisememory">
+ To build libtcmalloc with smaller internal caches.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="github">gperftools/gperftools</remote-id>
+ </upstream>
+</pkgmetadata>