Commit 56b31822 authored by Marc G. Fournier's avatar Marc G. Fournier

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.
parent 5b3e78af
/* Dummy file used for nothing at this point /* Dummy file used for nothing at this point
* *
* see univel.h * see univel.h
*/ */
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* *
* port-protos.h-- * univel.h--
* port-specific prototypes for Intel x86/UNIXWARE * port-specific prototypes for Intel x86/UNIXWARE
* *
* *
* Copyright (c) 1994, Regents of the University of California * 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 #ifndef PORT_PROTOS_H
#define PORT_PROTOS_H #define PORT_PROTOS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "fmgr.h" /* for func_ptr */ #include "fmgr.h" /* for func_ptr */
#include "utils/dynamic_loader.h" #include "utils/dynamic_loader.h"
/* dynloader.c */ /* dynloader.c */
/* /*
* Dynamic Loader on Intel x86/Intel SVR4. * Dynamic Loader on Intel x86/Intel SVR4.
* *
...@@ -25,10 +25,10 @@ ...@@ -25,10 +25,10 @@
* libraries (ie. dlopen/dlsym/dlclose). The user must specify a shared * libraries (ie. dlopen/dlsym/dlclose). The user must specify a shared
* library as the file to be dynamically loaded. * library as the file to be dynamically loaded.
* *
*/ */
#define pg_dlopen(f) dlopen(f,RTLD_LAZY) #define pg_dlopen(f) dlopen(f,RTLD_LAZY)
#define pg_dlsym dlsym #define pg_dlsym dlsym
#define pg_dlclose dlclose #define pg_dlclose dlclose
#define pg_dlerror dlerror #define pg_dlerror dlerror
#endif /* PORT_PROTOS_H */ #endif /* PORT_PROTOS_H */
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * 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; ...@@ -88,6 +88,8 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics;
* *
* ---------------- * ----------------
*/ */
#if !defined(USE_UNIVEL_CC)
#define fastgetattr(tup, attnum, tupleDesc, isnull) \ #define fastgetattr(tup, attnum, tupleDesc, isnull) \
( \ ( \
AssertMacro((attnum) > 0) ? \ AssertMacro((attnum) > 0) ? \
...@@ -130,7 +132,57 @@ typedef HeapAccessStatisticsData *HeapAccessStatistics; ...@@ -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 * heap_getattr
......
...@@ -9,13 +9,14 @@ ...@@ -9,13 +9,14 @@
* Define this if you are compiling with * Define this if you are compiling with
* the native UNIXWARE C compiler. * the native UNIXWARE C compiler.
***************************************/ ***************************************/
#define USE_UNIVEL_CC_ASM #define USE_UNIVEL_CC
typedef unsigned char slock_t; 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 #ifndef BIG_ENDIAN
#define BIG_ENDIAN 4321 #define BIG_ENDIAN 4321
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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() ...@@ -305,21 +305,21 @@ tas_dummy()
#if defined(NEED_I386_TAS_ASM) #if defined(NEED_I386_TAS_ASM)
#if defined(USE_UNIVEL_CC_ASM) #if defined(USE_UNIVEL_CC)
asm void asm void
S_LOCK(char *lval) S_LOCK(char *lval)
{ {
%lab again; % lab again;
/* Upon entry, %eax will contain the pointer to the lock byte */ /* Upon entry, %eax will contain the pointer to the lock byte */
pushl % ebx pushl %ebx
xchgl % eax, %ebx xchgl %eax, %ebx
movb $ - 1, %al movb $255, %al
again: again:
lock lock
xchgb % al, (%ebx) xchgb %al, (%ebx)
cmpb $0, %al cmpb $0, %al
jne again jne again
popl % ebx popl %ebx
} }
#else #else
......
...@@ -5,6 +5,7 @@ SRCH_INC: ...@@ -5,6 +5,7 @@ SRCH_INC:
SRCH_LIB: SRCH_LIB:
USE_LOCALE:no USE_LOCALE:no
DLSUFFIX:.so DLSUFFIX:.so
YACC=/usr/ccs/bin/yacc
YACC:yacc YACC:yacc
YFLAGS:-d
CC:cc CC:cc
LIBS:-lc89
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