Mercurial > emacs
diff configure.in @ 103595:de3fb78ac3df
(--enable-checking): New option.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Fri, 26 Jun 2009 23:41:43 +0000 |
parents | ed6152fc596c |
children | 02bc348744ed |
line wrap: on
line diff
--- a/configure.in Fri Jun 26 18:37:41 2009 +0000 +++ b/configure.in Fri Jun 26 23:41:43 2009 +0000 @@ -209,6 +209,70 @@ locallisppath=${enableval} fi) +AC_ARG_ENABLE(checking, +[ --enable-checking[=LIST] + enable expensive run-time checks. With LIST, + enable only specific categories of checks. + Categories are: all,yes,no. + Flags are: stringbytes, stringoverrun, stringfreelist, + xmallocoverrun, conslist], +[ac_checking_flags="${enableval}"],[]) +IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," +for check in $ac_checking_flags +do + case $check in + # these set all the flags to specific states + yes) ac_enable_checking=1 ;; + no) ac_enable_checking= ; + ac_gc_check_stringbytes= ; + ac_gc_check_string_overrun= ; + ac_gc_check_string_free_list= ; + ac_xmalloc_overrun= ; + ac_gc_check_cons_list= ;; + all) ac_enable_checking=1 ; + ac_gc_check_stringbytes=1 ; + ac_gc_check_string_overrun=1 ; + ac_gc_check_string_free_list=1 ; + ac_xmalloc_overrun=1 ; + ac_gc_check_cons_list=1 ;; + # these enable particular checks + stringbytes) ac_gc_check_stringbytes=1 ;; + stringoverrun) ac_gc_check_string_overrun=1 ;; + stringfreelist) ac_gc_check_string_free_list=1 ;; + xmallocoverrun) ac_xmalloc_overrun=1 ;; + conslist) ac_gc_check_cons_list=1 ;; + *) AC_MSG_ERROR(unknown check category $check) ;; + esac +done +IFS="$ac_save_IFS" + +if test x$ac_enable_checking != x ; then + AC_DEFINE(ENABLE_CHECKING, 1, +[Enable expensive run-time checking of data types?]) +fi +if test x$ac_gc_check_stringbytes != x ; then + AC_DEFINE(GC_CHECK_STRING_BYTES, 1, +[Define this temporarily to hunt a bug. If defined, the size of + strings is redundantly recorded in sdata structures so that it can + be compared to the sizes recorded in Lisp strings.]) +fi +if test x$ac_gc_check_stringoverrun != x ; then + AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1, +[Define this to check for short string overrun.]) +fi +if test x$ac_gc_check_string_free_list != x ; then + AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1, +[Define this to check the string free list.]) +fi +if test x$ac_xmalloc_overrun != x ; then + AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1, +[Define this to check for malloc buffer overrun.]) +fi +if test x$ac_gc_check_cons_list != x ; then + AC_DEFINE(GC_CHECK_CONS_LIST, 1, +[Define this to check for errors in cons list.]) +fi + #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this @@ -2789,9 +2853,6 @@ #define HAVE_X11R6_XIM #endif -/* Should we enable expensive run-time checking of data types? */ -#undef ENABLE_CHECKING - #if defined __GNUC__ && (__GNUC__ > 2 \ || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) #define NO_RETURN __attribute__ ((__noreturn__))