]> git.eshelyaron.com Git - emacs.git/commitdiff
Enable conservative stack scanning for all architectures.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 12 Jan 2013 05:21:06 +0000 (21:21 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 12 Jan 2013 05:21:06 +0000 (21:21 -0800)
Suggested by Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00183.html>.
* configure.ac (GC_MARK_STACK): Remove.

ChangeLog
configure.ac
src/lisp.h

index 59df34b2b8fb1cd865f6e2f96accd0ab4a2af1f9..f306aefbd1bf39eea1fb9fc029c999ae85dc4647 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 4a43fcf8fcd59e0194c8de5fdd955218be6fb44f..a0974caa6a307dc984bb23c2429fb6ddca24e7d0 100644 (file)
@@ -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
 
index 22e0a188e4b133ba500abb22034591ac98a589b9..3b7af46fdde201360bfae36c0cd7b3ae3fd58408 100644 (file)
@@ -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