Commit 81051a86 authored by Robert Haas's avatar Robert Haas

Remove spinlock support for SINIX, Sun3, and NS32K.

All of these platforms are very much obsolete.

As far as I can determine, the last version of SINIX, later renamed
Reliant, occurred some time between 2002 and 2005.

The last release of SunOS that would run on a sun3 was released in
November of 1991; the last release of OpenBSD which supported that
platform was in 2001.  The highest clock speed of any processor in
the family was 25MHz.

The NS32K (national semiconductor 320xx) architecture was retired
in 1990.

Support can be re-added if a maintainer emerges for any of these
platforms, but it seems unlikely.

Reviewed by Andres Freund.
parent bbe4deac
...@@ -1953,7 +1953,7 @@ kill `cat /usr/local/pgsql/data/postmaster.pid` ...@@ -1953,7 +1953,7 @@ kill `cat /usr/local/pgsql/data/postmaster.pid`
In general, <productname>PostgreSQL</> can be expected to work on In general, <productname>PostgreSQL</> can be expected to work on
these CPU architectures: x86, x86_64, IA64, PowerPC, these CPU architectures: x86, x86_64, IA64, PowerPC,
PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K,
and PA-RISC. Code support exists for M32R, NS32K, and VAX, but these and PA-RISC. Code support exists for M32R and VAX, but these
architectures are not known to have been tested recently. It is often architectures are not known to have been tested recently. It is often
possible to build on an unsupported CPU type by configuring with possible to build on an unsupported CPU type by configuring with
<option>--disable-spinlocks</option>, but performance will be poor. <option>--disable-spinlocks</option>, but performance will be poor.
......
...@@ -247,36 +247,6 @@ _success: \n\ ...@@ -247,36 +247,6 @@ _success: \n\
); );
} }
#endif /* __m68k__ && !__linux__ */ #endif /* __m68k__ && !__linux__ */
#else /* not __GNUC__ */
/*
* All non gcc
*/
#if defined(sun3)
static void
tas_dummy() /* really means: extern int tas(slock_t
* *lock); */
{
asm("LLA0:");
asm(" .data");
asm(" .text");
asm("|#PROC# 04");
asm(" .globl _tas");
asm("_tas:");
asm("|#PROLOGUE# 1");
asm(" movel sp@(0x4),a0");
asm(" tas a0@");
asm(" beq LLA1");
asm(" moveq #-128,d0");
asm(" rts");
asm("LLA1:");
asm(" moveq #0,d0");
asm(" rts");
asm(" .data");
}
#endif /* sun3 */
#endif /* not __GNUC__ */ #endif /* not __GNUC__ */
#endif /* HAVE_SPINLOCKS */ #endif /* HAVE_SPINLOCKS */
......
...@@ -551,31 +551,6 @@ tas(volatile slock_t *lock) ...@@ -551,31 +551,6 @@ tas(volatile slock_t *lock)
#endif /* __vax__ */ #endif /* __vax__ */
#if defined(__ns32k__) /* National Semiconductor 32K */
#define HAS_TEST_AND_SET
typedef unsigned char slock_t;
#define TAS(lock) tas(lock)
static __inline__ int
tas(volatile slock_t *lock)
{
register int _res;
__asm__ __volatile__(
" sbitb 0, %1 \n"
" sfsd %0 \n"
: "=r"(_res), "+m"(*lock)
:
: "memory");
return _res;
}
#endif /* __ns32k__ */
#if defined(__alpha) || defined(__alpha__) /* Alpha */ #if defined(__alpha) || defined(__alpha__) /* Alpha */
/* /*
* Correct multi-processor locking methods are explained in section 5.5.3 * Correct multi-processor locking methods are explained in section 5.5.3
...@@ -886,25 +861,6 @@ typedef unsigned long slock_t; ...@@ -886,25 +861,6 @@ typedef unsigned long slock_t;
#define S_LOCK_FREE(lock) (test_then_add(lock,0) == 0) #define S_LOCK_FREE(lock) (test_then_add(lock,0) == 0)
#endif /* __sgi */ #endif /* __sgi */
#if defined(sinix) /* Sinix */
/*
* SINIX / Reliant UNIX
* slock_t is defined as a struct abilock_t, which has a single unsigned long
* member. (Basically same as SGI)
*/
#define HAS_TEST_AND_SET
#include "abi_mutex.h"
typedef abilock_t slock_t;
#define TAS(lock) (!acquire_lock(lock))
#define S_UNLOCK(lock) release_lock(lock)
#define S_INIT_LOCK(lock) init_lock(lock)
#define S_LOCK_FREE(lock) (stat_lock(lock) == UNLOCKED)
#endif /* sinix */
#if defined(_AIX) /* AIX */ #if defined(_AIX) /* AIX */
/* /*
* AIX (POWER) * AIX (POWER)
...@@ -922,14 +878,6 @@ typedef int slock_t; ...@@ -922,14 +878,6 @@ typedef int slock_t;
/* These are in s_lock.c */ /* These are in s_lock.c */
#if defined(sun3) /* Sun3 */
#define HAS_TEST_AND_SET
typedef unsigned char slock_t;
#endif
#if defined(__SUNPRO_C) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc)) #if defined(__SUNPRO_C) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc))
#define HAS_TEST_AND_SET #define HAS_TEST_AND_SET
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment