bad assert?
cf m/next.h:
#define ASSERT_VALID_POINTER(pnt) (assert ((((int) pnt) & 1) == 0))
SL Baur wrote:
Sean MacLennan <bn932(a)freenet.carleton.ca> writes:
...
> I am trying to port XEmacs to QNX and have hit a snag. I am hoping
> someone will immediately see the problem.......
> Here is the make output (beta40):
>
EMACSBOOTSTRAPLOADPATH="/home/xemacs/xemacs-20.0/src/../lisp/:/home/xemacs/xemacs-20.0"
> ./temacs -batch -l /home/xemacs/xemacs-20.0/src/../lisp/update-elc.el
> Loading /home/xemacs/xemacs-20.0/src/../lisp/update-elc.el...
> Loading find-paths.el... (10184)
> Loading packages.el... (17300)
> Loading setup-paths.el... (4096)
> Loading dump-paths.el... (0)
> Loading /home/xemacs/xemacs-20.0/src/../lisp/dumped-lisp.el...(160)
>
EMACSBOOTSTRAPLOADPATH="/home/xemacs/xemacs-20.0/src/../lisp/:/home/xemacs/xemacs-20.0"
> ./temacs -batch -l /home/xemacs/xemacs-20.0/src/../lisp/loadup.el dump
> Loading /home/xemacs/xemacs-20.0/src/../lisp/loadup.el...
> Using load-path (/home/xemacs/xemacs-20.0/src/../lisp/
> /home/xemacs/xemacs-20.0)
> Loading /home/xemacs/xemacs-20.0/src/../lisp/dumped-lisp.el...(204)
> Loading /home/xemacs/xemacs-20.0/lisp/backquote.elc... (2486)
> Loading /home/xemacs/xemacs-20.0/lisp/bytecomp-runtime.elc...Fatal
> error: assertion failed, file alloc.c, line 3831, (((EMACS_UINT) ((void
> *) (((ptr->car) & ((1UL << ((4 * 8) - 4)) - 1UL))))) & 3) == 0
> make: [xemacs] Error 134 (ignored)
> make: *** [xemacs] Error 1
> If it is any help, here are the bytecomp-runtime.el[c], the config.h and
> the makefile. Do not hesitate to ask for more info!!!!
Um, at least in my case, none of your attachments are very useful for
identifying a problem. Please just send the Installation file
generated by configure (M-x describe-installation).
The code above is one place where the pointer tag bits are being
diddled with. You are apparently using the system malloc (using the
old GNU Malloc distributed with XEmacs might be easier and it might
not).
Have you tried building with -DUSE_MINIMAL_TAGBITS? The System malloc
on Linux (the new GNU malloc) has a tendency to return pointers which
can collide with the usual Lisp tagbits. Check the documentation for
malloc and make sure that it does not use mmap. If it does, you will
have to arrange to have it turned off while XEmacs is dumping or you
will lose. See the code guarded by `#ifdef DOUG_LEA_MALLOC' for clues
on how to do this with one implementation.