--- 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;
 

