Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location

by Anonymous Monk
on Dec 03, 2012 at 11:31 UTC ( #1006853=note: print w/ replies, xml ) Need Help??


in reply to if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location

Ok, a development, through (:irksome:) manual hacking of Makefile

perl -pi.orig -e " s{libxml2.a }{libxml2.dll.a }gis " Makefile

I now link against libxml2-2.dll and this particular error doesn't happen, although I would still like to figure it out


Comment on Re: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
Re^2: if Digest::SHA1 loaded Can't load LibXML/LibXML.dll Invalid access to memory location
by syphilis (Canon) on Dec 04, 2012 at 05:21 UTC
    perl -pi.orig -e " s{libxml2.a }{libxml2.dll.a }gis " Makefile

    Is libxml2.a a static lib ? ... or is it another import lib for a dll ?

    When I try to build XML-LibXML-2.0012 against a static libxml2.a, the build fails because it expects dynamic libxml2 symbols (prefixed with '_imp__').
    Either your libxml2.a is not a static lib, or you've included a hack that tells the build we're linking to a static library.

    (What is that hack, btw ?)

    Cheers,
    Rob

      When I try to build XML-LibXML-2.0012 against a static libxml2.a, the build fails because it expects dynamic libxml2 symbols (prefixed with '_imp__').

      If you're getting that _imp stuff you're building against the DLL -- you need  perl Makefile.PL  DEFINE=" -DLIBXSLT_STATIC -DLIBEXSLT_STATIC -DLIBXML_STATIC  "  ... to build sucessfully against static version, in addition to the appropriate LIBS/INC

      The problem with Makefile.PL is it rewrites my LIBS/INC arguments to what it thinks should be -- doesn't let me choose between static/dynamic -- kind of defeats the purpose of those args

      Hmm, I guess I could have installed the static/dynamic versions in different directories -- then when Makefile.PL does its detecting it can't choose wrong -- I guess

      sh configure --disable-static --enable-shared prefix=/junk/static make install sh configure --disable-shared --enable-static prefix=/junk/dynamic make install
        you need .... -DLIBXML_STATIC

        Yes, -DLIBXML_STATIC is the hack I was after.

        The problem with Makefile.PL is it rewrites my LIBS/INC arguments to what it thinks should be -- doesn't let me choose between static/dynamic

        I think you should be able to do:
        LIBS="-L/path/to/lib -lxml2" (for static) LIBS="-L/path/to/lib -lxml2.dll" (for dynamic)
        After all that, I still don't get the failure that you do with Digest::SHA1 and XML::LibXML.
        I do, however, strike the same error with PDL::Graphics::PLplot (whenn PDL::Graphics::PLplot is built as part of the PDL build). For that module, switching to a build against dynamic PLplot libraries doesn't help.
        Instead, if I want the PDL/Graphics/PLplot/PLplot.dll to be loadable, I have to build PDL::Graphics::PLplot separately from the PDL build.
        (The part about the dll not being a valid win32 app is just straight out bullshit, afaict ... objdump has no issue with it, so I'm thinking the real problem is something else.)

        Unfortunately, we'll probably have to wait until someone capable of debugging the problem comes up against it for himself ... *then* we might find out what's going awry.

        Cheers,
        Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1006853]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (8)
As of 2014-08-23 15:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (174 votes), past polls