Index: configure
===================================================================
RCS file: /cvsroot/pgsql-server/configure,v
retrieving revision 1.295
diff -c -c -r1.295 configure
*** configure 7 Sep 2003 16:49:41 -0000 1.295
--- configure 12 Sep 2003 16:05:13 -0000
***************
*** 869,874 ****
--- 869,875 ----
--with-rendezvous build with Rendezvous support
--with-openssl[=DIR] build with OpenSSL support [/usr/local/ssl]
--without-readline do not use Readline
+ --without-spinlocks do not use Spinlocks
--without-zlib do not use Zlib
--with-gnu-ld assume the C compiler uses GNU ld default=no
***************
*** 3494,3499 ****
--- 3495,3530 ----
#
+ # Spinlocks
+ #
+
+
+
+ # Check whether --with-spinlocks or --without-spinlocks was given.
+ if test "${with_spinlocks+set}" = set; then
+ withval="$with_spinlocks"
+
+ case $withval in
+ yes)
+ :
+ ;;
+ no)
+ :
+ ;;
+ *)
+ { { echo "$as_me:$LINENO: error: no argument expected for --with-spinlocks option" >&5
+ echo "$as_me: error: no argument expected for --with-spinlocks option" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ else
+ with_spinlocks=yes
+
+ fi;
+
+
+ #
# Zlib
#
***************
*** 3523,3529 ****
fi;
-
#
# Elf
#
--- 3554,3559 ----
***************
*** 6060,6065 ****
--- 6090,6108 ----
{ (exit 1); exit 1; }; }
fi
+ fi
+
+ if test "$with_spinlocks" = yes; then
+
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_SPINLOCKS 1
+ _ACEOF
+
+ else
+ { echo "$as_me:$LINENO: WARNING:
+ *** Not using spinlocks will cause poor performance." >&5
+ echo "$as_me: WARNING:
+ *** Not using spinlocks will cause poor performance." >&2;}
fi
if test "$with_krb4" = yes ; then
Index: configure.in
===================================================================
RCS file: /cvsroot/pgsql-server/configure.in,v
retrieving revision 1.286
diff -c -c -r1.286 configure.in
*** configure.in 7 Sep 2003 16:38:05 -0000 1.286
--- configure.in 12 Sep 2003 16:05:15 -0000
***************
*** 522,533 ****
[ --without-readline do not use Readline])
#
# Zlib
#
PGAC_ARG_BOOL(with, zlib, yes,
[ --without-zlib do not use Zlib])
-
#
# Elf
#
--- 522,538 ----
[ --without-readline do not use Readline])
#
+ # Spinlocks
+ #
+ PGAC_ARG_BOOL(with, spinlocks, yes,
+ [ --without-spinlocks do not use Spinlocks])
+
+ #
# Zlib
#
PGAC_ARG_BOOL(with, zlib, yes,
[ --without-zlib do not use Zlib])
#
# Elf
#
***************
*** 676,681 ****
--- 681,693 ----
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.])])
+ fi
+
+ if test "$with_spinlocks" = yes; then
+ AC_DEFINE(HAVE_SPINLOCKS, 1, [Define to 1 if you have spinlocks.])
+ else
+ AC_MSG_WARN([
+ *** Not using spinlocks will cause poor performance.])
fi
if test "$with_krb4" = yes ; then
Index: doc/src/sgml/installation.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/installation.sgml,v
retrieving revision 1.141
diff -c -c -r1.141 installation.sgml
*** doc/src/sgml/installation.sgml 11 Sep 2003 21:42:20 -0000 1.141
--- doc/src/sgml/installation.sgml 12 Sep 2003 16:05:17 -0000
***************
*** 900,905 ****
--- 900,917 ----
+
+
+
+ Allows source builds to succeed without CPU spinlock support.
+ Lack of spinlock support will produce poor performance.
+ This option is to be used only by platforms without
+ spinlock support.
+
+
+
+
+
Index: src/include/pg_config.h.in
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/pg_config.h.in,v
retrieving revision 1.62
diff -c -c -r1.62 pg_config.h.in
*** src/include/pg_config.h.in 7 Sep 2003 03:43:56 -0000 1.62
--- src/include/pg_config.h.in 12 Sep 2003 16:05:19 -0000
***************
*** 357,362 ****
--- 357,365 ----
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
+ /* Define to 1 if you have spinlocks. */
+ #undef HAVE_SPINLOCKS
+
/* Define to 1 if you have the `srandom' function. */
#undef HAVE_SRANDOM
Index: src/include/storage/s_lock.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/storage/s_lock.h,v
retrieving revision 1.112
diff -c -c -r1.112 s_lock.h
*** src/include/storage/s_lock.h 4 Aug 2003 02:40:15 -0000 1.112
--- src/include/storage/s_lock.h 12 Sep 2003 16:05:20 -0000
***************
*** 537,543 ****
! #else /* !HAS_TEST_AND_SET */
/*
* Fake spinlock implementation using semaphores --- slow and prone
--- 537,547 ----
! #else /* HAS_TEST_AND_SET */
!
! #ifdef HAVE_SPINLOCKS
! #error This platform does not support native spinlocks. To continue the compile, rerun configure using --without-spinlocks. However, performance will be poor. Please report this to pgsql-bugs@postgresql.org.
! #endif
/*
* Fake spinlock implementation using semaphores --- slow and prone