develooper Front page | perl.perl5.porters | Postings from January 2011

[perl #82912] upgrade broke XS modules

eflorac @ free . fr
January 27, 2011 14:26
[perl #82912] upgrade broke XS modules
Message ID:
# New Ticket Created by 
# Please include the string:  [perl #82912]
# in the subject line of all future correspondence about this issue. 
# <URL: >

This is a bug report for perl from,
generated with the help of perlbug 1.39 running under perl 5.12.3.

[Please describe your issue here]

I upgraded from perl 5.12.1 to 5.12.3. I didn't use the default compilation settings. After installation, "cpan" didn't work anymore, failing to load DBI modules. After a short investigation I've realised that the modified compilation options (going from a non-threaded to threaded perl) broke all existing XS modules. 
I solved the problem by entirely removing the /usr/local/lib/perl5/site_perl/5.12.1/ directory, because I had no easy way to know which modules would work and which wouldn't.
What would be great would be a quick check (for my $mod in (@modules) { eval {  require $mod };  }) at installation (make install) to warn of this problem and propose to move away the faulty modules. Another non exclusive possibility would be at Configure to compare the options used with those for the current perl installation and warn of potential incompatibilities. Last, at least test script (make test) could warn of the problem.

[Please do not change anything below this line]
Site configuration information for perl 5.12.3:

Configured by emmanuel at Wed Jan 26 11:52:29 CET 2011.

Summary of my perl5 (revision 5 version 12 subversion 3) configuration:
    osname=linux, osvers=, archname=i686-linux-thread-multi
    uname='linux harpe #1 mon dec 7 16:34:06 cst 2009 i686 amd athlon(tm) 64 processor 3000+ authenticamd gnulinux '
    config_args='-ed -Dusethreads'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.3.3', 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='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=/lib/, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'

Locally applied patches:

@INC for perl 5.12.3:

Environment for perl 5.12.3:
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PERL_BADLANG (unset)
    SHELL=/bin/bash Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About