[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 22.0.99 emacs dumper (?) problem
From: |
Chong Yidong |
Subject: |
Re: 22.0.99 emacs dumper (?) problem |
Date: |
20 May 2007 23:26:46 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
> an emacs binary built using the Fedora 7 build system will seg-fault
> immediately when run on a Fedora 7 install. The stack trace shows
> an assert failing in the glibc malloc code (usually it's setlocale
> invoking malloc); it appears that something about the way the dumper
> preserves the malloc state between the dumping emacs and the dumped
> emacs isn't quite working.
>From reading the bugzilla entry, it appears that the problem is a set
of bugs in glibc that are exposed by the way Emacs uses
malloc_set_state. Changing Emacs to avoid this, even if it's
possible, will probably delay the Emacs 22.1 release by another year
or so, which is undesirable.
Therefore, I propose adding the following entry to the Emacs PROBLEMS
file.
** Emacs crashes on startup on Fedora Core 7.
This appears to be due to a change in the internal format of freed
blocks introduced between glibc-2.5.90-21 and glibc-2.5.90-22. As a
result, Emacs binaries built using older versions of glibc may crash
when run using newer versions of glibc. For details, see
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=239344
Rebuilding Emacs with newer versions of glibc, with the following
patch applied to the Emacs source tree, should remove the crashes.
--- emacs-22.0.95/src/Makefile.in-save 2007-05-13 11:53:01.000000000 -0700
+++ emacs-22.0.95/src/Makefile.in 2007-05-13 11:53:55.000000000 -0700
@@ -960,7 +960,7 @@
ln temacs${EXEEXT} emacs${EXEEXT}
#else
#ifdef HAVE_SHM
- LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
+ MALLOC_MMAP_MAX_=0 LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
#else /* ! defined (HAVE_SHM) */
LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
#endif /* ! defined (HAVE_SHM) */
Are there any objections?