Bug 491045: Remove support for VMS (a.k.a., OpenVMS) from NSPR, r=wtc
authornelson%bolyard.com
Fri, 01 May 2009 23:08:06 +0000
changeset 4092 304c39806d58bce216826a394de8d553be77de22
parent 4091 4f734afbb5d6eaca53630f7ed20464c030d74694
child 4093 b7e7342fa9abe97808215f0ee765935db3140ead
push idunknown
push userunknown
push dateunknown
reviewerswtc
bugs491045
Bug 491045: Remove support for VMS (a.k.a., OpenVMS) from NSPR, r=wtc
build/autoconf/config.guess
config/now.c
config/nsinstall.c
config/rules.mk
configure
configure.in
lib/ds/plds_symvec.opt
lib/libc/src/plc_symvec.opt
lib/prstreams/prstrms.cpp
pr/include/md/Makefile.in
pr/include/md/_openvms.cfg
pr/include/md/_openvms.h
pr/include/md/_pth.h
pr/include/md/_unixos.h
pr/include/md/prosdep.h
pr/include/obsolete/protypes.h
pr/src/io/prmapopt.c
pr/src/io/prpolevt.c
pr/src/linking/prlink.c
pr/src/md/unix/openvms.c
pr/src/md/unix/unix.c
pr/src/md/unix/uxproces.c
pr/src/md/unix/uxrng.c
pr/src/misc/prnetdb.c
pr/src/nspr_symvec.opt
pr/src/pthreads/ptio.c
pr/src/pthreads/ptthread.c
pr/tests/op_filok.c
--- a/build/autoconf/config.guess
+++ b/build/autoconf/config.guess
@@ -1129,26 +1129,16 @@ EOF
 	else
 		echo ns32k-sni-sysv
 	fi
 	exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                       # says <Richard.M.Bartel@ccMail.Census.GOV>
         echo i586-unisys-sysv4
         exit ;;
-#### MozillaHack 
-    *:*OpenVMS*:*:*)
-        case "${UNAME_SYSTEM}" in
-            POSIX_for_OpenVMS_AXP) echo alpha-dec-openvmsposix ;;
-            POSIX_for_OpenVMS_VAX) echo vax-dec-openvmsposix ;;
-            OpenVMS) echo alpha-dec-openvms ;;
-            *) echo unknown-dec-openvms ;;
-        esac
-        exit ;;
-#### End MozillaHack 
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes@openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
 	echo hppa1.1-stratus-sysv4
 	exit ;;
     *:*:*:FTX*)
 	# From seanf@swdc.stratus.com.
 	echo i860-stratus-sysv4
--- a/config/now.c
+++ b/config/now.c
@@ -33,19 +33,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include <stdio.h>
 #include <stdlib.h>
 
-#if defined(VMS)
-#include <sys/timeb.h>
-#elif defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS)
+#if defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS)
 #include <sys/time.h>
 #elif defined(_WIN32)
 #include <windows.h>
 #else
 #error "Architecture not supported"
 #endif
 
 
@@ -57,24 +55,16 @@ int main(int argc, char **argv)
      * such as 'long long'.  Because we can't use NSPR's
      * PR_snprintf in this program, it is difficult to
      * print a static initializer for PRInt64 (a struct).
      * So we print nothing.  The makefiles that build the
      * shared libraries will detect the empty output string
      * of this program and omit the library build time
      * in PRVersionDescription.
      */
-#elif defined(VMS)
-    long long now;
-    struct timeb b;
-    ftime(&b);
-    now = b.time;
-    now *= 1000000;
-    now += (1000 * b.millitm);
-    fprintf(stdout, "%Ld", now);
 #elif defined(XP_UNIX) || defined(XP_OS2) || defined(XP_BEOS)
     long long now;
     struct timeval tv;
 #ifdef HAVE_SVID_GETTOD
     gettimeofday(&tv);
 #else
     gettimeofday(&tv, NULL);
 #endif
--- a/config/nsinstall.c
+++ b/config/nsinstall.c
@@ -65,17 +65,17 @@
 #if defined(BEOS)
 #undef HAVE_FCHMOD
 #endif
 
 /*
  * Does getcwd() take NULL as the first argument and malloc
  * the result buffer?
  */
-#if !defined(DARWIN) && !defined(NEXTSTEP) && !defined(VMS)
+#if !defined(DARWIN) && !defined(NEXTSTEP)
 #define GETCWD_CAN_MALLOC
 #endif
 
 #ifdef NEXTSTEP
 #include <bsd/libc.h>
 
 /*
 ** balazs.pataki@sztaki.hu: The getcwd is broken in NEXTSTEP (returns 0),
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -163,25 +163,16 @@ ifndef OBJS
 OBJS		= $(addprefix $(OBJDIR)/,$(CSRCS:.c=.$(OBJ_SUFFIX))) \
 		  $(addprefix $(OBJDIR)/,$(ASFILES:.$(ASM_SUFFIX)=.$(OBJ_SUFFIX)))
 endif
 
 ALL_TRASH		= $(TARGETS) $(OBJS) $(RES) $(filter-out . .., $(OBJDIR)) LOGS TAGS $(GARBAGE) \
 			  $(NOSUCHFILE) \
 			  so_locations
 
-ifeq ($(OS_ARCH),OpenVMS)
-ALL_TRASH		+= $(wildcard *.c*_defines)
-ifdef SHARED_LIBRARY
-VMS_SYMVEC_FILE		= $(SHARED_LIBRARY:.$(DLL_SUFFIX)=_symvec.opt)
-VMS_SYMVEC_FILE_MODULE	= $(srcdir)/$(LIBRARY_NAME)_symvec.opt
-ALL_TRASH		+= $(VMS_SYMVEC_FILE)
-endif
-endif
-
 ifndef RELEASE_LIBS_DEST
 RELEASE_LIBS_DEST	= $(RELEASE_LIB_DIR)
 endif
 
 ifdef DIRS
 LOOP_OVER_DIRS		=					\
 	@for d in $(DIRS); do					\
 		if test -d $$d; then				\
@@ -340,24 +331,16 @@ ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT)
 	$(LINK_DLL) -MAP $(DLLBASE) $(DLL_LIBS) $(EXTRA_LIBS) $(OBJS) $(RES)
 ifdef MT
 	@if test -f $@.manifest; then \
 		$(MT) -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;2; \
 		rm -f $@.manifest; \
 	fi
 endif	# MSVC with manifest tool
 else	# WINNT && !GCC
-ifeq ($(OS_TARGET), OpenVMS)
-	@if test ! -f $(VMS_SYMVEC_FILE); then \
-	  if test -f $(VMS_SYMVEC_FILE_MODULE); then \
-	    echo Creating component options file $(VMS_SYMVEC_FILE); \
-	    cp $(VMS_SYMVEC_FILE_MODULE) $(VMS_SYMVEC_FILE); \
-	  fi; \
-	fi
-endif	# OpenVMS
 	$(MKSHLIB) $(OBJS) $(RES) $(LDFLAGS) $(EXTRA_LIBS)
 endif	# WINNT && !GCC
 endif	# AIX 4.1
 ifdef ENABLE_STRIP
 	$(STRIP) $@
 endif
 
 ifeq ($(OS_ARCH),WINNT)
--- a/configure
+++ b/configure
@@ -1007,20 +1007,16 @@ if test -z "$CC"; then
     *-hpux*)
         CC=cc
     ;;
 
     *-irix*)
         CC=cc
     ;;
 
-    *-openvms*)
-        CC=cc
-    ;;
-
     *-osf*)
         CC=cc
     ;;
 
     *-solaris*)
         CC=cc
     ;;
 
@@ -1051,20 +1047,16 @@ if test -z "$CXX"; then
             ;;
         esac
     ;;
 
     *-irix*)
         CXX=CC
     ;;
 
-    *-openvms*)
-        CXX=cxx
-    ;;
-
     *-osf*)
         CXX=cxx
     ;;
 
     *-solaris*)
         CXX=CC
     ;;
 
@@ -2815,20 +2807,16 @@ if test "$OS_ARCH" = "FreeBSD"; then
     OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
 fi
 
 if test "$OS_ARCH" = "Linux"; then
     OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
     OS_RELEASE=`echo $OS_RELEASE | awk -F\. '{ print $1 "." $2 }'`
 fi
 
-if test "$OS_ARCH" = "OpenVMS"; then
-    OS_RELEASE=`uname -v`
-fi
-
 #######################################################################
 # Master "Core Components" macros for getting the OS target           #
 #######################################################################
 
 #
 # Note: OS_TARGET should be specified on the command line for gmake.
 # When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
 # The difference between the Win95 target and the WinNT target is that
@@ -4477,41 +4465,16 @@ EOF
     OS_LIBS="-lc"
     if test -z "$USE_NSPR_THREADS"; then
         USE_PTHREADS=1
     fi
     DSO_LDOPTS='-shared -fPIC'
     MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
     ;;
 
-*-openvms*)
-    cat >> confdefs.h <<\EOF
-#define XP_UNIX 1
-EOF
-
-    cat >> confdefs.h <<\EOF
-#define VMS 1
-EOF
-
-    cat >> confdefs.h <<\EOF
-#define PR_GETIPNODE_NOT_THREADSAFE 1
-EOF
-
-    RESOLVE_LINK_SYMBOLS=1
-    AR_FLAGS='c $@'
-    MDCPUCFG_H=_openvms.cfg
-    PR_MD_CSRCS=openvms.c
-    DSO_LDOPTS='-shared -auto_symvec'
-    if test -n "$MOZ_DEBUG"; then
-      DSO_LDOPTS="$DSO_LDOPTS $_DEBUG_FLAGS"
-    else
-      DSO_LDOPTS="$DSO_LDOPTS $_OPTIMIZE_FLAGS"
-    fi
-    ;;
-
 *-osf*)
     SHELL_OVERRIDE="SHELL		= /usr/bin/ksh"
     cat >> confdefs.h <<\EOF
 #define XP_UNIX 1
 EOF
 
     cat >> confdefs.h <<\EOF
 #define OSF1 1
--- a/configure.in
+++ b/configure.in
@@ -307,20 +307,16 @@ if test -z "$CC"; then
     *-hpux*)
         CC=cc
     ;;
 
     *-irix*)
         CC=cc
     ;;
 
-    *-openvms*)
-        CC=cc
-    ;;
-
     *-osf*)
         CC=cc
     ;;
 
     *-solaris*)
         CC=cc
     ;;
 
@@ -356,20 +352,16 @@ if test -z "$CXX"; then
             ;;
         esac
     ;;
 
     *-irix*)
         CXX=CC
     ;;
 
-    *-openvms*)
-        CXX=cxx
-    ;;
-
     *-osf*)
         CXX=cxx
     ;;
 
     *-solaris*)
         CXX=CC
     ;;
 
@@ -676,20 +668,16 @@ if test "$OS_ARCH" = "FreeBSD"; then
     OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
 fi
 
 if test "$OS_ARCH" = "Linux"; then
     OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
     OS_RELEASE=`echo $OS_RELEASE | awk -F\. '{ print $1 "." $2 }'`
 fi
 
-if test "$OS_ARCH" = "OpenVMS"; then
-    OS_RELEASE=`uname -v`
-fi
-
 #######################################################################
 # Master "Core Components" macros for getting the OS target           #
 #######################################################################
 
 #
 # Note: OS_TARGET should be specified on the command line for gmake.
 # When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
 # The difference between the Win95 target and the WinNT target is that
@@ -1830,32 +1818,16 @@ mips-sony-newsos*)
     OS_LIBS="-lc"
     if test -z "$USE_NSPR_THREADS"; then
         USE_PTHREADS=1
     fi
     DSO_LDOPTS='-shared -fPIC'
     MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
     ;;
 
-*-openvms*)
-    AC_DEFINE(XP_UNIX)
-    AC_DEFINE(VMS)
-    AC_DEFINE(PR_GETIPNODE_NOT_THREADSAFE)
-    RESOLVE_LINK_SYMBOLS=1
-    AR_FLAGS='c $@'
-    MDCPUCFG_H=_openvms.cfg
-    PR_MD_CSRCS=openvms.c
-    DSO_LDOPTS='-shared -auto_symvec'
-    if test -n "$MOZ_DEBUG"; then
-      DSO_LDOPTS="$DSO_LDOPTS $_DEBUG_FLAGS"
-    else
-      DSO_LDOPTS="$DSO_LDOPTS $_OPTIMIZE_FLAGS"
-    fi
-    ;;
-
 *-osf*)
     SHELL_OVERRIDE="SHELL		= /usr/bin/ksh"
     AC_DEFINE(XP_UNIX)
     AC_DEFINE(OSF1)
     AC_DEFINE(_REENTRANT)
     # OSF1 and HPUX report the POLLHUP event for a socket when the
     # shutdown(SHUT_WR) operation is called for the remote end, even though
     # the socket is still writeable. Use select(), instead of poll(), to
deleted file mode 100644
--- a/lib/ds/plds_symvec.opt
+++ /dev/null
@@ -1,37 +0,0 @@
-! Fixed section of symbol vector for LIBPLDS4
-!
-GSMATCH=LEQUAL,2,2
-case_sensitive=YES
-!
-! --------------------------------------------------------------------------
-! Ident 2,2 introduced for Mozilla 1.3
-! Previously this was empty. Now we include everything that's specified in
-! plds.def.
-! --------------------------------------------------------------------------
-!
-! NSPR 4.0
-SYMBOL_VECTOR=(PL_ArenaAllocate=PROCEDURE)
-SYMBOL_VECTOR=(PL_ArenaFinish=PROCEDURE)
-SYMBOL_VECTOR=(PL_ArenaGrow=PROCEDURE)
-SYMBOL_VECTOR=(PL_ArenaRelease=PROCEDURE)
-SYMBOL_VECTOR=(PL_CompactArenaPool=PROCEDURE)
-SYMBOL_VECTOR=(PL_CompareStrings=PROCEDURE)
-SYMBOL_VECTOR=(PL_CompareValues=PROCEDURE)
-SYMBOL_VECTOR=(PL_FinishArenaPool=PROCEDURE)
-SYMBOL_VECTOR=(PL_FreeArenaPool=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashString=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableAdd=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableDestroy=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableDump=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableEnumerateEntries=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableLookup=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableRawAdd=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableRawLookup=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableRawRemove=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableRemove=PROCEDURE)
-SYMBOL_VECTOR=(PL_InitArenaPool=PROCEDURE)
-SYMBOL_VECTOR=(PL_NewHashTable=PROCEDURE)
-SYMBOL_VECTOR=(libVersionPoint=PROCEDURE)
-! NSPR 4.1
-SYMBOL_VECTOR=(PL_HashTableLookupConst=PROCEDURE)
-SYMBOL_VECTOR=(PL_HashTableRawLookupConst=PROCEDURE)
deleted file mode 100644
--- a/lib/libc/src/plc_symvec.opt
+++ /dev/null
@@ -1,53 +0,0 @@
-! Fixed section of symbol vector for LIBPLC4
-!
-GSMATCH=LEQUAL,2,2
-case_sensitive=YES
-!
-! --------------------------------------------------------------------------
-! Ident 2,2 introduced for Mozilla 1.3
-! Previously this was empty. Now we include everything that's specified in
-! plc.def.
-! --------------------------------------------------------------------------
-!
-! NSPR 4.0
-SYMBOL_VECTOR=(PL_Base64Decode=PROCEDURE)
-SYMBOL_VECTOR=(PL_Base64Encode=PROCEDURE)
-SYMBOL_VECTOR=(PL_CreateOptState=PROCEDURE)
-SYMBOL_VECTOR=(PL_DestroyOptState=PROCEDURE)
-SYMBOL_VECTOR=(PL_FPrintError=PROCEDURE)
-SYMBOL_VECTOR=(PL_GetNextOpt=PROCEDURE)
-SYMBOL_VECTOR=(PL_PrintError=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcasecmp=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcaserstr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcasestr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcat=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcatn=PROCEDURE)
-SYMBOL_VECTOR=(PL_strchr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcmp=PROCEDURE)
-SYMBOL_VECTOR=(PL_strcpy=PROCEDURE)
-SYMBOL_VECTOR=(PL_strdup=PROCEDURE)
-SYMBOL_VECTOR=(PL_strfree=PROCEDURE)
-SYMBOL_VECTOR=(PL_strlen=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncasecmp=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncaserstr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncasestr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncat=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnchr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncmp=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncpy=PROCEDURE)
-SYMBOL_VECTOR=(PL_strncpyz=PROCEDURE)
-SYMBOL_VECTOR=(PL_strndup=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnlen=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnpbrk=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnprbrk=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnrchr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnrstr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strnstr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strpbrk=PROCEDURE)
-SYMBOL_VECTOR=(PL_strprbrk=PROCEDURE)
-SYMBOL_VECTOR=(PL_strrchr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strrstr=PROCEDURE)
-SYMBOL_VECTOR=(PL_strstr=PROCEDURE)
-SYMBOL_VECTOR=(libVersionPoint=PROCEDURE)
-! NSPR 4.2
-SYMBOL_VECTOR=(PL_strtok_r=PROCEDURE)
--- a/lib/prstreams/prstrms.cpp
+++ b/lib/prstreams/prstrms.cpp
@@ -59,20 +59,16 @@
 #if defined(__GNUC__)
 #define _PRSTR_BP _strbuf
 #define _PRSTR_DELBUF(x)    /* as nothing */
 #define _PRSTR_DELBUF_C(c, x)  /* as nothing */
 #elif defined(WIN32)
 #define _PRSTR_BP bp
 #define _PRSTR_DELBUF(x)	delbuf(x)
 #define _PRSTR_DELBUF_C(c, x)	c::_PRSTR_DELBUF(x)
-#elif defined(VMS)
-#undef  _PRSTR_BP
-#define _PRSTR_DELBUF(x) /* as nothing */
-#define _PRSTR_DELBUF_C(c, x)	/* as nothing */
 #elif defined(OSF1)
 #define _PRSTR_BP m_psb
 #define _PRSTR_DELBUF(x) /* as nothing */
 #define _PRSTR_DELBUF_C(c, x)	/* as nothing */
 #elif defined(QNX)
 #define PRFSTREAMS_BROKEN
 #else
 #define _PRSTR_BP bp
--- a/pr/include/md/Makefile.in
+++ b/pr/include/md/Makefile.in
@@ -48,39 +48,23 @@ include $(MOD_DEPTH)/config/autoconf.mk
 # cross-compilation.
 CONFIGS = $(wildcard $(srcdir)/*.cfg)
 
 include $(topsrcdir)/config/rules.mk
 
 export:: $(MDCPUCFG_H)
 	$(INSTALL) -m 444 $(CONFIGS) $(dist_includedir)/md
 	$(INSTALL) -m 444 $(srcdir)/$(MDCPUCFG_H) $(dist_includedir)
-ifeq ($(OS_ARCH),OpenVMS)
-# On OpenVMS mv updates the file's modified time, so we create a hard link.
-	cd $(dist_includedir); \
-	if test ! -f prcpucfg.h; then \
-	    dcl set file /enter=prcpucfg.h $(MDCPUCFG_H); \
-	fi
-else
 	mv -f $(dist_includedir)/$(MDCPUCFG_H) $(dist_includedir)/prcpucfg.h
-endif
 
 install::
 	$(NSINSTALL) -D $(DESTDIR)$(includedir)/md
 	$(NSINSTALL) -t -m 644 $(CONFIGS) $(DESTDIR)$(includedir)/md
 	$(NSINSTALL) -t -m 644 $(srcdir)/$(MDCPUCFG_H) $(DESTDIR)$(includedir)
-ifeq ($(OS_ARCH),OpenVMS)
-# On OpenVMS mv updates the file's modified time, so we create a hard link.
-	cd $(DESTDIR)$(includedir); \
-	if test ! -f prcpucfg.h; then \
-	    dcl set file /enter=prcpucfg.h $(MDCPUCFG_H); \
-	fi
-else
 	mv -f $(DESTDIR)$(includedir)/$(MDCPUCFG_H) $(DESTDIR)$(includedir)/prcpucfg.h
-endif
 
 release:: export
 	@echo "Copying machine-dependent prcpucfg.h"
 	@if test -z "$(BUILD_NUMBER)"; then \
 		echo "BUILD_NUMBER must be defined"; \
 		false; \
 	fi
 	@if test ! -d $(RELEASE_INCLUDE_DIR); then \
deleted file mode 100644
--- a/pr/include/md/_openvms.cfg
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is the Netscape Portable Runtime (NSPR).
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998-2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nspr_cpucfg___
-#define nspr_cpucfg___
-
-#ifndef XP_UNIX
-#define XP_UNIX
-#endif
-
-#ifndef VMS
-#define VMS
-#endif
-
-#define IS_LITTLE_ENDIAN 1
-#undef  IS_BIG_ENDIAN
-#ifndef HAVE_LONG_LONG
-#define	HAVE_LONG_LONG
-#endif
-#define HAVE_ALIGNED_DOUBLES
-#define HAVE_ALIGNED_LONGLONGS
-#ifdef IS_64
-#undef IS_64
-#endif
-
-#define PR_AF_INET6 26  /* same as AF_INET6 */
-
-#define PR_BYTES_PER_BYTE   1
-#define PR_BYTES_PER_SHORT  2
-#define PR_BYTES_PER_INT    4
-#define PR_BYTES_PER_INT64  8
-#define PR_BYTES_PER_LONG   4
-#define PR_BYTES_PER_FLOAT  4
-#define PR_BYTES_PER_DOUBLE 8
-#define PR_BYTES_PER_WORD   4
-#define PR_BYTES_PER_DWORD  8
-
-#define PR_BITS_PER_BYTE    8
-#define PR_BITS_PER_SHORT   16
-#define PR_BITS_PER_INT     32
-#define PR_BITS_PER_INT64   64
-#define PR_BITS_PER_LONG    32 
-#define PR_BITS_PER_FLOAT   32
-#define PR_BITS_PER_DOUBLE  64
-#define PR_BITS_PER_WORD    32
-
-#define PR_BITS_PER_BYTE_LOG2   3
-#define PR_BITS_PER_SHORT_LOG2  4
-#define PR_BITS_PER_INT_LOG2    5
-#define PR_BITS_PER_INT64_LOG2  6
-#define PR_BITS_PER_LONG_LOG2   5
-#define PR_BITS_PER_FLOAT_LOG2  5
-#define PR_BITS_PER_DOUBLE_LOG2 6
-#define PR_BITS_PER_WORD_LOG2   5
-
-#define PR_BYTES_PER_WORD_LOG2  2
-#define PR_BYTES_PER_DWORD_LOG2 3
-
-#define PR_ALIGN_OF_SHORT   2
-#define PR_ALIGN_OF_INT     4
-#define PR_ALIGN_OF_LONG    4
-#define PR_ALIGN_OF_INT64   8
-#define PR_ALIGN_OF_FLOAT   4
-#define PR_ALIGN_OF_DOUBLE  8
-#define PR_ALIGN_OF_POINTER 4
-
-#define _PR_POLL_BACKCOMPAT
-
-#ifndef NO_NSPR_10_SUPPORT
-
-#define BYTES_PER_BYTE		PR_BYTES_PER_BYTE
-#define BYTES_PER_SHORT 	PR_BYTES_PER_SHORT
-#define BYTES_PER_INT 		PR_BYTES_PER_INT
-#define BYTES_PER_INT64		PR_BYTES_PER_INT64
-#define BYTES_PER_LONG		PR_BYTES_PER_LONG
-#define BYTES_PER_FLOAT		PR_BYTES_PER_FLOAT
-#define BYTES_PER_DOUBLE	PR_BYTES_PER_DOUBLE
-#define BYTES_PER_WORD		PR_BYTES_PER_WORD
-#define BYTES_PER_DWORD		PR_BYTES_PER_DWORD
-
-#define BITS_PER_BYTE		PR_BITS_PER_BYTE
-#define BITS_PER_SHORT		PR_BITS_PER_SHORT
-#define BITS_PER_INT		PR_BITS_PER_INT
-#define BITS_PER_INT64		PR_BITS_PER_INT64
-#define BITS_PER_LONG		PR_BITS_PER_LONG
-#define BITS_PER_FLOAT		PR_BITS_PER_FLOAT
-#define BITS_PER_DOUBLE		PR_BITS_PER_DOUBLE
-#define BITS_PER_WORD		PR_BITS_PER_WORD
-
-#define BITS_PER_BYTE_LOG2	PR_BITS_PER_BYTE_LOG2
-#define BITS_PER_SHORT_LOG2	PR_BITS_PER_SHORT_LOG2
-#define BITS_PER_INT_LOG2	PR_BITS_PER_INT_LOG2
-#define BITS_PER_INT64_LOG2	PR_BITS_PER_INT64_LOG2
-#define BITS_PER_LONG_LOG2	PR_BITS_PER_LONG_LOG2
-#define BITS_PER_FLOAT_LOG2	PR_BITS_PER_FLOAT_LOG2
-#define BITS_PER_DOUBLE_LOG2 	PR_BITS_PER_DOUBLE_LOG2
-#define BITS_PER_WORD_LOG2	PR_BITS_PER_WORD_LOG2
-
-#define ALIGN_OF_SHORT		PR_ALIGN_OF_SHORT
-#define ALIGN_OF_INT		PR_ALIGN_OF_INT
-#define ALIGN_OF_LONG		PR_ALIGN_OF_LONG
-#define ALIGN_OF_INT64		PR_ALIGN_OF_INT64
-#define ALIGN_OF_FLOAT		PR_ALIGN_OF_FLOAT
-#define ALIGN_OF_DOUBLE		PR_ALIGN_OF_DOUBLE
-#define ALIGN_OF_POINTER	PR_ALIGN_OF_POINTER
-#define ALIGN_OF_WORD		PR_ALIGN_OF_WORD
-
-#define BYTES_PER_WORD_LOG2	PR_BYTES_PER_WORD_LOG2
-#define BYTES_PER_DWORD_LOG2	PR_BYTES_PER_DWORD_LOG2
-#define WORDS_PER_DWORD_LOG2	PR_WORDS_PER_DWORD_LOG2
-
-#endif /* NO_NSPR_10_SUPPORT */
-
-#endif /* nspr_cpucfg___ */
deleted file mode 100644
--- a/pr/include/md/_openvms.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is the Netscape Portable Runtime (NSPR).
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998-2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/*
-** This is the OpenVMS machine dependant configuration file. It is based
-** on the OSF/1 machine dependant file.
-*/
-
-#ifndef nspr_openvms_defs_h___
-#define nspr_openvms_defs_h___
-
-/*
- * Internal configuration macros
- */
-
-#define PR_LINKER_ARCH	"OpenVMS"
-#define _PR_SI_SYSNAME	"OpenVMS"
-#ifdef __alpha
-#define _PR_SI_ARCHITECTURE "alpha"
-#else
-#define _PR_SI_ARCHITECTURE "vax"
-#endif
-#define PR_DLL_SUFFIX		".so"
-
-#define _PR_VMBASE		0x30000000
-#define _PR_STACK_VMBASE	0x50000000
-#define _MD_DEFAULT_STACK_SIZE	131072L
-#define _MD_MINIMUM_STACK_SIZE	131072L
-
-/*
-** This is not defined on OpenVMS. I believe its only used in GC code, and
-** isn't that only used in Java? Anyway, for now, let's keep the compiler
-** happy.
-*/
-#define SA_RESTART 0
-
-/*
-** OpenVMS doesn't have these in socket.h.
-** Does in later versions!
-*/
-#if 0
-struct ip_mreq {
-    struct in_addr  imr_multiaddr;      /* IP multicast address of group */
-    struct in_addr  imr_interface;      /* local IP address of interface */
-};
-#endif
-
-/*
- * OSF1 needs the MAP_FIXED flag to ensure that mmap returns a pointer
- * with the upper 32 bits zero.  This is because Java sticks a pointer
- * into an int.
- */
-#define _MD_MMAP_FLAGS          MAP_PRIVATE|MAP_FIXED
-
-#undef  HAVE_STACK_GROWING_UP
-#undef 	HAVE_WEAK_IO_SYMBOLS
-#undef 	HAVE_WEAK_MALLOC_SYMBOLS
-#undef  HAVE_BSD_FLOCK
-
-#define NEED_TIME_R
-
-#define HAVE_DLL
-#define USE_DLFCN
-
-#define _PR_POLL_AVAILABLE
-#define _PR_USE_POLL
-#define _PR_STAT_HAS_ONLY_ST_ATIME
-#define _PR_NO_LARGE_FILES
-#define _PR_STRICT_ADDR_LEN
-#define _PR_NEED_SECRET_AF
-
-/* IPv6 support */
-#ifdef _SOCKADDR_LEN
-#define _PR_HAVE_SOCKADDR_LEN
-#endif
-#define _PR_HAVE_GETIPNODEBYNAME
-#define _PR_HAVE_GETIPNODEBYADDR
-#define _PR_HAVE_GETADDRINFO
-#define _PR_INET6_PROBE
-#ifdef _PR_INET6
-#define _PR_HAVE_INET_NTOP
-#else
-#define AF_INET6 26
-#ifndef AI_CANONNAME
-#define AI_CANONNAME 0x00000002
-struct addrinfo {
-    int ai_flags;
-    int ai_family;
-    int ai_socktype;
-    int ai_protocol;
-    size_t ai_addrlen;
-    char *ai_canonname;
-    struct sockaddr *ai_addr;
-    struct addrinfo *ai_next;
-};
-#endif
-#define AI_V4MAPPED 0x00000010
-#define AI_ALL      0x00000008
-#define AI_ADDRCONFIG 0x00000020
-#endif
-
-#define _PR_HAVE_MD_SOCKADDR_IN6
-/* if we have a quadword field defined in the structure, then its length */
-/* will be a multiple of 8, and connect() won't accept 32 (it wants 28) */
-struct _md_in6_addr {
-    union {
-        PRUint8  _S6_u8[16];
-        PRUint16 _S6_u16[8];
-        PRUint32 _S6_u32[4];
-    } _S6_un;
-};
-struct _md_sockaddr_in6 {
-    PRUint16 sin6_family;
-    PRUint16 sin6_port;
-    PRUint32 sin6_flowinfo;
-    struct _md_in6_addr sin6_addr;
-    PRUint32 sin6_scope_id;
-};
-
-#undef  USE_SETJMP
-
-#include <setjmp.h>
-
-/*
- * A jmp_buf is actually a struct sigcontext.  The sc_sp field of
- * struct sigcontext is the stack pointer.
- */
-#define _MD_GET_SP(_t) (((struct sigcontext *) (_t)->md.context)->sc_sp)
-#define PR_NUM_GCREGS _JBLEN
-#define CONTEXT(_th) ((_th)->md.context)
-
-/*
-** I am ifdef'ing these out because that's the way they are in FT.
-*/
-#ifndef __VMS
-
-/*
-** Initialize a thread context to run "_main()" when started
-*/
-#define _MD_INIT_CONTEXT(_thread, _sp, _main, status)	      \
-{									  \
-        *status = PR_TRUE;              \
-    if (setjmp(CONTEXT(_thread))) {				\
-	(*_main)();						\
-    }								\
-    _MD_GET_SP(_thread) = (long) ((_sp) - 64);			\
-    _MD_GET_SP(_thread) &= ~15;					\
-}
-
-#define _MD_SWITCH_CONTEXT(_thread)  \
-    if (!setjmp(CONTEXT(_thread))) { \
-	(_thread)->md.errcode = errno;  \
-	_PR_Schedule();		     \
-    }
-
-/*
-** Restore a thread context, saved by _MD_SWITCH_CONTEXT
-*/
-#define _MD_RESTORE_CONTEXT(_thread) \
-{				     \
-    errno = (_thread)->md.errcode;     \
-    _MD_SET_CURRENT_THREAD(_thread);	\
-    longjmp(CONTEXT(_thread), 1);    \
-}
-
-#endif /* __VMS */
-
-/* Machine-dependent (MD) data structures */
-
-struct _MDThread {
-    jmp_buf context;
-    int id;
-    int errcode;
-};
-
-struct _MDThreadStack {
-    PRInt8 notused;
-};
-
-struct _MDLock {
-    PRInt8 notused;
-};
-
-struct _MDSemaphore {
-    PRInt8 notused;
-};
-
-struct _MDCVar {
-    PRInt8 notused;
-};
-
-struct _MDSegment {
-    PRInt8 notused;
-};
-
-/*
- * md-specific cpu structure field
- */
-#define _PR_MD_MAX_OSFD FD_SETSIZE
-
-struct _MDCPU_Unix {
-    PRCList ioQ;
-    PRUint32 ioq_timeout;
-    PRInt32 ioq_max_osfd;
-    PRInt32 ioq_osfd_cnt;
-#ifndef _PR_USE_POLL
-    fd_set fd_read_set, fd_write_set, fd_exception_set;
-    PRInt16 fd_read_cnt[_PR_MD_MAX_OSFD],fd_write_cnt[_PR_MD_MAX_OSFD],
-                              fd_exception_cnt[_PR_MD_MAX_OSFD];
-#else
-      struct pollfd *ioq_pollfds;
-      int ioq_pollfds_size;
-#endif        /* _PR_USE_POLL */
-};
-
-#define _PR_IOQ(_cpu)                 ((_cpu)->md.md_unix.ioQ)
-#define _PR_ADD_TO_IOQ(_pq, _cpu) PR_APPEND_LINK(&_pq.links, &_PR_IOQ(_cpu))
-#define _PR_FD_READ_SET(_cpu)         ((_cpu)->md.md_unix.fd_read_set)
-#define _PR_FD_READ_CNT(_cpu)         ((_cpu)->md.md_unix.fd_read_cnt)
-#define _PR_FD_WRITE_SET(_cpu)                ((_cpu)->md.md_unix.fd_write_set)
-#define _PR_FD_WRITE_CNT(_cpu)                ((_cpu)->md.md_unix.fd_write_cnt)
-#define _PR_FD_EXCEPTION_SET(_cpu)    ((_cpu)->md.md_unix.fd_exception_set)
-#define _PR_FD_EXCEPTION_CNT(_cpu)    ((_cpu)->md.md_unix.fd_exception_cnt)
-#define _PR_IOQ_TIMEOUT(_cpu)         ((_cpu)->md.md_unix.ioq_timeout)
-#define _PR_IOQ_MAX_OSFD(_cpu)                ((_cpu)->md.md_unix.ioq_max_osfd)
-#define _PR_IOQ_OSFD_CNT(_cpu)                ((_cpu)->md.md_unix.ioq_osfd_cnt)
-#define _PR_IOQ_POLLFDS(_cpu)         ((_cpu)->md.md_unix.ioq_pollfds)
-#define _PR_IOQ_POLLFDS_SIZE(_cpu)    ((_cpu)->md.md_unix.ioq_pollfds_size)
-
-#define _PR_IOQ_MIN_POLLFDS_SIZE(_cpu)        32
-
-struct _MDCPU {
-	struct _MDCPU_Unix md_unix;
-};
-
-#ifndef _PR_PTHREADS
-#define _MD_INIT_LOCKS()
-#endif
-#define _MD_NEW_LOCK(lock) PR_SUCCESS
-#define _MD_FREE_LOCK(lock)
-#define _MD_LOCK(lock)
-#define _MD_UNLOCK(lock)
-#define _MD_INIT_IO()
-#define _MD_IOQ_LOCK()
-#define _MD_IOQ_UNLOCK()
-
-/*
- * The following are copied from _sunos.h, _aix.h.  This means
- * some of them should probably be moved into _unixos.h.  But
- * _irix.h seems to be quite different in regard to these macros.
- */
-#define _MD_GET_INTERVAL                  _PR_UNIX_GetInterval
-extern PRIntervalTime _PR_UNIX_GetInterval(void);
-#define _MD_INTERVAL_PER_SEC              _PR_UNIX_TicksPerSecond
-extern PRIntervalTime _PR_UNIX_TicksPerSecond(void);
-
-#define _MD_EARLY_INIT		_MD_EarlyInit
-void _MD_EarlyInit(void);
-#define _MD_FINAL_INIT		_PR_UnixInit
-#define _MD_INIT_RUNNING_CPU(cpu) _MD_unix_init_running_cpu(cpu)
-#define _MD_INIT_THREAD         _MD_InitializeThread
-#ifdef _VMS_NOT_YET
-NSPR_API(void) _PR_InitThreads(
-  PRThreadType type, PRThreadPriority priority, PRUintn maxPTDs);
-#endif
-#define _MD_EXIT_THREAD(thread)
-#define	_MD_SUSPEND_THREAD(thread)
-#define	_MD_RESUME_THREAD(thread)
-#define _MD_CLEAN_THREAD(_thread)
-
-/* The following defines unwrapped versions of select() and poll(). */
-extern int __select (int, fd_set *, fd_set *, fd_set *, struct timeval *);
-#define _MD_SELECT              __select
-
-#ifndef __VMS
-#define _MD_POLL __poll
-extern int __poll(struct pollfd filedes[], unsigned int nfds, int timeout);
-#endif
-
-#ifdef __VMS
-NSPR_API(void) _PR_InitCPUs(void);
-NSPR_API(void) _PR_MD_START_INTERRUPTS(void);
-#endif
-
-/*
- * Atomic operations
- */
-#include <machine/builtins.h>
-#define _PR_HAVE_ATOMIC_OPS
-#define _MD_INIT_ATOMIC()
-#define _MD_ATOMIC_ADD(ptr,val) (__ATOMIC_ADD_LONG(ptr,val) + val)
-#define _MD_ATOMIC_INCREMENT(val) (__ATOMIC_INCREMENT_LONG(val) + 1)
-#define _MD_ATOMIC_DECREMENT(val) (__ATOMIC_DECREMENT_LONG(val) - 1)
-#define _MD_ATOMIC_SET(val, newval) __ATOMIC_EXCH_LONG(val, newval)
-
-extern int thread_suspend(PRThread *thr_id);
-extern int thread_resume(PRThread *thr_id);
-
-#endif /* nspr_openvms_defs_h___ */
--- a/pr/include/md/_pth.h
+++ b/pr/include/md/_pth.h
@@ -141,17 +141,17 @@
 	memset(&(t), 0, sizeof(pthread_t))
 #define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t) \
 	(!memcmp(&(t), &pt_zero_tid, sizeof(pthread_t)))
 #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt)   (dt) = (st)
 #elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(SOLARIS) \
 	|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
 	|| defined(HPUX) || defined(FREEBSD) \
 	|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
-	|| defined(VMS) || defined(NTO) || defined(DARWIN) \
+	|| defined(NTO) || defined(DARWIN) \
 	|| defined(UNIXWARE) || defined(RISCOS)	|| defined(SYMBIAN)
 #ifdef __GNU__
 /* Hurd pthreads don't have an invalid value for pthread_t. -- rmh */
 #error Using Hurd pthreads
 #endif
 #define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t)  (t) = 0
 #define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t)  (t) == 0
 #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt)   (dt) = (st)
@@ -198,22 +198,22 @@
 #endif
 
 /*
  * These platforms don't have sigtimedwait()
  */
 #if (defined(AIX) && !defined(AIX4_3_PLUS)) \
 	|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
 	|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
-	|| defined(BSDI) || defined(VMS) || defined(UNIXWARE) \
+	|| defined(BSDI) || defined(UNIXWARE) \
 	|| defined(DARWIN) || defined(SYMBIAN)
 #define PT_NO_SIGTIMEDWAIT
 #endif
 
-#if defined(OSF1) || defined(VMS)
+#if defined(OSF1)
 #define PT_PRIO_MIN            PRI_OTHER_MIN
 #define PT_PRIO_MAX            PRI_OTHER_MAX
 #elif defined(IRIX)
 #include <sys/sched.h>
 #define PT_PRIO_MIN            PX_PRIO_MIN
 #define PT_PRIO_MAX            PX_PRIO_MAX
 #elif defined(AIX)
 #include <sys/priv.h>
@@ -269,17 +269,17 @@
 
 /*
  * The _PT_PTHREAD_YIELD function is called from a signal handler.
  * Needed for garbage collection -- Look at PR_Suspend/PR_Resume
  * implementation.
  */
 #if defined(_PR_DCETHREADS)
 #define _PT_PTHREAD_YIELD()            	pthread_yield()
-#elif defined(OSF1) || defined(VMS)
+#elif defined(OSF1)
 /*
  * sched_yield can't be called from a signal handler.  Must use
  * the _np version.
  */
 #define _PT_PTHREAD_YIELD()            	pthread_yield_np()
 #elif defined(AIX)
 extern int (*_PT_aix_yield_fcn)();
 #define _PT_PTHREAD_YIELD()			(*_PT_aix_yield_fcn)()
--- a/pr/include/md/_unixos.h
+++ b/pr/include/md/_unixos.h
@@ -611,21 +611,17 @@ typedef off_t _MDOff64_t;
 typedef struct stat _MDStat64;
 typedef PRInt64 _MDOff64_t;
 #else
 #error "I don't know yet"
 #endif
 
 typedef PRIntn (*_MD_Fstat64)(PRIntn osfd, _MDStat64 *buf);
 typedef PRIntn (*_MD_Open64)(const char *path, int oflag, ...);
-#if defined(VMS)
-typedef PRIntn (*_MD_Stat64)(const char *path, _MDStat64 *buf, ...);
-#else
 typedef PRIntn (*_MD_Stat64)(const char *path, _MDStat64 *buf);
-#endif
 typedef _MDOff64_t (*_MD_Lseek64)(PRIntn osfd, _MDOff64_t, PRIntn whence);
 typedef void* (*_MD_Mmap64)(
     void *addr, PRSize len, PRIntn prot, PRIntn flags,
     PRIntn fildes, _MDOff64_t offset);
 struct _MD_IOVector
 {
     _MD_Open64 _open64;
     _MD_Mmap64 _mmap64;
--- a/pr/include/md/prosdep.h
+++ b/pr/include/md/prosdep.h
@@ -121,19 +121,16 @@ PR_BEGIN_EXTERN_C
 #include "md/_ncr.h"
 
 #elif defined(DGUX)
 #include "md/_dgux.h"
 
 #elif defined(QNX)
 #include "md/_qnx.h"
 
-#elif defined(VMS)
-#include "md/_openvms.h"
-
 #elif defined(NTO)
 #include "md/_nto.h"
 
 #elif defined(RISCOS)
 #include "md/_riscos.h"
 
 #elif defined(SYMBIAN)
 #include "md/_symbian.h"
--- a/pr/include/obsolete/protypes.h
+++ b/pr/include/obsolete/protypes.h
@@ -63,25 +63,16 @@ typedef PRIntn intn;
  * BeOS defines all the int types below in its standard header
  * file SupportDefs.h.
  */
 #ifdef XP_BEOS
 #include <support/SupportDefs.h>
 #endif
 
 /*
- * OpenVMS defines all the int types below in its standard
- * header files ints.h and types.h.
- */
-#ifdef VMS
-#include <ints.h>
-#include <types.h>
-#endif
-
-/*
  * SVR4 typedef of uint is commonly found on UNIX machines.
  *
  * On AIX 4.3, sys/inttypes.h (which is included by sys/types.h)
  * defines the types int8, int16, int32, and int64.
  */
 #ifdef XP_UNIX
 #include <sys/types.h>
 #endif
@@ -90,96 +81,91 @@ typedef PRIntn intn;
 #ifdef HPUX
 #include <model.h>
 #endif
 
 /*
  * uint
  */
 
-#if !defined(XP_BEOS) && !defined(VMS) \
-    && !defined(XP_UNIX) || defined(NTO)
+#if !defined(XP_BEOS) && !defined(XP_UNIX) || defined(NTO)
 typedef PRUintn uint;
 #endif
 
 /*
  * uint64
  */
 
-#if !defined(XP_BEOS) && !defined(VMS)
+#if !defined(XP_BEOS)
 typedef PRUint64 uint64;
 #endif
 
 /*
  * uint32
  */
 
-#if !defined(XP_BEOS) && !defined(VMS)
+#if !defined(XP_BEOS)
 #if !defined(XP_MAC) && !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
 typedef PRUint32 uint32;
 #else
 typedef unsigned long uint32;
 #endif
 #endif
 
 /*
  * uint16
  */
 
-#if !defined(XP_BEOS) && !defined(VMS)
+#if !defined(XP_BEOS)
 typedef PRUint16 uint16;
 #endif
 
 /*
  * uint8
  */
 
-#if !defined(XP_BEOS) && !defined(VMS)
+#if !defined(XP_BEOS)
 typedef PRUint8 uint8;
 #endif
 
 /*
  * int64
  */
 
-#if !defined(XP_BEOS) && !defined(VMS) \
-    && !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
+#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
 typedef PRInt64 int64;
 #endif
 
 /*
  * int32
  */
 
-#if !defined(XP_BEOS) && !defined(VMS) \
-    && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
     && !defined(HPUX)
 #if !defined(XP_MAC) && !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
 typedef PRInt32 int32;
 #else
 typedef long int32;
 #endif
 #endif
 
 /*
  * int16
  */
 
-#if !defined(XP_BEOS) && !defined(VMS) \
-    && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
     && !defined(HPUX)
 typedef PRInt16 int16;
 #endif
 
 /*
  * int8
  */
 
-#if !defined(XP_BEOS) && !defined(VMS) \
-    && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
     && !defined(HPUX)
 typedef PRInt8 int8;
 #endif
 
 typedef PRFloat64 float64;
 typedef PRUptrdiff uptrdiff_t;
 typedef PRUword uprword_t;
 typedef PRWord prword_t;
--- a/pr/src/io/prmapopt.c
+++ b/pr/src/io/prmapopt.c
@@ -363,38 +363,16 @@ PRStatus PR_CALLBACK _PR_SocketSetSocket
  **
  ** Make sure that the following is at the end of this file,
  ** because we will be playing with macro redefines.
  **
  *********************************************************************
  *********************************************************************
  */
 
-#if defined(VMS)
-/*
-** Sad but true. The DEC C header files define the following socket options
-** differently to what UCX is expecting. The values that UCX expects are
-** defined in SYS$LIBRARY:UCX$INETDEF.H. We redefine them here to the values
-** that UCX expects. Note that UCX V4.x will only accept these values while
-** UCX V5.x will accept either. So in theory this hack can be removed once
-** UCX V5 is the minimum.
-*/
-#undef IP_MULTICAST_IF
-#undef IP_MULTICAST_TTL
-#undef IP_MULTICAST_LOOP
-#undef IP_ADD_MEMBERSHIP
-#undef IP_DROP_MEMBERSHIP
-#include <ucx$inetdef.h>
-#define IP_MULTICAST_IF    UCX$C_IP_MULTICAST_IF
-#define IP_MULTICAST_TTL   UCX$C_IP_MULTICAST_TTL
-#define IP_MULTICAST_LOOP  UCX$C_IP_MULTICAST_LOOP
-#define IP_ADD_MEMBERSHIP  UCX$C_IP_ADD_MEMBERSHIP
-#define IP_DROP_MEMBERSHIP UCX$C_IP_DROP_MEMBERSHIP
-#endif
-
 /*
  * Not every platform has all the socket options we want to
  * support.  Some older operating systems such as SunOS 4.1.3
  * don't have the IP multicast socket options.  Win32 doesn't
  * have TCP_MAXSEG.
  *
  * To deal with this problem, we define the missing socket
  * options as _PR_NO_SUCH_SOCKOPT.  _PR_MapOptionName() fails with
--- a/pr/src/io/prpolevt.c
+++ b/pr/src/io/prpolevt.c
@@ -53,95 +53,16 @@
  */
 
 #include "prinit.h"
 #include "prio.h"
 #include "prmem.h"
 #include "prerror.h"
 #include "prlog.h"
 
-#ifdef VMS
-
-/*
- * On OpenVMS we use an event flag instead of a pipe or a socket since
- * event flags are much more efficient on OpenVMS.
- */
-#include "pprio.h"
-#include <lib$routines.h>
-#include <starlet.h>
-#include <stsdef.h>
-
-PR_IMPLEMENT(PRFileDesc *) PR_NewPollableEvent(void)
-{
-    unsigned int status;
-    int flag = -1;
-    PRFileDesc *event;
-
-    /*
-    ** Allocate an event flag and clear it.
-    */
-    status = lib$get_ef(&flag);
-    if ((!$VMS_STATUS_SUCCESS(status)) || (flag == -1)) {
-        PR_SetError(PR_INSUFFICIENT_RESOURCES_ERROR, status);
-        return NULL;
-    }
-    sys$clref(flag);
-
-    /*
-    ** Give NSPR the event flag's negative value. We do this because our
-    ** select interprets a negative fd as an event flag rather than a
-    ** regular file fd.
-    */
-    event = PR_CreateSocketPollFd(-flag);
-    if (NULL == event) {
-        lib$free_ef(&flag);
-        return NULL;
-    }
-
-    return event;
-}
-
-PR_IMPLEMENT(PRStatus) PR_DestroyPollableEvent(PRFileDesc *event)
-{
-    int flag = -PR_FileDesc2NativeHandle(event);
-    PR_DestroySocketPollFd(event);
-    lib$free_ef(&flag);
-    return PR_SUCCESS;
-}
-
-PR_IMPLEMENT(PRStatus) PR_SetPollableEvent(PRFileDesc *event)
-{
-    /*
-    ** Just set the event flag.
-    */
-    unsigned int status;
-    status = sys$setef(-PR_FileDesc2NativeHandle(event));
-    if (!$VMS_STATUS_SUCCESS(status)) {
-        PR_SetError(PR_INVALID_ARGUMENT_ERROR, status);
-        return PR_FAILURE;
-    }
-    return PR_SUCCESS;
-}
-
-PR_IMPLEMENT(PRStatus) PR_WaitForPollableEvent(PRFileDesc *event)
-{
-    /*
-    ** Just clear the event flag.
-    */
-    unsigned int status;
-    status = sys$clref(-PR_FileDesc2NativeHandle(event));
-    if (!$VMS_STATUS_SUCCESS(status)) {
-        PR_SetError(PR_INVALID_ARGUMENT_ERROR, status);
-        return PR_FAILURE;
-    }
-    return PR_SUCCESS;
-}
-
-#else /* VMS */
-
 /*
  * These internal functions are declared in primpl.h,
  * but we can't include primpl.h because the definition
  * of struct PRFilePrivate in this file (for the pollable
  * event layer) will conflict with the definition of
  * struct PRFilePrivate in primpl.h (for the NSPR layer).
  */
 extern PRIntn _PR_InvalidInt(void);
@@ -334,10 +255,8 @@ PR_IMPLEMENT(PRStatus) PR_WaitForPollabl
      */
     for (i = 0; i < nBytes; i++) {
         PR_ASSERT(buf[i] == magicChar);
     }
 #endif
 
     return PR_SUCCESS;
 }
-
-#endif /* VMS */
--- a/pr/src/linking/prlink.c
+++ b/pr/src/linking/prlink.c
@@ -83,80 +83,16 @@
 #include <dl.h>
 #elif defined(USE_MACH_DYLD)
 #include <mach-o/dyld.h>
 #endif
 #endif /* XP_UNIX */
 
 #define _PR_DEFAULT_LD_FLAGS PR_LD_LAZY
 
-#ifdef VMS
-/* These are all require for the PR_GetLibraryFilePathname implementation */
-#include <descrip.h>
-#include <dvidef.h>
-#include <fibdef.h>
-#include <iodef.h>
-#include <lib$routines.h>
-#include <ssdef.h>
-#include <starlet.h>
-#include <stsdef.h>
-#include <unixlib.h>
-
-#pragma __nostandard 
-#pragma __member_alignment __save
-#pragma __nomember_alignment
-#ifdef __INITIAL_POINTER_SIZE
-#pragma __required_pointer_size __save 
-#pragma __required_pointer_size __short
-#endif
- 
-typedef struct _imcb {
-    struct _imcb *imcb$l_flink;         
-    struct _imcb *imcb$l_blink;         
-    unsigned short int imcb$w_size;     
-    unsigned char imcb$b_type;          
-    char imcb$b_resv_1;                 
-    unsigned char imcb$b_access_mode;   
-    unsigned char imcb$b_act_code;      
-    unsigned short int imcb$w_chan;     
-    unsigned int imcb$l_flags;		
-    char imcb$t_image_name [40];        
-    unsigned int imcb$l_symvec_size; 
-    unsigned __int64 imcb$q_ident;
-    void *imcb$l_starting_address;
-    void *imcb$l_end_address;
-} IMCB;
- 
-#pragma __member_alignment __restore
-#ifdef __INITIAL_POINTER_SIZE 
-#pragma __required_pointer_size __restore
-#endif
-#pragma __standard
- 
-typedef struct {
-    short   buflen;
-    short   itmcode;
-    void    *buffer;
-    void    *retlen;
-} ITMLST;
-
-typedef struct {
-    short cond;
-    short count;
-    int   rest;
-} IOSB;
-
-typedef unsigned long int ulong_t;
-
-struct _imcb *IAC$GL_IMAGE_LIST = NULL;
-
-#define MAX_DEVNAM 64
-#define MAX_FILNAM 255
-#endif  /* VMS */
-
 /*
  * On these platforms, symbols have a leading '_'.
  */
 #if defined(SUNOS4) || (defined(DARWIN) && defined(USE_MACH_DYLD)) \
     || defined(NEXTSTEP) || defined(XP_OS2) \
     || ((defined(OPENBSD) || defined(NETBSD)) && !defined(__ELF__))
 #define NEED_LEADING_UNDERSCORE
 #endif
@@ -1582,106 +1518,16 @@ PR_GetLibraryFilePathname(const char *na
                     strcpy(result, info.lmi_name);
                 }
                 return result;
             }
         }
     }
     PR_SetError(PR_LIBRARY_NOT_LOADED_ERROR, 0);
     return NULL;
-#elif defined(VMS)
-    /* Contributed by Colin Blake of HP */
-    struct _imcb	*icb;
-    ulong_t 		status;
-    char                device_name[MAX_DEVNAM];
-    int                 device_name_len;
-    $DESCRIPTOR         (device_name_desc, device_name);
-    struct fibdef	fib;
-    struct dsc$descriptor_s fib_desc = 
-	{ sizeof(struct fibdef), DSC$K_DTYPE_Z, DSC$K_CLASS_S, (char *)&fib } ;
-    IOSB		iosb;
-    ITMLST		devlst[2] = {
-            		{MAX_DEVNAM, DVI$_ALLDEVNAM, device_name, &device_name_len},
-            		{0,0,0,0}};
-    short               file_name_len;
-    char                file_name[MAX_FILNAM+1];
-    char		*result = NULL;
-    struct dsc$descriptor_s file_name_desc = 
-	{ MAX_FILNAM, DSC$K_DTYPE_T, DSC$K_CLASS_S, (char *) &file_name[0] } ;
-
-    /*
-    ** The address for the process image list could change in future versions
-    ** of the operating system. 7FFD0688 is valid for V7.2 and V7.3 releases,
-    ** so we use that for the default, but allow an environment variable
-    ** (logical name) to override.
-    */
-    if (IAC$GL_IMAGE_LIST == NULL) {
-        char *p = getenv("MOZILLA_IAC_GL_IMAGE_LIST");
-        if (p)
-            IAC$GL_IMAGE_LIST = (struct _imcb *) strtol(p,NULL,0);
-        else
-            IAC$GL_IMAGE_LIST = (struct _imcb *) 0x7FFD0688;
-    }
-
-    for (icb = IAC$GL_IMAGE_LIST->imcb$l_flink;
-         icb != IAC$GL_IMAGE_LIST;
-         icb = icb->imcb$l_flink) {
-        if (((void *)addr >= icb->imcb$l_starting_address) && 
-	    ((void *)addr <= icb->imcb$l_end_address)) {
-	    /*
-	    ** This is the correct image.
-	    ** Get the device name.
-	    */
-	    status = sys$getdviw(0,icb->imcb$w_chan,0,&devlst,0,0,0,0);
-	    if ($VMS_STATUS_SUCCESS(status))
-		device_name_desc.dsc$w_length = device_name_len;
-
-	    /*
-	    ** Get the FID.
-	    */
-	    memset(&fib,0,sizeof(struct fibdef));
-	    status = sys$qiow(0,icb->imcb$w_chan,IO$_ACCESS,&iosb,
-                		0,0,&fib_desc,0,0,0,0,0);
-
-	    /*
-	    ** If we got the FID, now look up its name (if for some reason
-	    ** we didn't get the device name, this call will fail).
-	    */
-	    if (($VMS_STATUS_SUCCESS(status)) && ($VMS_STATUS_SUCCESS(iosb.cond))) {
-		status = lib$fid_to_name (
-                    &device_name_desc,
-                    &fib.fib$w_fid,
-                    &file_name_desc,
-                    &file_name_len,
-                    0, 0);
-
-		/*
-		** If we succeeded then remove the version number and
-		** return a copy of the UNIX format version of the file name.
-		*/
-		if ($VMS_STATUS_SUCCESS(status)) {
-		    char *p, *result;
-		    file_name[file_name_len] = 0;
-		    p = strrchr(file_name,';');
-		    if (p) *p = 0;
-		    p = decc$translate_vms(&file_name[0]);
-		    result = PR_Malloc(strlen(p)+1);
-		    if (result != NULL) {
-			strcpy(result, p);
-		    }
-		    return result;
-		}
-            }
-	}
-    }
-
-    /* Didn't find it */
-    PR_SetError(PR_LIBRARY_NOT_LOADED_ERROR, 0);
-    return NULL;
-
 #elif defined(HPUX) && defined(USE_HPSHL)
     int index;
     struct shl_descriptor desc;
     char *result;
 
     for (index = 0; shl_get_r(index, &desc) == 0; index++) {
         if (strstr(desc.filename, name) != NULL) {
             result = PR_Malloc(strlen(desc.filename)+1);
deleted file mode 100644
--- a/pr/src/md/unix/openvms.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is the Netscape Portable Runtime (NSPR).
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998-2000
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "primpl.h"
-
-void _MD_EarlyInit(void)
-{
-}
-
-PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
-{
-#ifndef _PR_PTHREADS
-    if (isCurrent) {
-	(void) setjmp(CONTEXT(t));
-    }
-    *np = sizeof(CONTEXT(t)) / sizeof(PRWord);
-    return (PRWord *) CONTEXT(t);
-#else
-	*np = 0;
-	return NULL;
-#endif
-}
-
-#ifndef _PR_PTHREADS
-void
-_MD_SET_PRIORITY(_MDThread *thread, PRUintn newPri)
-{
-    return;
-}
-
-PRStatus
-_MD_InitializeThread(PRThread *thread)
-{
-	return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAIT(PRThread *thread, PRIntervalTime ticks)
-{
-    PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
-    _PR_MD_SWITCH_CONTEXT(thread);
-    return PR_SUCCESS;
-}
-
-PRStatus
-_MD_WAKEUP_WAITER(PRThread *thread)
-{
-    if (thread) {
-	PR_ASSERT(!(thread->flags & _PR_GLOBAL_SCOPE));
-    }
-    return PR_SUCCESS;
-}
-
-/* These functions should not be called for OSF1 */
-void
-_MD_YIELD(void)
-{
-    PR_NOT_REACHED("_MD_YIELD should not be called for OSF1.");
-}
-
-PRStatus
-_MD_CREATE_THREAD(
-    PRThread *thread,
-    void (*start) (void *),
-    PRThreadPriority priority,
-    PRThreadScope scope,
-    PRThreadState state,
-    PRUint32 stackSize)
-{
-    PR_NOT_REACHED("_MD_CREATE_THREAD should not be called for OSF1.");
-	return PR_FAILURE;
-}
-#endif /* ! _PR_PTHREADS */
-
-#ifdef _PR_HAVE_ATOMIC_CAS
-
-#include <c_asm.h>
-
-#define _PR_OSF_ATOMIC_LOCK 1
-
-void 
-PR_StackPush(PRStack *stack, PRStackElem *stack_elem)
-{
-long locked;
-
-	do {
-		while ((long) stack->prstk_head.prstk_elem_next ==
-							_PR_OSF_ATOMIC_LOCK)
-			;
-		locked = __ATOMIC_EXCH_QUAD(&stack->prstk_head.prstk_elem_next,
-								_PR_OSF_ATOMIC_LOCK);	
-
-	} while (locked == _PR_OSF_ATOMIC_LOCK);
-	stack_elem->prstk_elem_next = (PRStackElem *) locked;
-	/*
-	 * memory-barrier instruction
-	 */
-	asm("mb");
-	stack->prstk_head.prstk_elem_next = stack_elem;
-}
-
-PRStackElem * 
-PR_StackPop(PRStack *stack)
-{
-PRStackElem *element;
-long locked;
-
-	do {
-		while ((long)stack->prstk_head.prstk_elem_next == _PR_OSF_ATOMIC_LOCK)
-			;
-		locked = __ATOMIC_EXCH_QUAD(&stack->prstk_head.prstk_elem_next,
-								_PR_OSF_ATOMIC_LOCK);	
-
-	} while (locked == _PR_OSF_ATOMIC_LOCK);
-
-	element = (PRStackElem *) locked;
-
-	if (element == NULL) {
-		stack->prstk_head.prstk_elem_next = NULL;
-	} else {
-		stack->prstk_head.prstk_elem_next =
-			element->prstk_elem_next;
-	}
-	/*
-	 * memory-barrier instruction
-	 */
-	asm("mb");
-	return element;
-}
-#endif /* _PR_HAVE_ATOMIC_CAS */
-
-
-/*
-** thread_suspend and thread_resume are used by the gc code
-** in nsprpub/pr/src/pthreads/ptthread.c
-**
-** These routines are never called for the current thread, and
-** there is no check for that - so beware!
-*/
-int thread_suspend(PRThread *thr_id) {
-
-    extern int pthread_suspend_np (
-			pthread_t                       thread,
-			__pthreadLongUint_t             *regs,
-			void                            *spare);
-
-    __pthreadLongUint_t regs[34];
-    int res;
-
-    /*
-    ** A return res < 0 indicates that the thread was suspended
-    ** but register information could not be obtained
-    */
-
-    res = pthread_suspend_np(thr_id->id,&regs[0],0);
-    if (res==0)
-	thr_id->sp = (void *) regs[30]; 
-
-    thr_id->suspend |= PT_THREAD_SUSPENDED;
-
-    /* Always succeeds */
-    return 0;
-}
-
-int thread_resume(PRThread *thr_id) {
-    extern int pthread_resume_np(pthread_t thread);
-    int res;
-
-    res = pthread_resume_np (thr_id->id);
-	
-    thr_id->suspend |= PT_THREAD_RESUMED;
-
-    return 0;
-}
-
-/*
-** Stubs for nspr_symvec.opt
-**
-** PR_ResumeSet, PR_ResumeTest, and PR_SuspendAllSuspended
-** (defined in ptthread.c) used to be exported by mistake
-** (because they look like public functions).  They have been
-** converted into static functions.
-**
-** There is an existing third-party binary that uses NSPR: the
-** Java plugin for Mozilla.  Because it is part of the Java
-** SDK, we have no control over its releases.  So we need these
-** stub functions to occupy the slots that used to be occupied
-** by PR_ResumeSet, PR_ResumeTest, and PR_SuspendAllSuspended
-** in the symbol vector so that LIBNSPR4 is backward compatible.
-**
-** The Java plugin was also using PR_CreateThread which we didn't
-** realise and hadn't "nailed down". So we now need to nail it down
-** to its Mozilla 1.1 position and have to insert 51 additional stubs
-** in order to achive this (stubs 4-54).
-**
-** Over time some of these stubs will get reused by new symbols.
-**   - Stub54 is replaced by LL_MaxUint
-*/
-
-void PR_VMS_Stub1(void) { }
-void PR_VMS_Stub2(void) { }
-void PR_VMS_Stub3(void) { }
-void PR_VMS_Stub4(void) { }
-void PR_VMS_Stub5(void) { }
-void PR_VMS_Stub6(void) { }
-void PR_VMS_Stub7(void) { }
-void PR_VMS_Stub8(void) { }
-void PR_VMS_Stub9(void) { }
-void PR_VMS_Stub10(void) { }
-void PR_VMS_Stub11(void) { }
-void PR_VMS_Stub12(void) { }
-void PR_VMS_Stub13(void) { }
-void PR_VMS_Stub14(void) { }
-void PR_VMS_Stub15(void) { }
-void PR_VMS_Stub16(void) { }
-void PR_VMS_Stub17(void) { }
-void PR_VMS_Stub18(void) { }
-void PR_VMS_Stub19(void) { }
-void PR_VMS_Stub20(void) { }
-void PR_VMS_Stub21(void) { }
-void PR_VMS_Stub22(void) { }
-void PR_VMS_Stub23(void) { }
-void PR_VMS_Stub24(void) { }
-void PR_VMS_Stub25(void) { }
-void PR_VMS_Stub26(void) { }
-void PR_VMS_Stub27(void) { }
-void PR_VMS_Stub28(void) { }
-void PR_VMS_Stub29(void) { }
-void PR_VMS_Stub30(void) { }
-void PR_VMS_Stub31(void) { }
-void PR_VMS_Stub32(void) { }
-void PR_VMS_Stub33(void) { }
-void PR_VMS_Stub34(void) { }
-void PR_VMS_Stub35(void) { }
-void PR_VMS_Stub36(void) { }
-void PR_VMS_Stub37(void) { }
-void PR_VMS_Stub38(void) { }
-void PR_VMS_Stub39(void) { }
-void PR_VMS_Stub40(void) { }
-void PR_VMS_Stub41(void) { }
-void PR_VMS_Stub42(void) { }
-void PR_VMS_Stub43(void) { }
-void PR_VMS_Stub44(void) { }
-void PR_VMS_Stub45(void) { }
-void PR_VMS_Stub46(void) { }
-void PR_VMS_Stub47(void) { }
-void PR_VMS_Stub48(void) { }
-void PR_VMS_Stub49(void) { }
-void PR_VMS_Stub50(void) { }
-void PR_VMS_Stub51(void) { }
-void PR_VMS_Stub52(void) { }
-void PR_VMS_Stub53(void) { }
--- a/pr/src/md/unix/unix.c
+++ b/pr/src/md/unix/unix.c
@@ -73,17 +73,17 @@
 #elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \
     || defined(AIX4_1) || defined(LINUX) || defined(SONY) \
     || defined(BSDI) || defined(SCO) || defined(NEC) || defined(SNI) \
     || defined(SUNOS4) || defined(NCR) || defined(DARWIN) \
     || defined(NEXTSTEP) || defined(QNX)
 #define _PRSockLen_t int
 #elif (defined(AIX) && !defined(AIX4_1)) || defined(FREEBSD) \
     || defined(NETBSD) || defined(OPENBSD) || defined(UNIXWARE) \
-    || defined(DGUX) || defined(VMS) || defined(NTO) || defined(RISCOS)
+    || defined(DGUX) || defined(NTO) || defined(RISCOS)
 #define _PRSockLen_t size_t
 #else
 #error "Cannot determine architecture"
 #endif
 
 /*
 ** Global lock variable used to bracket calls into rusty libraries that
 ** aren't thread safe (like libc, libX, etc).
--- a/pr/src/md/unix/uxproces.c
+++ b/pr/src/md/unix/uxproces.c
@@ -55,20 +55,16 @@ PR_IMPORT_DATA(char **) environ;
 
 /*
  * HP-UX 9 doesn't have the SA_RESTART flag.
  */
 #ifndef SA_RESTART
 #define SA_RESTART 0
 #endif
 
-#if defined(VMS)
-static PRLock *_pr_vms_fork_lock = NULL;
-#endif
-
 /*
  **********************************************************************
  *
  * The Unix process routines
  *
  **********************************************************************
  */
 
@@ -171,19 +167,16 @@ ForkAndExec(
     char *const *envp,
     const PRProcessAttr *attr)
 {
     PRProcess *process;
     int nEnv, idx;
     char *const *childEnvp;
     char **newEnvp = NULL;
     int flags;
-#ifdef VMS
-    char VMScurdir[FILENAME_MAX+1] = { '\0' } ;
-#endif	
 
     process = PR_NEW(PRProcess);
     if (!process) {
         PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0);
         return NULL;
     }
 
     childEnvp = envp;
@@ -214,76 +207,16 @@ ForkAndExec(
         }
         if (!found) {
             newEnvp[idx++] = attr->fdInheritBuffer;
         }
         newEnvp[idx] = NULL;
         childEnvp = newEnvp;
     }
 
-#ifdef VMS
-/*
-** Since vfork/exec is implemented VERY differently on OpenVMS, we have to
-** handle the setting up of the standard streams very differently. And since
-** none of this code can ever execute in the context of the child, we have
-** to perform the chdir in the parent so the child is born into the correct
-** directory (and then switch the parent back again).
-*/
-{
-    int decc$set_child_standard_streams(int,int,int);
-    int n, fd_stdin=0, fd_stdout=1, fd_stderr=2;
-
-    /* Set up any standard streams we are given, assuming defaults */
-    if (attr) {
-       if (attr->stdinFd)
-           fd_stdin = attr->stdinFd->secret->md.osfd;
-       if (attr->stdoutFd)
-           fd_stdout = attr->stdoutFd->secret->md.osfd;
-       if (attr->stderrFd)
-           fd_stderr = attr->stderrFd->secret->md.osfd;
-    }
-
-    /*
-    ** Put a lock around anything that isn't going to be thread-safe.
-    */
-    PR_Lock(_pr_vms_fork_lock);
-
-    /*
-    ** Prepare the child's streams. We always do this in case a previous fork
-    ** has left the stream assignments in some non-standard way.
-    */
-    n = decc$set_child_standard_streams(fd_stdin,fd_stdout,fd_stderr);
-    if (n == -1) {
-       PR_SetError(PR_BAD_DESCRIPTOR_ERROR, errno);
-       PR_DELETE(process);
-       if (newEnvp) {
-           PR_DELETE(newEnvp);
-       }
-       PR_Unlock(_pr_vms_fork_lock);
-       return NULL;
-    }
-
-    /* Switch directory if we have to */
-    if (attr) {
-       if (attr->currentDirectory) {
-           if ( (getcwd(VMScurdir,sizeof(VMScurdir)) == NULL) ||
-                (chdir(attr->currentDirectory) < 0) ) {
-               PR_SetError(PR_DIRECTORY_OPEN_ERROR, errno);
-               PR_DELETE(process);
-               if (newEnvp) {
-                   PR_DELETE(newEnvp);
-               }
-               PR_Unlock(_pr_vms_fork_lock);
-               return NULL;
-           }
-       }
-    }
-}
-#endif /* VMS */
-
 #ifdef AIX
     process->md.pid = (*pr_wp.forkptr)();
 #elif defined(NTO) || defined(SYMBIAN)
     /*
      * fork() & exec() does not work in a multithreaded process.
      * Use spawn() instead.
      */
     {
@@ -340,19 +273,16 @@ ForkAndExec(
         /*
          * If the child process needs to exit, it must call _exit().
          * Do not call exit(), because exit() will flush and close
          * the standard I/O file descriptors, and hence corrupt
          * the parent process's standard I/O data structures.
          */
 
 #if !defined(NTO) && !defined(SYMBIAN)
-#ifdef VMS
-       /* OpenVMS has already handled all this above */
-#else
         if (attr) {
             /* the osfd's to redirect stdin, stdout, and stderr to */
             int in_osfd = -1, out_osfd = -1, err_osfd = -1;
 
             if (attr->stdinFd
                     && attr->stdinFd->secret->md.osfd != 0) {
                 in_osfd = attr->stdinFd->secret->md.osfd;
                 if (dup2(in_osfd, 0) != 0) {
@@ -396,55 +326,31 @@ ForkAndExec(
                 close(err_osfd);
             }
             if (attr->currentDirectory) {
                 if (chdir(attr->currentDirectory) < 0) {
                     _exit(1);  /* failed */
                 }
             }
         }
-#endif /* !VMS */
 
         if (childEnvp) {
             (void)execve(path, argv, childEnvp);
         } else {
             /* Inherit the environment of the parent. */
             (void)execv(path, argv);
         }
         /* Whoops! It returned. That's a bad sign. */
-#ifdef VMS
-       /*
-       ** On OpenVMS we are still in the context of the parent, and so we
-       ** can (and should!) perform normal error handling.
-       */
-       PR_SetError(PR_UNKNOWN_ERROR, errno);
-       PR_DELETE(process);
-       if (newEnvp) {
-           PR_DELETE(newEnvp);
-       }
-       if (VMScurdir[0] != '\0')
-           chdir(VMScurdir);
-       PR_Unlock(_pr_vms_fork_lock);
-       return NULL;
-#else
         _exit(1);
-#endif /* VMS */
 #endif /* !NTO */
     }
 
     if (newEnvp) {
         PR_DELETE(newEnvp);
     }
-#ifdef VMS
-    /* If we switched directories, then remember to switch back */
-    if (VMScurdir[0] != '\0') {
-       chdir(VMScurdir); /* can't do much if it fails */
-    }
-    PR_Unlock(_pr_vms_fork_lock);
-#endif /* VMS */
 
 #if defined(_PR_NATIVE_THREADS)
     PR_Lock(pr_wp.ml);
     if (0 == pr_wp.numProcs++) {
         PR_NotifyCondVar(pr_wp.cv);
     }
     PR_Unlock(pr_wp.ml);
 #endif
@@ -842,21 +748,16 @@ static PRStatus _MD_InitProcesses(void)
         }
         dlclose(handle);
     }
 #endif /* AIX */
 
     pr_wp.ml = PR_NewLock();
     PR_ASSERT(NULL != pr_wp.ml);
 
-#if defined(VMS)
-    _pr_vms_fork_lock = PR_NewLock();
-    PR_ASSERT(NULL != _pr_vms_fork_lock);
-#endif
-
 #if defined(_PR_NATIVE_THREADS)
     pr_wp.numProcs = 0;
     pr_wp.cv = PR_NewCondVar(pr_wp.ml);
     PR_ASSERT(NULL != pr_wp.cv);
 #else
     rv = pipe(pr_wp.pipefd);
     PR_ASSERT(0 == rv);
     flags = fcntl(pr_wp.pipefd[0], F_GETFL, 0);
--- a/pr/src/md/unix/uxrng.c
+++ b/pr/src/md/unix/uxrng.c
@@ -107,34 +107,16 @@ GetHighResClock(void *buf, size_t maxbyt
 #ifdef __GNUC__
     __asm__("rpcc %0" : "=r" (t));
 #else
     t = asm("rpcc %v0");
 #endif
     return _pr_CopyLowBits(buf, maxbytes, &t, sizeof(t));
 }
 
-#elif defined(VMS)
-
-#include <ints.h>
-
-/*
- * Use the "get the cycle counter" instruction on the alpha.
- * The low 32 bits completely turn over in less than a minute.
- * The high 32 bits are some non-counter gunk that changes sometimes.
- */
-static size_t
-GetHighResClock(void *buf, size_t maxbytes)
-{
-    uint64 t;
-
-    t = __RPCC();
-    return _pr_CopyLowBits(buf, maxbytes, &t, sizeof(t));
-}
-
 #elif defined(AIX)
 
 static size_t
 GetHighResClock(void *buf, size_t maxbytes)
 {
     return 0;
 }
 
--- a/pr/src/misc/prnetdb.c
+++ b/pr/src/misc/prnetdb.c
@@ -755,25 +755,20 @@ static void * _pr_freehostent_fp;
  * Look up the addresses of getipnodebyname, getipnodebyaddr,
  * and freehostent.
  */
 PRStatus
 _pr_find_getipnodebyname(void)
 {
     PRLibrary *lib;	
     PRStatus rv;
-#if defined(VMS)
-#define GETIPNODEBYNAME getenv("GETIPNODEBYNAME")
-#define GETIPNODEBYADDR getenv("GETIPNODEBYADDR")
-#define FREEHOSTENT     getenv("FREEHOSTENT")
-#else
 #define GETIPNODEBYNAME "getipnodebyname"
 #define GETIPNODEBYADDR "getipnodebyaddr"
 #define FREEHOSTENT     "freehostent"
-#endif
+
     _pr_getipnodebyname_fp = PR_FindSymbolAndLibrary(GETIPNODEBYNAME, &lib);
     if (NULL != _pr_getipnodebyname_fp) {
         _pr_freehostent_fp = PR_FindSymbol(lib, FREEHOSTENT);
         if (NULL != _pr_freehostent_fp) {
             _pr_getipnodebyaddr_fp = PR_FindSymbol(lib, GETIPNODEBYADDR);
             if (NULL != _pr_getipnodebyaddr_fp)
                 rv = PR_SUCCESS;
             else
@@ -1888,25 +1883,19 @@ typedef int (FUNC_MODIFIER * FN_GETNAMEI
      char *host, int hostlen,
      char *serv, int servlen, int flags);
 
 /* global state */
 static FN_GETADDRINFO   _pr_getaddrinfo   = NULL;
 static FN_FREEADDRINFO  _pr_freeaddrinfo  = NULL;
 static FN_GETNAMEINFO   _pr_getnameinfo   = NULL;
 
-#if defined(VMS)
-#define GETADDRINFO_SYMBOL getenv("GETADDRINFO")
-#define FREEADDRINFO_SYMBOL getenv("FREEADDRINFO")
-#define GETNAMEINFO_SYMBOL getenv("GETNAMEINFO")
-#else
 #define GETADDRINFO_SYMBOL "getaddrinfo"
 #define FREEADDRINFO_SYMBOL "freeaddrinfo"
 #define GETNAMEINFO_SYMBOL "getnameinfo"
-#endif
 
 PRStatus
 _pr_find_getaddrinfo(void)
 {
     PRLibrary *lib;
 #ifdef WIN32
     /*
      * On windows, we need to search ws2_32.dll or wship6.dll
deleted file mode 100644
--- a/pr/src/nspr_symvec.opt
+++ /dev/null
@@ -1,503 +0,0 @@
-! Fixed section of symbol vector for LIBNSPR4 (non-debug)
-!
-GSMATCH=LEQUAL,2,8
-case_sensitive=YES
-!
-! --------------------------------------------------------------------------
-! Ident 2,1 introduced for Mozilla 0.9.4
-! Based on NSPR 4.1.2
-! --------------------------------------------------------------------------
-! Ident 2,2 introduced for Mozilla 1.2
-! Based on NSPR 4.2.2?
-! PR_ResumeSet, PR_ResumeTest, and PR_SuspendAllSuspended has been "removed".
-! Only we can't remove the entry points because OJI is linked against NSPR so
-! we have to make an upwardly compatible change:
-!   PR_ResumeSet is now PR_VMS_Stub1
-!   PR_ResumeTest is now PR_VMS_Stub2
-!   PR_SuspendAllSuspended is PR_VMS_Stub3
-! These are stub functions (defined in openvms.c) solely for the purpose of
-! occupying the slots in our fixed section of the symbol table. 
-! --------------------------------------------------------------------------
-! Ident 2,3 introduced for Mozilla 1.3
-! Previously we were missing some symbols from NSPR 4.0 and 4.1, so now we
-! include everything that's specified in nspr.def.
-! --------------------------------------------------------------------------
-! Ident 2,4 introduced for Mozilla 1.3 final.
-! 2,3 was still missing some symbols, in particular PR_CreateThread, which
-! is used by OJI. So insert stubs to force the PR_CreateThread entry down
-! to its Mozilla 1.1 (and Java 1.4-0) location so that everyone can play
-! together and be happy.
-! --------------------------------------------------------------------------
-! Ident 2,5 introduced for post Mozilla 1.3.
-! LL_MaxUint introduced. Replaces Stub54.
-! --------------------------------------------------------------------------
-! Ident 2,6 introduced for post Mozilla 1.4.
-! PR_GetPathSeparator introduced in NSPR 4.4.
-! This replaces stub 53
-! --------------------------------------------------------------------------
-! Ident 2,7 introduced for post Mozilla 1.4.
-! PR_GetAddrInfoByName, PR_FreeAddrInfo, PR_EnumerateAddrInfo and
-! PR_GetCanonNameFromAddrInfo introduced in NSPR 4.5.
-! These replace stubs 49-52
-! --------------------------------------------------------------------------
-! Ident 2,8 introduced for NSPR 4.6.
-! PR_FindLibrary removed. Replaced by PR_GetPhysicalMemorySize.
-! --------------------------------------------------------------------------
-!
-SYMBOL_VECTOR=(PR_Accept=PROCEDURE)
-SYMBOL_VECTOR=(PR_AcceptRead=PROCEDURE)
-SYMBOL_VECTOR=(PR_Access=PROCEDURE)
-SYMBOL_VECTOR=(PR_AllocFileDesc=PROCEDURE)
-SYMBOL_VECTOR=(PR_Assert=PROCEDURE)
-SYMBOL_VECTOR=(PR_AtomicAdd=PROCEDURE)
-SYMBOL_VECTOR=(PR_AtomicDecrement=PROCEDURE)
-SYMBOL_VECTOR=(PR_AtomicSet=PROCEDURE)
-SYMBOL_VECTOR=(PR_AttachSharedMemory=PROCEDURE)
-SYMBOL_VECTOR=(PR_AttachThread=PROCEDURE)
-SYMBOL_VECTOR=(PR_Available64=PROCEDURE)
-SYMBOL_VECTOR=(PR_Available=PROCEDURE)
-SYMBOL_VECTOR=(PR_Bind=PROCEDURE)
-SYMBOL_VECTOR=(PR_BlockClockInterrupts=PROCEDURE)
-SYMBOL_VECTOR=(PR_BlockInterrupt=PROCEDURE)
-SYMBOL_VECTOR=(PR_CExitMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_CNotify=PROCEDURE)
-SYMBOL_VECTOR=(PR_CNotifyAll=PROCEDURE)
-SYMBOL_VECTOR=(PR_CSetOnMonitorRecycle=PROCEDURE)
-SYMBOL_VECTOR=(PR_CWait=PROCEDURE)
-SYMBOL_VECTOR=(PR_CallOnce=PROCEDURE)
-SYMBOL_VECTOR=(PR_Calloc=PROCEDURE)
-SYMBOL_VECTOR=(PR_CancelJob=PROCEDURE)
-SYMBOL_VECTOR=(PR_CancelWaitFileDesc=PROCEDURE)
-SYMBOL_VECTOR=(PR_CancelWaitGroup=PROCEDURE)
-SYMBOL_VECTOR=(PR_ChangeFileDescNativeHandle=PROCEDURE)
-SYMBOL_VECTOR=(PR_Cleanup=PROCEDURE)
-SYMBOL_VECTOR=(PR_ClearInterrupt=PROCEDURE)
-SYMBOL_VECTOR=(PR_ClearThreadGCAble=PROCEDURE)
-SYMBOL_VECTOR=(PR_Close=PROCEDURE)
-SYMBOL_VECTOR=(PR_CloseDir=PROCEDURE)
-SYMBOL_VECTOR=(PR_CloseFileMap=PROCEDURE)
-SYMBOL_VECTOR=(PR_CloseSemaphore=PROCEDURE)
-SYMBOL_VECTOR=(PR_CloseSharedMemory=PROCEDURE)
-SYMBOL_VECTOR=(PR_Connect=PROCEDURE)
-SYMBOL_VECTOR=(PR_ConnectContinue=PROCEDURE)
-SYMBOL_VECTOR=(PR_ConvertIPv4AddrToIPv6=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateIOLayer=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateIOLayerStub=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateMWaitEnumerator=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreatePipe=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateProcess=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateProcessDetached=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateSocketPollFd=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateStack=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateThreadGCAble=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateWaitGroup=PROCEDURE)
-SYMBOL_VECTOR=(PR_Delete=PROCEDURE)
-SYMBOL_VECTOR=(PR_DeleteSemaphore=PROCEDURE)
-SYMBOL_VECTOR=(PR_DeleteSharedMemory=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyAlarm=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyMWaitEnumerator=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyPollableEvent=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyProcessAttr=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyRWLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroySem=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroySocketPollFd=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyStack=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyWaitGroup=PROCEDURE)
-SYMBOL_VECTOR=(PR_DetachProcess=PROCEDURE)
-SYMBOL_VECTOR=(PR_DetachSharedMemory=PROCEDURE)
-SYMBOL_VECTOR=(PR_DetachThread=PROCEDURE)
-SYMBOL_VECTOR=(PR_DisableClockInterrupts=PROCEDURE)
-SYMBOL_VECTOR=(PR_EmulateAcceptRead=PROCEDURE)
-SYMBOL_VECTOR=(PR_EmulateSendFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_EnableClockInterrupts=PROCEDURE)
-SYMBOL_VECTOR=(PR_EnterMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_EnumerateHostEnt=PROCEDURE)
-SYMBOL_VECTOR=(PR_EnumerateThreads=PROCEDURE)
-SYMBOL_VECTOR=(PR_EnumerateWaitGroup=PROCEDURE)
-SYMBOL_VECTOR=(PR_ErrorInstallCallback=PROCEDURE)
-SYMBOL_VECTOR=(PR_ErrorInstallTable=PROCEDURE)
-SYMBOL_VECTOR=(PR_ErrorLanguages=PROCEDURE)
-SYMBOL_VECTOR=(PR_ErrorToName=PROCEDURE)
-SYMBOL_VECTOR=(PR_ExitMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_ExportFileMapAsString=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_CLR=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_ISSET=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_NCLR=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_NISSET=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_NSET=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_SET=PROCEDURE)
-SYMBOL_VECTOR=(PR_FD_ZERO=PROCEDURE)
-SYMBOL_VECTOR=(PR_FileDesc2NativeHandle=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindFunctionSymbol=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindFunctionSymbolAndLibrary=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetPhysicalMemorySize=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindSymbol=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindSymbolAndLibrary=PROCEDURE)
-SYMBOL_VECTOR=(PR_FloorLog2=PROCEDURE)
-SYMBOL_VECTOR=(PR_FormatTime=PROCEDURE)
-SYMBOL_VECTOR=(PR_FormatTimeUSEnglish=PROCEDURE)
-SYMBOL_VECTOR=(PR_Free=PROCEDURE)
-SYMBOL_VECTOR=(PR_FreeLibraryName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GMTParameters=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetConnectStatus=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetCurrentThread=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetDefaultIOMethods=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetDirectorySepartor=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetError=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetErrorText=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetErrorTextLength=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetFileInfo64=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetFileInfo=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetFileMethods=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetHostByAddr=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetHostByName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetIPNodeByName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetIdentitiesLayer=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetInheritedFD=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetInheritedFileMap=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetLayersIdentity=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetLibraryName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetLibraryPath=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetMemMapAlignment=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetMonitorEntryCount=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetNameForIdentity=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetNumberOfProcessors=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetOSError=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetOpenFileInfo64=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetOpenFileInfo=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetPageShift=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetPeerName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetPipeMethods=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetProtoByName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetProtoByNumber=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetSP=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetSockName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetSocketOption=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetStackSpaceLeft=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetSysfdTableMax=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetSystemInfo=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetTCPMethods=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadAffinityMask=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadID=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadPriority=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadPrivate=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadScope=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadState=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetThreadType=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetUDPMethods=PROCEDURE)
-SYMBOL_VECTOR=(PR_ImplodeTime=PROCEDURE)
-SYMBOL_VECTOR=(PR_ImportFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_ImportFileMapFromString=PROCEDURE)
-SYMBOL_VECTOR=(PR_ImportPipe=PROCEDURE)
-SYMBOL_VECTOR=(PR_ImportTCPSocket=PROCEDURE)
-SYMBOL_VECTOR=(PR_ImportUDPSocket=PROCEDURE)
-SYMBOL_VECTOR=(PR_Init=PROCEDURE)
-SYMBOL_VECTOR=(PR_Initialize=PROCEDURE)
-SYMBOL_VECTOR=(PR_InitializeNetAddr=PROCEDURE)
-SYMBOL_VECTOR=(PR_Initialized=PROCEDURE)
-SYMBOL_VECTOR=(PR_Interrupt=PROCEDURE)
-SYMBOL_VECTOR=(PR_IntervalToMicroseconds=PROCEDURE)
-SYMBOL_VECTOR=(PR_IntervalToMilliseconds=PROCEDURE)
-SYMBOL_VECTOR=(PR_IntervalToSeconds=PROCEDURE)
-SYMBOL_VECTOR=(PR_IsNetAddrType=PROCEDURE)
-SYMBOL_VECTOR=(PR_JoinJob=PROCEDURE)
-SYMBOL_VECTOR=(PR_JoinThread=PROCEDURE)
-SYMBOL_VECTOR=(PR_JoinThreadPool=PROCEDURE)
-SYMBOL_VECTOR=(PR_KillProcess=PROCEDURE)
-SYMBOL_VECTOR=(PR_Listen=PROCEDURE)
-SYMBOL_VECTOR=(PR_LoadLibrary=PROCEDURE)
-SYMBOL_VECTOR=(PR_LoadLibraryWithFlags=PROCEDURE)
-SYMBOL_VECTOR=(PR_LoadStaticLibrary=PROCEDURE)
-SYMBOL_VECTOR=(PR_LocalTimeParameters=PROCEDURE)
-SYMBOL_VECTOR=(PR_Lock=PROCEDURE)
-SYMBOL_VECTOR=(PR_LockFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_LogFlush=PROCEDURE)
-SYMBOL_VECTOR=(PR_LogPrint=PROCEDURE)
-SYMBOL_VECTOR=(PR_MakeDir=PROCEDURE)
-SYMBOL_VECTOR=(PR_MemMap=PROCEDURE)
-SYMBOL_VECTOR=(PR_MemUnmap=PROCEDURE)
-SYMBOL_VECTOR=(PR_MicrosecondsToInterval=PROCEDURE)
-SYMBOL_VECTOR=(PR_MillisecondsToInterval=PROCEDURE)
-SYMBOL_VECTOR=(PR_MkDir=PROCEDURE)
-SYMBOL_VECTOR=(PR_NetAddrToString=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewLogModule=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewNamedMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewProcessAttr=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewSem=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewTCPSocket=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewTCPSocketPair=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewUDPSocket=PROCEDURE)
-SYMBOL_VECTOR=(PR_NormalizeTime=PROCEDURE)
-SYMBOL_VECTOR=(PR_Notify=PROCEDURE)
-SYMBOL_VECTOR=(PR_NotifyAll=PROCEDURE)
-SYMBOL_VECTOR=(PR_NotifyAllCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PR_NotifyCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PR_Open=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenDir=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenSemaphore=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenTCPSocket=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenUDPSocket=PROCEDURE)
-SYMBOL_VECTOR=(PR_ParseTimeString=PROCEDURE)
-SYMBOL_VECTOR=(PR_Poll=PROCEDURE)
-SYMBOL_VECTOR=(PR_PopIOLayer=PROCEDURE)
-SYMBOL_VECTOR=(PR_PostSem=PROCEDURE)
-SYMBOL_VECTOR=(PR_PostSemaphore=PROCEDURE)
-SYMBOL_VECTOR=(PR_ProcessAttrSetCurren1sb1r7b$=PROCEDURE) ! PR_ProcessAttrSetCurrentDirectory
-SYMBOL_VECTOR=(PR_ProcessAttrSetInheri3dpg1d0$=PROCEDURE) ! PR_ProcessAttrSetInheritableFileMap
-SYMBOL_VECTOR=(PR_ProcessAttrSetInheritableFD=PROCEDURE)
-SYMBOL_VECTOR=(PR_ProcessAttrSetStdioRedirect=PROCEDURE)
-SYMBOL_VECTOR=(PR_ProcessExit=PROCEDURE)
-SYMBOL_VECTOR=(PR_PushIOLayer=PROCEDURE)
-SYMBOL_VECTOR=(PR_QueueJob=PROCEDURE)
-SYMBOL_VECTOR=(PR_QueueJob_Accept=PROCEDURE)
-SYMBOL_VECTOR=(PR_QueueJob_Connect=PROCEDURE)
-SYMBOL_VECTOR=(PR_QueueJob_Read=PROCEDURE)
-SYMBOL_VECTOR=(PR_QueueJob_Timer=PROCEDURE)
-SYMBOL_VECTOR=(PR_QueueJob_Write=PROCEDURE)
-SYMBOL_VECTOR=(PR_RWLock_Rlock=PROCEDURE)
-SYMBOL_VECTOR=(PR_RWLock_Unlock=PROCEDURE)
-SYMBOL_VECTOR=(PR_RWLock_Wlock=PROCEDURE)
-SYMBOL_VECTOR=(PR_Read=PROCEDURE)
-SYMBOL_VECTOR=(PR_ReadDir=PROCEDURE)
-SYMBOL_VECTOR=(PR_Realloc=PROCEDURE)
-SYMBOL_VECTOR=(PR_Recv=PROCEDURE)
-SYMBOL_VECTOR=(PR_RecvFrom=PROCEDURE)
-SYMBOL_VECTOR=(PR_Rename=PROCEDURE)
-SYMBOL_VECTOR=(PR_ResetAlarm=PROCEDURE)
-SYMBOL_VECTOR=(PR_ResetProcessAttr=PROCEDURE)
-SYMBOL_VECTOR=(PR_ResumeAll=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub1=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub2=PROCEDURE)
-SYMBOL_VECTOR=(PR_RmDir=PROCEDURE)
-SYMBOL_VECTOR=(PR_ScanStackPointers=PROCEDURE)
-SYMBOL_VECTOR=(PR_SecondsToInterval=PROCEDURE)
-SYMBOL_VECTOR=(PR_Seek64=PROCEDURE)
-SYMBOL_VECTOR=(PR_Seek=PROCEDURE)
-SYMBOL_VECTOR=(PR_Select=PROCEDURE)
-SYMBOL_VECTOR=(PR_Send=PROCEDURE)
-SYMBOL_VECTOR=(PR_SendFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_SendTo=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetAlarm=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetEnv=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetErrorText=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetFDInheritable=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetLogBuffering=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetLogFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetNetAddr=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetPollableEvent=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetSocketOption=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetStdioRedirect=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetSysfdTableSize=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetThreadAffinityMask=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetThreadDumpProc=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetThreadGCAble=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetThreadPriority=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetThreadPrivate=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetThreadRecycleMode=PROCEDURE)
-SYMBOL_VECTOR=(PR_Shutdown=PROCEDURE)
-SYMBOL_VECTOR=(PR_ShutdownThreadPool=PROCEDURE)
-SYMBOL_VECTOR=(PR_Sleep=PROCEDURE)
-SYMBOL_VECTOR=(PR_Socket=PROCEDURE)
-SYMBOL_VECTOR=(PR_StackPop=PROCEDURE)
-SYMBOL_VECTOR=(PR_StackPush=PROCEDURE)
-SYMBOL_VECTOR=(PR_Stat=PROCEDURE)
-SYMBOL_VECTOR=(PR_SuspendAll=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub3=PROCEDURE)
-SYMBOL_VECTOR=(PR_Sync=PROCEDURE)
-SYMBOL_VECTOR=(PR_TLockFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_ThreadScanStackPointers=PROCEDURE)
-SYMBOL_VECTOR=(PR_TicksPerSecond=PROCEDURE)
-SYMBOL_VECTOR=(PR_TransmitFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_USPacificTimeParameters=PROCEDURE)
-SYMBOL_VECTOR=(PR_UnblockClockInterrupts=PROCEDURE)
-SYMBOL_VECTOR=(PR_UnblockInterrupt=PROCEDURE)
-SYMBOL_VECTOR=(PR_UnloadLibrary=PROCEDURE)
-SYMBOL_VECTOR=(PR_Unlock=PROCEDURE)
-SYMBOL_VECTOR=(PR_UnlockFile=PROCEDURE)
-SYMBOL_VECTOR=(PR_Wait=PROCEDURE)
-SYMBOL_VECTOR=(PR_WaitCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PR_WaitForPollableEvent=PROCEDURE)
-SYMBOL_VECTOR=(PR_WaitProcess=PROCEDURE)
-SYMBOL_VECTOR=(PR_WaitRecvReady=PROCEDURE)
-SYMBOL_VECTOR=(PR_WaitSem=PROCEDURE)
-SYMBOL_VECTOR=(PR_WaitSemaphore=PROCEDURE)
-SYMBOL_VECTOR=(PR_Write=PROCEDURE)
-SYMBOL_VECTOR=(PR_Writev=PROCEDURE)
-SYMBOL_VECTOR=(PR_XIsLocked=PROCEDURE)
-SYMBOL_VECTOR=(PR_XLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_XNotify=PROCEDURE)
-SYMBOL_VECTOR=(PR_XNotifyAll=PROCEDURE)
-SYMBOL_VECTOR=(PR_XUnlock=PROCEDURE)
-SYMBOL_VECTOR=(PR_XWait=PROCEDURE)
-SYMBOL_VECTOR=(PR_Yield=PROCEDURE)
-SYMBOL_VECTOR=(PR_cnvtf=PROCEDURE)
-SYMBOL_VECTOR=(PR_dtoa=PROCEDURE)
-SYMBOL_VECTOR=(PR_htonl=PROCEDURE)
-SYMBOL_VECTOR=(PR_htonll=PROCEDURE)
-SYMBOL_VECTOR=(PR_htons=PROCEDURE)
-SYMBOL_VECTOR=(PR_ntohl=PROCEDURE)
-SYMBOL_VECTOR=(PR_ntohll=PROCEDURE)
-SYMBOL_VECTOR=(PR_ntohs=PROCEDURE)
-SYMBOL_VECTOR=(PR_smprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_smprintf_free=PROCEDURE)
-SYMBOL_VECTOR=(PR_sprintf_append=PROCEDURE)
-SYMBOL_VECTOR=(PR_sxprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_vfprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_vsmprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_vsnprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_vsprintf_append=PROCEDURE)
-SYMBOL_VECTOR=(PR_vsxprintf=PROCEDURE)
-!
-! Start of 2,3 additions
-!
-SYMBOL_VECTOR=(LL_MaxInt=PROCEDURE)
-SYMBOL_VECTOR=(LL_MinInt=PROCEDURE)
-SYMBOL_VECTOR=(LL_Zero=PROCEDURE)
-SYMBOL_VECTOR=(PR_Abort=PROCEDURE)
-SYMBOL_VECTOR=(PR_AddToCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_AddWaitFileDesc=PROCEDURE)
-SYMBOL_VECTOR=(PR_AtomicIncrement=PROCEDURE)
-SYMBOL_VECTOR=(PR_CEnterMonitor=PROCEDURE)
-SYMBOL_VECTOR=(PR_CeilingLog2=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateAlarm=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateFileMap=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateOrderedLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateTrace=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateThreadPool=PROCEDURE)
-SYMBOL_VECTOR=(PR_DecrementCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyOrderedLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_DestroyTrace=PROCEDURE)
-SYMBOL_VECTOR=(PR_ErrorToString=PROCEDURE)
-SYMBOL_VECTOR=(PR_ExplodeTime=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindNextCounterQname=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindNextCounterRname=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindNextTraceQname=PROCEDURE)
-SYMBOL_VECTOR=(PR_FindNextTraceRname=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetDescType=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetDirectorySeparator=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetCounterHandleFromName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetCounterNameFromHandle=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetEnv=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetGCRegisters=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetPageSize=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetRandomNoise=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetSpecialFD=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetUniqueIdentity=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetTraceEntries=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetTraceHandleFromName=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetTraceNameFromHandle=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetTraceOption=PROCEDURE)
-SYMBOL_VECTOR=(PR_IntervalNow=PROCEDURE)
-SYMBOL_VECTOR=(PR_IncrementCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_Malloc=PROCEDURE)
-SYMBOL_VECTOR=(PR_LockOrderedLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewPollableEvent=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewRWLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_NewThreadPrivateIndex=PROCEDURE)
-SYMBOL_VECTOR=(PR_Now=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenAnonFileMap=PROCEDURE)
-SYMBOL_VECTOR=(PR_OpenSharedMemory=PROCEDURE)
-SYMBOL_VECTOR=(PR_RecordTraceEntries=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetConcurrency=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetFDCacheSize=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetLibraryPath=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_StringToNetAddr=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetTraceOption=PROCEDURE)
-SYMBOL_VECTOR=(PR_SubtractFromCounter=PROCEDURE)
-SYMBOL_VECTOR=(PR_VersionCheck=PROCEDURE)
-SYMBOL_VECTOR=(PR_Trace=PROCEDURE)
-SYMBOL_VECTOR=(PR_UnlockOrderedLock=PROCEDURE)
-SYMBOL_VECTOR=(PR_fprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_snprintf=PROCEDURE)
-SYMBOL_VECTOR=(PR_sscanf=PROCEDURE)
-SYMBOL_VECTOR=(PR_strtod=PROCEDURE)
-SYMBOL_VECTOR=(PRP_DestroyNakedCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PRP_NakedBroadcast=PROCEDURE)
-SYMBOL_VECTOR=(PRP_NakedNotify=PROCEDURE)
-SYMBOL_VECTOR=(PRP_NakedWait=PROCEDURE)
-SYMBOL_VECTOR=(PRP_NewNakedCondVar=PROCEDURE)
-SYMBOL_VECTOR=(PRP_TryLock=PROCEDURE)
-SYMBOL_VECTOR=(libVersionPoint=PROCEDURE)
-!
-! NSPR private
-!
-SYMBOL_VECTOR=(GetExecutionEnvironment=PROCEDURE)
-SYMBOL_VECTOR=(PT_FPrintStats=PROCEDURE)
-SYMBOL_VECTOR=(SetExecutionEnvironment=PROCEDURE)
-!
-! Start of 2,4 additions
-! 51 stubs (4 thru 54) so that PR_CreateThread ends up at 1B70.
-! Over time some of these stubs will get replaced by new symbols.
-!
-SYMBOL_VECTOR=(PR_VMS_Stub4=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub5=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub6=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub7=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub8=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub9=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub10=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub11=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub12=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub13=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub14=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub15=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub16=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub17=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub18=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub19=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub20=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub21=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub22=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub23=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub24=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub25=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub26=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub27=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub28=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub29=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub30=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub31=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub32=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub33=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub34=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub35=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub36=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub37=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub38=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub39=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub40=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub41=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub42=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub43=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub44=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub45=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub46=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub47=PROCEDURE)
-SYMBOL_VECTOR=(PR_VMS_Stub48=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetAddrInfoByName=PROCEDURE)		! was Stub49
-SYMBOL_VECTOR=(PR_FreeAddrInfo=PROCEDURE)		! was Stub50
-SYMBOL_VECTOR=(PR_EnumerateAddrInfo=PROCEDURE)		! was Stub51
-SYMBOL_VECTOR=(PR_GetCanonNameFromAddrInfo=PROCEDURE)	! was Stub52
-SYMBOL_VECTOR=(PR_GetPathSeparator=PROCEDURE)		! was Stub53
-SYMBOL_VECTOR=(LL_MaxUint=PROCEDURE)			! was Stub54
-!
-SYMBOL_VECTOR=(PR_CallOnceWithArg=PROCEDURE)
-SYMBOL_VECTOR=(PR_GetLibraryFilePathname=PROCEDURE)
-SYMBOL_VECTOR=(PR_SetError=PROCEDURE)
-SYMBOL_VECTOR=(PR_CreateThread=PROCEDURE)
-!
-! --------------------------------------------------------------------------
-! End of fixed section
-! --------------------------------------------------------------------------
-!
--- a/pr/src/pthreads/ptio.c
+++ b/pr/src/pthreads/ptio.c
@@ -206,17 +206,17 @@ static PRBool _pr_ipv6_v6only_on_by_defa
 #define _PRSelectFdSetArg_t int *
 #elif defined(AIX4_1)
 #define _PRSelectFdSetArg_t void *
 #elif defined(IRIX) || (defined(AIX) && !defined(AIX4_1)) \
     || defined(OSF1) || defined(SOLARIS) \
     || defined(HPUX10_30) || defined(HPUX11) \
     || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
     || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
-    || defined(BSDI) || defined(VMS) || defined(NTO) || defined(DARWIN) \
+    || defined(BSDI) || defined(NTO) || defined(DARWIN) \
     || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
 #define _PRSelectFdSetArg_t fd_set *
 #else
 #error "Cannot determine architecture"
 #endif
 
 static PRFileDesc *pt_SetMethods(
     PRIntn osfd, PRDescType type, PRBool isAcceptedSocket, PRBool imported);
@@ -290,18 +290,17 @@ static PRBool IsValidNetAddrLen(const PR
  * structure, used in the address length argument to bind,
  * connect, accept, getsockname, getpeername, etc.  Posix.1g
  * defines this type as socklen_t.  It is size_t or int on
  * most current systems.
  */
 #if defined(HAVE_SOCKLEN_T) \
     || (defined(__GLIBC__) && __GLIBC__ >= 2)
 typedef socklen_t pt_SockLen;
-#elif (defined(AIX) && !defined(AIX4_1)) \
-    || defined(VMS)
+#elif (defined(AIX) && !defined(AIX4_1)) 
 typedef PRSize pt_SockLen;
 #else
 typedef PRIntn pt_SockLen;
 #endif
 
 typedef struct pt_Continuation pt_Continuation;
 typedef PRBool (*ContinuationFn)(pt_Continuation *op, PRInt16 revents);
 
@@ -3265,17 +3264,17 @@ static PRIOMethods _pr_socketpollfd_meth
     (PRReservedFN)_PR_InvalidInt, 
     (PRReservedFN)_PR_InvalidInt, 
     (PRReservedFN)_PR_InvalidInt
 };
 
 #if defined(HPUX) || defined(OSF1) || defined(SOLARIS) || defined (IRIX) \
     || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
     || defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
-    || defined(OPENBSD) || defined(BSDI) || defined(VMS) || defined(NTO) \
+    || defined(OPENBSD) || defined(BSDI) || defined(NTO) \
     || defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS) \
     || defined(SYMBIAN)
 #define _PR_FCNTL_FLAGS O_NONBLOCK
 #else
 #error "Can't determine architecture"
 #endif
 
 /*
@@ -4699,31 +4698,31 @@ PR_IMPLEMENT(PRStatus) PR_UnlockFile(PRF
 
 /*
  * The next two entry points should not be in the API, but they are
  * defined here for historical (or hysterical) reasons.
  */
 
 PR_IMPLEMENT(PRInt32) PR_GetSysfdTableMax(void)
 {
-#if defined(AIX) || defined(VMS) || defined(SYMBIAN)
+#if defined(AIX) || defined(SYMBIAN)
     return sysconf(_SC_OPEN_MAX);
 #else
     struct rlimit rlim;
 
     if ( getrlimit(RLIMIT_NOFILE, &rlim) < 0) 
        return -1;
 
     return rlim.rlim_max;
 #endif
 }
 
 PR_IMPLEMENT(PRInt32) PR_SetSysfdTableSize(PRIntn table_size)
 {
-#if defined(AIX) || defined(VMS) || defined(SYMBIAN)
+#if defined(AIX) || defined(SYMBIAN)
     return -1;
 #else
     struct rlimit rlim;
     PRInt32 tableMax = PR_GetSysfdTableMax();
 
     if (tableMax < 0) return -1;
     rlim.rlim_max = tableMax;
 
--- a/pr/src/pthreads/ptthread.c
+++ b/pr/src/pthreads/ptthread.c
@@ -1342,17 +1342,17 @@ static void suspend_signal_handler(PRInt
 	/*
 	 * now, block current thread
 	 */
 #if defined(PT_NO_SIGTIMEDWAIT)
 	pthread_cond_signal(&me->suspendResumeCV);
 	while (me->suspend & PT_THREAD_SUSPENDED)
 	{
 #if !defined(FREEBSD) && !defined(NETBSD) && !defined(OPENBSD) \
-    && !defined(BSDI) && !defined(VMS) && !defined(UNIXWARE) \
+    && !defined(BSDI) && !defined(UNIXWARE) \
     && !defined(DARWIN) && !defined(RISCOS) \
     && !defined(SYMBIAN) /*XXX*/
         PRIntn rv;
 	    sigwait(&sigwait_set, &rv);
 #endif
 	}
 	me->suspend |= PT_THREAD_RESUMED;
 	pthread_cond_signal(&me->suspendResumeCV);
@@ -1388,19 +1388,17 @@ static void pt_SuspendSet(PRThread *thre
      * Check the thread state and signal the thread to suspend
      */
 
     PR_ASSERT((thred->suspend & PT_THREAD_SUSPENDED) == 0);
 
     PR_LOG(_pr_gc_lm, PR_LOG_ALWAYS, 
 	   ("doing pthread_kill in pt_SuspendSet thred %p tid = %X\n",
 	   thred, thred->id));
-#if defined(VMS)
-    rv = thread_suspend(thred);
-#elif defined(SYMBIAN)
+#if defined(SYMBIAN)
     /* All signal group functions are not implemented in Symbian OS */
     rv = 0;
 #else
     rv = pthread_kill (thred->id, SIGUSR2);
 #endif
     PR_ASSERT(0 == rv);
 }
 
@@ -1447,19 +1445,17 @@ static void pt_ResumeSet(PRThread *thred
      */
 
     PR_ASSERT(thred->suspend & PT_THREAD_SUSPENDED);
 
 
     thred->suspend &= ~PT_THREAD_SUSPENDED;
 
 #if defined(PT_NO_SIGTIMEDWAIT)
-#if defined(VMS)
-	thread_resume(thred);
-#elif defined(SYMBIAN) 
+#if defined(SYMBIAN) 
 	/* All signal group functions are not implemented in Symbian OS */
 #else
 	pthread_kill(thred->id, SIGUSR1);
 #endif
 #endif
 
 }  /* pt_ResumeSet */
 
--- a/pr/tests/op_filok.c
+++ b/pr/tests/op_filok.c
@@ -60,19 +60,17 @@
 #define printf PR_LogPrint
 #else
 #endif
 
 /*
  * The name of a file that is guaranteed to exist
  * on every machine of a particular OS.
  */
-#ifdef VMS
-#define EXISTING_FILENAME "SYS$LOGIN:LOGIN.COM"
-#elif defined(SYMBIAN)
+#if defined(SYMBIAN)
 #define EXISTING_FILENAME "z:\\system\\install\\Series60v3.0.sis"
 #elif defined (XP_UNIX)
 #define EXISTING_FILENAME "/bin/sh"
 #elif defined(WIN32)
 #define EXISTING_FILENAME "c:/autoexec.bat"
 #elif defined(OS2)
 #define EXISTING_FILENAME "c:/config.sys"
 #elif defined(BEOS)