>>>>"SJT" == Stephen J Turnbull
<stephen(a)xemacs.org> writes:
SJT> I'm pretty sure we can arrange that
configure will not die until it
SJT> finishes its detection. Then we can have it die with a request to
SJT> mail XEmacs Beta with the information about the platform.
With the patch below, configure behaves like this: If the system is
not explicitly associated with a write barrier (currently only darwin,
cygwin*, linux*, and freebsd are), then the configure script runs
checks to determine if the POSIX write barrier can be used. I think
it is reasonable to assume that a system that knows about autoconf
also knows about POSIX.
The "POSIX checks" include checks for functions like `mprotect',
`sigaction', `signal', and checks for struct members like `struct
siginfo.si_addr', `siginfo_t.si_addr', and `struct sigcontext.cr2'.
If the functions and structs are not available in certain
combinations, configure dies:
Error: No working write-barrier implementation found for this system.
Please report this and provide information about your system.
I'll commit this tomorrow, if nobody objects.
Or earlier, to not delay the release. Stephen?
ChangeLog addition:
2005-11-27 Marcus Crestani <crestani(a)xemacs.org>
* configure.ac: Remove vdb-fake warning, die if POSIX checks fail.
xemacs-21.5 source patch:
Diff command: cvs -q diff -u
Files affected: configure.ac configure
Index: configure
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/configure,v
retrieving revision 1.264
diff -u -r1.264 configure
--- configure 26 Nov 2005 18:49:06 -0000 1.264
+++ configure 27 Nov 2005 10:17:16 -0000
@@ -30040,6 +30040,8 @@
if test "$have_vdb_sigaction" != "yes" -a
"$have_vdb_signal" != "yes" ; then
have_vdb_posix=no
have_vdb_fake=yes
+ { echo "Error:" "No working write-barrier implementation found for
this system.
+ Please report this and provide information about your system." >&2;
exit 1; }
else
have_vdb_posix=yes
have_vdb_fake=no
@@ -39336,15 +39338,6 @@
fi
if test "$have_vdb_mach" = yes ; then
echo " Using mach exception mechanism as vdb fault handler."
-fi
-if test "$have_vdb_fake" = yes && test "$enable_vdb" != fake;
then
- echo " WARNING: ---------------------------------------------------------"
- echo " WARNING: The new incremental garbage collector is enabled, but"
- echo " WARNING: a virtual dirty bit implementation is not yet available"
- echo " WARNING: on this system. XEmacs will crash if you try to switch on"
- echo " WARNUNG: incremental garbage collection!"
- echo " WARNING: Use \`--disable-newgc' to turn incremental gc off."
- echo " WARNING: ---------------------------------------------------------"
fi
if test "$have_vdb_fake" = yes && test "$enable_vdb" == fake;
then
echo " Virtual dirty bit write barrier manually disabled."
Index: configure.ac
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/configure.ac,v
retrieving revision 1.25
diff -u -r1.25 configure.ac
--- configure.ac 26 Nov 2005 18:49:09 -0000 1.25
+++ configure.ac 27 Nov 2005 10:17:20 -0000
@@ -1729,8 +1729,6 @@
cygwin* ) AC_DEFINE(VDB_WIN32) have_vdb_win32=yes ;;
linux* ) check_vdb_posix=yes ;;
freebsd ) check_vdb_posix=yes ;;
-dnl bail out immediately
-dnl * ) have_vdb_fake=yes ;;
dnl if not sure, try posix first, maybe we are lucky
* ) check_vdb_posix=yes ;;
esac
@@ -4609,6 +4607,8 @@
if test "$have_vdb_sigaction" != "yes" -a
"$have_vdb_signal" != "yes" ; then
have_vdb_posix=no
have_vdb_fake=yes
+ XE_DIE("No working write-barrier implementation found for this system.
+ Please report this and provide information about your system.")
else
have_vdb_posix=yes
have_vdb_fake=no
@@ -6083,15 +6083,6 @@
fi
if test "$have_vdb_mach" = yes ; then
echo " Using mach exception mechanism as vdb fault handler."
-fi
-if test "$have_vdb_fake" = yes && test "$enable_vdb" != fake;
then
- echo " WARNING: ---------------------------------------------------------"
- echo " WARNING: The new incremental garbage collector is enabled, but"
- echo " WARNING: a virtual dirty bit implementation is not yet available"
- echo " WARNING: on this system. XEmacs will crash if you try to switch on"
- echo " WARNUNG: incremental garbage collection!"
- echo " WARNING: Use \`--disable-newgc' to turn incremental gc off."
- echo " WARNING: ---------------------------------------------------------"
fi
if test "$have_vdb_fake" = yes && test "$enable_vdb" == fake;
then
echo " Virtual dirty bit write barrier manually disabled."
--
Marcus