mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-03 19:03:24 +00:00
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>
|
2013-01-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
* lib/getopt_.h: Remove trailing CRs that crept in.
|
* lib/getopt_.h: Remove trailing CRs that crept in.
|
||||||
|
|
14
configure.ac
14
configure.ac
|
@ -3777,22 +3777,13 @@ case $opsys in
|
||||||
esac
|
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.
|
dnl that the stack is continuous.
|
||||||
AH_TEMPLATE(GC_SETJMP_WORKS, [Define if setjmp is known to save all
|
AH_TEMPLATE(GC_SETJMP_WORKS, [Define if setjmp is known to save all
|
||||||
registers relevant for conservative garbage collection in the jmp_buf.])
|
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
|
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 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 for SCM and/or Guile on them, so the technique must work. See also
|
||||||
dnl comments in alloc.c concerning setjmp and gcc.
|
dnl comments in alloc.c concerning setjmp and gcc.
|
||||||
|
@ -3807,8 +3798,7 @@ case $opsys in
|
||||||
#else
|
#else
|
||||||
# error "setjmp not known to work on this arch"
|
# error "setjmp not known to work on this arch"
|
||||||
#endif
|
#endif
|
||||||
]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1),
|
]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1))
|
||||||
AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE]) )
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -2217,8 +2217,12 @@ struct gcpro
|
||||||
2 Mark the stack, and check that everything GCPRO'd is
|
2 Mark the stack, and check that everything GCPRO'd is
|
||||||
marked.
|
marked.
|
||||||
3 Mark using GCPRO's, mark stack last, and count how many
|
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_USE_GCPROS_AS_BEFORE 0
|
||||||
#define GC_MAKE_GCPROS_NOOPS 1
|
#define GC_MAKE_GCPROS_NOOPS 1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue