GNU bug report logs -
#2403
23.0.90; emacs bootstrap under AIX hangs at lisp/international/characters.el
Previous Next
Reported by: Ulrich Mueller <ulm <at> gentoo.org>
Date: Fri, 20 Feb 2009 05:05:05 UTC
Severity: normal
Tags: patch
Done: Ulrich Mueller <ulm <at> gentoo.org>
Bug is archived. No further changes may be made.
Full log
Message #30 received at 2403 <at> emacsbugs.donarmstrong.com (full text, mbox):
> I digged a little bit deeper to this problem. temacs is in an endless
> loop in the following for loop in the alloca.c file:
> --- alloca.c:5101 ---
> #if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \
> || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS)
> mark_stack ();
> #else
> {
> register struct gcpro *tail;
> => for (tail = gcprolist; tail; tail = tail->next)
> for (i = 0; i < tail->nvars; i++)
> mark_object (tail->var[i]);
> }
> #endif
> ---------------------
> If I examine the values in gdb then I see that the second element of
> gcprolist points to itself in the next element. That's why emacs loops.
> Any idea how to fix that?
No idea. This should never happen, obviously. The gcprolist (and its
elements) should only ever be touched by the macros GCPRO<n> and
UNGCPRO, so the only thing that comes to mind is that someone does
GCPRO1 twice in the same block.
You may want to add some
eassert(gcprolist != &gcpro<n>);
to the GCPRO macros which may catch the bug. Alternatively, if you look
at the backtrace, the problematic uses of GCPRO<n> should be nearby.
Of course, maybe the problem really is one of the stack being clobbered.
Stefan
This bug report was last modified 16 years and 82 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.