summaryrefslogtreecommitdiff
path: root/dev-libs/jemalloc
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-libs/jemalloc
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-libs/jemalloc')
-rw-r--r--dev-libs/jemalloc/Manifest15
-rw-r--r--dev-libs/jemalloc/files/jemalloc-3.5.1-no-pprof.patch25
-rw-r--r--dev-libs/jemalloc/files/jemalloc-3.5.1-strip-optimization.patch27
-rw-r--r--dev-libs/jemalloc/files/jemalloc-3.5.1_fix_html_install.patch12
-rw-r--r--dev-libs/jemalloc/files/jemalloc-4.5.0-fix_html_install.patch25
-rw-r--r--dev-libs/jemalloc/files/jemalloc-4.5.0-strip-optimization.patch35
-rw-r--r--dev-libs/jemalloc/files/jemalloc-5.0.1-strip-optimization.patch26
-rw-r--r--dev-libs/jemalloc/jemalloc-3.6.0.ebuild53
-rw-r--r--dev-libs/jemalloc/jemalloc-4.4.0.ebuild54
-rw-r--r--dev-libs/jemalloc/jemalloc-4.5.0.ebuild59
-rw-r--r--dev-libs/jemalloc/jemalloc-5.0.1.ebuild62
-rw-r--r--dev-libs/jemalloc/metadata.xml20
12 files changed, 413 insertions, 0 deletions
diff --git a/dev-libs/jemalloc/Manifest b/dev-libs/jemalloc/Manifest
new file mode 100644
index 000000000000..4fea51eac28d
--- /dev/null
+++ b/dev-libs/jemalloc/Manifest
@@ -0,0 +1,15 @@
+AUX jemalloc-3.5.1-no-pprof.patch 822 BLAKE2B 3794e3a7ad8d351673fc90a3f085a202c4e9e4937ffe5cfb78980a0d11fdb9992f30cfd9fd0e350450fb3647369e54097569ed7e54e5f23f83ee332b9f45deb8 SHA512 1560154337302c7a56d79af21822d27b5d5bfd64afa4af3753306ca0d0a307b5abb9b240be168c7591d858a9c4be15e8d6571fd52da2d6732c472755dffa545f
+AUX jemalloc-3.5.1-strip-optimization.patch 886 BLAKE2B 5311ae00c3ed4471d3022048ca0e82fb62b12345f602a6fce8b60ce0ba4e4291ca76df1a17c4fbed203d5209db9bd60a27a4cac9f92eaab49297c1045c344de6 SHA512 5835c534ccb04b47216d3678b08d663a09a93e60fb651e9c0b489fb747ca5f32060c89da3dc0f44b45964ffbffbd8da32b75a842198c180a79179266565b204a
+AUX jemalloc-3.5.1_fix_html_install.patch 356 BLAKE2B 8b8926248930acbeb5bf9cf4bc51b2ba30fbe7148670601c8870b504b007f7b008f811f5d9aa142c82aeb1928941456f41cf7b601be54bb6ab6c10e5868d5e08 SHA512 d5ad9e7c9b93f2b0311a43bdd963cea6f32f2e5a53a916ce52b89918d3d76e0306158239cf2a7b508f102607fa550374a9ec8463f2b3a064015cf7bb2ce852cd
+AUX jemalloc-4.5.0-fix_html_install.patch 581 BLAKE2B 97ced7415f9d7dc9d29252ef73888e1e9685d4cfe82e08b35e3b01f1d50aefdabd463c362bc14ca29097c5ff3b24ae53f3f225305b7c5a8770562e03c92c950a SHA512 ce210e9c9394a9ba5a16b5524322f1e477a140e55c076543a1f4dcfb1c8491f7839cb49fba433088773b24d2656b821c3072e729c0c7e41cb90dc131ad6828ff
+AUX jemalloc-4.5.0-strip-optimization.patch 880 BLAKE2B 251919ff0ceedb815963e8dc151b0a9da684c22d6b053e40be36e31ace751c9fb3718c02759532ef4aea7710eaa9631d94780f3e85d6c7dcb1084e0353ae0e09 SHA512 6c6dd0a99fe58ad0f6cb6306e14e2724dcd39d372e91c01540aebb31e8228b33d17ba0819e6a5c9cb7a3009eedb8f3a58319f0cde322cdf31c2c1cb47f98ff41
+AUX jemalloc-5.0.1-strip-optimization.patch 685 BLAKE2B f67c89bb123861cfe3c5b4616d78478693e083476f9e83648d976e613743e6367c9bce9f0b86a1e2fe514d3a3689a596ef94e4a53e26edfa95bdf0336ec0a9ef SHA512 dd4452feea0004b3f61d664a63da0751179a4be8095e76d94938034045114a68b32e0fe9872cb4810c2f3fc927963ef1b1886d210dc558b3c5a3f5eb9ef4240e
+DIST jemalloc-3.6.0.tar.bz2 338964 BLAKE2B a5edacc85c5bebf3b373e7fc8bafd9449273ff58c2e44e94eb9900f54b11f2d8b837a3a8ee76cce46777ccc40dea23905b7ff81eef5af39ea1d3f98017b27111 SHA512 ebe7c64558a87a735b5906d5cb7527c241664eeae7328538675a12eabe7a1004be0f8766a3bd2a78e61334b196ca7ffc0ee8b8ff59167922a35f126cd1e76e43
+DIST jemalloc-4.4.0.tar.bz2 440144 BLAKE2B 6acb91c5be6c5b17c209341dd08e6973e3ad5ecdfe7ebe5d8c78181cddca1fccba3c11628e736d66acd7698f7813f38077033d39093bf2e4bd704c8b4de60e7b SHA512 2f88fb17ede3bf87e334e9c80949870e0dd85b5adcdd89a1750ccf6df5240f35293159ac0a360d3a29cf0b1d17edf86dcc7997c6bf3190ae7da7442d3a3cc14e
+DIST jemalloc-4.5.0.tar.bz2 449992 BLAKE2B 6141c71f7f5f9cee91a59eeed9c69b0a69b3cc39666aa608445073c11ee3ca9b4777a851c5cb5adac80d42bfbf10a6726e5dc1340ffe85ea1ee884d87c7865da SHA512 76953363fe1007952232220afa1a91da4c1c33c02369b5ad239d8dd1d0792141197c15e8489a8f4cd301b08494e65cadd8ecd34d025cb0285700dd78d7248821
+DIST jemalloc-5.0.1.tar.bz2 499300 BLAKE2B 551933fcd93315968cbf89bfadc40313717ff216141af8a131f2333d10090438ddf36fbfdc0ee831cbec6f930ae15aa9cfaafae72ed4f38dd97b00712ca918e8 SHA512 8cb5957a5724eb2bbad120cf0028ea8b2b14b4a416c1751b7c967351a7fd51135058ea0d3c4dc1d127c86f3aa7e9fd5ef101857110aabfdb7789427791c432c3
+EBUILD jemalloc-3.6.0.ebuild 1907 BLAKE2B 798433f1866bc808756d99cc69e34081671ef537e1c428f6d03dbe9266bdebab79e7d5852ae5b73fa7b3127eb5805ff197a623aba5515f20376de7f19d2fd048 SHA512 f13a892b9457ab2e13e13654dda6ec372bc8e3d30e0c625a5f67546c56608beb1d16ba1a1d17c10ca8f4145e2536100406d2afb45767e87fe3a99b4c873506bd
+EBUILD jemalloc-4.4.0.ebuild 1751 BLAKE2B e39f6707e796afe8ea28e055d994f17e5f683e1bf1ab4ac67d492740cca2490553bf88685e8458dfaeb197a5b98ee6b58f242afee337d9cf73e9435c84f8931e SHA512 5d3a5d490de405548f193e29178cb41c876e093fb56af071bef0a8fd330c740b826127ea314e844583652380d02364729e3f8a0ab6ed76a97058ee93103e2712
+EBUILD jemalloc-4.5.0.ebuild 1787 BLAKE2B 06f3036d060df40707bb79c6520b62c13c55c3753d6f40fad5d82509baf76446de952b418c5fed71160a29331398167ceb7c199a872e553555ad6611506e5a4a SHA512 2fbf17ce207095a1948d0180b0769294fb90e5500297152629dc8c666fae1f8c6d182d1d823a2efeaf8b36cd9f9016cc036c9ed3f4be52bc371ab858f9dbcd2e
+EBUILD jemalloc-5.0.1.ebuild 1915 BLAKE2B 7ece59bb02fb7a809814e4925bdc3934660aeddd5ce9f28f51e545b79d0794e3861114cf48bfdf35f56a5e23453655cded7858a1f634f662b6a328273129b2db SHA512 fff3e8afea78b30f2ec4a4675c218779426d93c1437521c9532acf1f1cc3c417758a49765616a30d9b54c5dc8c51f7a8f66bb7fd5db4362c8a3c6bcfcf5496b5
+MISC metadata.xml 762 BLAKE2B db6f1712f7b716c824f199ec10e566fa543aa594a6bc75f60adca55e249163a96adbdff109a49327799bee090b3abadd9961c74878c0b0a9c54aa0cb4118f2a1 SHA512 4fdae623c6f76fad566807e7a48c3cf11b5818bf2f93e32f6c0a53558732642f0011dabb7bd4d7f637c8df141cccdb1075c48177a83caac78f9f375b3e57278a
diff --git a/dev-libs/jemalloc/files/jemalloc-3.5.1-no-pprof.patch b/dev-libs/jemalloc/files/jemalloc-3.5.1-no-pprof.patch
new file mode 100644
index 000000000000..30cbd501ec5d
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-3.5.1-no-pprof.patch
@@ -0,0 +1,25 @@
+diff -urN a/Makefile.in b/Makefile.in
+--- a/Makefile.in 2014-02-25 18:49:15.000000000 -0600
++++ b/Makefile.in 2014-03-07 18:24:10.978141932 -0600
+@@ -73,7 +73,6 @@
+ LIBJEMALLOC := $(LIBPREFIX)jemalloc$(install_suffix)
+
+ # Lists of files.
+-BINS := $(srcroot)bin/pprof $(objroot)bin/jemalloc.sh
+ C_HDRS := $(objroot)include/jemalloc/jemalloc$(install_suffix).h
+ C_SRCS := $(srcroot)src/jemalloc.c $(srcroot)src/arena.c \
+ $(srcroot)src/atomic.c $(srcroot)src/base.c $(srcroot)src/bitmap.c \
+@@ -273,13 +272,6 @@
+ build_lib_static: $(STATIC_LIBS)
+ build_lib: build_lib_shared build_lib_static
+
+-install_bin:
+- install -d $(BINDIR)
+- @for b in $(BINS); do \
+- echo "install -m 755 $$b $(BINDIR)"; \
+- install -m 755 $$b $(BINDIR); \
+-done
+-
+ install_include:
+ install -d $(INCLUDEDIR)/jemalloc
+ @for h in $(C_HDRS); do \
diff --git a/dev-libs/jemalloc/files/jemalloc-3.5.1-strip-optimization.patch b/dev-libs/jemalloc/files/jemalloc-3.5.1-strip-optimization.patch
new file mode 100644
index 000000000000..cc8736b84123
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-3.5.1-strip-optimization.patch
@@ -0,0 +1,27 @@
+diff -urN a/configure.ac b/configure.ac
+--- a/configure.ac 2014-02-25 18:49:15.000000000 -0600
++++ b/configure.ac 2014-03-07 18:19:53.718147847 -0600
+@@ -639,23 +639,6 @@
+ AC_DEFINE([JEMALLOC_IVSALLOC], [ ])
+ fi
+
+-dnl Only optimize if not debugging.
+-if test "x$enable_debug" = "x0" -a "x$no_CFLAGS" = "xyes" ; then
+- dnl Make sure that an optimization flag was not specified in EXTRA_CFLAGS.
+- optimize="no"
+- echo "$CFLAGS $EXTRA_CFLAGS" | grep '\-O' >/dev/null || optimize="yes"
+- if test "x${optimize}" = "xyes" ; then
+- if test "x$GCC" = "xyes" ; then
+- JE_CFLAGS_APPEND([-O3])
+- JE_CFLAGS_APPEND([-funroll-loops])
+- elif test "x$je_cv_msvc" = "xyes" ; then
+- JE_CFLAGS_APPEND([-O2])
+- else
+- JE_CFLAGS_APPEND([-O])
+- fi
+- fi
+-fi
+-
+ dnl Enable statistics calculation by default.
+ AC_ARG_ENABLE([stats],
+ [AS_HELP_STRING([--disable-stats],
diff --git a/dev-libs/jemalloc/files/jemalloc-3.5.1_fix_html_install.patch b/dev-libs/jemalloc/files/jemalloc-3.5.1_fix_html_install.patch
new file mode 100644
index 000000000000..1ce5ad2ede95
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-3.5.1_fix_html_install.patch
@@ -0,0 +1,12 @@
+diff -urN a/Makefile.in b/Makefile.in
+--- a/Makefile.in 2014-02-25 18:49:15.000000000 -0600
++++ b/Makefile.in 2014-03-07 18:26:23.074138895 -0600
+@@ -317,7 +317,7 @@
+ install -m 644 $$d $(MANDIR)/man3; \
+ done
+
+-install_doc: install_doc_html install_doc_man
++install_doc: install_doc_man
+
+ install: install_bin install_include install_lib install_doc
+
diff --git a/dev-libs/jemalloc/files/jemalloc-4.5.0-fix_html_install.patch b/dev-libs/jemalloc/files/jemalloc-4.5.0-fix_html_install.patch
new file mode 100644
index 000000000000..159702e6230c
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-4.5.0-fix_html_install.patch
@@ -0,0 +1,25 @@
+From c04d0b954adef2d3f1a30d91dc687f6a03b108eb Mon Sep 17 00:00:00 2001
+From:
+Date: Mon, 29 May 2017 00:58:32 -0500
+Subject: [PATCH 2/2] Do not install html doc
+
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e49a871..733932a 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -381,7 +381,7 @@ install_doc_man:
+ $(INSTALL) -m 644 $$d $(MANDIR)/man3; \
+ done
+
+-install_doc: install_doc_html install_doc_man
++install_doc: install_doc_man
+
+ install: install_bin install_include install_lib install_doc
+
+--
+2.13.0
+
diff --git a/dev-libs/jemalloc/files/jemalloc-4.5.0-strip-optimization.patch b/dev-libs/jemalloc/files/jemalloc-4.5.0-strip-optimization.patch
new file mode 100644
index 000000000000..8b346be86c06
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-4.5.0-strip-optimization.patch
@@ -0,0 +1,35 @@
+From c568271163445e380679788388f1cb1edbdeaf88 Mon Sep 17 00:00:00 2001
+From:
+Date: Mon, 29 May 2017 00:57:15 -0500
+Subject: [PATCH 1/2] Strip all optimization, let portage handle.
+
+---
+ configure.ac | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 20a8a64..d8af618 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -851,18 +851,6 @@ if test "x$enable_ivsalloc" = "x1" ; then
+ AC_DEFINE([JEMALLOC_IVSALLOC], [ ])
+ fi
+
+-dnl Only optimize if not debugging.
+-if test "x$enable_debug" = "x0" ; then
+- if test "x$GCC" = "xyes" ; then
+- JE_CFLAGS_ADD([-O3])
+- JE_CFLAGS_ADD([-funroll-loops])
+- elif test "x$je_cv_msvc" = "xyes" ; then
+- JE_CFLAGS_ADD([-O2])
+- else
+- JE_CFLAGS_ADD([-O])
+- fi
+-fi
+-
+ dnl Enable statistics calculation by default.
+ AC_ARG_ENABLE([stats],
+ [AS_HELP_STRING([--disable-stats],
+--
+2.13.0
+
diff --git a/dev-libs/jemalloc/files/jemalloc-5.0.1-strip-optimization.patch b/dev-libs/jemalloc/files/jemalloc-5.0.1-strip-optimization.patch
new file mode 100644
index 000000000000..523badf5775b
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-5.0.1-strip-optimization.patch
@@ -0,0 +1,26 @@
+diff --git a/configure.ac b/configure.ac
+index 1551ded8..2f470672 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -976,21 +976,6 @@ if test "x$enable_debug" = "x1" ; then
+ fi
+ AC_SUBST([enable_debug])
+
+-dnl Only optimize if not debugging.
+-if test "x$enable_debug" = "x0" ; then
+- if test "x$GCC" = "xyes" ; then
+- JE_CFLAGS_ADD([-O3])
+- JE_CXXFLAGS_ADD([-O3])
+- JE_CFLAGS_ADD([-funroll-loops])
+- elif test "x$je_cv_msvc" = "xyes" ; then
+- JE_CFLAGS_ADD([-O2])
+- JE_CXXFLAGS_ADD([-O2])
+- else
+- JE_CFLAGS_ADD([-O])
+- JE_CXXFLAGS_ADD([-O])
+- fi
+-fi
+-
+ dnl Enable statistics calculation by default.
+ AC_ARG_ENABLE([stats],
+ [AS_HELP_STRING([--disable-stats],
diff --git a/dev-libs/jemalloc/jemalloc-3.6.0.ebuild b/dev-libs/jemalloc/jemalloc-3.6.0.ebuild
new file mode 100644
index 000000000000..2940dc6db76a
--- /dev/null
+++ b/dev-libs/jemalloc/jemalloc-3.6.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools-multilib eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator"
+HOMEPAGE="http://jemalloc.net/ https://github.com/jemalloc/jemalloc"
+SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="debug static-libs stats"
+
+HTML_DOCS=( doc/jemalloc.html )
+
+PATCHES=( "${FILESDIR}/${PN}-3.5.1-strip-optimization.patch"
+ "${FILESDIR}/${PN}-3.5.1-no-pprof.patch"
+ "${FILESDIR}/${PN}-3.5.1_fix_html_install.patch"
+)
+
+MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h )
+
+# autotools-utils.eclass auto-adds configure options when static-libs is in IUSE
+# but jemalloc doesn't implement them in its configure; need this here to
+# supress the warnings until automagic is removed from the eclass
+QA_CONFIGURE_OPTIONS="--enable-static --disable-static --enable-shared --disable-shared"
+src_configure() {
+ myeconfargs=(
+ $(use_enable debug)
+ $(use_enable stats)
+ )
+ use sparc && append-cppflags -DLG_QUANTUM=4 -mcpu=ultrasparc
+ # The configure test for page shift requires running code which fails
+ # when cross-compiling. Since it uses _SC_PAGESIZE, and the majority
+ # of systems use 4096 as the base page size, just hardcode 12 here.
+ tc-is-cross-compiler && export je_cv_static_page_shift=12
+ autotools-multilib_src_configure
+}
+
+src_install() {
+ autotools-multilib_src_install
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fixup install_name, #437362
+ install_name_tool \
+ -id "${EPREFIX}"/usr/$(get_libdir)/libjemalloc.1.dylib \
+ "${ED}"/usr/$(get_libdir)/libjemalloc.1.dylib || die
+ fi
+ use static-libs || find "${ED}" -name '*.a' -delete
+}
diff --git a/dev-libs/jemalloc/jemalloc-4.4.0.ebuild b/dev-libs/jemalloc/jemalloc-4.4.0.ebuild
new file mode 100644
index 000000000000..399d51c93202
--- /dev/null
+++ b/dev-libs/jemalloc/jemalloc-4.4.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs multilib-build multilib-minimal
+
+DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator"
+HOMEPAGE="http://jemalloc.net/ https://github.com/jemalloc/jemalloc"
+SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="debug hardened static-libs stats"
+HTML_DOCS=( doc/jemalloc.html )
+PATCHES=( "${FILESDIR}/${PN}-3.5.1-strip-optimization.patch"
+ "${FILESDIR}/${PN}-3.5.1_fix_html_install.patch"
+)
+MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h )
+# autotools-utils.eclass auto-adds configure options when static-libs is in IUSE
+# but jemalloc doesn't implement them in its configure; need this here to
+# supress the warnings until automagic is removed from the eclass
+QA_CONFIGURE_OPTIONS="--enable-static --disable-static --enable-shared --disable-shared"
+
+multilib_src_configure() {
+ local myconf=()
+
+ if use hardened ; then
+ myconf+=( --disable-syscall )
+ fi
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ $(use_enable debug) \
+ $(use_enable stats) \
+ "${myconf[@]}"
+}
+
+multilib_src_install() {
+ # Copy man file which the Makefile looks for
+ cp "${S}/doc/jemalloc.3" "${BUILD_DIR}/doc" || die
+ emake DESTDIR="${D}" install
+}
+
+multilib_src_install_all() {
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fixup install_name, #437362
+ install_name_tool \
+ -id "${EPREFIX}"/usr/$(get_libdir)/libjemalloc.1.dylib \
+ "${ED}"/usr/$(get_libdir)/libjemalloc.2.dylib || die
+ fi
+ use static-libs || find "${ED}" -name '*.a' -delete
+}
diff --git a/dev-libs/jemalloc/jemalloc-4.5.0.ebuild b/dev-libs/jemalloc/jemalloc-4.5.0.ebuild
new file mode 100644
index 000000000000..5938140f4ee8
--- /dev/null
+++ b/dev-libs/jemalloc/jemalloc-4.5.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools toolchain-funcs multilib-minimal
+
+DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator"
+HOMEPAGE="http://jemalloc.net/ https://github.com/jemalloc/jemalloc"
+SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="debug hardened static-libs stats"
+HTML_DOCS=( doc/jemalloc.html )
+PATCHES=( "${FILESDIR}/${PN}-4.5.0-strip-optimization.patch"
+ "${FILESDIR}/${PN}-4.5.0-fix_html_install.patch"
+)
+MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h )
+# autotools-utils.eclass auto-adds configure options when static-libs is in IUSE
+# but jemalloc doesn't implement them in its configure; need this here to
+# supress the warnings until automagic is removed from the eclass
+QA_CONFIGURE_OPTIONS="--enable-static --disable-static --enable-shared --disable-shared"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+multilib_src_configure() {
+ local myconf=()
+
+ if use hardened ; then
+ myconf+=( --disable-syscall )
+ fi
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ $(use_enable debug) \
+ $(use_enable stats) \
+ "${myconf[@]}"
+}
+
+multilib_src_install() {
+ # Copy man file which the Makefile looks for
+ cp "${S}/doc/jemalloc.3" "${BUILD_DIR}/doc" || die
+ emake DESTDIR="${D}" install
+}
+
+multilib_src_install_all() {
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fixup install_name, #437362
+ install_name_tool \
+ -id "${EPREFIX}"/usr/$(get_libdir)/libjemalloc.1.dylib \
+ "${ED}"/usr/$(get_libdir)/libjemalloc.2.dylib || die
+ fi
+ use static-libs || find "${ED}" -name '*.a' -delete
+}
diff --git a/dev-libs/jemalloc/jemalloc-5.0.1.ebuild b/dev-libs/jemalloc/jemalloc-5.0.1.ebuild
new file mode 100644
index 000000000000..f5ad09f06a68
--- /dev/null
+++ b/dev-libs/jemalloc/jemalloc-5.0.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools toolchain-funcs multilib-minimal
+
+DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator"
+HOMEPAGE="http://jemalloc.net/ https://github.com/jemalloc/jemalloc"
+SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+IUSE="debug hardened +hugepages lazy-lock static-libs stats xmalloc"
+HTML_DOCS=( doc/jemalloc.html )
+PATCHES=( "${FILESDIR}/${PN}-5.0.1-strip-optimization.patch"
+ "${FILESDIR}/${PN}-4.5.0-fix_html_install.patch"
+)
+MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h )
+# autotools-utils.eclass auto-adds configure options when static-libs is in IUSE
+# but jemalloc doesn't implement them in its configure; need this here to
+# supress the warnings until automagic is removed from the eclass
+QA_CONFIGURE_OPTIONS="--enable-static --disable-static --enable-shared --disable-shared"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+multilib_src_configure() {
+ local myconf=()
+
+ if use hardened ; then
+ myconf+=( --disable-syscall )
+ fi
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ $(use_enable debug) \
+ $(use_enable lazy-lock) \
+ $(use_enable hugepages thp) \
+ $(use_enable stats) \
+ $(use_enable xmalloc) \
+ "${myconf[@]}"
+}
+
+multilib_src_install() {
+ # Copy man file which the Makefile looks for
+ cp "${S}/doc/jemalloc.3" "${BUILD_DIR}/doc" || die
+ emake DESTDIR="${D}" install
+}
+
+multilib_src_install_all() {
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fixup install_name, #437362
+ install_name_tool \
+ -id "${EPREFIX}"/usr/$(get_libdir)/libjemalloc.2.dylib \
+ "${ED}"/usr/$(get_libdir)/libjemalloc.2.dylib || die
+ fi
+ use static-libs || find "${ED}" -name '*.a' -delete
+}
diff --git a/dev-libs/jemalloc/metadata.xml b/dev-libs/jemalloc/metadata.xml
new file mode 100644
index 000000000000..848a0a7987dd
--- /dev/null
+++ b/dev-libs/jemalloc/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>mozilla@gentoo.org</email>
+ <name>Gentoo Mozilla Team</name>
+ </maintainer>
+ <longdescription lang="en">
+ Jemalloc is a general-purpose scalable concurrent allocator
+ </longdescription>
+ <use>
+ <flag name="hugepages">Enable transparent huge page support</flag>
+ <flag name="lazy-lock">Enable lazy locking (only lock when multi-threaded)</flag>
+ <flag name="stats">Enable statistics calculation/reporting</flag>
+ <flag name="xmalloc">Add support for xmalloc (abort-on-out-of-memory)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">jemalloc/jemalloc</remote-id>
+ </upstream>
+</pkgmetadata>