Dan Sugalski wrote:

> The following patch is needed to get 5.5.640 building on VMS. There are still
> a bunch of test failures, but this is better than nothing...

Hmm.. It looks like it was generated on VMS:

> --- vms/subconfigure.com;1    Thu Feb  3 14:50:38 2000
> +++ vms/subconfigure.com      Thu Feb  3 14:50:38 2000
> @@ -63,6 +63,7 @@
>   $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
>   $!
>   $! ##ADD NEW CONSTANTS HERE##
> +$ perl_d_nv_preserves_uv = "define"
>   $ perl_d_fs_data_s = "undef"

Unfortunately it does not look like a recursive patch and the extra
space in front of the context lines (those with neither a leading '+' nor
a '-') seems to give GNU patch on OSF/1 indegestion (fixup enclosed).

I was able to build with:

 $ cc/version nl:
 DEC C V5.5-002 on OpenVMS Alpha V7.1

but `mms test` just comes to this spot and stays there:

 [.io]iprefix............ok
 [.io]nargv..............ok
 [.io]open...............FAILED on test 53
 [.io]openpid............FAILED on test 5

It does not appear to be using CPU according to `monitor process/topcpu`,
unfortunately I have to leave the office at this time and I'll have to
Ctl-Y it.

Here's the patch redone as a unified recursive diff:

diff -ru perl5.5.640.orig/configure.com perl5.5.640/configure.com
--- perl5.5.640.orig/configure.com      Sun Jan  9 11:44:56 2000
+++ perl5.5.640/configure.com   Thu Feb  3 17:53:03 2000
@@ -1876,11 +1876,13 @@
 $ echo "It's time to specify which modules you want to build into
 $ echo "perl. Most of these are standard and should be chosen, though
 $ 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 "SDBM_File if you have the GDBM library built on your machine.
+$ echo "Whatever you do, make sure the re module is first or things will
+$ echo "break badly"
 $ echo "
 $ echo "Which modules do you want to build into perl?"
 $! dflt = "Fcntl Errno File::Glob IO Opcode Byteloader Devel::Peek Devel::DProf 
Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File"
-$ dflt = "Fcntl Errno File::Glob IO Opcode Devel::Peek Devel::DProf Data::Dumper 
attrs re VMS::Stdio VMS::DCLsym B SDBM_File"
+$ dflt = "re Fcntl Errno File::Glob IO Opcode Devel::Peek Devel::DProf Data::Dumper 
+attrs VMS::Stdio VMS::DCLsym B SDBM_File"
 $ if Using_Dec_C.eqs."Yes"
 $ THEN
 $   dflt = dflt + " POSIX"
diff -ru perl5.5.640.orig/vms/descrip_mms.template perl5.5.640/vms/descrip_mms.template
--- perl5.5.640.orig/vms/descrip_mms.template   Tue Feb  1 21:41:47 2000
+++ perl5.5.640/vms/descrip_mms.template        Thu Feb  3 17:53:09 2000
@@ -230,7 +230,7 @@
 # are built using these macros should depend on $(MINIPERL_EXE)
 MINIPERL_EXE = Sys$Disk:[]miniperl$(E)
 MINIPERL = MCR $(MINIPERL_EXE) "-I[.lib]"
-XSUBPP = $(MINIPERL) [.lib.extutils]xsubpp -noprototypes
+XSUBPP = $(MINIPERL) "-I[.ext.re]" [.lib.extutils]xsubpp -noprototypes
 # Macro to invoke a preexisting copy of Perl.  This is used to regenerate
 # some header files when rebuilding Perl, but premade versions are provided
 # in the distribution, so it's OK if this doesn't work; it's here to make
@@ -806,6 +806,7 @@
 # install ought not need a source, but it doesn't work if one's not
 # there. Go figure...
 install : $(MINIPERL_EXE)
+       If F$TrnLnm("Sys") .nes. "" Then Deass SYS
        $(MINIPERL) installperl
 
 archify : all
diff -ru perl5.5.640.orig/vms/subconfigure.com perl5.5.640/vms/subconfigure.com
--- perl5.5.640.orig/vms/subconfigure.com       Fri Jan  7 09:55:59 2000
+++ perl5.5.640/vms/subconfigure.com    Thu Feb  3 17:52:55 2000
@@ -63,6 +63,7 @@
 $ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
 $!
 $! ##ADD NEW CONSTANTS HERE##
+$ perl_d_nv_preserves_uv = "define"
 $ perl_d_fs_data_s = "undef"
 $ perl_d_getmnt = "undef"
 $ perl_d_sqrtl = "define"
@@ -488,10 +489,13 @@
 $ perl_archname = "''perl_archname'-thread"
 $ perl_d_old_pthread_create_joinable = "undef"
 $ perl_old_pthread_create_joinable = " "
+$ perl_use5005threads = "define"
 $ ELSE
 $ perl_d_old_pthread_create_joinable = "undef"
 $ perl_old_pthread_create_joinable = " "
+$ perl_use5005threads = "undef"
 $ ENDIF
+$ perl_useithreads = "undef"
 $ perl_osvers=f$edit(osvers, "TRIM")
 $ if (perl_subversion + 0).eq.0
 $ THEN
@@ -1588,6 +1592,144 @@
 $   ENDIF
 $ WRITE_RESULT "d_strtoull is ''perl_d_strtoull'"
 $!
+$! Check for strtouq
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <string.h>
+$ WS "int main()
+$ WS "{"
+$ WS "unsigned __int64 result;
+$ WS "result = strtouq(""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_strtouq="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_strtouq="undef"
+$     ELSE
+$       perl_d_strtouq="define"
+$     ENDIF
+$   ENDIF
+$ WRITE_RESULT "d_strtouq is ''perl_d_strtouq'"
+$!
+$! Check for strtoll
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <string.h>
+$ WS "int main()
+$ WS "{"
+$ WS "__int64 result;
+$ WS "result = strtoll(""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_strtoll="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_strtoll="undef"
+$     ELSE
+$       perl_d_strtoll="define"
+$     ENDIF
+$   ENDIF
+$ WRITE_RESULT "d_strtoll is ''perl_d_strtoll'"
+$!
+$! Check for strtold
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <string.h>
+$ WS "int main()
+$ WS "{"
+$ WS "long double result;
+$ WS "result = strtold(""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_strtold="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_strtold="undef"
+$     ELSE
+$       perl_d_strtold="define"
+$     ENDIF
+$   ENDIF
+$ WRITE_RESULT "d_strtold is ''perl_d_strtold'"
+$!
 $! Check for atoll
 $!
 $ OS
@@ -2941,8 +3083,8 @@
 $ perl_u16type="unsigned short"
 $ perl_i32type="int"
 $ perl_u32type="unsigned int"
-$ perl_i64type="long"
-$ perl_u64type="unsigned long"
+$ perl_i64type="long long"
+$ perl_u64type="unsigned long long"
 $ perl_nvtype="double"
 $!
 $ GOTO beyond_type_size_check
@@ -3117,6 +3259,9 @@
 $ WC ""
 $ WC "CONFIGDOTSH=true"
 $ WC "package='" + perl_package + "'"
+$ WC "d_nv_preserves_uv='" + perl_d_nv_preserves_uv + "'"
+$ WC "use5005threads='" + perl_use5005threads + "'"
+$ WC "useithreads='" + perl_useithreads + "'"
 $ WC "CONFIG='" + perl_config + "'"
 $ WC "cf_time='" + perl_cf_time + "'"
 $ WC "cf_by='" + perl_cf_by+ "'"
@@ -3574,6 +3719,9 @@
 $ WC "multiarch='" + perl_multiarch + "'"
 $ WC "sched_yield='" + perl_sched_yield + "'"
 $ WC "d_strtoull='" + perl_d_strtoull + "'"
+$ WC "d_strtouq='" + perl_d_strtouq + "'"
+$ WC "d_strtoll='" + perl_d_strtoll + "'"
+$ WC "d_strtold='" + perl_d_strtold + "'"
 $ WC "usesocks='" + perl_usesocks + "'"
 $ WC "d_vendorlib='" + perl_d_vendorlib + "'"
 $ WC "vendorlibexp='" + perl_vendorlibexp + "'"
End of re-done Patch.

Peter Prymmer

Reply via email to