--- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/configure.ac +++ emacs/configure.ac @@ -2092,7 +2092,7 @@ system_malloc=$emacs_cv_sanitize_address -hybrid_malloc= +hybrid_malloc=yes case "$opsys" in ## darwin ld insists on the use of malloc routines in the System framework. --- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/Makefile.in +++ emacs/src/Makefile.in @@ -373,6 +373,7 @@ region-cache.o sound.o atimer.o \ doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ profiler.o decompress.o \ + sheap.o \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) obj = $(base_obj) $(NS_OBJC_OBJ) --- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/gmalloc.c +++ emacs/src/gmalloc.c @@ -72,7 +72,7 @@ #define free gfree #endif /* HYBRID_MALLOC */ -#ifdef CYGWIN +//#ifdef CYGWIN extern void *bss_sbrk (ptrdiff_t size); extern int bss_sbrk_did_unexec; extern char bss_sbrk_buffer[]; @@ -80,7 +80,7 @@ #define DUMPED bss_sbrk_did_unexec #define ALLOCATED_BEFORE_DUMPING(P) \ ((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer) -#endif +//#endif #ifdef __cplusplus extern "C" @@ -1525,16 +1525,19 @@ __default_morecore (ptrdiff_t increment) { void *result; -#if defined (CYGWIN) +//#if defined (CYGWIN) if (!DUMPED) { return bss_sbrk (increment); } -#endif +//#endif +#if 0 result = (void *) __sbrk (increment); if (result == (void *) -1) return NULL; return result; +#endif + return NULL; } /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. --- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/print.c +++ emacs/src/print.c @@ -755,7 +755,7 @@ print_output_debug_flag = x; } -#if defined (GNU_LINUX) +#if defined (GNU_LINUX) && defined (__GLIBC__) /* This functionality is not vitally important in general, so we rely on non-portable ability to use stderr as lvalue. */ --- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/unexelf.c +++ emacs/src/unexelf.c @@ -632,6 +632,9 @@ off_t new_file_size; void *new_break; + extern int bss_sbrk_did_unexec; + bss_sbrk_did_unexec = 1; + /* Pointers to the base of the image of the two files. */ caddr_t old_base, new_base;