[Pythonmac-SIG] can't link Python 2.4.1 against external libxml2 ...

Bob Ippolito bob at redivi.com
Mon Apr 4 05:54:55 CEST 2005


On Apr 3, 2005, at 23:23, OpenMacNews wrote:

>>> *something's* expecting libxml2 to be there ...
>>
>> I'll bet that it's either Cocoa or Carbon. In that case, you 
>> definitely
>> *don't* want it to use your own libxml2.
>
> makes possible sense in that there's a reference to 'Foundation', 
> which given your suspicion, refers to the OSX FoundationClass(es)? 
> I.e., Cocoa/Carbon?
>
>    >>    ld: Undefined symbols:
>    >>    _xmlSAXUserParseMemory referenced from Foundation expected to 
> be
>    >> defined in
>    >>    /usr/lib/libxml2.2.dylib
>
> thought i'd be very hard pressed to prove or disprove ...

Foundation is part of Cocoa, yes.

>> Leave it be.
>
> Which is certainly good advice if that IS the case ... yet I'm still a 
> little foggy on the whole matter given Bob's earlier comment:
>
>> either Python itself, nor any extension in the standard library, 
>> links to
> libxml.  What the heck are you talking about?
>
> which, iiuc, would suggest no dependence whatsoever on libxml -- 
> either direct or indirect via Cocoa/Carbon.

No, you don't understand correctly.  That's not what I meant.

> so, again,
>
>> Leave it be.
>
> seems to be good advice.
>
> what concerns me a bit is that 'other' apps i'm building depend on my 
> *external* libxml, and will -- eventually -- 'touch' some Python, 
> which will depend 'still' on the native (cocoa/carbon related) libxml 
> ...
>
> Will this 'version incompatibility' come back to bite me in the ass?  
> i simply dunno.
>
> short of understanding/resolving the libxml dependence i *am* seeing, 
> I guess I'll just have to wait and see when i get there =)

You are crazy!  Messing with /usr/lib or /System is just *BEGGING* to 
break your OS.  If you reboot with that libxml moved, your system might 
not even come up!

DO NOT DO THAT. EVER.

The fact that Foundation internally uses libxml is none of your 
business.

Mac OS X uses a 2 level symbol namespace, and will not have a problem 
with this, unless you use stupid linker flags like -flat_namespace.  
Python, since 2.3 (possibly in some 2.2 version as well, but I don't 
care), will not use -flat_namespace.  If you statically link to your 
external libxml, then it's impossible to have a problem, because the 
symbols aren't looked up at runtime and aren't exported to other 
modules.

-bob



More information about the Pythonmac-SIG mailing list