# New Ticket Created by Linda Walsh
# Please include the string: [perl #117969]
# in the subject line of all future correspondence about this issue.
# <URL:
https://rt.perl.org:443/rt3/Ticket/Display.html?id=117969 >
This is a bug report for perl from
perl-d...@tlinx.org,
generated with the help of perlbug 1.39 running under perl 5.16.2.
-----------------------------------------------------------------
[Please describe your issue here]
There are sorta 2 problems here with the POSIX module -- they are
related, so figure 1 bug report is sufficient.
I was trying to "use POSIX" and got multiple warnings in my
program:
Prototype mismatch: sub main::CLOCKS_PER_SEC: none vs () at /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi/POSIX.pm line 30.
POSIX::import('POSIX') called at ./
remove-oldver-rpms-in-dir.pl line 786
main::BEGIN() called at ./
remove-oldver-rpms-in-dir.pl line 786
eval {...} called at ./
remove-oldver-rpms-in-dir.pl line 786
Subroutine main::clock redefined at /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi/POSIX.pm line 30.
POSIX::import('POSIX') called at ./
remove-oldver-rpms-in-dir.pl line 786
main::BEGIN() called at ./
remove-oldver-rpms-in-dir.pl line 786
eval {...} called at ./
remove-oldver-rpms-in-dir.pl line 786
Prototype mismatch: sub main::clock () vs none at /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi/POSIX.pm line 30.
POSIX::import('POSIX') called at ./
remove-oldver-rpms-in-dir.pl line 786
main::BEGIN() called at ./
remove-oldver-rpms-in-dir.pl line 786
eval {...} called at ./
remove-oldver-rpms-in-dir.pl line 786
Subroutine main::getcwd redefined at /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi/POSIX.pm line 30.
POSIX::import('POSIX') called at ./
remove-oldver-rpms-in-dir.pl line 786
main::BEGIN() called at ./
remove-oldver-rpms-in-dir.pl line 786
eval {...} called at ./
remove-oldver-rpms-in-dir.pl line 786
I spent an a few hours tracking down why. This
minimal test case shows only 1 warning, but I think it might get the
principle across (if you want the longer program I'll be happy to supply
it).
----
#!/usr/bin/perl -w
use Cwd qw(getcwd cwd abs_path realpath);
{
no warnings; use POSIX; #>& /dev/null!
}
---
Gives:
Subroutine main::getcwd redefined at /tmp/
postest.pl line 4.
That's the first problem -- that there are any warnings.
Second -- is it's not easy to shut them off.
For one reason or another, the
'no warnings' in front of the
'use POSIX' doesn't turn them off.
...(played around some as writing this...)
It seems "-w" on line 1 is overriding "no warnings in *THIS* program.
I say 'THIS', because I have multiple other programs with the same
construct that work as one would expect: (warnings about something are
silenced in the lexical scope).
I'm not sure why it would be different here but that's
the 2nd bug 'no warnings' isn't working here.
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
This perlbug was built using Perl 5.16.2 - Fri Feb 15 01:17:37 UTC 2013
It is being executed now by Perl 5.16.2 - Fri Feb 15 01:12:05 UTC 2013.
Site configuration information for perl 5.16.2:
Configured by abuild at Fri Feb 15 01:12:05 UTC 2013.
Summary of my perl5 (revision 5 version 16 subversion 2) configuration:
Platform:
osname=linux, osvers=3.4.6-2.10-default, archname=x86_64-linux-thread-multi
uname='linux build34 3.4.6-2.10-default #1 smp thu jul 26 09:36:26 utc 2012 (641c197) x86_64 x86_64 x86_64 gnulinux '
config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Dd_dbm_open -Duseshrplib=true -Doptimize=-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe -Accflags=-DPERL_USE_SAFE_PUTENV -Dotherlibdirs=/usr/lib/perl5/site_perl'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector'
ccversion='', gccversion='4.7.2 20130108 [gcc-4_7-branch revision 195012]', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib64 -fstack-protector'
libpth=/lib64 /usr/lib64 /usr/local/lib64
libs=-lm -ldl -lcrypt -lpthread
perllibs=-lm -ldl -lcrypt -lpthread
libc=/lib64/
libc-2.17.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.17'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.16.2/x86_64-linux-thread-multi/CORE'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64 -fstack-protector'
Locally applied patches:
---
@INC for perl 5.16.2:
/home/law/bin/lib
/usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.16.2
/usr/lib/perl5/vendor_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.16.2
/usr/lib/perl5/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/5.16.2
/usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.16.2
/usr/lib/perl5/site_perl
.
---
Environment for perl 5.16.2:
HOME=/home/law
LANG=en_US.UTF-8
LANGUAGE (unset)
LC_COLLATE=C
LC_CTYPE=en_US.UTF-8
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=.:/home/law/bin/lib:/sbin:/usr/local/sbin:/home/law/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin:/opt/dell/srvadmin/bin:/usr/sbin:/etc/local/func_lib:/home/law/lib
PERL5OPT=-CSA -I/home/law/bin/lib
PERL_BADLANG (unset)
SHELL=/bin/bash