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
*
* see univel.h
*/
*/
/*-------------------------------------------------------------------------
*
* 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 */
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
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