Added a SVR4 port

---

below my signature, there are a coupls of diffs and files in a shell
archive, which were needed to build postgres95 1.02 on Siemens Nixdorfs
MIPS based SINIX systems. Except for the compiler switches "-W0" and
"-LD-Blargedynsym" these diffs should also apply for other SVR4 based
systems. The changes in "Makefile.global" and "genbki.sh" can probably
be ignored (I needed gawk, to make the script run).

There is one bugfix thou. In "src/backend/parser/sysfunc.c" the
function in this file didn't honor the EUROPEAN_DATES ifdef.

---

Submitted by:  Frank Ridderbusch <ridderbusch.pad@sni.de>
This commit is contained in:
Marc G. Fournier 1996-08-19 13:50:44 +00:00
parent ce8790bc10
commit efafd1506e
13 changed files with 332 additions and 30 deletions

View File

@ -7,7 +7,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.19 1996/07/31 18:55:49 scrappy Exp $
# $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.19.2.1 1996/08/19 13:46:05 scrappy Exp $
#
# NOTES
# This is seen by any Makefiles that include mk/postgres.mk. To
@ -59,15 +59,15 @@
# until after this file is processed!
# make sure that you have no whitespaces after the PORTNAME setting
# or the makefiles can get confused
PORTNAME= BSD44_derived
PORTNAME= svr4
# SRCDIR specifies where the source files are.
SRCDIR= /home/staff/scrappy/cvs/postgres95/src
SRCDIR= /home/tools/postgres95-1.02/src
# For convenience, POSTGRESDIR is where DATADIR, BINDIR, and LIBDIR
# and other target destinations are rooted. Of course, each of these is
# changable separately.
POSTGRESDIR= /home/staff/scrappy/cvs/postgres95
POSTGRESDIR= /home/tools/postgres95-1.02
# POSTGRESLOGIN is the login name of the user who gets special
# privileges within the database. By default it is "postgres", but
@ -130,7 +130,7 @@ CFLAGS+= -DNAMEDATALEN=$(NAMEDATALEN) -DOIDNAMELEN=$(OIDNAMELEN)
# Comment out CDEBUG to turn off debugging and sanity-checking.
#
# XXX on MIPS, use -g3 if you want to compile with -O
#CDEBUG= -g
CDEBUG= -O
# Comment out ENFORCE_ALIGNMENT if you do NOT want unaligned access to
# multi-byte types to generate a bus error.
@ -138,7 +138,7 @@ ENFORCE_ALIGNMENT= true
# turn this on if you prefer European style dates instead of American
# style dates
# EUROPEAN_DATES = 1
EUROPEAN_DATES = 1
# Comment out PROFILE to disable profiling.
#
@ -154,13 +154,13 @@ ENFORCE_ALIGNMENT= true
# and READLINE_LIBDIR to reflect the location of the readline and history
# headers and libraries.
#
#USE_READLINE= true
USE_READLINE= true
# directories for the readline and history libraries.
READLINE_INCDIR= /usr/local/include
HISTORY_INCDIR= /usr/local/include
READLINE_LIBDIR= /usr/local/lib
HISTORY_LIBDIR= /usr/local/lib
READLINE_INCDIR= /home/tools/include
HISTORY_INCDIR= /home/tools/include -I/home/tools/include/readline
READLINE_LIBDIR= /home/tools/lib
HISTORY_LIBDIR= /home/tools/lib
# If you do not plan to use Host based authentication,
# comment out the following line
@ -208,19 +208,19 @@ endif
# location of Tcl/Tk headers and libraries
#
# Uncomment this to build the tcl utilities.
#USE_TCL= true
USE_TCL= true
# customize these to your site's needs
#
TCL_INCDIR= /usr/local/include
TCL_LIBDIR= /usr/local/lib
TCL_INCDIR= /home/tools/include
TCL_LIBDIR= /home/tools/lib
TCL_LIB = -ltcl7.5
TK_INCDIR= /usr/local/include
TK_LIBDIR= /usr/local/lib
TK_INCDIR= /home/tools/include
TK_LIBDIR= /home/tools/lib
TK_LIB = -ltk4.1
X11_INCDIR = /usr/X11R6.1/include
X11_LIBDIR = /usr/X11R6.1/lib
X11_LIB = -lX11
X11_INCDIR = /usr/include
X11_LIBDIR = /usr/lib
X11_LIB = -lX11 -lsocket -lnsl
#
# include port specific rules and variables. For instance:

View File

@ -7,7 +7,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.2 1996/07/31 17:19:49 scrappy Exp $
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.2.2.1 1996/08/19 13:46:19 scrappy Exp $
#
#-------------------------------------------------------------------------
@ -118,6 +118,11 @@ ifeq ($(PORTNAME), linux)
LDADD+= -lc
endif
# the following is special for Reliant UNIX SVR4 (formerly SINIX)
ifeq ($(PORTNAME), svr4)
LDFLAGS+= -LD-Blargedynsym
endif
postgres: $(POSTGRES_DEPEND) $(OBJS) $(EXPORTS)
$(CC) $(LDFLAGS) -o $(objdir)/$(@F) $(addprefix $(objdir)/,$(notdir $(OBJS))) $(LDADD)

View File

@ -10,7 +10,7 @@
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/backend/catalog/Attic/genbki.sh,v 1.1.1.1 1996/07/09 06:21:15 scrappy Exp $
# $Header: /cvsroot/pgsql/src/backend/catalog/Attic/genbki.sh,v 1.1.1.1.2.1 1996/08/19 13:46:26 scrappy Exp $
#
# NOTES
# non-essential whitespace is removed from the generated file.
@ -62,7 +62,7 @@ sed -e 's/\/\*.*\*\///g' \
-e 's/\ NameData/\ name/g' \
-e 's/(NameData/(name/g' \
-e 's/(Oid/(oid/g' | \
awk '
gawk '
# ----------------
# now use awk to process remaining .h file..
#

View File

@ -30,8 +30,13 @@ char *Sysfunc_system_date(void)
time(&cur_time_secs);
cur_time_expanded = localtime(&cur_time_secs);
#if defined(EUROPEAN_DATES) || defined(EUROPEAN_STYLE)
sprintf(buf, "%02.2d-%02.2d-%04.4d", cur_time_expanded->tm_mday,
cur_time_expanded->tm_mon+1, cur_time_expanded->tm_year+1900);
#else
sprintf(buf, "%02.2d-%02.2d-%04.4d", cur_time_expanded->tm_mon+1,
cur_time_expanded->tm_mday, cur_time_expanded->tm_year+1900);
#endif
return &buf[0];
}

View File

@ -0,0 +1,20 @@
#-------------------------------------------------------------------------
#
# Makefile.inc--
# Makefile for port/svr4 (Intel x86/Intel SVR4 specific stuff)
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
# /usr/local/devel/pglite/cvs/src/backend/port/svr4/Makefile.inc,v 1.3 1995/03/21 06:51:21 andrew Exp
#
#-------------------------------------------------------------------------
CFLAGS+= -DUSE_POSIX_TIME -DNEED_ISINF -DNEED_RUSAGE -DNO_EMPTY_STMTS
LDADD+= -ll -ldl
SUBSRCS+= port.c
HEADERS+= machine.h port-protos.h rusagestub.h

View File

@ -0,0 +1,19 @@
/*-------------------------------------------------------------------------
*
* machine.h--
*
*
*
* Copyright (c) 1994, Regents of the University of California
*
* machine.h,v 1.1.1.1 1994/11/07 05:19:38 andrew Exp
*
*-------------------------------------------------------------------------
*/
#ifndef MACHINE_H
#define MACHINE_H
#define BLCKSZ 8192
#endif

View File

@ -0,0 +1,38 @@
/*-------------------------------------------------------------------------
*
* port-protos.h--
* port-specific prototypes for Intel x86/Intel SVR4
*
*
* Copyright (c) 1994, Regents of the University of California
*
* port-protos.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 */
/*
* Dynamic Loader on Intel x86/Intel SVR4.
*
* this dynamic loader uses the system dynamic loading interface for shared
* 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
/* port.c */
extern long random(void);
extern void srandom(int seed);
#endif /* PORT_PROTOS_H */

View File

@ -0,0 +1,143 @@
/*-------------------------------------------------------------------------
*
* port.c--
* Intel x86/Intel SVR4-specific routines
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* /usr/local/devel/pglite/cvs/src/backend/port/svr4/port.c,v 1.2 1995/03/17 06:40:19 andrew Exp
*
*-------------------------------------------------------------------------
*/
#include <math.h> /* for pow() prototype */
#include <errno.h>
#include "rusagestub.h"
long
random()
{
return(lrand48());
}
void
srandom(int seed)
{
srand48((long int) seed);
}
int
getrusage(int who, struct rusage *rusage)
{
struct tms tms;
register int tick_rate = CLK_TCK; /* ticks per second */
clock_t u, s;
if (rusage == (struct rusage *) NULL) {
errno = EFAULT;
return(-1);
}
if (times(&tms) < 0) {
/* errno set by times */
return(-1);
}
switch (who) {
case RUSAGE_SELF:
u = tms.tms_utime;
s = tms.tms_stime;
break;
case RUSAGE_CHILDREN:
u = tms.tms_cutime;
s = tms.tms_cstime;
break;
default:
errno = EINVAL;
return(-1);
}
#define TICK_TO_SEC(T, RATE) ((T)/(RATE))
#define TICK_TO_USEC(T,RATE) (((T)%(RATE)*1000000)/RATE)
rusage->ru_utime.tv_sec = TICK_TO_SEC(u, tick_rate);
rusage->ru_utime.tv_usec = TICK_TO_USEC(u, tick_rate);
rusage->ru_stime.tv_sec = TICK_TO_SEC(s, tick_rate);
rusage->ru_stime.tv_usec = TICK_TO_USEC(u, tick_rate);
return(0);
}
/*
* Copyright (c) 1987 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of California at Berkeley. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific written prior permission. This software
* is provided ``as is'' without express or implied warranty.
*/
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)strcasecmp.c 5.5 (Berkeley) 11/24/87";
#endif /* LIBC_SCCS and not lint */
#include <sys/types.h>
#include <string.h>
/*
* This array is designed for mapping upper and lower case letter
* together for a case independent comparison. The mappings are
p * based upon ascii character sequences.
*/
static unsigned char charmap[] = {
'\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
'\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
'\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
'\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
'\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
'\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
'\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
'\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
'\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
'\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
'\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
'\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
'\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
'\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
'\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
'\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
'\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
'\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
'\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
'\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
'\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
'\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
'\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
'\370', '\371', '\372', '\333', '\334', '\335', '\336', '\337',
'\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
'\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
'\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
'\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
};
int
strcasecmp(char *s1, char *s2)
{
register unsigned char u1, u2;
for (;;) {
u1 = (unsigned char) *s1++;
u2 = (unsigned char) *s2++;
if (charmap[u1] != charmap[u2]) {
return charmap[u1] - charmap[u2];
}
if (u1 == '\0') {
return 0;
}
}
}

View File

@ -0,0 +1,30 @@
/*-------------------------------------------------------------------------
*
* rusagestub.h--
* Stubs for getrusage(3).
*
*
* Copyright (c) 1994, Regents of the University of California
*
* rusagestub.h,v 1.1.1.1 1994/11/07 05:19:39 andrew Exp
*
*-------------------------------------------------------------------------
*/
#ifndef RUSAGESTUB_H
#define RUSAGESTUB_H
#include <sys/time.h> /* for struct timeval */
#include <sys/times.h> /* for struct tms */
#include <limits.h> /* for CLK_TCK */
#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1
struct rusage {
struct timeval ru_utime; /* user time used */
struct timeval ru_stime; /* system time used */
};
extern int getrusage(int who, struct rusage *rusage);
#endif /* RUSAGESTUB_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: ipc.h,v 1.4 1996/07/26 20:39:04 scrappy Exp $
* $Id: ipc.h,v 1.4.2.1 1996/08/19 13:47:13 scrappy Exp $
*
* NOTES
* This file is very architecture-specific. This stuff should actually
@ -122,6 +122,7 @@ extern int S_LOCK_FREE(slock_t *lock);
defined(PORTNAME_i386_solaris) || \
defined(PORTNAME_sparc_solaris) || \
defined(PORTNAME_ultrix4) || \
defined(PORTNAME_svr4) || \
defined(WIN32)
union semun {
int val;

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.2 1996/07/20 08:36:17 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.2.2.1 1996/08/19 13:47:26 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@ -1275,7 +1275,7 @@ static int isinf(x)
}
#endif /* PORTNAME_alpha */
#if defined(PORTNAME_sparc_solaris)||defined(PORTNAME_i386_solaris)
#if defined(PORTNAME_sparc_solaris)||defined(PORTNAME_i386_solaris) || defined(PORTNAME_svr4)
#include <ieeefp.h>
static int
isinf(d)

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.3 1996/07/22 21:56:03 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.3.2.1 1996/08/19 13:47:28 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@ -296,6 +296,7 @@ tryabsdate(char *fields[], int nf, struct tm *tm, int *tzp)
defined(PORTNAME_i386_solaris) || \
defined(PORTNAME_irix5) || \
defined(PORTNAME_sparc_solaris) || \
defined(PORTNAME_svr4) || \
defined(WIN32)
tzset();
#ifndef WIN32

View File

@ -5,7 +5,7 @@
#
# Copyright (c) 1994-5, Regents of the University of California
#
# $Id: postgres.mk.svr4,v 1.1.1.1 1996/07/09 06:22:20 scrappy Exp $
# $Id: postgres.mk.svr4,v 1.1.1.1.2.1 1996/08/19 13:50:44 scrappy Exp $
#
# NOTE
# This file has not been tested. -ay 3/95
@ -14,6 +14,11 @@
ifndef MK_PORT
MK_PORT= svr4
# cc won't work?
#CC= gcc
CC= cc -W0
YACC= bison -y
#
# for postgres.mk
#
@ -23,13 +28,48 @@ CFLAGS_BE+= -DUSE_POSIX_SIGNALS
# symbol names to tell them what to export/import.
MAKE_EXPORTS= true
# RANLIB is not used on svr4
RANLIB=touch
# GNU install
INSTALL=/home/tools/bin/install
#
# Random things that must be passed everywhere to enable
# everything to compile. :-/
#
# The extra -I flag is to scoop up extra BSD-emulating headers.
CFLAGS_BE+= -DSYSV_DIRENT -I$(POSTGRESDIR)/src/backend/port/svr4
LDADD_BE+= -lsocket -lnsl -lc /usr/ucblib/libucb.a
LD_ADD+= $(LDADD_BE)
#
# for postgres.mk
#
CFLAGS_OPT= -O
#
# for postgres.user.mk
#
CFLAGS_SL= -K pic
#CFLAGS_SL= -K pic
ifeq ($(CC), cc)
#CFLAGS_SL= -K PIC
else
#CFLAGS_SL= -fPIC
endif
SLSUFF= .so
%.so: %.o
$(LD) -G $(LDFLAGS) -o $(objdir)/$(@F) $(objdir)/$(<F)
#%.so: %.o
# $(LD) -G $(LDFLAGS) -o $(objdir)/$(@F) $(objdir)/$(<F)
%.so: %.o
$(LD) -G -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
#
# for postgres.shell.mk
#
DASH_N=''
BACKSLASH_C='\\\\c'
endif