fix bz 473223

This commit is contained in:
Tom Callaway 2008-11-29 00:10:09 +00:00
parent 72efd72546
commit a1476ad7e2
5 changed files with 917 additions and 3 deletions

View File

@ -0,0 +1,340 @@
--- perl/Porting/Maintainers.pm#2~33194~ 2008-02-02 09:05:25.000000000 -0800
+++ perl/Porting/Maintainers.pm 2008-04-03 09:03:24.000000000 -0700
@@ -14,11 +14,12 @@
require "Maintainers.pl";
use vars qw(%Modules %Maintainers);
-use vars qw(@ISA @EXPORT_OK);
+use vars qw(@ISA @EXPORT_OK $VERSION);
@ISA = qw(Exporter);
@EXPORT_OK = qw(%Modules %Maintainers
get_module_files get_module_pat
show_results process_options);
+$VERSION = 0.02;
require Exporter;
use File::Find;
@@ -107,9 +108,12 @@
my @Files;
if ($Opened) {
- my @raw = `p4 opened`;
+ @Files = `p4 opened`;
die if $?;
- @Files = map {s!#.*!!s; s!^//depot/.*?/perl/!!; $_} @raw;
+ foreach (@Files) {
+ s!#.*!!s;
+ s!^//depot/(?:perl|.*?/perl)/!!;
+ }
} else {
@Files = @ARGV;
}
--- perl/ext/B/B/Concise.pm#2~33126~ 2008-01-30 07:26:23.000000000 -0800
+++ perl/ext/B/B/Concise.pm 2008-04-03 09:03:24.000000000 -0700
@@ -14,7 +14,7 @@
use Exporter (); # use #5
-our $VERSION = "0.74";
+our $VERSION = "0.75";
our @ISA = qw(Exporter);
our @EXPORT_OK = qw( set_style set_style_standard add_callback
concise_subref concise_cv concise_main
--- perl/ext/Devel/DProf/DProf.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/Devel/DProf/DProf.pm 2008-04-03 09:03:24.000000000 -0700
@@ -230,7 +230,7 @@
use XSLoader ();
-$Devel::DProf::VERSION = '20050603.00'; # this version not authorized by
+$Devel::DProf::VERSION = '20080331.00'; # this version not authorized by
# Dean Roehrich. See "Changes" file.
XSLoader::load 'Devel::DProf', $Devel::DProf::VERSION;
--- perl/ext/Devel/Peek/Peek.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/Devel/Peek/Peek.pm 2008-04-03 09:03:24.000000000 -0700
@@ -3,7 +3,7 @@
package Devel::Peek;
-$VERSION = '1.03';
+$VERSION = '1.04';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
--- perl/ext/POSIX/POSIX.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/POSIX/POSIX.pm 2008-04-03 09:03:24.000000000 -0700
@@ -4,7 +4,7 @@
our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = ();
-our $VERSION = "1.13";
+our $VERSION = "1.14";
use AutoLoader;
--- perl/ext/PerlIO/encoding/encoding.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/PerlIO/encoding/encoding.pm 2008-04-03 09:03:24.000000000 -0700
@@ -1,7 +1,7 @@
package PerlIO::encoding;
use strict;
-our $VERSION = '0.10';
+our $VERSION = '0.11';
our $DEBUG = 0;
$DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
--- perl/ext/PerlIO/scalar/scalar.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/PerlIO/scalar/scalar.pm 2008-04-03 09:03:24.000000000 -0700
@@ -1,5 +1,5 @@
package PerlIO::scalar;
-our $VERSION = '0.05';
+our $VERSION = '0.06';
use XSLoader ();
XSLoader::load 'PerlIO::scalar';
1;
--- perl/ext/PerlIO/via/via.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/PerlIO/via/via.pm 2008-04-03 09:03:24.000000000 -0700
@@ -1,5 +1,5 @@
package PerlIO::via;
-our $VERSION = '0.04';
+our $VERSION = '0.05';
use XSLoader ();
XSLoader::load 'PerlIO::via';
1;
--- perl/ext/Socket/Socket.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/Socket/Socket.pm 2008-04-03 09:03:24.000000000 -0700
@@ -1,7 +1,7 @@
package Socket;
our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = "1.80";
+$VERSION = "1.81";
=head1 NAME
--- perl/lib/ExtUtils/Embed.pm#2~33574~ 2008-03-26 09:37:45.000000000 -0700
+++ perl/lib/ExtUtils/Embed.pm 2008-04-03 09:03:24.000000000 -0700
@@ -19,7 +19,7 @@
use strict;
# This is not a dual-life module, so no need for development version numbers
-$VERSION = '1.27';
+$VERSION = '1.28';
@ISA = qw(Exporter);
@EXPORT = qw(&xsinit &ldopts
--- perl/lib/Fatal.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/lib/Fatal.pm 2008-04-03 09:03:24.000000000 -0700
@@ -5,7 +5,7 @@
use strict;
our($AUTOLOAD, $Debug, $VERSION);
-$VERSION = 1.05;
+$VERSION = 1.06;
$Debug = 0 unless defined $Debug;
@@ -106,7 +106,7 @@
$proto = eval { prototype "CORE::$name" };
die "$name is neither a builtin, nor a Perl subroutine"
if $@;
- die "Cannot make a non-overridable builtin fatal"
+ die "Cannot make the non-overridable builtin $name fatal"
if not defined $proto;
$core = 1;
$call = "CORE::$name";
--- perl/lib/Fatal.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/lib/Fatal.t 2008-04-03 09:03:24.000000000 -0700
@@ -3,7 +3,7 @@
BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
- print "1..15\n";
+ print "1..16\n";
}
use strict;
@@ -34,3 +34,9 @@
eval { my $a = opendir FOO, 'lkjqweriuapofukndajsdlfjnvcvn' };
print "not " if $@ =~ /^Can't open/;
print "ok $i\n"; ++$i;
+
+eval { Fatal->import(qw(print)) };
+if ($@ !~ m{Cannot make the non-overridable builtin print fatal}) {
+ print "not ";
+}
+print "ok $i\n"; ++$i;
--- perl/lib/File/Basename.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/lib/File/Basename.pm 2008-04-03 09:03:24.000000000 -0700
@@ -54,7 +54,7 @@
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(fileparse fileparse_set_fstype basename dirname);
-$VERSION = "2.76";
+$VERSION = "2.77";
fileparse_set_fstype($^O);
--- perl/lib/File/Find.pm#2~33162~ 2008-01-31 14:54:31.000000000 -0800
+++ perl/lib/File/Find.pm 2008-04-03 09:03:24.000000000 -0700
@@ -3,7 +3,7 @@
use strict;
use warnings;
use warnings::register;
-our $VERSION = '1.12';
+our $VERSION = '1.13';
require Exporter;
require Cwd;
--- perl/lib/Module/CoreList.pm#3~33615~ 2008-03-31 11:01:17.000000000 -0700
+++ perl/lib/Module/CoreList.pm 2008-04-03 09:03:24.000000000 -0700
@@ -1,7 +1,7 @@
package Module::CoreList;
use strict;
use vars qw/$VERSION %released %patchlevel %version %families/;
-$VERSION = '2.14';
+$VERSION = '2.15';
=head1 NAME
@@ -2007,7 +2007,7 @@
'warnings' => undef, #lib/warnings.pm
'warnings::register' => undef, #lib/warnings/register.pm
'XSLoader' => '0.01', #lib/XSLoader.pm
- },
+ },
5.007003 => {
'AnyDBM_File' => '1.00',
@@ -4462,6 +4462,7 @@
'XSLoader' => '0.03', #lib/XSLoader.pm
'XS::Typemap' => '0.01', #lib/XS/Typemap.pm
},
+
5.008004 => {
'AnyDBM_File' => '1.00', #lib/AnyDBM_File.pm
'attributes' => '0.06', #lib/attributes.pm
@@ -5555,6 +5556,7 @@
'XSLoader' => '0.02', #lib/XSLoader.pm
'XS::Typemap' => '0.01', #lib/XS/Typemap.pm
},
+
5.009002 => {
'AnyDBM_File' => '1.00',
'Attribute::Handlers' => '0.78_01',
@@ -5595,6 +5597,7 @@
'Carp::Heavy' => '1.04',
'Class::ISA' => '0.33',
'Class::Struct' => '0.63',
+ 'Config' => undef,
'Config::Extensions' => '0.01',
'Cwd' => '3.05',
'DB' => '1.0',
@@ -5919,6 +5922,7 @@
'warnings' => '1.04',
'warnings::register' => '1.00',
},
+
5.008007 => {
'AnyDBM_File' => '1.00',
'Attribute::Handlers' => '0.78_01',
@@ -5959,6 +5963,7 @@
'Carp::Heavy' => '1.04',
'Class::ISA' => '0.33',
'Class::Struct' => '0.63',
+ 'Config' => undef,
'Cwd' => '3.05',
'DB' => '1.0',
'DBM_Filter' => '0.01',
@@ -6278,6 +6283,7 @@
'warnings' => '1.03',
'warnings::register' => '1.00',
},
+
5.009003 => {
'AnyDBM_File' => '1.00',
'Archive::Tar' => '1.26_01',
@@ -6348,6 +6354,7 @@
'Compress::Zlib::ParseParameters'=> '2.000_07',
'Compress::Zlib::UncompressPlugin::Identity'=> '2.000_05',
'Compress::Zlib::UncompressPlugin::Inflate'=> '2.000_05',
+ 'Config' => undef,
'Config::Extensions' => '0.01',
'Cwd' => '3.15',
'DB' => '1.01',
@@ -6727,6 +6734,7 @@
'warnings' => '1.05',
'warnings::register' => '1.01',
},
+
5.008008 => {
'AnyDBM_File' => '1.00',
'Attribute::Handlers' => '0.78_02',
@@ -6767,6 +6775,7 @@
'Carp::Heavy' => '1.04',
'Class::ISA' => '0.33',
'Class::Struct' => '0.63',
+ 'Config' => undef,
'Cwd' => '3.12',
'DB' => '1.01',
'DBM_Filter' => '0.01',
@@ -7094,6 +7103,7 @@
'warnings' => '1.05',
'warnings::register' => '1.01',
},
+
5.009004 => {
'AnyDBM_File' => '1.00',
'Archive::Tar' => '1.30_01',
@@ -7143,6 +7153,7 @@
'Class::Struct' => '0.63',
'Compress::Raw::Zlib' => '2.000_13',
'Compress::Zlib' => '2.000_13',
+ 'Config' => undef,
'Config::Extensions' => '0.01',
'Cwd' => '3.19',
'DB' => '1.01',
@@ -7576,6 +7587,7 @@
'warnings' => '1.05',
'warnings::register' => '1.01',
},
+
5.009005 => {
'AnyDBM_File' => '1.00',
'Archive::Extract' => '0.22_01',
@@ -8110,6 +8122,7 @@
'warnings' => '1.06',
'warnings::register' => '1.01',
},
+
5.010000 => {
'AnyDBM_File' => '1.00',
'Archive::Extract' => '0.24',
--- perl/os2/OS2/REXX/REXX.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/os2/OS2/REXX/REXX.pm 2008-04-03 09:03:24.000000000 -0700
@@ -11,7 +11,7 @@
# Other items we are prepared to export if requested
@EXPORT_OK = qw(drop register);
-$VERSION = '1.03';
+$VERSION = '1.04';
# We cannot just put OS2::DLL in @ISA, since some scripts would use
# function interface, not method interface...

View File

@ -0,0 +1,222 @@
--- perl/ext/B/t/concise-xs.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/B/t/concise-xs.t 2008-05-20 05:48:04.000000000 -0700
@@ -177,7 +177,10 @@
},
POSIX => { dflt => 'constant', # all but 252/589
- skip => [qw/ _POSIX_JOB_CONTROL /], # platform varying
+ skip => [qw/ _POSIX_JOB_CONTROL /, # platform varying
+ # Might be XS or imported from Fcntl, depending on your
+ # perl version:
+ qw / S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG /],
perl => [qw/ import croak AUTOLOAD /],
XS => [qw/ write wctomb wcstombs uname tzset tzname
--- perl/ext/POSIX/Makefile.PL#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/POSIX/Makefile.PL 2008-05-20 05:48:04.000000000 -0700
@@ -48,13 +48,11 @@
MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST
PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX
- SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM
+ SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM
SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT
SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF
+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF
TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT
VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK
--- perl/ext/POSIX/POSIX.pm#2~33640~ 2008-04-03 09:03:24.000000000 -0700
+++ perl/ext/POSIX/POSIX.pm 2008-05-20 05:48:04.000000000 -0700
@@ -4,7 +4,7 @@
our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = ();
-our $VERSION = "1.14";
+our $VERSION = "1.15";
use AutoLoader;
@@ -13,7 +13,10 @@
use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
- O_WRONLY);
+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET
+ S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG
+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
# Grandfather old foo_h form to new :foo_h form
my $loaded;
@@ -32,9 +35,9 @@
XSLoader::load 'POSIX', $VERSION;
-my %NON_CONSTS = (map {($_,1)}
- qw(S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG WEXITSTATUS
- WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG));
+my %NON_CONSTS
+ = (map {($_,1)} qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG
+ WTERMSIG));
sub AUTOLOAD {
no strict;
--- perl/ext/POSIX/POSIX.xs#2~33119~ 2008-01-30 02:06:52.000000000 -0800
+++ perl/ext/POSIX/POSIX.xs 2008-05-20 05:48:04.000000000 -0700
@@ -404,7 +404,7 @@
use ExtUtils::Constant qw (constant_types C_constant XS_constant);
my $types = {map {($_, 1)} qw(IV)};
-my @names = (qw(S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG WEXITSTATUS WIFEXITED
+my @names = (qw(WEXITSTATUS WIFEXITED
WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG));
print constant_types(); # macro defs
@@ -416,65 +416,14 @@
*/
switch (len) {
- case 7:
- /* Names all of length 7. */
- /* S_ISBLK S_ISCHR S_ISDIR S_ISREG */
- /* Offset 5 gives the best switch position. */
- switch (name[5]) {
- case 'E':
- if (memEQ(name, "S_ISREG", 7)) {
- /* ^ */
-#ifdef S_ISREG
- *arg_result = S_ISREG(*arg_result);
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'H':
- if (memEQ(name, "S_ISCHR", 7)) {
- /* ^ */
-#ifdef S_ISCHR
- *arg_result = S_ISCHR(*arg_result);
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'I':
- if (memEQ(name, "S_ISDIR", 7)) {
- /* ^ */
-#ifdef S_ISDIR
- *arg_result = S_ISDIR(*arg_result);
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'L':
- if (memEQ(name, "S_ISBLK", 7)) {
- /* ^ */
-#ifdef S_ISBLK
- *arg_result = S_ISBLK(*arg_result);
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- break;
case 8:
/* Names all of length 8. */
- /* S_ISFIFO WSTOPSIG WTERMSIG */
- /* Offset 3 gives the best switch position. */
- switch (name[3]) {
- case 'O':
+ /* WSTOPSIG WTERMSIG */
+ /* Offset 1 gives the best switch position. */
+ switch (name[1]) {
+ case 'S':
if (memEQ(name, "WSTOPSIG", 8)) {
- /* ^ */
+ /* ^ */
#ifdef WSTOPSIG
int i = *arg_result;
*arg_result = WSTOPSIG(WMUNGE(i));
@@ -484,9 +433,9 @@
#endif
}
break;
- case 'R':
+ case 'T':
if (memEQ(name, "WTERMSIG", 8)) {
- /* ^ */
+ /* ^ */
#ifdef WTERMSIG
int i = *arg_result;
*arg_result = WTERMSIG(WMUNGE(i));
@@ -496,17 +445,6 @@
#endif
}
break;
- case 'S':
- if (memEQ(name, "S_ISFIFO", 8)) {
- /* ^ */
-#ifdef S_ISFIFO
- *arg_result = S_ISFIFO(*arg_result);
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
}
break;
case 9:
--- perl/t/lib/proxy_constant_subs.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800
+++ perl/t/lib/proxy_constant_subs.t 2008-05-20 05:48:04.000000000 -0700
@@ -7,20 +7,20 @@
print "1..0 # Skip -- Perl configured without B module\n";
exit 0;
}
- if ($Config::Config{'extensions'} !~ /\bPOSIX\b/) {
- print "1..0 # Skip -- Perl configured without POSIX\n";
+ if ($Config::Config{'extensions'} !~ /\bFcntl\b/) {
+ print "1..0 # Skip -- Perl configured without Fcntl\n";
exit 0;
}
- # errno is a real subroutine, and acts as control
+ # S_IFMT is a real subroutine, and acts as control
# SEEK_SET is a proxy constant subroutine.
- @symbols = qw(errno SEEK_SET);
+ @symbols = qw(S_IFMT SEEK_SET);
}
use strict;
use warnings;
use Test::More tests => 4 * @symbols;
use B qw(svref_2object GVf_IMPORTED_CV);
-use POSIX @symbols;
+use Fcntl @symbols;
# GVf_IMPORTED_CV should not be set on the original, but should be set on the
# imported GV.
@@ -29,7 +29,7 @@
my ($ps, $ms);
{
no strict 'refs';
- $ps = svref_2object(\*{"POSIX::$symbol"});
+ $ps = svref_2object(\*{"Fcntl::$symbol"});
$ms = svref_2object(\*{"::$symbol"});
}
isa_ok($ps, 'B::GV');

View File

@ -0,0 +1,261 @@
--- perl/ext/B/t/concise-xs.t#42~33829~ 2008-05-15 05:01:42.000000000 -0700
+++ perl/ext/B/t/concise-xs.t 2008-05-21 02:18:00.000000000 -0700
@@ -180,7 +180,13 @@
skip => [qw/ _POSIX_JOB_CONTROL /, # platform varying
# Might be XS or imported from Fcntl, depending on your
# perl version:
- qw / S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG /],
+ qw / S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG /,
+ # Might be XS or AUTOLOADed, depending on your perl
+ # version:
+ qw /WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED
+ WSTOPSIG WTERMSIG/,
+ 'int_macro_int', # Removed in POSIX 1.16
+ ],
perl => [qw/ import croak AUTOLOAD /],
XS => [qw/ write wctomb wcstombs uname tzset tzname
@@ -194,7 +200,7 @@
mblen lseek log10 localeconv ldexp lchown
isxdigit isupper isspace ispunct isprint
islower isgraph isdigit iscntrl isalpha
- isalnum int_macro_int getcwd frexp fpathconf
+ isalnum getcwd frexp fpathconf
fmod floor dup2 dup difftime cuserid ctime
ctermid cosh constant close clock ceil
bootstrap atan asin asctime acos access abort
--- perl/ext/POSIX/POSIX.pm#55~33826~ 2008-05-15 04:24:43.000000000 -0700
+++ perl/ext/POSIX/POSIX.pm 2008-05-21 02:18:00.000000000 -0700
@@ -4,7 +4,7 @@
our(@ISA, %EXPORT_TAGS, @EXPORT_OK, @EXPORT, $AUTOLOAD, %SIGRT) = ();
-our $VERSION = "1.15";
+our $VERSION = "1.16";
use AutoLoader;
@@ -35,10 +35,6 @@
XSLoader::load 'POSIX', $VERSION;
-my %NON_CONSTS
- = (map {($_,1)} qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED WSTOPSIG
- WTERMSIG));
-
sub AUTOLOAD {
no strict;
no warnings 'uninitialized';
@@ -50,15 +46,9 @@
local $! = 0;
my $constname = $AUTOLOAD;
$constname =~ s/.*:://;
- if ($NON_CONSTS{$constname}) {
- my ($val, $error) = &int_macro_int($constname, $_[0]);
- croak $error if $error;
- *$AUTOLOAD = sub { &int_macro_int($constname, $_[0]) };
- } else {
- my ($error, $val) = constant($constname);
- croak $error if $error;
- *$AUTOLOAD = sub { $val };
- }
+ my ($error, $val) = constant($constname);
+ croak $error if $error;
+ *$AUTOLOAD = sub { $val };
goto &$AUTOLOAD;
}
--- perl/ext/POSIX/POSIX.xs#151~33826~ 2008-05-15 04:24:43.000000000 -0700
+++ perl/ext/POSIX/POSIX.xs 2008-05-21 02:18:00.000000000 -0700
@@ -394,116 +394,6 @@
#include "const-c.inc"
-/* These were implemented in the old "constant" subroutine. They are actually
- macros that take an integer argument and return an integer result. */
-static int
-int_macro_int (const char *name, STRLEN len, IV *arg_result) {
- /* Initially switch on the length of the name. */
- /* This code has been edited from a "constant" function generated by:
-
-use ExtUtils::Constant qw (constant_types C_constant XS_constant);
-
-my $types = {map {($_, 1)} qw(IV)};
-my @names = (qw(WEXITSTATUS WIFEXITED
- WIFSIGNALED WIFSTOPPED WSTOPSIG WTERMSIG));
-
-print constant_types(); # macro defs
-foreach (C_constant ("POSIX", 'int_macro_int', 'IV', $types, undef, 5, @names) ) {
- print $_, "\n"; # C constant subs
-}
-print "#### XS Section:\n";
-print XS_constant ("POSIX", $types);
- */
-
- switch (len) {
- case 8:
- /* Names all of length 8. */
- /* WSTOPSIG WTERMSIG */
- /* Offset 1 gives the best switch position. */
- switch (name[1]) {
- case 'S':
- if (memEQ(name, "WSTOPSIG", 8)) {
- /* ^ */
-#ifdef WSTOPSIG
- int i = *arg_result;
- *arg_result = WSTOPSIG(WMUNGE(i));
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'T':
- if (memEQ(name, "WTERMSIG", 8)) {
- /* ^ */
-#ifdef WTERMSIG
- int i = *arg_result;
- *arg_result = WTERMSIG(WMUNGE(i));
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- break;
- case 9:
- if (memEQ(name, "WIFEXITED", 9)) {
-#ifdef WIFEXITED
- int i = *arg_result;
- *arg_result = WIFEXITED(WMUNGE(i));
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 10:
- if (memEQ(name, "WIFSTOPPED", 10)) {
-#ifdef WIFSTOPPED
- int i = *arg_result;
- *arg_result = WIFSTOPPED(WMUNGE(i));
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 11:
- /* Names all of length 11. */
- /* WEXITSTATUS WIFSIGNALED */
- /* Offset 1 gives the best switch position. */
- switch (name[1]) {
- case 'E':
- if (memEQ(name, "WEXITSTATUS", 11)) {
- /* ^ */
-#ifdef WEXITSTATUS
- int i = *arg_result;
- *arg_result = WEXITSTATUS(WMUNGE(i));
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- case 'I':
- if (memEQ(name, "WIFSIGNALED", 11)) {
- /* ^ */
-#ifdef WIFSIGNALED
- int i = *arg_result;
- *arg_result = WIFSIGNALED(WMUNGE(i));
- return PERL_constant_ISIV;
-#else
- return PERL_constant_NOTDEF;
-#endif
- }
- break;
- }
- break;
- }
- return PERL_constant_NOTFOUND;
-}
-
static void
restore_sigmask(pTHX_ SV *osset_sv)
{
@@ -756,47 +646,29 @@
INCLUDE: const-xs.inc
-void
-int_macro_int(sv, iv)
- PREINIT:
- dXSTARG;
- STRLEN len;
- int type;
- INPUT:
- SV * sv;
- const char * s = SvPV(sv, len);
- IV iv;
- PPCODE:
- /* Change this to int_macro_int(s, len, &iv, &nv);
- if you need to return both NVs and IVs */
- type = int_macro_int(s, len, &iv);
- /* Return 1 or 2 items. First is error message, or undef if no error.
- Second, if present, is found value */
- switch (type) {
- case PERL_constant_NOTFOUND:
- sv = sv_2mortal(newSVpvf("%s is not a valid POSIX macro", s));
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(sv);
- break;
- case PERL_constant_NOTDEF:
- sv = sv_2mortal(newSVpvf(
- "Your vendor has not defined POSIX macro %s, used", s));
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(sv);
- break;
- case PERL_constant_ISIV:
- PUSHi(iv);
- break;
- default:
- sv = sv_2mortal(newSVpvf(
- "Unexpected return type %d while processing POSIX macro %s, used",
- type, s));
- EXTEND(SP, 1);
- PUSHs(&PL_sv_undef);
- PUSHs(sv);
- }
+int
+WEXITSTATUS(status)
+ int status
+
+int
+WIFEXITED(status)
+ int status
+
+int
+WIFSIGNALED(status)
+ int status
+
+int
+WIFSTOPPED(status)
+ int status
+
+int
+WSTOPSIG(status)
+ int status
+
+int
+WTERMSIG(status)
+ int status
int
isalnum(charstring)

View File

@ -0,0 +1,61 @@
--- perl/ext/POSIX/POSIX.xs#152~33896~ 2008-05-21 02:18:00.000000000 -0700
+++ perl/ext/POSIX/POSIX.xs 2008-05-21 03:31:32.000000000 -0700
@@ -649,26 +649,37 @@
int
WEXITSTATUS(status)
int status
-
-int
-WIFEXITED(status)
- int status
-
-int
-WIFSIGNALED(status)
- int status
-
-int
-WIFSTOPPED(status)
- int status
-
-int
-WSTOPSIG(status)
- int status
-
-int
-WTERMSIG(status)
- int status
+ ALIAS:
+ POSIX::WIFEXITED = 1
+ POSIX::WIFSIGNALED = 2
+ POSIX::WIFSTOPPED = 3
+ POSIX::WSTOPSIG = 4
+ POSIX::WTERMSIG = 5
+ CODE:
+ switch(ix) {
+ case 0:
+ RETVAL = WEXITSTATUS(status);
+ break;
+ case 1:
+ RETVAL = WIFEXITED(status);
+ break;
+ case 2:
+ RETVAL = WIFSIGNALED(status);
+ break;
+ case 3:
+ RETVAL = WIFSTOPPED(status);
+ break;
+ case 4:
+ RETVAL = WSTOPSIG(status);
+ break;
+ case 5:
+ RETVAL = WTERMSIG(status);
+ break;
+ default:
+ Perl_croak(aTHX_ "Illegal alias %d for POSIX::W*", ix);
+ }
+ OUTPUT:
+ RETVAL
int
isalnum(charstring)

View File

@ -7,7 +7,7 @@
Name: perl
Version: %{perl_version}
Release: 50%{?dist}
Release: 51%{?dist}
Epoch: %{perl_epoch}
Summary: Practical Extraction and Report Language
Group: Development/Languages
@ -103,6 +103,24 @@ Patch26: perl-5.10.0-stlocal.patch
# File::Temp 0.20
Patch27: perl-5.10.0-File-Temp-0.20.patch
# Change 33640: More diagnostics for Fatal.pm, version bumps for all non-dual life modules affected
# http://www.nntp.perl.org/group/perl.perl5.changes/2008/04/msg21478.html
Patch28: perl-5.10.0-Change33640.patch
# Change 33881: (33825) Add SEEK_CUR, SEEK_END, SEEK_SET to list of constants POSIX imports from Fcntl
# (33826) Remove POSIX's internal implementation of S_ISBLK, S_ISCHR, S_ISDIR, S_ISFIFO, S_ISREG, pull from Fcntl
# (33829) Fix typo
# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21717.html
Patch29: perl-5.10.0-Change33881.patch
# Change 33896: Eliminate POSIX::int_macro_int, and all the complex AUTOLOAD fandango
# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21732.html
Patch30: perl-5.10.0-Change33896.patch
# Change 33897: Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG
# http://www.nntp.perl.org/group/perl.perl5.changes/2008/05/msg21733.html
Patch31: perl-5.10.0-Change33897.patch
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: tcsh, dos2unix, man, groff
BuildRequires: gdbm-devel, db4-devel, zlib-devel
@ -367,7 +385,7 @@ Summary: Utilities for embedding Perl in C/C++ applications
Group: Development/Languages
License: GPL+ or Artistic
Epoch: 0
Version: 1.27
Version: 1.28
Requires: perl-devel
Requires: perl = %{perl_epoch}:%{perl_version}-%{release}
@ -559,7 +577,7 @@ Summary: Perl core modules indexed by perl versions
Group: Development/Languages
License: GPL+ or Artistic
Epoch: 0
Version: 2.14
Version: 2.15
Requires: perl = %{perl_epoch}:%{perl_version}-%{release}
Requires: perl(version)
@ -837,6 +855,10 @@ upstream tarball from perl.org.
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
#
# Candidates for doc recoding (need case by case review):
@ -1066,6 +1088,10 @@ perl -x patchlevel.h 'Fedora Patch24: Storable fix'
perl -x patchlevel.h 'Fedora Patch25: Update to Pod::Simple 3.07'
perl -x patchlevel.h 'Fedora Patch26: Fix crash when localizing a symtab entry - rt52740'
perl -x patchlevel.h 'Fedora Patch27: Update to File::Temp 0.20'
perl -x patchlevel.h '33640 Integrate Changes 33399, 33621, 33622, 33623, 33624'
perl -x patchlevel.h '33881 Integrate Changes 33825, 33826, 33829'
perl -x patchlevel.h '33896 Eliminate POSIX::int_macro_int, and all the complex AUTOLOAD fandango'
perl -x patchlevel.h '33897 Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG'
%clean
rm -rf $RPM_BUILD_ROOT
@ -1673,6 +1699,10 @@ make test
# Old changelog entries are preserved in CVS.
%changelog
* Fri Nov 28 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 4:5.10.0-51
- to fix Fedora bz 473223, which is really perl bug #54186 (http://rt.perl.org/rt3//Public/Bug/Display.html?id=54186)
we apply Changes 33640, 33881, 33896, 33897
* Mon Nov 24 2008 Marcela Mašláňová <mmaslano@redhat.com> - 4:5.10.0-50
- change summary according to RFC fix summary discussion at fedora-devel :)