There's some report at xemacs-beta-ja that XEmacs 21.2.29
can't build with --with-canna option. Typical error is like
this:
EMACSBOOTSTRAPLOADPATH="/export/home2/syrinx/can/work/Emacs/Xemacs/21.2/xemacs.can/src/../lisp/:/export/home2/syrinx/can/work/Emacs/Xemacs/21.2/xemacs.can"
EMACSBOOTSTRAPMODULEPATH="/export/home2/syrinx/can/work/Emacs/Xemacs/21.2/xemacs.can/src/../modules/:/export/home2/syrinx/can/work/Emacs/Xemacs/21.2/xemacs.can"
./temacs -batch -l
/export/home2/syrinx/can/work/Emacs/Xemacs/21.2/xemacs.can/src/../lisp/update-elc.el
Fatal error: assertion failed, file alloc.c, line 2495, abort()
*** Error code 134
make: Fatal error: Command failed for target `update-elc.stamp'
Current working directory /export/home2/syrinx/can/work/Emacs/Xemacs/21.2/xemacs.can/src
*** Error code 1
make: Fatal error: Command failed for target `src'
He said he can compile XEmacs using --with-canna=no.
Abort occurs at:
void
dumpopaque (void *varaddress, size_t size)
{
if (dumpopaqueidx >= countof (dumpopaquevec))
abort ();
With below change, now DEFVAR_INT and stuff is stored at
dumpopaquevec, which size is 200.
2000-02-10 Olivier Galibert <galibert(a)pobox.com>
* symeval.h (struct symbol_value_magic): Remove "next" kludge and
use a value field instead.
(symbol_value_forward_forward): Use value field.
(DEFVAR_SYMVAL_FWD): Use value field.
(DEFVAR_SYMVAL_FWD_INT): Added. Dumps the int with dumpopaque.
[...]
I grepped the source code:
grep '^[
\t]*DEFVAR_\(INT\|CONST_INT\|BOOL\|CONST_BOOL\|LISP_MAGIC\|INT_MAGIC\|BOOL_MAGIC\)'
*.c | wc -l
234
grep '^[
\t]*DEFVAR_\(INT\|CONST_INT\|BOOL\|CONST_BOOL\|LISP_MAGIC\|INT_MAGIC\|BOOL_MAGIC\)'
mule-canna.c | wc -l
130
Wow! More than half comes from mule-canna.c.
It's possible some of them are #ifdef'ed out, but there's
234 entry which might be in dumpopaquevec. And no wander
why people not using canna, includes myself, saw no problem.
Now I know the problem, but I don't know that code enough
to provide a fix.
Olivier?
--
Yoshiki Hayashi
Show replies by date