OSDN Git Service

Fix TAS assembly stuff for Solaris/386. (I'm not in a position to
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 24 Sep 2004 00:21:32 +0000 (00:21 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 24 Sep 2004 00:21:32 +0000 (00:21 +0000)
actually test this, but it couldn't be broken any worse than it was...)

src/include/storage/s_lock.h
src/template/solaris

index 8d8155d..4bf1445 100644 (file)
@@ -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) */
 
 
index f2e7aaa..4b6d9cd 100644 (file)
@@ -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