GNU bug report logs - #30855
25.3; temacs fails with bus error during garbage collection

Previous Next

Package: emacs;

Reported by: Ulrich Mueller <ulm <at> gentoo.org>

Date: Mon, 19 Mar 2018 15:25:01 UTC

Severity: normal

Found in version 25.3

Fixed in version 26.1

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 30855 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Schwab <schwab <at> suse.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Ulrich Mueller <ulm <at> gentoo.org>, Paul Eggert <eggert <at> cs.ucla.edu>,
 gentoo-bug <at> opensource.sf-tec.de, 30855 <at> debbugs.gnu.org
Subject: Re: bug#30855: 25.3;
 temacs fails with bus error during garbage collection
Date: Tue, 20 Mar 2018 16:26:19 +0100
On Mär 20 2018, Eli Zaretskii <eliz <at> gnu.org> wrote:

> So you are saying that we should be doing the below instead?
>
> diff --git a/src/alloc.c b/src/alloc.c
> index 9d0e2d3..18546ca 100644
> --- a/src/alloc.c
> +++ b/src/alloc.c
> @@ -4983,7 +4983,8 @@ mark_memory (void *start, void *end)
>    for (pp = start; (void *) pp < end; pp += GC_POINTER_ALIGNMENT)
>      {
>        mark_maybe_pointer (*(void **) pp);
> -      mark_maybe_object (*(Lisp_Object *) pp);
> +      if ((intptr_t) pp % GCALIGNMENT == 0)

That should be alignof(Lisp_Object).  A Lisp_Object only needs
Lisp_Object alignment.  GCALIGNMENT is about the _value_ of a
Lisp_Object (ie. the address of the Lisp object that this Lisp_Object
points to).

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab <at> suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."




This bug report was last modified 7 years and 66 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.