This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct code-like snippet in documentation
[perl5.git] / configure.com
index ffcbc22..a78388b 100644 (file)
@@ -36,7 +36,6 @@ $! VMS-isms we will need:
 $ echo = "write sys$output "
 $ cat  = "type"
 $ delete := delete ! local symbol overrides globals with qualifiers
-$ gcc_symbol = "gcc"
 $ ld = "Link/nodebug"
 $ ans = ""
 $ macros = ""
@@ -49,7 +48,7 @@ $ unlink_all_versions = "n"
 $ builder = "MMK"
 $ use_vmsdebug_perl = "n"
 $ use64bitall = "n"
-$ use64bitint = "n"
+$ use64bitint = "y"
 $ uselongdouble = "n"
 $ uselargefiles = "y"
 $ usestdstat = "n"
@@ -66,8 +65,6 @@ $ dynamic_ext = ""
 $ nonxs_ext = ""
 $ nonxs_ext2 = ""
 $ vms_default_directory_name = F$ENVIRONMENT("DEFAULT")
-$ max_allowed_dir_depth = 3  ! e.g. [A.B.PERLxxx] not [A.B.C.PERLxxx]
-$! max_allowed_dir_depth = 2 ! e.g. [A.PERLxxx] not [A.B.PERLxxx]
 $!
 $! Sebastian Bazley's request: close the CONFIG handle with /NOLOG
 $! qualifier "just in case" (configure.com is re @ed in a bad state).
@@ -148,7 +145,6 @@ $ ccname="DECC"
 $ Dec_C_Version = ""
 $ cxxversion = ""
 $ use_threads = "F"
-$ use_5005_threads = "N"
 $ use_ithreads = "N"
 $!
 $!: option parsing
@@ -344,8 +340,8 @@ $   DECK
  "-r" : reuse C symbols value if possible (skips costly nm extraction).*
  "-s" : silent mode, only echoes questions and essential information.
  -"D" : define symbol to have some value:                              *
-         -"Dsymbol"         symbol gets the value 'define'
-         -"Dsymbol=value"   symbol gets the value 'value'
+         -"Dsymbol"             symbol gets the value 'define'
+         -"Dsymbol=some value"  symbol is set to "some value"
   -E  : stop at the end of questions, after having produced config.sh. *
   -K  : do not use unless you know what you are doing.
   -O  : let -D and -U override definitions from loaded configuration file. *
@@ -447,28 +443,27 @@ $     GOTO Beyond_manifest
 $   ENDIF
 $ ELSE
 $! MANIFEST. has been found and we have set def'ed there.
-$! Time to bail out before it's too late, i.e. too deep.
-$! Depth check is unnecessary on Alpha VMS V7.2++ (even for ODS-2).
-$   tmp = f$extract(1,3,f$edit(f$getsyi("VERSION"),"TRIM,COLLAPSE"))
-$   IF (tmp .GES. "7.2") .AND. (F$GETSYI("HW_MODEL") .GE. 1024) THEN GOTO Beyond_depth_check
-$! Depth check also unnecessary on ODS 5 (or later) file systems.
-$   tmp = F$INTEGER(F$GETDVI(F$ENVIRONMENT("DEFAULT"),"ACPTYPE") - "F11V")
-$   IF (tmp .GE. 5) THEN GOTO Beyond_depth_check
-$   IF (F$ELEMENT(max_allowed_dir_depth,".",F$ENVIRONMENT("DEFAULT")).nes.".")
-$   THEN
-$     TYPE SYS$INPUT:
-$     DECK
-%Config-E-VMS, ERROR:
- Sorry! It apears as though your perl build sub-directory is already too
- deep into the VMS file system. Please try moving stuff into a shallower 
- directory (or altering the "max_allowed_dir_depth" parameter).
-$     EOD
-$     echo4 "ABORTING..."
-$     SET DEFAULT 'vms_default_directory_name' !be kind rewind
-$     STOP
-$     EXIT !2 !$STATUS = "%X00000002" (error)
-$   ENDIF
-$Beyond_depth_check:
+$!
+$ escape_extended_chars: subroutine
+$   string = 'p1' ! It's the name of the symbol
+$   chars_to_escape = p2
+$   sindex = 0
+$   slength = f$length(string)
+$   loop_over_chars:
+$     if sindex .eq. slength then goto end_loop_over_chars
+$     char = f$extract(sindex, 1, string)
+$     if f$locate(char, chars_to_escape) .lt. f$length(chars_to_escape)
+$     then
+$       string = f$extract(0, sindex, string) + "^" + f$extract(sindex, slength, string)
+$       slength = slength + 1 ! we've increased overall length by 1
+$       sindex = sindex + 1   ! don't check the char we just escaped again
+$     endif
+$     sindex = sindex + 1
+$     goto loop_over_chars
+$ end_loop_over_chars:
+$ 'p1' == string
+$!
+$ endsubroutine
 $!
 $! after finding MANIFEST let's create (but not yet enter) the UU subdirectory
 $!
@@ -511,6 +506,9 @@ $       line = F$EDIT(line,"TRIM, COMPRESS")
 $       file_2_find = F$EXTRACT(0,F$LOCATE(" ",line),line) 
 $       IF F$LOCATE("/",file_2_find) .NE. F$LENGTH(file_2_find) 
 $       THEN 
+$         escaped_fname == file_2_find
+$         call escape_extended_chars escaped_fname "~!#&\'`()+@{},;[]%^=\"
+$         file_2_find = escaped_fname
 $Re_strip_line_manifest:
 $         loca = F$LOCATE("/",file_2_find)
 $         ante = F$EXTRACT(0,loca,file_2_find)
@@ -927,7 +925,7 @@ $   config_symbols1 ="|installprivlib|installscript|installsitearch|installsitel
 $   config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|usecxx|use64bitall|use64bitint|"
 $   config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|uselongdouble|usemultiplicity|usemymalloc|usedebugging_perl|"
 $   config_symbols4 ="|usesecurelog|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|"
-$   config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads|useshortenedsymbols|useversionedarchname"
+$   config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads|useshortenedsymbols|useversionedarchname|default_inc_excludes_dot"
 $!  
 $   open/read CONFIG 'config_sh'
 $   rd_conf_loop:
@@ -1161,8 +1159,7 @@ $! base name early because not all questions are worth asking on all
 $! platforms.
 $!
 $! Please use F$ELEMENT(0,"-",archname) .EQS. "VMS_AXP" (or
-$! "VMS_IA64") from here on to allow cross-platform configuration (e.g.
-$! configure a IA64 build on an Alpha).
+$! "VMS_IA64", "VMS_x86_64", etc.) from here on to query the current architecture.
 $!
 $ IF (F$GETSYI("HW_MODEL") .LT. 1024 .AND. F$GETSYI("HW_MODEL") .GT. 0)
 $ THEN 
@@ -1172,16 +1169,15 @@ $   exit 44
 $ ELSE
 $   IF (F$GETSYI("ARCH_TYPE") .EQ. 2)
 $   THEN
-$       archname = "VMS_AXP"
-$       otherarch = "IA64"
+$       archname = "VMS_AXP"  ! oops, F$GETSYI("ARCH_NAME") gives us 'Alpha' not 'AXP'
 $       arch_type = "ARCH-TYPE=__AXP__"
 $   ELSE
-$       archname = "VMS_IA64"
-$       otherarch = "Alpha"
-$       arch_type = "ARCH-TYPE=__IA64__"
+$!      This works for Itanium and x86_64 and hopefully whatever's next (AARCH64? RISC-V?)
+$       archname = "VMS_" + F$GETSYI("ARCH_NAME")
+$       arch_type = "ARCH-TYPE=__" + F$GETSYI("ARCH_NAME") + "__"
 $   ENDIF
-$   alignbytes="8"
 $ ENDIF
+$ alignbytes="8"
 $!
 $!: set the base revision
 $ baserev="5.0"
@@ -1291,7 +1287,6 @@ $!
 $ version = revision + "_" + patchlevel + "_" + subversion
 $!
 $!: see if we need a special compiler
-$! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands
 $!
 $ nocc = "f"
 $ vms_cc_dflt = ""
@@ -1305,8 +1300,6 @@ $ WRITE CONFIG "#include <stdio.h>"
 $ WRITE CONFIG "int main() {"
 $ WRITE CONFIG "#ifdef __DECC"
 $ WRITE CONFIG "        printf(""/DECC\n"");"
-$ WRITE CONFIG "#else"
-$ WRITE CONFIG "        printf(""/VAXC\n"");"
 $ WRITE CONFIG "#endif"
 $ WRITE CONFIG "        exit(0);"
 $ WRITE CONFIG "}"
@@ -1321,73 +1314,20 @@ $ SET ON
 $ IF (silent) THEN GOSUB Shut_up
 $ IF tmp.NE.%X10B90001
 $ THEN 
-$  IF tmp.NE.%X10000001
-$  THEN 
-$    nocc = "t"  !%X10000001 is return from gcc
-$    GOTO Gcc_initial_check
-$  ENDIF
+$   GOTO Cxx_initial_check
 $ ENDIF
 $!
 $ GOSUB List_Parse
 $ IF .NOT.silent THEN echo ""
 $ echo "Default ""cc"" is ''line' ''archsufx' ''F$GETSYI("VERSION")'" 
-$ IF F$LOCATE("VAX",line).NE.F$LENGTH(line) 
+$ IF (F$LOCATE("VSI",line).NE.F$LENGTH(line)) -
+  .or.(F$LOCATE("HP",F$EDIT(line,"UPCASE")).NE.F$LENGTH(line)) -
+  .or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line))
 $ THEN 
-$   IF .NOT.silent
-$   THEN 
-$     echo "Will try cc/decc..."
-$   ENDIF
-$   SET NOON
-$   DEFINE/USER_MODE SYS$ERROR NL:
-$   DEFINE/USER_MODE SYS$OUTPUT NL:
-$   cc/decc/NoObj/list=ccvms.lis ccvms.c
-$   tmp = $status
-$   SET ON
-$   IF (silent) THEN GOSUB Shut_up
-$   IF tmp.NE.%X10B90001
-$   THEN
-$     echo "Apparently you don't have that one."
-$   ELSE
-$     GOSUB List_parse
-$     echo "You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'"
-$     vms_cc_available = vms_cc_available + "cc/decc "
-$   ENDIF
-$ ELSE
-$   IF (F$LOCATE("DEC",line).NE.F$LENGTH(line)).or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line)) -
-    .or.(F$LOCATE("HP",F$EDIT(line,"UPCASE")).NE.F$LENGTH(line))
-$   THEN 
-$     vms_cc_dflt = "/decc"
-$     vms_cc_available = vms_cc_available + "cc/decc "
-$   ENDIF
+$   vms_cc_dflt = "/decc"
+$   vms_cc_available = vms_cc_available + "cc/decc "
 $ ENDIF
 $!
-$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)
-$ THEN
-$   echo "Symbol ""''gcc_symbol'"" is not defined. I guess you do not have it."
-$   DELETE/NOLOG/NOCONFIRM gccvers.lis;
-$   GOTO Cxx_initial_check
-$ ENDIF
-$ OPEN/READ CONFIG gccvers.lis
-$GCC_List_Read:
-$ READ/END_OF_FILE=GCC_List_End CONFIG line
-$ GOTO GCC_List_Read
-$GCC_List_End:
-$ CLOSE CONFIG
-$ echo line
-$ vms_cc_available = vms_cc_available + "''gcc_symbol' "
-$ DELETE/NOLOG/NOCONFIRM gccvers.lis;
-$!
 $Cxx_initial_check:
 $!
 $! In order to build with the HP C++ compiler, invoke configure.com with "-Dusecxx" on
@@ -1481,8 +1421,6 @@ $     dflt = "cxx"
 $   ELSE
 $     dflt = "cc''vms_cc_dflt'"  !-> "cc" in case first compile went OK
 $   ENDIF
-$ ELSE
-$   dflt = gcc_symbol
 $ ENDIF
 $ rp = "Use which C compiler? [''dflt'] "
 $ GOSUB myread
@@ -1491,7 +1429,8 @@ $ THEN
 $   ans = F$EDIT(ans,"TRIM, COMPRESS, LOWERCASE")
 $   Mcc = ans
 $   IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans)) -
-    .or.(F$LOCATE("hp",ans).NE.F$LENGTH(ans))
+    .or.(F$LOCATE("hp",ans).NE.F$LENGTH(ans)) -
+    .or.(F$LOCATE("vsi",ans).NE.F$LENGTH(ans))
 $   THEN
 $     Mcc = "cc/decc"
 $! CPQ ?
@@ -1508,7 +1447,8 @@ $   ELSE ! Not_cxx
 $     IF Mcc.NES.dflt
 $     THEN
 $       IF F$LOCATE("dec",dflt) .NE. F$LENGTH(dflt) .or. -
-           F$LOCATE("compaq",dflt) .NE. F$LENGTH(dflt)
+           F$LOCATE("compaq",dflt) .NE. F$LENGTH(dflt) -
+          .or.(F$LOCATE("vsi",dflt).NE.F$LENGTH(dflt))
 $       THEN 
 $         C_COMPILER_Replace = "CC=cc=''Mcc'"
 $       ELSE
@@ -1529,11 +1469,6 @@ $   THEN
 $     ccname := DEC
 $     C_COMPILER_Replace = "CC=cc=''Mcc'"
 $   ENDIF
-$   IF Mcc .EQS. "gcc"
-$   THEN
-$     ccname := GCC
-$     C_COMPILER_Replace = "CC=cc=''Mcc'"
-$   ENDIF
 $ ENDIF
 $Decc_Version_check:
 $ ccversion=""
@@ -1585,121 +1520,7 @@ $   echo4 "adding /NOANSI_ALIAS qualifier to ccflags."
 $   ccflags = ccflags + "/NOANSI_ALIAS"
 $   DELETE/NOLOG/NOCONFIRM deccvers.*;
 $ ENDIF
-$Gcc_check:
-$ gccversion = ""
-$ IF ccname .EQS. "GCC"
-$ THEN
-$   vaxcrtl_olb = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB")
-$   vaxcrtl_exe = F$SEARCH("SYS$SHARE:VAXCRTL.EXE")
-$   gcclib_olb  = F$SEARCH("GNU_CC:[000000]GCCLIB.OLB")
-$   IF gcclib_olb .EQS. "" 
-$   THEN 
-$!    These objects/libs come w/ gcc 2.7.2 for AXP:
-$     tmp = F$SEARCH("GNU_CC:[000000]libgcc2.olb")
-$     IF tmp .NES. "" then gcclib_olb = tmp
-$     tmp = F$SEARCH("GNU_CC:[000000]libgcclib.olb")
-$     IF tmp .NES. "" 
-$     THEN 
-$       IF gcclib_olb .EQS. "" 
-$       THEN gcclib_olb = tmp
-$       ELSE gcclib_olb = gcclib_olb + "/lib," + tmp
-$       ENDIF
-$     ENDIF
-$     tmp = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB")
-$     IF tmp .NES. "" 
-$     THEN 
-$       IF gcclib_olb .EQS. "" 
-$       THEN gcclib_olb = tmp
-$       ELSE gcclib_olb = gcclib_olb + "/lib," + tmp
-$       ENDIF
-$     ENDIF
-$     tmp = F$SEARCH("GNU_CC:[000000]crt0.obj")
-$     IF tmp .NES. "" 
-$     THEN 
-$       IF gcclib_olb .EQS. "" 
-$       THEN gcclib_olb = tmp
-$       ELSE gcclib_olb = gcclib_olb + "/lib," + tmp
-$       ENDIF
-$     ENDIF
-$     IF gcclib_olb .EQS. vaxcrtl_olb THEN gcclib_olb = "" !goofy order of axplibs
-$   ELSE
-$     gcclib_olb = gcclib_olb + "/lib"
-$   ENDIF
-$   IF   gcclib_olb .NES. "" .AND. -
-     (vaxcrtl_olb .NES. "" .OR. -
-      vaxcrtl_exe .NES. "" )
-$   THEN
-$     echo ""
-$     echo4 "Checking for GNU cc in disguise and/or its version number..." !>&4
-$     OPEN/WRITE CONFIG gccvers.c
-$     WRITE CONFIG "#include <stdio.h>"
-$     WRITE CONFIG "int main() {"
-$     WRITE CONFIG "#ifdef __GNUC__"
-$     WRITE CONFIG "#ifdef __VERSION__"
-$     WRITE CONFIG "        printf(""%s\n"", __VERSION__);"
-$     WRITE CONFIG "#else"
-$     WRITE CONFIG "        printf(""%s\n"", ""1"");"
-$     WRITE CONFIG "#endif"
-$     WRITE CONFIG "#endif"
-$     WRITE CONFIG "        exit(0);"
-$     WRITE CONFIG "}"
-$     CLOSE CONFIG
-$     DEFINE SYS$ERROR _NLA0:
-$     DEFINE SYS$OUTPUT _NLA0:
-$     'Mcc' gccvers.c
-$     tmp = $status
-$     DEASSIGN SYS$ERROR _NLA0:
-$     DEASSIGN SYS$OUTPUT _NLA0:
-$     IF (silent) THEN GOSUB Shut_up
-$     DEFINE SYS$ERROR _NLA0:
-$     DEFINE SYS$OUTPUT _NLA0:
-$     IF vaxcrtl_exe .EQS. ""
-$     THEN 
-$       IF F$LOCATE("VAXCRTL",gcclib_olb).NE.F$LENGTH(gcclib_olb)
-$       THEN 
-$         link/nodebug gccvers.obj,'gcclib_olb',SYS$LIBRARY:VAXCRTL/Library
-$         tmp = $status
-$       ELSE
-$         link/nodebug gccvers.obj,'gcclib_olb'
-$         tmp = $status
-$       ENDIF
-$     ELSE
-$       OPEN/WRITE CONFIG GCCVERS.OPT
-$       WRITE CONFIG "SYS$SHARE:VAXCRTL/SHARE"
-$       CLOSE CONFIG
-$       link/nodebug gccvers.obj,GCCVERS.OPT/OPT,'gcclib_olb'
-$       tmp = $status
-$     ENDIF
-$     DEASSIGN SYS$ERROR
-$     DEASSIGN SYS$OUTPUT
-$     IF (silent) THEN GOSUB Shut_up
-$     OPEN/WRITE CONFIG gccvers.out
-$     DEFINE SYS$ERROR CONFIG
-$     DEFINE SYS$OUTPUT CONFIG
-$     mcr []gccvers.exe
-$     tmp = $status
-$     CLOSE CONFIG
-$     DEASSIGN SYS$OUTPUT
-$     DEASSIGN SYS$ERROR
-$     IF (silent) THEN GOSUB Shut_up
-$     OPEN/READ CONFIG gccvers.out
-$     READ/END_OF_FILE=Gcc_cleanup CONFIG line
-$Gcc_cleanup:
-$     CLOSE CONFIG
-$     DELETE/NOLOG/NOCONFIRM gccvers.*;
-$     IF F$LOCATE("GNU C version ",line).NE.F$LENGTH(line)
-$     THEN 
-$       echo "You are not using GNU cc."
-$       GOTO Host_name
-$     ELSE 
-$       echo "You are using GNU cc ''line'"
-$       gccversion = line
-$       ccname := "GCC"
-$       C_COMPILER_Replace = "CC=cc=''Mcc'"
-$       GOTO Include_dirs
-$     ENDIF
-$   ENDIF
-$ ENDIF
+$!
 $Cxx_Version_check:
 $ IF ccname .EQS. "CXX"
 $ THEN
@@ -1792,17 +1613,6 @@ $ line = F$EDIT(line,"TRIM")       !bit redundant but we're in no big hurry
 $ DELETE/NOLOG/NOCONFIRM ccvms.lis;
 $ RETURN
 $!
-$Include_dirs:
-$!: What should the include directory be ? (.TLB text libraries)
-$ dflt = gcclib_olb 
-$ rp = "Where are the include files you want to use? "
-$ IF f$length( rp + "[''dflt'] " ) .GT. 76
-$ THEN rp = F$FAO("!AS!/!AS",rp,"[''dflt'] ")
-$ ELSE rp = rp + "[''dflt'] "
-$ ENDIF
-$ GOSUB myread
-$ usrinc = ans
-$!
 $!: see if we have to deal with yellow pages, now NIS.
 $!: now get the host name
 $Host_name:
@@ -1891,9 +1701,7 @@ $   DECK
 
 If you or somebody else will be maintaining perl at your site, please
 fill in the correct e-mail address here so that they may be contacted
-if necessary. Currently, the "perlbug" program included with perl
-will send mail to this address in addition to perlbug@perl.com. You may
-enter "none" for no administrator.
+if necessary. You may enter "none" for no administrator.
 $   EOD
 $ ENDIF
 $ dflt = "''cf_email'"
@@ -2021,18 +1829,9 @@ $     if f$type(useithreads) .nes. ""
 $     then
 $         if useithreads .eqs. "undef" then bool_dflt="n"
 $     endif
-$     if f$type(use5005threads) .nes. ""
-$     then
-$         if use5005threads .or. use5005threads .eqs. "define"
-$         then
-$             echo "5.005 threads are no longer supported"
-$             exit 44
-$         endif
-$     endif
 $     rp = "Use the newer interpreter-based ithreads? [''bool_dflt'] "
 $     GOSUB myread
 $     use_ithreads=ans
-$     use_5005_threads="N"
 $     ! Are they on VMS 7.1 or greater?
 $     IF "''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.1"
 $     THEN
@@ -2077,6 +1876,8 @@ $     ENDIF
 $   ELSE
 $     usethreads = "undef"
 $   ENDIF
+$ ELSE
+$   usethreads = "undef"
 $ ENDIF
 $ IF F$TYPE(usethreadupcalls) .EQS. "" THEN usethreadupcalls = "undef"
 $ IF F$TYPE(usekernelthreads) .EQS. "" THEN usekernelthreads = "undef"
@@ -2401,22 +2202,6 @@ $!
 $ bool_dflt = "n"
 $ vms_prefix = "perl_root"
 $ vms_prefixup = F$EDIT(vms_prefix,"UPCASE")
-$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] "
-$ GOSUB myread
-$ IF .NOT. ans
-$ THEN
-$   sharedperl = "N"
-$ ELSE
-$   sharedperl = "Y"
-$   IF (F$ELEMENT(0, "-", archname).EQS."VMS_AXP")
-$   THEN
-$     macros = macros + """AXE=1"","
-$   ENDIF
-$   IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64")
-$   THEN
-$     macros = macros + """IXE=1"","
-$   ENDIF
-$ ENDIF
 $!
 $!: is AFS running?                       !sfn
 $!: decide how portable to be.  Allow command line overrides. !sfn
@@ -2498,7 +2283,7 @@ $     EOD
 $   ENDIF
 $   IF F$TYPE(privlib) .NES. ""
 $   THEN dflt = privlib
-$   ELSE dflt = "''vms_prefix':[lib]"
+$   ELSE dflt = "/''vms_prefix'/lib"
 $   ENDIF
 $   rp = "Pathname where the private library files will reside? " 
 $   rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ")
@@ -2567,7 +2352,7 @@ $     EOD
 $   ENDIF
 $   IF F$TYPE(archlib) .NES. ""
 $   THEN dflt = archlib
-$   ELSE dflt = privlib - "]" + "." + archname + "." + version + "]"
+$   ELSE dflt = privlib + "/" + archname + "/" + version
 $   ENDIF
 $   rp = "Where do you want to put the public architecture-dependent libraries? "
 $   rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ")
@@ -2596,7 +2381,7 @@ $     EOD
 $   ENDIF
 $   IF F$TYPE(sitelib) .NES. ""
 $   THEN dflt = sitelib
-$   ELSE dflt = privlib - "]" + ".SITE_PERL]"
+$   ELSE dflt = privlib + "/site_perl"
 $   ENDIF
 $   rp = "Pathname for the site-specific library files? "
 $   rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ")
@@ -2614,7 +2399,7 @@ $     EOD
 $   ENDIF
 $   IF F$TYPE(sitearch) .NES. ""
 $   THEN dflt = sitearch
-$   ELSE dflt = sitelib - "]" + "." + archname + "]"
+$   ELSE dflt = sitelib + "/" + archname
 $   ENDIF
 $   rp = "Pathname for the site-specific architecture-dependent library files? "
 $   rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ")
@@ -2626,7 +2411,6 @@ $!
 $!: determine where public executables go
 $   IF F$TYPE(bin) .NES. ""
 $   THEN dflt = bin
-$!   ELSE dflt = prefix - ".]" + ".BIN]"
 $   ELSE dflt = "/''vms_prefix'"
 $   ENDIF
 $   rp = "Pathname where the public executables will reside? "
@@ -2637,7 +2421,7 @@ $!
 $!: determine where add-on public executables go
 $   IF F$TYPE(sitebin) .NES. ""
 $   THEN dflt = sitebin
-$   ELSE dflt = "''vms_prefix':[bin.''archname']"
+$   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' ] ")
@@ -2653,58 +2437,58 @@ $!: see what memory models we can support
 $!
 $ ELSE ! skipping "where install" questions, we must set some symbols
 $   IF F$TYPE(archlib).EQS."" THEN -
-      archlib="''vms_prefix':[lib.''archname'.''version']"
+      archlib="/''vms_prefix'/lib/''archname'/''version'"
 $   IF F$TYPE(bin) .EQS. "" THEN -
       bin="/''vms_prefix'"
 $   IF F$TYPE(privlib) .EQS. "" THEN -
-      privlib ="''vms_prefix':[lib]"
+      privlib ="/''vms_prefix'/lib"
 $   IF F$TYPE(sitearch) .EQS. "" THEN -
-      sitearch="''vms_prefix':[lib.site_perl.''archname']"
+      sitearch="/''vms_prefix'/lib/site_perl/''archname'"
 $   IF F$TYPE(sitelib) .EQS. "" THEN -
-      sitelib ="''vms_prefix':[lib.site_perl]"
+      sitelib ="/''vms_prefix'/lib/site_perl"
 $   IF F$TYPE(sitebin) .EQS. "" THEN -
-      sitebin="''vms_prefix':[bin.''archname']"
+      sitebin="/''vms_prefix'/bin/''archname'"
 $ ENDIF !%Config-I-VMS, skip "where install" questions
 $!
 $! These derived locations can be set whether we've opted to
 $! skip the where install questions or not.
 $!
 $ IF F$TYPE(archlibexp) .EQS. "" THEN -
-    archlibexp="''vms_prefix':[lib.''archname'.''version']"
+    archlibexp="/''vms_prefix'/lib/''archname'/''version'"
 $ IF F$TYPE(binexp) .EQS. "" THEN -
-    binexp ="''vms_prefix':[000000]"
+    binexp ="/''vms_prefix'"
 $ IF F$TYPE(builddir) .EQS. "" THEN -
-    builddir ="''vms_prefix':[000000]"
+    builddir ="/''vms_prefix'"
 $ IF F$TYPE(installarchlib) .EQS. "" THEN -
-    installarchlib="''vms_prefix':[lib.''archname'.''version']"
+    installarchlib="/''vms_prefix'/lib/''archname'/''version'"
 $ IF F$TYPE(installbin) .EQS. "" THEN -
-    installbin ="''vms_prefix':[000000]"
+    installbin ="/''vms_prefix'"
 $ IF F$TYPE(installscript) .EQS. "" THEN -
-    installscript ="''vms_prefix':[utils]"
+    installscript ="/''vms_prefix'/utils"
 $ IF F$TYPE(installman1dir) .EQS. "" THEN -
-    installman1dir ="''vms_prefix':[man.man1]"
+    installman1dir ="/''vms_prefix'/man/man1"
 $ IF F$TYPE(installman3dir) .EQS. "" THEN -
-    installman3dir ="''vms_prefix':[man.man3]"
+    installman3dir ="/''vms_prefix'/man/man3"
 $ IF F$TYPE(installprivlib) .EQS. "" THEN -
-    installprivlib ="''vms_prefix':[lib]"
+    installprivlib ="/''vms_prefix'/lib"
 $ IF F$TYPE(installsitearch) .EQS. "" THEN -
-    installsitearch="''vms_prefix':[lib.site_perl.''archname']"
+    installsitearch="/''vms_prefix'/lib/site_perl/''archname'"
 $ IF F$TYPE(installsitelib) .EQS. "" THEN -
-    installsitelib ="''vms_prefix':[lib.site_perl]"
+    installsitelib ="/''vms_prefix'/lib/site_perl"
 $ IF F$TYPE(oldarchlib) .EQS. "" THEN -
-    oldarchlib="''vms_prefix':[lib.''archname']"
+    oldarchlib="/''vms_prefix'/lib/''archname'"
 $ IF F$TYPE(oldarchlibexp) .EQS. "" THEN -
-    oldarchlibexp="''vms_prefix':[lib.''archname']"
+    oldarchlibexp="/''vms_prefix'/lib/''archname'"
 $ IF F$TYPE(privlibexp) .EQS. "" THEN -
-    privlibexp ="''vms_prefix':[lib]"
+    privlibexp ="/''vms_prefix'/lib"
 $ IF F$TYPE(scriptdir) .EQS. "" THEN -
-    scriptdir ="''vms_prefix':[utils]"
+    scriptdir ="/''vms_prefix'/utils"
 $ IF F$TYPE(sitearchexp) .EQS. "" THEN -
-    sitearchexp ="''vms_prefix':[lib.site_perl.''archname']"
+    sitearchexp ="/''vms_prefix'/lib/site_perl/''archname'"
 $ IF F$TYPE(sitelib_stem) .EQS. "" THEN -
-    sitelib_stem ="''vms_prefix':[lib.site_perl]"
+    sitelib_stem ="/''vms_prefix'/lib/site_perl"
 $ IF F$TYPE(sitelibexp) .EQS. "" THEN -
-    sitelibexp ="''vms_prefix':[lib.site_perl]"
+    sitelibexp ="/''vms_prefix'/lib/site_perl"
 $!
 $! determine whether to use malloc wrapping
 $ echo ""
@@ -3038,6 +2822,27 @@ $ rp="What pager is used on your system? [''dflt'] "
 $ GOSUB myread
 $ pager = ans
 $!
+$ bool_dflt = "y"
+$ IF F$TYPE(default_inc_excludes_dot) .NES. ""
+$ THEN
+$   IF .not. default_inc_excludes_dot .or. default_inc_excludes_dot .eqs. "undef" THEN bool_dflt = "n"
+$ ENDIF
+$ echo ""
+$ echo "Historically Perl has provided a final fallback of the current working"
+$ echo "directory '.' when searching for a library. This, however, can lead to"
+$ echo "problems when a Perl program which loads optional modules is called from"
+$ echo "a shared directory. This can lead to executing unexpected code."
+$ echo ""
+$ rp = "Exclude '.' from @INC by default? [''bool_dflt'] "
+$ GOSUB myread
+$ default_inc_excludes_dot = ans
+$ IF default_inc_excludes_dot
+$ THEN
+$   default_inc_excludes_dot = "define"
+$ ELSE
+$   default_inc_excludes_dot = "undef"
+$ ENDIF
+$!
 $! update makefile here
 $! echo4 "Updating makefile..."
 $!
@@ -3251,34 +3056,22 @@ $ ELSE
 $   uselargefiles = "undef"
 $ ENDIF
 $!
+$ i32dformat="""d"""
+$ u32uformat="""u"""
+$ u32oformat="""o"""
+$ u32xformat="""x"""
+$ u32XUformat="""X"""
+$!
 $ usemymalloc = "undef"
 $ if mymalloc then usemymalloc = "define"
 $!
 $ perl_cc=Mcc
 $!
-$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP")
-$ THEN
-$   obj_ext=".abj"
-$   so="axe"
-$   dlext="axe"
-$   exe_ext=".axe"
-$   lib_ext=".alb"
-$ ELSE
-$   IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64")
-$   THEN
-$     obj_ext=".ibj"
-$     so="ixe"
-$     dlext="ixe"
-$     exe_ext=".ixe"
-$     lib_ext=".ilb"
-$   ELSE
-$     obj_ext=".obj"
-$     so="exe"
-$     dlext="exe"
-$     exe_ext=".exe"
-$     lib_ext=".olb"
-$   ENDIF
-$ ENDIF
+$ obj_ext=".obj"
+$ so="exe"
+$ dlext="exe"
+$ exe_ext=".exe"
+$ lib_ext=".olb"
 $ dlobj="dl_vms''obj_ext'"
 $!
 $ cppstdin="''perl_cc'/noobj/comments=as_is/preprocess=sys$output sys$input"
@@ -3329,8 +3122,31 @@ $ d_ldexpl = "define"
 $ d_modfl = "define"
 $ d_modflproto = "define"
 $!
+$ d_double_has_inf = "undef"
+$ d_double_has_nan = "undef"
+$ d_double_has_negative_zero = "undef"
+$ d_double_has_subnormals = "undef"
+$ d_double_style_cray = "undef"
+$ d_double_style_ibm = "undef"
+$ d_double_style_ieee = "undef"
+$ d_double_style_vax = "undef"
+$ d_long_double_style_ieee = "undef"
+$ d_long_double_style_ieee_extended = "undef"
+$ d_long_double_style_ieee_std = "undef"
+$ d_long_double_style_vax = "undef"
 $ IF useieee .OR. useieee .EQS. "define"
 $ THEN
+$   d_double_has_inf = "define"
+$   d_double_has_nan = "define"
+$   d_double_has_negative_zero = "define"
+$   d_double_has_subnormals = "define"
+$   d_double_style_ieee = "define"
+$   IF uselongdouble .OR. uselongdouble .EQS. "define"
+$   THEN
+$       d_long_double_style_ieee = "define"
+$! TODO: will the Intel port have ieee_extended for long doubles?
+$       d_long_double_style_ieee_std = "define"
+$   ENDIF
 $   d_acosh = "define"
 $   d_asinh = "define"
 $   d_atanh = "define"
@@ -3348,7 +3164,6 @@ $   d_fp_classify = "define"
 $   d_hypot = "define"
 $   d_ilogb = "define"
 $   d_isnan = "define"
-$   d_isnanl = "define"
 $   d_isnormal = "define"
 $   d_j0 = "define"
 $   d_lgamma = "define"
@@ -3359,7 +3174,6 @@ $   d_lrint = "define"
 $   d_lrintl = "define"
 $   d_lround = "define"
 $   d_lroundl = "define"
-$   d_nearbyint = "define"
 $   d_nextafter = "define"
 $   d_nexttoward = "define"
 $   d_remainder = "define"
@@ -3369,6 +3183,12 @@ $   d_tgamma = "define"
 $   d_trunc = "define"
 $   d_truncl = "define"
 $ ELSE
+$   d_double_style_vax = "define"
+$   IF uselongdouble .OR. uselongdouble .EQS. "define"
+$   THEN
+$      d_long_double_style_vax = "undef" ! VAX format H unlikely
+$   ENDIF
+$   d_acosh = "undef"
 $   d_acosh = "undef"
 $   d_asinh = "undef"
 $   d_atanh = "undef"
@@ -3386,7 +3206,6 @@ $   d_fp_classify = "undef"
 $   d_hypot = "undef"
 $   d_ilogb = "undef"
 $   d_isnan = "undef"
-$   d_isnanl = "undef"
 $   d_isnormal = "undef"
 $   d_j0 = "undef"
 $   d_lgamma = "undef"
@@ -3397,7 +3216,6 @@ $   d_lrint = "undef"
 $   d_lrintl = "undef"
 $   d_lround = "undef"
 $   d_lroundl = "undef"
-$   d_nearbyint = "undef"
 $   d_nextafter = "undef"
 $   d_nexttoward = "undef"
 $   d_remainder = "undef"
@@ -3410,7 +3228,6 @@ $ ENDIF
 $!
 $! Now some that we build up
 $!
-$ use5005threads = "undef"
 $ d_old_pthread_create_joinable = "undef"
 $ old_pthread_create_joinable = " "
 $ IF use_threads
@@ -3422,24 +3239,13 @@ $ ENDIF
 $!
 $! Some that we need to invoke the compiler for
 $!
-$!
 $! handy construction aliases/symbols
 $!
 $ OS := "open/write CONFIG []try.c"
 $ WS := "write CONFIG"
 $ CS := "close CONFIG"
 $ DS := "delete/nolog/noconfirm []try.*;*"
-$ Needs_Opt := N
 $ good_compile = %X10B90001
-$ IF ccname .EQS. "GCC"
-$ THEN
-$   open/write OPTCHAN []try.opt
-$   write OPTCHAN "Gnu_CC:[000000]gcclib.olb/library"
-$   write OPTCHAN "Sys$Share:VAXCRTL/Share"
-$   Close OPTCHAN
-$   Needs_Opt := Y
-$   good_compile = %X10000001
-$ ENDIF
 $ IF ccname .EQS. "CXX"
 $ THEN
 $   good_compile = %X15F60001
@@ -3538,14 +3344,8 @@ $ GOSUB compile_ok
 $ DEFINE/USER_MODE SYS$ERROR _NLA0:
 $ DEFINE/USER_MODE SYS$OUTPUT _NLA0:
 $ SET NOON
-$ IF Needs_Opt
-$ THEN
-$   'ld' try.obj,try.opt/opt
-$   link_status = $status
-$ ELSE
-$   'ld' try.obj
-$   link_status = $status
-$ ENDIF
+$ 'ld' try.obj
+$ link_status = $status
 $ SET ON
 $ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj;
 $ RETURN
@@ -3867,6 +3667,12 @@ $   d_fd_set="define"
 $   echo4 "Well, your system knows about the normal fd_set typedef..."
 $ ENDIF
 $!
+$! Check for stdint.h
+$!
+$ tmp = "stdint.h"
+$ GOSUB inhdr
+$ i_stdint = tmp
+$!
 $! Check for inttypes.h
 $!
 $ tmp = "inttypes.h"
@@ -3902,6 +3708,23 @@ $   d_off64_t = "undef"
 $   echo "You do not have off64_t."
 $ ENDIF
 $!
+$! Check to see if fpclassify exists
+$!
+$ OS
+$ WS "#if defined(__DECC) || defined(__DECCXX)"
+$ WS "#include <stdlib.h>"
+$ WS "#endif"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "if (fpclassify(0.0) == FP_ZERO) exit(0);"
+$ WS "exit(1);"
+$ WS "}"
+$ CS
+$ tmp = "fpclassify"
+$ GOSUB inlibc
+$ d_fpclassify = tmp
+$!
 $! Check to see if fpos64_t exists
 $!
 $ echo4 "Checking to see if you have fpos64_t..."
@@ -4191,7 +4014,171 @@ $   echo4 "Nope, since you don't even have fcntl()."
 $ ENDIF
 $ d_fcntl_can_lock = tmp
 $!
-$! Check for memchr
+$! Check to see if isblank exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <ctype.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "int c = ' ';"
+$ WS "if(isblank(c))"
+$ WS "    exit(EXIT_SUCCESS);"
+$ WS "else"
+$ WS "    exit(EXIT_FAILURE);"
+$ WS "}"
+$ CS
+$ tmp = "isblank"
+$ GOSUB inlibc
+$ d_isblank = tmp
+$!
+$! Check to see if isless exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main() { return isless(1.0, 2.0) ? EXIT_SUCCESS : EXIT_FAILURE; }"
+$ CS
+$ tmp = "isless"
+$ GOSUB inlibc
+$ d_isless = tmp
+$!
+$! Check to see if pre-C99 isnanl exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  long double x = NaN;
+$ WS "  return isnanl(x) ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "isnanl"
+$ GOSUB inlibc
+$ d_isnanl = tmp
+$!
+$! Check to see if llrint exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  long long x = llrint(1.5);
+$ WS "  return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "llrint"
+$ GOSUB inlibc
+$ d_llrint = tmp
+$!
+$! Check to see if llrintl exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  long long x = llrintl(1.5);
+$ WS "  return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "llrintl"
+$ GOSUB inlibc
+$ d_llrintl = tmp
+$!
+$! Check to see if llround exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  long long x = llround(1.5);
+$ WS "  return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "llround"
+$ GOSUB inlibc
+$ d_llround = tmp
+$!
+$! Check to see if llroundl exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  long long x = llroundl(1.5);
+$ WS "  return x == 2 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "llroundl"
+$ GOSUB inlibc
+$ d_llroundl = tmp
+$!
+$! Check to see if nearbyint exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  double x = llroundl(1.5);
+$ WS "  return x == 2.0 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "nearbyint"
+$ GOSUB inlibc
+$ d_nearbyint = tmp
+$!
+$! Check to see if round exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  double x = round(1.5);
+$ WS "  return x == 2.0 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "round"
+$ GOSUB inlibc
+$ d_round = tmp
+$!
+$! Check to see if scalbn exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  double x = scalbn(1.0, 3);
+$ WS "  return x == 8.0 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "scalbn"
+$ GOSUB inlibc
+$ d_scalbn = tmp
+$!
+$! Check to see if scalbnl exists
+$!
+$ OS
+$ WS "#include <stdlib.h>"
+$ WS "#include <math.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "  long double x = scalbn(1.0, 3);
+$ WS "  return x == 8.0 ? EXIT_SUCCESS : EXIT_FAILURE;
+$ WS "}"
+$ CS
+$ tmp = "scalbnl"
+$ GOSUB inlibc
+$ d_scalbnl = tmp
+$!
+$! Check for memrchr
 $!
 $ OS
 $ WS "#if defined(__DECC) || defined(__DECCXX)"
@@ -4201,13 +4188,31 @@ $ WS "#include <string.h>"
 $ WS "int main()"
 $ WS "{"
 $ WS "char * place;"
-$ WS "place = (char *)memchr(""foo"", 47, 3);"
+$ WS "place = (char *)memrchr(""foo"", 47, 3);"
 $ WS "exit(0);"
 $ WS "}"
 $ CS
-$ tmp = "memchr"
+$ tmp = "memrchr"
 $ GOSUB inlibc
-$ d_memchr = tmp
+$ d_memrchr = tmp
+$!
+$! Check for strnlen
+$!
+$ OS
+$ WS "#if defined(__DECC) || defined(__DECCXX)"
+$ WS "#include <stdlib.h>"
+$ WS "#endif"
+$ WS "#include <string.h>"
+$ WS "int main()"
+$ WS "{"
+$ WS "size_t len;"
+$ WS "len = strnlen(""foot"", 3);"
+$ WS "exit(0);"
+$ WS "}"
+$ CS
+$ tmp = "strnlen"
+$ GOSUB inlibc
+$ d_strnlen = tmp
 $!
 $! Check for strtoull
 $!
@@ -4291,7 +4296,7 @@ $ WS "#include <string.h>"
 $ WS "int main()"
 $ WS "{"
 $ WS "long double result;"
-$ WS "result = strtold(""123123"", NULL, 10);"
+$ WS "result = strtold(""123123"", NULL);"
 $ WS "exit(0);"
 $ WS "}"
 $ CS
@@ -4352,43 +4357,22 @@ $ tmp = "acess"
 $ GOSUB inlibc
 $ d_access = tmp
 $!
-$! Check for bzero
+$! Check for mkostemp
 $!
 $ OS
 $ WS "#if defined(__DECC) || defined(__DECCXX)"
 $ WS "#include <stdlib.h>"
 $ WS "#endif"
 $ WS "#include <stdio.h>"
-$ WS "#include <strings.h>"
 $ WS "int main()"
 $ WS "{"
-$ WS "char foo[10];"
-$ WS "bzero(foo, 10);"
+$ WS "mkostemp(""foo"", 0);"
 $ WS "exit(0);"
 $ WS "}"
 $ CS
-$ tmp = "bzero"
+$ tmp = "mkostemp"
 $ GOSUB inlibc
-$ d_bzero = tmp
-$!
-$! Check for bcopy
-$!
-$ OS
-$ WS "#if defined(__DECC) || defined(__DECCXX)"
-$ WS "#include <stdlib.h>"
-$ WS "#endif"
-$ WS "#include <stdio.h>"
-$ WS "#include <strings.h>"
-$ WS "int main()"
-$ WS "{"
-$ WS "char foo[10], bar[10];"
-$ WS "bcopy(""foo"", bar, 3);"
-$ WS "exit(0);"
-$ WS "}"
-$ CS
-$ tmp = "bcopy"
-$ GOSUB inlibc
-$ d_bcopy = tmp
+$ d_mkostemp = tmp
 $!
 $! Check for mkstemp
 $!
@@ -5310,22 +5294,14 @@ $ ENDIF
 $!
 $! Some that are compiler or VMS version sensitive
 $!
-$! Gnu C stuff
-$ IF ccname .EQS. "GCC"
+$ IF ccname .EQS. "CXX"
 $ THEN
-$   d_attribut="define"
-$   vms_cc_type="gcc"
+$   vms_cc_type="cxx"
 $ ELSE
-$   IF ccname .EQS. "CXX"
-$   THEN
-$      vms_cc_type="cxx"
-$   ELSE
-$      vms_cc_type="cc"
-$   ENDIF
-$   d_attribut="undef"
+$   vms_cc_type="cc"
 $ ENDIF
 $!
-$ d_bcmp="define"
+$ d_attribut="undef"
 $ d_getitimer="define"
 $ d_gettimeod="define"
 $ d_mmap="define"
@@ -5343,6 +5319,7 @@ $ d_sigaction="define"
 $ d_siginfo_si_addr="define"
 $ d_siginfo_si_band="define"
 $ d_siginfo_si_errno="define"
+$ d_siginfo_si_fd="define"
 $ d_siginfo_si_pid="define"
 $ d_siginfo_si_status="define"
 $ d_siginfo_si_uid="define"
@@ -5420,19 +5397,25 @@ $ THEN
 $   vms_cc_type="decc"
 $ ENDIF
 $ d_faststdio="define"
+$ d_ffs="undef"
+$ d_ffsl="undef"
+$ d_getenv_preserves_other_thread="define"
 $ d_locconv="define"
 $ d_mblen="define"
 $ d_mbstowcs="define"
 $ d_mbtowc="define"
 $ d_mktime="define"
 $ d_nl_langinfo="define"
+$ d_non_int_bitfields="define"
 $ d_setlocale="define"
+$ d_setlocale_accepts_any_locale_name="undef"
 $ d_stdiobase="define"
 $ d_stdio_cnt_lval="define"
 $ d_stdio_ptr_lval="define"
 $ d_stdstdio="define"
 $ d_strcoll="define"
 $ d_strxfrm="define"
+$ d_strxfrm_l="undef"
 $ i_langinfo="define"
 $ i_locale="define"
 $ d_stdio_ptr_lval_sets_cnt="undef"
@@ -5523,10 +5506,9 @@ $ IF use64bitint .OR. use64bitint .EQS. "define"
 $ THEN
 $   ivtype = "''i64type'"
 $   uvtype = "''u64type'"
-$ ELSE
-$   i64size="undef"
-$   u64size="undef"
 $ ENDIF
+$ i64size="8"
+$ u64size="8"
 $!
 $ doublemantbits = "52"
 $ IF uselongdouble .OR. uselongdouble .EQS. "define"
@@ -5540,7 +5522,6 @@ $!
 $ tmp = "''ivtype'"
 $ GOSUB type_size_check
 $ ivsize = tmp
-$ IF use64bitint .OR. use64bitint .EQS. "define" THEN i64size = tmp
 $ IF ivtype .eqs. "long"
 $ THEN longsize = tmp
 $ ELSE
@@ -5552,7 +5533,6 @@ $!
 $ tmp = "''uvtype'"
 $ GOSUB type_size_check
 $ uvsize = tmp
-$ IF use64bitint .OR. use64bitint .EQS. "define" THEN u64size = tmp
 $!
 $ tmp = "''i8type'"
 $ GOSUB type_size_check
@@ -5846,6 +5826,8 @@ $ WC "PERL_CONFIG_SH='true'"
 $ WC "_a='" + lib_ext + "'"
 $ WC "_exe='" + exe_ext + "'"
 $ WC "_o='" + obj_ext + "'"
+$ WC "afs='undef'"
+$ WC "afsroot='/afs'"
 $ WC "alignbytes='" + alignbytes + "'"
 $ WC "aphostname='write sys$output f$edit(f$getsyi(\""SCSNODE\""),\""TRIM,LOWERCASE\"")'"
 $ WC "api_revision='" + api_revision + "'"
@@ -5918,6 +5900,7 @@ $ WC "d_PRIu64='" + d_PRIu64 + "'"
 $ WC "d_PRIx64='" + d_PRIx64 + "'"
 $ WC "d_SCNfldbl='" + d_SCNfldbl + "'"
 $ WC "d__fwalk='undef'"
+$ WC "d_accept4='undef'"
 $ WC "d_access='" + d_access + "'"
 $ WC "d_accessx='undef'"
 $ WC "d_acosh='" + d_acosh + "'"
@@ -5929,6 +5912,7 @@ $ WC "d_asinh='" + d_asinh + "'"
 $ WC "d_atanh='" + d_atanh + "'"
 $ WC "d_atolf='" + d_atolf + "'"
 $ WC "d_atoll='" + d_atoll + "'"
+$ WC "d_attribute_always_inline='undef'"
 $ WC "d_attribute_format='" + d_attribut + "'"
 $ WC "d_attribute_deprecated='undef'"
 $ WC "d_attribute_malloc='undef'"
@@ -5936,30 +5920,29 @@ $ WC "d_attribute_nonnull='undef'"
 $ WC "d_attribute_noreturn='undef'"
 $ WC "d_attribute_pure='undef'"
 $ WC "d_attribute_unused='undef'"
+$ WC "d_attribute_visibility='undef'"
 $ WC "d_attribute_warn_unused_result='undef'"
 $ WC "d_prctl='undef'"
 $ WC "d_prctl_set_name='undef'"
 $ WC "d_printf_format_null='undef'"
-$ WC "d_bcmp='" + d_bcmp + "'"
-$ WC "d_bcopy='" + d_bcopy + "'"
 $ WC "d_bincompat3='undef'"
 $ WC "d_bsd='undef'"
 $ WC "d_bsdgetpgrp='undef'"
 $ WC "d_bsdsetpgrp='undef'"
 $ WC "d_builtin_choose_expr='undef'" ! GCC only
 $ WC "d_builtin_expect='undef'" ! GCC only
-$ WC "d_bzero='" + d_bzero + "'"
+$ WC "d_builtin_add_overflow='undef'" ! GCC only
+$ WC "d_builtin_mul_overflow='undef'" ! GCC only
+$ WC "d_builtin_sub_overflow='undef'" ! GCC only
 $ WC "d_casti32='define'"
 $ WC "d_castneg='define'"
 $ WC "d_cbrt='" + d_cbrt + "'"
-$ WC "d_charvspr='undef'"
 $ WC "d_chown='define'"
 $ WC "d_chroot='undef'"
 $ WC "d_chsize='undef'"
 $ WC "d_class='undef'"
 $ WC "d_closedir='define'"
 $ WC "d_cmsghdr_s='undef'"
-$ WC "d_const='define'"
 $ WC "d_copysign='" + d_copysign + "'"
 $ WC "d_copysignl='define'"
 $ WC "d_cplusplus='" + d_cplusplus + "'"
@@ -5988,8 +5971,18 @@ $ ENDIF
 $ WC "d_dlsymun='undef'"
 $ WC "d_backtrace='undef'"
 $ WC "d_dosuid='undef'"
+$ WC "d_double_has_inf='" + d_double_has_inf + "'"
+$ WC "d_double_has_nan='" + d_double_has_nan + "'"
+$ WC "d_double_has_negative_zero='" + d_double_has_negative_zero + "'"
+$ WC "d_double_has_subnormals='" + d_double_has_subnormals + "'"
+$ WC "d_double_style_cray='undef'"
+$ WC "d_double_style_ibm='undef'"
+$ WC "d_double_style_ieee='" + d_double_style_ieee + "'"
+$ WC "d_double_style_vax='" + d_double_style_vax + "'"
 $ WC "d_drand48proto='" + d_drand48proto + "'"
 $ WC "d_dup2='define'"
+$ WC "d_dup3='undef'"
+$ WC "d_duplocale='undef'"
 $ WC "d_eaccess='undef'"
 $ WC "d_endgrent='define'"
 $ WC "d_endhent='" + d_endhent + "'"
@@ -6003,9 +5996,14 @@ $ WC "d_erfc='" + d_erfc + "'"
 $ WC "d_eunice='undef'"
 $ WC "d_exp2='" + d_exp2 + "'"
 $ WC "d_expm1='" + d_expm1 + "'"
-$ WC "d_fchmod='undef'"
+$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."8.3")
+$ THEN
+$   WC "d_fchmod='define'"
+$ ELSE
+$   WC "d_fchmod='undef'"
+$ ENDIF
 $ WC "d_fchdir='undef'"
-$ WC "d_fchown='undef'"
+$ WC "d_fchown='define'"
 $ WC "d_fcntl='" + d_fcntl + "'"
 $ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'"
 $ WC "d_fd_set='" + d_fd_set + "'"
@@ -6014,6 +6012,8 @@ $ WC "d_fdclose='undef'"
 $ WC "d_fdim='" + d_fdim + "'"
 $ WC "d_fds_bits='define'"
 $ WC "d_fegetround='undef'"
+$ WC "d_ffs='undef'"
+$ WC "d_ffsl='undef'"
 $ WC "d_fgetpos='define'"
 $ IF use_ieee_math
 $ THEN
@@ -6036,7 +6036,7 @@ $ WC "d_fp_classify='undef'"
 $ WC "d_fp_classl='undef'"
 $ WC "d_fpathconf='" + d_fpathconf + "'"
 $ WC "d_fpclass='undef'"
-$ WC "d_fpclassify='undef'"
+$ WC "d_fpclassify='" + d_fpclassify + "'"
 $ WC "d_fpclassl='undef'"
 $ WC "d_fpgetround='undef'"
 $ WC "d_fpos64_t='" + d_fpos64_t + "'"
@@ -6109,12 +6109,12 @@ $ WC "d_ip_mreq_source='undef'"
 $ WC "d_ipv6_mreq='define'"
 $ WC "d_ipv6_mreq_source='undef'"
 $ WC "d_isascii='define'"
-$ WC "d_isblank='undef'"
+$ WC "d_isblank='" + d_isblank + "'"
 $ WC "d_isfinite='undef'"
 $ WC "d_isfinitel='undef'"
 $ WC "d_isinf='undef'"
 $ WC "d_isinfl='undef'"
-$ WC "d_isless='undef'"
+$ WC "d_isless='" + d_isless + "'"
 $ WC "d_isnan='" + d_isnan + "'"
 $ WC "d_isnanl='" + d_isnanl + "'"
 $ WC "d_isnormal='" + d_isnormal + "'"
@@ -6127,11 +6127,12 @@ $ WC "d_ldexpl='" + d_ldexpl + "'"
 $ WC "d_lgamma='" + d_lgamma + "'"
 $ WC "d_libm_lib_version='undef'"
 $ WC "d_link='" + d_link + "'"
-$ WC "d_llrint='undef'"
-$ WC "d_llrintl='undef'"
-$ WC "d_llround='undef'"
-$ WC "d_llroundl='undef'"
+$ WC "d_llrint='" + d_llrint + "'"
+$ WC "d_llrintl='" + d_llrintl + "'"
+$ WC "d_llround='" + d_llround + "'"
+$ WC "d_llroundl='" + d_llroundl + "'"
 $ WC "d_llseek='undef'"
+$ WC "d_localeconv_l='undef'"
 $ WC "d_localtime64='undef'"
 $ WC "d_locconv='" + d_locconv + "'"
 $ WC "d_lc_monetary_2008='undef'"
@@ -6139,6 +6140,11 @@ $ WC "d_lockf='undef'"
 $ WC "d_log1p='" + d_log1p + "'"
 $ WC "d_log2='" + d_log2 + "'"
 $ WC "d_logb='" + d_logb + "'"
+$ WC "d_long_double_style_ieee='" + d_long_double_style_ieee + "'"
+$ WC "d_long_double_style_ieee_doubledouble='undef'"
+$ WC "d_long_double_style_ieee_extended='" + d_long_double_style_ieee_extended + "'"
+$ WC "d_long_double_style_ieee_std='" + d_long_double_style_ieee_std + "'"
+$ WC "d_long_double_style_vax='" + d_long_double_style_vax + "'"
 $ WC "d_longdbl='" + d_longdbl + "'"
 $ WC "d_longlong='" + d_longlong + "'"
 $ WC "d_lrint='" + d_lrint + "'"
@@ -6151,18 +6157,18 @@ $ WC "d_madvise='undef'"
 $ WC "d_malloc_size='undef'"
 $ WC "d_malloc_good_size='undef'"
 $ WC "d_mblen='" + d_mblen + "'"
+$ WC "d_mbrlen='define'"
+$ WC "d_mbrtowc='define'"
 $ WC "d_mbstowcs='" + d_mbstowcs + "'"
 $ WC "d_mbtowc='" + d_mbtowc + "'"
-$ WC "d_memchr='" + d_memchr + "'"
-$ WC "d_memcmp='define'"
-$ WC "d_memcpy='define'"
 $ WC "d_memmem='undef'"
-$ WC "d_memmove='define'"
-$ WC "d_memset='define'"
+$ WC "d_memrchr='" + d_memrchr + "'"
 $ WC "d_mkdir='define'"
 $ WC "d_mkdtemp='" + d_mkdtemp + "'"
 $ WC "d_mkfifo='undef'"
 $ WC "d_mknod='undef'"
+$ WC "d_mkostemp='undef'"
+$ WC "d_mkostemp='" + d_mkostemp + "'"
 $ WC "d_mkstemp='" + d_mkstemp + "'"
 $ WC "d_mkstemps='" + d_mkstemps + "'"
 $ WC "d_mktime='" + d_mktime + "'"
@@ -6190,11 +6196,14 @@ $ WC "d_nan='undef'"
 $ WC "d_nanosleep='" + d_nanosleep + "'"
 $ WC "d_ndbm='undef'"
 $ WC "d_ndbm_h_uses_prototypes='undef'"
-$ WC "d_nearbyint='undef'"
+$ WC "d_nearbyint='" + d_nearbyint + "'"
 $ WC "d_nextafter='" + d_nextafter + "'"
 $ WC "d_nexttoward='" + d_nexttoward + "'"
 $ WC "d_nice='define'"
 $ WC "d_nl_langinfo='" + d_nl_langinfo + "'"
+$ WC "d_nl_langinfo_l='undef'"
+$ WC "d_non_int_bitfields='define'"
+$ WC "d_getenv_preserves_other_thread='" + d_getenv_preserves_other_thread + "'"
 $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'"
 $ WC "nv_overflows_integers_at='" + nv_overflows_integers_at + "'"
 $ WC "nv_preserves_uv_bits='" + nv_preserves_uv_bits + "'"
@@ -6205,11 +6214,17 @@ $ WC "d_oldarchlib='define'"
 $ WC "d_oldpthreads='" + d_oldpthreads + "'"
 $ WC "d_oldsock='undef'"
 $ WC "d_open3='define'"
+$ WC "d_openat='undef'"
+$ WC "d_unlinkat='undef'"
+$ WC "d_renameat='undef'"
+$ WC "d_linkat='undef'"
+$ WC "d_fchmodat='undef'"
 $ WC "d_pathconf='" + d_pathconf + "'"
 $ WC "d_pause='define'"
 $ WC "d_perl_otherlibdirs='undef'"
 $ WC "d_phostname='" + d_phostname + "'"
 $ WC "d_pipe='define'"
+$ WC "d_pipe2='undef'"
 $ WC "d_poll='" + d_poll + "'"
 $ WC "d_portable='define'"
 $ WC "d_procselfexe='undef'"
@@ -6229,11 +6244,13 @@ $ WC "d_pwpasswd='define'"
 $ WC "d_pwquota='undef'"
 $ WC "d_qgcvt='undef'"
 $ WC "d_quad='" + d_quad + "'"
+$ WC "d_re_comp='undef'"
 $ WC "d_readdir='define'"
 $ WC "d_readlink='" + d_readlink + "'"
-$ WC "d_readv='undef'"
+$ WC "d_readv='define'"
 $ WC "d_realpath='" + d_realpath + "'"
-$ WC "d_recvmsg='undef'"
+$ WC "d_recvmsg='define'"
+$ WC "d_regcmp='undef'"
 $ WC "d_regcomp='undef'"
 $ WC "d_remainder='" + d_remainder + "'"
 $ WC "d_remquo='" + d_remquo + "'"
@@ -6241,13 +6258,10 @@ $ WC "d_rename='define'"
 $ WC "d_rewinddir='define'"
 $ WC "d_rint='" + d_rint + "'"
 $ WC "d_rmdir='define'"
-$ WC "d_round='undef'"
-$ WC "d_safebcpy='undef'"
-$ WC "d_safemcpy='define'"
-$ WC "d_sanemcmp='define'"
+$ WC "d_round='" + d_round + "'"
 $ WC "d_sbrkproto='define'"
-$ WC "d_scalbn='undef'"
-$ WC "d_scalbnl='undef'"
+$ WC "d_scalbn='" + d_scalbn + "'"
+$ WC "d_scalbnl='" + d_scalbnl + "'"
 $ WC "d_sched_yield='" + d_sched_yield + "'"
 $ WC "d_scm_rights='undef'"
 $ WC "d_seekdir='define'"
@@ -6268,7 +6282,7 @@ $   WC "d_semctl_semun='undef'"
 $   WC "d_semget='undef'"
 $   WC "d_semop='undef'"
 $ ENDIF
-$ WC "d_sendmsg='undef'"
+$ WC "d_sendmsg='define'"
 $ WC "d_setegid='undef'"
 $ WC "d_setenv='" + d_setenv + "'"
 $ WC "d_seteuid='" + d_seteuid + "'"
@@ -6278,6 +6292,7 @@ $ WC "d_sethent='" + d_sethent + "'"
 $ WC "d_setitimer='" + d_setitimer + "'"
 $ WC "d_setlinebuf='undef'"
 $ WC "d_setlocale='" + d_setlocale + "'"
+$ WC "d_setlocale_accepts_any_locale_name='" + d_setlocale_accepts_any_locale_name + "'"
 $ WC "d_setnent='" + d_setnent + "'"
 $ WC "d_setpent='" + d_setpent + "'"
 $ WC "d_setpgid='" + d_setpgid + "'"
@@ -6305,6 +6320,7 @@ $ WC "d_sigaction='" + d_sigaction + "'"
 $ WC "d_siginfo_si_addr='" + d_siginfo_si_addr + "'"
 $ WC "d_siginfo_si_band='" + d_siginfo_si_band + "'"
 $ WC "d_siginfo_si_errno='" + d_siginfo_si_errno + "'"
+$ WC "d_siginfo_si_fd='" + d_siginfo_si_fd + "'"
 $ WC "d_siginfo_si_pid='" + d_siginfo_si_pid + "'"
 $ WC "d_siginfo_si_status='" + d_siginfo_si_status + "'"
 $ WC "d_siginfo_si_uid='" + d_siginfo_si_uid + "'"
@@ -6316,13 +6332,13 @@ $ WC "d_sin6_scope_id='" + d_sin6_scope_id + "'"
 $ WC "d_sitearch='define'"
 $ WC "d_sockaddr_in6='define'"
 $ WC "d_sockaddr_sa_len='" + d_sockaddr_sa_len + "'"
+$ WC "d_sockaddr_storage='undef'"
 $ WC "d_sockatmark='undef'"
 $ WC "d_sockatmarkproto='undef'"
 $ WC "d_socket='" + d_socket + "'"
 $ WC "d_socklen_t='" + d_socklen_t + "'"
 $ WC "d_sockpair='" + d_sockpair + "'"
 $ WC "d_socks5_init='undef'"
-$ WC "d_sprintf_returns_strlen='define'"
 $ WC "d_sqrtl='define'"
 $ WC "d_sresgproto='undef'"
 $ WC "d_sresgproto='undef'"
@@ -6334,6 +6350,7 @@ $ WC "d_statfs_f_flags='undef'"
 $ WC "d_statfs_s='undef'"
 $ WC "d_statfsflags='undef'"
 $ WC "d_static_inline='define'"
+$ WC "d_thread_local='undef'" ! see perl_thread_local
 $ WC "d_stdio_cnt_lval='" + d_stdio_cnt_lval + "'"
 $ WC "d_stdio_ptr_lval='" + d_stdio_ptr_lval + "'"
 $ WC "d_stdio_ptr_lval_nochange_cnt='" + d_stdio_ptr_lval_nochange_cnt + "'"
@@ -6343,23 +6360,23 @@ $ WC "d_stdiobase='" + d_stdiobase + "'"
 $ WC "d_stdstdio='" + d_stdstdio + "'"
 $ WC "d_faststdio='" + d_faststdio + "'"
 $ WC "d_statvfs='" + d_statvfs + "'"
-$ WC "d_strchr='define'"
 $ WC "d_strcoll='" + d_strcoll + "'"
-$ WC "d_strctcpy='define'"
-$ WC "d_strerrm='strerror((e),vaxc$errno)'"
-$ WC "d_strerror='define'"
 $ WC "d_strftime='define'"
 $ WC "d_strlcat='undef'"
 $ WC "d_strlcpy='undef'"
+$ WC "d_strnlen='" + d_strnlen + "'"
 $ WC "d_strtod='define'"
+$ WC "d_strtod_l='undef'"
 $ WC "d_strtol='define'"
 $ WC "d_strtold='" + d_strtold + "'"
+$ WC "d_strtold_l='undef'"
 $ WC "d_strtoll='" + d_strtoll + "'"
 $ WC "d_strtoq='" + d_strtoq + "'"
 $ WC "d_strtoul='define'"
 $ WC "d_strtoull='" + d_strtoull + "'"
 $ WC "d_strtouq='" + d_strtouq + "'"
 $ WC "d_strxfrm='" + d_strxfrm  + "'"
+$ WC "d_strxfrm_l='" + d_strxfrm_l  + "'"
 $ WC "d_suidsafe='undef'"
 $ WC "d_symlink='" + d_symlink + "'"
 $ WC "d_syscall='undef'"
@@ -6373,6 +6390,7 @@ $ WC "d_tcsetpgrp='undef'"
 $ WC "d_telldir='define'"
 $ WC "d_telldirproto='define'"
 $ WC "d_tgamma='" + d_tgamma + "'"
+$ WC "d_thread_safe_nl_langinfo_l='undef'"
 $ WC "d_time='define'"
 $ WC "d_timegm='undef'"
 $ WC "d_times='define'"
@@ -6411,16 +6429,15 @@ $ WC "d_vms_shorten_long_symbols='" + d_vms_shorten_long_symbols + "'" ! VMS
 $ WC "d_void_closedir='define'"
 $ WC "d_voidsig='undef'"
 $ WC "d_voidtty='" + "'"
-$ WC "d_volatile='define'"
-$ WC "d_vprintf='define'"
 $ WC "d_vsnprintf='" + d_vsnprintf + "'"
 $ WC "d_wait4='" + d_wait4 + "'"
 $ WC "d_waitpid='define'"
+$ WC "d_wcrtomb='define'"
 $ WC "d_wcscmp='define'"
 $ WC "d_wcstombs='define'"
 $ WC "d_wcsxfrm='define'"
 $ WC "d_wctomb='define'"
-$ WC "d_writev='undef'"
+$ WC "d_writev='define'"
 $ WC "d_xenix='undef'"
 $ WC "db_hashtype=' '"
 $ WC "db_prefixtype=' '"
@@ -6429,6 +6446,7 @@ $ WC "db_version_minor='" + "'"
 $ WC "db_version_patch='" + "'"
 $ WC "dbgprefix='" + dbgprefix + "'"
 $ WC "devtype='" + devtype + "'"
+$ WC "default_inc_excludes_dot='" + default_inc_excludes_dot + "'"
 $ WC "direntrytype='struct dirent'"
 $ WC "dlext='" + dlext + "'"
 $ WC "dlobj='" + dlobj + "'"
@@ -6462,7 +6480,6 @@ $ WC "freetype='void'"
 $ WC "full_ar='" + "'"
 $ WC "full_csh='" + " '"
 $ WC "full_sed='_NLA0:'"
-$ WC "gccversion='" + gccversion + "'"
 $ WC "gidformat='lu'"
 $ WC "gidsign='1'"
 $ WC "gidsize='4'"
@@ -6474,6 +6491,7 @@ $ WC "hint='none'"
 $ WC "hintfile='" + "'"
 $ WC "i16size='" + i16size + "'"
 $ WC "i16type='" + i16type + "'"
+$ WC "i32dformat='" + i32dformat + "'"
 $ WC "i32size='" + i32size + "'"
 $ WC "i32type='" + i32type + "'"
 $ WC "i64size='" + i64size + "'"
@@ -6481,7 +6499,6 @@ $ WC "i64type='" + i64type + "'"
 $ WC "i8size='" + i8size + "'"
 $ WC "i8type='" + i8type + "'"
 $ WC "i_arpainet='" + i_arpainet + "'"
-$ WC "i_assert='define'"
 $ WC "i_bfd='undef'"
 $ WC "i_bsdioctl='undef'"
 $ WC "i_crypt='undef'"
@@ -6492,7 +6509,6 @@ $ WC "i_dlfcn='undef'"
 $ WC "i_execinfo='undef'"
 $ WC "i_fcntl='" + i_fcntl + "'"
 $ WC "i_fenv='undef'"
-$ WC "i_float='define'"
 $ WC "i_fp='undef'"
 $ WC "i_fp_class='undef'"
 $ WC "i_gdbm='undef'"
@@ -6503,14 +6519,11 @@ $ WC "i_ieeefp='undef'"
 $ WC "i_inttypes='" + i_inttypes + "'"
 $ WC "i_langinfo='" + i_langinfo + "'"
 $ WC "i_libutil='" + i_libutil + "'"
-$ WC "i_limits='define'"
 $ WC "i_locale='" + i_locale + "'"
 $ WC "i_machcthr='undef'"
 $ WC "i_machcthreads='undef'"
 $ WC "i_malloc='undef'"
 $ WC "i_mallocmalloc='undef'"
-$ WC "i_math='define'"
-$ WC "i_memory='undef'"
 $ WC "i_mntent='undef'"
 $ WC "i_ndbm='undef'"
 $ WC "i_netdb='" + i_netdb + "'"
@@ -6526,17 +6539,14 @@ $ WC "i_rpcsvcdbm='undef'"
 $ WC "i_sgtty='undef'"
 $ WC "i_shadow='" + i_shadow + "'"
 $ WC "i_socks='" + i_socks + "'"
-$ WC "i_stdarg='define'"
 $ IF ccname .EQS. "DEC" .AND. F$INTEGER(Dec_C_Version).GE.60400000
 $ THEN
 $   WC "i_stdbool='define'"
 $ ELSE
 $   WC "i_stdbool='undef'"
 $ ENDIF
-$ WC "i_stddef='define'"
-$ WC "i_stdint='undef'"
+$ WC "i_stdint='" + i_stdint + "'"
 $ WC "i_stdlib='define'"
-$ WC "i_string='define'"
 $ WC "i_sunmath='undef'"
 $ WC "i_sysaccess='" + i_sysaccess + "'"
 $ WC "i_sysdir='undef'"
@@ -6573,10 +6583,11 @@ $ WC "i_time='define'"
 $ WC "i_unistd='" + i_unistd + "'"
 $ WC "i_ustat='undef'"
 $ WC "i_utime='" + i_utime + "'"
-$ WC "i_values='undef'"
-$ WC "i_varargs='undef'"
-$ WC "i_varhdr='stdarg.h'"
 $ WC "i_vfork='undef'"
+$ WC "i_wchar='define'"
+$ WC "i_wctype='define'"
+$ WC "i_xlocale='undef'"
+$ WC "xlocale_needed='undef'"
 $ WC "inc_version_list='0'"
 $ WC "inc_version_list_init='0'"
 $ WC "installarchlib='" + installarchlib + "'"
@@ -6584,7 +6595,7 @@ $ WC "installbin='" + installbin + "'"
 $ WC "installman1dir='" + installman1dir + "'"
 $ WC "installman3dir='" + installman3dir + "'"
 $ WC "installprefix='" + vms_prefix + "'"
-$ WC "installprefixexp='" + vms_prefix + ":'"
+$ WC "installprefixexp='/" + vms_prefix + "'"
 $ WC "installprivlib='" + installprivlib + "'"
 $ WC "installscript='" + installscript + "'"
 $ WC "installsitearch='" + installsitearch + "'"
@@ -6673,11 +6684,12 @@ $ WC "perllibs='" + perllibs + "'"
 $ WC "perlpath='" + "''vms_prefix':[000000]Perl''exe_ext'" + "'"
 $ WC "perl_static_inline='static inline'"
 $ WC "perl_symbol='" + perl_symbol + "'"  ! VMS specific
+$ WC "perl_thread_local=''" ! FIXME - as this is ia64 ABI, it may well be supported
 $ WC "perl_verb='" + perl_verb + "'"      ! VMS specific
 $ WC "pgflquota='" + pgflquota + "'"
 $ WC "pidtype='" + pidtype + "'"
 $ WC "prefix='" + vms_prefix + "'"
-$ WC "prefixexp='" + vms_prefix + ":'"
+$ WC "prefixexp='/" + vms_prefix + "'"
 $ WC "privlib='" + privlib + "'"
 $ WC "privlibexp='" + privlibexp + "'"
 $ WC "procselfexe=' '"
@@ -6747,7 +6759,7 @@ $ WC "sitelib='" + sitelib + "'"
 $ WC "sitelib_stem='" + sitelib_stem + "'"
 $ WC "sitelibexp='" + sitelibexp + "'"
 $ WC "siteprefix='" + vms_prefix + "'"
-$ WC "siteprefixexp='" + vms_prefix + ":'"
+$ WC "siteprefixexp='/" + vms_prefix + "'"
 $ WC "sizesize='" + sizesize + "'"
 $ WC "sizetype='size_t'"
 $ WC "so='" + so + "'"
@@ -6757,6 +6769,8 @@ $ WC "src='" + src + "'"
 $ WC "ssizetype='int'"
 $ WC "startperl=" + startperl ! This one's special--no enclosing single quotes
 $ WC "static_ext='" + static_ext + "'"
+$ WC "st_dev_size='"4"'"
+$ WC "st_dev_sign='1'"
 $ WC "st_ino_size='" + st_ino_size + "'"
 $ WC "st_ino_sign='1'"
 $ WC "stdchar='" + stdchar + "'"
@@ -6771,8 +6785,12 @@ $ WC "targetsh='MCR'"
 $ WC "timetype='" + timetype + "'"
 $ WC "u16size='" + u16size + "'"
 $ WC "u16type='" + u16type + "'"
+$ WC "u32oformat='" + u32oformat + "'"
+$ WC "u32uformat='" + u32uformat + "'"
 $ WC "u32size='" + u32size + "'"
 $ WC "u32type='" + u32type + "'"
+$ WC "u32xformat='" + u32xformat + "'"
+$ WC "u32XUformat='" + u32XUformat + "'"
 $ WC "u64size='" + u64size + "'"
 $ WC "u64type='" + u64type + "'"
 $ WC "u8size='" + u8size + "'"
@@ -6782,11 +6800,11 @@ $ WC "uidsign='1'"
 $ WC "uidsize='4'"
 $ WC "uidtype='" + uidtype + "'"
 $ WC "uquadtype='" + uquadtype + "'" 
-$ WC "use5005threads='" + use5005threads + "'"
 $ WC "use64bitall='" + use64bitall + "'"
 $ WC "use64bitint='" + use64bitint + "'"
 $ WC "usecasesensitive='" + be_case_sensitive + "'"    ! VMS-specific
 $ WC "usedebugging_perl='"+use_debugging_perl+"'"
+$ WC "usedefaultstrict='undef'"
 $ WC "usedefaulttypes='" + usedefaulttypes + "'"    ! VMS-specific
 $ WC "usecbacktrace='undef'"
 $ WC "usecrosscompile='undef'"
@@ -6827,7 +6845,6 @@ $ WC "uvuformat='" + uvuformat + "'"
 $ WC "uvxformat='" + uvxformat + "'"
 $ WC "uvXUformat='" + uvXUformat + "'"
 $ WC "vendorarch='" + "'"
-$ WC "vaproto='define'"
 $ WC "vendorarchexp='" + "'"
 $ WC "vendorbin='" + "'"
 $ WC "vendorbinexp='" + "'"
@@ -6868,6 +6885,7 @@ $ WC "d_endprotoent_r='undef'"
 $ WC "d_endpwent_r='undef'"
 $ WC "d_endservent_r='undef'"
 $ WC "d_freelocale='undef'"
+$ WC "d_gai_strerror='define'"
 $ WC "d_getgrent_r='undef'"
 $ WC "d_getgrgid_r='" + d_getgrgid_r + "'"
 $ WC "d_getgrnam_r='" + d_getgrnam_r + "'"
@@ -6893,6 +6911,7 @@ $ WC "d_lgamma_r='undef'"
 $ WC "d_localtime_r='undef'"   ! leave undef'd; we use my_localtime
 $ WC "d_localtime_r_needs_tzset='undef'"
 $ WC "d_newlocale='undef'"
+$ WC "d_querylocale='undef'"
 $ WC "d_random_r='undef'"
 $ WC "d_readdir_r='define'"    ! always defined; we roll our own
 $ WC "d_readdir64_r='undef'"
@@ -6906,8 +6925,11 @@ $ WC "d_setservent_r='undef'"
 $ WC "d_snprintf='" + d_snprintf + "'"
 $ WC "d_srand48_r='undef'"
 $ WC "d_srandom_r='undef'"
+$ WC "d_strerror_l='undef'"
 $ WC "d_strerror_r='undef'"
 $ WC "d_tmpnam_r='undef'"
+$ WC "d_towlower='define'"
+$ WC "d_towupper='define'"
 $ WC "d_ttyname_r='" + d_ttyname_r + "'"
 $ WC "d_uselocale='undef'"
 $ WC "ctermid_r_proto='0'"
@@ -6970,20 +6992,7 @@ $! Okay, we've gotten here. Build munchconfig.exe
 $ COPY/NOLOG [-.vms]munchconfig.c []
 $ COPY/NOLOG [-.vms]'Makefile_SH' []
 $ 'Perl_CC' 'ccflags' munchconfig.c
-$ IF Needs_Opt
-$ THEN
-$   OPEN/WRITE CONFIG []munchconfig.opt
-$   IF ccname .EQS. "GCC"
-$   THEN
-$     WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library"
-$   ENDIF
-$   WRITE CONFIG "Sys$Share:VAXCRTL/Share"
-$   CLOSE CONFIG
-$   'ld'/EXE='exe_ext' munchconfig'obj_ext',munchconfig.opt/opt
-$   DELETE/NOLOG/NOCONFIRM munchconfig.opt;
-$ ELSE
-$   'ld'/EXE='exe_ext' munchconfig'obj_ext'
-$ ENDIF
+$ 'ld'/EXE='exe_ext' munchconfig'obj_ext'
 $ IF F$SEARCH("munchconfig''obj_ext'") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig'obj_ext';
 $ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c;
 $ IF ccname .EQS. "CXX"
@@ -7035,7 +7044,6 @@ $ IF use_two_pot_malloc THEN WC "#define TWO_POT_OPTIMIZE"
 $ IF mymalloc THEN WC "#define EMBEDMYMALLOC"
 $ IF use_pack_malloc THEN WC "#define PACK_MALLOC"
 $ IF use_debugmalloc THEN WC "#define DEBUGGING_MSTATS"
-$ IF ccname .EQS. "GCC" THEN WC "#define GNUC_ATTRIBUTE_CHECK"
 $ IF (Has_Dec_C_Sockets)
 $ THEN
 $    WC "#define VMS_DO_SOCKETS"
@@ -7067,6 +7075,7 @@ $ IF unlink_all_versions .OR. unlink_all_versions .EQS. "define" THEN -
 $ IF d_sockaddr_sa_len .EQS. "define" then WC "#define _SOCKADDR_LEN 1"
 $ IF ccname .EQS. "CXX" then WC "#define NO_ENVIRON_ARRAY"
 $ IF ccname .EQS. "CXX" then WC "#define VMS" ! only has __VMS by default
+$ WC "#define _PTHREAD_EXC_INCL_CLEAN" ! avoid conflict between DECthreads TRY/CATCH and Perl TRY/CATCH
 $ CLOSE CONFIG
 $!
 $ echo4 "Doing variable substitutions on .SH files..."
@@ -7094,12 +7103,6 @@ $   DECCXX_REPLACE = "DECCXX=DECCXX=1"
 $ ELSE
 $   DECCXX_REPLACE = "DECCXX="
 $ ENDIF
-$ IF ccname .EQS. "GCC"
-$ THEN
-$   GNUC_REPLACE = "GNUC=gnuc=1"
-$ ELSE
-$   GNUC_REPLACE = "GNUC=" 
-$ ENDIF
 $ IF Has_Dec_C_Sockets
 $ THEN
 $   SOCKET_REPLACE = "SOCKET=DECC_SOCKETS=1"
@@ -7146,7 +7149,6 @@ $ WC := write CONFIG
 $ WC "''DECC_REPLACE'"
 $ WC "''DECCXX_REPLACE'"
 $ WC "''ARCH_TYPE'"
-$ WC "''GNUC_REPLACE'"
 $ WC "''SOCKET_REPLACE'"
 $ WC "''THREAD_REPLACE'"
 $ WC "''C_Compiler_Replace'"
@@ -7285,8 +7287,6 @@ $   echo ""
 $   echo4 "The perl.cld file is now being written..."
 $   OPEN/WRITE CONFIG 'file_2_find'
 $   ext = ".exe"
-$   IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") THEN ext := .AXE
-$   IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") THEN ext := .IXE
 $   IF (use_vmsdebug_perl)
 $   THEN
 $     WRITE CONFIG "define verb dbgperl"
@@ -7342,11 +7342,6 @@ $ WRITE CONFIG "$   root_spec = P1"
 $ WRITE CONFIG "$ endif"
 $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'root_spec'"
 $ WRITE CONFIG "$ ext = "".exe"""
-$ IF sharedperl
-$ THEN
-$ WRITE CONFIG "$ if f$getsyi(""ARCH_TYPE"") .eq. 2 then ext = "".AXE"""
-$ WRITE CONFIG "$ if f$getsyi(""ARCH_TYPE"") .eq. 3 then ext = "".IXE"""
-$ ENDIF
 $ IF (perl_symbol)
 $ THEN
 $   perl_setup_perl = "'" + "'perl'" ! triple quoted foreign command symbol
@@ -7382,7 +7377,6 @@ $ ENDIF
 $ WRITE CONFIG "$!"
 $ WRITE CONFIG "$! Symbols for Perl-based utility programs:"
 $ WRITE CONFIG "$!"
-$ WRITE CONFIG "$ c2ph       == """ + perl_setup_perl + " ''vms_prefix':[utils]c2ph.com"""
 $ WRITE CONFIG "$ corelist   == """ + perl_setup_perl + " ''vms_prefix':[utils]corelist.com"""
 $ WRITE CONFIG "$ cpan       == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com"""
 $ WRITE CONFIG "$ enc2xs     == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com"""
@@ -7405,7 +7399,6 @@ $ WRITE CONFIG "$ pod2usage  == """ + perl_setup_perl + " ''vms_prefix':[utils]p
 $ WRITE CONFIG "$ podchecker == """ + perl_setup_perl + " ''vms_prefix':[utils]podchecker.com"""
 $ WRITE CONFIG "$ podselect  == """ + perl_setup_perl + " ''vms_prefix':[utils]podselect.com"""
 $ WRITE CONFIG "$ prove      == """ + perl_setup_perl + " ''vms_prefix':[utils]prove.com"""
-$ WRITE CONFIG "$ pstruct    == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com"""
 $ WRITE CONFIG "$ ptar       == """ + perl_setup_perl + " ''vms_prefix':[utils]ptar.com"""
 $ WRITE CONFIG "$ ptardiff   == """ + perl_setup_perl + " ''vms_prefix':[utils]ptardiff.com"""
 $ WRITE CONFIG "$ ptargrep   == """ + perl_setup_perl + " ''vms_prefix':[utils]ptargrep.com"""