Closed GoogleCodeExporter closed 9 years ago
What is the line of code in question? There's no such compile error on my Perl
version.
Original comment by baron.schwartz
on 17 Sep 2008 at 1:28
It says:
open my $file, $fspec or die $OS_ERROR;
perl -V returns:
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=linux, osvers=2.4.21-37.0.1.el.centos3.xfs.0smp,
archname=i386-linux-thread-multi
uname='linux sillage.bis.pasteur.fr 2.4.21-37.0.1.el.centos3.xfs.0smp #1 smp fri
jan 20 10:58:28 cet 2006 i686 athlon i386 gnulinux '
config_args='-des -Doptimize=-O2 -g -pipe -march=i386 -mcpu=i686
-Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc.
-Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr
-Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 -Duseshrplib -Dusethreads
-Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm
-Di_gdbm
-Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl
-Ubincompat5005
-Uversiononly -Dpager=/usr/bin/less -isr'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm',
optimize='-O2 -g -pipe -march=i386 -mcpu=i686',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING
-fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-54)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil
perllibs=-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil
libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.3.2'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic
-Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
Locally applied patches:
MAINT18379
Built under linux
Compiled at Jun 10 2006 13:23:46
%ENV:
PERL5LIB="/opt/mailcontrol/modules"
@INC:
/opt/mailcontrol/modules
/usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5.8.0
.
Original comment by mar...@gmail.com
on 17 Sep 2008 at 3:58
Original comment by baron.schwartz
on 1 Oct 2008 at 3:14
We need to replace all instances of
open my $file, $fspec or die $OS_ERROR;
with this code that the Dog book says will even be compatible with Perl 5.6
(although
I doubt that the rest of the code will be):
use Symbol qw( gensym );
my $file = gensym();
open($file, $fspec) or die $OS_ERROR;
I'm not looking at the code in question but I recall that there is some reason
it
uses the two-argument form of open(), which has its shortcomings. Of course,
when
possible the three-argument form should be used.
Original comment by baron.schwartz
on 4 Oct 2008 at 11:23
Original comment by dan...@percona.com
on 30 Nov 2008 at 5:03
I'd like to get this done, if it's really an issue, this month. This seems
like a
one-off issue. The reporter was using Perl 5.8 and since 5.8 is pretty
standard, I'd
imagine the real issue was something else because 5.8 handles open() the way
that we
typically call it.
Original comment by dan...@percona.com
on 3 Jun 2009 at 7:33
Original comment by baron.schwartz
on 7 Jun 2009 at 8:38
Original comment by dan...@percona.com
on 11 Jun 2009 at 8:39
We've decided to close this issue. It seems to be a one-off case, reported
once and
never reported by anyone else every again. But if I'm wrong, please correct me
and
I'll be happy to re-examine it if it can be reproduced.
Original comment by dan...@percona.com
on 10 Jul 2009 at 1:45
Original issue reported on code.google.com by
mar...@gmail.com
on 17 Sep 2008 at 10:27