Crashes with libQtUiTools.a if linked multiple times into the same process (with Bsymbolic-functions flag)
Friedrich W. H. Kossebau
kossebau at kde.org
Sun May 12 21:47:35 BST 2013
Am Samstag, 11. Mai 2013, 20:23:15 schrieb Sune Vuorela:
> On 2013-05-11, Friedrich W. H. Kossebau <kossebau at kde.org> wrote:
> > So, anyone with more clue than me WRT symbols from static libs and the
> > Bsymbolic-functions linker flag who could tell if that indeed should fix
> > such problems if code from the same static lib is arriving multiple times
> > in the same process via different libs/modules?
> It most likely will help on such a case.
> -Bsymbolic-functions ensures that functiotns are first resolved in the
> library/plugin itself before resolving it from outside the library.
> What happens, I think, is that it is sometimes using the functions from
> one of the static libs, other times from some of the other.
> I'm not sure we want libraries linking QtTools to be built with
> -Bsymbolic-functions because it breaks debugging and other magic using
> function overriding with LD_PRELOAD tricks, because they rely on being
> chosen first over the 'internal' functions.
Bsymbolic-functions seems default for all qt/kde libs these days, no? So it
would need to be removed everywhere if following your answers.
In the meantime downstream (openSUSE KDE maintainers) have created a different
patch which instead simply tells the linker to exclude libQtUiTools.a when
generating the public symbols, by calling in all relevant places
+ # Do not export QtUiTools internal symbols
+ set_target_properties(krossmoduleforms PROPERTIES LINK_FLAGS "-Wl,--
Hopefully that will soon make it upstream if it proves to be "the right fix"
More information about the kde-core-devel