[Expat-discuss] Re: Conflict with two expat shared libraries

Steinar Bang sb at dod.no
Tue Oct 19 19:54:03 CEST 2004


>>>>> "Karl Waclawek" <karl at waclawek.net>:

> However, should it not work anyway?
> When the ELF library is loaded, aren't the links to these functiones
> like XmlGetUtf16InternalEncoding resolved already (at compile time),
> at least for those calls that are internal to the library?

Nope.  But the -Bsymbolic flag effectively achives this effect (though
in a different manner, see below).

> Or are they still left open for late binding?

Yes.

> Would that late binding then happen when dlopen() is called, or even
> later, when dlsym() is called?

That's what I experienced.

However, using the -Bsymbolic flag when creating the shared library
solved my problem.  What it does (for listing googleable terms), is to
is set the DT_SYMBOLIC dynamic entry.  This is interpreted to search
the module itself, and its immediate dependencies, instead of doing a
global search.

Hm... it's possible that if the fontconfig shared library had been
created with the -Bsymbolic flag, it would have used the system's
expat shared library ("expatA" in my description earlier), and not be
overriden by mine (But that's out of my control.  I could file a bug,
but since I don't know whether using -Bsymbolic would actually work,
I'm not sure what to say in the bug report).



More information about the Expat-discuss mailing list