]> granicus.if.org Git - postgresql/commitdiff
Added a SVR4 port
authorMarc G. Fournier <scrappy@hub.org>
Mon, 19 Aug 1996 13:50:44 +0000 (13:50 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Mon, 19 Aug 1996 13:50:44 +0000 (13:50 +0000)
---

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>

13 files changed:
src/Makefile.global
src/backend/Makefile
src/backend/catalog/genbki.sh
src/backend/parser/sysfunc.c
src/backend/port/svr4/Makefile.inc [new file with mode: 0644]
src/backend/port/svr4/machine.h [new file with mode: 0644]
src/backend/port/svr4/port-protos.h [new file with mode: 0644]
src/backend/port/svr4/port.c [new file with mode: 0644]
src/backend/port/svr4/rusagestub.h [new file with mode: 0644]
src/backend/storage/ipc.h
src/backend/utils/adt/float.c
src/backend/utils/adt/nabstime.c
src/mk/port/postgres.mk.svr4

index e22ebeaf31848e8d3ecff8e66fdb87a122b7d94a..614fdb7e3cb005e8c4c1c251d5eef6b190ca5187 100644 (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
 #      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:
index fbde3abee0cc22528e0e5533e376073ad4fce868..a84253a4518bdd9c7acd0bf045186373cb73ec96 100644 (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)
 
index 2f7e4025b833ad90262e53c5946ed0f3cd67e219..74d3e0f324e16516b9138fd4e28a25050467c714 100644 (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..
 #
index c69ca1b5b06d27b02db99d9e2a145c34b8d36ec9..5cc1935b7b082dfc16eafa020fec1a0bdde87d5c 100644 (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];
 }
 
diff --git a/src/backend/port/svr4/Makefile.inc b/src/backend/port/svr4/Makefile.inc
new file mode 100644 (file)
index 0000000..f04a2bc
--- /dev/null
@@ -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
diff --git a/src/backend/port/svr4/machine.h b/src/backend/port/svr4/machine.h
new file mode 100644 (file)
index 0000000..fd1f22c
--- /dev/null
@@ -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
+
diff --git a/src/backend/port/svr4/port-protos.h b/src/backend/port/svr4/port-protos.h
new file mode 100644 (file)
index 0000000..4b99257
--- /dev/null
@@ -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 */
diff --git a/src/backend/port/svr4/port.c b/src/backend/port/svr4/port.c
new file mode 100644 (file)
index 0000000..137cebb
--- /dev/null
@@ -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;
+               }
+    }
+}
+
diff --git a/src/backend/port/svr4/rusagestub.h b/src/backend/port/svr4/rusagestub.h
new file mode 100644 (file)
index 0000000..d2393eb
--- /dev/null
@@ -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 */
index 9a4bfe7411dfaa98152122ee94cdbb6e11b7ad5f..8a4d2225c48ab463a4c08cba41286ff534bc6dd4 100644 (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;
index f4b3bef5438951d12c5395d90f4f8dad8ecddd06..b33c61025b4209bd70b0f5f407abdf88aec769d3 100644 (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)
index 3faa3a216f9494dc63a6db906f431936801bc255..27b5208d41a88c981cde4009afa37eefb9f99f3d 100644 (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
index 18ce27f071ac488f55cf80efbcd83c07da965d46..fba4f2dd1d5be543d394796840d65a67114f7738 100644 (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
 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