From: Gurusamy Sarathy Date: Tue, 7 Mar 2000 23:37:48 +0000 (+0000) Subject: VMS build patch (from Peter Prymmer) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c645ec3fd74a29e359e29872c448f083581207ce;p=p5sagit%2Fp5-mst-13.2.git VMS build patch (from Peter Prymmer) p4raw-id: //depot/perl@5605 --- diff --git a/configure.com b/configure.com index aefd4ae..8b35193 100644 --- a/configure.com +++ b/configure.com @@ -39,7 +39,7 @@ $ cat = "type" $ gcc_symbol = "gcc" $ ans = "" $ macros = "" -$ extra_fags = "" +$ extra_flags = "" $ user_c_flags = "" $ use_debugging_perl = "y" $ use_ieee_math = "n" @@ -2219,6 +2219,8 @@ $ file_2_find = "[-]''packageup'.cld" $ echo "" $ echo4 "%Config-I-VMS, The perl.cld file is now being written..." $ OPEN/WRITE CONFIG 'file_2_find' +$ ext = ".exe" +$ IF ((sharedperl) .AND. (f$getsyi("ARCH_NAME") .NES. "VAX")) THEN ext := .AXE $ IF (use_vmsdebug_perl) $ THEN $ WRITE CONFIG "define verb dbgperl" diff --git a/installhtml b/installhtml index c268f54..cfbbe9f 100755 --- a/installhtml +++ b/installhtml @@ -159,6 +159,10 @@ $pod2html = "pod/pod2html"; usage("") unless @ARGV; +# Overcome shell's p1,..,p8 limitation. +# See vms/descrip_mms.template -> descrip.mms for invokation. +if ( $^O eq 'VMS' ) { @ARGV = split(/\s+/,$ARGV[0]); } + # parse the command-line $result = GetOptions( qw( help diff --git a/lib/lib.pm b/lib/lib.pm index e46c5fe..98e2f73 100644 --- a/lib/lib.pm +++ b/lib/lib.pm @@ -3,9 +3,10 @@ package lib; use 5.005_64; use Config; -my $archname = $Config{'archname'}; -my $ver = $Config{'version'}; -my @inc_version_list = reverse split / /, $Config{'inc_version_list'}; +my $archname = defined($Config{'archname'}) ? $Config{'archname'} : ''; +my $ver = defined($Config{'version'}) ? $Config{'version'} : ''; +my @inc_version_list = defined($Config{'inc_version_list'}) ? + reverse split / /, $Config{'inc_version_list'} : (); our @ORIG_INC = @INC; # take a handy copy of 'original' value our $VERSION = '0.5564'; diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index c96c145..77772c9 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -799,10 +799,10 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM) @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] Copy/Log $(MMS$SOURCE) $(MMS$TARGET) -install.html : []perl_setup.com installhtml. install $(perlpods) - @ @perl_setup - @ If F$Search("[.lib]html.dir").eqs."" Then Create/Directory [.lib.html] - $(MINIPERL) installhtml. "--podroot=/perl_root --recurse --htmldir=lib/html --htmlroot=lib/html --splithead=pod/perlipc --splititem=pod/perlfunc --libpods=perlfunc:perlguts:perlvar:perlrun:perlop --verbose" +install.html : $(perlpods) + @ @perl_setup.com + @ If F$Search("perl_root:[lib]html.dir").eqs."" Then Create/Directory perl_root:[lib.html] + $(MINIPERL) installhtml. "--podroot=. --recurse --htmldir=/perl_root/lib/html --htmlroot=.. --verbose" printconfig : @ @[.vms]make_command $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) @@ -882,6 +882,7 @@ test : all [.t.lib]vmsfspec.t [.t.lib]vmsish.t # install ought not need a source, but it doesn't work if one's not # there. Go figure... install : $(MINIPERL_EXE) + @ @perl_setup.com If F$TrnLnm("Sys") .nes. "" Then Deass SYS $(MINIPERL) installperl diff --git a/vms/subconfigure.com b/vms/subconfigure.com index 6dbe4d0..9b01a69 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -84,6 +84,8 @@ $ perl_d_llseek="undef" $ perl_d_iconv="undef" $ perl_d_madvise="undef" $ perl_selectminbits=32 +$ perl_d_vendorarch="define" +$ perl_vendorarchexp="" $ perl_d_msync="undef" $ perl_d_vendorarch="define" $ perl_vendorarchexp="" @@ -1036,6 +1038,53 @@ $ ENDIF $ ENDIF $ WRITE_RESULT "i_inttypes is ''perl_i_inttypes'" $! +$! Check for h_errno +$! +$ OS +$ WS "#ifdef __DECC +$ WS "#include +$ WS "#endif +$ WS "#include +$ WS "#include +$ WS "#include +$ WS "int main() +$ WS "{" +$ WS "h_errno = 3; +$ 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_herrno="undef" +$ DEASSIGN SYS$OUTPUT +$ DEASSIGN SYS$ERROR +$ ELSE +$ If (Needs_Opt) +$ 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_herrno="undef" +$ ELSE +$ perl_d_herrno="define" +$ ENDIF +$ ENDIF +$ WRITE_RESULT "d_herrno is ''perl_d_herrno'" +$! $! Check to see if int64_t exists $! $ OS @@ -4108,6 +4157,7 @@ $ WC "sPRIx64='" + perl_sPRIx64 + "'" $ WC "d_llseek='" + perl_d_llseek + "'" $ WC "d_iconv='" + perl_d_iconv +"'" $ WC "i_iconv='" + perl_i_iconv +"'" +$ WC "inc_version_list='0'" $ WC "inc_version_list_init='0'" $ WC "uselargefiles='" + perl_uselargefiles + "'" $ WC "uselongdouble='" + perl_uselongdouble + "'" @@ -4248,6 +4298,10 @@ $ if be_case_sensitive $ then $ write config "#define VMS_WE_ARE_CASE_SENSITIVE" $ endif +$ if perl_d_herrno .eqs. "undef" +$ THEN +$ write config "#define NEED_AN_H_ERRNO" +$ ENDIF $ WRITE CONFIG "#define HAS_ENVGETENV" $ WRITE CONFIG "#define PERL_EXTERNAL_GLOB" $ CLOSE CONFIG diff --git a/vms/vms.c b/vms/vms.c index e465bfc..e063e7f 100644 --- a/vms/vms.c +++ b/vms/vms.c @@ -68,6 +68,9 @@ # define prv$v_sysprv prv$r_prvdef_bits0.prv$v_sysprv #endif +#if defined(NEED_AN_H_ERRNO) +dEXT int h_errno; +#endif struct itmlst_3 { unsigned short int buflen;