in reply to Re: XML::LibXML::Common 0.13 on linux - undefined symbol
in thread XML::LibXML::Common 0.13 on linux - undefined symbol

Hi

This is the output of that command:
    U xmlFree

What does this mean?

Thanks

-----

Eschew obfuscation, espouse elucidation!

Replies are listed 'Best First'.
Re^3: XML::LibXML::Common 0.13 on linux - undefined symbol
by almut (Canon) on May 12, 2009 at 17:04 UTC

    It means that the library (Common.so) is using that symbol, but the symbol is undeclared ("U") within the library itself, i.e. it's an external reference that needs to be satisfied by some other library.

    The symbol is most likely expected to be defined in the shared library libxml2.so that Common.so is presumably linked against — that library contains the actual implementation of most of the functionality; Common.so is just the Perl/C wrapping code...  In other words, you could try to run "nm -D" on libxml2 to see if the symbol is defined there  (check the build output for where the lib was found). The symbol should not be listed as "U" there, but rather as something like "T" ("text" section, aka code), or "D" ("data" section).

    Update: just checked on my box with v2.6.32 and an older box with v2.6.31, and the symbol is defined (in both cases):

    $ nm -D /usr/lib/libxml2.so.2.6.32 | grep xmlFree\$ 000000000035a6c0 D xmlFree
      Ok...

      How would i go about fixing it then? ... i'm new to all of this...

      Thanks

      -----

      Eschew obfuscation, espouse elucidation!

        Normally, you'd try to find a library version that has/defines the symbol (maybe get a newer version).  OTOH, "xmlFree" seems to be a rather straightforward name for basic functionality, so I'd be kinda surprised if that symbol was one of the latest additions...

        Anyhow, maybe the problem is that an entirely wrong library (or none) has been linked against.  Have you figured out yet which one was found during build configuration?