From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: boehm-gc troubles with 2.0.11 on NetBSD/i386 Date: Tue, 22 Apr 2014 12:14:48 -0400 Message-ID: <87tx9lcpdz.fsf@yeeloong.lan> References: <87mwfrg4to.fsf@yeeloong.lan> <87ioqffztd.fsf@yeeloong.lan> <87eh13fs6a.fsf@yeeloong.lan> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1398183424 29551 80.91.229.3 (22 Apr 2014 16:17:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 22 Apr 2014 16:17:04 +0000 (UTC) Cc: guile-devel@gnu.org To: Greg Troxel Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Apr 22 18:16:57 2014 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WcdNQ-0001Nr-AY for guile-devel@m.gmane.org; Tue, 22 Apr 2014 18:16:56 +0200 Original-Received: from localhost ([::1]:56137 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WcdNP-0007pm-OY for guile-devel@m.gmane.org; Tue, 22 Apr 2014 12:16:55 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WcdNF-0007lo-Jh for guile-devel@gnu.org; Tue, 22 Apr 2014 12:16:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WcdN9-0002km-AT for guile-devel@gnu.org; Tue, 22 Apr 2014 12:16:45 -0400 Original-Received: from world.peace.net ([96.39.62.75]:60710) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WcdN9-0002Ul-5h for guile-devel@gnu.org; Tue, 22 Apr 2014 12:16:39 -0400 Original-Received: from ip72-221-68-65.ri.ri.cox.net ([72.221.68.65] helo=yeeloong.lan) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1WcdMo-0007Rn-PP; Tue, 22 Apr 2014 12:16:18 -0400 In-Reply-To: (Greg Troxel's message of "Tue, 22 Apr 2014 09:01:56 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 96.39.62.75 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:17097 Archived-At: --=-=-= Content-Type: text/plain Greg Troxel writes: > I am curious if others are having success on other *BSD, and which > versions and architectures. zacts on #guile has done work on a guile 2.0.11 package for FreeBSD ports, and based on his reports it seems to work well. IIRC, he built it (and boehm-gc) with threads enabled (pthreads). There was just one notable issue: guile needs a patch (see attached) for clang 3.4 on 32-bit systems. I haven't yet pushed this to git because it needs to be made more portable. Anyway, I doubt it's related to the problem you're seeing. Mark --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=align-fix.patch Content-Description: Preliminary guile fix for clang 3.4 on 32-bit systems diff --git a/libguile/foreign.c b/libguile/foreign.c index 01af900..59f5e72 100644 --- a/libguile/foreign.c +++ b/libguile/foreign.c @@ -814,7 +814,7 @@ SCM_DEFINE (scm_pointer_to_procedure, "pointer->procedure", 3, 0, 0, static const struct { - scm_t_uint64 dummy; /* ensure 8-byte alignment; perhaps there's a better way */ + SCM_ALIGNED (8) scm_t_uint64 dummy; /* alignment */ const scm_t_uint8 bytes[10 * (sizeof (struct scm_objcode) + 8 + sizeof (struct scm_objcode) + 32)]; } raw_bytecode = { @@ -867,7 +867,7 @@ make_objcode_trampoline (unsigned int nargs) static const struct { - scm_t_uint64 dummy; /* alignment */ + SCM_ALIGNED (8) scm_t_uint64 dummy; /* alignment */ scm_t_cell cells[10 * 2]; /* 10 double cells */ } objcode_cells = { 0, diff --git a/libguile/gsubr.c b/libguile/gsubr.c index b6f261f..38b7ce1 100644 --- a/libguile/gsubr.c +++ b/libguile/gsubr.c @@ -213,7 +213,7 @@ */ static const struct { - scm_t_uint64 dummy; /* ensure 8-byte alignment; perhaps there's a better way */ + SCM_ALIGNED (8) scm_t_uint64 dummy; /* alignment */ const scm_t_uint8 bytes[121 * (sizeof (struct scm_objcode) + 16 + sizeof (struct scm_objcode) + 32)]; } raw_bytecode = { @@ -317,7 +317,7 @@ static const struct static const struct { - scm_t_uint64 dummy; /* alignment */ + SCM_ALIGNED (8) scm_t_uint64 dummy; /* alignment */ scm_t_cell cells[121 * 2]; /* 11*11 double cells */ } objcode_cells = { 0, --=-=-=--