aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/BACKEND_DIRS3
-rw-r--r--src/Makefile.global6
-rw-r--r--src/backend/access/common/heaptuple.c6
-rw-r--r--src/backend/storage/file/fd.c14
-rw-r--r--src/backend/storage/ipc/s_lock.c22
-rw-r--r--src/backend/utils/cache/catcache.c4
-rw-r--r--src/bin/psql/Makefile4
-rw-r--r--src/include/c.h4
-rw-r--r--src/include/config.h65
-rw-r--r--src/include/storage/buf_internals.h41
-rw-r--r--src/include/storage/ipc.h72
-rw-r--r--src/interfaces/libpq/libpq-fe.h6
12 files changed, 96 insertions, 151 deletions
diff --git a/src/BACKEND_DIRS b/src/BACKEND_DIRS
index 371dc024338..d61efea704a 100644
--- a/src/BACKEND_DIRS
+++ b/src/BACKEND_DIRS
@@ -52,13 +52,12 @@ port/BSD44_derived
port/aix
port/alpha
port/bsdi
-port/bsdi_2_1
port/dgux
port/hpux
port/i386_solaris
port/irix5
port/linux
-port/sparc
+port/sunos4
port/sparc_solaris
port/svr4
port/ultrix4
diff --git a/src/Makefile.global b/src/Makefile.global
index 828673fe2e8..9af08a44271 100644
--- a/src/Makefile.global
+++ b/src/Makefile.global
@@ -7,7 +7,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.75 1996/11/27 08:13:44 bryanh Exp $
+# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.76 1996/12/04 03:05:45 bryanh Exp $
#
# NOTES
# Essentially all Postgres make files include this file and use the
@@ -42,7 +42,7 @@
# hpux HP PA-RISC on HP-UX 9.0
# i386_solaris i386 Solaris
# sparc_solaris SUN SPARC on Solaris 2.4
-# sparc SUN SPARC on SunOS 4.1.3
+# sunos4 SUN SPARC on SunOS 4.1.3
# ultrix4 DEC MIPS on Ultrix 4.4
# linux Intel x86 on Linux 1.2 and Linux ELF
# (For non-ELF Linux, see LINUX_ELF below).
@@ -582,7 +582,7 @@ endif
#---------------------------------------------------------------------------
-ifeq ($(PORTNAME), sparc)
+ifeq ($(PORTNAME), sunos4)
# cc won't work!
CC= gcc
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index b516e5beaba..ccaaba60333 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.16 1996/11/10 02:56:41 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.17 1996/12/04 03:05:55 bryanh Exp $
*
* NOTES
* The old interface functions have been converted to macros
@@ -35,9 +35,9 @@
/* this is so the sparcstation debugger works */
-#if !defined(NO_ASSERT_CHECKING) && defined(sparc)
+#if !defined(NO_ASSERT_CHECKING) && defined(sparc) && defined(sunos4)
#define register
-#endif /* !NO_ASSERT_CHECKING && sparc */
+#endif /* !NO_ASSERT_CHECKING && sparc && sunos4 */
/* ----------------------------------------------------------------
* misc support routines
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index d112c989f73..d02ffcf19f9 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -6,7 +6,7 @@
* Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Id: fd.c,v 1.9 1996/11/08 05:58:21 momjian Exp $
+ * $Id: fd.c,v 1.10 1996/12/04 03:05:58 bryanh Exp $
*
* NOTES:
*
@@ -52,24 +52,20 @@
#include "utils/palloc.h"
#include "storage/fd.h"
-#ifdef sparc
+#if defined(NEED_NOFILE_KLUDGE)
/*
* the SunOS 4 NOFILE is a lie, because the default limit is *not* the
* maximum number of file descriptors you can have open.
*
* we have to either use this number (the default dtablesize) or
* explicitly call setrlimit(RLIMIT_NOFILE, NOFILE).
+ *
+ * this braindamage apparently also affects solaris 2.X as well
*/
#include <sys/user.h>
#undef NOFILE
#define NOFILE NOFILE_IN_U
-#endif /* sparc */
-
-#if defined(sparc_solaris) || defined(i386_solaris)
-#include <sys/user.h>
-#undef NOFILE
-#define NOFILE 64
-#endif /* sparc_solaris || i386_solaris */
+#endif /* NEED_NOFILE_KLUDGE */
/*
* Problem: Postgres does a system(ld...) to do dynamic loading. This
diff --git a/src/backend/storage/ipc/s_lock.c b/src/backend/storage/ipc/s_lock.c
index 76e4ea7cc68..68cda576743 100644
--- a/src/backend/storage/ipc/s_lock.c
+++ b/src/backend/storage/ipc/s_lock.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/Attic/s_lock.c,v 1.8 1996/11/10 03:02:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/Attic/s_lock.c,v 1.9 1996/12/04 03:06:04 bryanh Exp $
*
*-------------------------------------------------------------------------
*/
@@ -266,7 +266,7 @@ S_LOCK_FREE(slock_t *lock)
* sun3
*/
-#if (defined(sun3) && ! defined(sparc))
+#if defined(sun3)
void
S_LOCK(slock_t *lock)
@@ -307,13 +307,13 @@ tas_dummy()
asm(" .data");
}
-#endif
+#endif /* sun3 */
/*
- * SPARC (SunOS 4)
+ * sparc machines
*/
-#if defined(sparc) && !defined(sparc_solaris)
+#if defined(NEED_SPARC_TAS_ASM)
/* if we're using -ansi w/ gcc, use __asm__ instead of asm */
#if defined(__STRICT_ANSI__)
@@ -375,18 +375,14 @@ S_INIT_LOCK(unsigned char *addr)
*addr = 0;
}
-#endif /* sparc */
+#endif /* NEED_SPARC_TAS_ASM */
/*
- * Linux and friends
+ * i386 based things
*/
-#if defined(BSD44_derived) || \
- defined(bsdi) || \
- defined(bsdi_2_1) || \
- defined(linux)
+#if defined(NEED_I386_TAS_ASM)
-
int
tas(slock_t *m)
{
@@ -414,7 +410,7 @@ S_INIT_LOCK(slock_t *lock)
S_UNLOCK(lock);
}
-#endif /* linux and friends */
+#endif /* NEED_I386_TAS_ASM */
#endif /* HAS_TEST_AND_SET */
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index aa3616390c4..6cba6487512 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.5 1996/11/13 20:50:04 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.6 1996/12/04 03:06:09 bryanh Exp $
*
* Notes:
* XXX This needs to use exception.h to handle recovery when
@@ -740,7 +740,7 @@ SearchSysCache(struct catcache *cache,
Datum v4)
{
unsigned hash;
- CatCTup *ct;
+ CatCTup *ct = NULL;
CatCTup *nct;
CatCTup *nct2;
Dlelem *elt;
diff --git a/src/bin/psql/Makefile b/src/bin/psql/Makefile
index d67aade69ba..24a20217300 100644
--- a/src/bin/psql/Makefile
+++ b/src/bin/psql/Makefile
@@ -7,7 +7,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/bin/psql/Makefile,v 1.15 1996/11/26 07:38:24 bryanh Exp $
+# $Header: /cvsroot/pgsql/src/bin/psql/Makefile,v 1.16 1996/12/04 03:06:16 bryanh Exp $
#
#-------------------------------------------------------------------------
@@ -32,7 +32,7 @@ ifeq ($(USE_READLINE), true)
ifeq ($(PORTNAME), ultrix4)
LD_ADD+= -ltermcap
else
- ifeq ($(PORTNAME), sparc)
+ ifeq ($(PORTNAME), sunos4)
LD_ADD+= -ltermcap
else
ifeq ($(PORTNAME), linux)
diff --git a/src/include/c.h b/src/include/c.h
index a4ba01ad3b9..1ba94d04a6c 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.4 1996/11/14 06:06:39 bryanh Exp $
+ * $Id: c.h,v 1.5 1996/12/04 03:06:21 bryanh Exp $
*
*-------------------------------------------------------------------------
*/
@@ -747,7 +747,7 @@ extern char *form(char *fmt, ...);
#include "port/hpux/fixade.h" /* for 8.07 unaligned access fixup */
#endif /* hpux */
-#if defined(sparc) && !defined(sparc_solaris)
+#if defined(sunos4)
#define memmove(d, s, l) bcopy(s, d, l)
#endif
diff --git a/src/include/config.h b/src/include/config.h
index b51e4b0ae70..f28a51c0127 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -25,6 +25,9 @@
# define NEED_SYS_SELECT_H
# define HAVE_TZSET
# define HAVE_ANSI_CPP
+# define SB_PAD 44
+# define HAS_TEST_AND_SET
+ typedef unsigned int slock_t;
#endif
#if defined(alpha)
@@ -34,18 +37,44 @@
# define NEED_ISINF
# define HAS_LONG_LONG
# define NEED_UNION_SEMUN
+# define SB_PAD 40
+# define HAS_TEST_AND_SET
+ typedef msemaphore slock_t;
#endif
-#if defined(BSD44_derived) || \
- defined(bsdi)
+#if defined(BSD44_derived)
# define USE_LIMITS_H
# define USE_POSIX_TIME
# define NEED_CBRT
+# define NEED_I386_TAS_ASM
+# define SB_PAD 56
+# define HAS_TEST_AND_SET
+# if defined(__mips__)
+# undef HAS_TEST_AND_SET
+# endif
+ typedef unsigned char slock_t;
+#endif
+
+#if defined(bsdi)
+# if defined(i386)
+# define NEED_I386_TAS_ASM
+# define SB_PAD 56
+# endif
+# if defined(sparc)
+# define NEED_SPARC_TAS_ASM
+# define SB_PAD 56
+# endif
# if defined(PRE_BSDI_2_1)
# define NEED_UNION_SEMUN
# endif
+# define USE_LIMITS_H
+# define USE_POSIX_TIME
+# define NEED_CBRT
+# define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
#endif
+
#if defined(dgux)
# define LINUX_ELF
# define NEED_UNION_SEMUN
@@ -60,6 +89,9 @@
# define NEED_CBRT
# define NEED_RINT
# define NEED_UNION_SEMUN
+# define SB_PAD 44
+# define HAS_TEST_AND_SET
+ typedef struct { int sem[4]; } slock_t;
#endif
#if defined(i386_solaris)
@@ -71,6 +103,10 @@
# define HAVE_TZSET
# define NEED_UNION_SEMUN
# define SYSV_DIRENT
+# define NEED_NOFILE_KLUDGE
+# define SB_PAD 56
+# define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
#endif
#if defined(irix5)
@@ -81,6 +117,9 @@
# define NO_VFORK
# define HAVE_TZSET
# define SYSV_DIRENT
+# define SB_PAD 44
+# define HAS_TEST_AND_SET
+ typedef abilock_t slock_t;
#endif
#if defined(linux)
@@ -94,22 +133,24 @@
# define USE_POSIX_TIME
# define HAVE_TZSET
# define NEED_CBRT
+# define NEED_I386_TAS_ASM
+# define SB_PAD 56
+# define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
#endif
+/* does anybody use this? */
#if defined(next)
# define SIGJMP_BUF
# define NEED_SIG_JMP
+# define SB_PAD 56
+ typedef struct mutex slock_t;
#endif
#if defined(sequent)
# define NEED_UNION_SEMUN
#endif
-#if defined(sparc) && !defined(sparc_solaris)
-# define USE_POSIX_TIME
-# undef HAVE_MEMMOVE
-#endif
-
#if defined(sparc_solaris)
# define USE_POSIX_TIME
# define USE_POSIX_SIGNALS
@@ -120,6 +161,15 @@
# define HAVE_TZSET
# define NEED_UNION_SEMUN
# define SYSV_DIRENT
+# define NEED_NOFILE_KLUDGE
+# define SB_PAD 56
+#endif
+
+#if defined(sunos4)
+# define USE_POSIX_TIME
+# define NEED_NOFILE_KLUDGE
+# define SB_PAD 56
+# undef HAVE_MEMMOVE
#endif
#if defined(svr4)
@@ -150,6 +200,7 @@
# define USE_POSIX_TIME
# define NEED_UNION_SEMUN
# define NEED_STRDUP
+# define SB_PAD 60
#endif
diff --git a/src/include/storage/buf_internals.h b/src/include/storage/buf_internals.h
index af7a57d0d9a..963c887ebc8 100644
--- a/src/include/storage/buf_internals.h
+++ b/src/include/storage/buf_internals.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: buf_internals.h,v 1.6 1996/11/10 03:05:53 momjian Exp $
+ * $Id: buf_internals.h,v 1.7 1996/12/04 03:06:27 bryanh Exp $
*
* NOTE
* If BUFFERPAGE0 is defined, then 0 will be used as a
@@ -130,40 +130,11 @@ struct sbufdesc {
* going to make some of these types bigger soon anyway... -pma 1/2/93
*/
-/* NO spinlock */
-
-#if defined(ultrix4)
- char sb_pad[60]; /* no slock_t */
-#endif /* mips */
-
-/* HAS_TEST_AND_SET -- platform dependent size */
-
-#if defined(aix)
- char sb_pad[44]; /* typedef unsigned int slock_t; */
-#endif /* aix */
-#if defined(alpha)
- char sb_pad[40]; /* typedef msemaphore slock_t; */
-#endif /* alpha */
-#if defined(hpux)
- char sb_pad[44]; /* typedef struct { int sem[4]; } slock_t; */
-#endif /* hpux */
-#if defined(irix5)
- char sb_pad[44]; /* typedef abilock_t slock_t; */
-#endif /* irix5 */
-#if defined(next)
- char sb_pad[56]; /* typedef struct mutex slock_t; */
-#endif /* next */
-
-/* HAS_TEST_AND_SET -- default 1 byte spinlock */
-
-#if defined(BSD44_derived) || \
- defined(bsdi) || \
- defined(i386_solaris) || \
- defined(linux) || \
- defined(sparc) || \
- defined(sparc_solaris)
- char sb_pad[56]; /* has slock_t */
-#endif /* 1 byte slock_t */
+ /*
+ * NOTE: This is now defined in the ..../include/config.h file!
+ */
+
+ char sb_pad[SB_PAD];
};
/*
diff --git a/src/include/storage/ipc.h b/src/include/storage/ipc.h
index 1fc38b81b82..85f24cecb27 100644
--- a/src/include/storage/ipc.h
+++ b/src/include/storage/ipc.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: ipc.h,v 1.10 1996/11/27 08:16:38 bryanh Exp $
+ * $Id: ipc.h,v 1.11 1996/12/04 03:06:29 bryanh Exp $
*
* NOTES
* This file is very architecture-specific. This stuff should actually
@@ -24,78 +24,10 @@
#include <sys/types.h>
#include <sys/ipc.h> /* For IPC_PRIVATE */
-/*
- * Many architectures have support for user-level spinlocks (i.e., an
- * atomic test-and-set instruction). However, we have only written
- * spinlock code for the architectures listed.
- * NB: for operating systems like NetBSD (covered by BSD44_derived),
- * we may in fact have different architectures, thus make the tests
- * based on portnames somewhat misleading.
- */
-#if defined(aix) || \
- defined(alpha) || \
- defined(BSD44_derived) || \
- defined(bsdi) || \
- defined(hpux) || \
- defined(i386_solaris) || \
- defined(irix5) || \
- defined(linux) || \
- defined(next) || \
- defined(sparc) || \
- defined(sparc_solaris)
-#define HAS_TEST_AND_SET
-#endif
-
-#if defined(BSD44_derived) && defined(__mips__)
-#undef HAS_TEST_AND_SET
-#endif
+#include <config.h>
#if defined(HAS_TEST_AND_SET)
-#if defined(aix)
-/*
- * The AIX C library has the cs(3) builtin for compare-and-set that
- * operates on ints.
- */
-typedef unsigned int slock_t;
-#else /* aix */
-
-#if defined(alpha)
-typedef msemaphore slock_t;
-#else /* alpha */
-
-#if defined(hpux)
-/*
- * The PA-RISC "semaphore" for the LDWCX instruction is 4 bytes aligned
- * to a 16-byte boundary.
- */
-typedef struct { int sem[4]; } slock_t;
-#else /* hpux */
-
-#if defined(irix5)
-typedef abilock_t slock_t;
-#else /* irix5 */
-
-#if defined(next)
-/*
- * Use Mach mutex routines since these are, in effect, test-and-set
- * spinlocks.
- */
-#undef NEVER /* definition in cthreads.h conflicts with parse.h */
-typedef struct mutex slock_t;
-#else /* next */
-
-/*
- * On all other architectures spinlocks are a single byte.
- */
-typedef unsigned char slock_t;
-
-#endif /* next */
-#endif /* irix5 */
-#endif /* hpux */
-#endif /* alpha */
-#endif /* aix */
-
extern void S_LOCK(slock_t *lock);
extern void S_UNLOCK(slock_t *lock);
extern void S_INIT_LOCK(slock_t *lock);
diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h
index 518414b5061..b781e580060 100644
--- a/src/interfaces/libpq/libpq-fe.h
+++ b/src/interfaces/libpq/libpq-fe.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-fe.h,v 1.13 1996/11/22 04:39:53 bryanh Exp $
+ * $Id: libpq-fe.h,v 1.14 1996/12/04 03:06:33 bryanh Exp $
*
*-------------------------------------------------------------------------
*/
@@ -298,10 +298,10 @@ typedef void *TUPLE;
#define palloc malloc
#define pfree free
-#if defined(sparc)
+#if defined(sunos4)
extern char *sys_errlist[];
#define strerror(A) (sys_errlist[(A)])
-#endif /* sparc */
+#endif /* sunos4 */
#ifdef __cplusplus
};