Define USE_LISP_UNION_TYPE using autoconf.
authorDan Nicolaescu <dann@ics.uci.edu>
Fri, 2 Jul 2010 08:11:24 +0000 (01:11 -0700)
committerDan Nicolaescu <dann@ics.uci.edu>
Fri, 2 Jul 2010 08:11:24 +0000 (01:11 -0700)
* configure.in (--enable-use-lisp-union-type): New flag.
* src/lisp.h: Document that USE_LISP_UNION_TYPE is now enabled using autoconf.

ChangeLog
configure
configure.in
etc/NEWS
src/ChangeLog
src/config.in
src/lisp.h

index 704647f..819b6eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index cb35356..e89b741 100755 (executable)
--- a/configure
+++ b/configure
@@ -825,6 +825,7 @@ enable_asserts
 enable_maintainer_mode
 enable_locallisppath
 enable_checking
+enable_use_lisp_union_type
 enable_profiling
 enable_autodepend
 enable_largefile
@@ -1477,6 +1478,10 @@ Optional Features:
                           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 @@ $as_echo "#define GC_CHECK_CONS_LIST 1" >>confdefs.h
 
 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 @@ if test x$GCC = xyes; then
   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
 
index 97e2adc..b04bf6e 100644 (file)
@@ -305,6 +305,16 @@ if test x$ac_gc_check_cons_list != x ; then
 [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.
index f342b3f..2b80bef 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -47,6 +47,10 @@ to configure.  Note that other libraries used by Emacs, RSVG and GConf,
 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.
+
 \f
 * Startup Changes in Emacs 24.1
 
index 45d8bf3..46d41bf 100644 (file)
@@ -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.
index 962edf6..b1370dc 100644 (file)
@@ -933,6 +933,9 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* 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
 
index 1941a24..0da668b 100644 (file)
@@ -95,10 +95,9 @@ extern void die P_((const char *, const char *, int)) NO_RETURN;
 #endif
 #endif /* ENABLE_CHECKING */
 \f
-/* 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: