Change 33259 by [EMAIL PROTECTED] on 2008/02/08 19:11:19
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/perl/README.vos#20 edit
... //depot/perl/ext/Time/HiRes/Makefile.PL#47 edit
... //depot/perl/hints/vos.sh#17 edit
... //depot/perl/lib/ExtUtils/t/MM_Unix.t#27 edit
... //depot/perl/lib/ExtUtils/t/eu_command.t#6 edit
... //depot/perl/makedepend.SH#39 edit
... //depot/perl/pp_pack.c#142 edit
... //depot/perl/t/TEST#125 edit
... //depot/perl/vos/Changes#11 edit
... //depot/perl/vos/vos.c#5 edit
... //depot/perl/vos/vosish.h#11 edit
Differences ...
==== //depot/perl/README.vos#20 (text) ====
Index: perl/README.vos
--- perl/README.vos#19~22171~ 2004-01-17 14:00:48.000000000 -0800
+++ perl/README.vos 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/ext/Time/HiRes/Makefile.PL#47 (text) ====
Index: perl/ext/Time/HiRes/Makefile.PL
--- perl/ext/Time/HiRes/Makefile.PL#46~32554~ 2007-11-29 09:53:43.000000000
-0800
+++ perl/ext/Time/HiRes/Makefile.PL 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/hints/vos.sh#17 (text) ====
Index: perl/hints/vos.sh
--- perl/hints/vos.sh#16~29777~ 2007-01-12 07:15:13.000000000 -0800
+++ perl/hints/vos.sh 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/lib/ExtUtils/t/MM_Unix.t#27 (text) ====
Index: perl/lib/ExtUtils/t/MM_Unix.t
--- perl/lib/ExtUtils/t/MM_Unix.t#26~33250~ 2008-02-08 05:07:25.000000000
-0800
+++ perl/lib/ExtUtils/t/MM_Unix.t 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/lib/ExtUtils/t/eu_command.t#6 (text) ====
Index: perl/lib/ExtUtils/t/eu_command.t
--- perl/lib/ExtUtils/t/eu_command.t#5~29578~ 2006-12-18 03:47:56.000000000
-0800
+++ perl/lib/ExtUtils/t/eu_command.t 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/makedepend.SH#39 (xtext) ====
Index: perl/makedepend.SH
--- perl/makedepend.SH#38~31974~ 2007-09-26 01:57:41.000000000 -0700
+++ perl/makedepend.SH 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/pp_pack.c#142 (text) ====
Index: perl/pp_pack.c
--- perl/pp_pack.c#141~33239~ 2008-02-05 17:00:43.000000000 -0800
+++ perl/pp_pack.c 2008-02-08 11:11:19.000000000 -0800
@@ -3065,11 +3065,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
@@ -3101,11 +3104,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/perl/t/TEST#125 (xtext) ====
Index: perl/t/TEST
--- perl/t/TEST#124~31896~ 2007-09-19 00:56:56.000000000 -0700
+++ perl/t/TEST 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/vos/Changes#11 (text) ====
Index: perl/vos/Changes
--- perl/vos/Changes#10~28933~ 2006-10-04 00:16:04.000000000 -0700
+++ perl/vos/Changes 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/vos/vos.c#5 (text) ====
Index: perl/vos/vos.c
--- perl/vos/vos.c#4~28933~ 2006-10-04 00:16:04.000000000 -0700
+++ perl/vos/vos.c 2008-02-08 11:11:19.000000000 -0800
@@ -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/perl/vos/vosish.h#11 (text) ====
Index: perl/vos/vosish.h
--- perl/vos/vosish.h#10~15582~ 2002-03-28 05:47:14.000000000 -0800
+++ perl/vos/vosish.h 2008-02-08 11:11:19.000000000 -0800
@@ -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.