Commit 444b01bb authored by Paul Eggert's avatar Paul Eggert

Enable conservative stack scanning for all architectures.

Suggested by Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00183.html>.
* configure.ac (GC_MARK_STACK): Remove.
parent 96c421bb
2013-01-12 Paul Eggert <eggert@cs.ucla.edu>
Enable conservative stack scanning for all architectures.
Suggested by Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00183.html>.
* configure.ac (GC_MARK_STACK): Remove.
2013-01-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/getopt_.h: Remove trailing CRs that crept in.
......
......@@ -3777,22 +3777,13 @@ case $opsys in
esac
dnl These won't be used automatically yet. We also need to know, at least,
dnl This won't be used automatically yet. We also need to know, at least,
dnl that the stack is continuous.
AH_TEMPLATE(GC_SETJMP_WORKS, [Define if setjmp is known to save all
registers relevant for conservative garbage collection in the jmp_buf.])
AH_TEMPLATE(GC_MARK_STACK, [Define to GC_USE_GCPROS_AS_BEFORE if
conservative garbage collection is not known to work.])
case $opsys in
aix4-2 | hpux* | unixware)
dnl Conservative garbage collection has not been tested, so for now
dnl play it safe and stick with the old-fashioned way of marking.
AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE])
;;
dnl Not all the architectures are tested, but there are Debian packages
dnl for SCM and/or Guile on them, so the technique must work. See also
dnl comments in alloc.c concerning setjmp and gcc.
......@@ -3807,8 +3798,7 @@ case $opsys in
#else
# error "setjmp not known to work on this arch"
#endif
]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1),
AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE]) )
]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1))
;;
esac
......
......@@ -2217,8 +2217,12 @@ struct gcpro
2 Mark the stack, and check that everything GCPRO'd is
marked.
3 Mark using GCPRO's, mark stack last, and count how many
dead objects are kept alive. */
dead objects are kept alive.
Formerly, method 0 was used. Currently, method 1 is used unless
otherwise specified by hand when building, e.g.,
"make CPPFLAGS='-DGC_MARK_STACK=GC_USE_GCPROS_AS_BEFORE'".
Methods 2 and 3 are present mainly to debug the transition from 0 to 1. */
#define GC_USE_GCPROS_AS_BEFORE 0
#define GC_MAKE_GCPROS_NOOPS 1
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment