guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: boehm-gc troubles with 2.0.11 on NetBSD/i386


From: Mark H Weaver
Subject: Re: boehm-gc troubles with 2.0.11 on NetBSD/i386
Date: Tue, 22 Apr 2014 12:14:48 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Greg Troxel <address@hidden> 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

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,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]