diff --git a/src/Makefile.global b/src/Makefile.global
index 829a0cc07f0bd160576397baac8a835b439db4fd..23d83bae59fa7331cad826f1bab1b025a5c86367 100644
--- a/src/Makefile.global
+++ b/src/Makefile.global
@@ -7,7 +7,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.86 1997/01/10 19:30:08 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.87 1997/01/13 03:52:00 bryanh Exp $
 #
 # NOTES
 #    Essentially all Postgres make files include this file and use the 
@@ -55,9 +55,9 @@
 #   irix5          SGI MIPS on IRIX 5.3 or better
 #   linux          Intel x86 on Linux 1.2 and Linux ELF
 #                  (For non-ELF Linux, see LINUX_ELF below).
-#   next           Motorola MC68K or Intel x86 on NeXTSTEP 3.2
+#   nextstep       Motorola MC68K or Intel x86 on NeXTSTEP 3.2 or greater
 #   sparc_solaris  SUN SPARC on Solaris 2.4
-#   sunos4          SUN SPARC on SunOS 4.1.3
+#   sunos4         SUN SPARC on SunOS 4.1.3
 #   svr4           Intel x86 on Intel SVR4
 #   ultrix4        DEC MIPS on Ultrix 4.4
 #
@@ -701,8 +701,10 @@ DLSUFFIX= .o
 endif
 
 
-ifneq ($(PORTNAME), next)
-LDADD_BE+= -lm
+ifneq ($(PORTNAME), nextstep)
+LDADD_BE+= -lIPC
+AROPT= rc
+DLSUFFIX= .o
 endif
 
 # This goes here so that customization in Makefile.custom is effective
diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c
index e6129d3ffe5afb38117cb03c914569db240d87fb..dc08c38ed43064ff43d97a4fcd56333472b8c6de 100644
--- a/src/backend/optimizer/path/costsize.c
+++ b/src/backend/optimizer/path/costsize.c
@@ -7,12 +7,13 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v 1.8 1997/01/08 10:33:46 vadim Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v 1.9 1997/01/13 03:54:15 bryanh Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "postgres.h"
+#include "config.h"
 
 #include <math.h>
 #ifdef WIN32
@@ -24,7 +25,9 @@
 #  include <machine/limits.h>
 #  define MAXINT	INT_MAX
 # else
-#  include <values.h>
+#  ifdef USE_VALUES_H
+#   include <values.h>
+#  endif
 # endif 
 #endif 
 
diff --git a/src/backend/port/Makefile b/src/backend/port/Makefile
index 8969d82c1c2604008f986f5362f56601f7735ca4..a05f3fa6431bbed14475b51e2869f7d84315e7ba 100644
--- a/src/backend/port/Makefile
+++ b/src/backend/port/Makefile
@@ -19,7 +19,7 @@
 # be converted to Method 2.  
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/port/Makefile,v 1.5 1996/11/26 03:18:38 bryanh Exp $
+#    $Header: /cvsroot/pgsql/src/backend/port/Makefile,v 1.6 1997/01/13 03:54:20 bryanh Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -31,12 +31,7 @@ else
 
 OBJS = $(PORTNAME)/SUBSYS.o
 
-ifeq ($(PORTNAME), sparc_solaris)
-# Other ports get the inet_aton() function from their standard C libraries.
-OBJS += inet_aton.o
-endif
-
-ifeq ($(PORTNAME), ultrix4)
+ifneq ($(findstring /$(PORTNAME)/, /sparc_solaris/ultrix4/nextstep/))
 # Other ports get the inet_aton() function from their standard C libraries.
 OBJS += inet_aton.o
 endif
diff --git a/src/include/config.h b/src/include/config.h
index 74756b6276eeda15b1ca1db42fa86fe042d2182a..a44b72d49a0c9e109f3e67084fae1043a5d91dc6 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -14,6 +14,10 @@
 #define TERMIOS_H_LOCATION <sys/termios.h>
 #endif
 
+#if !defined(nextstep)
+#define USE_VALUES_H
+#endif
+
 #define HAVE_MEMMOVE
 
 #if defined(aix)
@@ -138,16 +142,29 @@
    typedef unsigned char slock_t;
 #endif
 
-/* does anybody use this? */
-#if defined(next)
+#if defined(nextstep)
+# include <sys/ioctl.h>
 # if defined(__STRICT_ANSI__)
 #  define isascii(c)  ((unsigned)(c)<=0177)
 # endif
-#  define USE_LIMITS_H
-#  define JMP_BUF
+  extern char* strdup (const char* string);
+# ifndef _POSIX_SOURCE
+  typedef unsigned short mode_t;
+  typedef int sigset_t;
+#  define SIG_BLOCK	00
+#  define SIG_UNBLOCK	01
+#  define SIG_SETMASK	02
+#  define NO_SIGACTION
+#  define NO_SETSID
+#  define NO_SIGPROCMASK
 #  define NEED_SIG_JMP
-#  define SB_PAD 56
-   typedef struct mutex    slock_t;
+# endif
+
+# define USE_LIMITS_H
+# define JMP_BUF
+# define SB_PAD 56
+# define NO_WAITPID
+  typedef struct mutex slock_t;
 #endif
 
 #if defined(sequent) 
diff --git a/src/include/storage/ipc.h b/src/include/storage/ipc.h
index 85f24cecb271d9ab382f799606cc84750e0adf93..15e9650ffe8d5c475f40f1a483e5d3a70ece26e0 100644
--- a/src/include/storage/ipc.h
+++ b/src/include/storage/ipc.h
@@ -6,21 +6,21 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: ipc.h,v 1.11 1996/12/04 03:06:29 bryanh Exp $
+ * $Id: ipc.h,v 1.12 1997/01/13 03:54:48 bryanh Exp $
  *
  * NOTES
  *    This file is very architecture-specific.  This stuff should actually
  *    be factored into the port/ directories.
  *
+ * Some files that would normally need to include only sys/ipc.h must 
+ * instead included this file because on Ultrix, sys/ipc.h is not designed
+ * to be included multiple times.  This file (by virtue of the ifndef IPC_H)
+ * is.
  *-------------------------------------------------------------------------
  */
 #ifndef	IPC_H
 #define IPC_H
 
-#ifndef	_IPC_
-#define _IPC_
-#endif
-
 #include <sys/types.h>
 #include <sys/ipc.h>   /* For IPC_PRIVATE */