aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-08-26 14:47:35 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-08-26 14:47:35 +0000
commit396526d8c341639d78eb1e79c027dd97ecdb4659 (patch)
tree36a81d4f5f65c8f1309421038b908b5444bfd8be
parenta310a1d80c6535774115838010f9c337d08d45cc (diff)
downloadpostgresql-396526d8c341639d78eb1e79c027dd97ecdb4659.tar.gz
postgresql-396526d8c341639d78eb1e79c027dd97ecdb4659.zip
Adjust m68k spinlock code to avoid duplicate in-line and not-in-line
definitions on recent Linux systems, per Martin Pitt.
-rw-r--r--src/backend/storage/lmgr/s_lock.c11
-rw-r--r--src/include/storage/s_lock.h12
2 files changed, 14 insertions, 9 deletions
diff --git a/src/backend/storage/lmgr/s_lock.c b/src/backend/storage/lmgr/s_lock.c
index f57dd9a439e..d6c1a657875 100644
--- a/src/backend/storage/lmgr/s_lock.c
+++ b/src/backend/storage/lmgr/s_lock.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.37 2005/08/25 17:17:09 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.38 2005/08/26 14:47:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -135,7 +135,12 @@ s_lock(volatile slock_t *lock, const char *file, int line)
*/
-#if defined(__m68k__)
+/*
+ * Note: all the if-tests here probably ought to be testing gcc version
+ * rather than platform, but I don't have adequate info to know what to
+ * write. Ideally we'd flush all this in favor of the inline version.
+ */
+#if defined(__m68k__) && !defined(__linux__)
/* really means: extern int tas(slock_t* **lock); */
static void
tas_dummy()
@@ -169,7 +174,7 @@ _success: \n\
#endif /* __NetBSD__ && __ELF__ */
);
}
-#endif /* __m68k__ */
+#endif /* __m68k__ && !__linux__ */
#else /* not __GNUC__ */
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index 579db815a4e..0124b365a01 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -66,7 +66,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.135 2005/08/25 17:17:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.136 2005/08/26 14:47:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -191,7 +191,7 @@ tas(volatile slock_t *lock)
return (int) ret;
}
-#else
+#else /* __INTEL_COMPILER */
static __inline__ int
tas(volatile slock_t *lock)
@@ -203,7 +203,7 @@ tas(volatile slock_t *lock)
return ret;
}
-#endif
+#endif /* __INTEL_COMPILER */
#endif /* __ia64__ || __ia64 */
@@ -328,7 +328,7 @@ do \
#endif /* powerpc */
-#if defined(__mc68000__) && defined(__linux__)
+#if (defined(__mc68000__) || defined(__m68k__)) && defined(__linux__)
#define HAS_TEST_AND_SET
typedef unsigned char slock_t;
@@ -350,7 +350,7 @@ tas(volatile slock_t *lock)
return rv;
}
-#endif /* defined(__mc68000__) && defined(__linux__) */
+#endif /* (__mc68000__ || __m68k__) && __linux__ */
#if defined(__vax__)
@@ -491,7 +491,7 @@ tas(volatile slock_t *lock)
/* These live in s_lock.c, but only for gcc */
-#if defined(__m68k__)
+#if defined(__m68k__) && !defined(__linux__)
#define HAS_TEST_AND_SET
typedef unsigned char slock_t;