mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
Add musl patch to support HYBRID_MALLOC on elf systems
* src/gmalloc.c: Adjust for HYBRID_MALLOC in the non CYGWIN case. (__default_morecore): Here, in particular. * configure.ac: Define HYBRID_MALLOC when unexelf.o is used. New variable SHEAP_OBJ. * src/Makefile.in: Use it. (Bug#22086)
This commit is contained in:
parent
dec1390845
commit
d6585a910e
12
configure.ac
12
configure.ac
@ -2121,7 +2121,13 @@ case "$opsys" in
|
||||
cygwin) hybrid_malloc=yes;;
|
||||
esac
|
||||
|
||||
if test "${system_malloc}" != yes && test "${doug_lea_malloc}" != yes \
|
||||
&& test "${UNEXEC_OBJ}" = unexelf.o && test "${hybrid_malloc}" != no; then
|
||||
hybrid_malloc=yes
|
||||
fi
|
||||
|
||||
GMALLOC_OBJ=
|
||||
SHEAP_OBJ=
|
||||
if test "${system_malloc}" = "yes"; then
|
||||
AC_DEFINE([SYSTEM_MALLOC], 1,
|
||||
[Define to 1 to use the system memory allocator, even if it is not
|
||||
@ -2136,6 +2142,7 @@ elif test "$hybrid_malloc" = yes; then
|
||||
GNU_MALLOC=
|
||||
GNU_MALLOC_reason="only before dumping"
|
||||
GMALLOC_OBJ=gmalloc.o
|
||||
SHEAP_OBJ=sheap.o
|
||||
VMLIMIT_OBJ=
|
||||
else
|
||||
test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
|
||||
@ -2156,9 +2163,10 @@ else
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(GMALLOC_OBJ)
|
||||
AC_SUBST(SHEAP_OBJ)
|
||||
AC_SUBST(VMLIMIT_OBJ)
|
||||
|
||||
if test "$doug_lea_malloc" = "yes" ; then
|
||||
if test "$doug_lea_malloc" = "yes" && test "$hybrid_malloc" != yes; then
|
||||
if test "$GNU_MALLOC" = yes ; then
|
||||
GNU_MALLOC_reason="
|
||||
(Using Doug Lea's new malloc from the GNU C Library.)"
|
||||
@ -5035,7 +5043,7 @@ fi
|
||||
AC_SUBST(RALLOC_OBJ)
|
||||
|
||||
if test "$opsys" = "cygwin"; then
|
||||
CYGWIN_OBJ="sheap.o cygw32.o"
|
||||
CYGWIN_OBJ="cygw32.o"
|
||||
## Cygwin differs because of its unexec().
|
||||
PRE_ALLOC_OBJ=
|
||||
POST_ALLOC_OBJ=lastfile.o
|
||||
|
@ -254,7 +254,10 @@ XFIXES_CFLAGS = @XFIXES_CFLAGS@
|
||||
## widget.o if USE_X_TOOLKIT, otherwise empty.
|
||||
WIDGET_OBJ=@WIDGET_OBJ@
|
||||
|
||||
## sheap.o if CYGWIN, otherwise empty.
|
||||
## sheap.o if HYBRID_MALLOC, otherwise empty.
|
||||
SHEAP_OBJ=@SHEAP_OBJ@
|
||||
|
||||
## cygw32.o if CYGWIN, otherwise empty.
|
||||
CYGWIN_OBJ=@CYGWIN_OBJ@
|
||||
|
||||
## fontset.o fringe.o image.o if we have any window system
|
||||
@ -397,6 +400,7 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
|
||||
doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \
|
||||
$(XWIDGETS_OBJ) \
|
||||
profiler.o decompress.o \
|
||||
$(SHEAP_OBJ) \
|
||||
$(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \
|
||||
$(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ)
|
||||
obj = $(base_obj) $(NS_OBJC_OBJ)
|
||||
|
@ -70,7 +70,7 @@ extern void emacs_abort (void);
|
||||
#define aligned_alloc galigned_alloc
|
||||
#define free gfree
|
||||
|
||||
#ifdef CYGWIN
|
||||
#ifdef HYBRID_MALLOC
|
||||
extern void *bss_sbrk (ptrdiff_t size);
|
||||
extern int bss_sbrk_did_unexec;
|
||||
extern char bss_sbrk_buffer[];
|
||||
@ -1542,7 +1542,7 @@ void *
|
||||
__default_morecore (ptrdiff_t increment)
|
||||
{
|
||||
void *result;
|
||||
#if defined (CYGWIN)
|
||||
#ifdef HYBRID_MALLOC
|
||||
if (!DUMPED)
|
||||
{
|
||||
return bss_sbrk (increment);
|
||||
|
Loading…
Reference in New Issue
Block a user