summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc G. Fournier1998-03-01 04:47:38 +0000
committerMarc G. Fournier1998-03-01 04:47:38 +0000
commit56b3182241347aacb7b4c47519f009ffa2b57aa8 (patch)
treebd6f3caf19abe173617ca8632828f8e0faf4d04f
parent5b3e78afe3b207e5db91853f03a90f37e0fdb35f (diff)
From: "Billy G. Allie" <[email protected]>
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.
-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