Change 33825 by [EMAIL PROTECTED] on 2008/05/15 10:10:27 It transpirse that POSIX.xs also duplicated several constants defined by Fcntl but only conditionally exported by Fcntl. The most obvious were SEEK_CUR, SEEK_END and SEEK_SET, as reported in bug #54186. So add them to the list of constants that POSIX imports from Fcntl.
Affected files ... ... //depot/perl/ext/POSIX/Makefile.PL#32 edit ... //depot/perl/ext/POSIX/POSIX.pm#54 edit ... //depot/perl/t/lib/proxy_constant_subs.t#2 edit Differences ... ==== //depot/perl/ext/POSIX/Makefile.PL#32 (text) ==== Index: perl/ext/POSIX/Makefile.PL --- perl/ext/POSIX/Makefile.PL#31~32539~ 2007-11-28 12:27:55.000000000 -0800 +++ perl/ext/POSIX/Makefile.PL 2008-05-15 03:10:27.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 ==== //depot/perl/ext/POSIX/POSIX.pm#54 (text) ==== Index: perl/ext/POSIX/POSIX.pm --- perl/ext/POSIX/POSIX.pm#53~33621~ 2008-03-31 15:25:19.000000000 -0700 +++ perl/ext/POSIX/POSIX.pm 2008-05-15 03:10:27.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,9 @@ 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_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; ==== //depot/perl/t/lib/proxy_constant_subs.t#2 (text) ==== Index: perl/t/lib/proxy_constant_subs.t --- perl/t/lib/proxy_constant_subs.t#1~29566~ 2006-12-16 15:03:42.000000000 -0800 +++ perl/t/lib/proxy_constant_subs.t 2008-05-15 03:10:27.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'); End of Patch.