diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON
index 8c361dda1..209a2c7a5 100644
--- a/configure/CONFIG_COMMON
+++ b/configure/CONFIG_COMMON
@@ -119,12 +119,15 @@ CONFIG_TARGETS += $(CHECK_RELEASE_$(CHECK_RELEASE))
#-------------------------------------------------------
# Prefix and suffix
-DEP=.d
-OBJ = .
-CMPLR_SUFFIX=
-CMPLR_PREFIX=
-LIB_PREFIX=
-SHRLIB_PREFIX= $(LIB_PREFIX)
+DEP = .d
+OBJ = .o
+CMPLR_SUFFIX =
+CMPLR_PREFIX =
+LIB_PREFIX =
+LIB_SUFFIX =
+SHRLIB_PREFIX = $(LIB_PREFIX)
+DLLSTUB_PREFIX = $(LIB_PREFIX)
+DLLSTUB_SUFFIX = $(LIB_SUFFIX)
BUILDLIB_PREFIX_YES = $(DLLSTUB_PREFIX)
BUILDLIB_PREFIX_NO = $(LIB_PREFIX)
diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE
index a1c726f97..792e84f02 100644
--- a/configure/CONFIG_SITE
+++ b/configure/CONFIG_SITE
@@ -35,7 +35,6 @@
# solaris-x86_64 (Sun compiler used for host builds)
# solaris-x86_64-gnu (GNU compiler used for host builds)
# win32-x86 (MS Visual C++ compiler used for host builds)
-# win32-x86-cygwin (WIN32 API with cygwin GNU compiler used for host builds)
# win32-x86-mingw (MinGW compiler used for host builds)
# windows-x64 (MS Visual C++ compiler used for host builds)
diff --git a/configure/os/CONFIG.Common.vxWorksCommon b/configure/os/CONFIG.Common.vxWorksCommon
index 9971f11da..3b5b2694f 100644
--- a/configure/os/CONFIG.Common.vxWorksCommon
+++ b/configure/os/CONFIG.Common.vxWorksCommon
@@ -19,7 +19,7 @@ OS_CLASS = vxWorks
# Prefix and suffix definitions
EXE =
OBJ = .o
-LIB_PREFIX =lib
+LIB_PREFIX = lib
LIB_SUFFIX = .a
MUNCH_SUFFIX = .munch
@@ -57,24 +57,6 @@ CTDT_OBJS = $(PRODNAME:%$(EXE)=%_ctdt$(OBJ))
NMS = $(PRODNAME:%$(EXE)=%.nm)
MUNCH_DEPENDS = %_ctdt$(OBJ)
-#-------------------------------------------------------
-# R3.13 compatability object library definitions
-# Does not allow $*_SRCS or $*_OBJS. Allows only OBJLIB_SRCS and OBJLIB_OBJS.
-OBJLIB += $(OBJLIB_$(OS_CLASS))
-OBJLIB_SUFFIX = Library.o
-OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB)))
-OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS)))
-PRODTARGETS += $(OBJLIBNAME)
-INSTALL_PROD = $(OBJLIBNAME:%=$(INSTALL_BIN)/%)
-OBJLIB_MUNCHNAME += $(OBJLIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX))
-INSTALL_MUNCHS += $(OBJLIB_MUNCHNAME:%=$(INSTALL_BIN)/%)
-PRODTARGETS += $(OBJLIB_MUNCHNAME)
-CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c)
-CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ))
-NMS += $(OBJLIBNAME:%$(OBJ)=%.nm)
-OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS)
-SRC_FILES += $(OBJLIB_SRCS)
-
#--------------------------------------------------
# vxWorks version numbers
@@ -188,6 +170,10 @@ CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VXWORKS_MAJOR_VERSION))
SHRLIB_CFLAGS =
SHRLIB_LDFLAGS =
+#--------------------------------------------------
+# Earlier versions of gcc don't understand -MF
+HDEPENDS_COMPFLAGS = -MM > $@
+
#--------------------------------------------------
# osithead use default stack, YES or NO override
OSITHREAD_USE_DEFAULT_STACK = NO
diff --git a/configure/os/CONFIG.Common.win32-x86-cygwin b/configure/os/CONFIG.Common.win32-x86-cygwin
deleted file mode 100644
index 0d7dcfc88..000000000
--- a/configure/os/CONFIG.Common.win32-x86-cygwin
+++ /dev/null
@@ -1,91 +0,0 @@
-# CONFIG.Common.win32-x86-cygwin
-#
-# $Revision-Id$
-# This file is maintained by the build community.
-#
-# Definitions for cygwin-x86 target builds
-# Sites may override these definitions in CONFIG_SITE.Common.cygwin-x86
-#-------------------------------------------------------
-
-# Include definitions common to all Unix targets
-include $(CONFIG)/os/CONFIG.Common.UnixCommon
-
-OS_CLASS = WIN32
-ARCH_CLASS = x86
-
-# Definitions used when COMMANDLINE_LIBRARY is READLINE
-LDLIBS_READLINE = -lreadline -lcurses
-
-POSIX_CPPFLAGS = -D_POSIX_THREADS -D_POSIX_TIMERS
-POSIX_LDLIBS += -lpthread
-
-ARCH_DEP_CFLAGS += -m32
-ARCH_DEP_LDFLAGS += -m32
-
-# With no-cygwin option:
-# compiler defines _X86_ 1
-# compiler defines __MSVCRT__ 1
-# compiler defines __MINGW32__ 1
-# compiler defines __WIN32 1
-# compiler defines __WIN32__ 1
-# compiler defines _WIN32 1
-# compiler defines WIN32 1
-# compiler defines WINNT 1
-# compiler does not define __unix __unix__ unix
-# compiler does not define __CYGWIN__ __CYGWIN32__
-
-OP_SYS_CPPFLAGS = -mno-cygwin
-OP_SYS_LDFLAGS += -mno-cygwin
-OP_SYS_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
-
-EXE = .exe
-
-# Use .o for static object files, .obj for shared library object files
-OBJ_NO = .o
-OBJ_YES = .obj
-OBJ = $(OBJ_$(SHARED_LIBRARIES))
-
-COMPILE.c += $(if $(filter %$(OBJ),$@),-o $@)
-COMPILE.cpp += $(if $(filter %$(OBJ),$@),-o $@)
-HDEPENDS_ARCHFLAGS = -MT $*$(OBJ)
-
-DLL_CFLAGS_YES = -DEPICS_BUILD_DLL
-DLL_CFLAGS_NO =
-DLL_CFLAGS = $(DLL_CFLAGS_$(SHARED_LIBRARIES))
-STATIC_CFLAGS_YES= $(DLL_CFLAGS)
-STATIC_CFLAGS_NO= $(DLL_CFLAGS) -DEPICS_CALL_DLL
-STATIC_CXXFLAGS_YES= $(DLL_CFLAGS)
-STATIC_CXXFLAGS_NO= $(DLL_CFLAGS) -DEPICS_CALL_DLL
-
-# Adjust names of libraries to build
-#
-SHRLIB_PREFIX =
-SHRLIB_SUFFIX_BASE = .dll
-SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)
-SHRLIBNAME_YES = $(BUILD_LIBRARY:%=%$(SHRLIB_SUFFIX))
-TESTSHRLIBNAME_YES = $(TESTBUILD_LIBRARY:%=%$(SHRLIB_SUFFIX))
-LOADABLE_SHRLIB_PREFIX =
-LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)
-LOADABLE_SHRLIBNAME = $(LOADABLE_BUILD_LIBRARY:%=%$(LOADABLE_SHRLIB_SUFFIX))
-
-#
-# When SHARED_LIBRARIES is YES we are building a DLL link library
-# When SHARED_LIBRARIES is NO we are building an object library
-#
-LIB_PREFIX_NO =
-LIB_SUFFIX_NO = .lib
-LIB_PREFIX_YES = lib
-LIB_SUFFIX_YES = .dll.a
-LIB_PREFIX = $(LIB_PREFIX_$(SHARED_LIBRARIES))
-LIB_SUFFIX = $(LIB_SUFFIX_$(SHARED_LIBRARIES))
-
-DLLSTUB_LIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
-DLLSTUB_LIBNAME = $(DLLSTUB_LIBNAME_$(SHARED_LIBRARIES))
-TESTDLLSTUB_LIBNAME_YES = $(TESTBUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
-TESTDLLSTUB_LIBNAME = $(TESTDLLSTUB_LIBNAME_$(SHARED_LIBRARIES))
-TESTLIBNAME_NO = $(TESTBUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
-TESTLIBNAME = $(TESTLIBNAME_$(SHARED_LIBRARIES))
-
-# dll install location
-INSTALL_SHRLIB = $(INSTALL_BIN)
-
diff --git a/configure/os/CONFIG.linux-x86.win32-x86-mingw b/configure/os/CONFIG.linux-x86.win32-x86-mingw
new file mode 100644
index 000000000..6c1ed350d
--- /dev/null
+++ b/configure/os/CONFIG.linux-x86.win32-x86-mingw
@@ -0,0 +1,25 @@
+# CONFIG.linux-x86.win32-x86-mingw
+#
+# Definitions for linux-x86 host win32-x86-mingw target builds
+# Override these definitions in CONFIG_SITE.linux-x86.win32-x86-mingw
+#-------------------------------------------------------
+
+# Include common gnu compiler definitions
+include $(CONFIG)/CONFIG.gnuCommon
+
+RES = .coff
+RCCMD = $(GNU_BIN)/$(CMPLR_PREFIX)windres$(CMPLR_SUFFIX) $(INCLUDES) $< $@
+
+# No -fPIC avoids "-fPIC ignored for target (all code is position independent)"
+SHRLIB_CFLAGS =
+SHRLIB_LDFLAGS = -shared \
+ -Wl,--out-implib,$(DLLSTUB_PREFIX)$*$(DLLSTUB_SUFFIX)
+LOADABLE_SHRLIB_LDFLAGS = -shared \
+ -Wl,--out-implib,$(DLLSTUB_PREFIX)$*$(DLLSTUB_SUFFIX)
+
+# Override linking with gcc library from CONFIG.gnuCommon
+GNU_LDLIBS_YES =
+
+# Link with winsock2
+OP_SYS_LDLIBS = -lws2_32
+
diff --git a/configure/os/CONFIG.linux-x86_64.win32-x86-mingw b/configure/os/CONFIG.linux-x86_64.win32-x86-mingw
new file mode 100644
index 000000000..fe4edd1e8
--- /dev/null
+++ b/configure/os/CONFIG.linux-x86_64.win32-x86-mingw
@@ -0,0 +1,9 @@
+# CONFIG.linux-x86_64.win32-x86-mingw
+#
+# Definitions for linux-x86_64 host win32-x86-mingw target builds
+# Override these definitions in CONFIG_SITE.linux-x86_64.win32-x86-mingw
+#-------------------------------------------------------
+
+# Settings as for the linux-x86 host architecture
+include $(CONFIG)/os/CONFIG.linux-x86.win32-x86-mingw
+
diff --git a/configure/os/CONFIG.solarisCommon.solarisCommon b/configure/os/CONFIG.solarisCommon.solarisCommon
index 3830773af..ef9d0d59e 100644
--- a/configure/os/CONFIG.solarisCommon.solarisCommon
+++ b/configure/os/CONFIG.solarisCommon.solarisCommon
@@ -57,7 +57,7 @@ OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload
# Header dependency file generation command
HDEPENDS_METHOD = COMP
-HDEPENDS_COMPFLAGS = -xM1 -xMF $@
+HDEPENDS_COMPFLAGS = -xM1 > $@
#--------------------------------------------------
# Allow site overrides
diff --git a/configure/os/CONFIG.win32-x86-cygwin.Common b/configure/os/CONFIG.win32-x86-cygwin.Common
deleted file mode 100644
index 2593ed8d2..000000000
--- a/configure/os/CONFIG.win32-x86-cygwin.Common
+++ /dev/null
@@ -1,22 +0,0 @@
-# CONFIG.win32-x86-cygwin.Common
-#
-# $Revision-Id$
-# This file is maintained by the build community.
-#
-# Definitions for win32-x86-cygwin host archs
-# Sites may override these definitions in CONFIG_SITE.win32-x86-cygwin.Common
-#-------------------------------------------------------
-
-#Include definitions common to unix hosts
-include $(CONFIG)/os/CONFIG.UnixCommon.Common
-
-HOSTEXE=.exe
-
-WIND_HOST_TYPE = x86-win32
-
-# osithead use default stack, YES or NO override
-OSITHREAD_USE_DEFAULT_STACK = NO
-
-# Needed to find dlls for base installed build tools (antelope,eflex,...)
-PATH := $(EPICS_BASE_BIN):$(PATH)
-
diff --git a/configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin b/configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin
deleted file mode 100644
index aa29f4d7a..000000000
--- a/configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin
+++ /dev/null
@@ -1,28 +0,0 @@
-# CONFIG.win32-x86-cygwin.win32-x86-cygwin
-#
-# $Revision-Id$
-#
-# Definitions for win32-x86-cygwin host - win32-x86-cygwin target builds
-# Sites may override these definitions in CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin
-#-------------------------------------------------------
-
-# Include common gnu compiler definitions
-include $(CONFIG)/CONFIG.gnuCommon
-
-# cygwin's gcc, g++, ar, ld, and ranlib must be in user's path
-CC = gcc
-CCC = g++
-AR = ar -rc
-LD = ld -r
-RANLIB = ranlib
-RES=.coff
-RCCMD = windres $(INCLUDES) $< $@
-
-# No -fPIC avoids "-fPIC ignored for target (all code is position independent)"
-SHRLIB_CFLAGS =
-SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
-LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
-
-# Override linking with gcc library from CONFIG.gnuCommon
-GNU_LDLIBS_YES =
-
diff --git a/configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin-debug b/configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin-debug
deleted file mode 100644
index a0125a25a..000000000
--- a/configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin-debug
+++ /dev/null
@@ -1,14 +0,0 @@
-# CONFIG.win32-x86-cygwin.win32-x86-cygwin-debug
-#
-# $Revision-Id$
-# This file is maintained by the build community.
-#
-# Definitions for win32-x86-cygwin compiler host - win32-x86-cygwin debug compiler target builds
-# Sites may override these definitions in CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin-debug
-#-------------------------------------------------------
-
-include $(CONFIG)/os/CONFIG.Common.win32-x86-cygwin
-include $(CONFIG)/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin
-
-BUILD_CLASS=HOST
-HOST_OPT=NO
diff --git a/configure/os/CONFIG_SITE.Common.win32-x86-cygwin b/configure/os/CONFIG_SITE.Common.win32-x86-cygwin
deleted file mode 100644
index 206ab48c7..000000000
--- a/configure/os/CONFIG_SITE.Common.win32-x86-cygwin
+++ /dev/null
@@ -1,7 +0,0 @@
-# CONFIG_SITE.Common.win32-x86-cygwin
-#
-# $Revision-Id$
-#
-# Site Specific definitions for cygwin-x86 target
-# Only the local epics system manager should modify this file
-
diff --git a/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw b/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
new file mode 100644
index 000000000..a9719ae46
--- /dev/null
+++ b/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
@@ -0,0 +1,21 @@
+# CONFIG_SITE.linux-x86.win32-x86-mingw
+#
+# Configuration for linux-x86 host win32-x86-mingw target builds
+#-------------------------------------------------------
+
+# Early versions of the MinGW cross-build tools can only build
+# static (non-DLL) libraries. The version of gcc 4.6.3 for Ubuntu
+# succeeds, but Fedora's 4.4.6 does not and needs these uncommented:
+SHARED_LIBRARIES = NO
+STATIC_BUILD = YES
+
+# The cross-build tools are in $(GNU_DIR)/bin
+# Default is /usr
+#GNU_DIR = /usr/local
+
+# Different distribution cross-build packages use different prefixes:
+# Ubuntu:
+#CMPLR_PREFIX = i686-w64-mingw32-
+# RHEL:
+CMPLR_PREFIX = i686-pc-mingw32-
+
diff --git a/configure/os/CONFIG_SITE.linux-x86_64.win32-x86-mingw b/configure/os/CONFIG_SITE.linux-x86_64.win32-x86-mingw
new file mode 100644
index 000000000..99836730a
--- /dev/null
+++ b/configure/os/CONFIG_SITE.linux-x86_64.win32-x86-mingw
@@ -0,0 +1,8 @@
+# CONFIG_SITE.linux-x86_64.win32-x86-mingw
+#
+# Configuration for linux-x86_64 host win32-x86-mingw target builds
+#-------------------------------------------------------
+
+# Inherit from the linux-x86 host architecture
+include $(CONFIG)/os/CONFIG_SITE.linux-x86.win32-x86-mingw
+
diff --git a/configure/os/CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin b/configure/os/CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin
deleted file mode 100644
index 139597f9c..000000000
--- a/configure/os/CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/documentation/README.MS_Windows b/documentation/README.MS_Windows
deleted file mode 100644
index 415ff2596..000000000
--- a/documentation/README.MS_Windows
+++ /dev/null
@@ -1,224 +0,0 @@
-WARNING: THIS FILE IS OLD
-=========================
-
-Some of the information in this file is likely to be out of date. It has not been
-updated since 2005, so things like the minimum required versions are now wrong.
-
-
-Compiling EPICS and Building IOC Applications on MS Windows
------------------------------------------------------------
-
-Original port of EPICS base build system to Windows was done by Kay-Uwe Kasemir 11/96
-
-Please mail questions, comments, corrections, additional examples, etc to Jeff Hill
- at johill###at###lanl.gov (replace ###at### with @ of course)
-
-0) what you will get
---------------------
-
-This port of EPICS to windows allows you to build for two host architectures:
-
-win32-x86 - This is the native port to windows. Probably faster, more efficent, and with
- more precise time stamps. The OS dependent layers are carefully optimized
- for EPICS. There is prioritized schedualing of threads.
-
-cygwin-x86 - This is the POSIX port of EPICS layered onto cygwin which is layered again
- onto win32. We have less experience with this version, but it is in use. I
- suspect that Mark Rivers has the most experience with it. Mutexes may be
- slower, and time stamps are probably less precise. There were problems with
- interrupting blocking system calls during cleanup in past version that may
- be resolved in more recent versions of cygwin.
-
-Once you have completed a host and or target build you can run all of the base components on
-windows. This includes the client library (ca.dll, Com.dll), soft IOCs, portable server etc.
-
-1) what you will need
----------------------
-
-Depending on how you set the EPICS_HOST ARCH environment variable, you will need
-
-o win32-x86 - MS Visual C/C++ (probably version 6 is the earliest version that can be used)
- (I understand that there are also available free versions of this compiler)
-o win32-x86-borland - Borland C free compiler and linker (I use Borland C++ 5.5.1 successfuly)
-o win32-x86-mingw - MingW standalone GNU developers tools www.mingw.org
-o win32-x86-cygwin - Cygwin hosted developers tools www.cygwin.com
-o cigwin-x86 - Cygwin hosted developers tools targeting Cygwin GNU based posix www.cygwin.com
-
-You can also cross compiler for Tornado (and possibly RTEMS) if you have it (them) installed on
-Windows. To build only for win32-x86 and not cross compile for IOC development type
-"make win32-x86" or in your configure/CONFIG_SITE file set "CROSS_COMPILER_HOST_ARCHS="
-
-And some tools:
- gnu make - www.gnu.org (need 3.78.1 or later)
- perl - www.perl.org (need 5.0 or later)
-
-The gnu make and perl executables are also downloadable from www.cygwin.com
-
-The perl interpreter and gnu make are also available 'on the net'
-as sources which compile with MS Visual C++.
-
-2) set environment variables
-
-(Setting env. vars. is different: for NT/W2K/WXP, use Settings/System,
-for Win95 use autoexec.bat)
-
-When setting paths in the EPICS CONFIG files for win32-x86 the following
-are hints in case you have trouble. You should not need to worry about
-this unless you type a path into one of the EPICS config files that
-includes a "\". In most situations gnu make, windows NT/W2K/WXP, the MS compiler,
-and the MS linker will accept "/" and this will result in less trouble.
-
- ** Note that that each "\" in any path variables you set
- must be replaced with a "\\" (this is because GNU make treats
- all "\" characters as line continuation)
-
- *and* Note that that each space in any file name or
- path name variable you set must be replaced with
- a "\ " (this is because GNU make treats all " " separated
- input as independent tokens in the input stream.
-
- ** win32-x86 will generally allow "/" and "\" interchangeably in file paths,
- but the DOS shell only accepts "\".
-
- ** Certain command line utilities such as the MS linker are known to in rare
- situations confuse "/" in a path with command line options, and it may
- be necessary to replace a "/" in a path that configured with "\\", but
- the bulk of our experience indicates that this is not the necessary.
-
-Your path should include (in additon to ms system directories):
-- The ms system directories
-- The EPICS-binaries we are building
The ability to compile non-cygwin binaries using the Cygwin build tools is no +longer supported by current versions of Cygwin, so this architecture has been +removed. Use the MinWG tools and the win32-x86-mingw architecture instead.
+The original libCom test harness has been renamed libComTestHarness, @@ -25,7 +31,9 @@ The new ones include tests in src/ioc/db/test and src/std/filters/test.
Running the new tests requires additional .db and .dbd files to be loaded at runtime, which can be found in the relevant source directory or its O.Common subdirectory. If the target can access the Base source tree directly it may be -simplest to cd to the relevant source directory before running the test.
+simplest to cd to the relevant source directory before running the test. If not, +the files needed are listed in the generated 'testspec' file found in the +associated build (O.arch) directory.For RTEMS users the current directory is determined in a BSP specific way. See rtems_init.c and setBootConfigFromNVRAM.c in src/libCom/RTEMS.