help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Any success with emacs 2.1.4 under cygwin 1.5.21?


From: Sean M. Paus
Subject: Any success with emacs 2.1.4 under cygwin 1.5.21?
Date: Thu, 28 Sep 2006 17:49:52 -0400
User-agent: Thunderbird 1.5.0.7 (Windows/20060909)

I've recently upgraded my cygwin installation to 1.5.21.  Since then, I
have had no luck getting emacs to run.  I've tried the stock 21.2 that
comes with the cygwin distribution, the test 21.3 that was posted a
while back, and I've even downloaded and (well half) built the latest
sources from the emacs CVS repository.

The problem is that emacs just hangs and takes up gobs of CPU.  I
ultimately tracked this down to a tight infinite loop in
_malloc_internal (gmalloc.c).  For some reason, align (also in
gmalloc.c) is returning a pointer that is smaller than _heapbase.  The
calculation to determine what block the newly requested memory is in
(BLOCK(result+size)) returns a ridiculously huge number.  Since
_malloc_internal incrementally doubles the new size of the heap until
the requested memory fits, at some point the multiplication overflows
and newsize gets a value of 0.  Since 0 * 2 is always zero, the test for
BLOCK(result+size) > newsize will always succeed and _malloc_internal
gets stuck in a tight loop multiplying 0 by 2 forever.

The really strange thing is that, while building emacs, temacs has no
problem running.  Apparently, there's a different mechanism from the
standard sbrk (something called bss_sbrk) that temacs uses to increase
the size of the heap.  However, temacs then "disables" bss_sbrk causing
the standard sbrk to be "re-enabled".  It's at this point that
boostrap_emacs encounters the problem described above.

I can't find anything in the difference between cygwin 1.5.18 and 1.5.21
that might cause this.  It also appears that any support for cygwin has
dried up.

Any thoughts?

Sean

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]