Mercurial > hg > xemacs-beta
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 |