On Tuesday 03 March 2015 22:14:55 Sergio Martins wrote: > In frame #2, we do loader(), which should create an instance of the > "/platforms" QFactoryLoader, but instead, it calls innerFunction() of a > global static of another translation unit (QFactoryLoader of "/accessible" > plugins). > > A simple fix is to use "loader" instead of "loader()"
Definitely GCC or linker bug. As you can see in your backtrace, all of this is in an anonymous namespace, so qplatformintegrationfactory.cpp cannot affect qaccessible.cpp. Since we're seeing both operator() and the innerFunction frames, I assume you compiled in debug mode. Correct? Anyway, I have GCC 4.9.2, Binutils 2.25.0 (using gold) and I cannot reproduce in either debug, regular release or LTO release modes. I have 8 different global statics called "loader" in QtGui: $ nm -C libQt5Gui.so.5 | grep ::Q_QGS_loader::guard\$ 00000000006a5750 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a59c0 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a5a20 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a5ac0 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a5b40 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a61b0 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a6200 b (anonymous namespace)::Q_QGS_loader::guard 00000000006a6374 b (anonymous namespace)::Q_QGS_loader::guard (The mangled name for all of those is the same: _ZN12_GLOBAL__N_112Q_QGS_loader5guardE) Which matches the source code: $ git --no-pager grep Q_GLOBAL_STATIC.*\\bloader accessible/qaccessible.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, image/qicon.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, image/qimagereader.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, image/qimagewriter.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, kernel/qgenericpluginfactory.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, kernel/qplatforminputcontextfactory.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, kernel/qplatformintegrationfactory.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, kernel/qplatformthemefactory.cpp:Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
