Change 19030 by [EMAIL PROTECTED] on 2003/03/19 15:57:49

        Integrate:
        [ 19020]
        Minor updates of Wolfgang's pack patch
        
        Subject: Re: pack changes and related fixes
        From: Philip Newton <[EMAIL PROTECTED]>
        Date: Tue, 18 Mar 2003 06:19:30 +0100
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 19023]
        Subject: [PATCH] poll() help for VMS
        From: "Craig A. Berry" <[EMAIL PROTECTED]>
        Date: Tue, 18 Mar 2003 01:10:10 -0600
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 19024]
        Subject: [PATCH] VMS pod install tweaks
        From: "Craig A. Berry" <[EMAIL PROTECTED]>
        Date: Sat, 15 Mar 2003 16:06:07 -0600
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 19025]
        Subject: [PATCH] [perl #9990] avoid goto &tmpsub coredump
        From: Dave Mitchell <[EMAIL PROTECTED]>
        Date: Tue, 18 Mar 2003 21:55:05 +0000
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 19026]
        Update the DB_File instructions in Tru64.
        
        [ 19028]
        Better wording as requested by Rafael, and
        the module is BerkeleyDB, not BerkeleyFile.

Affected files ...

... //depot/maint-5.8/perl/README.tru64#5 integrate
... //depot/maint-5.8/perl/configure.com#8 integrate
... //depot/maint-5.8/perl/embed.fnc#21 integrate
... //depot/maint-5.8/perl/ext/IO/poll.h#2 integrate
... //depot/maint-5.8/perl/pod/perldiag.pod#18 integrate
... //depot/maint-5.8/perl/pp_ctl.c#18 integrate
... //depot/maint-5.8/perl/t/op/goto.t#3 integrate
... //depot/maint-5.8/perl/vms/descrip_mms.template#8 integrate

Differences ...

==== //depot/maint-5.8/perl/README.tru64#5 (text) ====
Index: perl/README.tru64
--- perl/README.tru64#4~18866~  Sun Mar  9 05:59:01 2003
+++ perl/README.tru64   Wed Mar 19 07:57:49 2003
@@ -71,23 +71,27 @@
 has not yet been patched, you'll get a warning from Configure when
 selecting long doubles.
 
-=head2 db-hash.t failing on Tru64
+=head2 DB_File tests failing on Tru64
 
-The Berkeley DB 1.85 coming with the Tru64 is unfortunately buggy.
-In general in Tru64 V4.* it seemed to be more stable, but in V5.*
-something broke (even though the DB stayed at release 1.85) and
-the DB_File extension test db-hash.t may fail by dumping core after
-the subtest 21.  There really is no good cure as of Tru64 V5.1A expect
-installing a newer Berkeley DB and supplying the right directories for
--Dlocincpth=/some/include and -Dloclibpth=/some/lib when running Configure
-B<and> before running "make test" setting your LD_LIBRARY_PATH to /some/lib.
+The DB_File tests (db-btree.t, db-hash.t, db-recno.t) may fail you
+have installed a newer version of Berkeley DB into the system and the
+-I and -L compiler and linker flags introduce version conflicts with
+the DB 1.85 headers and libraries that came with the Tru64.  For example, 
+mixing a DB v2 library with the DB v1 headers is a bad idea.  Watch
+out for Configure options -Dlocincpth and -Dloclibpth, and check your
+/usr/local/include and /usr/local/lib since they are included by default.
 
-You can also work around the problem by disabling the DB_File by
-specifying -Ui_db to Configure, and then using the BerkeleyFile module
-from CPAN instead of DB_File.  The BerkeleyFile works with Berkeley DB
-versions 2.* or greater.
+The second option is to explicitly instruct Configure to detect the
+newer Berkeley DB installation, by supplying the right directories with
+C<-Dlocincpth=/some/include> and C<-Dloclibpth=/some/lib> B<and> before
+running "make test" setting your LD_LIBRARY_PATH to F</some/lib>.
 
-The Berkeley DB 4.0.14 has been tested with Tru64 V5.1A and found
+The third option is to work around the problem by disabling the
+DB_File completely when build Perl by specifying -Ui_db to Configure,
+and then using the BerkeleyDB module from CPAN instead of DB_File.
+The BerkeleyDB works with Berkeley DB versions 2.* or greater.
+
+The Berkeley DB 4.1.25 has been tested with Tru64 V5.1A and found
 to work.  The latest Berkeley DB can be found from F<http://www.sleepycat.com>.
 
 =head2 64-bit Perl on Tru64

==== //depot/maint-5.8/perl/configure.com#8 (text) ====
Index: perl/configure.com
--- perl/configure.com#7~18978~ Fri Mar 14 02:52:06 2003
+++ perl/configure.com  Wed Mar 19 07:57:49 2003
@@ -4050,6 +4050,29 @@
 $ GOSUB inlibc
 $ d_mkdtemp = tmp
 $!
+$! Check for poll
+$!
+$ if i_poll .eqs. "define"
+$ then
+$   OS
+$   WS "#if defined(__DECC) || defined(__DECCXX)"
+$   WS "#include <stdlib.h>"
+$   WS "#endif"
+$   WS "#include <poll.h>"
+$   WS "int main()"
+$   WS "{"
+$   WS "struct pollfd pfd;"
+$   WS "int count=poll(&pfd,1,0);"
+$   WS "exit(0);"
+$   WS "}"
+$   CS
+$   tmp = "poll"
+$   GOSUB inlibc
+$   d_poll = tmp
+$ else
+$   d_poll = "undef"
+$ endif
+$!
 $! Check for setvbuf
 $!
 $ OS
@@ -5356,7 +5379,7 @@
 $ WC "d_perl_otherlibdirs='undef'"
 $ WC "d_phostname='" + d_phostname + "'"
 $ WC "d_pipe='define'"
-$ WC "d_poll='undef'"
+$ WC "d_poll='" + d_poll + "'"
 $ WC "d_procselfexe='undef'"
 $ WC "d_pthread_atfork='undef'"
 $ WC "d_pthread_yield='" + d_pthread_yield + "'"

==== //depot/maint-5.8/perl/embed.fnc#21 (text) ====
Index: perl/embed.fnc
--- perl/embed.fnc#20~19011~    Mon Mar 17 11:15:23 2003
+++ perl/embed.fnc      Wed Mar 19 07:57:49 2003
@@ -15,12 +15,12 @@
 :      p               function has a Perl_ prefix
 :      f               function takes printf style format string, varargs
 :      r               function never returns
-:       o              has no compatibility macro (#define foo Perl_foo)
-:       x              not exported
-:       X              explicitly exported
-:       M              may change
-:       E              visible to Perl core extensions
-:       b              binary backward compatibility; function is a macro
+:      o               has no compatibility macro (#define foo Perl_foo)
+:      x               not exported
+:      X               explicitly exported
+:      M               may change
+:      E               visible to Perl core extensions
+:      b               binary backward compatibility; function is a macro
 :                      but has also Perl_ implementation (which is exported)
 :
 : Individual flags may be separated by whitespace.
@@ -965,8 +965,8 @@
 Ap     |void   |sys_intern_init
 #endif
 
-Ap |char * |custom_op_name|OP* op
-Ap |char * |custom_op_desc|OP* op
+Ap     |char * |custom_op_name |OP* op
+Ap     |char * |custom_op_desc |OP* op
 
 Adp    |void   |sv_nosharing   |SV *
 Adp    |void   |sv_nolocking   |SV *
@@ -1038,7 +1038,7 @@
 s      |void   |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp
 #  if defined(PL_OP_SLAB_ALLOC)
 s      |void*  |Slab_Alloc     |int m|size_t sz
-s      |void   |Slab_Free      |void *op
+s      |void   |Slab_Free      |void *op
 #  endif
 #endif
 
@@ -1082,12 +1082,12 @@
 #endif
 
 #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-s       |I32    |unpack_rec     |tempsym_t* symptr|char *s|char *strbeg|char 
*strend|char **new_s
-s       |SV **  |pack_rec       |SV *cat|tempsym_t* symptr|SV **beglist|SV **endlist
+s      |I32    |unpack_rec     |tempsym_t* symptr|char *s|char *strbeg|char 
*strend|char **new_s
+s      |SV **  |pack_rec       |SV *cat|tempsym_t* symptr|SV **beglist|SV **endlist
 s      |SV*    |mul128         |SV *sv|U8 m
 s      |I32    |measure_struct |tempsym_t* symptr
 s      |char * |group_end      |char *pat|char *patend|char ender
-s       |char * |get_num        |char *ppat|I32 *
+s      |char * |get_num        |char *ppat|I32 *
 s      |bool   |next_symbol    |tempsym_t* symptr
 s      |void   |doencodes      |SV* sv|char* s|I32 len
 s      |SV*    |is_an_int      |char *s|STRLEN l
@@ -1244,7 +1244,7 @@
 s      |void   |del_sv |SV *p
 #  endif
 #  if !defined(NV_PRESERVES_UV)
-s      |int    |sv_2iuv_non_preserve   |SV *sv|I32 numtype
+s      |int    |sv_2iuv_non_preserve   |SV *sv|I32 numtype
 #  endif
 s      |I32    |expect_number  |char** pattern
 #

==== //depot/maint-5.8/perl/ext/IO/poll.h#2 (text) ====
Index: perl/ext/IO/poll.h
--- perl/ext/IO/poll.h#1~17645~ Fri Jul 19 12:29:57 2002
+++ perl/ext/IO/poll.h  Wed Mar 19 07:57:49 2003
@@ -20,6 +20,11 @@
 
 #define EMULATE_POLL_WITH_SELECT
 
+#ifdef poll
+# undef poll
+#endif
+#define poll Perl_my_poll
+
 typedef struct pollfd {
     int fd;
     short events;

==== //depot/maint-5.8/perl/pod/perldiag.pod#18 (text) ====
Index: perl/pod/perldiag.pod
--- perl/pod/perldiag.pod#17~19011~     Mon Mar 17 11:15:23 2003
+++ perl/pod/perldiag.pod       Wed Mar 19 07:57:49 2003
@@ -64,7 +64,7 @@
 
 =item '!' allowed only after types %s
 
-(F) The '!' is allowed in pack() or unpack(9 only after certain types.
+(F) The '!' is allowed in pack() or unpack() only after certain types.
 See L<perlfunc/pack>.
 
 =item Ambiguous call resolved as CORE::%s(), qualify as such or use &

==== //depot/maint-5.8/perl/pp_ctl.c#18 (text) ====
Index: perl/pp_ctl.c
--- perl/pp_ctl.c#17~18881~     Mon Mar 10 08:58:22 2003
+++ perl/pp_ctl.c       Wed Mar 19 07:57:49 2003
@@ -2141,6 +2141,7 @@
            }
 
            /* First do some returnish stuff. */
+           SvREFCNT_inc(cv); /* avoid premature free during unwind */
            FREETMPS;
            cxix = dopoptosub(cxstack_ix);
            if (cxix < 0)
@@ -2194,6 +2195,7 @@
 
            /* Now do some callish stuff. */
            SAVETMPS;
+           SAVEFREESV(cv); /* later, undo the 'avoid premature free' hack */
            if (CvXSUB(cv)) {
 #ifdef PERL_XSUB_OLDSTYLE
                if (CvOLDSTYLE(cv)) {

==== //depot/maint-5.8/perl/t/op/goto.t#3 (xtext) ====
Index: perl/t/op/goto.t
--- perl/t/op/goto.t#2~18744~   Tue Feb 18 06:46:18 2003
+++ perl/t/op/goto.t    Wed Mar 19 07:57:49 2003
@@ -2,7 +2,7 @@
 
 # "This IS structured code.  It's just randomly structured."
 
-print "1..27\n";
+print "1..28\n";
 
 while ($?) {
     $foo = 1;
@@ -176,6 +176,14 @@
     print "not " unless $ok;
     print "ok 27 - weird case of goto and for(;;) loop\n";
 }
+
+# bug #9990 - don't prematurely free the CV we're &going to.
+
+sub f1 {
+    my $x;
+    goto sub { $x; print "ok 28 - don't prematurely free CV\n" }
+}
+f1();
 
 exit;
 

==== //depot/maint-5.8/perl/vms/descrip_mms.template#8 (text) ====
Index: perl/vms/descrip_mms.template
--- perl/vms/descrip_mms.template#7~18790~      Thu Feb 27 22:34:27 2003
+++ perl/vms/descrip_mms.template       Wed Mar 19 07:57:49 2003
@@ -365,7 +365,7 @@
 pod4 = [.lib.pod]perlbot.pod [.lib.pod]perlbs2000.pod [.lib.pod]perlcall.pod 
[.lib.pod]perlce.pod [.lib.pod]perlclib.pod
 pod5 = [.lib.pod]perlcn.pod [.lib.pod]perlcompile.pod [.lib.pod]perlcygwin.pod 
[.lib.pod]perldata.pod
 pod6 = [.lib.pod]perldbmfilter.pod [.lib.pod]perldebguts.pod [.lib.pod]perldebtut.pod 
[.lib.pod]perldebug.pod
-pod7 = [.lib.pod]perldelta.pod [.lib.pod]perldgux.pod [.lib.pod]perldiag.pod 
[.lib.pod]perldos.pod [.lib.pod]perldsc.pod
+pod7 = [.lib.pod]perldelta.pod [.lib.pod]perldgux.pod [.lib.pod]perldiag.pod 
[.lib.pod]perldoc.pod [.lib.pod]perldos.pod [.lib.pod]perldsc.pod
 pod8 = [.lib.pod]perlebcdic.pod [.lib.pod]perlembed.pod [.lib.pod]perlepoc.pod 
[.lib.pod]perlfaq.pod [.lib.pod]perlfaq1.pod
 pod9 = [.lib.pod]perlfaq2.pod [.lib.pod]perlfaq3.pod [.lib.pod]perlfaq4.pod 
[.lib.pod]perlfaq5.pod [.lib.pod]perlfaq6.pod
 pod10 = [.lib.pod]perlfaq7.pod [.lib.pod]perlfaq8.pod [.lib.pod]perlfaq9.pod 
[.lib.pod]perlfilter.pod [.lib.pod]perlfork.pod
@@ -383,7 +383,7 @@
 pod22 = [.lib.pod]perlsyn.pod [.lib.pod]perlthrtut.pod [.lib.pod]perltie.pod 
[.lib.pod]perltoc.pod [.lib.pod]perltodo.pod
 pod23 = [.lib.pod]perltooc.pod [.lib.pod]perltoot.pod [.lib.pod]perltrap.pod 
[.lib.pod]perltru64.pod [.lib.pod]perltw.pod
 pod24 = [.lib.pod]perlunicode.pod [.lib.pod]perluniintro.pod [.lib.pod]perlutil.pod 
[.lib.pod]perluts.pod [.lib.pod]perlvar.pod
-pod25 = [.lib.pod]perlvmesa.pod [.lib.pod]perlvos.pod [.lib.pod]perlwin32.pod 
[.lib.pod]perlxs.pod [.lib.pod]perlxstut.pod
+pod25 = [.lib.pod]perlvmesa.pod [.lib.pod]perlvms.pod [.lib.pod]perlvos.pod 
[.lib.pod]perlwin32.pod [.lib.pod]perlxs.pod [.lib.pod]perlxstut.pod
 pod = $(pod0) $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) 
$(pod10) $(pod11) $(pod12) $(pod13) $(pod14) $(pod15) $(pod16) $(pod17) $(pod18) 
$(pod19) $(pod20) $(pod21) $(pod22) $(pod23) $(pod24) $(pod25)
 
 perlpods : $(pod)
@@ -767,6 +767,10 @@
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod]
 
+[.lib.pod]perldoc.pod : [.pod]perldoc.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod]
+
 [.lib.pod]perldos.pod : [.pod]perldos.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod]
@@ -1106,6 +1110,10 @@
 [.lib.pod]perlvmesa.pod : [.pod]perlvmesa.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod]
+
+[.lib.pod]perlvms.pod : [.vms]perlvms.pod
+        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+        Copy/NoConfirm/Log $(MMS$SOURCE) [.lib.pod]
 
 [.lib.pod]perlvos.pod : [.pod]perlvos.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
End of Patch.

Reply via email to