Fix the unexec build on GNU/Linux
The unexec build on GNU/Linux must use HYBRID_MALLOC (gmalloc.c) and sheap.c. This was inadvertently disabled because a configure-time test for 'sbrk' was moved as side effect of an unrelated change. * configure.ac: Test for 'sbrk' before using the result in the decision about SYSTEM_MALLOC and HYBRID_MALLOC. (HYBRID_MALLOC): Prevent Gnulib from redirecting 'free' to its replacement 'rpl_free'. * lib/Makefile.in (not_emacs_OBJECTS): Add mallooc/%.o and free.o.
This commit is contained in:
parent
dac694b8bb
commit
5e1a8d5654
2 changed files with 10 additions and 2 deletions
|
@ -2273,6 +2273,9 @@ doug_lea_malloc=$emacs_cv_var_doug_lea_malloc
|
|||
hybrid_malloc=
|
||||
system_malloc=yes
|
||||
|
||||
dnl This must be before the test of $ac_cv_func_sbrk below.
|
||||
AC_CHECK_FUNCS_ONCE([sbrk])
|
||||
|
||||
test $with_unexec = yes &&
|
||||
case "$opsys" in
|
||||
## darwin ld insists on the use of malloc routines in the System framework.
|
||||
|
@ -2306,6 +2309,9 @@ elif test "$hybrid_malloc" = yes; then
|
|||
GNU_MALLOC_reason=" (only before dumping)"
|
||||
GMALLOC_OBJ=gmalloc.o
|
||||
VMLIMIT_OBJ=
|
||||
# FIXME: This is to prevent Gnulib from redirecting 'free' to its
|
||||
# replacement, instead of 'hybrid_free' in gmalloc.c.
|
||||
gl_cv_func_free_preserves_errno=yes
|
||||
else
|
||||
test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
|
||||
VMLIMIT_OBJ=vm-limit.o
|
||||
|
@ -4677,7 +4683,7 @@ AC_CHECK_HEADERS(valgrind/valgrind.h)
|
|||
|
||||
AC_CHECK_MEMBERS([struct unipair.unicode], [], [], [[#include <linux/kd.h>]])
|
||||
|
||||
AC_CHECK_FUNCS_ONCE([__lsan_ignore_object sbrk])
|
||||
AC_CHECK_FUNCS_ONCE([__lsan_ignore_object])
|
||||
|
||||
AC_FUNC_FORK
|
||||
|
||||
|
|
|
@ -69,7 +69,9 @@ Makefile: ../config.status $(srcdir)/Makefile.in
|
|||
# Object modules that need not be built for Emacs.
|
||||
# Emacs does not need e-regex.o (it has its own regex-emacs.c),
|
||||
# and building it would just waste time.
|
||||
not_emacs_OBJECTS = regex.o
|
||||
# Emacs also doesn't need the dynarray-related files in malloc/ and
|
||||
# the replacement 'free'.
|
||||
not_emacs_OBJECTS = regex.o malloc/%.o free.o
|
||||
|
||||
libgnu_a_OBJECTS = fingerprint.o $(gl_LIBOBJS) \
|
||||
$(patsubst %.c,%.o,$(filter %.c,$(libgnu_a_SOURCES)))
|
||||
|
|
Loading…
Add table
Reference in a new issue