Change 33496 by [EMAIL PROTECTED] on 2008/03/12 17:43:34 Integrate: [ 33259] Subject: RE: Perl @ 33218 (Stratus VOS patches) From: "Green, Paul" <[EMAIL PROTECTED]> Date: Fri, 8 Feb 2008 12:36:03 -0500 Message-ID: <[EMAIL PROTECTED]> Includes a fix to the patch to ext/Time/HiRes/Makefile.PL
Affected files ... ... //depot/maint-5.10/perl/README.vos#2 integrate ... //depot/maint-5.10/perl/ext/Time/HiRes/Makefile.PL#2 integrate ... //depot/maint-5.10/perl/hints/vos.sh#2 integrate ... //depot/maint-5.10/perl/lib/ExtUtils/t/MM_Unix.t#2 integrate ... //depot/maint-5.10/perl/lib/ExtUtils/t/eu_command.t#2 integrate ... //depot/maint-5.10/perl/makedepend.SH#2 integrate ... //depot/maint-5.10/perl/pp_pack.c#3 integrate ... //depot/maint-5.10/perl/t/TEST#2 integrate ... //depot/maint-5.10/perl/vos/Changes#2 integrate ... //depot/maint-5.10/perl/vos/vos.c#2 integrate ... //depot/maint-5.10/perl/vos/vosish.h#2 integrate Differences ... ==== //depot/maint-5.10/perl/README.vos#2 (text) ==== Index: perl/README.vos --- perl/README.vos#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/README.vos 2008-03-12 10:43:34.000000000 -0700 @@ -24,14 +24,17 @@ If you are running VOS Release 14.4.1 or later, you can obtain a pre-compiled, supported copy of perl by purchasing Release 2.0.1 -(or later) of the VOS GNU C++ and GNU Tools product from Stratus -Technologies. +(or later) of the VOS GNU C/C++ and GNU Tools product from +Stratus Technologies. =head1 BUILDING PERL FOR VOS -To build perl from its source code, you must have a Continuum -platform running VOS Release 14.5.0 or later, the STCP product, -and the GNU C++ and GNU Tools, Release 2.0.1 or later. +To build perl from its source code on the Stratus Continuum +platform, you must be have VOS Release 14.5.0 or later, the STCP +product, and the GNU C/C++ and GNU Tools, Release 2.0.1 or +later. On the V Series platform you must have VOS Release +15.0.0 or later, and any version of the GNU C/C++ and GNU Tools +product. To build full perl using the supplied Configure script and makefiles, change to the "vos" subdirectory and type the command @@ -45,7 +48,8 @@ =item 1 If you have built perl using the Configure script, ensure that -you have modify permission to C<< >system>ported >> and type +you have modify and default write permission to C<< +>system>ported >> and all subdirectories. Then type gmake install @@ -57,6 +61,7 @@ >system>ported>lib>perl5>5.9.0>7100 >system>ported>lib>perl5>5.9.0>8000 + >system>ported>lib>perl5>5.9.0>i786 =item 3 @@ -70,6 +75,7 @@ >system>ported>lib>perl5>site_perl>5.9.0>7100 >system>ported>lib>perl5>site_perl>5.9.0>8000 + >system>ported>lib>perl5>site_perl>5.9.0>i786 =item 4 @@ -109,13 +115,13 @@ will probably result in SIGFPE. Don't push your luck. As of VOS Release 14.7.0, the VOS POSIX runtime sets up the -PA-RISC hardware floating-point status register so that the -overflow and underflow exceptions do not trap, but instead -automatically convert the result to infinity or zero, as +PA-RISC and IA-32 hardware floating-point status register so +that the overflow and underflow exceptions do not trap, but +instead automatically convert the result to infinity or zero, as appropriate. As of this writing, there are still floating-point operations that can trap, for example, subtracting two infinite -values. This is recorded as suggestion posix-1022, which is not -yet fixed. +values. This is recorded as suggestion posix-1022, which has +been fixed in VOS Release 15.2 and higher. =head1 TEST STATUS @@ -142,7 +148,7 @@ seller. If you want a supported version of perl for VOS, purchase the -VOS GNU C++ and GNU Tools Release 2.0.1 (or later) product from +VOS GNU C/C++ and GNU Tools Release 2.0.1 (or later) product from Stratus Technologies, along with a support contract (or from anyone else who will sell you support). @@ -152,6 +158,6 @@ =head1 LAST UPDATE -January 15, 2004 +February 7, 2008 =cut ==== //depot/maint-5.10/perl/ext/Time/HiRes/Makefile.PL#2 (text) ==== Index: perl/ext/Time/HiRes/Makefile.PL --- perl/ext/Time/HiRes/Makefile.PL#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/ext/Time/HiRes/Makefile.PL 2008-03-12 10:43:34.000000000 -0700 @@ -19,8 +19,11 @@ use vars qw($self); # Used in 'sourcing' the hints. +# TBD: Can we just use $Config(exe_ext) here instead of this complex +# expression? my $ld_exeext = ($^O eq 'cygwin' || - $^O eq 'os2' && $Config{ldflags} =~ /-Zexe\b/) ? '.exe' : ''; + $^O eq 'os2' && $Config{ldflags} =~ /-Zexe\b/) ? '.exe' : + (($^O eq 'vos') ? $Config{exe_ext} : ''); unless($ENV{PERL_CORE}) { $ENV{PERL_CORE} = 1 if grep { $_ eq 'PERL_CORE=1' } @ARGV; ==== //depot/maint-5.10/perl/hints/vos.sh#2 (text) ==== Index: perl/hints/vos.sh --- perl/hints/vos.sh#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/hints/vos.sh 2008-03-12 10:43:34.000000000 -0700 @@ -3,14 +3,14 @@ # This is a hints file for Stratus VOS, using the POSIX environment # in VOS 14.4.0 and higher. # -# VOS POSIX is based on POSIX.1-1996. It ships with gcc as the standard -# compiler. +# VOS POSIX is based on POSIX.1-1996 and contains elements of +# POSIX.1-2001. It ships with gcc as the standard compiler. # # Paul Green ([EMAIL PROTECTED]) # C compiler and default options. cc=gcc -ccflags="-D_SVID_SOURCE -D_POSIX_C_SOURCE=199509L" +ccflags="-D_SVID_SOURCE -D_POSIX_C_SOURCE=200112L" # Make command. make="/system/gnu_library/bin/gmake" @@ -18,7 +18,11 @@ _make="/system/gnu_library/bin/gmake" # Architecture name -archname="hppa1.1" +if test `uname -m` = i786; then + archname="i786" +else + archname="hppa1.1" +fi # Executable suffix. # No, this is not a typo. The ".pm" really is the native @@ -37,7 +41,13 @@ glibpth="$loclibpth" # Include library paths -locincpth="/system/stcp/include_library" +# Pick up vos/syslog.h on Continuum Platform. +if test "$archname" = "i786"; then + locincpth="" +else + locincpth=`pwd`/vos +fi +locincpth="$locincpth /system/stcp/include_library" locincpth="$locincpth /system/include_library/sysv" usrinc="/system/include_library" ==== //depot/maint-5.10/perl/lib/ExtUtils/t/MM_Unix.t#2 (text) ==== Index: perl/lib/ExtUtils/t/MM_Unix.t --- perl/lib/ExtUtils/t/MM_Unix.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/lib/ExtUtils/t/MM_Unix.t 2008-03-12 10:43:34.000000000 -0700 @@ -171,7 +171,11 @@ # maybe_command open(FILE, ">command"); print FILE "foo"; close FILE; +SKIP: { +skip ("no separate execute mode", 1) if ($^O eq "vos"); ok (!$t->maybe_command('command') ,"non executable file isn't a command"); +} + chmod 0755, "command"; ok ($t->maybe_command('command'), "executable file is a command"); unlink "command"; ==== //depot/maint-5.10/perl/lib/ExtUtils/t/eu_command.t#2 (text) ==== Index: perl/lib/ExtUtils/t/eu_command.t --- perl/lib/ExtUtils/t/eu_command.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/lib/ExtUtils/t/eu_command.t 2008-03-12 10:43:34.000000000 -0700 @@ -146,7 +146,7 @@ SKIP: { if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin' || - $^O eq 'MacOS' + $^O eq 'MacOS' || $^O eq 'vos' ) { skip( "different file permission semantics on $^O", 5); } ==== //depot/maint-5.10/perl/makedepend.SH#2 (xtext) ==== Index: perl/makedepend.SH --- perl/makedepend.SH#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/makedepend.SH 2008-03-12 10:43:34.000000000 -0700 @@ -210,6 +210,10 @@ $echo "Updating $mf..." $echo "# If this runs make out of memory, delete /usr/include lines." \ >> $mf.new + if [ "$osname" = vos ]; then + $sed 's|.incl.c|.h|' .deptmp >.deptmp.vos + mv -f .deptmp.vos .deptmp + fi $sed 's|^\(.*\$(OBJ_EXT):\) *\(.*/.*\.c\) *$|\1 \2; '"$defrule \2|" .deptmp \ >>$mf.new else ==== //depot/maint-5.10/perl/pp_pack.c#3 (text) ==== Index: perl/pp_pack.c --- perl/pp_pack.c#2~33139~ 2008-01-30 15:19:42.000000000 -0800 +++ perl/pp_pack.c 2008-03-12 10:43:34.000000000 -0700 @@ -3064,11 +3064,14 @@ any OS that needs it, or removed if and when VOS implements posix-976 (suggestion to support mapping to infinity). [EMAIL PROTECTED] 02-04-02. */ +{ +extern const float _float_constants[]; if (anv > FLT_MAX) afloat = _float_constants[0]; /* single prec. inf. */ else if (anv < -FLT_MAX) afloat = _float_constants[0]; /* single prec. inf. */ else afloat = (float) anv; +} #else /* __VOS__ */ # if defined(VMS) && !defined(__IEEE_FP) /* IEEE fp overflow shenanigans are unavailable on VAX and optional @@ -3100,11 +3103,14 @@ for any OS that needs it, or removed if and when VOS implements posix-976 (suggestion to support mapping to infinity). [EMAIL PROTECTED] 02-04-02. */ +{ +extern const double _double_constants[]; if (anv > DBL_MAX) adouble = _double_constants[0]; /* double prec. inf. */ else if (anv < -DBL_MAX) adouble = _double_constants[0]; /* double prec. inf. */ else adouble = (double) anv; +} #else /* __VOS__ */ # if defined(VMS) && !defined(__IEEE_FP) /* IEEE fp overflow shenanigans are unavailable on VAX and optional ==== //depot/maint-5.10/perl/t/TEST#2 (xtext) ==== Index: perl/t/TEST --- perl/t/TEST#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/t/TEST 2008-03-12 10:43:34.000000000 -0700 @@ -383,7 +383,7 @@ # SKIP is essentially the same as TODO for t/TEST # this still conforms to TAP: - # http://search.cpan.org/dist/Test-Harness/lib/Test/Harness/TAP.pod + # http://search.cpan.org/dist/TAP/TAP.pod $extra and $istodo = $extra =~ /#\s*(?:TODO|SKIP)\b/; $istodo = 1 if $todo{$num}; ==== //depot/maint-5.10/perl/vos/Changes#2 (text) ==== Index: perl/vos/Changes --- perl/vos/Changes#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/vos/Changes 2008-03-12 10:43:34.000000000 -0700 @@ -1,6 +1,12 @@ This file documents the changes made to port Perl to the Stratus VOS operating system. +For 5.8.9: + Updated vos hints file (vos.sh) to use the POSIX-2001 + standard and to recognize the V Series architecture of + i786. Cleaned-up a few issues so that more tests pass. + This version builds on VOS Release 15.3.0. + For 5.10.0: Added support for the syslog family of functions to vos.c. This allows the source code to be built on versions of VOS ==== //depot/maint-5.10/perl/vos/vos.c#2 (text) ==== Index: perl/vos/vos.c --- perl/vos/vos.c#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/vos/vos.c 2008-03-12 10:43:34.000000000 -0700 @@ -6,6 +6,8 @@ have pow(0,0) return 1, avoiding c-1471. */ /* Modified 06-09-25 by Paul Green ([EMAIL PROTECTED]) to add syslog entries. */ +/* Modified 08-02-04 by Paul Green ([EMAIL PROTECTED]) to + open the syslog file in the working dir. */ /* End of modification history */ #include <errno.h> @@ -87,7 +89,7 @@ char vos_syslog_ident[IDENT_LEN] = ""; int vos_syslog_ident_len = 0; int vos_syslog_mask = ALL_PRIORITIES; -char vos_syslog_path[PATH_LEN] = "/Stratus/Green/build_farm/build_farm.syslog"; +char vos_syslog_path[PATH_LEN] = "syslog"; char vos_syslog_facility_name [17][10] = { "[KERN] ", /* LOG_KERN */ ==== //depot/maint-5.10/perl/vos/vosish.h#2 (text) ==== Index: perl/vos/vosish.h --- perl/vos/vosish.h#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/vos/vosish.h 2008-03-12 10:43:34.000000000 -0700 @@ -4,6 +4,10 @@ #include "unixish.h" #endif +/* VOS does not support SA_SIGINFO, so undefine the macro. This + is a work-around for posix-1302. */ +#undef SA_SIGINFO + /* The following declaration is an avoidance for posix-950. */ extern int ioctl (int fd, int request, ...); End of Patch.