comparison configure.ac @ 3092:141c2920ea48

[xemacs-hg @ 2005-11-25 01:41:31 by crestani] Incremental Garbage Collector
author crestani
date Fri, 25 Nov 2005 01:42:08 +0000
parents 0ae46b360391
children ad2f4ae9895b
comparison
equal deleted inserted replaced
3091:c22d8984148c 3092:141c2920ea48
873 AC_HELP_STRING([--enable-kkcc],[Enable experimental new GC algorithms.]), 873 AC_HELP_STRING([--enable-kkcc],[Enable experimental new GC algorithms.]),
874 [], [enable_kkcc=yes]) 874 [], [enable_kkcc=yes])
875 XE_MERGED_ARG([mc-alloc], 875 XE_MERGED_ARG([mc-alloc],
876 AC_HELP_STRING([--enable-mc-alloc],[Enable experimental new allocator.]), 876 AC_HELP_STRING([--enable-mc-alloc],[Enable experimental new allocator.]),
877 [], [enable_mc_alloc=yes]) 877 [], [enable_mc_alloc=yes])
878 XE_MERGED_ARG([newgc],
879 AC_HELP_STRING([--enable-newgc],[Enable new incremental garbage collector.]),
880 [], [])
881 XE_COMPLEX_ARG([vdb],
882 AC_HELP_STRING([--enable-vdb=TYPE],[Override auto-detection of
883 virtual-dirty-bit write-barrier implementation for the
884 new garbage collector. TYPE must be one of "auto" (for
885 auto-detection), "posix", "win32", "mach", or "fake"
886 (uses the new garbage collector but disables
887 incremental collections). The default is to
888 use auto-detection.]),
889 [], [enable_vdb="auto"],[auto,posix,win32,mach,fake,no])
878 dnl 890 dnl
879 XE_HELP_SUBSECTION([Emacs Lisp options]) 891 XE_HELP_SUBSECTION([Emacs Lisp options])
880 XE_MERGED_ARG([modules], 892 XE_MERGED_ARG([modules],
881 AC_HELP_STRING([--enable-modules],[Compile in experimental support for dynamically 893 AC_HELP_STRING([--enable-modules],[Compile in experimental support for dynamically
882 loaded libraries (Dynamic Shared Objects).]), 894 loaded libraries (Dynamic Shared Objects).]),
1681 cygwin* ) enable_pdump=yes ;; dnl unexec is broken 1693 cygwin* ) enable_pdump=yes ;; dnl unexec is broken
1682 * ) enable_pdump=no ;; 1694 * ) enable_pdump=no ;;
1683 esac 1695 esac
1684 fi 1696 fi
1685 1697
1698 if test "$enable_newgc" = "yes"; then
1699 if test "$enable_vdb" = "auto"; then
1700 case "$opsys" in
1701 darwin ) AC_DEFINE(VDB_MACH) have_vdb_mach=yes ;;
1702 cygwin* ) AC_DEFINE(VDB_WIN32) have_vdb_win32=yes ;;
1703 linux* ) check_vdb_posix=yes ;;
1704 freebsd ) check_vdb_posix=yes ;;
1705 dnl bail out immediately
1706 dnl * ) have_vdb_fake=yes ;;
1707 dnl if not sure, try posix first, maybe we are lucky
1708 * ) check_vdb_posix=yes ;;
1709 esac
1710 else
1711 case "$enable_vdb" in
1712 mach ) AC_DEFINE(VDB_MACH) have_vdb_mach=yes ;;
1713 win32 ) AC_DEFINE(VDB_WIN32) have_vdb_win32=yes ;;
1714 posix ) check_vdb_posix=yes ;;
1715 fake ) have_vdb_fake=yes ;;
1716 no ) have_vdb_fake=yes ;;
1717 esac
1718 fi
1719 fi
1720
1686 if test -z "$with_dynamic"; then 1721 if test -z "$with_dynamic"; then
1687 case "$opsys" in 1722 case "$opsys" in
1688 hpux* | sunos4* ) with_dynamic=no ;; 1723 hpux* | sunos4* ) with_dynamic=no ;;
1689 *) with_dynamic=yes ;; 1724 *) with_dynamic=yes ;;
1690 esac 1725 esac
2040 enable_dump_in_exec=no 2075 enable_dump_in_exec=no
2041 else 2076 else
2042 enable_dump_in_exec=yes 2077 enable_dump_in_exec=yes
2043 fi 2078 fi
2044 fi 2079 fi
2080 fi
2081
2082 dnl New incremental garbage collector
2083 if test "$enable_newgc" = "yes"; then
2084 enable_mc_alloc=yes
2085 enable_kkcc=yes
2045 fi 2086 fi
2046 2087
2047 dnl For debugging... 2088 dnl For debugging...
2048 test "$verbose" = "yes" && \ 2089 test "$verbose" = "yes" && \
2049 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard 2090 PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
4429 ac_cv_func_getaddrinfo=no 4470 ac_cv_func_getaddrinfo=no
4430 ;; 4471 ;;
4431 esac 4472 esac
4432 fi 4473 fi
4433 4474
4475 dnl check for vdb-related stuff
4476 if test "$check_vdb_posix" = "yes" ; then
4477 dnl no mprotect, no vdb
4478 AC_CHECK_FUNC(mprotect,AC_DEFINE(HAVE_MPROTECT) have_vdb_mprotect=yes,)
4479
4480 dnl sigaction needs either struct siginfo or siginfo_t
4481 AC_CHECK_FUNC(sigaction, AC_DEFINE(HAVE_SIGACTION) have_vdb_sigaction=yes,
4482 have_vdb_sigaction=no)
4483 AC_CHECK_MEMBER(struct siginfo.si_addr,
4484 AC_DEFINE(HAVE_STRUCT_SIGINFO_SI_ADDR) have_si_addr=yes,,
4485 [#include <signal.h>])
4486 AC_CHECK_MEMBER(siginfo_t.si_addr,
4487 AC_DEFINE(HAVE_SIGINFO_T_SI_ADDR) have_si_addr=yes,,
4488 [#include <signal.h>])
4489 if test "$have_si_addr" != "yes" ; then
4490 have_vdb_sigaction=no
4491 fi
4492
4493 dnl signal needs struct sigcontext
4494 AC_CHECK_FUNC(signal, AC_DEFINE(HAVE_SIGNAL) have_vdb_signal=yes,)
4495 AC_CHECK_MEMBER(struct sigcontext.cr2,
4496 AC_DEFINE(HAVE_STRUCT_SIGCONTEXT_CR2) have_cr2=yes,,
4497 [#include <signal.h>])
4498
4499 if test "$have_cr2" != "yes" ; then
4500 have_vdb_signal=no
4501 fi
4502
4503 if test "$have_vdb_mprotect" != "yes" ; then
4504 have_vdb_sigaction=no
4505 have_vdb_signal=no
4506 fi
4507
4508 if test "$have_vdb_sigaction" != "yes" -a "$have_vdb_signal" != "yes" ; then
4509 have_vdb_posix=no
4510 have_vdb_fake=yes
4511 else
4512 have_vdb_posix=yes
4513 have_vdb_fake=no
4514 fi
4515 fi
4516
4434 dnl ---------------------------------------------------------------- 4517 dnl ----------------------------------------------------------------
4435 dnl Check for Unixoid pty/process support. 4518 dnl Check for Unixoid pty/process support.
4436 dnl ---------------------------------------------------------------- 4519 dnl ----------------------------------------------------------------
4437 4520
4438 dnl There is no "standard" pty allocation method. Every system is different. 4521 dnl There is no "standard" pty allocation method. Every system is different.
5316 dnl ---------------------------------------------- 5399 dnl ----------------------------------------------
5317 dnl Create some auxiliary files for developers. 5400 dnl Create some auxiliary files for developers.
5318 dnl ---------------------------------------------- 5401 dnl ----------------------------------------------
5319 5402
5320 dnl Create a .gdbinit useful for debugging XEmacs 5403 dnl Create a .gdbinit useful for debugging XEmacs
5321 if test -f "$srcdir/src/.gdbinit" -a ! -f "src/.gdbinit"; then 5404 if test -f "$srcdir/src/.gdbinit.in" -a ! -f "src/.gdbinit.in"; then
5322 test "$verbose" = "yes" && echo "creating src/.gdbinit" 5405 test "$verbose" = "yes" && echo "creating src/.gdbinit.in"
5323 echo "source $srcdir/src/.gdbinit" > "src/.gdbinit" 5406 echo "source $srcdir/src/.gdbinit.in" > "src/.gdbinit.in"
5324 fi 5407 fi
5325 5408
5326 dnl Create a .dbxrc useful for debugging XEmacs 5409 dnl Create a .dbxrc useful for debugging XEmacs
5327 if test -f "$srcdir/src/.dbxrc" -a ! -f "src/.dbxrc"; then 5410 if test -f "$srcdir/src/.dbxrc.in" -a ! -f "src/.dbxrc.in"; then
5328 test "$verbose" = "yes" && echo "creating src/.dbxrc" 5411 test "$verbose" = "yes" && echo "creating src/.dbxrc.in"
5329 echo ". $srcdir/src/.dbxrc" > "src/.dbxrc" 5412 echo ". $srcdir/src/.dbxrc.in" > "src/.dbxrc.in"
5330 fi 5413 fi
5331 5414
5332 dnl Create a useful TAGS file 5415 dnl Create a useful TAGS file
5333 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then 5416 if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then
5334 test "$verbose" = "yes" && echo "creating TAGS" 5417 test "$verbose" = "yes" && echo "creating TAGS"
5582 fi 5665 fi
5583 test "$GCC" = "yes" && AC_DEFINE(USE_GCC) 5666 test "$GCC" = "yes" && AC_DEFINE(USE_GCC)
5584 test "$enable_external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET) 5667 test "$enable_external_widget" = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
5585 test "$enable_kkcc" = "yes" && AC_DEFINE(USE_KKCC) 5668 test "$enable_kkcc" = "yes" && AC_DEFINE(USE_KKCC)
5586 test "$enable_mc_alloc" = "yes" && AC_DEFINE(MC_ALLOC) 5669 test "$enable_mc_alloc" = "yes" && AC_DEFINE(MC_ALLOC)
5670 test "$enable_newgc" = "yes" && AC_DEFINE(NEW_GC)
5671 test "$have_vdb_posix" = "yes" && AC_DEFINE(VDB_POSIX)
5672 test "$have_vdb_fake" = "yes" && AC_DEFINE(VDB_FAKE)
5587 test "$enable_quick_build" = "yes" && AC_DEFINE(QUICK_BUILD) 5673 test "$enable_quick_build" = "yes" && AC_DEFINE(QUICK_BUILD)
5588 test "$with_purify" = "yes" && AC_DEFINE(PURIFY) 5674 test "$with_purify" = "yes" && AC_DEFINE(PURIFY)
5589 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) 5675 test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY)
5590 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP) 5676 test "$with_pop" = "yes" && AC_DEFINE(MAIL_USE_POP)
5591 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS) 5677 test "$with_kerberos" = "yes" && AC_DEFINE(KERBEROS)
5862 echo " WARNING: The new allocator is experimental. It is enabled by" 5948 echo " WARNING: The new allocator is experimental. It is enabled by"
5863 echo " WARNING: default for this release. Use \`--disable-mc-alloc' to" 5949 echo " WARNING: default for this release. Use \`--disable-mc-alloc' to"
5864 echo " WARNING: turn it off." 5950 echo " WARNING: turn it off."
5865 echo " WARNING: ---------------------------------------------------------" 5951 echo " WARNING: ---------------------------------------------------------"
5866 fi 5952 fi
5953 test "$enable_newgc" = yes && echo " Using the new incremental garbage collector."
5954 if test "$have_vdb_posix" = yes ; then
5955 if test "$have_vdb_sigaction" = yes ; then
5956 echo " Using POSIX sigaction() to install fault handler."
5957 else
5958 echo " Using POSIX signal() to install vdb fault handler."
5959 fi
5960 fi
5961 if test "$have_vdb_win32" = yes ; then
5962 echo " Using special WIN32 vdb fault handler."
5963 fi
5964 if test "$have_vdb_mach" = yes ; then
5965 echo " Using mach exception mechanism as vdb fault handler."
5966 fi
5967 if test "$have_vdb_fake" = yes && test "$enable_vdb" != fake; then
5968 echo " WARNING: ---------------------------------------------------------"
5969 echo " WARNING: The new incremental garbage collector is enabled, but"
5970 echo " WARNING: a virtual dirty bit implementation is not yet available"
5971 echo " WARNING: on this system. XEmacs will crash if you try to switch on"
5972 echo " WARNUNG: incremental garbage collection!"
5973 echo " WARNING: Use \`--disable-newgc' to turn incremental gc off."
5974 echo " WARNING: ---------------------------------------------------------"
5975 fi
5976 if test "$have_vdb_fake" = yes && test "$enable_vdb" == fake; then
5977 echo " Virtual dirty bit write barrier manually disabled."
5978 fi
5867 test "$enable_pdump" = yes && echo " Using the new portable dumper." 5979 test "$enable_pdump" = yes && echo " Using the new portable dumper."
5868 test "$enable_dump_in_exec" = yes && echo " Dumping into executable." 5980 test "$enable_dump_in_exec" = yes && echo " Dumping into executable."
5869 test "$enable_debug" = yes && echo " Compiling in support for extra debugging code." 5981 test "$enable_debug" = yes && echo " Compiling in support for extra debugging code."
5870 test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)." 5982 test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)."
5871 if test "$enable_error_checking_extents $enable_error_checking_types $enable_error_checking_text $enable_error_checking_gc $enable_error_checking_malloc $enable_error_checking_glyphs $enable_error_checking_byte_code $enable_error_checking_display $enable_error_checking_structures" \ 5983 if test "$enable_error_checking_extents $enable_error_checking_types $enable_error_checking_text $enable_error_checking_gc $enable_error_checking_malloc $enable_error_checking_glyphs $enable_error_checking_byte_code $enable_error_checking_display $enable_error_checking_structures" \
5979 dnl Create xemacs.def from xemacs.def.in in the same fashion, 6091 dnl Create xemacs.def from xemacs.def.in in the same fashion,
5980 dnl if it exists (i.e. in the src/ directory). 6092 dnl if it exists (i.e. in the src/ directory).
5981 MAKE_JUNK_C(Makefile.in) 6093 MAKE_JUNK_C(Makefile.in)
5982 CPP_MAKEFILE(,Makefile) 6094 CPP_MAKEFILE(,Makefile)
5983 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile) 6095 CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
6096 if test -r ".gdbinit.in"; then
6097 MAKE_JUNK_C(.gdbinit.in)
6098 CPP_MAKEFILE(,.gdbinit)
6099 fi
6100 if test -r ".dbxrc.in"; then
6101 MAKE_JUNK_C(.dbxrc.in)
6102 CPP_MAKEFILE(,.dbxrc)
6103 fi
5984 if test -r "xemacs.def.in"; then 6104 if test -r "xemacs.def.in"; then
5985 dnl #### We should be using MAKE_JUNK_C instead of the next two lines. 6105 dnl #### We should be using MAKE_JUNK_C instead of the next two lines.
5986 dnl #### But the comments in xemacs.def.in need to be converted from C-style 6106 dnl #### But the comments in xemacs.def.in need to be converted from C-style
5987 dnl #### to lines beginning with ##. 6107 dnl #### to lines beginning with ##.
5988 rm -f junk.c 6108 rm -f junk.c