public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ian Stakenvicius" <axs@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/jemalloc/, dev-libs/jemalloc/files/
Date: Tue, 29 Mar 2016 02:16:12 +0000 (UTC)	[thread overview]
Message-ID: <1459217759.909ce41704c037d6e5ddc9fb68f0c8de90f8b800.axs@gentoo> (raw)

commit:     909ce41704c037d6e5ddc9fb68f0c8de90f8b800
Author:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 29 02:14:44 2016 +0000
Commit:     Ian Stakenvicius <axs <AT> gentoo <DOT> org>
CommitDate: Tue Mar 29 02:15:59 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=909ce417

dev-libs/jemalloc: version bump to jemalloc-4.1.0

Included upstream commit 33184bf69813087 as requested by developers of dev-lang/rust,
to allow system jemalloc to be used with rust.

Package-Manager: portage-2.2.26

 dev-libs/jemalloc/Manifest                         |  1 +
 .../files/jemalloc-4.1-fix_stack_corruption.patch  | 70 ++++++++++++++++++++++
 dev-libs/jemalloc/jemalloc-4.1.0.ebuild            | 48 +++++++++++++++
 3 files changed, 119 insertions(+)

diff --git a/dev-libs/jemalloc/Manifest b/dev-libs/jemalloc/Manifest
index 005eea5..9a35203 100644
--- a/dev-libs/jemalloc/Manifest
+++ b/dev-libs/jemalloc/Manifest
@@ -2,3 +2,4 @@ DIST jemalloc-2.2.5.tar.bz2 224118 SHA256 efcc9636757bd7f53a0fde084c2988bfe26f28
 DIST jemalloc-3.3.1.tar.bz2 252997 SHA256 35c433cc1df5cdf9eb58b7980338552fc1d7aa64f89fe5643a972ccedb7cf20a SHA512 32814e8678af4954e26c0c0a0e5d06aba8f3844205fe212c5e41929dfab6a94ff11127a9238b5c18d72749827c467ecb874b8f3a9bc161cf1afdf4ea84c58690 WHIRLPOOL 35e8948e18ea7111ae830a8245be995b35f44ed2c2f687f706ee6941c78350c2cfaabefba223c4433069de47a9f92d621feaf176ec0c728e513e5f076e5fc874
 DIST jemalloc-3.6.0.tar.bz2 338964 SHA256 e16c2159dd3c81ca2dc3b5c9ef0d43e1f2f45b04548f42db12e7c12d7bdf84fe SHA512 ebe7c64558a87a735b5906d5cb7527c241664eeae7328538675a12eabe7a1004be0f8766a3bd2a78e61334b196ca7ffc0ee8b8ff59167922a35f126cd1e76e43 WHIRLPOOL d5452005951b10d9d529349481779d79361ec8d8ac1f36f4b54408b5e0184f35d79fee8378188d98f1b8e41ae13557a2cf41ab849b68856ba69f33870fe6e980
 DIST jemalloc-4.0.4.tar.bz2 391483 SHA256 3fda8d8d7fcd041aa0bebbecd45c46b28873cf37bd36c56bf44961b36d0f42d0 SHA512 93be0551a80d5f5dc3a1044ef3d5f06c5ce65f3c1fd753743ee64340b841fc2d7902178774ab71eaa633f68abad44109870eb84159679fdc8ce6d93db3a53112 WHIRLPOOL c8bc1a81555b30ff519fda90bfbcfcdb6c9e370ba7478bca17058e58e08c36d20a1995ab12d5374d4edb9cdd2469748517a6f1795a24667c5f798c4c0c756a9c
+DIST jemalloc-4.1.0.tar.bz2 412900 SHA256 fad06d714f72adb4265783bc169c6d98eeb032d57ba02d87d1dcb4a2d933ec8e SHA512 12433101936a104115d8d93991b4849daf897bd39d6c28b1235215c7abc627163a70d19259fb1f2eeb0cdd66cfe889c2e40eb77dccee6debd73b1a4313d0de73 WHIRLPOOL 0305d1cc715c565749c5e9c2de396d349c0d79513da80b461324c82f880c6a070a932cea19802ac809810fe01690dcb24047914f937ddf167a990cf7b4110f0c

diff --git a/dev-libs/jemalloc/files/jemalloc-4.1-fix_stack_corruption.patch b/dev-libs/jemalloc/files/jemalloc-4.1-fix_stack_corruption.patch
new file mode 100644
index 0000000..f36c188
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-4.1-fix_stack_corruption.patch
@@ -0,0 +1,70 @@
+From 33184bf69813087bf1885b0993685f9d03320c69 Mon Sep 17 00:00:00 2001
+From: Dmitri Smirnov <dmitrism@microsoft.com>
+Date: Mon, 29 Feb 2016 14:30:19 -0800
+Subject: [PATCH] Fix stack corruption and uninitialized var warning
+
+Stack corruption happens in x64 bit
+
+This resolves #347.
+---
+ src/arena.c      |  2 +-
+ test/unit/hash.c | 13 +++++++------
+ 2 files changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/src/arena.c b/src/arena.c
+index 99e20fd..965c0fe 100644
+--- a/src/arena.c
++++ b/src/arena.c
+@@ -2423,7 +2423,7 @@ arena_malloc_large(tsd_t *tsd, arena_t *arena, szind_t binind, bool zero)
+ 	uintptr_t random_offset;
+ 	arena_run_t *run;
+ 	arena_chunk_map_misc_t *miscelm;
+-	UNUSED bool idump;
++	UNUSED bool idump JEMALLOC_CC_SILENCE_INIT(false);
+ 
+ 	/* Large allocation. */
+ 	usize = index2size(binind);
+diff --git a/test/unit/hash.c b/test/unit/hash.c
+index f50ba81..010c9d7 100644
+--- a/test/unit/hash.c
++++ b/test/unit/hash.c
+@@ -64,14 +64,15 @@ static void
+ hash_variant_verify_key(hash_variant_t variant, uint8_t *key)
+ {
+ 	const int hashbytes = hash_variant_bits(variant) / 8;
+-	VARIABLE_ARRAY(uint8_t, hashes, hashbytes * 256);
++	const int hashes_size = hashbytes * 256;
++	VARIABLE_ARRAY(uint8_t, hashes, hashes_size);
+ 	VARIABLE_ARRAY(uint8_t, final, hashbytes);
+ 	unsigned i;
+ 	uint32_t computed, expected;
+ 
+ 	memset(key, 0, KEY_SIZE);
+-	memset(hashes, 0, sizeof(hashes));
+-	memset(final, 0, sizeof(final));
++	memset(hashes, 0, hashes_size);
++	memset(final, 0, hashbytes);
+ 
+ 	/*
+ 	 * Hash keys of the form {0}, {0,1}, {0,1,2}, ..., {0,1,...,255} as the
+@@ -102,17 +103,17 @@ hash_variant_verify_key(hash_variant_t variant, uint8_t *key)
+ 	/* Hash the result array. */
+ 	switch (variant) {
+ 	case hash_variant_x86_32: {
+-		uint32_t out = hash_x86_32(hashes, hashbytes*256, 0);
++		uint32_t out = hash_x86_32(hashes, hashes_size, 0);
+ 		memcpy(final, &out, sizeof(out));
+ 		break;
+ 	} case hash_variant_x86_128: {
+ 		uint64_t out[2];
+-		hash_x86_128(hashes, hashbytes*256, 0, out);
++		hash_x86_128(hashes, hashes_size, 0, out);
+ 		memcpy(final, out, sizeof(out));
+ 		break;
+ 	} case hash_variant_x64_128: {
+ 		uint64_t out[2];
+-		hash_x64_128(hashes, hashbytes*256, 0, out);
++		hash_x64_128(hashes, hashes_size, 0, out);
+ 		memcpy(final, out, sizeof(out));
+ 		break;
+ 	} default: not_reached();

diff --git a/dev-libs/jemalloc/jemalloc-4.1.0.ebuild b/dev-libs/jemalloc/jemalloc-4.1.0.ebuild
new file mode 100644
index 0000000..a03d99d
--- /dev/null
+++ b/dev-libs/jemalloc/jemalloc-4.1.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit toolchain-funcs multilib-build
+
+DESCRIPTION="Jemalloc is a general-purpose scalable concurrent allocator"
+HOMEPAGE="http://www.canonware.com/jemalloc/"
+SRC_URI="http://www.canonware.com/download/${PN}/${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 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"
+	"${FILESDIR}/${PN}-4.1-fix_stack_corruption.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() {
+	ECONF_SOURCE="${S}" econf \
+		$(use_enable debug)
+		$(use_enable stats)
+}
+
+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.1.dylib || die
+	fi
+	use static-libs || find "${ED}" -name '*.a' -delete
+}


             reply	other threads:[~2016-03-29  2:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-29  2:16 Ian Stakenvicius [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-11-01 15:23 [gentoo-commits] repo/gentoo:master commit in: dev-libs/jemalloc/, dev-libs/jemalloc/files/ Thomas Deutschmann
2019-06-11 23:48 Thomas Deutschmann
2022-05-04 14:33 WANG Xuerui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1459217759.909ce41704c037d6e5ddc9fb68f0c8de90f8b800.axs@gentoo \
    --to=axs@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox