[android_enable_checking=yes
export android_enable_checking])])
+AC_ARG_ENABLE([gc-mark-trace],
+ [AS_HELP_STRING([--disable-gc-mark-trace],
+ [disable the mark trace buffer used for debugging the Emacs
+ garbage collector])],
+ [ac_enable_gc_mark_trace="${enableval}"],
+ [ac_enable_gc_mark_trace=yes])
+if test "x$ac_enable_gc_mark_trace" = xyes ; then
+ AC_DEFINE([GC_REMEMBER_LAST_MARKED], [1],
+ [Define to 1 to enable GC mark trace buffer.])
+fi
+
dnl The name of this option is unfortunate. It predates, and has no
dnl relation to, the "sampling-based elisp profiler" added in 24.3.
dnl Actually, it stops it working.
versions of ALSA. Use '--with-sound=alsa' to build with ALSA on these
operating systems instead.
+---
+** New configuration option '--disable-gc-mark-trace'.
+This disables the GC mark trace buffer for about 5 % better garbage
+collection performance. Doing so may make it more difficult for Emacs
+developers to help finding GC-related bugs that you run into, which is
+why it the mark trace buffer is enabled by default.
+
\f
* Startup Changes in Emacs 30.1
}
}
-/* Whether to remember a few of the last marked values for debugging. */
-#define GC_REMEMBER_LAST_MARKED 0
-
#if GC_REMEMBER_LAST_MARKED
+/* Remember a few of the last marked values for debugging purposes. */
enum { LAST_MARKED_SIZE = 1 << 9 }; /* Must be a power of 2. */
+extern Lisp_Object last_marked[LAST_MARKED_SIZE];
Lisp_Object last_marked[LAST_MARKED_SIZE] EXTERNALLY_VISIBLE;
static int last_marked_index;
#endif