Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 14 Apr 2012 06:18:49 +0000 (23:18 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 14 Apr 2012 06:18:49 +0000 (23:18 -0700)
* lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
* s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
* s/netbsd.h, s/sol2-6.h:
Remove definition of GC_MARK_STACK, since the default now works.
* s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
no longer the default.
* s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.

14 files changed:
src/ChangeLog
src/lisp.h
src/s/aix4-2.h
src/s/cygwin.h
src/s/darwin.h
src/s/freebsd.h
src/s/gnu-linux.h
src/s/gnu.h
src/s/hpux10-20.h
src/s/irix6-5.h
src/s/msdos.h
src/s/netbsd.h
src/s/sol2-6.h
src/s/unixware.h

index 6d2ed01..c3a72f3 100644 (file)
@@ -1,3 +1,15 @@
+2012-04-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
+       * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
+       * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
+       * s/netbsd.h, s/sol2-6.h:
+       Remove definition of GC_MARK_STACK, since the default now works.
+       * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
+       Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
+       no longer the default.
+       * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
+
 2012-04-14  Atsuo Ohki  <ohki@gssm.otsuka.tsukuba.ac.jp>  (tiny change)
 
        * lread.c (lisp_file_lexically_bound_p):
index 6041cad..81d17f4 100644 (file)
@@ -2221,7 +2221,7 @@ struct gcpro
 #define GC_USE_GCPROS_CHECK_ZOMBIES    3
 
 #ifndef GC_MARK_STACK
-#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
+#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
 #endif
 
 /* Whether we do the stack marking manually.  */
index 37b0413..354ffda 100644 (file)
@@ -75,3 +75,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    Emacs currently calls xrealloc on the results of get_current_dir name,
    to avoid a crash just use the Emacs implementation for that function.  */
 #define BROKEN_GET_CURRENT_DIR_NAME 1
+
+/* Conservative garbage collection has not been tested, so for now
+   play it safe and stick with the old-fashioned way of marking.  */
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
index f8c656e..9310890 100644 (file)
@@ -82,12 +82,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define HAVE_SOCKETS
 
-/* This should work (at least when compiling with gcc).  But I have no way
-   or intention to verify or even test it.  If you encounter a problem with
-   it, feel free to change this setting, but please add a comment here about
-   why it needed to be changed.  */
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
-
 /* Emacs supplies its own malloc, but glib (part of Gtk+) calls
    memalign and on Cygwin, that becomes the Cygwin-supplied memalign.
    As malloc is not the Cygwin malloc, the Cygwin memalign always
index 9ac9e91..7c8e26f 100644 (file)
@@ -145,6 +145,3 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    It is already a controlling terminal of subprocess, because we did
    ioctl TIOCSCTTY.  */
 #define DONT_REOPEN_PTY
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack.  */
-#define GC_MARK_STACK   GC_MAKE_GCPROS_NOOPS
index c74605f..05be076 100644 (file)
@@ -58,6 +58,3 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Tell that garbage collector that setjmp is known to save all
    registers relevant for conservative garbage collection in the jmp_buf.  */
 #define GC_SETJMP_WORKS 1
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack.  */
-#define GC_MARK_STACK  GC_MAKE_GCPROS_NOOPS
index c1233c0..d04ea33 100644 (file)
@@ -145,7 +145,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
     || defined __arm__ || defined __powerpc__ || defined __amd64__ \
     || defined __ia64__ || defined __sh__
 #define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
 #ifdef __ia64__
 #define GC_MARK_SECONDARY_STACK()                              \
   do {                                                         \
@@ -155,4 +154,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
                 __builtin_ia64_bsp ());                        \
   } while (0)
 #endif
+#else
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
 #endif
index 37aaa13..a09e0e8 100644 (file)
@@ -45,6 +45,3 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #endif /* emacs */
 
 #define POSIX_SIGNALS 1
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack.  */
-#define GC_MARK_STACK  GC_MAKE_GCPROS_NOOPS
index becb5d3..3e25b1b 100644 (file)
@@ -100,6 +100,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    header sections which lose when `static' is defined away, as it is
    on HP-UX.  (You get duplicate symbol errors on linking). */
 #undef _FILE_OFFSET_BITS
+
+/* Conservative garbage collection has not been tested, so for now
+   play it safe and stick with the old-fashioned way of marking.  */
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
 \f
 /* The data segment on this machine always starts at address 0x40000000.  */
 #define DATA_SEG_BITS 0x40000000
index 3237449..e5d90c1 100644 (file)
@@ -95,7 +95,6 @@ char *_getpty();
 
 /* Tested on Irix 6.5.  SCM worked on earlier versions.  */
 #define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
 
 
 /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
index cde2414..add2902 100644 (file)
@@ -137,4 +137,3 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
 /* Tell the garbage collector that setjmp is known to save all
    registers relevant for conservative garbage collection in the jmp_buf.  */
 #define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
index f25023f..ce3b2af 100644 (file)
@@ -38,6 +38,3 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Tell that garbage collector that setjmp is known to save all
    registers relevant for conservative garbage collection in the jmp_buf.  */
 #define GC_SETJMP_WORKS 1
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method.  */
-#define GC_MARK_STACK  GC_MAKE_GCPROS_NOOPS
index a9fefcb..bb7a985 100644 (file)
@@ -59,4 +59,3 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
   }
 
 #define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
index 22c396a..63c36ee 100644 (file)
@@ -50,3 +50,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
   }
 
 #define        PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)
+
+/* Conservative garbage collection has not been tested, so for now
+   play it safe and stick with the old-fashioned way of marking.  */
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE