in reply to Re^3: win32 thread version
in thread win32 thread version

Craig again - the 822 AS build changes naught :-( I replaced errno with PPM but it was already up to date. Is there anything else I can try? I guess anything is possible on this OS.

Replies are listed 'Best First'.
Re^5: win32 thread version
by syphilis (Archbishop) on Jan 05, 2008 at 05:58 UTC
    It's not normal for 'perl -V' and $Config{osvers} to disagree on the value of 'osvers'. For as long as that discrepancy exists the problem will persist. Do you happen to have more than one version of Config.pm and/or Config_heavy.pl ? I'm wondering if there's one version in perl/site/lib and another version in perl/lib. If there is such a duplication, rename the file that specifies the 'osvers' as 4.0 (so that it can't be found). Other hacks you could try include commenting out that test in Errno.pm.

    But, somewhere along the way, someone has done something that ought not have been done, and that's what's causing this strange breakage. The one solution that will work is to completely remove your entire ActivePerl installation and re-install all over again (either 819 or 822 - won't matter) - but that probably involves some inconvenience for you. We could probably hack up a solution that doesn't involve re-installation, if only we could work out what action it was that caused the breakage in the first place.

    At some stage around build 819 (I think) ActiveState altered the order of the @INC listing and they changed the directory that contains the core modules. I'm wondering whether that is involved in the problem you're seeing ... but it's hard to tell from here :-)

    Cheers,
    Rob
      It's not normal for 'perl -V' and $Config{osvers} to disagree on the value of 'osvers'.

      Look more carefully:

      die "Errno architecture (MSWin32-x86-multi-thread-5.0) does not ma +tch executable architecture ($Config{'archname'}-$Config{'osvers'})";
      Errno architecture (MSWin32-x86-multi-thread-4.0) does not match execu +table architecture (MSWin32-x86-multi-thread-5.0) at c:/Perl/site/lib +/Errno.pm line 9 .
      Platform: osname=MSWin32, osvers=5.0, archname=MSWin32-x86-multi-thread

      They both report osver=5.0. It is the literal part of the string that does not agree, therefore, most likely, the AnonyMonk was not reading c:/Perl/site/lib/Errno.pm (or has made copy/paste errors). There could be a second Errno.pm that is causing the problem, for example.

      - tye        

        Look more carefully

        Heh ... so I was right ... there *is* a rational explanation ;-)

        I also noticed that, in the original post, Errno.pm was reported as being in perl/site/lib - whereas I'm more used to seeing it in perl/lib. But I didn't pursue that aspect - mainly because I'm no longer sure just where ActiveState are placing the core modules.

        Like you, I'm (now) thinking that the duplication may well be with Errno.pm, rather than Config.pm/Config_heavy.pl.

        Cheers,
        Rob
        Hi there, I'm back on the case

        There are two errno.pm files (and cygwin has a third) but

        c:/Perl/site/lib/Errno.pm
        ... "$Config{'archname'}-$Config{'osvers'}" eq "MSWin32-x86-multi-thread-4.0" or die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not ma +tch executable architecture ($Config{'archname'}-$Config{'osvers'})";

        c:/Perl/lib/Errno.pm

        "$Config{'archname'}-$Config{'osvers'}" eq "MSWin32-x86-multi-thread-5.00" or die "Errno architecture (MSWin32-x86-multi-thread-5.00) does not m +atch executable architecture ($Config{'archname'}-$Config{'osvers'})" +;