On Wed, Sep 14, 2005 at 04:47:46AM -0700, Steve Langasek wrote: > <asuffield> so, the problem is caused by template instantiation shoving > this symbol into the library that uses it > <asuffield> the two possible solutions are (a) stop doing that, or (b) > version the symbol > <vorlon> so that's a g++ bug? > <asuffield> maybe > <asuffield> there are several other unversioned libstdc++ symbols > in this library > <asuffield> so it's not just a corner case, this is a recurring > problem > <vorlon> fun > <asuffield> we will only notice it during a libstdc++ transition though > <vorlon> yep > <asuffield> I think we start by assuming it's a libstdc++ bug and let > the g++ folk chew on it > > So: g++ is embedding an unversioned weak symbol in the library in some > cases, which causes the linker to resolve it to the version from the lib > used by the app, not the one that the library is linked against. > Segfault.
Yes. Not, strictly speaking, a compiler bug. Versioned symbols are not the right tool for solving this; however, the right tool for solving it was presented in a paper at the last GCC summit. I believe by some ICC developers. I don't know if any implementation's come of that. -- Daniel Jacobowitz CodeSourcery, LLC -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]