]> granicus.if.org Git - postgresql/commitdiff
Brought in NEOSOFT's port to i386_solaris
authorMarc G. Fournier <scrappy@hub.org>
Sat, 20 Jul 1996 08:36:33 +0000 (08:36 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Sat, 20 Jul 1996 08:36:33 +0000 (08:36 +0000)
Submitted by: Randy Kunkee <kunkee@Starbase.NeoSoft.COM>

12 files changed:
src/Makefile.global
src/backend/port/i386_solaris/Makefile.inc [new file with mode: 0644]
src/backend/port/i386_solaris/machine.h [new file with mode: 0644]
src/backend/port/i386_solaris/port-protos.h [new file with mode: 0644]
src/backend/port/i386_solaris/port.c [new file with mode: 0644]
src/backend/port/i386_solaris/rusagestub.h [new file with mode: 0644]
src/backend/storage/ipc.h
src/backend/storage/ipc/ipc.c
src/backend/storage/lmgr/proc.c
src/backend/utils/adt/float.c
src/backend/utils/adt/nabstime.c
src/mk/port/postgres.mk.i386_solaris [new file with mode: 0644]

index b09925c6ab038acbd6a6fd3567918ff3c90f2167..e0fa0f29e26495ace8a7e2cf8c51284b5c1e5880 100644 (file)
@@ -7,7 +7,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.7 1996/07/20 07:57:49 scrappy Exp $
+#    $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.8 1996/07/20 08:34:08 scrappy Exp $
 #
 # NOTES
 #    This is seen by any Makefiles that include mk/postgres.mk. To
@@ -35,6 +35,7 @@
 #  The name of the port.  Valid choices are:
 #      alpha           -       DEC Alpha AXP on OSF/1 2.0
 #      hpux            -       HP PA-RISC on HP-UX 9.0
+#      i386_solaris    -       i386 Solaris
 #      sparc_solaris   -       SUN SPARC on Solaris 2.4
 #      sparc           -       SUN SPARC on SunOS 4.1.3
 #      ultrix4         -       DEC MIPS on Ultrix 4.4
diff --git a/src/backend/port/i386_solaris/Makefile.inc b/src/backend/port/i386_solaris/Makefile.inc
new file mode 100644 (file)
index 0000000..927010d
--- /dev/null
@@ -0,0 +1,20 @@
+#-------------------------------------------------------------------------
+#
+# Makefile.inc--
+#    Makefile for port/sparc_solaris (SPARC/Solaris 2.x specific stuff)
+#
+# Copyright (c) 1994, Regents of the University of California
+#
+#
+# IDENTIFICATION
+#    $Header: /cvsroot/pgsql/src/backend/port/i386_solaris/Attic/Makefile.inc,v 1.1 1996/07/20 08:34:32 scrappy 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/i386_solaris/machine.h b/src/backend/port/i386_solaris/machine.h
new file mode 100644 (file)
index 0000000..c8cc81b
--- /dev/null
@@ -0,0 +1,19 @@
+/*-------------------------------------------------------------------------
+ *
+ * machine.h--
+ *    
+ *
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ * $Id: machine.h,v 1.1 1996/07/20 08:34:33 scrappy Exp $
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef MACHINE_H
+#define MACHINE_H
+
+#define BLCKSZ 8192
+
+#endif
+
diff --git a/src/backend/port/i386_solaris/port-protos.h b/src/backend/port/i386_solaris/port-protos.h
new file mode 100644 (file)
index 0000000..45e56ad
--- /dev/null
@@ -0,0 +1,38 @@
+/*-------------------------------------------------------------------------
+ *
+ * port-protos.h--
+ *    port-specific prototypes for SunOS 4
+ *
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ * $Id: port-protos.h,v 1.1 1996/07/20 08:34:33 scrappy 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 SunOS 4.
+ *
+ * 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,1)
+#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/i386_solaris/port.c b/src/backend/port/i386_solaris/port.c
new file mode 100644 (file)
index 0000000..c6fcdab
--- /dev/null
@@ -0,0 +1,66 @@
+/*-------------------------------------------------------------------------
+ *
+ * port.c--
+ *    SunOS5-specific routines
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ *    $Header: /cvsroot/pgsql/src/backend/port/i386_solaris/Attic/port.c,v 1.1 1996/07/20 08:34:34 scrappy 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);
+}
diff --git a/src/backend/port/i386_solaris/rusagestub.h b/src/backend/port/i386_solaris/rusagestub.h
new file mode 100644 (file)
index 0000000..0ad45fa
--- /dev/null
@@ -0,0 +1,30 @@
+/*-------------------------------------------------------------------------
+ *
+ * rusagestub.h--
+ *    Stubs for getrusage(3).
+ *
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ * $Id: rusagestub.h,v 1.1 1996/07/20 08:34:34 scrappy 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 0da041bc9c80aa109253505cb43c05c419153f50..36cb3c8f626f9baa1f67eaea15f816be2bfc50cc 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: ipc.h,v 1.1.1.1 1996/07/09 06:21:52 scrappy Exp $
+ * $Id: ipc.h,v 1.2 1996/07/20 08:35:24 scrappy Exp $
  *
  * NOTES
  *    This file is very architecture-specific.  This stuff should actually
  * atomic test-and-set instruction).  However, we have only written
  * spinlock code for the architectures listed.
  */
-#if defined(PORTNAME_aix) || \
+#if (defined(PORTNAME_aix) || \
     defined(PORTNAME_alpha) || \
     defined(PORTNAME_hpux) || \
     defined(PORTNAME_irix5) || \
     defined(PORTNAME_next) || \
     defined(PORTNAME_sparc) || \
     defined(PORTNAME_sparc_solaris) || \
-    (defined(__i386__) && defined(__GNUC__))
+    (defined(__i386__) && defined(__GNUC__))) && \
+    !defined(PORTNAME_i386_solaris)
 #define HAS_TEST_AND_SET
 #endif
 
index 306300b90c35f964fff8027b569fed204241a910..0ccccd78fc56872a5c8ecf98c679bed0914566e8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.1.1.1 1996/07/09 06:21:54 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.2 1996/07/20 08:35:52 scrappy Exp $
  *
  * NOTES
  *
@@ -47,7 +47,7 @@ int UsePrivateMemory = 1;
 int UsePrivateMemory = 0;
 #endif
 
-#if defined(PORTNAME_bsdi)
+#if defined(PORTNAME_bsdi)||defined(PORTNAME_i386_solaris)
 /* hacka, hacka, hacka (XXX) */
 union semun {
        int val; /* value for SETVAL */
index 0955cdfc2f505903414780cc4e6911af93914036..10dad600b57d50290642678fa3d430e29604fa89 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.1.1.1 1996/07/09 06:21:57 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.2 1996/07/20 08:35:58 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,7 +46,7 @@
  *      This is so that we can support more backends. (system-wide semaphore
  *      sets run out pretty fast.)                -ay 4/95
  *
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.1.1.1 1996/07/09 06:21:57 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.2 1996/07/20 08:35:58 scrappy Exp $
  */
 #include <sys/time.h>
 #ifndef WIN32
@@ -56,7 +56,7 @@
 #include <sys/types.h>
 #include "libpq/pqsignal.h"    /* substitute for <signal.h> */
 
-#if defined(PORTNAME_bsdi)
+#if defined(PORTNAME_bsdi)||defined(PORTNAME_i386_solaris)
 /* hacka, hacka, hacka (XXX) */
 union semun {
        int val; /* value for SETVAL */
index ef962e713687a20fd09b574a62864b54eab3e6ac..f4b3bef5438951d12c5395d90f4f8dad8ecddd06 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.1.1.1 1996/07/09 06:22:04 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.2 1996/07/20 08:36:17 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1275,7 +1275,7 @@ static int isinf(x)
 }
 #endif /* PORTNAME_alpha */
 
-#if defined(PORTNAME_sparc_solaris)
+#if defined(PORTNAME_sparc_solaris)||defined(PORTNAME_i386_solaris)
 #include <ieeefp.h>
 static int
     isinf(d)
index fa66ff5fa40ce71e2f6980da0b14709daa471092..8bf212bb1912d73c20b386b087f7a619f5932923 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.1.1.1 1996/07/09 06:22:04 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.2 1996/07/20 08:36:19 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -295,7 +295,7 @@ tryabsdate(char *fields[], int nf, struct tm *tm, int *tzp)
     defined(PORTNAME_aix) || \
     defined(PORTNAME_irix5) || \
     defined(WIN32) || \
-       defined(PORTNAME_sparc_solaris)
+       defined(PORTNAME_sparc_solaris) || defined(PORTNAME_i386_solaris)
            tzset();
 #ifndef WIN32
     *tzp = timezone / 60;              /* this is an X/Open-ism */
diff --git a/src/mk/port/postgres.mk.i386_solaris b/src/mk/port/postgres.mk.i386_solaris
new file mode 100644 (file)
index 0000000..f5c3dce
--- /dev/null
@@ -0,0 +1,57 @@
+#-------------------------------------------------------------------------
+#
+# postgres.mk.sparc_solaris--
+#    SUN SPARC/solaris specific rules and variables
+#
+# Copyright (c) 1994-5, Regents of the University of California
+#
+#    $Id: postgres.mk.i386_solaris,v 1.1 1996/07/20 08:36:33 scrappy Exp $
+#
+#-------------------------------------------------------------------------
+ifndef MK_PORT
+MK_PORT=       i386_solaris
+
+# cc won't work!
+CC=            gcc
+
+#
+# for postgres.mk
+#
+CFLAGS_BE+= -DUSE_POSIX_SIGNALS
+
+# RANLIB is not used on solaris
+RANLIB=touch
+
+INSTALL=/usr/ucb/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/sparc_solaris
+LDADD_BE+= -lsocket -lnsl
+
+LD_ADD+= $(LDADD_BE)
+
+#
+# for postgres.user.mk
+#
+ifeq ($(CC), cc)
+CFLAGS_SL=     -K PIC
+else
+CFLAGS_SL=     -fPIC
+endif
+
+SLSUFF=                .so
+
+%.so: %.o
+       $(LD) -G -Bdynamic -o $(objdir)/$(@F) $(objdir)/$(<F)
+
+#
+# for postgres.shell.mk
+#
+DASH_N=''
+BACKSLASH_C='\\\\c'
+
+endif