Skip Menu |

This queue is for tickets about the PadWalker CPAN distribution.

Report information
The Basics
Id: 59354
Status: new
Priority: 0/
Queue: PadWalker

People
Owner: Nobody in particular
Requestors: softdev [...] leandrohermida.com
Cc: bobtfish [...] bobtfish.net
AdminCc:

Bug Information
Severity: Critical
Broken in: 1.9
Fixed in: (no value)



Subject: PadWalker fails compilation with new glibc
When building PadWalker 1.91 on Perl 5.12.1 x86_64 compilation fails and I believe it might have something to do with the newer glibc? I recently upgraded my glibc to 2.12 and rebuilt Perl 5.12.1 the exact same way I had before and everything works fine, all other modules installed no problem. PadWalker installed no problem on my previous Perl 5.12.1 with the previous glibc so that's why I think it might be the culprit? Here is the error from cpan: Show quoted text
cpan> install PadWalker
Running install for module 'PadWalker' Running make for R/RO/ROBIN/PadWalker-1.91.tar.gz Has already been unwrapped into directory /home/hermida/.cpan/build/PadWalker-1.91-YnhN6i CPAN.pm: Going to build R/RO/ROBIN/PadWalker-1.91.tar.gz gcc -c -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.91\" -DXS_VERSION=\"1.91\" -fPIC "-I/home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi/CORE" PadWalker.c PadWalker.xs: In function ‘pads_into_hash’: PadWalker.xs:246: warning: value computed is not used PadWalker.xs: In function ‘get_closed_over’: PadWalker.xs:393: warning: value computed is not used PadWalker.xs:398: warning: value computed is not used PadWalker.xs: In function ‘is_scalar_type’: PadWalker.xs:464: error: duplicate case value PadWalker.xs:463: error: previously used here PadWalker.xs: In function ‘XS_PadWalker_set_closed_over’: PadWalker.xs:554: warning: unused variable ‘restore_type’ make: *** [PadWalker.o] Error 1 ROBIN/PadWalker-1.91.tar.gz /usr/bin/make -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: ROBIN/PadWalker-1.91.tar.gz : make NO Here is my Perl version: Summary of my perl5 (revision 5 version 12 subversion 1) configuration: Platform: osname=linux, osvers=2.6.33.6-147.fc13.x86_64, archname=x86_64-linux-thread-multi uname='linux rubicon.hermidaconsulting.com 2.6.33.6-147.fc13.x86_64 #1 smp tue jul 6 22:32:17 utc 2010 x86_64 x86_64 x86_64 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Accflags=-DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -Aappend:libswanted=-l resolv -Dversion=5.12.1 -Dmyhostname=localhost -Dperladmin=hermida@localhost -Dcc=gcc -Dcf_by=Leandro -Dprefix=/home/hermida/soft/perl/5.12.1 -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=none' 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='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic', cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.4.4 20100630 (Red Hat 4.4.4-10)', 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='gcc', ldflags =' -fstack-protector' libpth=/usr/local/lib64 /lib64 /usr/lib64 libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lresolv perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -lresolv libc=/lib/libc-2.12.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.12' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_TRACK_MEMPOOL PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Built under linux Compiled at Jul 13 2010 23:20:10 %ENV: PERL_HOME="/home/hermida/soft/perl/default" @INC: /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1/x86_64-linux-thread-multi /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1 /home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi /home/hermida/soft/perl/5.12.1/lib/5.12.1 . Here is my architecture: Linux rubicon.hermidaconsulting.com 2.6.33.6-147.fc13.x86_64 #1 SMP Tue Jul 6 22:32:17 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
From: softdev [...] leandrohermida.com
On Wed Jul 14 04:57:43 2010, softdev@leandrohermida.com wrote: Show quoted text
> When building PadWalker 1.91 on Perl 5.12.1 x86_64 compilation fails > and > I believe it might have something to do with the newer glibc? I > recently upgraded my glibc to 2.12 and rebuilt Perl 5.12.1 the exact > same way I had before and everything works fine, all other modules > installed no problem. PadWalker installed no problem on my previous > Perl 5.12.1 with the previous glibc so that's why I think it might be > the culprit? > > Here is the error from cpan: >
> cpan> install PadWalker
> Running install for module 'PadWalker' > Running make for R/RO/ROBIN/PadWalker-1.91.tar.gz > Has already been unwrapped into directory > /home/hermida/.cpan/build/PadWalker-1.91-YnhN6i > > CPAN.pm: Going to build R/RO/ROBIN/PadWalker-1.91.tar.gz > > gcc -c -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV > -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe > -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 > -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 > -mtune=generic -DVERSION=\"1.91\" -DXS_VERSION=\"1.91\" -fPIC > "-I/home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread- > multi/CORE" > PadWalker.c > PadWalker.xs: In function ‘pads_into_hash’: > PadWalker.xs:246: warning: value computed is not used > PadWalker.xs: In function ‘get_closed_over’: > PadWalker.xs:393: warning: value computed is not used > PadWalker.xs:398: warning: value computed is not used > PadWalker.xs: In function ‘is_scalar_type’: > PadWalker.xs:464: error: duplicate case value > PadWalker.xs:463: error: previously used here > PadWalker.xs: In function ‘XS_PadWalker_set_closed_over’: > PadWalker.xs:554: warning: unused variable ‘restore_type’ > make: *** [PadWalker.o] Error 1 > ROBIN/PadWalker-1.91.tar.gz > /usr/bin/make -- NOT OK > Running make test > Can't test without successful make > Running make install > Make had returned bad status, install seems impossible > Failed during this command: > ROBIN/PadWalker-1.91.tar.gz : make NO > > > Here is my Perl version: > > Summary of my perl5 (revision 5 version 12 subversion 1) > configuration: > > Platform: > osname=linux, osvers=2.6.33.6-147.fc13.x86_64, > archname=x86_64-linux-thread-multi > uname='linux rubicon.hermidaconsulting.com 2.6.33.6- > 147.fc13.x86_64 > #1 smp tue jul 6 22:32:17 utc 2010 x86_64 x86_64 x86_64 gnulinux ' > config_args='-des -Doptimize=-O2 -g -pipe -Wall > -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector > --param=ssp-buffer-size=4 -m64 -mtune=generic > -Accflags=-DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm > -Aappend:libswanted=-l resolv -Dversion=5.12.1 -Dmyhostname=localhost > -Dperladmin=hermida@localhost -Dcc=gcc -Dcf_by=Leandro > -Dprefix=/home/hermida/soft/perl/5.12.1 > -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 > /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles > -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog > -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 > -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto > -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto > -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto > -Dinc_version_list=none' > 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='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE > -DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -DDEBUGGING > -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions > -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic', > cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV > -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe > -fstack-protector -I/usr/local/include' > ccversion='', gccversion='4.4.4 20100630 (Red Hat 4.4.4-10)', > 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='gcc', ldflags =' -fstack-protector' > libpth=/usr/local/lib64 /lib64 /usr/lib64 > libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc > -lresolv > perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -lresolv > libc=/lib/libc-2.12.so, so=so, useshrplib=true, libperl=libperl.so > gnulibc_version='2.12' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E >
-Wl,-rpath,/home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi/CORE' Show quoted text
> cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall > -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector > --param=ssp-buffer-size=4 -m64 -mtune=generic' > > > Characteristics of this binary (from libperl): > Compile-time options: DEBUGGING MULTIPLICITY PERL_DONT_CREATE_GVSV > PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP > PERL_TRACK_MEMPOOL PERL_USE_SAFE_PUTENV > USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS > USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF > USE_REENTRANT_API > Built under linux > Compiled at Jul 13 2010 23:20:10 > %ENV: > PERL_HOME="/home/hermida/soft/perl/default" > @INC: > > /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1/x86_64-linux- > thread-multi > /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1 > /home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread- > multi > /home/hermida/soft/perl/5.12.1/lib/5.12.1 > . > > Here is my architecture: > > Linux rubicon.hermidaconsulting.com 2.6.33.6-147.fc13.x86_64 #1 SMP > Tue > Jul 6 22:32:17 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
Hi again, sorry to be exact my newly upgraded glibc is 2.12-3, it was 2.12-2 before and PadWalker built with Perl 5.12.1 against 2.12-2 had no problems. hope this helps
From: softdev [...] leandrohermida.com
In PadWalker.xs it is complaining right here: switch (SvTYPE(sv)) { case SVt_NULL: case SVt_IV: case SVt_RV: case SVt_NV: case SVt_PV: case SVt_PVIV: case SVt_PVNV: case SVt_PVMG: case SVt_PVLV: return 1; case SVt_PVGV: return !isGV_with_GP(sv); default: return 0; } says that SVt_IV and SVt_RV are duplicates. I read somewhere else that both these have been merged in Perl 5.12. But I wonder why is it complaining only now as I've definitely had it compiled before in 5.12.1 with a slightly older glibc.... hmmmm
From: softdev [...] leandrohermida.com
When I do the obvious and remove one or the other from the switch statement then it compiles but you get this weird makefile error after: gcc -c -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.91\" -DXS_VERSION=\"1.91\" -fPIC "-I/home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi/CORE" PadWalker.c PadWalker.xs: In function ‘pads_into_hash’: PadWalker.xs:246: warning: value computed is not used PadWalker.xs: In function ‘get_closed_over’: PadWalker.xs:393: warning: value computed is not used PadWalker.xs:398: warning: value computed is not used PadWalker.xs: In function ‘XS_PadWalker_set_closed_over’: PadWalker.xs:553: warning: unused variable ‘restore_type’ Running Mkbootstrap for PadWalker () chmod 644 PadWalker.bs rm -f blib/arch/auto/PadWalker/PadWalker.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic PadWalker.o -o blib/arch/auto/PadWalker/PadWalker.so \ \ chmod 755 blib/arch/auto/PadWalker/PadWalker.so cp PadWalker.bs blib/arch/auto/PadWalker/PadWalker.bs chmod 644 blib/arch/auto/PadWalker/PadWalker.bs Manifying blib/man3/PadWalker.3pm /home/hermida/soft/perl/5.12.1/bin/perl "-Iblib/arch" "-Iblib/lib" ._Makefile.PL ._Makefile Unrecognized character \x05; marked by <-- HERE after <-- HERE near column 2 at ._Makefile.PL line 1. make: *** [._Makefile] Error 255
From: softdev [...] leandrohermida.com
I've removed all ._* files in the directory and then recompiled with the fixed switch statement and everything works... was it bad that I removed from that switch statement either SVt_IV or SVt_RV? Am I breaking something I don't know of yet? :)
From: softdev [...] leandrohermida.com
Hi there, I've built PadWalker 1.92 on perl 5.12.1 x86_64 everything works fine now: Show quoted text
cpan> install PadWalker
Running install for module 'PadWalker' Running make for R/RO/ROBIN/PadWalker-1.92.tar.gz Fetching with LWP: ftp://mirror.switch.ch/mirror/CPAN/authors/id/R/RO/ROBIN/PadWalker-1.92.tar.gz Fetching with LWP: ftp://mirror.switch.ch/mirror/CPAN/authors/id/R/RO/ROBIN/CHECKSUMS WARNING: This key is not certified with a trusted signature! Primary key fingerprint: 2E66 557A B97C 19C7 91AF 8E20 328D A867 450F 89EC Signature for /home/hermida/.cpan/sources/authors/id/R/RO/ROBIN/CHECKSUMS ok Checksum for /home/hermida/.cpan/sources/authors/id/R/RO/ROBIN/PadWalker-1.92.tar.gz ok Scanning cache /home/hermida/.cpan/build for sizes ............................................................................DONE Package came without SIGNATURE CPAN.pm: Going to build R/RO/ROBIN/PadWalker-1.92.tar.gz Checking if your kit is complete... Looks good Writing Makefile for PadWalker cp PadWalker.pm blib/lib/PadWalker.pm /home/hermida/soft/perl/5.12.1/bin/perl /home/hermida/soft/perl/5.12.1/lib/5.12.1/ExtUtils/xsubpp -typemap /home/hermida/soft/perl/5.12.1/lib/5.12.1/ExtUtils/typemap PadWalker.xs Show quoted text
> PadWalker.xsc && mv PadWalker.xsc PadWalker.c
gcc -c -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.92\" -DXS_VERSION=\"1.92\" -fPIC "-I/home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi/CORE" PadWalker.c PadWalker.xs: In function ‘pads_into_hash’: PadWalker.xs:250: warning: value computed is not used PadWalker.xs: In function ‘get_closed_over’: PadWalker.xs:397: warning: value computed is not used PadWalker.xs:402: warning: value computed is not used PadWalker.xs: In function ‘XS_PadWalker_set_closed_over’: PadWalker.xs:549: warning: unused variable ‘restore_type’ Running Mkbootstrap for PadWalker () chmod 644 PadWalker.bs rm -f blib/arch/auto/PadWalker/PadWalker.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic PadWalker.o -o blib/arch/auto/PadWalker/PadWalker.so \ \ chmod 755 blib/arch/auto/PadWalker/PadWalker.so cp PadWalker.bs blib/arch/auto/PadWalker/PadWalker.bs chmod 644 blib/arch/auto/PadWalker/PadWalker.bs Manifying blib/man3/PadWalker.3pm ROBIN/PadWalker-1.92.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /home/hermida/soft/perl/5.12.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/closure.t ... ok t/dm.t ........ ok t/foo.t ....... ok t/our.t ....... ok t/recurse.t ... ok t/sub.t ....... ok t/test.t ...... ok t/tt.t ........ ok t/var_name.t .. ok All tests successful. Files=9, Tests=78, 1 wallclock secs ( 0.04 usr 0.01 sys + 0.08 cusr 0.03 csys = 0.16 CPU) Result: PASS ROBIN/PadWalker-1.92.tar.gz /usr/bin/make test -- OK Running make install Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1/x86_64-linux-thread-multi/auto/PadWalker/PadWalker.bs Installing /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1/x86_64-linux-thread-multi/auto/PadWalker/PadWalker.so Installing /home/hermida/soft/perl/5.12.1/lib/site_perl/5.12.1/x86_64-linux-thread-multi/PadWalker.pm Installing /home/hermida/soft/perl/5.12.1/man/man3/PadWalker.3pm Appending installation info to /home/hermida/soft/perl/5.12.1/lib/5.12.1/x86_64-linux-thread-multi/perllocal.pod ROBIN/PadWalker-1.92.tar.gz /usr/bin/make install -- OK