--- emacs-25.1/configure.ac 2016-07-25 07:08:36.000000000 +0000 +++ emacs-25.1-musl/configure.ac 2016-10-24 15:38:00.518625055 +0000 @@ -2133,7 +2133,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-25.1/src/Makefile.in 2016-06-29 09:49:20.000000000 +0000 +++ emacs-25.1-musl/src/Makefile.in 2016-10-24 15:38:00.518625055 +0000 @@ -398,6 +398,7 @@ doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ $(XWIDGETS_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-25.1/src/gmalloc.c 2016-06-29 09:49:22.000000000 +0000 +++ emacs-25.1-musl/src/gmalloc.c 2016-10-24 15:38:00.518625055 +0000 @@ -70,7 +70,7 @@ #define aligned_alloc galigned_alloc #define free gfree -#ifdef CYGWIN +//#ifdef CYGWIN extern void *bss_sbrk (ptrdiff_t size); extern int bss_sbrk_did_unexec; extern char bss_sbrk_buffer[]; @@ -78,7 +78,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" @@ -1523,16 +1523,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-25.1/src/print.c 2016-06-29 09:49:22.000000000 +0000 +++ emacs-25.1-musl/src/print.c 2016-10-24 15:38:00.518625055 +0000 @@ -775,7 +775,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-25.1/src/unexelf.c 2016-06-29 09:49:23.000000000 +0000 +++ emacs-25.1-musl/src/unexelf.c 2016-10-24 15:38:00.518625055 +0000 @@ -227,6 +227,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;