Hi Matthias,

On Tue, Jun 12, 2012 at 07:30:33PM +0200, Matthias Klose wrote:
> The problem happens because both libs contains a (weak) definition of
> the equal_range function.  As the libs don't control their exports this
> symbol also is exported.  Hence the calls will be resolved to whatever
> version comes first in dynamic linker search order (that's the reason
> for the two apps built, once with "-l1 -l2", once with "-l2 -l1").

> So, whichever library is first in search order, the other library will
> resolve its own equal_range call (stemming from the inlined erase) to that
> first library, and thereby crash because that version was compiled with
> different c++ ABI."""

Is this something that the unity team (since they have full upstream control
of their libs) could guard against by restricting the list of exported
symbols?  Does -Wl,-B,symbolic-functions help at all in this case?

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
[email protected]                                     [email protected]

Attachment: signature.asc
Description: Digital signature

-- 
ubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

Reply via email to