changeset 109098:a17732ef349e

Define USE_LISP_UNION_TYPE using autoconf. * configure.in (--enable-use-lisp-union-type): New flag. * src/lisp.h: Document that USE_LISP_UNION_TYPE is now enabled using autoconf.
author Dan Nicolaescu <dann@ics.uci.edu>
date Fri, 02 Jul 2010 01:11:24 -0700
parents ed7496d92467
children e16f43875a48
files ChangeLog configure configure.in etc/NEWS src/ChangeLog src/config.in src/lisp.h
diffstat 7 files changed, 43 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jul 02 00:05:09 2010 -0700
+++ b/ChangeLog	Fri Jul 02 01:11:24 2010 -0700
@@ -1,3 +1,7 @@
+2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* configure.in (--enable-use-lisp-union-type): New flag.
+
 2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	Fix CFLAGS for non-GCC compilers.
--- a/configure	Fri Jul 02 00:05:09 2010 -0700
+++ b/configure	Fri Jul 02 01:11:24 2010 -0700
@@ -825,6 +825,7 @@
 enable_maintainer_mode
 enable_locallisppath
 enable_checking
+enable_use_lisp_union_type
 enable_profiling
 enable_autodepend
 enable_largefile
@@ -1477,6 +1478,10 @@
                           only specific categories of checks. Categories are:
                           all,yes,no. Flags are: stringbytes, stringoverrun,
                           stringfreelist, xmallocoverrun, conslist
+  --enable-use-lisp-union-type
+                          use a union for the Lisp_Object data type. This is
+                          only useful for development for catching certain
+                          types of bugs.
   --enable-profiling      build emacs with profiling support. This might not
                           work on all platforms
   --enable-autodepend     automatically generate dependencies to .h-files.
@@ -2978,6 +2983,17 @@
 
 fi
 
+# Check whether --enable-use-lisp-union-type was given.
+if test "${enable_use_lisp_union_type+set}" = set; then :
+  enableval=$enable_use_lisp_union_type; if test "${enableval}" != "no"; then
+
+$as_echo "#define USE_LISP_UNION_TYPE 1" >>confdefs.h
+
+fi
+fi
+
+
+
 # Check whether --enable-profiling was given.
 if test "${enable_profiling+set}" = set; then :
   enableval=$enable_profiling; ac_enable_profiling="${enableval}"
@@ -4290,7 +4306,7 @@
   C_OPTIMIZE_SWITCH=-O2
   test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
 else
-    C_OPTIMIZE_SWITCH=-O
+  C_OPTIMIZE_SWITCH=-O
   test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
 fi
 
--- a/configure.in	Fri Jul 02 00:05:09 2010 -0700
+++ b/configure.in	Fri Jul 02 01:11:24 2010 -0700
@@ -305,6 +305,16 @@
 [Define this to check for errors in cons list.])
 fi
 
+AC_ARG_ENABLE(use-lisp-union-type,
+[AS_HELP_STRING([--enable-use-lisp-union-type],
+                [use a union for the Lisp_Object data type.
+		This is only useful for development for catching certain types of bugs.])],
+if test "${enableval}" != "no"; then
+   AC_DEFINE(USE_LISP_UNION_TYPE, 1,
+   [Define this to use a lisp union for the Lisp_Object data type.])
+fi)
+
+
 AC_ARG_ENABLE(profiling,
 [AS_HELP_STRING([--enable-profiling],
 		[build emacs with profiling support.
--- a/etc/NEWS	Fri Jul 02 00:05:09 2010 -0700
+++ b/etc/NEWS	Fri Jul 02 01:11:24 2010 -0700
@@ -47,6 +47,10 @@
 also depend on Gtk+.  You can disable them with --without-rsvg and
 --without-gconf.
 
+** There is a new configure option --enable-use-lisp-union-type.
+This is only useful for Emacs developers to debug certain types of bugs.
+These is not a new feature; only the configure flag is new.
+
 
 * Startup Changes in Emacs 24.1
 
--- a/src/ChangeLog	Fri Jul 02 00:05:09 2010 -0700
+++ b/src/ChangeLog	Fri Jul 02 01:11:24 2010 -0700
@@ -1,5 +1,7 @@
 2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 
+	* lisp.h: Document that USE_LISP_UNION_TYPE is now enabled using autoconf.
+
 	Cleanup old code.
 	* dired.c (BSD4_3): Remove all uses, redundant with BSD4_2.
 	* syssignal.h: Remove code for Lynx, not supported anymore.
--- a/src/config.in	Fri Jul 02 00:05:09 2010 -0700
+++ b/src/config.in	Fri Jul 02 01:11:24 2010 -0700
@@ -933,6 +933,9 @@
 /* Define to 1 if using GTK. */
 #undef USE_GTK
 
+/* Define this to use a lisp union for the Lisp_Object data type. */
+#undef USE_LISP_UNION_TYPE
+
 /* Define to 1 if using the Lucid X toolkit. */
 #undef USE_LUCID
 
--- a/src/lisp.h	Fri Jul 02 00:05:09 2010 -0700
+++ b/src/lisp.h	Fri Jul 02 01:11:24 2010 -0700
@@ -95,10 +95,9 @@
 #endif
 #endif /* ENABLE_CHECKING */
 
-/* Define this to make Lisp_Object use a union type instead of the
-   default int.  FIXME: It might be better to add a flag to configure
-   to do this.  */
-/* #define USE_LISP_UNION_TYPE */
+/* Use the configure flag --enable-use-lisp-union-type to make
+   Lisp_Object use a union type instead of the default int.  The flag
+   causes USE_LISP_UNION_TYPE to be defined.  */
 
 /***** Select the tagging scheme.  *****/
 /* There are basically two options that control the tagging scheme: