in reply to Re^4: Help building Devel::Caller
in thread Help building Devel::Caller

Hi L~R,

I think bart is correct in pointing the finger of accusation at 'lddlflags'. On my MinGW-built perl:

D:\>perl -V:lddlflags
lddlflags='-mdll -s -L"D:\perl58_M\5.8.8\lib\CORE" -L"D:\MinGW\lib"';

On ActiveState build 817:

E:\>perl -V:lddlflags
Set up gcc environment - 3.4.4 (mingw special)
lddlflags='-mdll';

Presumably this affects only M::B because M::B is the only module that needs to have the lddlflags specify the path to perl58.lib ... at least it's the only module you've come across where this has been the case. ActiveState should fix the lddlflags value to include the perl/lib/CORE searchpath when MinGW is involved.

I don't think the MinGW/ActivePerl interface is quite as seamless as the hype would have you believe. Last time I tried, neither PAR nor Inline::CPP would build. If you want to use MinGW with ActivePerl, I think you'll get more milage with ExtUtils::FakeConfig - which does set lddlflags (and others) appropriately, though I think there were a couple of entries in Config_m.pm (created by EU::FC) that needed amendment - I can provide details of that if requested. The drawback to EU::FC is that sometimes (eg building Inline::CPP or building PDL) you need to set the environment variable perl5opt to MConfig_m. Other times you may need that variable unset.

According to http://ppm.activestate.com/BuildStatus/5.8-windows/windows-5.8/Devel-Caller-0.11.txt the ppm for Devel-Caller-0.11 did not build because the pre-requisite Module::Build is not installed.

Oh ... and I now gather that failing tests marked as 'TODO' are allowed to fail ... didn't realise that when I first posted :-)

Cheers,
Rob

Replies are listed 'Best First'.
Re^6: Help building Devel::Caller
by Limbic~Region (Chancellor) on Aug 03, 2006 at 12:15 UTC
    Rob,
    Well, the ActiveState and MinGW integration is a work in progress. I emailed Jan Dubois yesterday after bart and Intrepid tracked down the bug and a patch to ActivePerl has already been made and will be reflected in build 818. Here is the patch Jan applied:
    @@ -112,12 +112,16 @@ _override("_o", ".o"); _override("obj_ext", ".o"); _override("optimize", "-O2"); - _override("lddlflags", "-mdll"); _override("i64type", "long long"); _override("u64type", "unsigned long long"); _override("quadtype", "long long"); _override("uquadtype", "unsigned long long"); _override("d_casti32", "define"); + + # Extract all library paths from lddlflags + my @libpaths = map "-L$_", map /^-libpath:(.+)/, + _orig_conf("lddlflags") =~ /(?=\S)(?>[^"\s]+|"[^"]*")+/ +g; + _override("lddlflags", join(" ", "-mdll", @libpaths)); } } elsif ($^O eq 'darwin') {

    So with responsiveness like that, I have hopes for ActivePerl and MinGW. I am frustrated by the fact that I can't remember what other customization I have had problems with in the past and just fixed my local copy - I should have emailed that too.

    Cheers - L~R