aboutsummaryrefslogtreecommitdiffstats
path: root/community/emacs/musl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/emacs/musl.patch')
-rw-r--r--community/emacs/musl.patch87
1 files changed, 87 insertions, 0 deletions
diff --git a/community/emacs/musl.patch b/community/emacs/musl.patch
new file mode 100644
index 0000000000..7841d04e76
--- /dev/null
+++ b/community/emacs/musl.patch
@@ -0,0 +1,87 @@
+--- 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;
+
+