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.
This commit is contained in:
parent
96c421bba7
commit
444b01bb49
3 changed files with 14 additions and 13 deletions
|
@ -1,3 +1,10 @@
|
|||
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.
|
||||
|
|
14
configure.ac
14
configure.ac
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue