in reply to Visual C 9.0 and dll hell

Take a look at Re^3: Please help, need to fix the Window vista dll manifest issue and follow the "third" link, and scan down for the (currently) third reply. It details a one-line patch for ExtUtils::MM_Win32.pm that (apparently) fixes this problem.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^2: Visual C 9.0 and dll hell
by wherrera (Novice) on May 10, 2008 at 04:49 UTC
    Thanks! That did _not_ fix the problem, but pointed me via the code in those lines (the patch is already there in my version) to where the current version of MakeMaker reads the compiler version from the file "config_heavy.pl", which was where I had to change things. That gets the mt program to run, properly I hope...thanks!
      To (perhaps) answer the question you raised in your initial post to this thread, the following patch to lib/ActivePerl/Config.pm would (afaict) take care of the whole thing for you:
      --- Config.pm_orig Mon Jul 23 13:49:44 2007 +++ Config.pm Sat May 10 19:33:34 2008 @@ -81,7 +81,11 @@ } if ($COMPILER_ENV{$key} && !$compiler_env_initialized++) { - if ($^O eq "MSWin32" && (_gcc_requested() || !find_prog(_orig_con +f("cc")))) { + if ($^O eq "MSWin32" && !_gcc_requested() && find_prog(_orig_c +onf("cc"))) { + my @ccversion = split / /, `cl 2>&1`; + _override("ccversion", $ccversion[7]); + } + elsif ($^O eq "MSWin32" && (_gcc_requested() || !find_prog(_orig_ +conf("cc")))) { if (my $gcc = find_prog("gcc")) { # assume MinGW or similar is available $gcc =~ s,\\,/,g;
      I'm not sure that's the best way to determine the compiler version, and I'm not even sure that my logic is correct anyway, but it doesn't seem to break anything for me, and it should override the existing $Config{ccversion} with the appropriate value.

      I'll submit it as a bug report to ActiveState. They'll probably want to change my code (if they decide to implement the fix), but at least it demonstrates that only a minor amendment to lib/ActivePerl/Config.pm is necessary in order to have the whole thing dealt with automatically.

      Cheers,
      Rob
      Update: As of ActiveState build 1003 lib/ActivePerl/Config.pm has been patched to fix the problem that was the basis of the thread. (Unsurprisingly, the patch applied was not exactly the same as the one provided above.)