VMS patches from Dan Sugalski <sugalskd@osshe.edu>
Brad Hughes [Wed, 15 Jul 1998 09:38:12 +0000 (02:38 -0700)]
Date: Wed, 15 Jul 1998 09:38:12 -0700
Message-Id: <3.0.5.32.19980715093812.00a42a50@ous.edu>
Subject: [PATCH 5.005-beta1]Quick VMS config update
--
Date: Wed, 15 Jul 1998 12:53:52 -0700
Message-Id: <3.0.5.32.19980715125352.00a25cb0@ous.edu>
Subject: Re: $ebcdic has broken VMS in _75 (Now with doc patch!)
--
Date: Thu, 16 Jul 1998 11:15:44 -0700
Message-Id: <3.0.5.32.19980716111544.00b78770@ous.edu>
Subject: [PATCH 5.004_75]Another VMS tweak for the Vax C compiler
--
Date: Thu, 16 Jul 1998 11:21:55 -0700
Message-Id: <3.0.5.32.19980716112155.00a66c50@ous.edu>
Subject: [PATCH 5.004_75]Get archname correct for thread build on VMS
--
Date: Thu, 16 Jul 1998 11:25:04 -0700
Message-Id: <3.0.5.32.19980716112504.00ae0d50@ous.edu>
Subject: [PATCH 5.004_75]Thread build tweaks for VMS 6.2 and older
--
Date: Fri, 17 Jul 1998 15:29:13 -0700
Message-Id: <3.0.5.32.19980717152913.00a469b0@ous.edu>
Subject: [PATCH 5.004_75]Missed a header file in VMS build procedure
--
Date: Mon, 20 Jul 1998 10:20:49 -0700
Message-Id: <3.0.5.32.19980720102049.00a05100@ous.edu>
Subject: [PATCH 5.004_75]Tweaks to Thread.XS for OLD_PTHREADS_API build
--
Date: Mon, 20 Jul 1998 10:13:03 -0700
Message-Id: <3.0.5.32.19980720101303.00a17100@ous.edu>
Subject: [PATCH 5.004_75]Explicitly specify extensions during VMS config process
--
Date: Mon, 20 Jul 1998 15:51:22 -0700
Message-Id: <3.0.5.32.19980720155122.00a41950@ous.edu>
Subject: patch for readme.vms

p4raw-id: //depot/perl@1589

README.vms
ext/Thread/Thread.xs
vms/descrip_mms.template
vms/gen_shrfls.pl
vms/subconfigure.com

index 628c461..dce2b8e 100644 (file)
@@ -191,21 +191,21 @@ POD2MAN :== $PERL_ROOT:[000000]PERL POD2MAN
 
 * Installing Perl into DCLTABLES
 
-Courtesy of Brad  Hughes:
-
-Put the following, modified to reflect where your .exe is, in PERL.CLD:
+Execute the following command file to define PERL as a DCL command.
+You'll need CMKRNL priv to install the new dcltables.exe.
 
+$ create perl.cld
+!
+! modify to reflect location of your perl.exe
+!
 define verb perl
-image perl_root:[exe]perl.exe
-cliflags (foreign)
-
-and then
-
+  image perl_root:[000000]perl.exe
+  cliflags (foreign)
+$!
 $ set command perl /table=sys$common:[syslib]dcltables.exe -
  /output=sys$common:[syslib]dcltables.exe
 $ install replace sys$common:[syslib]dcltables.exe
-
-and you don't need perl :== $perl_root:[exe]perl.exe.
+$ exit
 
 * Changing compile-time things
 
index 9bf5285..6659565 100644 (file)
@@ -256,12 +256,29 @@ newthread (SV *startsv, AV *initargs, char *classname)
     err = 0;
     if (!attr_inited) {
        attr_inited = 1;
+#ifdef OLD_PTHREADS_API
+       err = pthread_attr_create(&attr);
+#else
        err = pthread_attr_init(&attr);
+#endif
+#ifdef OLD_PTHREADS_API
+#ifdef VMS
+/* This is available with the old pthreads API, but only with */
+/* DecThreads (VMS and Digital Unix) */
+       if (err == 0)
+           err = pthread_attr_setdetach_np(&attr, ATTR_JOINABLE);
+#endif
+#else
        if (err == 0)
            err = pthread_attr_setdetachstate(&attr, ATTR_JOINABLE);
+#endif
     }
     if (err == 0)
+#ifdef OLD_PTHREADS_API
+       err = pthread_create(&thr->self, attr, threadstart, (void*) thr);
+#else
        err = pthread_create(&thr->self, &attr, threadstart, (void*) thr);
+#endif
     /* Go */
     MUTEX_UNLOCK(&thr->mutex);
 #endif
index 9c3e806..b1ba0a0 100644 (file)
@@ -199,13 +199,9 @@ THREAD = THREAD
 .ifdef OLDTHREADED
 THREADDEF = 
 THREAD = THREAD
-.ifdef LIBS2
-LIBS2 = $(LIBS2),sys$share:cma$lib_shr/share,cma$rtl/share
-.else
-LIBS2 = sys$share:cma$lib_shr/share,cma$rtl/share
-.endif
+THRLIBS1 = sys$share:cma$lib_shr/share|sys$share:cma$rtl/share
 .ifdef __AXP__
-LIBS2 = $(LIBS2),sys$share:cma$open_lib_shr/share,cma$open_rtl/share
+THRLIBS2 = sys$share:cma$open_lib_shr/share|sys$share:cma$open_rtl/share
 .endif
 .endif
 
@@ -264,13 +260,25 @@ extobj = $(myextobj)
 LIBS2=
 .endif
 
+.ifdef THRLIBS1
+.else
+THRLIBS1=
+.endif
+
+.ifdef THRLIBS2
+.else
+THRLIBS2=
+.endif
+
+FULLLIBS2 = $(LIBS2)|$(THRLIBS1)|$(THRLIBS2)
+
 #### End of system configuration section. ####
 
 
 h1 = EXTERN.h, INTERN.h, XSUB.h, av.h, bytecode.h, byterun.h, config.h, cop.h, cv.h
 h2 = embed.h, form.h, gv.h, handy.h, hv.h, keywords.h, mg.h, op.h, thread.h
 h3 = opcode.h, patchlevel.h, perl.h, perly.h, pp.h, proto.h, regcomp.h
-h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlsdio.h
+h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlsdio.h, perlio.h
 h5 = embedvar.h, intrpvar.h, perlvars.h, thrdvar.h, iperlsys.h
 h = $(h1), $(h2), $(h3), $(h4), $(h5) $(SOCKHLIS) $(THREADH)
 
@@ -291,7 +299,7 @@ ac2 = $(ARCHCORE)config.h $(ARCHCORE)cop.h $(ARCHCORE)cv.h $(ARCHCORE)embed.h
 ac3 = $(ARCHCORE)form.h $(ARCHCORE)gv.h $(ARCHCORE)handy.h $(ARCHCORE)hv.h
 ac4 = $(ARCHCORE)keywords.h $(ARCHCORE)mg.h $(ARCHCORE)op.h $(ARCHCORE)opcode.h
 ac5 = $(ARCHCORE)patchlevel.h $(ARCHCORE)perl.h $(ARCHCORE)perly.h $(ARCHCORE)thread.h $(ARCHCORE)iperlsys.h
-ac6 = $(ARCHCORE)pp.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h $(ARCHCORE)perlsdio.h
+ac6 = $(ARCHCORE)pp.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h $(ARCHCORE)perlsdio.h $(ARCHCORE)perlio.h
 ac7 = $(ARCHCORE)regexp.h $(ARCHCORE)scope.h $(ARCHCORE)sv.h $(ARCHCORE)util.h
 ac8  = $(ARCHCORE)embedvar.h $(ARCHCORE)intrpvar.h $(ARCHCORE)perlvars.h $(ARCHCORE)thrdvar.h
 ac9  = $(ARCHCORE)vmsish.h $(ARCHCORE)$(DBG)libperl$(OLB) $(ARCHCORE)perlshr_attr.opt
@@ -1085,7 +1093,7 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 
 printconfig :
         @ @[.vms]make_command $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS)
-        @ @[.vms]myconfig "$(CC)" "$(CFLAGS)" "$(LINKFLAGS)" "$(LIBS1)" "$(LIBS2)" "$(SOCKLIB)" "$(EXT)" "$(DBG)"
+        @ @[.vms]myconfig "$(CC)" "$(CFLAGS)" "$(LINKFLAGS)" "$(LIBS1)" "$(FULLLIBS2)" "$(SOCKLIB)" "$(EXT)" "$(DBG)"
 
 .ifdef SOCKET
 
@@ -1100,7 +1108,7 @@ printconfig :
 
 vmsish.h : $(SOCKH)
 
-$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
+$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h perlio.h
 
 $(SOCKC) : [.vms]$(SOCKC)
        Copy/Log/NoConfirm [.vms]$(SOCKC) []$(SOCKC)
@@ -1253,6 +1261,9 @@ $(ARCHCORE)iperlsys.h : iperlsys.h
 $(ARCHCORE)perlsdio.h : perlsdio.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+$(ARCHCORE)perlio.h : perlio.h
+       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)perlvars.h : perlvars.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -1435,7 +1446,7 @@ vms.c : [.vms]vms.c
        Copy/Log/Noconfirm [.vms]vms.c []
 
 $(CRTL) : $(MAKEFILE)
-       @ @[.vms]genopt "$(CRTL)/Write" "|" "$(LIBS1)|$(LIBS2)|$(SOCKLIB)"
+       @ @[.vms]genopt "$(CRTL)/Write" "|" "$(LIBS1)|$(FULLLIBS2)|$(SOCKLIB)"
 
 
 cleanlis :
index f07b885..e937e69 100644 (file)
@@ -277,7 +277,7 @@ while (<DATA>) {
   print "Adding $key to \%$array list\n" if $debug > 1;
   ${$array}{$key}++;
 }
-if ($debugging_enabled and ($isvaxc or $isgcc)) { $vars{'colors'}++ }
+if ($debugging_enabled and $isgcc) { $vars{'colors'}++ }
 foreach (split /\s+/, $extnames) {
   my($pkgname) = $_;
   $pkgname =~ s/::/__/g;
index 8333a6f..0923e21 100644 (file)
@@ -1,4 +1,22 @@
 $! SUBCONFIGURE.COM - build a config.sh for VMS Perl.
+$!
+$! Note for folks from other platforms changing things in here:
+$!   Fancy changes (based on compiler capabilities or VMS version or
+$!   whatever) are tricky, so go ahead and punt on those.
+$!
+$!   Simple changes, though (say, always setting something to 1, or undef,
+$!   or something like that) are straightforward. Adding a new item for the
+$!   ultimately created config.sh requires adding two lines to this file.
+$!
+$!   First, a line in the format:
+$!     $ perl_foo = "bar"
+$!   after the line tagged ##ADD NEW CONSTANTS HERE##. Replace foo with the
+$!   variable name as it appears in config.sh.
+$!
+$!   Second, add a line in the format:
+$!     $ WC "foo='" + perl_foo + "'"
+$!   after the line tagged ##WRITE NEW CONSTANTS HERE##. Careful of the
+$!   quoting, as it can be tricky. 
 $! 
 $! This .COM file expects to be called by configure.com, and thus expects
 $! a few symbols in the environment. Notably:
@@ -36,6 +54,8 @@ $
 $ hwname = f$getsyi("HW_NAME")
 $ myname = myhostname
 $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
+$!
+$! ##ADD NEW CONSTANTS HERE##
 $ perl_package="''package'"
 $ perl_baserev = "''baserev'"
 $ cc_defines=""
@@ -62,6 +82,7 @@ $ perl_d_pwpasswd="define"
 $ perl_d_setpwent="define"
 $ perl_d_getpwent="define"
 $ perl_d_endpwent="define"
+$ perl_ebcdic="undef"
 $ perl_hintfile=""
 $ perl_shrplib="define"
 $ perl_usemymalloc=mymalloc
@@ -346,6 +367,11 @@ $ perl_arch="VMS_VAX"
 $ perl_archname="VMS_VAX"
 $ perl_alignbytes="8"
 $ ENDIF
+$ if ("''Use_Threads'".eqs."T")
+$ THEN
+$ perl_arch = "''perl_arch'-thread"
+$ perl_archname = "''perl_archname'-thread"
+$ ENDIF
 $ perl_osvers=f$edit(osvers, "TRIM")
 $ LocalPerlVer = "5_" + Perl_PATCHLEVEL + perl_subversion
 $!
@@ -388,12 +414,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   ON ERROR THEN CONTINUE
 $   ON WARNING THEN CONTINUE
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -430,14 +456,14 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   ON ERROR THEN CONTINUE
 $   ON WARNING THEN CONTINUE
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
-$!   link temp
+$!   link temp.obj
 $   OPEN/WRITE TEMPOUT [-.uu]tempout.lis
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -471,7 +497,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   ON ERROR THEN CONTINUE
 $   ON WARNING THEN CONTINUE
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   if (teststatus.nes."1")
 $   THEN
@@ -482,9 +508,9 @@ $     ON ERROR THEN CONTINUE
 $     ON WARNING THEN CONTINUE
 $     If (Needs_Opt.eqs."Yes")
 $     THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $     else
-$       link temp
+$       link temp.obj
 $     endif
 $     teststatus = f$extract(9,1,$status)
 $     DEASSIGN SYS$OUTPUT
@@ -529,12 +555,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -578,18 +604,18 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   OPEN/WRITE TEMPOUT [-.uu]tempout.lis
 $   DEASSIGN SYS$OUTPUT
@@ -624,12 +650,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   OPEN/WRITE TEMPOUT [-.uu]tempout.lis
 $   DEASSIGN SYS$OUTPUT
@@ -666,12 +692,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   OPEN/WRITE TEMPOUT [-.uu]tempout.lis
 $   DEASSIGN SYS$OUTPUT
@@ -708,7 +734,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -740,7 +766,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -769,7 +795,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -814,7 +840,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -850,7 +876,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   savedstatus = $status
 $   teststatus = f$extract(9,1,savedstatus)
 $   if (teststatus.nes."1")
@@ -861,9 +887,9 @@ $     DEASSIGN SYS$ERROR
 $   ELSE
 $     If (Needs_Opt.eqs."Yes")
 $     THEN
-$       link temp,temp/opt
+$       link temp.obj,temp.opt/opt
 $     else
-$       link temp
+$       link temp.obj
 $     endif
 $     savedstatus = $status
 $     teststatus = f$extract(9,1,savedstatus)
@@ -897,7 +923,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   savedstatus = $status
 $   teststatus = f$extract(9,1,savedstatus)
 $   if (teststatus.nes."1")
@@ -908,9 +934,9 @@ $     DEASSIGN SYS$ERROR
 $   ELSE
 $     If (Needs_Opt.eqs."Yes")
 $     THEN
-$       link temp,temp/opt
+$       link temp.obj,temp.opt/opt
 $     else
-$       link temp
+$       link temp.obj
 $     endif
 $     savedstatus = $status
 $     teststatus = f$extract(9,1,savedstatus)
@@ -942,12 +968,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   savedstatus = $status
 $   teststatus = f$extract(9,1,savedstatus)
@@ -981,12 +1007,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1024,12 +1050,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1070,12 +1096,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1116,12 +1142,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1162,12 +1188,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1208,12 +1234,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1254,12 +1280,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1300,12 +1326,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1346,12 +1372,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1392,12 +1418,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1438,12 +1464,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1484,12 +1510,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1530,12 +1556,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1576,12 +1602,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
@@ -1617,7 +1643,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -1652,7 +1678,7 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   on error then continue
 $   on warning then continue
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   teststatus = f$extract(9,1,$status)
 $   DEASSIGN SYS$OUTPUT
 $   DEASSIGN SYS$ERROR
@@ -1688,12 +1714,12 @@ $   DEFINE SYS$ERROR _NLA0:
 $   DEFINE SYS$OUTPUT _NLA0:
 $   ON ERROR THEN CONTINUE
 $   ON WARNING THEN CONTINUE
-$   'Checkcc' temp
+$   'Checkcc' temp.c
 $   If (Needs_Opt.eqs."Yes")
 $   THEN
-$     link temp,temp/opt
+$     link temp.obj,temp.opt/opt
 $   else
-$     link temp
+$     link temp.obj
 $   endif
 $   OPEN/WRITE TEMPOUT [-.uu]tempout.lis
 $   DEASSIGN SYS$OUTPUT
@@ -2276,6 +2302,7 @@ $ WC "d_getsent='" + perl_d_getsent + "'"
 $ WC "d_sethent='" + perl_d_sethent + "'"
 $ WC "d_setnent='" + perl_d_setsent + "'"
 $ WC "d_setpent='" + perl_d_setpent + "'"
+$ WC "ebcdic='" + perl_ebcdic + "'"
 $ WC "d_setsent='" + perl_d_setsent + "'"
 $ WC "d_gethostprotos='" + perl_d_gethostprotos + "'"
 $ WC "d_getnetprotos='" + perl_d_getnetprotos + "'"
@@ -2300,10 +2327,12 @@ $ WC "extensions='" + perl_extensions + "'"
 $ WC "d_mknod='" + perl_d_mknod + "'"
 $ WC "devtype='" + perl_devtype + "'"
 $!
+$! ##WRITE NEW CONSTANTS HERE##
+$!
 $ Close CONFIGSH
 $
 $! Okay, we've gotten here. Build munchconfig and run it
-$ 'Perl_CC' munchconfig
+$ 'Perl_CC' munchconfig.c
 $ If (Needs_Opt.eqs."Yes")
 $ THEN
 $   open/write OPTCHAN []munchconfig.opt
@@ -2313,10 +2342,10 @@ $     write OPTCHAN "Gnu_CC:[000000]gcclib.olb/library"
 $   endif
 $   write OPTCHAN "Sys$Share:VAXCRTL/Share"
 $   Close OPTCHAN
-$   link munchconfig,munchconfig/opt
+$   link munchconfig.obj,munchconfig.opt/opt
 $   delete munchconfig.opt;*
 $ else
-$   link munchconfig
+$   link munchconfig.obj
 $ endif
 $ WRITE_RESULT "Writing config.h"
 $ !