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.
This commit is contained in:
Marc G. Fournier 1998-03-01 04:47:38 +00:00
parent 5b3e78afe3
commit 56b3182241
6 changed files with 88 additions and 34 deletions

View File

@ -1,12 +1,12 @@
/*-------------------------------------------------------------------------
*
* 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
*
*-------------------------------------------------------------------------
*/

View File

@ -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

View File

@ -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

View File

@ -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)
xchgb %al, (%ebx)
cmpb $0, %al
jne again
popl % ebx
popl %ebx
}
#else

View File

@ -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