summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2003-12-20 23:40:37 +0000
committerNicholas Clark <nick@ccl4.org>2003-12-20 23:40:37 +0000
commit8b752e95c15fb1fb89b865d6e0a284e957a7c3a4 (patch)
treeab36dae30869b71da41547a002dac7a56c376fc9
parent5f658b8dfefe2ec1cb6dad078e36f55a2a3b8bbc (diff)
downloadperl-8b752e95c15fb1fb89b865d6e0a284e957a7c3a4.tar.gz
Integrate:
[ 21933] Subject: [PATCH] OpenVMS I64 support From: "Craig A. Berry" <craigberry@mac.com> Message-ID: <3FE2441F.2070603@mac.com> Date: Thu, 18 Dec 2003 18:19:43 -0600 [ 21938] Subject: Perl 5.8.3 patches from the BS2000 port From: Dorner Thomas <tdorner@amadeus.net> Date: Wed, 17 Dec 2003 15:41:17 +0100 Message-ID: <6727B1DACFCDD311A757009027CA8D69044B673A@Ex02.inhouse.start.de> p4raw-link: @21938 on //depot/perl: 1a6a79b784525259ef3f326dcae7b68a3aaebb75 p4raw-link: @21933 on //depot/perl: a50752f9a67249b5bcecc4771bbaacc13beb2cf9 p4raw-id: //depot/maint-5.8/perl@21939 p4raw-integrated: from //depot/perl@21934 'copy in' vms/gen_shrfls.pl (@12980..) hints/posix-bc.sh (@20195..) t/base/num.t (@20931..) t/comp/parser.t (@21452..) 'merge in' configure.com (@20439..)
-rw-r--r--configure.com71
-rw-r--r--hints/posix-bc.sh2
-rw-r--r--t/base/num.t5
-rw-r--r--t/comp/parser.t2
-rw-r--r--vms/gen_shrfls.pl5
5 files changed, 62 insertions, 23 deletions
diff --git a/configure.com b/configure.com
index c5513dd5fe..e7337e9f8c 100644
--- a/configure.com
+++ b/configure.com
@@ -932,6 +932,7 @@ $!
$! EOD
$! echo " ","VMS_VAX"
$! echo " ","VMS_AXP"
+$! echo " ","VMS_IA64"
$! : Now look for a hint file osname_osvers, unless one has been
$! : specified already.
$! TYPE SYS$INPUT:
@@ -1105,17 +1106,24 @@ $! Please try to use either archname .EQS. "VMS_VAX" or archname .EQS.
$! "VMS_AXP" from here on to allow cross-platform configuration (e.g.
$! configure a VAX build on an Alpha).
$!
-$ IF (F$GETSYI("HW_MODEL") .LT. 1024)
+$ IF (F$GETSYI("HW_MODEL") .LT. 1024 .AND. F$GETSYI("HW_MODEL") .GT. 0)
$ THEN
$ archname = "VMS_VAX"
-$ otherarch = "an Alpha"
+$ otherarch = "an Alpha or IA64"
$ alignbytes="8"
$ arch_type = "ARCH-TYPE=__VAX__"
$ ELSE
-$ archname = "VMS_AXP"
-$ otherarch = "a VAX"
+$ IF (F$GETSYI("ARCH_TYPE") .EQ. 2)
+$ THEN
+$ archname = "VMS_AXP"
+$ otherarch = "a VAX or IA64"
+$ arch_type = "ARCH-TYPE=__AXP__"
+$ ELSE
+$ archname = "VMS_IA64"
+$ otherarch = "a VAX or Alpha"
+$ arch_type = "ARCH-TYPE=__IA64__"
+$ ENDIF
$ alignbytes="8"
-$ arch_type = "ARCH-TYPE=__AXP__"
$ ENDIF
$ dflt = archname
$ rp = "What is your architecture name? [''archname'] "
@@ -1142,6 +1150,10 @@ $ IF (archname.EQS."VMS_AXP")
$ THEN
$ macros = macros + """AXE=1"","
$ ENDIF
+$ IF (archname.EQS."VMS_IA64")
+$ THEN
+$ macros = macros + """IXE=1"","
+$ ENDIF
$ ENDIF
$!
$!: is AFS running? !sfn
@@ -1581,7 +1593,8 @@ $ echo "You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'"
$ vms_cc_available = vms_cc_available + "cc/decc "
$ ENDIF
$ ELSE
-$ IF (F$LOCATE("DEC",line).NE.F$LENGTH(line)).or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line))
+$ IF (F$LOCATE("DEC",line).NE.F$LENGTH(line)).or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line)) -
+ .or.(F$LOCATE("hp",line).NE.F$LENGTH(line))
$ THEN
$ vms_cc_dflt = "/decc"
$ vms_cc_available = vms_cc_available + "cc/decc "
@@ -1715,7 +1728,8 @@ $ IF ans.NES.""
$ THEN
$ ans = F$EDIT(ans,"TRIM, COMPRESS, LOWERCASE")
$ Mcc = ans
-$ IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans))
+$ IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans)) -
+ .or.(F$LOCATE("hp",ans).NE.F$LENGTH(ans))
$ THEN
$ Mcc = "cc/decc"
$! CPQ ?
@@ -2002,7 +2016,12 @@ $ THEN
$ read CONFIG line
$ archsufx = "VAX"
$ ELSE
-$ archsufx = "AXP"
+$ IF archname .EQS. "VMS_AXP"
+$ THEN
+$ archsufx = "AXP"
+$ ELSE
+$ archsufx = "IA64"
+$ ENDIF
$ ENDIF
$ CLOSE CONFIG
$ line = F$EDIT(line,"TRIM,COMPRESS")
@@ -2249,7 +2268,7 @@ $ usemultiplicity="undef"
$ ENDIF
$!
$! Ask if they want to build with 64-bit support
-$ IF (archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ IF (archname.NES."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
$ THEN
$ bool_dflt = "n"
$ IF F$TYPE(use64bitint) .NES. ""
@@ -2354,8 +2373,8 @@ $ use_5005_threads="N"
$ ELSE
$ use_5005_threads="Y"
$ ENDIF
-$ ! Are they on VMS 7.1 on an alpha?
-$ if (archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ ! Are they on VMS 7.1 on an alpha or itanium?
+$ if (archname.nes."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
$ THEN
$ echo ""
$ echo "Threaded perl can be linked to use multiple kernel threads"
@@ -2376,7 +2395,7 @@ $ ENDIF
$ ENDIF
$ ENDIF
$ ENDIF
-$ IF archname .EQS. "VMS_AXP"
+$ IF archname .NES. "VMS_VAX"
$ THEN
$! Case sensitive?
$ echo ""
@@ -2940,11 +2959,20 @@ $ dlext="axe"
$ exe_ext=".axe"
$ lib_ext=".alb"
$ ELSE
-$ obj_ext=".obj"
-$ so="exe"
-$ dlext="exe"
-$ exe_ext=".exe"
-$ lib_ext=".olb"
+$ IF (sharedperl .AND. archname .EQS. "VMS_IA64")
+$ THEN
+$ obj_ext=".ibj"
+$ so="ixe"
+$ dlext="ixe"
+$ exe_ext=".ixe"
+$ lib_ext=".ilb"
+$ ELSE
+$ obj_ext=".obj"
+$ so="exe"
+$ dlext="exe"
+$ exe_ext=".exe"
+$ lib_ext=".olb"
+$ ENDIF
$ ENDIF
$ dlobj="dl_vms''obj_ext'"
$!
@@ -5081,7 +5109,13 @@ $ WS " iss = ((iss&1)==1 && code == 0x1234);"
$ WS " printf(""%d\n"",iss);"
$ WS "}"
$ CS
-$ GOSUB compile
+$ IF (archname .EQS. "VMS_AXP")
+$ THEN
+$ GOSUB compile
+$ ELSE
+$ ! Causes SS$_BADSTACK on OpenVMS I64 v8.1 (but hey, it was undocumented)
+$ tmp = "0"
+$ ENDIF
$ IF tmp .EQS. "1"
$ THEN
$ echo4 "Yep, we can."
@@ -6367,6 +6401,7 @@ $ echo4 "The perl.cld file is now being written..."
$ OPEN/WRITE CONFIG 'file_2_find'
$ ext = ".exe"
$ IF (sharedperl .AND. archname .EQS. "VMS_AXP") THEN ext := .AXE
+$ IF (sharedperl .AND. archname .EQS. "VMS_IA64") THEN ext := .IXE
$ IF (use_vmsdebug_perl)
$ THEN
$ WRITE CONFIG "define verb dbgperl"
diff --git a/hints/posix-bc.sh b/hints/posix-bc.sh
index 006323fd25..00c1cc9ac5 100644
--- a/hints/posix-bc.sh
+++ b/hints/posix-bc.sh
@@ -23,7 +23,7 @@ esac
# -DUSE_PURE_BISON
# -D_XOPEN_SOURCE_EXTENDED alters system headers.
# Prepend your favorites with Configure -Dccflags=your_favorites
-ccflags="$ccflags -Kc_names_unlimited,enum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE_EXTENDED"
+ccflags="$ccflags -Kc_names_unlimited,enum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -DYYMAXDEPTH=65000 -DYYINITDEPTH=1000 -D_XOPEN_SOURCE_EXTENDED"
# Now, what kind of BS2000 system are we running on?
echo
diff --git a/t/base/num.t b/t/base/num.t
index ccabe0734b..f91528169e 100644
--- a/t/base/num.t
+++ b/t/base/num.t
@@ -163,7 +163,10 @@ $a = 123.456; "$a";
print $a eq "123.456" ? "ok 44\n" : "not ok 44 # $a\n";
$a = 1e34; "$a";
-print $a eq "1e+34" || $a eq "1e+034" ? "ok 45\n" : "not ok 45 $a\n";
+unless ($^O eq 'posix-bc')
+{ print $a eq "1e+34" || $a eq "1e+034" ? "ok 45\n" : "not ok 45 $a\n"; }
+else
+{ print "ok 45 # skipped on $^O\n"; }
# see bug #15073
diff --git a/t/comp/parser.t b/t/comp/parser.t
index ca191c2de0..c68f7ab5aa 100644
--- a/t/comp/parser.t
+++ b/t/comp/parser.t
@@ -128,7 +128,7 @@ EOF
{
local $SIG{__WARN__} = sub { }; # silence mandatory warning
eval q{ my $x = -F 1; };
- like( $@, qr/syntax error .* near "F 1"/, "unknown filetest operators" );
+ like( $@, qr/(?:syntax|parse) error .* near "F 1"/, "unknown filetest operators" );
is(
eval q{ sub F { 42 } -F 1 },
'-42',
diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl
index 3cdd3ef84a..f8bf6b190b 100644
--- a/vms/gen_shrfls.pl
+++ b/vms/gen_shrfls.pl
@@ -39,7 +39,7 @@ require 5.000;
$debug = $ENV{'GEN_SHRFLS_DEBUG'};
-print "gen_shrfls.pl Rev. 18-May-2001\n" if $debug;
+print "gen_shrfls.pl Rev. 18-Dec-2003\n" if $debug;
if ($ARGV[0] eq '-f') {
open(INP,$ARGV[1]) or die "Can't read input file $ARGV[1]: $!\n";
@@ -56,7 +56,8 @@ if ($ARGV[0] eq '-f') {
$cc_cmd = shift @ARGV;
# Someday, we'll have $GetSyI built into perl . . .
-$isvax = `\$ Write Sys\$Output F\$GetSyI(\"HW_MODEL\")` <= 1024;
+$isvax = `\$ Write Sys\$Output \(F\$GetSyI(\"HW_MODEL\") .LE. 1024 .AND. F\$GetSyI(\"HW_MODEL\") .GT. 0\)`;
+chomp $isvax;
print "\$isvax: \\$isvax\\\n" if $debug;
print "Input \$cc_cmd: \\$cc_cmd\\\n" if $debug;