From owner-svn-ports-head@freebsd.org Mon Oct 17 11:17:05 2016 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71CA0C1499F; Mon, 17 Oct 2016 11:17:05 +0000 (UTC) (envelope-from wg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25036656; Mon, 17 Oct 2016 11:17:05 +0000 (UTC) (envelope-from wg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u9HBH44u000270; Mon, 17 Oct 2016 11:17:04 GMT (envelope-from wg@FreeBSD.org) Received: (from wg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u9HBH4VS000269; Mon, 17 Oct 2016 11:17:04 GMT (envelope-from wg@FreeBSD.org) Message-Id: <201610171117.u9HBH4VS000269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: wg set sender to wg@FreeBSD.org using -f From: William Grzybowski Date: Mon, 17 Oct 2016 11:17:04 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r424109 - head/lang/erlang-riak/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2016 11:17:05 -0000 Author: wg Date: Mon Oct 17 11:17:04 2016 New Revision: 424109 URL: https://svnweb.freebsd.org/changeset/ports/424109 Log: lang/erlang-riak: fix to build with clang 3.9.0 PR: 213515 Submitted by: dim Added: head/lang/erlang-riak/files/patch-commit-5a00e72 (contents, props changed) Added: head/lang/erlang-riak/files/patch-commit-5a00e72 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/erlang-riak/files/patch-commit-5a00e72 Mon Oct 17 11:17:04 2016 (r424109) @@ -0,0 +1,116 @@ +commit 5a00e724a58ee29d4012cca79c8aa33979e74eb6 +Author: Sverker Eriksson +Date: Wed Nov 20 21:33:20 2013 +0100 + + erts: Fix alignment bug in allocator start code + + Bug never released. + +diff --git erts/emulator/beam/erl_alloc_util.c erts/emulator/beam/erl_alloc_util.c +index 1fdee4d..00b87ac 100644 +--- erts/emulator/beam/erl_alloc_util.c ++++ erts/emulator/beam/erl_alloc_util.c +@@ -372,6 +372,8 @@ do { \ + + #define ERTS_CRR_ALCTR_FLG_IN_POOL (((erts_aint_t) 1) << 0) + #define ERTS_CRR_ALCTR_FLG_BUSY (((erts_aint_t) 1) << 1) ++#define ERTS_CRR_ALCTR_FLG_MASK (ERTS_CRR_ALCTR_FLG_IN_POOL | \ ++ ERTS_CRR_ALCTR_FLG_BUSY) + + #ifdef ERTS_SMP + #define SBC_HEADER_SIZE \ +@@ -1404,14 +1406,14 @@ get_used_allctr(Allctr_t *pref_allctr, int pref_lock, void *p, UWord *sizep, + + if (ERTS_ALC_TS_PREF_LOCK_IF_USED == pref_lock + && pref_allctr->thread_safe) { +- used_allctr = (Allctr_t *) (iallctr & ~FLG_MASK); ++ used_allctr = (Allctr_t *) (iallctr & ~ERTS_CRR_ALCTR_FLG_MASK); + if (pref_allctr == used_allctr) { + erts_mtx_lock(&pref_allctr->mutex); + locked_pref_allctr = 1; + } + } + +- while ((iallctr & ((~FLG_MASK)|ERTS_CRR_ALCTR_FLG_IN_POOL)) ++ while ((iallctr & ((~ERTS_CRR_ALCTR_FLG_MASK)|ERTS_CRR_ALCTR_FLG_IN_POOL)) + == (((erts_aint_t) pref_allctr)|ERTS_CRR_ALCTR_FLG_IN_POOL)) { + erts_aint_t act; + +@@ -1426,7 +1428,7 @@ get_used_allctr(Allctr_t *pref_allctr, int pref_lock, void *p, UWord *sizep, + iallctr = act; + } + +- used_allctr = (Allctr_t *) (iallctr & ~FLG_MASK); ++ used_allctr = (Allctr_t *) (iallctr & ~ERTS_CRR_ALCTR_FLG_MASK); + + if (ERTS_ALC_TS_PREF_LOCK_IF_USED == pref_lock) { + if (locked_pref_allctr && used_allctr != pref_allctr) { +@@ -1436,16 +1438,16 @@ get_used_allctr(Allctr_t *pref_allctr, int pref_lock, void *p, UWord *sizep, + } + + ERTS_ALC_CPOOL_ASSERT( +- (((iallctr & ~FLG_MASK) == (erts_aint_t) pref_allctr) +- ? (((iallctr & FLG_MASK) == ERTS_CRR_ALCTR_FLG_IN_POOL) +- || ((iallctr & FLG_MASK) == 0)) ++ (((iallctr & ~ERTS_CRR_ALCTR_FLG_MASK) == (erts_aint_t) pref_allctr) ++ ? (((iallctr & ERTS_CRR_ALCTR_FLG_MASK) == ERTS_CRR_ALCTR_FLG_IN_POOL) ++ || ((iallctr & ERTS_CRR_ALCTR_FLG_MASK) == 0)) + : 1)); + + return used_allctr; + } + } + +- used_allctr = (Allctr_t *) (iallctr & ~FLG_MASK); ++ used_allctr = (Allctr_t *) (iallctr & ~ERTS_CRR_ALCTR_FLG_MASK); + + if (ERTS_ALC_TS_PREF_LOCK_IF_USED == pref_lock + && used_allctr == pref_allctr +@@ -1776,7 +1778,7 @@ handle_delayed_dealloc(Allctr_t *allctr, + ERTS_ALC_CPOOL_ASSERT(allctr == crr->cpool.orig_allctr); + ERTS_ALC_CPOOL_ASSERT(((erts_aint_t) allctr) + != (erts_smp_atomic_read_nob(&crr->allctr) +- & ~FLG_MASK)); ++ & ~ERTS_CRR_ALCTR_FLG_MASK)); + + erts_smp_atomic_set_nob(&crr->allctr, ((erts_aint_t) allctr)); + +@@ -2919,7 +2921,7 @@ cpool_fetch(Allctr_t *allctr, UWord size) + #ifdef ERTS_ALC_CPOOL_DEBUG + ERTS_ALC_CPOOL_ASSERT(erts_smp_atomic_xchg_nob(&crr->allctr, + ((erts_aint_t) allctr)) +- == (((erts_aint_t) allctr) & ~FLG_MASK)); ++ == (((erts_aint_t) allctr) & ~ERTS_CRR_ALCTR_FLG_MASK)); + #else + erts_smp_atomic_set_nob(&crr->allctr, ((erts_aint_t) allctr)); + #endif +@@ -2961,7 +2963,7 @@ cpool_fetch(Allctr_t *allctr, UWord size) + (erts_aint_t) allctr, + exp); + if (act == exp) { +- cpool_delete(allctr, ((Allctr_t *) (act & ~FLG_MASK)), crr); ++ cpool_delete(allctr, ((Allctr_t *) (act & ~ERTS_CRR_ALCTR_FLG_MASK)), crr); + return crr; + } + } +@@ -3056,7 +3058,7 @@ schedule_dealloc_carrier(Allctr_t *allctr, Carrier_t *crr) + ERTS_ALC_CPOOL_ASSERT(crr == FIRST_BLK_TO_MBC(allctr, blk)); + ERTS_ALC_CPOOL_ASSERT(((erts_aint_t) allctr) + == (erts_smp_atomic_read_nob(&crr->allctr) +- & ~FLG_MASK)); ++ & ~ERTS_CRR_ALCTR_FLG_MASK)); + + if (ddq_enqueue(&orig_allctr->dd.q, BLK2UMEM(blk), cinit)) + erts_alloc_notify_delayed_dealloc(orig_allctr->ix); +@@ -5422,6 +5424,11 @@ erts_alcu_start(Allctr_t *allctr, AllctrInit_t *init) + { + /* erts_alcu_start assumes that allctr has been zeroed */ + ++ if (((UWord)allctr & ERTS_CRR_ALCTR_FLG_MASK) != 0) { ++ erl_exit(ERTS_ABORT_EXIT, "%s:%d:erts_alcu_start: Alignment error\n", ++ __FILE__, __LINE__); ++ } ++ + if (!initialized) + goto error; +