http://www.perlmonks.org?node_id=1010923


in reply to Re^2: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
in thread Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??

I'm glad that I could be of help. As a last-ditch effort, try running this:
#!/usr/bin/perl BEGIN { $| = 1; $^W = 1; $ENV{'TEST_POD'} = 0; $ENV{'TEST_POD_COVERAGE'} = 0; } use strict; use warnings; use CPAN; CPAN::Shell->install(qw( Exporter Carp Pod::Man File::Spec Data::Dumper Test::Harness Test::More Regexp::Common Data::Section::Simple Locale::US HTTP::Headers Params::Coerce URI Test::Output List::Util lib SUPER IO::Handle Test::LeakTrace threads threads::shared MRO::Compat File::Path File::Spec File::Slurp autodie Devel::PPPort ExtUtils::ParseXS XSLoader Any::Moose MouseX::Types ExtUtils::Installed Module::Build File::Temp Sub::Uplevel constant Test::Exception Test Text::Wrap Pod::Escapes Pod::Simple Test::Pod Tree::DAG_Node Test::Warn Sub::Installer Test::Perl::Critic Test::Pod::Coverage Sub::Install Params::Util Data::OptList base ExtUtils::CBuilder Sub::Exporter Sub::Exporter::Progressive Storable Const::Fast Module::Runtime Test::Fatal Try::Tiny Test::Requires Module::Implementation B::Hooks::EndOfScope ExtUtils::Depends B::Hooks::OP::Annotation IO::File parent B::Hooks::OP::Check Devel::Pragma Sub::Name Devel::Declare::MethodInstaller::Simple Data::Alias List::MoreUtils Task::Weaken Class::Inspector Hook::LexWrap Test::SubCalls Digest::base Digest::MD5 Clone Test::Tester Test::NoWarnings Test::Object IO::String File::Remove PPI Method::Signatures));
  • Comment on Re^3: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
  • Download Code

Replies are listed 'Best First'.
Re^4: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
by mascip (Pilgrim) on Dec 30, 2012 at 14:37 UTC

    Apparently it's going to take a while, i'll let it run while i'm out this afternoon, will tell you how it went later.

      Oh it's going to take ages... i have a problem with CPAN, described here.

      It will take ages but it's worth a try. If anyone has an idea, from my answer to syphilis' post, it might speed things up.

      Going out, i'll be back in a few hours.

Re^4: Investigating Devel::Pragma's broken install on Cygwin, need help to fix it. ExtUtils::Depends possibly guilty??
by mascip (Pilgrim) on Dec 31, 2012 at 00:02 UTC

    It's really taking ages because of my CPAN problem: every 5 modules or so it stops; and i usually only realize a while later.
    As a consequence, i have reinstalled about half the modules. Will finish tomorrow.

    By the way, how did you obtain this list of dependencies?

      I researched each prerequisite myself because I was having problems with the install on my Linux system. I'll be putting it on CPAN soon...

        We're getting somewhere !
        * EDIT: In fact we broke something (see later)... but it might help us understand the issue, as it has something to do with missing files and Cygwin.
        Devel::Pragma is now "make"ing, with a different bug. After running the Checksum (which was ok), it says :

        Running make for C/CH/CHOCOLATE/Devel-Pragma-0.54.tar.gz Checksum for /cygdrive/c/Dropbox/.cpan/sources/authors/id/C/CH/CHOCOLA +TE/Devel-Pragma-0.54.tar.gz ok 1 [main] perl 532 child_info_fork::abort: C:\cygwin\lib\perl5\5. +14\i686-cygwin-threads-64int\auto\Storable\Storable.dll: Loaded to di +fferent address: parent(0x62730000) != child(0xF40000) 2 [main] perl 952 child_info_fork::abort: C:\cygwin\lib\perl5\5. +14\i686-cygwin-threads-64int\auto\Storable\Storable.dll: Loaded to di +fferent address: parent(0x62730000) != child(0xF40000) 2 [main] perl 5212 child_info_fork::abort: C:\cygwin\lib\perl5\5 +.14\i686-cygwin-threads-64int\auto\Storable\Storable.dll: Loaded to d +ifferent address: parent(0x62730000) != child(0xF40000) 1 [main] perl 4156 child_info_fork::abort: C:\cygwin\lib\perl5\5 +.14\i686-cygwin-threads-64int\auto\Storable\Storable.dll: Loaded to d +ifferent address: parent(0x62730000) != child(0xF40000)
        There are now more than 200 similar lines. And the time between two of these lines must be taking longer and longer, as now it takes more than 5 minutes; and i certainly didn't wait for a total of 1000 minutes.

        Additional info: Storable said, during its installation

        CPAN.pm: Building A/AM/AMS/Storable-2.39.tar.gz Checking if your kit is complete... Warning: the following files are missing in your kit: Storable.bs Storable.c Storable.o Please inform the author. Writing Makefile for Storable Writing MYMETA.yml and MYMETA.json You appear to have a perl configured to use 64 bit integers in its sca +lar variables. If you have existing data written with an earlier version +of Storable which this version of Storable refuses to load with a Byte order is not compatible error, then please read the section "64 bit data in perl 5.6.0 and 5.6 +.1" in the Storable documentation for instructions on how to read your dat +a. (You can find the documentation at the end of Storable.pm in POD forma +t) cp Storable.pm blib/lib/Storable.pm /usr/bin/perl.exe /usr/lib/perl5/site_perl/5.14/ExtUtils/xsubpp -type +map /usr/lib/perl5/5.14/ExtUtils/typemap Storable.xs > Storable.xsc +&& mv Storable.xsc Storable.c gcc-4 -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g -fno-strict-al +iasing -pipe -fstack-protector -DUSEIMPORTLIB -O3 -DVERSION=\"2.39 +\" -DXS_VERSION=\"2.39\" "-I/usr/lib/perl5/5.14/i686-cygwin-threads +-64int/CORE" Storable.c Running Mkbootstrap for Storable () chmod 644 Storable.bs rm -f blib/arch/auto/Storable/Storable.dll g++-4 --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -W +l,--image-base=0x62730000 -L/usr/local/lib -fstack-protector Storable +.o -o blib/arch/auto/Storable/Storable.dll \ /usr/lib/perl5/5.14/i686-cygwin-threads-64int/CORE/cygperl5_14.dll + \ chmod 755 blib/arch/auto/Storable/Storable.dll cp Storable.bs blib/arch/auto/Storable/Storable.bs chmod 644 blib/arch/auto/Storable/Storable.bs Manifying blib/man3/Storable.3pm AMS/Storable-2.39.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl.exe "-MExtUtils::Command::MM" "-e" "te +st_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/attach_errors.t ..... ok t/attach_singleton.t .. ok t/blessed.t ........... ok t/canonical.t ......... ok t/circular_hook.t ..... ok t/code.t .............. ok t/compat01.t .......... skipped: Test only works for 32 bit little-end +ing machines t/compat06.t .......... ok t/croak.t ............. ok t/dclone.t ............ ok t/downgrade.t ......... ok t/file_magic.t ........ ok t/forgive.t ........... ok t/freeze.t ............ ok t/integer.t ........... ok t/interwork56.t ....... ok t/just_plain_nasty.t .. ok t/lock.t .............. ok t/malice.t ............ ok t/overload.t .......... ok t/recurse.t ........... ok t/restrict.t .......... ok t/retrieve.t .......... ok t/robust.t ............ ok t/sig_die.t ........... ok t/store.t ............. ok t/threads.t ........... ok t/tied.t .............. ok t/tied_hook.t ......... ok t/tied_items.t ........ ok t/utf8.t .............. ok t/utf8hash.t .......... ok t/weak.t .............. ok All tests successful. Files=33, Tests=2611, 46 wallclock secs ( 1.53 usr 1.19 sys + 13.79 c +usr 24.73 csys = 41.24 CPU) Result: PASS AMS/Storable-2.39.tar.gz /usr/bin/make test -- OK Running make install Files found in blib/arch: installing files in blib/lib into architectu +re dependent library tree Installing /usr/lib/perl5/5.14/i686-cygwin-threads-64int/auto/Storable +/Storable.bs Installing /usr/lib/perl5/5.14/i686-cygwin-threads-64int/auto/Storable +/Storable.dll Installing /usr/lib/perl5/5.14/i686-cygwin-threads-64int/Storable.pm Installing /usr/share/man/man3/Storable.3pm Appending installation info to /usr/lib/perl5/5.14/i686-cygwin-threads +-64int/perllocal.pod AMS/Storable-2.39.tar.gz /usr/bin/make install -- OK

        Then i tried to download the Storable tar.gz archive, and did this:

        $ perl Makefile.PL --xs Checking if your kit is complete... Warning: the following files are missing in your kit: Storable.bs Storable.c Storable.o Please inform the author. Writing Makefile for Storable Writing MYMETA.yml and MYMETA.json You appear to have a perl configured to use 64 bit integers in its sca +lar variables. If you have existing data written with an earlier version +of Storable which this version of Storable refuses to load with a Byte order is not compatible error, then please read the section "64 bit data in perl 5.6.0 and 5.6 +.1" in the Storable documentation for instructions on how to read your dat +a. (You can find the documentation at the end of Storable.pm in POD forma +t)
        I can confirm that these files are not in the tar.gz archive.

        Then i tried this (same without --xs) :

        $ perl Makefile.PL Writing Makefile for Storable Writing MYMETA.yml and MYMETA.json You appear to have a perl configured to use 64 bit integers in its sca +lar variables. If you have existing data written with an earlier version +of Storable which this version of Storable refuses to load with a Byte order is not compatible error, then please read the section "64 bit data in perl 5.6.0 and 5.6 +.1" in the Storable documentation for instructions on how to read your dat +a. (You can find the documentation at the end of Storable.pm in POD forma +t)

        OUCH !
        It's doing the same with other modules now !
        Trying to install L:

        $ cpan L CPAN: Storable loaded ok (v2.39) Reading '/cygdrive/c/Dropbox/.cpan/Metadata' Database was generated on Sun, 30 Dec 2012 01:21:09 GMT Running install for module 'L' Running make for S/SO/SONGMU/L-0.01.tar.gz CPAN: LWP::UserAgent loaded ok (v6.04) CPAN: Time::HiRes loaded ok (v1.972101) Fetching with LWP: http://cpan.singletasker.co.uk/authors/id/S/SO/SONGMU/L-0.01.tar.gz CPAN: YAML loaded ok (v0.84) CPAN: Digest::SHA loaded ok (v5.71) Fetching with LWP: http://cpan.singletasker.co.uk/authors/id/S/SO/SONGMU/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.033) Checksum for /cygdrive/c/Dropbox/.cpan/sources/authors/id/S/SO/SONGMU/ +L-0.01.tar.gz ok 1 [main] perl 4564 child_info_fork::abort: unable to remap IO.dl +l to same address as parent (00F30000) - try running rebaseall 2 [main] perl 4176 child_info_fork::abort: unable to remap Socke +t.dll to same address as parent (00F40000) - try running rebaseall 1 [main] perl 612 child_info_fork::abort: unable to remap IO.dll + to same address as parent (00F30000) - try running rebaseall 2 [main] perl 536 child_info_fork::abort: unable to remap Socket +.dll to same address as parent (00F40000) - try running rebaseall
        Trying to install Util::Any:
        $ cpan Util::Any CPAN: Storable loaded ok (v2.39) Reading '/cygdrive/c/Dropbox/.cpan/Metadata' Database was generated on Sun, 30 Dec 2012 01:21:09 GMT Running install for module 'Util::Any' Running make for K/KT/KTAT/Util-Any-0.22.tar.gz CPAN: LWP::UserAgent loaded ok (v6.04) CPAN: Time::HiRes loaded ok (v1.972101) Fetching with LWP: http://cpan.singletasker.co.uk/authors/id/K/KT/KTAT/Util-Any-0.22.tar. +gz CPAN: YAML loaded ok (v0.84) CPAN: Digest::SHA loaded ok (v5.71) Fetching with LWP: http://cpan.singletasker.co.uk/authors/id/K/KT/KTAT/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.033) Checksum for /cygdrive/c/Dropbox/.cpan/sources/authors/id/K/KT/KTAT/Ut +il-Any-0.22.tar.gz ok 3 [main] perl 7876 child_info_fork::abort: unable to remap IO.dl +l to same address as parent (00F30000) - try running rebaseall 1 [main] perl 8104 child_info_fork::abort: unable to remap Socke +t.dll to same address as parent (00F40000) - try running rebaseall

        We have definitly broken something: Storable never gave me this problem in the past.
        That is extremely annoying: i cannot install any module at all until Storable is fixed.

        I am definitely sure that i am running a Windows XP 32 bit, how can Storable suddenly think the opposite?

        And what is the real problem: the fact that Storable doesn't find some files:

        Storable.bs Storable.c Storable.o
        Or the fact that it says something about my 64bit-ness?
        And is it hidden by the fact that it didn't run the t/compat01.t test? (skipped: Test only works for 32 bit little-ending machines)

        ...more research...

        I found this, it could be worth a try:
        http://perldoc.perl.org/perlcygwin.html
        says

        Configure-time Options for Perl on Cygwin The INSTALL document describes several Configure-time options. Some of + these will work with Cygwin, others are not yet possible. Also, some + of these are experimental. You can either select an option when Conf +igure prompts you or you can define (undefine) symbols on the command + line. \[...\] -Uuse64bitint By default Perl uses 64 bit integers. If you want to use smaller 32 bi +t integers, define this symbol. -Duselargefiles Cygwin uses 64-bit integers for internal size and position calculation +s, this will be correctly detected and defined by Configure.

        Here is my current Perl configuration:

        $ perl -V Summary of my perl5 (revision 5 version 14 subversion 2) configuration +: Platform: osname=cygwin, osvers=1.7.15(0.26053), archname=cygwin-thread-mult +i-64int uname='cygwin_nt-5.1 winxp 1.7.15(0.26053) 2012-05-09 10:25 i686 c +ygwin ' config_args='-de -Dlibperl=cygperl5_14.dll -Dcc=gcc-4 -Dld=g++-4 - +Darchname=i686-cygwin-threads-64int -Dmksymlinks -Dusethreads -Accfla +gs=-g' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und +ef use64bitint=define, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc-4', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g +-fno-strict-aliasing -pipe -fstack-protector', optimize='-O3', cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g -fno-strict- +aliasing -pipe -fstack-protector' ccversion='', gccversion='4.5.3', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='of +f_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++-4', ldflags =' -Wl,--enable-auto-import -Wl,--export-all-s +ymbols -Wl,--enable-auto-image-base -fstack-protector -L/usr/local/li +b' libpth=/usr/local/lib /usr/lib /lib libs=-lgdbm -ldb -ldl -lcrypt -lgdbm_compat perllibs=-ldl -lcrypt libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_14 +.dll gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' --shared -Wl,--enable-auto-import -Wl +,--export-all-symbols -Wl,--enable-auto-image-base -L/usr/local/lib - +fstack-protector' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_PRESERVE_IVUV PERL_USE_SAFE_PUTENV USE_64_BIT_INT USE_ITHREA +DS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: Bug#55162 File::Spec::case_tolerant performance CYG07 $vendorarch/auto/.rebase CYG15 static Win32CORE CYG17 cyg-1.7 paths-utf8 0c612ce82 Fix building static extensions on cygwin, -UUSEIMPOR +TLIB 1bac5ecc1 Fix 64-bit threading sv.c: S_anonymise_cv_maybe Cygwin::sync_winenv added Built under cygwin Compiled at Jul 12 2012 14:17:21 %ENV: PERL5LIB="cygdrive/c/Dropbox/DOCS/WORK/PATH/my_PERL_SHARED_MODULES +; cygdrive/c/Dropbox/DOCS/WORK/PATH/Scripts_Perl; C:/Cygwin/lib/perl +5/site_perl/5.14/i686-cygwin-threads-64int/" PERL_JSON_BACKEND="JSON::XS" PERL_YAML_BACKEND="YAML" @INC: cygdrive/c/Dropbox/DOCS/WORK/PATH/my_PERL_SHARED_MODULES; cygdrive +/c/Dropbox/DOCS/WORK/PATH/Scripts_Perl; C /Cygwin/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int/ /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 .

        The interesting bit for me is use64bitint=define.
        AS a reminder, perl's documentation says:

        -Uuse64bitint By default Perl uses 64 bit integers. If you want to use smaller 32 bi +t integers, define this symbol.
        Which would mean that i'm using this at the moment: i am using 32 bit integers, rather than 64bit ones.
        But Storable doesn't seem to see this, as it says:
        You appear to have a perl configured to use 64 bit integers in its sca +lar variables. If you have existing data written with an earlier version +of Storable which this version of Storable refuses to load with a Byte order is not compatible error, then please read the section "64 bit data in perl 5.6.0 and 5.6 +.1" in the Storable documentation for instructions on how to read your dat +a.
        So i don't really know what to do with this. I seem to be configured correctly... I guess i could always try to change the configuration and see what happens. There's only 4 possible combinations, with there two configuration parameters.

        I found Perl::Configure. I could try to use it tomorrow...unless if someone has an other idea - maybe something to related to these missing files?

        I'm too tired now, and sleeping will give a chance to people to tell me: "don't do this, you'll break everything!" Or to come up with ideas.

        But i won't let go: i want Method::Signatures's extra sweet sugar.