Hi,
After upgrading from glibc 2.2.5 to 2.3.1 in Debian `sid', the
unexec
version of XEmacs builds successfully, but crashes immediately when
invoked. Are there reasons to believe that the new glibc might cause
problems with the unexec'd binary? It may be related to changes in
malloc, see below.
Certainly possible. However, I've personally checked xemacs-21.4.6
against the then-current glibc-2.2.90 in April, and it was working
fine. Since then, few malloc changes have gone in.
N.B. I don't consider this a glibc bug, I just want to try to
confirm
that it is related to the unexec process or malloc (we have an
alternative way to "dump" Lisp now, the so-called "portable dumper").
BTW: that "portable dumper" sounds like great news, please enable by
default soon :-).
I have downloaded the 21.4.10 CVS that you mentioned and will try it
tonight.
Until then, I'll try a shot in the dark and suggest:
2002-10-07 Wolfram Gloger <wg(a)malloc.de>
* malloc/malloc.c (sYSMALLOc): Only check for breakage due
to foreign sbrk()'s if arena is contiguous. Bug report from
Bruno Haible <bruno(a)clisp.org>.
--- malloc.c 2002/06/11 09:36:14 1.10
+++ malloc.c 2002/10/07 15:33:46
@@ -2911,7 +2911,7 @@
if (brk == old_end && snd_brk == (char*)(MORECORE_FAILURE))
set_head(old_top, (size + old_size) | PREV_INUSE);
- else if (old_size && brk < old_end) {
+ else if (contiguous(av) && old_size && brk < old_end) {
/* Oops! Someone else killed our space.. Can't touch anything. */
assert(0);
}
Regards,
Wolfram.