Pathces to get _60 building on VMS
Dan Sugalski [Tue, 10 Aug 1999 13:28:18 +0000 (06:28 -0700)]
To: vmsperl@perl.org, perp5-porters@perl.org, bailey@newman.upenn.edu,
        sarathy@activestate.com
Message-ID: <Pine.LNX.4.10.9908101323130.18266-100000@tuatha.sidhe.org>

p4raw-id: //depot/cfgperl@3953

configure.com
vms/descrip_mms.template
vms/gen_shrfls.pl
vms/subconfigure.com
vms/vmsish.h

index aca42de..0f86983 100644 (file)
@@ -41,6 +41,7 @@ $ ans = ""
 $ macros = ""
 $ use_vmsdebug_perl = "N"
 $ use_debugging_perl = "Y"
+$ use_64bit = "N"
 $ C_Compiler_Replace = "CC="
 $ Thread_Live_Dangerously = "MT="
 $ use_two_pot_malloc = "N"
@@ -1707,6 +1708,27 @@ $   use_multiplicity="Y"
 $ ELSE
 $   use_multiplicity="N"
 $ ENDIF
+$!
+$! Ask if they want to build with 64-bit support
+$ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ THEN
+$   echo "This version of perl has experimental support for building wtih
+$   echo "64 bit integers and 128 bit floating point variables. This gives
+$   echo "a much larger range for perl's mathematical operations. (Note that
+$   echo "does *not* enable 64-bit fileops at the moment, as Dec C doesn't
+$   echo "do that yet)"
+$   echo ""
+$   dflt = use_64bit
+$   rp = "Build with 64 bits? [''dflt'] "
+$   GOSUB myread
+$     if ans.eqs."" then ans = dflt
+$   if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y")
+$   THEN
+$     use_64bit="Y"
+$   ELSE
+$     use_64bit="N"
+$   ENDIF
+$ ENDIF
 $! Ask about threads, if appropriate
 $ if (Using_Dec_C.eqs."Yes")
 $ THEN
@@ -1837,7 +1859,8 @@ $ echo "you might, for example, want to build GDBM_File instead of
 $ echo "SDBM_File if you have the GDBM library built on your machine
 $ echo "
 $ echo "Which modules do you want to build into perl?"
-$ dflt = "Fcntl Errno IO Opcode Byteloader Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File"
+$! dflt = "Fcntl Errno IO Opcode Byteloader Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File"
+$ dflt = "Fcntl Errno IO Opcode Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File"
 $ if Using_Dec_C.eqs."Yes"
 $ THEN
 $   dflt = dflt + " POSIX"
index 84f8d04..7d86f24 100644 (file)
@@ -279,7 +279,7 @@ 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
+h1 = EXTERN.h, INTERN.h, XSUB.h, av.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, perlio.h
@@ -289,13 +289,13 @@ h = $(h1), $(h2), $(h3), $(h4), $(h5), $(h6) $(SOCKHLIS) $(THREADH)
 
 c1 = av.c, scope.c, op.c, doop.c, doio.c, dump.c, hv.c, mg.c, universal.c, perlio.c, utf8.c
 c2 = perl.c, perly.c, pp.c, pp_hot.c, pp_ctl.c, pp_sys.c, regcomp.c, regexec.c $(MALLOC_C)
-c3 = gv.c, sv.c, taint.c, toke.c, utf8.c, util.c, deb.c, run.c, globals.c, vms.c, byterun.c $(SOCKCLIS)
+c3 = gv.c, sv.c, taint.c, toke.c, utf8.c, util.c, deb.c, run.c, globals.c, vms.c $(SOCKCLIS)
 
-c = $(c1), $(c2), $(c3), miniperlmain.c, perlmain.c, byteperl.c
+c = $(c1), $(c2), $(c3), miniperlmain.c, perlmain.c
 
 obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), utf8$(O), util$(O), mg$(O), perlio$(O) $(MALLOC_O)
 obj2 = hv$(O), av$(O), run$(O), pp_hot$(O), sv$(O), pp$(O), scope$(O), pp_ctl$(O), pp_sys$(O), utf8$(O)
-obj3 = doop$(O), doio$(O), regexec$(O), taint$(O), deb$(O), universal$(O), globals$(O), vms$(O), byterun$(O) $(SOCKOBJ)
+obj3 = doop$(O), doio$(O), regexec$(O), taint$(O), deb$(O), universal$(O), globals$(O), vms$(O) $(SOCKOBJ)
 
 obj = $(obj1), $(obj2), $(obj3)
 
@@ -308,7 +308,7 @@ ac6 = $(ARCHCORE)pp.h $(ARCHCORE)pp_proto.h $(ARCHCORE)proto.h $(ARCHCORE)regcom
 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)warning.h $(ARCHCORE)$(DBG)libperl$(OLB) $(ARCHCORE)perlshr_attr.opt
-ac10 = $(ARCHCORE)$(DBG)perlshr_bld.opt $(ARCHCORE)bytecode.h $(ARCHCORE)byterun.h
+ac10 = $(ARCHCORE)$(DBG)perlshr_bld.opt  
 ac11 = $(ARCHCORE)cc_runtime.h
 .ifdef SOCKET
 acs = $(ARCHCORE)$(SOCKH)
@@ -395,16 +395,13 @@ $(DBG)libperl$(OLB) : $(obj)
 perlmain.c : miniperlmain.c $(MINIPERL_EXE) [.vms]writemain.pl
        $(MINIPERL) [.VMS]Writemain.pl "$(EXT)"
 
-byteperl.c : [.ext.B]byteperl.c
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 
 .ifdef __DEBUG__
 # Link an extra perl that doesn't invoke the debugger
-perl : $(DBG)perl$(E) $(DBG)byteperl$(E)
+perl : $(DBG)perl$(E)
        Link $(LINKFLAGS)/NoDebug/Trace/NoMap/NoCross/NoFull/Exe=N$(DBG)perl$(E) perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
-       Link $(LINKFLAGS)/NoDebug/Trace/NoMap/NoCross/NoFull/Exe=N$(DBG)byteperl$(E) byteperl$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
 .else
-perl : $(DBG)perl$(E) $(DBG)byteperl$(E)
+perl : $(DBG)perl$(E)
        @ Continue
 .endif
 
@@ -416,10 +413,6 @@ $(DBG)perl$(E) : perlmain$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE)
        Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
 .endif
 
-$(DBG)byteperl$(E) : byteperl$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE)
-       @ @[.vms]genopt "PerlShr.Opt/Write" "|" "''F$Environment("Default")'$(DBG)PerlShr$(E)/Share"
-       Link $(LINKFLAGS)/Exe=$(MMS$TARGET) byteperl$(O), perlshr.opt/Option, perlshr_attr.opt/Option $(CRTLOPTS)
-
 $(DBG)perlshr$(E) : $(DBG)libperl$(OLB) $(extobj) $(DBG)perlshr_xtras.ts
        Link $(LINKFLAGS)/Share=$(MMS$TARGET) $(extobj) []$(DBG)perlshr_bld.opt/Option, perlshr_attr.opt/Option
 
@@ -822,12 +815,6 @@ $(ARCHCORE)INTERN.h : INTERN.h
 $(ARCHCORE)XSUB.h : XSUB.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)bytecode.h : bytecode.h
-       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)byterun.h : byterun.h
-       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)av.h : av.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -966,103 +953,97 @@ $(ARCHAUTO)time.stamp :
 #util$(O) : util.c
 #      $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
-av$(O) : av.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
-       $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-byterun$(O) : byterun.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
-       $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-
-deb$(O) : deb.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+av$(O) : av.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-doio$(O) : doio.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+deb$(O) : deb.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-doop$(O) : doop.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+doio$(O) : doio.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-dump$(O) : dump.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+doop$(O) : doop.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-globals$(O) : globals.c INTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+dump$(O) : dump.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-gv$(O) : gv.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+globals$(O) : globals.c INTERN.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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-hv$(O) : hv.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+gv$(O) : gv.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-malloc$(O) : malloc.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+hv$(O) : hv.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-mg$(O) : mg.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+malloc$(O) : malloc.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-miniperlmain$(O) : miniperlmain.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+mg$(O) : mg.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-op$(O) : op.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+miniperlmain$(O) : miniperlmain.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-perl$(O) : perl.c EXTERN.h perl.h bytecode.h byterun.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 patchlevel.h iperlsys.h pp_proto.h warning.h
+op$(O) : op.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-perlio$(O) : perlio.c config.h EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+perl$(O) : perl.c 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 patchlevel.h iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-perlmain$(O) : perlmain.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+perlio$(O) : perlio.c config.h EXTERN.h perl.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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-byteperl$(O) : byteperl.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+perlmain$(O) : perlmain.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-perly$(O) : perly.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+perly$(O) : perly.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-pp$(O) : pp.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+pp$(O) : pp.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-pp_ctl$(O) : pp_ctl.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+pp_ctl$(O) : pp_ctl.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-pp_hot$(O) : pp_hot.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+pp_hot$(O) : pp_hot.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-pp_sys$(O) : pp_sys.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+pp_sys$(O) : pp_sys.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-regcomp$(O) : regcomp.c EXTERN.h perl.h bytecode.h byterun.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 INTERN.h regcomp.h regnodes.h iperlsys.h pp_proto.h warning.h
+regcomp$(O) : regcomp.c 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 INTERN.h regcomp.h regnodes.h iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-regexec$(O) : regexec.c EXTERN.h perl.h bytecode.h byterun.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 regcomp.h regnodes.h iperlsys.h pp_proto.h warning.h
+regexec$(O) : regexec.c 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 regcomp.h regnodes.h iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-run$(O) : run.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+run$(O) : run.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-scope$(O) : scope.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+scope$(O) : scope.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-sv$(O) : sv.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+sv$(O) : sv.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-taint$(O) : taint.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+taint$(O) : taint.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-toke$(O) : toke.c EXTERN.h perl.h bytecode.h byterun.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 keywords.h iperlsys.h pp_proto.h warning.h
+toke$(O) : toke.c 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 keywords.h iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-universal$(O) : universal.c EXTERN.h perl.h bytecode.h byterun.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 XSUB.h iperlsys.h pp_proto.h warning.h
+universal$(O) : universal.c 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 XSUB.h iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-utf8$(O) : utf8.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+utf8$(O) : utf8.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-util$(O) : util.c EXTERN.h perl.h bytecode.h byterun.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 iperlsys.h pp_proto.h warning.h
+util$(O) : util.c 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 iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
-vms$(O) : vms.c EXTERN.h perl.h bytecode.h byterun.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 XSUB.h iperlsys.h pp_proto.h warning.h
+vms$(O) : vms.c 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 XSUB.h iperlsys.h pp_proto.h warning.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
 #[.x2p]a2p$(O) : [.x2p]a2p.c [.x2p]a2py.c [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h config.h handy.h
@@ -1109,7 +1090,6 @@ tidy : cleanlis
        - If F$Search("VMSish.H;-1").nes."" Then Purge/NoConfirm/Log VMSish.H
        - If F$Search("VMS.C;-1")   .nes."" Then Purge/NoConfirm/Log VMS.C
        - If F$Search("Perlmain.C;-1")   .nes."" Then Purge/NoConfirm/Log Perlmain.C
-       - If F$Search("byteperl.C;-1")   .nes."" Then Purge/NoConfirm/Log byteperl.C
        - If F$Search("Perlshr_Gbl*.Mar;-1")   .nes."" Then Purge/NoConfirm/Log Perlshr_Gbl*.Mar
        - If F$Search("[.Ext.DynaLoader]DL_VMS$(O);-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O)
        - If F$Search("[.Ext.DynaLoader]DL_VMS.C;-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C
@@ -1145,7 +1125,6 @@ clean : tidy
        - If F$Search("VMSish.H").nes."" Then Delete/NoConfirm/Log VMSish.H;*
        - If F$Search("VMS.C")   .nes."" Then Delete/NoConfirm/Log VMS.C;*
        - If F$Search("Perlmain.C")   .nes."" Then Delete/NoConfirm/Log Perlmain.C;*
-       - If F$Search("byteperl.C")   .nes."" Then Delete/NoConfirm/Log byteperl.C;*
        - If F$Search("Perlshr_Gbl*.Mar")   .nes."" Then Delete/NoConfirm/Log Perlshr_Gbl*.Mar;*
        - If F$Search("*.TS").nes."" Then Delete/NoConfirm/Log *.TS;*
        - If F$Search("[.Ext.DynaLoader]DL_VMS$(O)").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O);*
index 3e70372..ef76a68 100644 (file)
@@ -74,6 +74,8 @@ if ($docc) {
   while(<CONFIG>) {
     $debugging_enabled++ if /define\s+DEBUGGING/;
     $use_mymalloc++ if /define\s+MYMALLOC/;
+    $hide_mymalloc++ if /define\s+EMBEDMYMALLOC/;
+    $use_threads++ if /define\s+USE_THREADS/;
   }
   
   # put quotes back onto defines - they were removed by DCL on the way in
@@ -193,18 +195,27 @@ sub scan_func {
     if ($1 eq 'main' || $1 eq 'perl_init_ext') {
       print "\tskipped\n" if $debug > 1;
     }
-    else { $fcns{$1}++ }
+    else { $fcns{uc($1)}++ }
   }
 }
 
+open FUNCS, "LIBR/CROSS=SYMB LIBPERL.OLB/OUT=SYS\$OUTPUT |";
+foreach (<FUNCS>) {
+    chomp;
+    next unless /(perl_\w+)/i;
+    $fcns{uc($1)}++;
+}
+
 # Go add some right up front if we need 'em
 if ($use_mymalloc) {
-  $fcns{'Perl_malloc'}++;
-  $fcns{'Perl_calloc'}++;
-  $fcns{'Perl_realloc'}++;
-  $fcns{'Perl_mfree'}++;
+  $fcns{uc('Perl_malloc')}++;
+  $fcns{uc('Perl_calloc')}++;
+  $fcns{uc('Perl_realloc')}++;
+  $fcns{uc('Perl_mfree')}++;
 }
 
+delete $fcns{PERL_DESTRUCT_LEVEL} if exists $fcns{PERL_DESTRUCT_LEVEL};
+
 $used_expectation_enum = $used_opcode_enum = 0; # avoid warnings
 if ($docc) {
   open(CPP,"${cc_cmd}/NoObj/PreProc=Sys\$Output ${dir}perl.h|")
@@ -306,6 +317,22 @@ if ($isvax) {
     or die "$0: Can't write to ${dir}perlshr_gbl${marord}.mar: $!\n";
   print MAR "\t.title perlshr_gbl$marord\n";
 }
+
+($ver, $sub) = $] =~ /\.(\d\d\d)(\d\d)/;
+$gsmatch = ($sub >= 50) ? "equal" : "lequal";  # Force an equal match for
+                                               # dev, but be more forgiving
+                                               # for releases
+
+# Build up a major ID. Since it can only be 8 bits, we encode the version
+# number in the top four bits and use the bottom four for build options
+# that'll cause incompatibilities
+$ver *=16;
+$ver += 8 if $debugging_enabled;       # If DEBUGGING is set
+$ver += 4 if $use_threads;             # if we're threaded
+$ver += 2 if $use_mymalloc;            # if we're using perl's malloc
+
+print OPTBLD "GSMATCH=$gsmatch,$ver,$sub\n";
+
 unless ($isgcc) {
   print OPTBLD "PSECT_ATTR=\$GLOBAL_RO_VARS,PIC,NOEXE,RD,NOWRT,SHR\n";
   print OPTBLD "PSECT_ATTR=\$GLOBAL_RW_VARS,PIC,NOEXE,RD,WRT,NOSHR\n";
index 6b6483a..34d1514 100644 (file)
@@ -64,6 +64,7 @@ $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
 $!
 $! ##ADD NEW CONSTANTS HERE##
 $ perl_d_madvise="undef"
+$ perl_selectminbits=32
 $ perl_d_msync="undef"
 $ perl_d_mprotect="undef"
 $ perl_d_munmap="undef"
@@ -73,10 +74,18 @@ $ perl_d_mmap="undef"
 $ perl_i_sysmman="undef"
 $ perl_d_telldirproto="define"
 $ perl_i_sysmount="undef"
+$ perl_d_bincompat="undef"
+$ perl_d_endspent="undef
+$ perl_d_getspent="undef
+$ perl_d_getspnam="undef
+$ perl_d_setspent="undef
 $ perl_d_fstatfs="undef"
 $ perl_i_machcthreads="undef"
 $ perl_i_pthread="define"
 $ perl_d_fstatvfs="undef"
+$ perl_usesocks="undef"
+$ perl_d_vendorlib="undef"
+$ perl_vendorlibexp=""
 $ perl_d_statfsflags="undef"
 $ perl_i_sysstatvfs="undef"
 $ perl_i_mntent="undef"
@@ -139,7 +148,12 @@ $ perl_d_fsetpos64 = "undef"
 $ perl_d_ftell64 = "undef"
 $ perl_d_ftello64 = "undef"
 $ perl_d_tmpfile64 = "undef"
-$ perl_use64bits = "undef"
+$ IF use_64bit .eqs. "Y"
+$ THEN
+$   perl_use64bits = "define"
+$ ELSE
+$   perl_use64bits = "undef"
+$ ENDIF
 $ perl_d_drand48proto = "define"
 $ perl_libpth="/sys$share /sys$library"
 $ perl_ld="Link"
@@ -427,6 +441,37 @@ $ perl_PATCHLEVEL="''patchlevel'"
 $ perl_SUBVERSION="''subversion'"
 $ perl_pager="most"
 $!
+$! Are we 64 bit?
+$!
+$ if (use_64bit .eqs. "Y")
+$ THEN
+$   perl_d_PRIfldbl = "define"
+$   perl_d_PRIgldbl = "define"
+$   perl_d_PRId64 = "define"
+$   perl_d_PRIu64 = "define"
+$   perl_d_PRIo64 = "define"
+$   perl_d_PRIx64 = "define"
+$   perl_sPRIfldbl = """Lf"""
+$   perl_sPRIgldbl = """Lg"""
+$   perl_sPRId64 = """Ld"""
+$   perl_sPRIu64 = """Lu"""
+$   perl_sPRIo64 = """Lo"""
+$   perl_sPRIx64 = """Lx"""
+$ ELSE
+$   perl_d_PRIfldbl = "undef"
+$   perl_d_PRIgldbl = "undef"
+$   perl_d_PRId64 = "undef"
+$   perl_d_PRIu64 = "undef"
+$   perl_d_PRIo64 = "undef"
+$   perl_d_PRIx64 = "undef"
+$   perl_sPRIfldbl = ""
+$   perl_sPRIgldbl = ""
+$   perl_sPRId64 = ""
+$   perl_sPRIu64 = ""
+$   perl_sPRIo64 = ""
+$   perl_sPRIx64 = ""
+$ ENDIF
+$!
 $!
 $! Now some that we build up
 $!
@@ -897,6 +942,66 @@ $     perl_i_unistd = "define"
 $   ENDIF
 $ WRITE_RESULT "i_unistd is ''perl_i_unistd'"
 $!
+$! Check to see if we've got shadow.h (probably not, but...)
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <shadow.h>
+$ WS "int main()
+$ WS "{"
+$ WS "exit(0);
+$ WS "}"
+$ CS
+$   DEFINE SYS$ERROR _NLA0:
+$   DEFINE SYS$OUTPUT _NLA0:
+$   on error then continue
+$   on warning then continue
+$   'Checkcc' temp.c
+$   teststatus = f$extract(9,1,$status)
+$   DEASSIGN SYS$OUTPUT
+$   DEASSIGN SYS$ERROR
+$   if (teststatus.nes."1")
+$   THEN
+$!   Okay, failed. Must not have it
+$     perl_i_shadow = "undef"
+$   ELSE
+$     perl_i_shadow = "define"
+
+$   ENDIF
+$ WRITE_RESULT "i_shadow is ''perl_i_shadow'"
+$!
+$! Check to see if we've got socks.h (probably not, but...)
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <socks.h>
+$ WS "int main()
+$ WS "{"
+$ WS "exit(0);
+$ WS "}"
+$ CS
+$   DEFINE SYS$ERROR _NLA0:
+$   DEFINE SYS$OUTPUT _NLA0:
+$   on error then continue
+$   on warning then continue
+$   'Checkcc' temp.c
+$   teststatus = f$extract(9,1,$status)
+$   DEASSIGN SYS$OUTPUT
+$   DEASSIGN SYS$ERROR
+$   if (teststatus.nes."1")
+$   THEN
+$!   Okay, failed. Must not have it
+$     perl_i_socks = "undef"
+$   ELSE
+$     perl_i_socks = "define"
+
+$   ENDIF
+$ WRITE_RESULT "i_socks is ''perl_i_socks'"
+$!
 $! Check the prototype for select
 $!
 $ if ("''Has_Dec_C_Sockets'".eqs."T").or.("''Has_Socketshr'".eqs."T")
@@ -1535,6 +1640,144 @@ $     ENDIF
 $   ENDIF
 $ WRITE_RESULT "d_memchr is ''perl_d_memchr'"
 $!
+$! Check for strtoull
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <string.h>
+$ WS "int main()
+$ WS "{"
+$ WS "unsigned __int64 result;
+$ WS "result = strtoull(""123123"", NULL, 10);
+$ WS "exit(0);
+$ WS "}"
+$ CS
+$   DEFINE SYS$ERROR _NLA0:
+$   DEFINE SYS$OUTPUT _NLA0:
+$   on error then continue
+$   on warning then continue
+$   'Checkcc' temp.c
+$   savedstatus = $status
+$   teststatus = f$extract(9,1,savedstatus)
+$   if (teststatus.nes."1")
+$   THEN
+$     perl_d_strtoull="undef"
+$     DEASSIGN SYS$OUTPUT
+$     DEASSIGN SYS$ERROR
+$   ELSE
+$     If (Needs_Opt.eqs."Yes")
+$     THEN
+$       link temp.obj,temp.opt/opt
+$     else
+$       link temp.obj
+$     endif
+$     savedstatus = $status
+$     teststatus = f$extract(9,1,savedstatus)
+$     DEASSIGN SYS$OUTPUT
+$     DEASSIGN SYS$ERROR
+$     if (teststatus.nes."1")
+$     THEN
+$       perl_d_strtoull="undef"
+$     ELSE
+$       perl_d_strtoull="define"
+$     ENDIF
+$   ENDIF
+$ WRITE_RESULT "d_strtoull is ''perl_d_strtoull'"
+$!
+$! Check for atoll
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <string.h>
+$ WS "int main()
+$ WS "{"
+$ WS " __int64 result;
+$ WS "result = atoll(""123123"");
+$ WS "exit(0);
+$ WS "}"
+$ CS
+$   DEFINE SYS$ERROR _NLA0:
+$   DEFINE SYS$OUTPUT _NLA0:
+$   on error then continue
+$   on warning then continue
+$   'Checkcc' temp.c
+$   savedstatus = $status
+$   teststatus = f$extract(9,1,savedstatus)
+$   if (teststatus.nes."1")
+$   THEN
+$     perl_d_atoll="undef"
+$     DEASSIGN SYS$OUTPUT
+$     DEASSIGN SYS$ERROR
+$   ELSE
+$     If (Needs_Opt.eqs."Yes")
+$     THEN
+$       link temp.obj,temp.opt/opt
+$     else
+$       link temp.obj
+$     endif
+$     savedstatus = $status
+$     teststatus = f$extract(9,1,savedstatus)
+$     DEASSIGN SYS$OUTPUT
+$     DEASSIGN SYS$ERROR
+$     if (teststatus.nes."1")
+$     THEN
+$       perl_d_atoll="undef"
+$     ELSE
+$       perl_d_atoll="define"
+$     ENDIF
+$   ENDIF
+$ WRITE_RESULT "d_atoll is ''perl_d_atoll'"
+$!
+$! Check for atoll
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <string.h>
+$ WS "int main()
+$ WS "{"
+$ WS "long double
+$ WS "result = atolf(""123123"");
+$ WS "exit(0);
+$ WS "}"
+$ CS
+$   DEFINE SYS$ERROR _NLA0:
+$   DEFINE SYS$OUTPUT _NLA0:
+$   on error then continue
+$   on warning then continue
+$   'Checkcc' temp.c
+$   savedstatus = $status
+$   teststatus = f$extract(9,1,savedstatus)
+$   if (teststatus.nes."1")
+$   THEN
+$     perl_d_atolf="undef"
+$     DEASSIGN SYS$OUTPUT
+$     DEASSIGN SYS$ERROR
+$   ELSE
+$     If (Needs_Opt.eqs."Yes")
+$     THEN
+$       link temp.obj,temp.opt/opt
+$     else
+$       link temp.obj
+$     endif
+$     savedstatus = $status
+$     teststatus = f$extract(9,1,savedstatus)
+$     DEASSIGN SYS$OUTPUT
+$     DEASSIGN SYS$ERROR
+$     if (teststatus.nes."1")
+$     THEN
+$       perl_d_atolf="undef"
+$     ELSE
+$       perl_d_atolf="define"
+$     ENDIF
+$   ENDIF
+$ WRITE_RESULT "d_atolf is ''perl_d_atolf'"
+$!
 $! Check for access
 $!
 $ OS
@@ -3087,6 +3330,7 @@ $ WC "intsize='" + perl_intsize + "'"
 $ WC "longsize='" + perl_longsize + "'"
 $ WC "shortsize='" + perl_shortsize + "'"
 $ WC "lseektype='" + perl_lseektype + "'"
+$ WC "lseeksize='4'"
 $ WC "i_values='" + perl_i_values + "'"
 $ WC "malloctype='" + perl_malloctype + "'"
 $ WC "freetype='" + perl_freetype + "'"
@@ -3312,16 +3556,42 @@ $ WC "d_munmap='" + perl_d_munmap + "'"
 $ WC "d_mmap='" + perl_d_mmap + "'"
 $ WC "i_sysmman='" + perl_i_sysmman + "'"
 $ WC "installusrbinperl='" + perl_installusrbinperl + "'"
+$! WC "selectminbits='" + perl_selectminbits + "'"
 $ WC "crosscompile='" + perl_crosscompile + "'"
 $ WC "multiarch='" + perl_multiarch + "'"
 $ WC "sched_yield='" + perl_sched_yield + "'"
+$ WC "d_strtoull='" + perl_d_strtoull + "'"
+$ WC "usesocks='" + perl_usesocks + "'"
+$ WC "d_vendorlib='" + perl_d_vendorlib + "'"
+$ WC "vendorlibexp='" + perl_vendorlibexp + "'"
+$ WC "d_atolf='" + perl_d_atolf + "'"
+$ WC "d_atoll='" + perl_d_atoll + "'"
+$ WC "d_bincompat5005='" + perl_d_bincompat + "'"
+$ WC "d_endspent='" + perl_d_endspent + "'"
+$ WC "d_getspent='" + perl_d_getspent + "'"
+$ WC "d_getspnam='" + perl_d_getspnam + "'"
+$ WC "d_setspent='" + perl_d_setspent + "'"
+$ WC "i_shadow='" + perl_i_shadow + "'"
+$ WC "i_socks='" + perl_i_socks + "'"
+$ WC "d_PRIfldbl='" + perl_d_PRIfldbl + "'"
+$ WC "d_PRIgldbl='" + perl_d_PRIgldbl + "'"
+$ WC "d_PRId64='" + perl_d_PRId64 + "'"
+$ WC "d_PRIu64='" + perl_d_PRIu64 + "'"
+$ WC "d_PRIo64='" + perl_d_PRIo64 + "'"
+$ WC "d_PRIx64='" + perl_d_PRIx64 + "'"
+$ WC "sPRIfldbl='" + perl_sPRIfldbl + "'"
+$ WC "sPRIgldbl='" + perl_sPRIgldbl + "'"
+$ WC "sPRId64='" + perl_sPRId64 + "'"
+$ WC "sPRIu64='" + perl_sPRIu64 + "'"
+$ WC "sPRIo64='" + perl_sPRIo64 + "'"
+$ WC "sPRIx64='" + perl_sPRIx64 + "'"
 $!
 $! ##WRITE NEW CONSTANTS HERE##
 $!
 $ Close CONFIGSH
 $
 $! Okay, we've gotten here. Build munchconfig and run it
-$ 'Perl_CC' munchconfig.c
+$ 'Perl_CC'/debug munchconfig.c
 $ If (Needs_Opt.eqs."Yes")
 $ THEN
 $   open/write OPTCHAN []munchconfig.opt
@@ -3394,6 +3664,11 @@ $    WRITE CONFIG "#define ALWAYS_DEFTYPES"
 $ ELSE
 $    WRITE CONFIG "#undef ALWAYS_DEFTYPES"
 $ ENDIF
+$ if use_64bit.eqs."Y"
+$ THEN
+$    WRITE CONFIG "#define USE_LONG_LONG"
+$    WRITE CONFIG "#define USE_LONG_DOUBLE"
+$ ENDIF
 $ WRITE CONFIG "#define HAS_ENVGETENV"
 $ CLOSE CONFIG
 $!
index 8f63018..709e34e 100644 (file)
@@ -75,6 +75,9 @@
   /* getenv used for regular logical names */
 #  define getenv(v) my_getenv(v,TRUE)
 #endif
+#if defined(getenv_len)
+#undef getenv_len
+#endif
 #define getenv_len(v,l) my_getenv_len(v,l,TRUE)
 
 /* DECC introduces this routine in the RTL as of VMS 7.0; for now,