VMS build patch (from Peter Prymmer)
Gurusamy Sarathy [Tue, 7 Mar 2000 23:37:48 +0000 (23:37 +0000)]
p4raw-id: //depot/perl@5605

configure.com
installhtml
lib/lib.pm
vms/descrip_mms.template
vms/subconfigure.com
vms/vms.c

index aefd4ae..8b35193 100644 (file)
@@ -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"
index c268f54..cfbbe9f 100755 (executable)
@@ -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
index e46c5fe..98e2f73 100644 (file)
@@ -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';
index c96c145..77772c9 100644 (file)
@@ -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
 
index 6dbe4d0..9b01a69 100644 (file)
@@ -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 <stdlib.h>
+$ WS "#endif
+$ WS "#include <stdio.h>
+$ WS "#include <unistd.h>
+$ WS "#include <netdb.h>
+$ 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
index e465bfc..e063e7f 100644 (file)
--- 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;