diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 2002-05-17 06:56:40 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 2002-05-17 06:56:40 +0000 |
commit | d6240823f336ddd3e33fedd974418b05bff3ad24 (patch) | |
tree | 5e0540f60883dbc81ec4643883864d31c151e30f | |
parent | 0cff2cf3dc85787c2786f644ac6406c6b5148dad (diff) | |
parent | 9972c7afa298c7672cee8abcd659c49c40cda99b (diff) | |
download | perl-d6240823f336ddd3e33fedd974418b05bff3ad24.tar.gz |
Integrate mainline
p4raw-id: //depot/perlio@16645
40 files changed, 364 insertions, 162 deletions
@@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Sat May 11 22:27:01 EET DST 2002 [metaconfig 3.0 PL70] +# Generated on Thu May 16 17:03:39 EET DST 2002 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <<EOF @@ -1858,6 +1858,11 @@ if test X"$trnl" = X; then esac fi if test X"$trnl" = X; then + case "`echo foo|tr '\r\n' xy 2>/dev/null`" in + fooxy) trnl='\n\r' ;; + esac +fi +if test X"$trnl" = X; then cat <<EOM >&2 $me: Fatal Error: cannot figure out how to translate newlines with 'tr'. @@ -616,6 +616,7 @@ ext/Storable/t/overload.t See if Storable works ext/Storable/t/recurse.t See if Storable works ext/Storable/t/restrict.t See if Storable works ext/Storable/t/retrieve.t See if Storable works +ext/Storable/t/st-dump.pl See if Storable works ext/Storable/t/store.t See if Storable works ext/Storable/t/tied.t See if Storable works ext/Storable/t/tied_hook.t See if Storable works @@ -2753,7 +2754,6 @@ wince/config_H.ce WinCE port wince/config_h.PL WinCE port wince/config_sh.PL WinCE port wince/dl_win32.xs WinCE port -wince/FindExt.pm WinCE port wince/include/arpa/inet.h WinCE port wince/include/netdb.h WinCE port wince/include/sys/socket.h WinCE port diff --git a/README.dos b/README.dos index 50dedd5428..564d54f482 100644 --- a/README.dos +++ b/README.dos @@ -103,7 +103,7 @@ sockets =item * -Unpack the source package F<perl5.6*.tar.gz> with djtarx. If you want +Unpack the source package F<perl5.8*.tar.gz> with djtarx. If you want to use long file names under w95 and also to get Perl to pass all its tests, don't forget to use diff --git a/djgpp/djgppsed.sh b/djgpp/djgppsed.sh index 6401681dbd..02c4416966 100644 --- a/djgpp/djgppsed.sh +++ b/djgpp/djgppsed.sh @@ -46,3 +46,4 @@ sed -e $SPACKLIST lib/ExtUtils/Installed.pm >s; mv -f s lib/ExtUtils/Installed.p sed -e $SPACKLIST lib/ExtUtils/Packlist.pm >s; mv -f s lib/ExtUtils/Packlist.pm sed -e $SABC t/io/iprefix.t >s; mv -f s t/io/iprefix.t sed -e 's=L_ctermid==g' ext/POSIX/Makefile.PL >s; mv -f s ext/POSIX/Makefile.PL +sed -e $SPACKLIST lib/ExtUtils/t/Installed.t >s; mv -f s lib/ExtUtils/t/Installed.t diff --git a/ext/Encode/Byte/Makefile.PL b/ext/Encode/Byte/Makefile.PL index 5f67d8bd6c..3fe7345ead 100644 --- a/ext/Encode/Byte/Makefile.PL +++ b/ext/Encode/Byte/Makefile.PL @@ -172,6 +172,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q" -"O"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/Encode/CN/Makefile.PL b/ext/Encode/CN/Makefile.PL index 775a8f5b38..1dd713a193 100644 --- a/ext/Encode/CN/Makefile.PL +++ b/ext/Encode/CN/Makefile.PL @@ -149,6 +149,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/Encode/EBCDIC/Makefile.PL b/ext/Encode/EBCDIC/Makefile.PL index f2113fa738..73152ee2f9 100644 --- a/ext/Encode/EBCDIC/Makefile.PL +++ b/ext/Encode/EBCDIC/Makefile.PL @@ -130,6 +130,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q" -"O"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/Encode/JP/Makefile.PL b/ext/Encode/JP/Makefile.PL index a1df35d169..b4a4ed0c4e 100644 --- a/ext/Encode/JP/Makefile.PL +++ b/ext/Encode/JP/Makefile.PL @@ -149,6 +149,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/Encode/KR/Makefile.PL b/ext/Encode/KR/Makefile.PL index 4ba99ab82d..88fce2437a 100644 --- a/ext/Encode/KR/Makefile.PL +++ b/ext/Encode/KR/Makefile.PL @@ -147,6 +147,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/Encode/Symbol/Makefile.PL b/ext/Encode/Symbol/Makefile.PL index a436b4d655..e1fa906e24 100644 --- a/ext/Encode/Symbol/Makefile.PL +++ b/ext/Encode/Symbol/Makefile.PL @@ -135,6 +135,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q" -"O"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/Encode/TW/Makefile.PL b/ext/Encode/TW/Makefile.PL index 8f12a81aee..65cc22486e 100644 --- a/ext/Encode/TW/Makefile.PL +++ b/ext/Encode/TW/Makefile.PL @@ -145,6 +145,7 @@ sub postamble } } my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; + $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform; my $ucopts = '-"Q"'; $str .= qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; diff --git a/ext/PerlIO/t/fail.t b/ext/PerlIO/t/fail.t index 87d27642da..801793de80 100644 --- a/ext/PerlIO/t/fail.t +++ b/ext/PerlIO/t/fail.t @@ -5,7 +5,7 @@ BEGIN { @INC = '../lib'; require "../t/test.pl"; skip_all("No perlio") unless (find PerlIO::Layer 'perlio'); - plan (16); + plan (15); } use warnings 'layer'; @@ -21,24 +21,27 @@ ok(open(FH,"<",$file),"Normal open works"); $warn = ''; $! = 0; ok(!binmode(FH,":-)"),"All punctuation fails binmode"); -like($!,'Invalid',"Got errno"); +print "# $!\n"; +isnt($!,0,"Got errno"); like($warn,qr/in layer/,"Got warning"); $warn = ''; $! = 0; ok(!binmode(FH,":nonesuch"),"Bad package fails binmode"); -like($!,'No such',"Got errno"); +print "# $!\n"; +isnt($!,0,"Got errno"); like($warn,qr/nonesuch/,"Got warning"); close(FH); $warn = ''; $! = 0; ok(!open(FH,"<:-)",$file),"All punctuation fails open"); -like($!,"Invalid","Got errno"); -like($warn,qr/in layer/,"Got warning"); +print "# $!\n"; isnt($!,"","Got errno"); +like($warn,qr/in layer/,"Got warning"); $warn = ''; $! = 0; ok(!open(FH,"<:nonesuch",$file),"Bad package fails open"); -like($!,"No such","Got errno"); +print "# $!\n"; +isnt($!,0,"Got errno"); like($warn,qr/nonesuch/,"Got warning"); ok(open(FH,"<",$file),"Normal open (still) works"); diff --git a/ext/Socket/socketpair.t b/ext/Socket/socketpair.t index c5b72e4d8c..be64dfb70c 100644 --- a/ext/Socket/socketpair.t +++ b/ext/Socket/socketpair.t @@ -117,8 +117,7 @@ ok (shutdown(LEFT, SHUT_WR), "shutdown left for writing"); { local $SIG{ALRM} = sub { warn "EOF on right took over 3 seconds" }; local $TODO = "Known problems with unix sockets on $^O" - if $^O eq 'hpux' || $^O eq 'unicosmk' || - $^O eq 'unicos' || $^O eq 'super-ux'; + if $^O eq 'hpux' || $^O eq 'super-ux'; alarm 3; $! = 0; ok (eof RIGHT, "right is at EOF"); diff --git a/ext/Storable/MANIFEST b/ext/Storable/MANIFEST index 1cdb74ca9e..f946927c87 100644 --- a/ext/Storable/MANIFEST +++ b/ext/Storable/MANIFEST @@ -19,10 +19,10 @@ t/overload.t See if Storable works t/recurse.t See if Storable works t/restrict.t See if Storable works t/retrieve.t See if Storable works +t/st-dump.pl helper routines for tests t/store.t See if Storable works t/tied.t See if Storable works t/tied_hook.t See if Storable works t/tied_items.t See if Storable works t/utf8.t See if Storable works t/utf8hash.t See if Storable works -lib/st-dump.pl helper routines for tests diff --git a/ext/Storable/Storable.pm b/ext/Storable/Storable.pm index 0224795392..664f6e7a6b 100644 --- a/ext/Storable/Storable.pm +++ b/ext/Storable/Storable.pm @@ -894,11 +894,6 @@ C<Storable::drop_utf8> is a blunt tool. There is no facility either to return B<all> strings as utf8 sequences, or to attempt to convert utf8 data back to 8 bit and C<croak()> if the conversion fails. -In EBCDIC platforms, restoring restricted hashes (a new perl 5.8 -feature) does not work (the contents of the hashes are restored -but the read-onlyness of either the whole hash or particular -elements is lost). - =head1 CREDITS Thank you to (in chronological order): diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs index 8b7c0cc0d1..1ab7a4c93f 100644 --- a/ext/Storable/Storable.xs +++ b/ext/Storable/Storable.xs @@ -2954,7 +2954,7 @@ static int store_other(stcxt_t *cxt, SV *sv) len = strlen(buf); STORE_SCALAR(buf, len); - TRACEME(("ok (dummy \"%s\", length = %"IVdf")", buf, len)); + TRACEME(("ok (dummy \"%s\", length = %"IVdf")", buf, (IV) len)); return 0; } @@ -3784,7 +3784,7 @@ static SV *retrieve_hook(stcxt_t *cxt, char *cname) */ TRACEME(("calling STORABLE_thaw on %s at 0x%"UVxf" (%"IVdf" args)", - class, PTR2UV(sv), AvFILLp(av) + 1)); + class, PTR2UV(sv), (IV) AvFILLp(av) + 1)); rv = newRV(sv); (void) scalar_call(rv, hook, clone, av, G_SCALAR|G_DISCARD); @@ -4125,7 +4125,7 @@ static SV *retrieve_lscalar(stcxt_t *cxt, char *cname) SV *sv; RLEN(len); - TRACEME(("retrieve_lscalar (#%d), len = %"IVdf, cxt->tagnum, len)); + TRACEME(("retrieve_lscalar (#%d), len = %"IVdf, cxt->tagnum, (IV) len)); /* * Allocate an empty scalar of the suitable length. @@ -4150,7 +4150,7 @@ static SV *retrieve_lscalar(stcxt_t *cxt, char *cname) if (cxt->s_tainted) /* Is input source tainted? */ SvTAINT(sv); /* External data cannot be trusted */ - TRACEME(("large scalar len %"IVdf" '%s'", len, SvPVX(sv))); + TRACEME(("large scalar len %"IVdf" '%s'", (IV) len, SvPVX(sv))); TRACEME(("ok (retrieve_lscalar at 0x%"UVxf")", PTR2UV(sv))); return sv; diff --git a/ext/Storable/t/downgrade.t b/ext/Storable/t/downgrade.t index bbdf4dc74e..b560508eed 100644 --- a/ext/Storable/t/downgrade.t +++ b/ext/Storable/t/downgrade.t @@ -39,10 +39,21 @@ use vars qw(@RESTRICT_TESTS %R_HASH %U_HASH $UTF8_CROAK $RESTRICTED_CROAK); %R_HASH = (perl => 'rules'); if ($] >= 5.007003) { + # This is cheating. "\xdf" in Latin 1 is beta S, so will match \w if it + # is stored in utf8, not bytes. + # "\xdf" is y diaresis in EBCDIC (except for cp875, but so far no-one seems + # to use that) which has exactly the same properties for \w + # So the tests happen to pass. my $utf8 = "Schlo\xdf" . chr 256; chop $utf8; - %U_HASH = (map {$_, $_} 'castle', "ch\xe5teau", $utf8, chr 0x57CE); + # \xe5 is V in EBCDIC. That doesn't have the same properties w.r.t. \w as + # an a circumflex, so we need to be explicit. + + # and its these very properties we're trying to test - an edge case + # involving whether scalars are being stored in bytes or in utf8. + my $a_circumflex = (ord ('A') == 193 ? "\x47" : "\xe5"); + %U_HASH = (map {$_, $_} 'castle', "ch${a_circumflex}teau", $utf8, chr 0x57CE); plan tests => 169; } elsif ($] >= 5.006) { plan tests => 59; @@ -397,7 +408,7 @@ begin 301 Short 8 bit utf8 data as bytes end begin 301 Long 8 bit utf8 data -M!04!```"`(MSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMS +M!048```"`(MSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMS MBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+ M<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMS MBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+<XMSBW.+ @@ -423,7 +434,7 @@ begin 301 Short 24 bit utf8 data as bytes end begin 301 Long 24 bit utf8 data -M!04!```&`/M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M3 +M!048```&`/M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M3 M0G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S M5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M3 M0G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S5?M30G-S @@ -467,25 +478,25 @@ begin 301 Hash with utf8 flag but no utf8 keys end begin 301 Hash with utf8 keys -M!049``````0*!H.!HJ.3A0`````&@X&BHY.%%P3<9')5`0````3<9')5%P?B -F@XB3EHMS`@````;B@XB3EM\*!X.(Y:.%@:0`````!X.(Y:.%@:0` +M!049``````0*!X.(1Z.%@:0`````!X.(1Z.%@:0*!H.!HJ.3A0`````&@X&B +FHY.%%P3<9')5`0````3<9')5%P?B@XB3EHMS`@````;B@XB3EM\` end begin 301 Locked hash with utf8 keys -M!049`0````0*!H.!HJ.3A00````&@X&BHY.%%P3<9')5!0````3<9')5%P?B -F@XB3EHMS!@````;B@XB3EM\*!X.(Y:.%@:0$````!X.(Y:.%@:0` +M!049`0````0*!X.(1Z.%@:0$````!X.(1Z.%@:0*!H.!HJ.3A00````&@X&B +FHY.%%P3<9')5!0````3<9')5%P?B@XB3EHMS!@````;B@XB3EM\` end begin 301 Hash with utf8 keys for pre 5.6 -M!049``````0*!H.!HJ.3A0`````&@X&BHY.%"@>#B.6CA8&D``````>#B.6C -FA8&D"@?B@XB3EHMS`@````;B@XB3EM\*!-QD<E4`````!-QD<E4` +M!049``````0*!H.!HJ.3A0`````&@X&BHY.%"@B#B(M&HX6!I``````'@XA' +GHX6!I`H'XH.(DY:+<P(````&XH.(DY;?"@3<9')5``````3<9')5 end begin 301 Hash with utf8 keys for 5.6 -M!049``````0*!H.!HJ.3A0`````&@X&BHY.%"@>#B.6CA8&D``````>#B.6C +M!049``````0*!H.!HJ.3A0`````&@X&BHY.%"@>#B$>CA8&D``````>#B$>C FA8&D%P?B@XB3EHMS`@````;B@XB3EM\7!-QD<E4`````!-QD<E4` end diff --git a/ext/Storable/t/make_downgrade.pl b/ext/Storable/t/make_downgrade.pl index d806ebbaa1..fc801a4953 100644 --- a/ext/Storable/t/make_downgrade.pl +++ b/ext/Storable/t/make_downgrade.pl @@ -50,9 +50,10 @@ chop $utf8; uuencode_it (\$utf8, "Short 8 bit utf8 data"); -utf8::encode ($utf8); +my $utf8b = $utf8; +utf8::encode ($utf8b); -uuencode_it (\$utf8, "Short 8 bit utf8 data as bytes"); +uuencode_it (\$utf8b, "Short 8 bit utf8 data as bytes"); $utf8 x= 256; @@ -62,9 +63,10 @@ $utf8 = "\x{C0FFEE}"; uuencode_it (\$utf8, "Short 24 bit utf8 data"); -utf8::encode ($utf8); +$utf8b = $utf8; +utf8::encode ($utf8b); -uuencode_it (\$utf8, "Short 24 bit utf8 data as bytes"); +uuencode_it (\$utf8b, "Short 24 bit utf8 data as bytes"); $utf8 x= 256; @@ -79,7 +81,8 @@ uuencode_it (\%uhash, "Hash with utf8 flag but no utf8 keys"); $utf8 = "Schlo\xdf" . chr 256; chop $utf8; -%uhash = (map {$_, $_} 'castle', "ch\xe5teau", $utf8, "\x{57CE}"); +my $a_circumflex = (ord ('A') == 193 ? "\x47" : "\xe5"); +%uhash = (map {$_, $_} 'castle', "ch${a_circumflex}teau", $utf8, "\x{57CE}"); uuencode_it (\%uhash, "Hash with utf8 keys"); diff --git a/ext/Storable/t/st-dump.pl b/ext/Storable/t/st-dump.pl new file mode 100644 index 0000000000..6ce77f01ac --- /dev/null +++ b/ext/Storable/t/st-dump.pl @@ -0,0 +1,169 @@ +;# $Id: dump.pl,v 1.0 2000/09/01 19:40:41 ram Exp $ +;# +;# Copyright (c) 1995-2000, Raphael Manfredi +;# +;# You may redistribute only under the same terms as Perl 5, as specified +;# in the README file that comes with the distribution. +;# +;# $Log: dump.pl,v $ +;# Revision 1.0 2000/09/01 19:40:41 ram +;# Baseline for first official release. +;# + +# NOTE THAT THIS FILE IS COPIED FROM ext/Storable/t/st-dump.pl +# TO t/lib/st-dump.pl. One could also play games with +# File::Spec->updir and catdir to get the st-dump.pl in +# ext/Storable into @INC. + +sub ok { + my ($num, $ok, $name) = @_; + $num .= " - $name" if defined $name and length $name; + print $ok ? "ok $num\n" : "not ok $num\n"; + $ok; +} + +sub num_equal { + my ($num, $left, $right, $name) = @_; + my $ok = ((defined $left) ? $left == $right : undef); + unless (ok ($num, $ok, $name)) { + print "# Expected $right\n"; + if (!defined $left) { + print "# Got undef\n"; + } elsif ($left !~ tr/0-9//c) { + print "# Got $left\n"; + } else { + $left =~ s/([^-a-zA-Z0-9_+])/sprintf "\\%03o", ord $1/ge; + print "# Got \"$left\"\n"; + } + } + $ok; +} + +package dump; +use Carp; + +%dump = ( + 'SCALAR' => 'dump_scalar', + 'ARRAY' => 'dump_array', + 'HASH' => 'dump_hash', + 'REF' => 'dump_ref', +); + +# Given an object, dump its transitive data closure +sub main'dump { + my ($object) = @_; + croak "Not a reference!" unless ref($object); + local %dumped; + local %object; + local $count = 0; + local $dumped = ''; + &recursive_dump($object, 1); + return $dumped; +} + +# This is the root recursive dumping routine that may indirectly be +# called by one of the routine it calls... +# The link parameter is set to false when the reference passed to +# the routine is an internal temporay variable, implying the object's +# address is not to be dumped in the %dumped table since it's not a +# user-visible object. +sub recursive_dump { + my ($object, $link) = @_; + + # Get something like SCALAR(0x...) or TYPE=SCALAR(0x...). + # Then extract the bless, ref and address parts of that string. + + my $what = "$object"; # Stringify + my ($bless, $ref, $addr) = $what =~ /^(\w+)=(\w+)\((0x.*)\)$/; + ($ref, $addr) = $what =~ /^(\w+)\((0x.*)\)$/ unless $bless; + + # Special case for references to references. When stringified, + # they appear as being scalars. However, ref() correctly pinpoints + # them as being references indirections. And that's it. + + $ref = 'REF' if ref($object) eq 'REF'; + + # Make sure the object has not been already dumped before. + # We don't want to duplicate data. Retrieval will know how to + # relink from the previously seen object. + + if ($link && $dumped{$addr}++) { + my $num = $object{$addr}; + $dumped .= "OBJECT #$num seen\n"; + return; + } + + my $objcount = $count++; + $object{$addr} = $objcount; + + # Call the appropriate dumping routine based on the reference type. + # If the referenced was blessed, we bless it once the object is dumped. + # The retrieval code will perform the same on the last object retrieved. + + croak "Unknown simple type '$ref'" unless defined $dump{$ref}; + + &{$dump{$ref}}($object); # Dump object + &bless($bless) if $bless; # Mark it as blessed, if necessary + + $dumped .= "OBJECT $objcount\n"; +} + +# Indicate that current object is blessed +sub bless { + my ($class) = @_; + $dumped .= "BLESS $class\n"; +} + +# Dump single scalar +sub dump_scalar { + my ($sref) = @_; + my $scalar = $$sref; + unless (defined $scalar) { + $dumped .= "UNDEF\n"; + return; + } + my $len = length($scalar); + $dumped .= "SCALAR len=$len $scalar\n"; +} + +# Dump array +sub dump_array { + my ($aref) = @_; + my $items = 0 + @{$aref}; + $dumped .= "ARRAY items=$items\n"; + foreach $item (@{$aref}) { + unless (defined $item) { + $dumped .= 'ITEM_UNDEF' . "\n"; + next; + } + $dumped .= 'ITEM '; + &recursive_dump(\$item, 1); + } +} + +# Dump hash table +sub dump_hash { + my ($href) = @_; + my $items = scalar(keys %{$href}); + $dumped .= "HASH items=$items\n"; + foreach $key (sort keys %{$href}) { + $dumped .= 'KEY '; + &recursive_dump(\$key, undef); + unless (defined $href->{$key}) { + $dumped .= 'VALUE_UNDEF' . "\n"; + next; + } + $dumped .= 'VALUE '; + &recursive_dump(\$href->{$key}, 1); + } +} + +# Dump reference to reference +sub dump_ref { + my ($rref) = @_; + my $deref = $$rref; # Follow reference to reference + $dumped .= 'REF '; + &recursive_dump($deref, 1); # $dref is a reference +} + +1; diff --git a/ext/Sys/Syslog/Syslog.pm b/ext/Sys/Syslog/Syslog.pm index edd813ad8a..a7fd2c93fc 100644 --- a/ext/Sys/Syslog/Syslog.pm +++ b/ext/Sys/Syslog/Syslog.pm @@ -13,6 +13,9 @@ $VERSION = '0.03'; # most efficient. However streams are dodgy - see _syslog_send_stream #my @connectMethods = ( 'stream', 'unix', 'tcp', 'udp' ); my @connectMethods = ( 'tcp', 'udp', 'unix', 'stream', 'console' ); +if ($^O =~ /^(freebsd|linux)$/) { + @connectMethods = grep { $_ ne 'udp' } @connectMethods; +} my @defaultMethods = @connectMethods; my $syslog_path = undef; my $transmit_ok = 0; @@ -557,7 +560,7 @@ sub connect_console { # 'protocol' never provides anything for us to read. But with # judicious use of select(), we can see if it would be readable... sub connection_ok { - return 1 if ($current_proto eq 'console'); + return 1 if (defined $current_proto && $current_proto eq 'console'); my $rin = ''; vec($rin, fileno(SYSLOG), 1) = 1; my $ret = select $rin, undef, $rin, 0; diff --git a/ext/threads/threads.xs b/ext/threads/threads.xs index f957a4a99b..cbe4e04b33 100755 --- a/ext/threads/threads.xs +++ b/ext/threads/threads.xs @@ -601,7 +601,7 @@ PPCODE: } void -yield(thread = 'threads') +yield(...) CODE: { YIELD; diff --git a/hints/aix.sh b/hints/aix.sh index ef3ff0787b..da7a45619b 100644 --- a/hints/aix.sh +++ b/hints/aix.sh @@ -141,7 +141,12 @@ cc_type=xlc case "$cc" in *gcc*) cc_type=gcc - ccdlflags='-Xlinker' ;; + ccdlflags='-Xlinker' + if [ "X$gccversion" = "X" ]; then + # Done too late in Configure if hinted + gccversion=`$cc --version | sed 's/.*(GCC) *//` + fi + ;; *) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | awk '{print $2}'` case "$ccversion" in '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$' | awk '{print $2}'` @@ -245,7 +250,20 @@ case "$usethreads" in $define|true|[yY]*) ccflags="$ccflags -DNEED_PTHREAD_INIT" case "$cc" in - gcc) ;; + *gcc*) +echo "GCC $gccversion disabling some _r functions" >&4 + case "$gccversion" in + 3*) d_drand48_r='undef' + d_endgrent_r='undef' + d_endpwent_r='undef' + d_getgrent_r='undef' + d_getpwent_r='undef' + d_random_r='undef' + d_srand48_r='undef' + d_strerror_r='undef' + ;; + esac + ;; cc_r) ;; cc|xl[cC]_r) echo >&4 "Switching cc to cc_r because of POSIX threads." @@ -254,9 +272,9 @@ $define|true|[yY]*) # --jhi@iki.fi cc=cc_r - case "`oslevel`" in - 4.2.1.*) i_crypt='undef' ;; - esac + case "`oslevel`" in + 4.2.1.*) i_crypt='undef' ;; + esac ;; '') cc=cc_r diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh index 7706141ff2..7c3569f70c 100644 --- a/hints/dec_osf.sh +++ b/hints/dec_osf.sh @@ -69,12 +69,15 @@ esac # reset _DEC_cc_style= case "$isgcc" in -gcc) _gcc_version=`$cc --version 2>&1 | tr . ' '` - set $_gcc_version +gcc) if [ "X$gccversion" = "X" ]; then + # Done too late in Configure if hinted + gccversion=`$cc --version | sed 's/.*(GCC) *//'` + fi + set $gcc_version if test "$1" -lt 2 -o \( "$1" -eq 2 -a \( "$2" -lt 95 -o \( "$2" -eq 95 -a "$3" -lt 2 \) \) \); then cat >&4 <<EOF -*** Your cc seems to be gcc and its version ($_gcc_version) seems to be +*** Your cc seems to be gcc and its version ($gcc_version) seems to be *** less than 2.95.2. This is not a good idea since old versions of gcc *** are known to produce buggy code when compiling Perl (and no doubt for *** other programs, too). diff --git a/hints/hpux.sh b/hints/hpux.sh index a76c680c3b..c08cdf9e77 100644 --- a/hints/hpux.sh +++ b/hints/hpux.sh @@ -76,7 +76,7 @@ case `$cc -v 2>&1`"" in ccflags="$cc_cppflags" if [ "X$gccversion" = "X" ]; then # Done too late in Configure if hinted - gccversion=`$cc --version | sed 's/.*(GCC) *//` + gccversion=`$cc --version | sed 's/.*(GCC) *//'` fi case "$gccversion" in [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-( diff --git a/hints/svr5.sh b/hints/svr5.sh index 2ddcbb10ba..47f7aff2c1 100644 --- a/hints/svr5.sh +++ b/hints/svr5.sh @@ -10,8 +10,11 @@ case "$cc" in *gcc*) # "$gccversion" not set yet - vers=`gcc -v 2>&1 | sed -n -e 's@.*version \([^ ][^ ]*\) .*@\1@p'` - case $vers in + if [ "X$gccversion" = "X" ]; then + # Done too late in Configure if hinted + gccversion=`$cc --version | sed 's/.*(GCC) *//'` + fi + case $gccversion in *2.95*) ccflags='-fno-strict-aliasing' # More optimisation provided in gcc-2.95 causes miniperl to segv. diff --git a/hints/vos.sh b/hints/vos.sh index 9860a6faac..62510ee0d1 100644 --- a/hints/vos.sh +++ b/hints/vos.sh @@ -108,9 +108,12 @@ echo "Testing whether bug gnu_g++-220 is fixed in your compiler..." # Try compiling the test case. if $cc -o t001 -O $ccflags $ldflags ../hints/t001.c; then gccbug=`$run ./t001` + if [ "X$gccversion" = "X" ]; then + # Done too late in Configure if hinted + gccversion=`$cc --version | sed 's/.*(GCC) *//'` + fi case "$gccbug" in - *fails*) gccversion=`$cc --version` - cat >&4 <<EOF + *fails*) cat >&4 <<EOF This C compiler ($gccversion) is known to have optimizer problems when compiling pp_pack.c. The Stratus bug number for this problem is gnu_g++-220. diff --git a/lib/File/stat.t b/lib/File/stat.t index 7a114ce822..c29d9abecd 100644 --- a/lib/File/stat.t +++ b/lib/File/stat.t @@ -74,6 +74,7 @@ SKIP: { } main::skip("Win32: different stat-info on filehandle", 1) if $^O eq 'MSWin32'; + main::skip("dos: inode number is fake on dos", 1) if $^O eq 'dos'; main::is( "@$stat", "@$stat3", '... and must match normal stat' ); } diff --git a/lib/Pod/Html.pm b/lib/Pod/Html.pm index 515ca4ebe9..e8f9ff3fa5 100644 --- a/lib/Pod/Html.pm +++ b/lib/Pod/Html.pm @@ -372,14 +372,14 @@ sub pod2html { # be eol agnostic for (@poddata) { - if (/\x0D/) { - if (/\x0D\x0A/) { - @poddata = map { s/\x0D\x0A/\n/g; + if (/\r/) { + if (/\r\n/) { + @poddata = map { s/\r\n/\n/g; /\n\n/ ? map { "$_\n\n" } split /\n\n/ : $_ } @poddata; } else { - @poddata = map { s/\x0D/\n/g; + @poddata = map { s/\r/\n/g; /\n\n/ ? map { "$_\n\n" } split /\n\n/ : $_ } @poddata; diff --git a/lib/Pod/t/eol.t b/lib/Pod/t/eol.t index 331d27f167..b78ec63549 100644 --- a/lib/Pod/t/eol.t +++ b/lib/Pod/t/eol.t @@ -1,12 +1,5 @@ #!./perl -w -BEGIN { - if (ord("A") == 193) { - print "1..0 \# Skip: EBCDIC\n"; - exit(0); - } -} - use Test::More tests => 3; open(POD, ">$$.pod") or die "$$.pod: $!"; @@ -44,8 +37,8 @@ use Pod::Html; open(POD, "<$$.pod") or die "$$.pod: $!"; open(IN, ">$$.in") or die "$$.in: $!"; while (<POD>) { - tr/\x0D\x0A//d; - print IN $_, "\x0D"; + s/[\r\n]+/\r/gs; + print IN $_; } close(POD); close(IN); @@ -57,8 +50,8 @@ pod2html("--title=eol", "--infile=$$.in", "--outfile=$$.o1"); open(POD, "<$$.pod") or die "$$.pod: $!"; open(IN, ">$$.in") or die "$$.in: $!"; while (<POD>) { - tr/\x0D\x0A//d; - print IN $_, "\x0A"; + s/[\r\n]+/\n/gs; + print IN $_; } close(POD); close(IN); @@ -70,8 +63,8 @@ pod2html("--title=eol", "--infile=$$.in", "--outfile=$$.o2"); open(POD, "<$$.pod") or die "$$.pod: $!"; open(IN, ">$$.in") or die "$$.in: $!"; while (<POD>) { - tr/\x0D\x0A//d; - print IN $_, "\x0D\x0A"; + s/[\r\n]+/\r\n/gs; + print IN $_; } close(POD); close(IN); diff --git a/lib/Tie/File/t/21_win32.t b/lib/Tie/File/t/21_win32.t index d06854441b..80d795a5d0 100644 --- a/lib/Tie/File/t/21_win32.t +++ b/lib/Tie/File/t/21_win32.t @@ -9,7 +9,7 @@ my $file = "tf$$.txt"; -unless ($^O =~ /^(MSWin32|dos)$/) { +unless ($^O =~ /^(MSWin32)$/) { print "1..0\n"; exit; } diff --git a/pod/perldelta.pod b/pod/perldelta.pod index df5151dc10..51e24df9bf 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2873,20 +2873,24 @@ the 5.005 threading implementation. These are not new failures--Perl ../lib/autouse.t 10 1 10.00% 4 op/flip.t 15 1 6.67% 15 -These failures are unlikely to get fixed as the 5.005-style -threads are considered fundamentally broken. +These failures are unlikely to get fixed as the 5.005-style threads +are considered fundamentally broken. (Basically what happens is that +competing threads can corrupt shared global state.) =head2 UNICOS Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------- - ../ext/Socket/socketpair.t 1 256 45 1 2.22% 12 ../lib/Math/Trig.t 26 1 3.85% 25 ../lib/warnings.t 460 1 0.22% 425 - io/fs.t 36 1 2.78% 31 op/numconvert.t 1440 13 0.90% 208 509-510 657-658 665-666 829-830 989-990 1149-1150 +The Trig and numconvert failures are caused by the slighly differing +(from IEEE) floating point implementation of UNICOS. The warnings +failure is also related: the test assumes a certain floating point +output format, this assumption fails in UNICOS. + =head2 UNICOS/mk =over 4 @@ -2957,8 +2961,7 @@ tests have been added. 331 333 337 339 ../ext/IO/lib/IO/t/io_unix.t 5 4 80.00% 2-5 ../ext/Storable/t/downgrade.t 12 3072 169 12 7.10% 14-15 46-47 78-79 - 110-111 137 143 - 150 161 + 110-111 150 161 ../lib/ExtUtils/t/Constant.t 121 30976 48 48 100.00% 1-48 ../lib/ExtUtils/t/Embed.t 9 9 100.00% 1-9 op/pat.t 910 7 0.77% 665 776 785 832- @@ -2968,6 +2971,13 @@ tests have been added. uni/fold.t 780 6 0.77% 61 169 196 661 710-711 +The dumper.t and downgrade.t are problems in the tests, the io_unix +and sprintf are problems in the USS (UDP sockets and printf formats). +The pat, tr, and fold are genuine Perl problems caused by EBCDIC (and +in the pat and fold cases, combining that with Unicode). The Constant +and Embed are probably problems in the tests (since they test Perl's +ability to build extensions, and that seems to be working reasonably well.) + =head2 Localising Tied Arrays and Hashes Is Broken local %tied_array; diff --git a/pod/perlhack.pod b/pod/perlhack.pod index 75d9241aac..08268022f4 100644 --- a/pod/perlhack.pod +++ b/pod/perlhack.pod @@ -2007,7 +2007,15 @@ standard Perl testset you would create and run Purify as: which would instrument Perl in memory, run Perl on test.pl, then finally report any memory problems. -=head2 Compaq's/Digital's Third Degree +B<NOTE>: as of Perl 5.8.0, the ext/Encode/t/Unicode.t takes +extraordinarily long (hours?) to complete under Purify. It has been +theorized that it would eventually finish, but nobody has so far been +patient enough :-) (This same extreme slowdown has been seen also with +the Third Degree tool, so the said test must be doing something that +is quite unfriendly for memory debuggers.) It is suggested that you +simply kill away that testing process. + +=head2 Compaq's/Digital's/HP's Third Degree Third Degree is a tool for memory leak detection and memory access checks. It is one of the many tools in the ATOM toolkit. The toolkit is only diff --git a/t/lib/st-dump.pl b/t/lib/st-dump.pl index 05028f30d8..6ce77f01ac 100644 --- a/t/lib/st-dump.pl +++ b/t/lib/st-dump.pl @@ -10,6 +10,11 @@ ;# Baseline for first official release. ;# +# NOTE THAT THIS FILE IS COPIED FROM ext/Storable/t/st-dump.pl +# TO t/lib/st-dump.pl. One could also play games with +# File::Spec->updir and catdir to get the st-dump.pl in +# ext/Storable into @INC. + sub ok { my ($num, $ok, $name) = @_; $num .= " - $name" if defined $name and length $name; diff --git a/t/op/alarm.t b/t/op/alarm.t index 384ee1d028..8fb92964a3 100644 --- a/t/op/alarm.t +++ b/t/op/alarm.t @@ -46,6 +46,6 @@ is( $@, "ALARM!\n", 'alarm w/$SIG{ALRM} vs system()' ); { local $TODO = "Why does system() block alarm() on $^O?" - if $^O eq 'VMS' || $^O eq'MacOS'; + if $^O eq 'VMS' || $^O eq'MacOS' || $^O eq 'dos'; ok( abs($diff - 3) <= 1, " right time (waited $diff secs for 3-sec alarm)" ); } @@ -1348,15 +1348,6 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *norma HE *he; SV *val; -#if defined(UNDER_CE) -/*strange: compiler complaints that I redefine macro UVXf and points where - it was first defined. I copied line from there without any changes. - Nothing should change. - But when I do not do this, there is an error on a line with - Perl_newSVpvf(aTHX_ "%04"UVXf, uv1) -*/ -#define UVXf "lX" /**/ -#endif if ((hv = get_hv(special, FALSE)) && (keysv = sv_2mortal(Perl_newSVpvf(aTHX_ "%04"UVXf, uv1))) && (he = hv_fetch_ent(hv, keysv, FALSE, 0)) && diff --git a/win32/buildext.pl b/win32/buildext.pl index 7125753709..65b79beb94 100644 --- a/win32/buildext.pl +++ b/win32/buildext.pl @@ -4,7 +4,7 @@ buildext.pl - build extensions =head1 SYNOPSIS - buildext.pl make [-make_opts] dep directory [target] + buildext.pl make [-make_opts] dep directory [target] !ext1 !ext2 E.g. @@ -16,11 +16,19 @@ E.g. buildext.pl dmake perldll.def ..\ext clean +Will skip building extensions which are marked with an '!' char. +Mostly because they still not ported to specified platform. + =cut use File::Basename; use Cwd; use FindExt; + +# @ARGV with '!' at first position are exclusions +my %excl = map {$_=>1} map {/^!(.*)$/} @ARGV; +@ARGV = grep {!/^!/} @ARGV; + my $here = getcwd(); my $perl = $^X; $here =~ s,/,\\,g; @@ -36,7 +44,7 @@ my $pl2bat = "$topdir\\win32\\bin\\pl2bat"; unless (-f "$pl2bat.bat") { my @args = ($perl, ("$pl2bat.pl") x 2); print "@args\n"; - system(@args); + system(@args) unless defined $::Cross::platform; } my $make = shift; $make .= " ".shift while $ARGV[0]=~/^-/; @@ -46,12 +54,17 @@ my $dir = shift; chdir($dir) || die "Cannot cd to $dir\n"; my $targ = shift; (my $ext = getcwd()) =~ s,/,\\,g; +my $code; FindExt::scan_ext($ext); my @ext = FindExt::extensions(); foreach my $dir (sort @ext) { + if (exists $excl{$dir}) { + warn "Skipping extension $ext\\$dir, not ported to current platform"; + next; + } if (chdir("$ext\\$dir")) { my $mmod = -M 'Makefile'; @@ -60,8 +73,11 @@ foreach my $dir (sort @ext) print "\nRunning Makefile.PL in $dir\n"; my @perl = ($perl, "-I$here\\..\\lib", 'Makefile.PL', 'INSTALLDIRS=perl', 'PERL_CORE=1'); + if (defined $::Cross::platform) { + @perl = (@perl[0,1],"-MCross=$::Cross::platform",@perl[2..$#perl]); + } print join(' ', @perl), "\n"; - my $code = system(@perl); + $code = system(@perl); warn "$code from $dir's Makefile.PL" if $code; $mmod = -M 'Makefile'; if ($mmod > $dmod) @@ -72,12 +88,14 @@ foreach my $dir (sort @ext) if ($targ) { print "Making $targ in $dir\n$make $targ\n"; - system("$make $targ"); + $code = system("$make $targ"); + die "Unsuccessful make($dir): code=$code" if $code!=0; } else { print "Making $dir\n$make\n"; - system($make); + $code = system($make); + die "Unsuccessful make($dir): code=$code" if $code!=0; } chdir($here) || die "Cannot cd to $here:$!"; } diff --git a/wince/FindExt.pm b/wince/FindExt.pm deleted file mode 100644 index 30392687d1..0000000000 --- a/wince/FindExt.pm +++ /dev/null @@ -1,66 +0,0 @@ -package FindExt; - -our $VERSION = '1.00'; - -use strict; -use File::Find; -use File::Basename; -use Cwd; - -my $no = join('|',qw(DynaLoader GDBM_File ODBM_File NDBM_File DB_File - Syslog SysV Langinfo)); -$no = qr/^(?:$no)$/i; - -my %ext; -my $ext; -sub scan_ext -{ - my $here = getcwd(); - my $dir = shift; - chdir($dir) || die "Cannot cd to $dir\n"; - ($ext = getcwd()) =~ s,/,\\,g; - find(\&find_ext,'.'); - chdir($here) || die "Cannot cd to $here\n"; - my @ext = extensions(); -} - -sub dynamic_extensions -{ - return grep $ext{$_} eq 'dynamic',keys %ext; -} - -sub noxs_extensions -{ - return grep $ext{$_} eq 'nonxs',keys %ext; -} - -sub extensions -{ - return keys %ext; -} - -sub find_ext -{ - if (/^(.*)\.pm$/i || /^(.*)_pm\.PL$/i || /^(.*)\.xs$/i) - { - my $name = $1; - return if $name =~ $no; - my $dir = $File::Find::dir; - $dir =~ s,./,,; - return if exists $ext{$dir}; - return unless -f "$ext/$dir/Makefile.PL"; - if ($dir =~ /$name$/i) - { - if (-f "$ext/$dir/$name.xs") - { - $ext{$dir} = 'dynamic'; - } - else - { - $ext{$dir} = 'nonxs'; - } - } - } -} - -1; diff --git a/wince/Makefile.ce b/wince/Makefile.ce index 272769a53b..55f9dfea1d 100644 --- a/wince/Makefile.ce +++ b/wince/Makefile.ce @@ -526,6 +526,12 @@ PERLEXE = $(MACHINE)\perl.exe CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm MINIMOD = ..\lib\ExtUtils\Miniperl.pm +# Nominate a target which causes extensions to be re-built +# This used to be $(PERLEXE), but at worst it is the .dll that they depend +# on and really only the interface - i.e. the .def file used to export symbols +# from the .dll +PERLDEP = perldll.def + MAKE = nmake -nologo CFGSH_TMPL = config.ce @@ -534,7 +540,7 @@ CFGH_TMPL = config_H.ce # # filenames given to xsubpp must have forward slashes (since it puts # full pathnames in #line strings) -XSUBPP = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ...\$(EXTUTILSDIR)\xsubpp \ +XSUBPP = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \ -C++ -prototypes MICROCORE_SRC = \ @@ -760,20 +766,21 @@ all: hostminiperl $(MINIMOD) $(CONFIGPM) $(PERLEXE) $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c $(CONFIGPM): .\config.h ..\config.sh ..\minimod.pl - cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary + cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary -mkdir $(XCOREDIR) $(XCOPY) ..\*.h $(XCOREDIR)\*.* $(XCOPY) *.h $(XCOREDIR)\*.* $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* $(RCOPY) include $(XCOREDIR)\*.* - $(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" + -$(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" + if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM) .\config.h: -del /f config.h copy config_H.ce config.h ..\config.sh: config.ce config_sh.PL - $(HPERL) -I..\lib config_sh.PL $(CFG_VARS) config.ce > ..\config.sh + $(HPERL) -I..\lib -I..\win32 config_sh.PL $(CFG_VARS) config.ce > ..\config.sh $(MINIMOD) : ..\minimod.pl cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm @@ -796,6 +803,16 @@ $(DYNALOADER).c: $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs +#---------------------------------------------------------------------------------- +Extensions: ..\win32\buildext.pl $(PERLDEP) $(CONFIGPM) + $(HPERL) -I..\lib -I..\win32 -MCross=$(CROSS_NAME) ..\win32\buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) \ + !Errno !File/Glob !POSIX !Time/HiRes + +Extensions_clean: + -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean + +#---------------------------------------------------------------------------------- + $(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs cd $(EXTDIR)\Data\$(*B) $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl diff --git a/wince/config.ce b/wince/config.ce index 07eed645f3..6582c1c325 100644 --- a/wince/config.ce +++ b/wince/config.ce @@ -873,6 +873,7 @@ usevendorprefix='undef' usevfork='false' usrinc='/usr/include' uuname='' +uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' @@ -888,6 +889,7 @@ vendorlibexp='' vendorprefix='' vendorprefixexp='' version='~VERSION~' +versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' diff --git a/wince/config_H.ce b/wince/config_H.ce index f447ba1a81..04c7eb0a08 100644 --- a/wince/config_H.ce +++ b/wince/config_H.ce @@ -3178,7 +3178,7 @@ #define UVuf "lu" /**/ #define UVof "lo" /**/ #define UVxf "lx" /**/ -#define UVXf undef /**/ +#define UVXf "lX" /**/ #define NVef "e" /**/ #define NVff "f" /**/ #define NVgf "g" /**/ |