GCC 4.7, STL and binary compatibility of objects built with different language standards
steve.langasek at ubuntu.com
Tue Jun 12 17:38:58 UTC 2012
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/
slangasek at ubuntu.com vorlon at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 836 bytes
Desc: Digital signature
More information about the ubuntu-devel