diff --git a/src/Makefile.global b/src/Makefile.global
index 23161c534a9d4a93f8575581f7adfc3775774ba3..8218203556ba7de5b8dec0d90360f80999b969b2 100644
--- a/src/Makefile.global
+++ b/src/Makefile.global
@@ -1,3 +1,4 @@
+X=$(shell sleep 4)
 #----------------------------------------------------------------------------
 #
 # Makefile.global--
@@ -7,7 +8,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.44 1996/10/31 05:53:10 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.45 1996/11/01 01:45:52 momjian Exp $
 #
 # NOTES
 #    This is seen by any Makefiles that include mk/postgres.mk. To
@@ -46,8 +47,7 @@
 #	linux		-	Intel x86 on Linux 1.2 and Linux ELF
 #				(For non-ELF Linux, see LINUX_ELF below).
 #	BSD44_derived	-	OSs derived from 4.4-lite BSD (NetBSD, FreeBSD)
-#       bsdi            -       BSD/OS 2.0 and 2.01
-#       bsdi_2_1        -       BSD/OS 2.1
+#       bsdi            -       BSD/OS 2.0, 2.01, 2.1
 #	aix		-	IBM on AIX 3.2.5
 #	irix5		-	SGI MIPS on IRIX 5.3
 #	dgux            -       DG/UX 5.4R3.10
@@ -423,55 +423,38 @@ endif
 ifeq ($(PORTNAME), bsdi)
 MK_PORT=	bsdi
 
-# cc is gcc v1.42
-# gcc is gcc v2.6.3
 CC=			gcc
 
-LEX=		flex
-AROPT=		cq
-
-# use the regex library
-USE_REGEX = 1
-
-LDADD_BE= -ldld -lcompat
-
-#
-# for postgres.user.mk
-#
-SLSUFF=		.o
-
-#
-# for postgres.mk
-#
-CFLAGS_OPT=	-g -DUSE_POSIX_SIGNALS # -O2
-
+PRE_BSDI_2_1=N
+ifeq ($(shell uname -r), 2.0)
+PRE_BSDI_2_1=Y
+endif
+ifeq ($(shell uname -r), 2.01)
+PRE_BSDI_2_1=Y
 endif
 
-#--------------------------------------------------------------------------
-
-ifeq ($(PORTNAME), bsdi_2_1)
-MK_PORT=	bsdi_2_1
-
+ifeq ($(PRE_BSDI_2_1), N)
 # cc is gcc v1.42
 # gcc is gcc v2.7.2
-CC=			gcc
+  LEX=		lex
+  LD_ADD+=	-ltermcap
+  CFLAGS_BE = -DPRE_BSDI_2_1
+else
+# cc is gcc v1.42
+# gcc is gcc v2.6.3
+  LEX=		flex
+# use the regex library
+  USE_REGEX = 1
+  LDADD_BE = -ldld -lcompat
+endif
 
-LEX=		lex
 AROPT=		cq
 
-LD_ADD+=	-ltermcap
-
 #
 # for postgres.user.mk
 #
 SLSUFF=		.o
 
-#
-# for postgres.mk
-#
-CFLAGS_OPT=	-O2 -m486
-CFLAGS_BE = -DUSE_POSIX_SIGNALS
-
 endif
 
 #--------------------------------------------------------------------------
diff --git a/src/backend/Makefile b/src/backend/Makefile
index 6043a456b1aacb980ce86623c86994f6034e05d5..c79d1af2eb69f3d95bf8f8a67ecd0ebb04b76ffe 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -34,7 +34,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.11 1996/10/31 07:25:15 scrappy Exp $
+#    $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.12 1996/11/01 01:46:00 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -64,11 +64,11 @@ LDADD+= -lln
 endif
 
 ifeq ($(PORTNAME), bsdi)
-LDADD+= -ldld -lipc
-endif
-
-ifeq ($(PORTNAME), bsdi_2_1)
-LDADD+= -ldl -lipc
+  ifeq ($(PRE_BSDI_2_1), N)
+    LDADD+= -ldl -lipc
+  else
+    LDADD+= -ldld -lipc
+  endif
 endif
 
 ifeq ($(PORTNAME), hpux)
diff --git a/src/backend/port/bsdi/Makefile b/src/backend/port/bsdi/Makefile
index 4e79822f7dd06dbafdae9cf9b005111047199a5c..093a9a2614b6bef688363629f7332606cb4d111b 100644
--- a/src/backend/port/bsdi/Makefile
+++ b/src/backend/port/bsdi/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for port/bsdi
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/port/bsdi/Attic/Makefile,v 1.1 1996/10/27 09:49:44 bryanh Exp $
+#    $Header: /cvsroot/pgsql/src/backend/port/bsdi/Attic/Makefile,v 1.2 1996/11/01 01:46:21 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -17,7 +17,7 @@ INCLUDE_OPT = -I../.. \
 
 CFLAGS+=$(INCLUDE_OPT)
 
-OBJS = dynloader.o
+OBJS = dynloader.o port.o
 
 all: SUBSYS.o
 
diff --git a/src/backend/port/bsdi/port-protos.h b/src/backend/port/bsdi/port-protos.h
index 6583571d356528e55446ed9f925cae03df823e6e..072ad8ddf618f88781135a0030b02a080e9902c8 100644
--- a/src/backend/port/bsdi/port-protos.h
+++ b/src/backend/port/bsdi/port-protos.h
@@ -18,14 +18,17 @@
 
 /* dynloader.c */
 
-#ifndef LINUX_ELF
-#define pg_dlsym(handle, funcname)	((func_ptr) dld_get_func((funcname)))
-#define pg_dlclose(handle)		({ dld_unlink_by_file(handle, 1); free(handle); })
+#include <sys/param.h>
+
+#if _BSDI_VERSION >= 199510
+#  include <dlfcn.h>
+#  define	pg_dlopen(f)	dlopen(f, 1)
+#  define	pg_dlsym	dlsym
+#  define	pg_dlclose	dlclose
+#  define	pg_dlerror	dlerror
 #else
-#define	pg_dlopen(f)	dlopen(f, 1)
-#define	pg_dlsym	dlsym
-#define	pg_dlclose	dlclose
-#define	pg_dlerror	dlerror
+#  define pg_dlsym(handle, funcname)	((func_ptr) dld_get_func((funcname)))
+#  define pg_dlclose(handle)		({ dld_unlink_by_file(handle, 1); free(handle); })
 #endif
 
 /* port.c */
diff --git a/src/backend/port/bsdi_2_1/Makefile b/src/backend/port/bsdi_2_1/Makefile
deleted file mode 100644
index b5bb21445c125f1c3ef11fbc1bdd1a3ec813dceb..0000000000000000000000000000000000000000
--- a/src/backend/port/bsdi_2_1/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-#-------------------------------------------------------------------------
-#
-# Makefile--
-#    Makefile for port/bsdi_2_1
-#
-# IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/port/bsdi_2_1/Attic/Makefile,v 1.1 1996/10/27 09:49:50 bryanh Exp $
-#
-#-------------------------------------------------------------------------
-
-SRCDIR = ../../..
-include ../../../Makefile.global
-
-INCLUDE_OPT = -I../.. \
-              -I../../include \
-              -I../../../include
-
-CFLAGS+=$(INCLUDE_OPT)
-
-OBJS = port.o
-
-all: SUBSYS.o
-
-SUBSYS.o: $(OBJS)
-	$(LD) -r -o SUBSYS.o $(OBJS)
-
-depend dep:
-	$(CC) -MM $(INCLUDE_OPT) *.c >depend
-
-clean: 
-	rm -f SUBSYS.o $(OBJS)
-
-ifeq (depend,$(wildcard depend))
-include depend
-endif
-
diff --git a/src/backend/port/bsdi_2_1/machine.h b/src/backend/port/bsdi_2_1/machine.h
deleted file mode 100644
index d53defbfd4cff92eee336959c888d915f155fcde..0000000000000000000000000000000000000000
--- a/src/backend/port/bsdi_2_1/machine.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * machine.h--
- *    
- *
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * machine.h,v 1.1.1.1 1994/11/07 05:19:37 andrew Exp
- *
- *-------------------------------------------------------------------------
- */
-#ifndef MACHINE_H
-#define MACHINE_H
-
-#define BLCKSZ	8192
-
-#endif
diff --git a/src/backend/port/bsdi_2_1/port-protos.h b/src/backend/port/bsdi_2_1/port-protos.h
deleted file mode 100644
index 5aab562a4b791199f6cacab257fc5532816a8fa3..0000000000000000000000000000000000000000
--- a/src/backend/port/bsdi_2_1/port-protos.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * port-protos.h--
- *    port-specific prototypes for SunOS 4
- *
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * port-protos.h,v 1.2 1995/05/25 22:51:03 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 */
-
-#define	pg_dlopen(f)	dlopen(f, 1)
-#define	pg_dlsym	dlsym
-#define	pg_dlclose	dlclose
-#define	pg_dlerror	dlerror
-
-/* port.c */
-
-#endif /* PORT_PROTOS_H */
diff --git a/src/backend/port/bsdi_2_1/port.c b/src/backend/port/bsdi_2_1/port.c
deleted file mode 100644
index 8819b1a64814048c3785f00a920b204772150e73..0000000000000000000000000000000000000000
--- a/src/backend/port/bsdi_2_1/port.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * port.c--
- *    Linux-specific routines
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *    /usr/local/devel/pglite/cvs/src/backend/port/linux/port.c,v 1.1.1.1 1994/11/07 05:19:38 andrew Exp
- *
- *-------------------------------------------------------------------------
- */
diff --git a/src/bin/psql/Makefile b/src/bin/psql/Makefile
index dfb71658bc1f86fac2345692b594e2459c4fa797..951cd312df03ca15618b0e5502b4e267a9b7c770 100644
--- a/src/bin/psql/Makefile
+++ b/src/bin/psql/Makefile
@@ -7,7 +7,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/psql/Makefile,v 1.6 1996/08/21 04:06:01 scrappy Exp $
+#    $Header: /cvsroot/pgsql/src/bin/psql/Makefile,v 1.7 1996/11/01 01:46:55 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -47,9 +47,6 @@ ifeq ($(USE_READLINE), true)
    ifeq ($(PORTNAME), bsdi)
    LD_ADD += -ltermcap
    else
-   ifeq ($(PORTNAME), bsdi_2_1)
-   LD_ADD += -ltermcap
-   else
    ifeq ($(PORTNAME), BSD44_derived)
    LD_ADD += -ltermcap
    endif
@@ -58,7 +55,6 @@ ifeq ($(USE_READLINE), true)
    endif
    endif
    endif
-   endif
 else
    CFLAGS += -DNOREADLINE
 endif
diff --git a/src/include/config.h b/src/include/config.h
index 773e68a6084b95acb46483daa63f19ecb983372b..3698a25844e8cb2bf47054a27f20f4347db974cb 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -102,17 +102,13 @@
 #endif /* WIN32 */
 
 #if defined(BSD44_derived) || \
-    defined(bsdi_2_1)
-#  define USE_LIMITS_H
-#  define USE_POSIX_TIME
-#  define NEED_CBRT
-#endif
-
-#if defined(bsdi)
-#  define NEED_UNION_SEMUN 
+    defined(bsdi)
 #  define USE_LIMITS_H
 #  define USE_POSIX_TIME
 #  define NEED_CBRT
+#  ifdef PRE_BSDI_2_1
+#    define NEED_UNION_SEMUN 
+#  endif
 #endif
 
 #if defined(aix)