summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.vos32
-rw-r--r--ext/Time/HiRes/Makefile.PL5
-rw-r--r--hints/vos.sh20
-rw-r--r--lib/ExtUtils/t/MM_Unix.t4
-rw-r--r--lib/ExtUtils/t/eu_command.t2
-rwxr-xr-xmakedepend.SH4
-rw-r--r--pp_pack.c6
-rwxr-xr-xt/TEST2
-rw-r--r--vos/Changes6
-rw-r--r--vos/vos.c4
-rw-r--r--vos/vosish.h4
11 files changed, 67 insertions, 22 deletions
diff --git a/README.vos b/README.vos
index 56a34197ad..9066297c7b 100644
--- a/README.vos
+++ b/README.vos
@@ -24,14 +24,17 @@ ftp://ftp.stratus.com/pub/vos/utility/utility.html.
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 @@ will configure, build, and test perl.
=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 @@ directories can be used to hold such files:
>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 @@ following directories:
>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 @@ other floating-point computations that underflow or overflow
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 @@ excellent books available on the Perl language; consult a book
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 @@ Paul Green (Paul.Green@stratus.com)
=head1 LAST UPDATE
-January 15, 2004
+February 7, 2008
=cut
diff --git a/ext/Time/HiRes/Makefile.PL b/ext/Time/HiRes/Makefile.PL
index 2c381e2ef8..a332e4b55d 100644
--- a/ext/Time/HiRes/Makefile.PL
+++ b/ext/Time/HiRes/Makefile.PL
@@ -19,8 +19,11 @@ my $SYSCALL_H;
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;
diff --git a/hints/vos.sh b/hints/vos.sh
index d32f7e6f5a..3401c83e39 100644
--- a/hints/vos.sh
+++ b/hints/vos.sh
@@ -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 (Paul.Green@stratus.com)
# 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"
_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 @@ loclibpth="$loclibpth /system/object_library"
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"
diff --git a/lib/ExtUtils/t/MM_Unix.t b/lib/ExtUtils/t/MM_Unix.t
index 75af156542..1f2762ec83 100644
--- a/lib/ExtUtils/t/MM_Unix.t
+++ b/lib/ExtUtils/t/MM_Unix.t
@@ -171,7 +171,11 @@ is ($t->libscan('Fatty'), 'Fatty', 'libscan on something not a VC file' );
# 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";
diff --git a/lib/ExtUtils/t/eu_command.t b/lib/ExtUtils/t/eu_command.t
index 2d2fdbae22..30fb38e933 100644
--- a/lib/ExtUtils/t/eu_command.t
+++ b/lib/ExtUtils/t/eu_command.t
@@ -146,7 +146,7 @@ BEGIN {
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);
}
diff --git a/makedepend.SH b/makedepend.SH
index 87a86c5842..229a73d83e 100755
--- a/makedepend.SH
+++ b/makedepend.SH
@@ -210,6 +210,10 @@ if $test -s .deptmp; then
$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
diff --git a/pp_pack.c b/pp_pack.c
index 98d4869f9c..dfcd3e9c0e 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -3065,11 +3065,14 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
any OS that needs it, or removed if and when VOS implements
posix-976 (suggestion to support mapping to infinity).
Paul.Green@stratus.com 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 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
for any OS that needs it, or removed if and when VOS
implements posix-976 (suggestion to support mapping to
infinity). Paul.Green@stratus.com 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
diff --git a/t/TEST b/t/TEST
index e702ffbecc..1fdcb12632 100755
--- a/t/TEST
+++ b/t/TEST
@@ -383,7 +383,7 @@ EOT
# 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};
diff --git a/vos/Changes b/vos/Changes
index 2d49a3c885..b5bf0ee47b 100644
--- a/vos/Changes
+++ b/vos/Changes
@@ -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
diff --git a/vos/vos.c b/vos/vos.c
index ee3993d2dd..612b693453 100644
--- a/vos/vos.c
+++ b/vos/vos.c
@@ -6,6 +6,8 @@
have pow(0,0) return 1, avoiding c-1471. */
/* Modified 06-09-25 by Paul Green (Paul.Green@stratus.com) to
add syslog entries. */
+/* Modified 08-02-04 by Paul Green (Paul.Green@stratus.com) to
+ open the syslog file in the working dir. */
/* End of modification history */
#include <errno.h>
@@ -87,7 +89,7 @@ int vos_syslog_logopt = 0;
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 */
diff --git a/vos/vosish.h b/vos/vosish.h
index dfddd31fd7..c9e37654e0 100644
--- a/vos/vosish.h
+++ b/vos/vosish.h
@@ -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, ...);