From: Paul Green Date: Thu, 15 Jan 2004 16:00:15 +0000 (-0500) Subject: Refactor VOS patches for bleadperl and perl-5.8.x X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8f8d40ab34e002001c7e6f500a987fa1dfb3bd78;p=p5sagit%2Fp5-mst-13.2.git Refactor VOS patches for bleadperl and perl-5.8.x From: "Green, Paul" Message-ID: p4raw-id: //depot/perl@22171 --- diff --git a/README.vos b/README.vos index c758235..56a3419 100644 --- a/README.vos +++ b/README.vos @@ -24,7 +24,7 @@ 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 -of the VOS GNU C++ and GNU Tools product from Stratus +(or later) of the VOS GNU C++ and GNU Tools product from Stratus Technologies. =head1 BUILDING PERL FOR VOS @@ -36,8 +36,7 @@ and the GNU C++ and GNU Tools, Release 2.0.1 or later. To build full perl using the supplied Configure script and makefiles, change to the "vos" subdirectory and type the command "compile_full_perl" or "start_process compile_full_perl". This -will configure, build, and test perl. All of the test cases -that are executed should pass. +will configure, build, and test perl. =head1 INSTALLING PERL IN VOS @@ -56,8 +55,6 @@ While there are currently no architecture-specific extensions or modules distributed with perl, the following directories can be used to hold such files: - >system>ported>lib>perl5>5.9.0>68k - >system>ported>lib>perl5>5.9.0>860 >system>ported>lib>perl5>5.9.0>7100 >system>ported>lib>perl5>5.9.0>8000 @@ -71,8 +68,6 @@ two places. Put architecture-independent files into: Put site-specific architecture-dependent files into one of the following directories: - >system>ported>lib>perl5>site_perl>5.9.0>68k - >system>ported>lib>perl5>site_perl>5.9.0>860 >system>ported>lib>perl5>site_perl>5.9.0>7100 >system>ported>lib>perl5>site_perl>5.9.0>8000 @@ -124,13 +119,20 @@ yet fixed. =head1 TEST STATUS -When Perl 5.8.1 is built using the native build process on VOS -Release 14.5.0 and GNU C++/GNU Tools 2.0.1, all but five +When Perl 5.9.0 is built using the native build process on VOS +Release 14.7.0 and GNU C++/GNU Tools 2.0.2a, all but nine attempted tests either pass or result in TODO (ignored) failures. The tests that fail are: -ext/Time/HiRes/HiRes, tests 8, 11, 20, and 21. -lib/Net/Ping/t/450_service, test 8. +t/io/dup, test 2 +t/io/tell, test 28 +t/op/pack, test 0 +ext/B/t/bytecode, test 1 +ext/Devel/Peek/t/Peek, test 1 +ext/Encode/t/enc_module, test 1 +ext/IO/t/io_dup, test 2 +lib/ExtUtils/t/MM_Unix, test 94 +lib/Net/ing/t/450_service, test 8 =head1 SUPPORT STATUS @@ -139,10 +141,10 @@ can't guarantee I'll be able to answer them. There are some 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 product from Stratus -Technologies, along with a support contract (or from anyone else -who will sell you support). +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 +Stratus Technologies, along with a support contract (or from +anyone else who will sell you support). =head1 AUTHOR @@ -150,6 +152,6 @@ Paul Green (Paul.Green@stratus.com) =head1 LAST UPDATE -March 26, 2003 +January 15, 2004 =cut diff --git a/hv.c b/hv.c index 158b0b6..b7415ec 100644 --- a/hv.c +++ b/hv.c @@ -369,7 +369,7 @@ Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash) (lval ? HV_FETCH_LVALUE : 0), Nullsv, hash); } -HE * +STATIC HE * S_hv_fetch_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int flags, int action, SV *val, register U32 hash) { @@ -866,7 +866,7 @@ Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash) return hv_delete_common(hv, keysv, NULL, 0, 0, flags, hash); } -SV * +STATIC SV * S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash) { diff --git a/pp_pack.c b/pp_pack.c index 3e4993d..834e723 100644 --- a/pp_pack.c +++ b/pp_pack.c @@ -2429,11 +2429,17 @@ S_pack_rec(pTHX_ SV *cat, register tempsym_t* symptr, register SV **beglist, SV given 10**(NV_MAX_10_EXP+1) == 128 ** x solve for x: x = (NV_MAX_10_EXP+1) * log (10) / log (128) And with that many bytes only Inf can overflow. + Some C compilers are strict about integral constant + expressions so we conservatively divide by a slightly + smaller integer instead of multiplying by the exact + floating-point value. */ #ifdef NV_MAX_10_EXP - char buf[1 + (int)((NV_MAX_10_EXP + 1) * 0.47456)]; +/* char buf[1 + (int)((NV_MAX_10_EXP + 1) * 0.47456)]; -- invalid C */ + char buf[1 + (int)((NV_MAX_10_EXP + 1) / 2)]; /* valid C */ #else - char buf[1 + (int)((308 + 1) * 0.47456)]; +/* char buf[1 + (int)((308 + 1) * 0.47456)]; -- invalid C */ + char buf[1 + (int)((308 + 1) / 2)]; /* valid C */ #endif char *in = buf + sizeof(buf); diff --git a/vos/Changes b/vos/Changes index 2f1efca..3426d20 100644 --- a/vos/Changes +++ b/vos/Changes @@ -6,6 +6,10 @@ For 5.9.0: custom VOS command macros. Henceforth, perl must be built using the native Configure script. +For 5.8.4: + Updated "config.alpha.def", "config.ga.def", "build.cm" and + "perl.bind" to build this version of perl. + For 5.8.0: Updated "config.alpha.def", "config.ga.def", "build.cm", and "install_perl.cm" to use directory naming conventions that