aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/storage/s_lock.h14
-rw-r--r--src/template/solaris17
2 files changed, 27 insertions, 4 deletions
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index 8d8155d65f6..4bf1445d23a 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -66,7 +66,7 @@
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.129 2004/09/02 17:10:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.130 2004/09/24 00:21:29 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -658,6 +658,18 @@ typedef unsigned char slock_t;
#endif
+/* out-of-line assembler from src/backend/port/tas/*.s */
+
+#if defined(__sun) && defined(__i386)
+/*
+ * Solaris/386 (we only get here for non-gcc case)
+ */
+#define HAS_TEST_AND_SET
+
+typedef unsigned char slock_t;
+#endif
+
+
#endif /* !defined(HAS_TEST_AND_SET) */
diff --git a/src/template/solaris b/src/template/solaris
index f2e7aaa0470..4b6d9cdb586 100644
--- a/src/template/solaris
+++ b/src/template/solaris
@@ -3,10 +3,21 @@ if test "$GCC" != yes ; then
CFLAGS="-O -v" # -v is like gcc -Wall
fi
-# Pick right test-and-set (TAS) code.
+# Pick right test-and-set (TAS) code. We need out-of-line assembler
+# when not using gcc.
case $host in
- sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;;
- i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;;
+ sparc-*-solaris*)
+ if test "$GCC" != yes ; then
+ need_tas=yes
+ tas_file=solaris_sparc.s
+ fi
+ ;;
+ i?86-*-solaris*)
+ if test "$GCC" != yes ; then
+ need_tas=yes
+ tas_file=solaris_i386.s
+ fi
+ ;;
esac
# -D_POSIX_PTHREAD_SEMANTICS enables 5-arg getpwuid_r, among other things