diff options
author | Nicholas Clark <nick@ccl4.org> | 2003-12-20 23:40:37 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2003-12-20 23:40:37 +0000 |
commit | 8b752e95c15fb1fb89b865d6e0a284e957a7c3a4 (patch) | |
tree | ab36dae30869b71da41547a002dac7a56c376fc9 | |
parent | 5f658b8dfefe2ec1cb6dad078e36f55a2a3b8bbc (diff) | |
download | perl-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.com | 71 | ||||
-rw-r--r-- | hints/posix-bc.sh | 2 | ||||
-rw-r--r-- | t/base/num.t | 5 | ||||
-rw-r--r-- | t/comp/parser.t | 2 | ||||
-rw-r--r-- | vms/gen_shrfls.pl | 5 |
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; |