Great scott, another reply! ;-)

On Jan 17, 2008 our monk Rob told me (in #662812):

I don't have the expat library in a place where it's found by default, so I ran your XML-Parser distro by starting with perl Makefile.PL INC="-IC:/_32/msys/1.0/local/include" LIBS="-LC:/_32/msys/1.0/local/lib -lexpat" and that all works fine on Strawberry Perl (5.10). But doing the same on my own MinGW-built perl 5.10, all of the tests fail (during 'dmake test') because Can't find 'boot_XML__Parser__Expat' symbol in C:\_32\comp\XML-Parser-2.36_04\blib\arch/auto/XML/Parser/Expat/Expat.dll.

I don't know why such a discrepancy arises. The CPAN version of XML-Parser-2.36 builds fine on *both* of those aforementioned builds of perl. I use different versions of dmake when building modules for those 2 builds of perl - but I doubt that's the reason. More likely some difference in EU::MM, I suspect.

I suspect you're right about that.

I can say this much about the failure: it is due to the way the DLL was made, i.e. the way gcc was invoked. I know this because it was the last flaw I found when I was writing the build support changes; it is the lack of the flag --export-all-symbols that causes this. The DLL that gets built (blib/arch/auto/XML/Parser/Expat/Expat.dll) doesn't have any symbols from the object file built by the previous command because they are not marked for export in any way.

As to what could be interfering on your home-built Perl-5.10 installation, I don't know, but I would be happy as a barnacle by the bay if at some point we could figure it out, since I want this strategy to be as robust as possible.

It could help if you might be able to confirm the complete command line that is being run in the linking step that creates the DLL, so that we can confirm my diagnosis about --export-all-symbols, by running the build attempt again and capturing the console output.

Just other one point to get clarified right now (I'm going to separately mention your wise point about not removing the dlltool stuff if its working consistently in another note): you mentioned that "the CPAN release of XML-Parser-2.36 builds fine on both machines"; but it cannot be automatically built and installed using cpan, eh (the only way to build-test-install it is with the manual addition of commandline arguments)?

Gracias!


In reply to Re^2: UnBefuzzling XML::Parser: an adventure with EU::MM method overrides by Intrepid
in thread UnBefuzzling XML::Parser: an adventure with EU::MM method overrides by Intrepid

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.