This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Clean up a bug I introduced into caseless ENV hv_delete
[perl5.git] / configure.com
index cdce92e..df07464 100644 (file)
@@ -460,7 +460,7 @@ $     IF ( F$SEARCH("UU.DIR").EQS."" )
 $     THEN
 $       CREATE/DIRECTORY [.UU]
 $     ELSE
-$       IF ( F$SEARCH("[.UU]*.*").NES."" ) THEN DELETE/NOLOG [.UU]*.*;*
+$       IF ( F$SEARCH("[.UU]*.*").NES."" ) THEN DELETE/NOLOG/NOCONFIRM [.UU]*.*;*
 $     ENDIF
 $!: Configure runs within the UU subdirectory
 $     SET DEFAULT [.UU]
@@ -507,6 +507,11 @@ $       ENDIF
 $!
 $       dirname = F$EXTRACT(0,F$LOCATE("]",file_2_find),file_2_find) + "]"
 $       file_2_find = file_2_find - dirname
+$!
+$!      may not need double dot check on ODS-5 volumes
+$       found = F$SEARCH(dirname + file_2_find)
+$       IF found .NES. "" THEN GOTO Read_loop_manifest
+$!
 $       dots = 0
 $Dot_loop:
 $       dot_ele = F$ELEMENT(dots,".",file_2_find)
@@ -581,7 +586,7 @@ $       GOTO Clean_up
 $     ENDIF
 $   ELSE
 $     echo4 "Looks good..."
-$     DELETE/NOLOG MISSING.;
+$     DELETE/NOLOG/NOCONFIRM MISSING.;
 $   ENDIF ! (miss_list .NES. "")
 $ ENDIF   ! (manifestfound .EQS. "") ELSE 
 $!
@@ -873,9 +878,9 @@ $!  ...and only accept symbols if they're in the | delimited list below
 $!
 $   config_symbols0 ="|archlib|archlibexp|bin|binexp|builddir|cf_email|config_sh|installarchlib|installbin|installman1dir|installman3dir|"
 $   config_symbols1 ="|installprivlib|installscript|installsitearch|installsitelib|most|oldarchlib|oldarchlibexp|osname|pager|perl_symbol|perl_verb|"
-$   config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitelib|sitelib_stem|sitelibexp|try_cxx|use64bitall|use64bitint|"
+$   config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|try_cxx|use64bitall|use64bitint|"
 $   config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|usemultiplicity|usemymalloc|usedebugging_perl|useperlio|usesecurelog|"
-$   config_symbols4 ="|usethreads|usevmsdebug|"
+$   config_symbols4 ="|usethreads|usevmsdebug|usefaststdio|"
 $!  
 $   open/read CONFIG 'config_sh'
 $   rd_conf_loop:
@@ -1270,6 +1275,12 @@ $ revision = baserev - ".0"
 $!: get the patchlevel
 $ echo ""
 $ echo4 "Getting the current patchlevel..."
+$ patchlevel="0"
+$ subversion="0"
+$ api_revision="0"
+$ api_version="0"
+$ api_subversion="0"
+$ perl_patchlevel="0"
 $ patchlevel_h = F$SEARCH("[-]patchlevel.h")
 $ IF (patchlevel_h.NES."")
 $ THEN
@@ -1278,6 +1289,7 @@ $   got_sub   = "false"
 $   got_api_revision   = "false"
 $   got_api_version    = "false"
 $   got_api_subversion = "false"
+$   got_perl_patchlevel= "false"
 $   OPEN/READONLY CONFIG 'patchlevel_h' 
 $Patchlevel_h_loop:
 $   READ/END_Of_File=Close_patch/ERROR=Close_patch CONFIG line
@@ -1311,27 +1323,29 @@ $     line = F$EDIT(line,"COMPRESS, TRIM")
 $     api_subversion = F$ELEMENT(2," ",line)
 $     got_api_subversion = "true"
 $   ENDIF
+$   IF ((F$LOCATE("""DEVEL",line).NE.F$LENGTH(line)).AND.(.NOT.got_perl_patchlevel))
+$   THEN
+$     line = F$EDIT(line,"COMPRESS, TRIM")
+$     perl_patchlevel = F$ELEMENT(1,"""",line)
+$     perl_patchlevel = perl_patchlevel - "DEVEL"
+$     got_perl_patchlevel = "true"
+$   ENDIF
 $   IF (.NOT. got_patch) .OR. -
        (.NOT. got_sub) .OR. - 
        (.NOT. got_api_revision) .OR. -
        (.NOT. got_api_version) .OR. -
-       (.NOT. got_api_subversion) -
+       (.NOT. got_api_subversion) .OR. -
+       (.NOT. got_perl_patchlevel) -
       THEN GOTO Patchlevel_h_loop
 $Close_patch:
 $   CLOSE CONFIG
-$ ELSE
-$   patchlevel="0"
-$   subversion="0"
-$   api_revision="0"
-$   api_version="0"
-$   api_subversion="0"
 $ ENDIF
-$ IF (F$STRING(subversion) .NES. "0")
+$ version_patchlevel_string = "version ''patchlevel' subversion ''subversion'"
+$ IF got_perl_patchlevel .AND. perl_patchlevel .NES. "0"
 $ THEN
-$   echo "(You have ''package' revision ''revision' patchlevel ''patchlevel' subversion ''subversion'.)"
-$ ELSE
-$   echo "(You have ''package' revision ''revision' patchlevel ''patchlevel'.)"
+$   version_patchlevel_string = "''version_patchlevel_string' patch ''perl_patchlevel'"
 $ ENDIF
+$ echo "(You have ''package' ''version_patchlevel_string'.)"
 $!
 $ version = revision + "_" + patchlevel + "_" + subversion
 $!
@@ -1432,6 +1446,16 @@ $   rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ")
 $   GOSUB myread
 $   bin = ans
 $!
+$!: determine where add-on public executables go
+$   IF F$TYPE(sitebin) .NES. ""
+$   THEN dflt = sitebin
+$   ELSE dflt = "''vms_prefix':[bin.''archname']"
+$   ENDIF
+$   rp = "Pathname where the add-on public executables should be installed? "
+$   rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ")
+$   GOSUB myread
+$   sitebin = ans
+$!
 $!: determine where manual pages are on this system
 $!: What suffix to use on installed man pages
 $!: see if we can have long filenames
@@ -1450,6 +1474,8 @@ $   IF F$TYPE(sitearch) .EQS. "" THEN -
       sitearch="''vms_prefix':[lib.site_perl.''archname']"
 $   IF F$TYPE(sitelib) .EQS. "" THEN -
       sitelib ="''vms_prefix':[lib.site_perl]"
+$   IF F$TYPE(sitebin) .EQS. "" THEN -
+      sitebin="''vms_prefix':[bin.''archname']"
 $ ENDIF !%Config-I-VMS, skip "where install" questions
 $!
 $! These derived locations can be set whether we've opted to
@@ -1514,12 +1540,12 @@ $ WRITE CONFIG "        exit(0);"
 $ WRITE CONFIG "}"
 $ CLOSE CONFIG
 $!
-$! DEFINE SYS$ERROR _NLA0:
-$! DEFINE SYS$OUTPUT _NLA0:
+$ SET NOON
+$ DEFINE/USER_MODE SYS$ERROR _NLA0:
+$ DEFINE/USER_MODE SYS$OUTPUT _NLA0:
 $ cc/NoObj/list=ccvms.lis ccvms.c
 $ tmp = $status
-$! DEASSIGN SYS$OUTPUT
-$! DEASSIGN SYS$ERROR
+$ SET ON
 $ IF (silent) THEN GOSUB Shut_up
 $ IF tmp.NE.%X10B90001
 $ THEN 
@@ -1539,9 +1565,9 @@ $   IF .NOT.silent
 $   THEN 
 $     echo "Will try cc/decc..."
 $   ENDIF
+$   SET NOON
 $   DEFINE/USER_MODE SYS$ERROR NL:
 $   DEFINE/USER_MODE SYS$OUTPUT NL:
-$   SET NOON
 $   cc/decc/NoObj/list=ccvms.lis ccvms.c
 $   tmp = $status
 $   SET ON
@@ -1565,10 +1591,12 @@ $!
 $Gcc_initial_check:
 $ echo "Checking for gcc"
 $ OPEN/WRITE CONFIG gccvers.lis
+$ SET NOON
 $ DEFINE/USER_MODE SYS$ERROR CONFIG
 $ DEFINE/USER_MODE SYS$OUTPUT CONFIG
 $ 'gcc_symbol'/noobj/version _nla0:
 $ tmp = $status
+$ SET ON
 $ IF (silent) THEN GOSUB Shut_up
 $ CLOSE CONFIG
 $ IF (tmp.NE.%X10000001).and.(tmp.ne.%X00030001)
@@ -1777,7 +1805,7 @@ $   CLOSE CONFIG
 $   echo "You are using Dec C ''line'"
 $   ccversion = line
 $   Dec_C_Version = F$INTEGER(line)
-$   IF Dec_C_Version .GE. 60200000
+$   IF Dec_C_Version .GE. 60200000 .AND. archname .NES. "VMS_VAX"
 $   THEN
 $     echo4 "adding /NOANSI_ALIAS qualifier to ccflags."
 $     ccflags = ccflags + "/NOANSI_ALIAS"
@@ -2128,8 +2156,7 @@ $   echo4 "Hmm... Looks like you have SOCKETSHR Berkeley networking support."
 $ ELSE
 $   Has_socketshr     = "F"
 $ ENDIF
-$ IF (ccname .EQS. "DEC" .AND. Dec_C_Version .GE. 50200000) .OR. -
-     (ccname .EQS. "CXX")
+$ IF (ccname .EQS. "DEC" .AND. Dec_C_Version .GE. 50200000) .OR. (ccname .EQS. "CXX")
 $ THEN
 $   Has_Dec_C_Sockets = "T"
 $   echo ""
@@ -2146,9 +2173,9 @@ $   echo "build into Perl?"
 $   IF Has_Dec_C_Sockets
 $   THEN
 $     dflt = "DECC"
-$   else
+$   ELSE
 $     dflt = "SOCKETSHR"
-$   endif
+$   ENDIF
 $   rp = "Choose socket stack (NONE"
 $   IF Has_socketshr THEN rp = rp + ",SOCKETSHR"
 $   IF Has_Dec_C_Sockets THEN rp = rp + ",DECC"
@@ -2157,8 +2184,8 @@ $   GOSUB myread
 $   Has_Dec_C_Sockets = "F"
 $   Has_socketshr = "F"
 $   ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE")
-$   IF ans.eqs."decc" then Has_Dec_C_Sockets = "T"
-$   IF ans.eqs."socketshr" then Has_socketshr = "T"
+$   IF ans.eqs."decc" THEN Has_Dec_C_Sockets = "T"
+$   IF ans.eqs."socketshr" THEN Has_socketshr = "T"
 $ ENDIF
 $!
 $!
@@ -2271,38 +2298,54 @@ $! Ask about threads, if appropriate
 $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
 $ THEN
 $   echo ""
-$   echo "This version of Perl can be built with threads. While really nifty,"
-$   echo "they are a beta feature, and there is a speed penalty for perl"
-$   echo "programs if you build with threads *even if you do not use them*."
+$   echo "Perl can be built to take advantage of threads on some systems."
+$   echo "To do so, configure.com can be run with -""Dusethreads""."
+$   echo ""
+$   echo "Note that Perl built with threading support runs slightly slower"
+$   echo "and uses more memory than plain Perl. The current implementation"
+$   echo "is believed to be stable, but it is fairly new, and so should be"
+$   echo "treated with caution."
+$   echo ""
 $   bool_dflt = "n"
 $   if f$type(usethreads) .nes. "" 
 $   then 
 $       if usethreads .or. usethreads .eqs. "define" then bool_dflt="y"
 $   endif
-$   rp = "Build with threads? [''bool_dflt'] "
+$!  Catch cases where user specified ithreads or 5005threads but
+$!  forgot -Dusethreads 
+$   if f$type(useithreads) .nes. ""
+$   then
+$         if useithreads .or. useithreads .eqs. "define" then bool_dflt="y"
+$   endif
+$   if f$type(use5005threads) .nes. ""
+$   then
+$         if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="y"
+$   endif
+$   echo "If this doesn't make any sense to you, just accept the default '" + bool_dflt + "'."
+$   rp = "Build a threading Perl? [''bool_dflt'] "
 $   GOSUB myread
 $   if ans
 $   THEN
 $     use_threads="T"
-$     ! Shall we do the 5.005-stype threads, or IThreads?
-$     echo "As of 5.5.640, Perl has two different internal threading"
-$     echo "implementations, the 5.005 version (5005threads) and an"
-$     echo "interpreter-based version (ithreads) that has one"
-$     echo "interpreter per thread.  Both are very experimental.  This"
-$     echo "arrangement exists to help developers work out which one"
-$     echo "is better."
+$     ! Shall we do the 5.005-type threads, or IThreads?
+$     echo "Since release 5.6, Perl has had two different threading implementations,"
+$     echo "the newer interpreter-based version (ithreads) with one interpreter per"
+$     echo "thread, and the older 5.005 version (5005threads)."
+$     echo "The 5005threads version is effectively unmaintained and will probably be"
+$     echo "removed in Perl 5.10, so there should be no need to build a Perl using it"
+$     echo "unless needed for backwards compatibility with some existing 5.005threads"
+$     echo "code."
 $     echo ""
-$     echo "If you are a casual user, you probably do not want"
-$     echo "interpreter-threads at this time.  There doesn't yet exist"
-$     echo "a way to create threads from within Perl in this model,"
-$     echo "i.e., ""use Thread;"" will NOT work."
-$     echo ""
-$     bool_dflt = "n"
+$     bool_dflt = "y"
 $     if f$type(useithreads) .nes. ""
 $     then
-$         if useithreads .eqs. "define" then bool_dflt="y"
+$         if useithreads .eqs. "undef" then bool_dflt="n"
 $     endif
-$     rp = "Build with Interpreter threads? [''bool_dflt'] "
+$     if f$type(use5005threads) .nes. ""
+$     then
+$         if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="n"
+$     endif
+$     rp = "Use the newer intepreter-based ithreads? [''bool_dflt'] "
 $     GOSUB myread
 $     use_ithreads=ans
 $     if use_ithreads 
@@ -2365,7 +2408,12 @@ $   echo "the IEEE math option."
 $   bool_dflt = use_ieee_math
 $   if f$type(useieee) .nes. "" 
 $   then
-$       if useieee .or. useieee .eqs. "define" then bool_dflt="y"
+$       if useieee .or. useieee .eqs. "define" 
+$       then 
+$         bool_dflt="y"
+$       else
+$         bool_dflt="n"
+$       endif
 $   endif
 $   rp = "Use IEEE math? [''bool_dflt'] "
 $   GOSUB myread
@@ -2499,6 +2547,8 @@ $   IF F$EXTRACT(0,4,line) .EQS. "ext/" THEN -
 $   IF xxx .EQS. "DynaLoader" THEN goto ext_loop     ! omit
 $   IF xxx .EQS. "SDBM_File/sdbm" THEN goto ext_loop ! sub extension - omit
 $   IF xxx .EQS. "Devel/PPPort/harness" THEN goto ext_loop ! sub extension - omit
+$   IF F$EXTRACT(0,7,xxx) .EQS. "Encode/" THEN goto ext_loop  ! sub extension - omit
+$   IF xxx .EQS. "B/C" THEN goto ext_loop  ! sub extension - omit
 $   IF F$EXTRACT(0,8,line) .EQS. "vms/ext/" THEN -
       xxx = "VMS/" + F$EXTRACT(8,line_len - 20,line)
 $   known_extensions = known_extensions + " ''xxx'"
@@ -2523,8 +2573,7 @@ $ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets
 $ THEN
 $   dflt = dflt - "Socket"            ! optional on VMS
 $ ENDIF
-$ IF .NOT. use_ithreads THEN dflt = dflt - "threads/shared"
-$ IF .NOT. use_ithreads THEN dflt = dflt - "threads"
+$ IF .NOT. use_threads  THEN dflt = dflt - "Thread"
 $ dflt = F$EDIT(dflt,"TRIM,COMPRESS")
 $!
 $! Ask for their default list of extensions to build
@@ -2632,7 +2681,7 @@ $     build = ans
 $   ENDIF
 $ ENDIF
 $!
-$ DELETE/NOLOG Makefile.;
+$ DELETE/NOLOG/NOCONFIRM Makefile.;
 $ GOTO Beyond_open
 $Open_error:
 $ TYPE SYS$INPUT:
@@ -2658,7 +2707,12 @@ $ make = F$EDIT(build,"UPCASE")
 $!
 $!: locate the preferred pager for this system
 $!pagers = "most|more|less|type/page"
-$ dflt = "type/page"
+$ IF osvers .GES. "V6.1"
+$ THEN
+$   dflt = "type/page=save=10"
+$ ELSE
+$   dflt = "type/page"
+$ ENDIF
 $! assume that the presence of a most symbol indicates the presence
 $! of the pager.
 $ IF F$TYPE(most) .EQS. "STRING" THEN dflt = "most"
@@ -2894,9 +2948,9 @@ $   lib_ext=".olb"
 $ ENDIF
 $ dlobj="dl_vms''obj_ext'"
 $!
-$ cppstdin="''perl_cc'/noobj/preprocess=sys$output sys$input"
+$ cppstdin="''perl_cc'/noobj/comments=as_is/preprocess=sys$output sys$input"
 $ cppminus=" "
-$ cpprun="''perl_cc'/noobj/preprocess=sys$output sys$input"
+$ cpprun="''perl_cc'/noobj/comments=as_is/preprocess=sys$output sys$input"
 $ cpplast=" "
 $!
 $ timetype="time_t"
@@ -2912,7 +2966,7 @@ $ usedl="define"
 $ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""'"+"'p3'\"" \""'"+"'p4'\"" \""'"+"'p5'\"" \""'"+"'p6'\"" \""'"+"'p7'\"" \""'"+"'p8'\""!\n"
 $ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}"""
 $!
-$ IF ((Use_Threads) .AND. (vms_ver .LES. "6.2"))
+$ IF ((use_threads) .AND. (vms_ver .LES. "6.2"))
 $ THEN
 $   libs="SYS$SHARE:CMA$LIB_SHR.EXE/SHARE SYS$SHARE:CMA$RTL.EXE/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR.exe/SHARE SYS$SHARE:CMA$OPEN_RTL.exe/SHARE"
 $ ELSE
@@ -2934,24 +2988,12 @@ $!
 $ IF use64bitint .OR. use64bitint .EQS. "define"
 $ THEN
 $   d_PRId64 = "define"
-$   d_PRIEUldbl = "define"
-$   d_PRIFUldbl = "define"
-$   d_PRIGUldbl = "define"
-$   d_PRIeldbl = "define"
-$   d_PRIfldbl = "define"
-$   d_PRIgldbl = "define"
 $   d_PRIu64 = "define"
 $   d_PRIo64 = "define"
 $   d_PRIx64 = "define"
 $   d_PRIXU64 = "define"
 $   sPRId64 = """Ld"""
-$   sPRIEUldbl = """LE"""
-$   sPRIFUldbl = """LF"""
-$   sPRIGUldbl = """LG"""
 $   sPRIXU64 = """LX"""
-$   sPRIeldbl = """Le"""
-$   sPRIfldbl = """Lf"""
-$   sPRIgldbl = """Lg"""
 $   sPRIi64 = """Li"""
 $   sPRIo64 = """Lo"""
 $   sPRIu64 = """Lu"""
@@ -2964,26 +3006,15 @@ $   d_frexpl = "define"
 $   d_isnan = "define"
 $   d_isnanl = "define"
 $   d_modfl = "define"
+$   d_modflproto = "define"
 $ ELSE
 $   d_PRId64 = "undef"
-$   d_PRIEUldbl = "define"
-$   d_PRIFUldbl = "define"
-$   d_PRIGUldbl = "define"
 $   d_PRIXU64 = "undef"
-$   d_PRIeldbl = "define"
-$   d_PRIfldbl = "undef"
-$   d_PRIgldbl = "undef"
 $   d_PRIu64 = "undef"
 $   d_PRIo64 = "undef"
 $   d_PRIx64 = "undef"
 $   sPRId64 = ""
-$   sPRIEUldbl = """E"""
-$   sPRIFUldbl = """F"""
-$   sPRIGUldbl = """G"""
 $   sPRIXU64 = """lX"""
-$   sPRIeldbl = """e"""
-$   sPRIfldbl = """f"""
-$   sPRIgldbl = """g"""
 $   sPRIi64 = ""
 $   sPRIo64 = ""
 $   sPRIu64 = ""
@@ -2996,13 +3027,12 @@ $   d_frexpl = "undef"
 $   d_isnan = "undef"
 $   d_isnanl = "undef"
 $   d_modfl = "undef"
+$   d_modflproto = "undef"
 $ ENDIF
-$ d_SCNfldbl = d_PRIfldbl
-$ sSCNfldbl = sPRIfldbl ! expect consistency
 $!
 $! Now some that we build up
 $!
-$ IF Use_Threads
+$ IF use_threads
 $ THEN
 $   IF use_5005_threads
 $   THEN
@@ -3207,6 +3237,7 @@ $! Check for long double size
 $!
 $ OS
 $ WS "#if defined(__DECC) || defined(__DECCXX)"
+$ WS "#pragma message disable ALL"  ! VAX compilers may have distracting informationals
 $ WS "#include <stdlib.h>"
 $ WS "#endif"
 $ WS "#include <stdio.h>"
@@ -3232,6 +3263,37 @@ $   d_longdbl = "define"
 $   echo "Your long doubles are ''longdblsize' bytes long."
 $ ENDIF
 $!
+$ IF d_longdbl .OR. d_longdbl .EQS. "define"
+$ THEN
+$   d_PRIEUldbl = "define"
+$   d_PRIFUldbl = "define"
+$   d_PRIGUldbl = "define"
+$   d_PRIeldbl = "define"
+$   d_PRIfldbl = "define"
+$   d_PRIgldbl = "define"
+$   sPRIEUldbl = """LE"""
+$   sPRIFUldbl = """LF"""
+$   sPRIGUldbl = """LG"""
+$   sPRIeldbl = """Le"""
+$   sPRIfldbl = """Lf"""
+$   sPRIgldbl = """Lg"""
+$ ELSE
+$   d_PRIEUldbl = "undef"
+$   d_PRIFUldbl = "undef"
+$   d_PRIGUldbl = "undef"
+$   d_PRIeldbl = "undef"
+$   d_PRIfldbl = "undef"
+$   d_PRIgldbl = "undef"
+$   sPRIEUldbl = ""
+$   sPRIFUldbl = ""
+$   sPRIGUldbl = ""
+$   sPRIeldbl = ""
+$   sPRIfldbl = ""
+$   sPRIgldbl = ""
+$ ENDIF
+$ d_SCNfldbl = d_PRIfldbl
+$ sSCNfldbl = sPRIfldbl ! expect consistency
+$!
 $!: check for long long
 $ OS
 $ WS "#if defined(__DECC) || defined(__DECCXX)"
@@ -3319,6 +3381,25 @@ $ tmp = "unistd.h"
 $ GOSUB inhdr
 $ i_unistd = tmp
 $!
+$! do we have getppid()?
+$!
+$ IF i_unistd .EQS. "define"
+$ THEN
+$   OS
+$   WS "#include <stdio.h>"
+$   WS "#include <unistd.h>"
+$   WS "int main() {"
+$   WS "printf(""%d\n"",getppid());"
+$   WS "return(0);"
+$   WS "}"
+$   CS
+$   tmp = "getppid"
+$   GOSUB inlibc
+$   d_getppid = tmp
+$ ELSE
+$   d_getppid = "undef"
+$ ENDIF
+$!
 $!: see if this is a libutil.h system
 $!
 $ tmp = "libutil.h"
@@ -3587,6 +3668,13 @@ $ tmp = "sys/file.h"
 $ GOSUB inhdr
 $ i_sysfile = tmp
 $!
+$!
+$! Check for sys/ioctl.h
+$!
+$ tmp = "sys/ioctl.h"
+$ GOSUB inhdr
+$ i_sysioctl = tmp
+$!
 $! Check for sys/utsname.h
 $!
 $ tmp = "sys/utsname.h"
@@ -3969,6 +4057,29 @@ $ tmp = "mkdtemp"
 $ GOSUB inlibc
 $ d_mkdtemp = tmp
 $!
+$! Check for poll
+$!
+$ if i_poll .eqs. "define"
+$ then
+$   OS
+$   WS "#if defined(__DECC) || defined(__DECCXX)"
+$   WS "#include <stdlib.h>"
+$   WS "#endif"
+$   WS "#include <poll.h>"
+$   WS "int main()"
+$   WS "{"
+$   WS "struct pollfd pfd;"
+$   WS "int count=poll(&pfd,1,0);"
+$   WS "exit(0);"
+$   WS "}"
+$   CS
+$   tmp = "poll"
+$   GOSUB inlibc
+$   d_poll = tmp
+$ else
+$   d_poll = "undef"
+$ endif
+$!
 $! Check for setvbuf
 $!
 $ OS
@@ -4478,6 +4589,11 @@ $   d_sched_yield="undef"
 $   sched_yield = " "
 $ ENDIF
 $!
+$! Check for pthread_attr_setscope and PTHREAD_SCOPE_SYSTEM.
+$! (The actual test is to be written.)
+$!
+$ d_pthread_attr_setscope="undef"
+$!
 $! Check for generic pointer size
 $!
 $ echo4 "Checking to see how big your pointers are..." 
@@ -4601,14 +4717,13 @@ $   d_truncate="define"
 $   d_wait4="define"
 $   d_index="define"
 $   pidtype="pid_t"
-$   sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2 SPARE18 SPARE19 CHLD CONT STOP TSTP TTIN TTOU DEBUG SPARE27 SPARE28 SPARE29 SPARE30 SPARE31 SPARE32 RTMIN RTMAX"",0"
+$   sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2 SPARE18 SPARE19 CHLD CONT STOP TSTP TTIN TTOU DEBUG SPARE27 SPARE28 SPARE29 SPARE30 SPARE31 SPARE32 RTMIN RTMAX"
 $   psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
 $   psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",""SPARE18"",""SPARE19"",""CHLD"",""CONT"",""STOP"",""TSTP"","
 $   psnwc3="""TTIN"",""TTOU"",""DEBUG"",""SPARE27"",""SPARE28"",""SPARE29"",""SPARE30"",""SPARE31"",""SPARE32"",""RTMIN"",""RTMAX"",0"
 $   sig_name_init = psnwc1 + psnwc2 + psnwc3
-$   sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 64"",0"
+$   sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 64"
 $   sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0"
-$!   perl_sig_num_with_commas=sig_num_init
 $   sig_size="36"
 $   uidtype="uid_t"
 $   d_pathconf="define"
@@ -4633,13 +4748,12 @@ $   d_sigprocmask="undef"
 $   d_truncate="undef"
 $   d_wait4="undef"
 $   d_index="undef"
-$   sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2"",0"
+$   sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2"
 $   psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
 $   psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",0"
 $   sig_name_init = psnwc1 + psnwc2
-$   sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17"",0"
+$   sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17"
 $   sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0"
-$!   perl_sig_num_with_commas=sig_num_init
 $   sig_size="19"
 $   uidtype="unsigned int"
 $   d_pathconf="undef"
@@ -4680,6 +4794,7 @@ $   d_stdiobase="define"
 $   d_stdio_cnt_lval="define"
 $   d_stdio_ptr_lval="define"
 $   d_stdstdio="define"
+$   d_faststdio="define"
 $   d_wcstombs="define"
 $   d_mblen="define"
 $   d_mktime="define"
@@ -4689,7 +4804,12 @@ $   d_wctomb="define"
 $   i_locale="define"
 $   i_langinfo="define"
 $   d_locconv="define"
-$   d_nl_langinfo="define"
+$   IF vms_ver .GES. "6.2"
+$   THEN
+$     d_nl_langinfo="define"
+$   ELSE
+$     d_nl_langinfo="undef"
+$   ENDIF
 $   d_setlocale="define"
 $   vms_cc_type="decc"
 $ ELSE
@@ -4699,6 +4819,7 @@ $   d_stdiobase="undef"
 $   d_stdio_cnt_lval="undef"
 $   d_stdio_ptr_lval="undef"
 $   d_stdstdio="undef"
+$   d_faststdio="undef"
 $   d_wcstombs="undef"
 $   d_mblen="undef"
 $   d_mktime="undef"
@@ -4713,6 +4834,7 @@ $   d_setlocale="undef"
 $ ENDIF
 $ d_stdio_ptr_lval_sets_cnt="undef"
 $ d_stdio_ptr_lval_nochange_cnt="define"
+$ usefaststdio="undef"
 $!
 $! Sockets?
 $ if Has_Socketshr .OR. Has_Dec_C_Sockets
@@ -4893,7 +5015,7 @@ $ IF tmp .EQS. "preserve"
 $ THEN 
 $   d_nv_preserves_uv = "define"
 $   echo "Yes, they can." 
-$   d_nv_preserves_uv_bits = F$STRING(F$INTEGER(uvsize) * 8)
+$   nv_preserves_uv_bits = F$STRING(F$INTEGER(uvsize) * 8)
 $ ELSE
 $   d_nv_preserves_uv = "undef"
 $   echo "No, they can't."
@@ -4917,26 +5039,32 @@ $   WS "    exit(0);"
 $   WS "}"
 $   CS
 $   GOSUB compile
-$   d_nv_preserves_uv_bits = tmp
+$   nv_preserves_uv_bits = tmp
 $ ENDIF
 $!
-$ echo4 "Checking whether your kill() uses SYS$FORCEX..."
+$ echo4 "Checking if kill() uses SYS$FORCEX or can't be called from a signal handler..."
 $ kill_by_sigprc = "undef"
 $ OS
 $ WS "#include <stdio.h>"
 $ WS "#include <signal.h>"
-$ WS "void handler(int s) { printf(""%d\n"",s); } "
+$ WS "#include <unistd.h>"
+$ WS "void handler1(int s) { printf(""%d"",s); kill(getpid(),2); }"
+$ WS "void handler2(int s) { printf(""%d"",s); }"
 $ WS "main(){"
 $ WS "    printf(""0"");"
-$ WS "    signal(1,handler); kill(0,1);"
+$ WS "    signal(1,handler1);"
+$ WS "    signal(2,handler2);"
+$ WS "    kill(getpid(),1);"
+$ WS "    sleep(1);"
+$ WS "    printf(""\n"");"
 $ WS "}"
 $ CS
 $ ON ERROR THEN CONTINUE
 $ GOSUB compile
-$ IF tmp .NES. "01"
+$ IF tmp .NES. "012"
 $ THEN 
-$   echo "Yes, it does." 
-$   echo4 "Checking whether we can use SYS$SIGPRC instead"
+$   echo4 "Yes, it has at least one of those limitations."
+$   echo4 "Checking whether we can use SYS$SIGPRC instead..."
 $   OS
 $   WS "#include <stdio.h>"
 $   WS "#include <lib$routines.h>"
@@ -4956,7 +5084,7 @@ $   CS
 $   GOSUB compile
 $   IF tmp .EQS. "1"
 $   THEN
-$       echo "looks like we can"
+$       echo4 "Yep, we can."
 $       kill_by_sigprc = "define"
 $!
 $!      since SIGBUS and SIGSEGV indistinguishable, make them the same here.
@@ -4964,23 +5092,27 @@ $!      sigusr1 and sigusr2 show up in VMS6.2 and later
 $!
 $       if  vms_ver .GES. "6.2"
 $       then
-$           sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2"",0"
+$           sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2"
 $           psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
 $           psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",0"
 $           sig_name_init = psnwc1 + psnwc2
-$           sig_num="0 1 2 3 4 5 6 7 8 9 10 10 12 13 14 15 6 16 17"",0"
-$           sig_num_init="0,1,2,3,4,5,6,7,8,9,10,10,12,13,14,15,6,16,17,0"
+$           sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17"
+$           sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0"
 $           sig_size="19"
 $       else
-$           sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT"",0"
+$           sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT"
 $           psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS"","
 $           psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",0"
 $           sig_name_init = psnwc1 + psnwc2
-$           sig_num="0 1 2 3 4 5 6 7 8 9 10 10 12 13 14 15 6"",0"
-$           sig_num_init="0,1,2,3,4,5,6,7,8,9,10,10,12,13,14,15,6,0"
+$           sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6"
+$           sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,0"
 $           sig_size="17"
 $       endif
+$   ELSE
+$       echo4 "Nope, we can't."
 $   ENDIF
+$ ELSE
+$   echo4 "Nope, it doesn't."
 $ ENDIF
 $ DELETE/SYMBOL tmp
 $!
@@ -5035,6 +5167,9 @@ $ WC "PERL_VERSION='" + patchlevel + "'"
 $ WC "PERL_SUBVERSION='" + subversion + "'" 
 $ WC "PERL_API_VERSION='" + api_version + "'" 
 $ WC "PERL_API_SUBVERSION='" + api_subversion + "'"
+$ WC "_a='" + lib_ext + "'"
+$ WC "_exe='" + exe_ext + "'"
+$ WC "_o='" + obj_ext + "'"
 $ WC "alignbytes='" + alignbytes + "'"
 $ WC "aphostname='write sys$output f$edit(f$getsyi(\""SCSNODE\""),\""TRIM,LOWERCASE\"")'"
 $ WC "ar='" + "'"
@@ -5063,7 +5198,13 @@ $ WC "cpplast='" + cpplast + "'"
 $ WC "cppminus='" + cppminus + "'"
 $ WC "cpprun='" + cpprun + "'"
 $ WC "cppstdin='" + cppstdin + "'"
+$ IF use64bitint .OR. use64bitint .EQS. "define"
+$ THEN
+$!  gcvt() does not work for > 16 decimal places; fallback to sprintf
+$   WC "d_Gconvert='sprintf((b),""%.*" + (nvgformat-"""") + ",(n),(x))'"
+$ ELSE
 $   WC "d_Gconvert='my_gconvert(x,n,t,b)'"
+$ ENDIF
 $ WC "d_PRIEldbl='" + d_PRIEUldbl + "'"
 $ WC "d_PRIFldbl='" + d_PRIFUldbl + "'"
 $ WC "d_PRIGldbl='" + d_PRIGUldbl + "'"
@@ -5079,6 +5220,7 @@ $ WC "d_SCNfldbl='" + d_SCNfldbl + "'"
 $ WC "d__fwalk='undef'"
 $ WC "d_access='" + d_access + "'"
 $ WC "d_accessx='undef'"
+$ WC "d_aintl='undef'"
 $ WC "d_alarm='define'"
 $ WC "d_archlib='define'"
 $ WC "d_atolf='" + d_atolf + "'"
@@ -5087,7 +5229,6 @@ $ WC "d_attribut='" + d_attribut + "'"
 $ WC "d_bcmp='" + d_bcmp + "'"
 $ WC "d_bcopy='" + d_bcopy + "'"
 $ WC "d_bincompat3='undef'"
-$ WC "d_bincompat5005='undef'"
 $! WC "d_bsdpgrp='undef'"
 $ WC "d_bsdgetpgrp='undef'"
 $ WC "d_bsdsetpgrp='undef'"
@@ -5101,6 +5242,7 @@ $ WC "d_chsize='undef'"
 $ WC "d_class='undef'"
 $ WC "d_cmsghdr_s='undef'"
 $ WC "d_const='define'"
+$ WC "d_copysignl='define'"
 $ WC "d_crypt='define'"
 $ WC "d_csh='undef'"
 $ WC "d_cuserid='define'"
@@ -5175,7 +5317,7 @@ $ WC "d_getpent='" + d_getpent + "'"
 $ WC "d_getpgid='undef'"
 $ WC "d_getpgrp2='undef'"
 $ WC "d_getpgrp='undef'"
-$ WC "d_getppid='undef'"
+$ WC "d_getppid='" + d_getppid + "'"
 $ WC "d_getprior='undef'"
 $ WC "d_getprotoprotos='" + d_getprotoprotos + "'"
 $ WC "d_getprpwnam='undef'"
@@ -5190,6 +5332,7 @@ $ WC "d_gnulibc='undef'"
 $ WC "d_grpasswd='undef'"
 $ WC "d_hasmntopt='undef'"
 $ WC "d_htonl='" + d_htonl + "'"
+$ WC "d_ilogbl='undef'"
 $ WC "d_index='" + d_index + "'"
 $ WC "d_inetaton='undef'"
 $ WC "d_int64_t='" + d_int64_t + "'"
@@ -5227,6 +5370,7 @@ $ WC "d_mkstemps='" + d_mkstemps + "'"
 $ WC "d_mktime='" + d_mktime + "'"
 $ WC "d_mmap='" + d_mmap + "'"
 $ WC "d_modfl='" + d_modfl + "'"
+$ WC "d_modflproto='" + d_modflproto + "'"
 $ WC "d_modfl_pow32_bug='undef'"
 $ WC "d_mprotect='" + d_mprotect + "'"
 $ WC "d_msg='undef'"
@@ -5239,10 +5383,11 @@ $ WC "d_msghdr_s='undef'"
 $ WC "d_msync='" + d_msync + "'"
 $ WC "d_munmap='" + d_munmap + "'"
 $ WC "d_mymalloc='" + d_mymalloc + "'"
+$ WC "d_nanosleep='undef'"
 $ WC "d_nice='define'"
 $ WC "d_nl_langinfo='" + d_nl_langinfo + "'"
 $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'"
-$ WC "d_nv_preserves_uv_bits='" + d_nv_preserves_uv_bits + "'"
+$ WC "nv_preserves_uv_bits='" + nv_preserves_uv_bits + "'"
 $ WC "d_off64_t='" + d_off64_t + "'"
 $ WC "d_old_pthread_create_joinable='" + d_old_pthread_create_joinable + "'"
 $ WC "d_oldarchlib='define'"
@@ -5253,9 +5398,10 @@ $ WC "d_pause='define'"
 $ WC "d_perl_otherlibdirs='undef'"
 $ WC "d_phostname='" + d_phostname + "'"
 $ WC "d_pipe='define'"
-$ WC "d_poll='undef'"
+$ WC "d_poll='" + d_poll + "'"
 $ WC "d_procselfexe='undef'"
 $ WC "d_pthread_atfork='undef'"
+$ WC "d_pthread_attr_setscope='" + d_pthread_attr_setscope + "'"
 $ WC "d_pthread_yield='" + d_pthread_yield + "'"
 $ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'"
 $ WC "d_pwage='undef'"
@@ -5280,6 +5426,7 @@ $ WC "d_safebcpy='undef'"
 $ WC "d_safemcpy='define'"
 $ WC "d_sanemcmp='define'"
 $ WC "d_sbrkproto='define'"
+$ WC "d_scalbnl='undef'"
 $ WC "d_sched_yield='" + d_sched_yield + "'"
 $ WC "d_scm_rights='undef'"
 $ WC "d_seekdir='define'"
@@ -5342,6 +5489,7 @@ $ WC "d_stdio_ptr_lval_sets_cnt='" + d_stdio_ptr_lval_sets_cnt + "'"
 $ WC "d_stdio_stream_array='undef'"
 $ WC "d_stdiobase='" + d_stdiobase + "'"
 $ WC "d_stdstdio='" + d_stdstdio + "'"
+$ WC "d_faststdio='" + d_faststdio + "'"
 $ WC "d_strchr='define'"
 $ WC "d_strcoll='" + d_strcoll + "'"
 $ WC "d_strctcpy='define'"
@@ -5368,7 +5516,16 @@ $ WC "d_tcgetpgrp='undef'"
 $ WC "d_tcsetpgrp='undef'"
 $ WC "d_telldir='define'"
 $ WC "d_telldirproto='define'"
+$ WC "d_time='define'"
 $ WC "d_times='define'"
+$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.0")
+$ THEN
+$   WC "d_tm_tm_gmtoff='define'"
+$   WC "d_tm_tm_zone='define'"
+$ ELSE
+$   WC "d_tm_tm_gmtoff='undef'"
+$   WC "d_tm_tm_zone='undef'"
+$ ENDIF
 $ WC "d_truncate='" + d_truncate + "'"
 $ WC "d_tzname='" + d_tzname + "'"
 $ WC "d_u32align='define'"
@@ -5396,6 +5553,9 @@ $ WC "d_wctomb='" + d_wctomb + "'"
 $ WC "d_writev='undef'"
 $ WC "db_hashtype=' '"
 $ WC "db_prefixtype=' '"
+$ WC "db_version_major='" + "'"
+$ WC "db_version_minor='" + "'"
+$ WC "db_version_patch='" + "'"
 $ WC "dbgprefix='" + dbgprefix + "'"
 $ WC "defvoidused='15'"
 $ WC "devtype='" + devtype + "'"
@@ -5446,6 +5606,8 @@ $ WC "i64type='" + i64type + "'"
 $ WC "i8size='" + i8size + "'"
 $ WC "i8type='" + i8type + "'"
 $ WC "i_arpainet='undef'"
+$ WC "i_crypt='undef'"
+$ WC "i_db='undef'"
 $ WC "i_dbm='undef'"
 $ WC "i_dirent='" + i_dirent + "'"
 $ WC "i_dlfcn='undef'"
@@ -5487,7 +5649,7 @@ $ WC "i_sunmath='undef'"
 $ WC "i_sysaccess='" + i_sysaccess + "'"
 $ WC "i_sysdir='undef'"
 $ WC "i_sysfile='" + i_sysfile + "'"
-$ WC "i_sysioctl='undef'"
+$ WC "i_sysioctl='" + i_sysioctl + "'"
 $ WC "i_syslog='" + i_syslog + "'"
 $ WC "i_sysmman='undef'"
 $ WC "i_sysmode='" + i_sysmode + "'"
@@ -5525,9 +5687,12 @@ $ WC "installarchlib='" + installarchlib + "'"
 $ WC "installbin='" + installbin + "'"
 $ WC "installman1dir='" + installman1dir + "'"
 $ WC "installman3dir='" + installman3dir + "'"
+$ WC "installprefix='" + vms_prefix + "'"
+$ WC "installprefixexp='" + vms_prefix + ":'"
 $ WC "installprivlib='" + installprivlib + "'"
 $ WC "installscript='" + installscript + "'"
 $ WC "installsitearch='" + installsitearch + "'"
+$ WC "installsitebin='" + sitebin + "'"
 $ WC "installsitelib='" + installsitelib + "'"
 $ WC "installusrbinperl='undef'"
 $ WC "intsize='" + intsize + "'"
@@ -5589,13 +5754,14 @@ $ WC "path_sep='|'"
 $ WC "perl_root='" + perl_root + "'" ! VMS specific $trnlnm()
 $ WC "perladmin='" + perladmin + "'"
 $ WC "perllibs='" + perllibs + "'"
+$ WC "perlpath='" + "''vms_prefix':[000000]Perl''exe_ext'" + "'"
 $ WC "perl_symbol='" + perl_symbol + "'"  ! VMS specific
 $ WC "perl_verb='" + perl_verb + "'"      ! VMS specific
 $ WC "pgflquota='" + pgflquota + "'"
 $ WC "pidtype='" + pidtype + "'"
 $ WC "pm_apiversion='" + version + "'"
-$! WC "prefix='" + vms_prefix + "'"
-$ WC "prefix='" + prefix + "'"
+$ WC "prefix='" + vms_prefix + "'"
+$ WC "prefixexp='" + vms_prefix + ":'"
 $ WC "privlib='" + privlib + "'"
 $ WC "privlibexp='" + privlibexp + "'"
 $ WC "procselfexe=' '"
@@ -5623,6 +5789,7 @@ $ WC "sPRIx64='" + sPRIx64 + "'"
 $ WC "sSCNfldbl='" + sSCNfldbl + "'"
 $ WC "sched_yield='" + sched_yield + "'"
 $ WC "scriptdir='" + scriptdir + "'"
+$ WC "scriptdirexp='" + scriptdir + "'"  ! use scriptdir for now
 $ WC "seedfunc='" + seedfunc + "'"
 $ WC "selectminbits='32'"
 $ WC "selecttype='" + selecttype + "'"
@@ -5640,9 +5807,13 @@ $ WC "sig_size='" + sig_size + "'"
 $ WC "signal_t='" + signal_t + "'"
 $ WC "sitearch='" + sitearch + "'"
 $ WC "sitearchexp='" + sitearchexp + "'"
+$ WC "sitebin='" + sitebin + "'"
+$ WC "sitebinexp='" + sitebin + "'"
 $ WC "sitelib='" + sitelib + "'"
 $ WC "sitelib_stem='" + sitelib_stem + "'"
 $ WC "sitelibexp='" + sitelibexp + "'"
+$ WC "siteprefix='" + vms_prefix + "'"
+$ WC "siteprefixexp='" + vms_prefix + ":'"
 $ WC "sizesize='" + sizesize + "'"
 $ WC "sizetype='size_t'"
 $ WC "so='" + so + "'"
@@ -5681,6 +5852,7 @@ $ WC "usedebugging_perl='"+use_debugging_perl+"'"
 $ WC "usedefaulttypes='" + usedefaulttypes + "'"    ! VMS-specific
 $ WC "usecrosscompile='undef'"
 $ WC "usedl='" + usedl + "'"
+$ WC "usefaststdio='" + usefaststdio + "'"
 $ WC "useieee='" + useieee + "'"                    ! VMS-specific
 $ WC "useithreads='" + useithreads + "'"
 $ WC "uselargefiles='" + uselargefiles + "'"
@@ -5694,6 +5866,7 @@ $ WC "usereentrant='undef'"
 $ WC "usesecurelog='" + usesecurelog + "'"  ! VMS-specific
 $ WC "usesocks='undef'"
 $ WC "usethreads='" + usethreads + "'"
+$ WC "usevendorprefix='" + "'" ! try to say no, though we'll be ignored as of MM 5.90_01
 $ WC "usevfork='true'"
 $ WC "usevmsdebug='" + usevmsdebug + "'"     ! VMS-specific
 $ WC "uvoformat='" + uvoformat + "'"
@@ -5702,10 +5875,17 @@ $ WC "uvtype='" + uvtype + "'"
 $ WC "uvuformat='" + uvuformat + "'"
 $ WC "uvxformat='" + uvxformat + "'"
 $ WC "uvXUformat='" + uvXUformat + "'"
+$ WC "vendorarch='" + "'"
 $ WC "vendorarchexp='" + "'"
+$ WC "vendorbin='" + "'"
+$ WC "vendorbinexp='" + "'"
 $ WC "vendorlib_stem='" + "'"
+$ WC "vendorlib='" + "'"
 $ WC "vendorlibexp='" + "'"
+$ WC "vendorprefix='" + "'"
+$ WC "vendorprefixexp='" + "'"
 $ WC "version='" + version + "'"
+$ WC "version_patchlevel_string='" + version_patchlevel_string + "'"
 $ WC "vms_cc_type='" + vms_cc_type + "'" ! VMS specific
 $ WC "vms_prefix='" + vms_prefix + "'" ! VMS specific
 $ WC "vms_ver='" + vms_ver + "'" ! VMS specific
@@ -5713,6 +5893,115 @@ $ WC "voidflags='15'"
 $ WC "xs_apiversion='" + version + "'"
 $ WC "PERL_CONFIG_SH='true'"
 $!
+$! ## The UNIXy POSIXy reentrantey thingys ##
+$! See "Appendix B, Version-Dependency Tables" in the C RTL
+$! manual for when assorted _r functions became available.
+$!
+$ IF use_threads .AND. vms_ver .GES. "7.2"
+$ THEN
+$   WC "asctime_r_proto='REENTRANT_PROTO_B_SB'"
+$   WC "d_asctime_r='define'"
+$   WC "ctime_r_proto='REENTRANT_PROTO_B_SB'"
+$   WC "d_ctime_r='define'"
+$ ELSE
+$   WC "asctime_r_proto='0'"
+$   WC "d_asctime_r='undef'"
+$   WC "ctime_r_proto='0'"
+$   WC "d_ctime_r='undef'"
+$ ENDIF
+$ WC "d_crypt_r='undef'"
+$ WC "d_ctermid_r='undef'"
+$ WC "d_drand48_r='undef'"
+$ WC "d_endgrent_r='undef'"
+$ WC "d_endhostent_r='undef'"
+$ WC "d_endnetent_r='undef'"
+$ WC "d_endprotoent_r='undef'"
+$ WC "d_endpwent_r='undef'"
+$ WC "d_endservent_r='undef'"
+$ WC "d_getgrent_r='undef'"
+$ WC "d_getgrgid_r='undef'"
+$ WC "d_getgrnam_r='undef'"
+$ WC "d_gethostbyaddr_r='undef'"
+$ WC "d_gethostbyname_r='undef'"
+$ WC "d_gethostent_r='undef'"
+$ WC "d_getlogin_r='undef'"
+$ WC "d_getnetbyaddr_r='undef'"
+$ WC "d_getnetbyname_r='undef'"
+$ WC "d_getnetent_r='undef'"
+$ WC "d_getprotobyname_r='undef'"
+$ WC "d_getprotobynumber_r='undef'"
+$ WC "d_getprotoent_r='undef'"
+$ WC "d_getpwent_r='undef'"
+$ WC "d_getpwnam_r='undef'"
+$ WC "d_getpwuid_r='undef'"
+$ WC "d_getservbyname_r='undef'"
+$ WC "d_getservbyport_r='undef'"
+$ WC "d_getservent_r='undef'"
+$ WC "d_getspnam_r='undef'"
+$ WC "d_gmtime_r='undef'"      ! leave undef'd; we use my_gmtime
+$ WC "d_localtime_r='undef'"   ! leave undef'd; we use my_localtime
+$ WC "d_random_r='undef'"
+$ WC "d_readdir_r='define'"    ! always defined; we roll our own
+$ WC "d_readdir64_r='undef'"
+$ WC "d_setgrent_r='undef'"
+$ WC "d_sethostent_r='undef'"
+$ WC "d_setlocale_r='undef'"
+$ WC "d_setnetent_r='undef'"
+$ WC "d_setprotoent_r='undef'"
+$ WC "d_setpwent_r='undef'"
+$ WC "d_setservent_r='undef'"
+$ WC "d_srand48_r='undef'"
+$ WC "d_srandom_r='undef'"
+$ WC "d_strerror_r='undef'"
+$ WC "d_tmpnam_r='undef'"
+$ WC "d_ttyname_r='undef'"
+$ WC "ctermid_r_proto='0'"
+$ WC "crypt_r_proto='0'"
+$ WC "drand48_r_proto='0'"
+$ WC "endgrent_r_proto='0'"
+$ WC "endhostent_r_proto='0'"
+$ WC "endnetent_r_proto='0'"
+$ WC "endprotoent_r_proto='0'"
+$ WC "endpwent_r_proto='0'"
+$ WC "endservent_r_proto='0'"
+$ WC "getgrent_r_proto='0'"
+$ WC "getgrgid_r_proto='0'"
+$ WC "getgrnam_r_proto='0'"
+$ WC "gethostbyaddr_r_proto='0'"
+$ WC "gethostbyname_r_proto='0'"
+$ WC "gethostent_r_proto='0'"
+$ WC "getlogin_r_proto='0'"
+$ WC "getnetbyaddr_r_proto='0'"
+$ WC "getnetbyname_r_proto='0'"
+$ WC "getnetent_r_proto='0'"
+$ WC "getprotobyname_r_proto='0'"
+$ WC "getprotobynumber_r_proto='0'"
+$ WC "getprotoent_r_proto='0'"
+$ WC "getpwent_r_proto='0'"
+$ WC "getpwnam_r_proto='0'"
+$ WC "getpwuid_r_proto='0'"
+$ WC "getservbyname_r_proto='0'"
+$ WC "getservbyport_r_proto='0'"
+$ WC "getservent_r_proto='0'"
+$ WC "getspnam_r_proto='0'"
+$ WC "gmtime_r_proto='0'"
+$ WC "localtime_r_proto='0'"
+$ WC "random_r_proto='0'"
+$ WC "readdir_r_proto='REENTRANT_PROTO_I_TSR'"  ! always defined; we roll our own
+$ WC "readdir64_r_proto='0'"
+$ WC "setgrent_r_proto='0'"
+$ WC "sethostent_r_proto='0'"
+$ WC "setlocale_r_proto='0'"
+$ WC "setnetent_r_proto='0'"
+$ WC "setprotoent_r_proto='0'"
+$ WC "setpwent_r_proto='0'"
+$ WC "setservent_r_proto='0'"
+$ WC "srand48_r_proto='0'"
+$ WC "srandom_r_proto='0'"
+$ WC "strerror_r_proto='0'"
+$ WC "tmpnam_r_proto='0'"
+$ WC "ttyname_r_proto='0'"
+$!
 $! ##END WRITE NEW CONSTANTS HERE##
 $!
 $ CLOSE CONFIG
@@ -5828,9 +6117,9 @@ $ mcr []munchconfig 'config_sh' [-]config_h.sh
 $ ! Concatenate them together
 $ copy [-]config.local,[-]config.main [-]config.h
 $! Clean up
-$ DELETE/NOLOG [-]CONFIG.MAIN;*
-$ DELETE/NOLOG [-]CONFIG.LOCAL;*
-$ DELETE/NOLOG [-]CONFIG.FDL;*
+$ DELETE/NOLOG/NOCONFIRM [-]CONFIG.MAIN;*
+$ DELETE/NOLOG/NOCONFIRM [-]CONFIG.LOCAL;*
+$ DELETE/NOLOG/NOCONFIRM [-]CONFIG.FDL;*
 $!
 $ IF ccname .EQS. "DEC"
 $ THEN
@@ -5861,7 +6150,7 @@ $   ELSE
 $     SOCKET_REPLACE = "SOCKET="
 $   ENDIF
 $ ENDIF
-$ IF Use_Threads
+$ IF use_threads
 $ THEN
 $   IF (vms_ver .LES. "6.2")
 $   THEN
@@ -5949,7 +6238,7 @@ $      Write Sys$Output "''targ'ing ''ext' . . ."
 $      On Error Then Continue
 $    EndIf
 $    If redesc Then -
-       miniperl "-I[''up'.lib]" Makefile.PL "INST_LIB=[''up'.lib]" "INST_ARCHLIB=[''up'.lib]"
+       miniperl "-I[''up'.lib]" Makefile.PL "INST_LIB=[''up'.lib]" "INST_ARCHLIB=[''up'.lib]"  "PERL_CORE=1"
 $    makeutil 'targ'
 $    i = i + 1
 $    Set Def &def
@@ -5978,7 +6267,7 @@ $ if f$search("extra.pods") .eqs. "" .or. P1 .eqs. "FORCE" then -
 $ open/read/error=extra_close EXTRA extra.pods
 $extra_loop:
 $ read/error=extra_close/END_OF_FILE=extra_close EXTRA file
-$ file_type = f$parse(file,,,"TYPE",) - "."
+$ file_type = f$edit(f$parse(file,,,"TYPE",),"LOWERCASE") - "."
 $ if file_type .nes. "VMS" .and. file_type .nes. "vms"
 $ then
 $   pod_file = "[.pod]perl''file_type'.pod"
@@ -5994,7 +6283,8 @@ $       file_rdt = f$cvtime(f$file_attributes(file,"RDT"))
 $       pod_file_rdt = f$cvtime(f$file_attributes(pod_file,"RDT"))
 $       if file_rdt .GTS. pod_file_rdt then do_copy := true
 $     endif
-$     if do_copy then copy/log/noconfirm 'file' 'pod_file'
+$     ! wacky method to preserve case on ODS-5 even when parse style is traditional
+$     if do_copy then mcr sys$disk:[]miniperl.exe -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});"
 $   endif
 $ endif
 $ goto extra_loop
@@ -6049,13 +6339,21 @@ $ EXIT
 $ ENDSUBROUTINE ! Bad_environment
 $ echo ""
 $ echo4 "Checking for dangerous pre-existing global symbols and logical names."
-$ CALL Bad_environment "TMP"
+$ CALL Bad_environment "COMP"
+$ CALL Bad_environment "EXT"
+$ CALL Bad_environment "FOO"
 $ CALL Bad_environment "LIB"
+$ CALL Bad_environment "LIST"
+$ CALL Bad_environment "MIME"
+$ CALL Bad_environment "POSIX"
+$ CALL Bad_environment "SYS"
 $ CALL Bad_environment "T"
-$ CALL Bad_environment "FOO"
-$ CALL Bad_environment "EXT"
-$ CALL Bad_environment "SOME_LOGICAL_NAME_NOT_LIKELY"
-$ CALL Bad_environment "DOWN_LOGICAL_NAME_NOT_LIKELY"
+$ CALL Bad_environment "THREAD"
+$ CALL Bad_environment "THREADS"
+$ CALL Bad_environment "TIME"
+$ CALL Bad_environment "TMP"
+$ CALL Bad_environment "UNICODE"
+$ CALL Bad_environment "UTIL"
 $ CALL Bad_environment "TEST" "SYMBOL"
 $ IF f$search("config.msg") .eqs. "" THEN echo "OK."
 $!
@@ -6088,7 +6386,18 @@ $ ENDIF ! (.NOT.perl_symbol)
 $ echo ""
 $ echo4 "The perl_setup.com file is now being written..."
 $ file_2_find = "[-]perl_setup.com"
-$ OPEN/WRITE CONFIG 'file_2_find'
+$!
+$! Folks are likely to want to edit perl_setup.com.
+$! STMLF RFM plays nicer with ported editors than does VFC.
+$!
+$ CREATE [-]CONFIG.FDL
+$ DECK
+RECORD
+  FORMAT STREAM_LF
+$ EOD
+$ CREATE /FDL=[-]CONFIG.FDL 'file_2_find'
+$ OPEN/APPEND CONFIG 'file_2_find'
+$ DELETE/NOLOG/NOCONFIRM [-]CONFIG.FDL;
 $ WRITE CONFIG "$!"
 $ WRITE CONFIG "$! Perl_Setup.com    ''cf_time'"
 $ IF cf_email.NES.perladmin
@@ -6099,31 +6408,32 @@ $ WRITE CONFIG "$! This perl configured & administered by ''perladmin'"
 $ ENDIF
 $ WRITE CONFIG "$!"
 $ prefix = prefix - "000000."
-$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN -
-    prefix = prefix - "]" + ".]" 
+$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" 
 $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'"
 $ WRITE CONFIG "$ ext = "".exe"""
 $ IF sharedperl
 $ THEN
-$   write config "$ if f$getsyi(""HW_MODEL"") .ge. 1024 then ext = "".AXE"""
+$ WRITE CONFIG "$ if f$getsyi(""HW_MODEL"") .ge. 1024 then ext = "".AXE"""
 $ ENDIF
 $ IF (perl_symbol)
 $ THEN
+$   perl_setup_perl = "'" + "'perl'" ! triple quoted foreign command symbol
 $   IF (use_vmsdebug_perl)
 $   THEN
-$     WRITE CONFIG "$ dbgperl :== $''vms_prefix':[000000]dbgPerl'ext'"
-$     WRITE CONFIG "$ perl    :== $''vms_prefix':[000000]ndbgPerl'ext'"
-$     WRITE CONFIG "$ define dbgPerlShr ''vms_prefix':[000000]dbgPerlShr'ext'"
+$     WRITE CONFIG "$ dbgperl :== $''vms_prefix':[000000]dbgperl'ext'"
+$     WRITE CONFIG "$ perl    :== $''vms_prefix':[000000]ndbgperl'ext'"
+$     WRITE CONFIG "$ define dbgperlshr ''vms_prefix':[000000]dbgperlshr'ext'"
 $   ELSE
 $     WRITE CONFIG "$ perl :== $''vms_prefix':[000000]Perl'ext'"
-$     WRITE CONFIG "$ define PerlShr ''vms_prefix':[000000]PerlShr'ext'"
+$     WRITE CONFIG "$ define perlshr ''vms_prefix':[000000]perlshr'ext'"
 $   ENDIF
 $ ELSE ! .NOT.perl_symbol
+$   perl_setup_perl = "perl" ! command verb
 $   IF (use_vmsdebug_perl)
 $   THEN
-$     WRITE CONFIG "$ define dbgPerlShr ''vms_prefix':[000000]dbgPerlShr'ext'"
+$     WRITE CONFIG "$ define dbgperlshr ''vms_prefix':[000000]dbgperlshr'ext'"
 $   ELSE
-$     WRITE CONFIG "$ define PerlShr ''vms_prefix':[000000]PerlShr'ext'"
+$     WRITE CONFIG "$ define perlshr ''vms_prefix':[000000]perlshr'ext'"
 $   ENDIF
 $   IF perl_verb .EQS. "PROCESS"
 $   THEN
@@ -6143,42 +6453,35 @@ $ ENDIF
 $ WRITE CONFIG "$!"
 $ WRITE CONFIG "$! Symbols for commonly used programs:"
 $ WRITE CONFIG "$!"
-$ IF (perl_symbol)
-$ THEN
-$   WRITE CONFIG "$ Perldoc  == ""'"+"'Perl' ''vms_prefix':[lib.pod]Perldoc.com -t"""
-$   WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text"""
-$   WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html"""
-$   WRITE CONFIG "$ pod2latex == ""'"+"'Perl' ''vms_prefix':[lib.pod]pod2latex.com"""
-$   WRITE CONFIG "$!pod2man  == ""'"+"'Perl' pod2man"""
-$   WRITE CONFIG "$!Perlbug  == ""'"+"'Perl' ''vms_prefix':[lib]Perlbug.com"""
-$   WRITE CONFIG "$ c2ph     == ""'"+"'Perl' ''vms_prefix':[utils]c2ph.com"""
-$   IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions)
-$   THEN
-$     WRITE CONFIG "$ dprofpp     == ""'"+"'Perl' ''vms_prefix':[utils]dprofpp.com"""
-$   ENDIF 
-$   WRITE CONFIG "$ h2ph     == ""'"+"'Perl' ''vms_prefix':[utils]h2ph.com"""
-$   WRITE CONFIG "$ h2xs     == ""'"+"'Perl' ''vms_prefix':[utils]h2xs.com"""
-$   WRITE CONFIG "$!perlcc   == ""'"+"'Perl' ''vms_prefix':[utils]perlcc.com"""
-$   WRITE CONFIG "$ perlivp  == ""'"+"'Perl' ''vms_prefix':[utils]perlivp.com"""
-$   WRITE CONFIG "$ splain   == ""'"+"'Perl' ''vms_prefix':[utils]splain.com"""
-$ ELSE
-$   WRITE CONFIG "$ Perldoc  == ""Perl ''vms_prefix':[lib.pod]Perldoc.com -t"""
-$   WRITE CONFIG "$ pod2text == ""Perl pod2text"""
-$   WRITE CONFIG "$ pod2html == ""Perl pod2html"""
-$   WRITE CONFIG "$ pod2latex == ""Perl ''vms_prefix':[lib.pod]pod2latex.com"""
-$   WRITE CONFIG "$!pod2man  == ""Perl pod2man"""
-$   WRITE CONFIG "$!Perlbug  == ""Perl ''vms_prefix':[lib]Perlbug.com"""
-$   WRITE CONFIG "$ c2ph     == ""Perl ''vms_prefix':[utils]c2ph.com"""
-$   IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions)
-$   THEN
-$     WRITE CONFIG "$ dprofpp     == ""Perl ''vms_prefix':[utils]dprofpp.com"""
-$   ENDIF 
-$   WRITE CONFIG "$ h2ph     == ""Perl ''vms_prefix':[utils]h2ph.com"""
-$   WRITE CONFIG "$ h2xs     == ""Perl ''vms_prefix':[utils]h2xs.com"""
-$   WRITE CONFIG "$!perlcc   == ""Perl ''vms_prefix':[utils]perlcc.com"""
-$   WRITE CONFIG "$ perlivp  == ""Perl ''vms_prefix':[utils]perlivp.com"""
-$   WRITE CONFIG "$ splain   == ""Perl ''vms_prefix':[utils]splain.com"""
-$ ENDIF
+$ WRITE CONFIG "$ c2ph       == """ + perl_setup_perl + " ''vms_prefix':[utils]c2ph.com"""
+$ WRITE CONFIG "$ cpan       == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com"""
+$ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions)
+$ THEN
+$ WRITE CONFIG "$ dprofpp    == """ + perl_setup_perl + " ''vms_prefix':[utils]dprofpp.com"""
+$ ENDIF 
+$ WRITE CONFIG "$ enc2xs     == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com"""
+$ WRITE CONFIG "$!find2perl  == """ + perl_setup_perl + " ''vms_prefix':[utils]find2perl.com"""
+$ WRITE CONFIG "$ h2ph       == """ + perl_setup_perl + " ''vms_prefix':[utils]h2ph.com"""
+$ WRITE CONFIG "$ h2xs       == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com"""
+$ WRITE CONFIG "$ libnetcfg  == """ + perl_setup_perl + " ''vms_prefix':[utils]libnetcfg.com"""
+$ WRITE CONFIG "$!perlbug    == """ + perl_setup_perl + " ''vms_prefix':[lib]perlbug.com"""
+$ WRITE CONFIG "$!perlcc     == """ + perl_setup_perl + " ''vms_prefix':[utils]perlcc.com"""
+$ WRITE CONFIG "$ perldoc    == """ + perl_setup_perl + " ''vms_prefix':[lib.pod]perldoc.com -t"""
+$ WRITE CONFIG "$ perlivp    == """ + perl_setup_perl + " ''vms_prefix':[utils]perlivp.com"""
+$ WRITE CONFIG "$ piconv     == """ + perl_setup_perl + " ''vms_prefix':[utils]piconv.com"""
+$ WRITE CONFIG "$ pl2pm      == """ + perl_setup_perl + " ''vms_prefix':[utils]pl2pm.com"""
+$ WRITE CONFIG "$ pod2html   == """ + perl_setup_perl + " pod2html"""
+$ WRITE CONFIG "$ pod2latex  == """ + perl_setup_perl + " ''vms_prefix':[lib.pod]pod2latex.com"""
+$ WRITE CONFIG "$ pod2text   == """ + perl_setup_perl + " pod2text"""
+$ WRITE CONFIG "$!pod2man    == """ + perl_setup_perl + " pod2man"""
+$ WRITE CONFIG "$ pod2usage  == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2usage.com"""
+$ WRITE CONFIG "$ podchecker == """ + perl_setup_perl + " ''vms_prefix':[utils]podchecker.com"""
+$ WRITE CONFIG "$ podselect  == """ + perl_setup_perl + " ''vms_prefix':[utils]podselect.com"""
+$ WRITE CONFIG "$ psed       == """ + perl_setup_perl + " ''vms_prefix':[utils]psed.com"""
+$ WRITE CONFIG "$ pstruct    == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com"""
+$ WRITE CONFIG "$ s2p        == """ + perl_setup_perl + " ''vms_prefix':[utils]s2p.com"""
+$ WRITE CONFIG "$ splain     == """ + perl_setup_perl + " ''vms_prefix':[utils]splain.com"""
+$ WRITE CONFIG "$ xsubpp     == """ + perl_setup_perl + " ''vms_prefix':[utils]xsubpp.com"""
 $ CLOSE CONFIG
 $!
 $ echo  ""
@@ -6237,20 +6540,21 @@ $ echo4 ""
 $!
 $ IF ( F$SEARCH("config.msg").NES."" ) 
 $ THEN
-$   echo "Hmm.  I also noted the following information while running:"
-$   echo ""
-$   type config.msg
+$   echo4 "Hmm.  I also noted the following information while running:"
+$   echo4 ""
+$   TYPE/OUTPUT=SYS$ERROR: config.msg
 $   SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) config.msg
 $   DELETE/NOLOG/NOCONFIRM config.msg;
 $ ENDIF
 $!
 $Clean_up:
+$ SET NOON
 $ IF (silent)
 $ THEN
+$   CLOSE/NOLOG STDOUT
 $   DEASSIGN SYS$OUTPUT
-$!   DEASSIGN SYS$ERROR
 $ ENDIF
-$ IF F$GETJPI("","FILCNT").GT.vms_filcnt THEN CLOSE CONFIG
+$ CLOSE/NOLOG CONFIG
 $ IF F$GETJPI("","FILCNT").GT.vms_filcnt
 $ THEN WRITE SYS$ERROR "%Config-W-VMS, WARNING: There is a file still open"
 $ ENDIF