$ echo = "write sys$output "
$ cat = "type"
$ delete := delete ! local symbol overrides globals with qualifiers
-$ gcc_symbol = "gcc"
$ ld = "Link/nodebug"
$ ans = ""
$ macros = ""
$ builder = "MMK"
$ use_vmsdebug_perl = "n"
$ use64bitall = "n"
-$ use64bitint = "n"
+$ use64bitint = "y"
$ uselongdouble = "n"
$ uselargefiles = "y"
$ usestdstat = "n"
$ Dec_C_Version = ""
$ cxxversion = ""
$ use_threads = "F"
-$ use_5005_threads = "N"
$ use_ithreads = "N"
$!
$!: option parsing
"-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. *
$! 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
$ 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"
$ 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 = ""
$ 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 "}"
$ 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
$ 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
$ 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
$ 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=""
$ 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
$ 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:
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.org. You may
-enter "none" for no administrator.
+if necessary. You may enter "none" for no administrator.
$ EOD
$ ENDIF
$ dflt = "''cf_email'"
$ 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
$ 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
$ 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"
$ d_hypot = "define"
$ d_ilogb = "define"
$ d_isnan = "define"
-$ d_isnanl = "define"
$ d_isnormal = "define"
$ d_j0 = "define"
$ d_lgamma = "define"
$ d_lrintl = "define"
$ d_lround = "define"
$ d_lroundl = "define"
-$ d_nearbyint = "define"
$ d_nextafter = "define"
$ d_nexttoward = "define"
$ d_remainder = "define"
$ d_hypot = "undef"
$ d_ilogb = "undef"
$ d_isnan = "undef"
-$ d_isnanl = "undef"
$ d_isnormal = "undef"
$ d_j0 = "undef"
$ d_lgamma = "undef"
$ d_lrintl = "undef"
$ d_lround = "undef"
$ d_lroundl = "undef"
-$ d_nearbyint = "undef"
$ d_nextafter = "undef"
$ d_nexttoward = "undef"
$ d_remainder = "undef"
$!
$! Now some that we build up
$!
-$ use5005threads = "undef"
$ d_old_pthread_create_joinable = "undef"
$ old_pthread_create_joinable = " "
$ IF use_threads
$!
$! 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
$ 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
$ 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"
$ 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..."
$ ENDIF
$ d_fcntl_can_lock = tmp
$!
-$! Check for memchr
+$! Check to see if isblank exists
$!
$ OS
-$ WS "#if defined(__DECC) || defined(__DECCXX)"
$ WS "#include <stdlib.h>"
-$ WS "#endif"
-$ WS "#include <string.h>"
+$ WS "#include <ctype.h>"
$ WS "int main()"
$ WS "{"
-$ WS "char * place;"
-$ WS "place = (char *)memchr(""foo"", 47, 3);"
-$ WS "exit(0);"
+$ 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 = "memchr"
+$ 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
$!
$ GOSUB inlibc
$ 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
$!
$ OS
$ WS "int main()"
$ WS "{"
$ WS "long double result;"
-$ WS "result = strtold(""123123"", NULL, 10);"
+$ WS "result = strtold(""123123"", NULL);"
$ WS "exit(0);"
$ WS "}"
$ CS
$ 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"
-$ GOSUB inlibc
-$!
-$! 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"
+$ tmp = "mkostemp"
$ GOSUB inlibc
+$ d_mkostemp = tmp
$!
$! Check for mkstemp
$!
$ d_setgrent = "define"
$ d_ttyname_r = "define"
$ ttyname_r_proto = "1"
+$ d_snprintf = "define"
+$ d_vsnprintf = "define"
$!
$! VMS V7.3-2 powered options
$! We know that it is only available for V7.3-2 and later on 64 bit platforms.
$!
$! 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_attribut="undef"
$ d_getitimer="define"
$ d_gettimeod="define"
$ d_mmap="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"
$ 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"
$ 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 + "'"
$ 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 + "'"
$ 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'"
$ 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_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 + "'"
$ 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 + "'"
$ 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 + "'"
$ 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
$ 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 + "'"
$ 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 + "'"
$ 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_malloc_size='undef'"
$ WC "d_malloc_good_size='undef'"
$ WC "d_mblen='" + d_mblen + "'"
-$ WC "d_mbrlen='undef'"
-$ WC "d_mbrtowc='undef'"
+$ WC "d_mbrlen='define'"
+$ WC "d_mbrtowc='define'"
$ WC "d_mbstowcs='" + d_mbstowcs + "'"
$ WC "d_mbtowc='" + d_mbtowc + "'"
$ WC "d_memmem='undef'"
$ 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 + "'"
$ 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 + "'"
$ 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'"
$ 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 + "'"
$ WC "d_rewinddir='define'"
$ WC "d_rint='" + d_rint + "'"
$ WC "d_rmdir='define'"
-$ WC "d_round='undef'"
+$ 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'"
$ 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 + "'"
$ 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 + "'"
$ 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 + "'"
$ 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'"
$ 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 + "'"
$ 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_strerrm='strerror((e),vaxc$errno)'"
-$ WC "d_strerror='define'"
$ WC "d_strftime='define'"
$ WC "d_strlcat='undef'"
$ WC "d_strlcpy='undef'"
-$ WC "d_strnlen='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_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'"
$ WC "d_void_closedir='define'"
$ WC "d_voidsig='undef'"
$ WC "d_voidtty='" + "'"
-$ 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=' '"
$ WC "full_ar='" + "'"
$ WC "full_csh='" + " '"
$ WC "full_sed='_NLA0:'"
-$ WC "gccversion='" + gccversion + "'"
$ WC "gidformat='lu'"
$ WC "gidsign='1'"
$ WC "gidsize='4'"
$ WC "hintfile='" + "'"
$ WC "i16size='" + i16size + "'"
$ WC "i16type='" + i16type + "'"
+$ WC "i32dformat='" + i32dformat + "'"
$ WC "i32size='" + i32size + "'"
$ WC "i32type='" + i32type + "'"
$ WC "i64size='" + i64size + "'"
$ 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'"
$ 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'"
$ 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 + "'"
$ 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'"
$ 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='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 + "'"
$ 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 "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 + "'"
$ 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 + "'"
$ 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'"
$ WC "uvxformat='" + uvxformat + "'"
$ WC "uvXUformat='" + uvXUformat + "'"
$ WC "vendorarch='" + "'"
-$ WC "vaproto='define'"
$ WC "vendorarchexp='" + "'"
$ WC "vendorbin='" + "'"
$ WC "vendorbinexp='" + "'"
$ WC "d_endpwent_r='undef'"
$ WC "d_endservent_r='undef'"
$ WC "d_freelocale='undef'"
-$ WC "d_gai_strerror='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 + "'"
$ WC "d_setprotoent_r='undef'"
$ WC "d_setpwent_r='undef'"
$ 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'"
$ 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"
$ 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"
$ 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..."
$ 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"
$ WC "''DECC_REPLACE'"
$ WC "''DECCXX_REPLACE'"
$ WC "''ARCH_TYPE'"
-$ WC "''GNUC_REPLACE'"
$ WC "''SOCKET_REPLACE'"
$ WC "''THREAD_REPLACE'"
$ WC "''C_Compiler_Replace'"
$ 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"
$ 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