Hello all, The binary of current emacs on Mac OS X depends on internal implementation of system library. On Mac OS X 10.3, we cannot invoke emacs which is unexec'ed on Mac OS X 10.2.8, because malloc_default_zone()->size returns incorrect value (in unexec_realloc()). The attached patch solves this problem. Moreover, emacs compiled on Mac OS X 10.3 works for me on Mac OS X 10.4. It assumes that return value of malloc() is multiple of 16 and assumes that emacs requires only it is multiple of 8 (even when USE_LSB_TAG). It also changes ptr_in_unexec_regions() for efficiency. --- 2005-05-08 Nozomu Ando * unexmacosx.c: Include assert.h. (MACOSX_MALLOC_MULT16): Define to 1 if not already defined. (unexec_malloc_header_t): Add typedef. (ptr_in_unexec_regions): Define if MACOSX_MALLOC_MULT16. (unexec_malloc): Add assert. Malloc with struct unexec_malloc_header and record size on it if !in_dumped_exec. (unexec_realloc): Add assert. Use recorded size if in_dumped_exec && old_ptr is malloc'ed before unexec. Record new_size if !in_dumped_exec. (unexec_free): Free with struct unexec_malloc_header. --- Best Regards, Nozomu Ando ---