Hi,

I would respond in-thread, but I can't find the thread that had the
original report that emacs-22 doesn't work under vmmap. Perhaps it was
only on icb...

Anyways, emacs-22.3p8 doesn't work under vmmap on i386. And the lovely
thing is, it's not my bug. :)
Emacs, by way of elf commands, insists on having the data area
(ep_daddr) start at address 0x81bd000 (approx 136MB). This means that,
starting at that address, a huge amount of memory (BRKSIZ + MAXDSIZ =
3GB) is unavailable to load libraries.

Normally, this is not a problem (try this on sparc and it just works,
for example). But i386 is special in the way it handles W^X requiring
approx 512MB to load libraries (this presentation explains it all:
http://www.openbsd.org/papers/ven05-deraadt/index.html ).

Short story long, emacs fails to load its libraries into the area it
reserved for brk() and our ld.so, noticing it is asked to work miracles
here, rightfully objects.

Possible way to fix this: teach emacs to be happy with the default
ep_daddr instead of being special or get PXE working (hint hint!).
-- 
Ariane

Reply via email to