aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1998-03-01 04:47:38 +0000
committerMarc G. Fournier <scrappy@hub.org>1998-03-01 04:47:38 +0000
commit56b3182241347aacb7b4c47519f009ffa2b57aa8 (patch)
treebd6f3caf19abe173617ca8632828f8e0faf4d04f /src
parent5b3e78afe3b207e5db91853f03a90f37e0fdb35f (diff)
downloadpostgresql-56b3182241347aacb7b4c47519f009ffa2b57aa8.tar.gz
postgresql-56b3182241347aacb7b4c47519f009ffa2b57aa8.zip
From: "Billy G. Allie" <Bill.Allie@mug.org>
The following patches will allow postgreSQL 6.3 to compile and run on a UNIXWARE 2.1.2 system with the native C compiler with the following library change: The alloca function must be copied from the libucb.a archive and added to the libgen.a archive. Also, the GNU flex program is needed to successfully build postgreSQL.
Diffstat (limited to 'src')
-rw-r--r--src/backend/port/dynloader/univel.c2
-rw-r--r--src/backend/port/dynloader/univel.h36
-rw-r--r--src/include/access/heapam.h54
-rw-r--r--src/include/port/univel.h7
-rw-r--r--src/include/storage/s_lock.h20
-rw-r--r--src/template/univel3
6 files changed, 88 insertions, 34 deletions
diff --git a/src/backend/port/dynloader/univel.c b/src/backend/port/dynloader/univel.c
index d0cd246636e..98b6d61d30e 100644
--- a/src/backend/port/dynloader/univel.c
+++ b/src/backend/port/dynloader/univel.c
@@ -1,4 +1,4 @@
/* Dummy file used for nothing at this point
*
* see univel.h
- */
+ */
diff --git a/src/backend/port/dynloader/univel.h b/src/backend/port/dynloader/univel.h
index 38e43833da0..78222686fdf 100644
--- a/src/backend/port/dynloader/univel.h
+++ b/src/backend/port/dynloader/univel.h
@@ -1,23 +1,23 @@
/*-------------------------------------------------------------------------
*
- * port-protos.h--
+ * univel.h--
* port-specific prototypes for Intel x86/UNIXWARE
*
*
* Copyright (c) 1994, Regents of the University of California
*
- * port-protos.h,v 1.2 1995/03/17 06:40:18 andrew Exp
+ * univel.h,v 1.2 1995/03/17 06:40:18 andrew Exp
*
*-------------------------------------------------------------------------
- */
-#ifndef PORT_PROTOS_H
-#define PORT_PROTOS_H
-
-#include <dlfcn.h>
-#include "fmgr.h" /* for func_ptr */
-#include "utils/dynamic_loader.h"
-
- /* dynloader.c */
+ */
+#ifndef PORT_PROTOS_H
+#define PORT_PROTOS_H
+
+#include <dlfcn.h>
+#include "fmgr.h" /* for func_ptr */
+#include "utils/dynamic_loader.h"
+
+ /* dynloader.c */
/*
* Dynamic Loader on Intel x86/Intel SVR4.
*
@@ -25,10 +25,10 @@
* libraries (ie. dlopen/dlsym/dlclose). The user must specify a shared
* library as the file to be dynamically loaded.
*
- */
-#define pg_dlopen(f) dlopen(f,RTLD_LAZY)
-#define pg_dlsym dlsym
-#define pg_dlclose dlclose
-#define pg_dlerror dlerror
-
-#endif /* PORT_PROTOS_H */
+ */
+#define pg_dlopen(f) dlopen(f,RTLD_LAZY)
+#define pg_dlsym dlsym
+#define pg_dlclose dlclose
+#define pg_dlerror dlerror
+
+#endif /* PORT_PROTOS_H */
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 7dc25337357..8e322b1d915 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: heapam.h,v 1.30 1998/02/26 04:40:05 momjian Exp $
+ * $Id: heapam.h,v 1.31 1998/03/01 04:46:56 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -88,6 +88,8 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
*
* ----------------
*/
+#if !defined(USE_UNIVEL_CC)
+
#define fastgetattr(tup, attnum, tupleDesc, isnull) \
( \
AssertMacro((attnum) > 0) ? \
@@ -130,7 +132,57 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
) \
)
+#else /* !defined(USE_UNIVEL_CC) */
+
+extern Datum nocachegetattr(HeapTuple tup, int attnum,
+ TupleDesc att, bool *isnull);
+
+static Datum fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
+ bool *isnull)
+{
+ return (
+ (attnum) > 0 ?
+ (
+ ((isnull) ? (*(isnull) = false) : (dummyret)NULL),
+ HeapTupleNoNulls(tup) ?
+ (
+ ((tupleDesc)->attrs[(attnum)-1]->attcacheoff != -1 ||
+ (attnum) == 1) ?
+ (
+ (Datum)fetchatt(&((tupleDesc)->attrs[(attnum)-1]),
+ (char *) (tup) + (tup)->t_hoff +
+ (
+ ((attnum) != 1) ?
+ (tupleDesc)->attrs[(attnum)-1]->attcacheoff
+ :
+ 0
+ )
+ )
+ )
+ :
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull))
+ )
+ :
+ (
+ att_isnull((attnum)-1, (tup)->t_bits) ?
+ (
+ ((isnull) ? (*(isnull) = true) : (dummyret)NULL),
+ (Datum)NULL
+ )
+ :
+ (
+ nocachegetattr((tup), (attnum), (tupleDesc), (isnull))
+ )
+ )
+ )
+ :
+ (
+ (Datum)NULL
+ )
+ );
+}
+#endif
/* ----------------
* heap_getattr
diff --git a/src/include/port/univel.h b/src/include/port/univel.h
index a7daf59460d..cd52bd76877 100644
--- a/src/include/port/univel.h
+++ b/src/include/port/univel.h
@@ -9,13 +9,14 @@
* Define this if you are compiling with
* the native UNIXWARE C compiler.
***************************************/
-#define USE_UNIVEL_CC_ASM
+#define USE_UNIVEL_CC
typedef unsigned char slock_t;
/***************************************************************
- * strcasecmp() is in c89, but is not in any include file :-(
+ * strcasecmp() is in c89.a. The following include will get the
+ * needed prototype.
***************************************************************/
-int strcasecmp(char *, char *);
+#include <strings.h>
#ifndef BIG_ENDIAN
#define BIG_ENDIAN 4321
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index f63a37193c7..89612c1b718 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.27 1998/02/26 04:43:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.28 1998/03/01 04:47:24 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -305,21 +305,21 @@ tas_dummy()
#if defined(NEED_I386_TAS_ASM)
-#if defined(USE_UNIVEL_CC_ASM)
+#if defined(USE_UNIVEL_CC)
asm void
S_LOCK(char *lval)
{
- %lab again;
+% lab again;
/* Upon entry, %eax will contain the pointer to the lock byte */
- pushl % ebx
- xchgl % eax, %ebx
- movb $ - 1, %al
+ pushl %ebx
+ xchgl %eax, %ebx
+ movb $255, %al
again:
lock
- xchgb % al, (%ebx)
- cmpb $0, %al
- jne again
- popl % ebx
+ xchgb %al, (%ebx)
+ cmpb $0, %al
+ jne again
+ popl %ebx
}
#else
diff --git a/src/template/univel b/src/template/univel
index 327769563cd..21b85926638 100644
--- a/src/template/univel
+++ b/src/template/univel
@@ -5,6 +5,7 @@ SRCH_INC:
SRCH_LIB:
USE_LOCALE:no
DLSUFFIX:.so
-YACC=/usr/ccs/bin/yacc
YACC:yacc
+YFLAGS:-d
CC:cc
+LIBS:-lc89