Details
-
Bug
-
Resolution: Incomplete
-
Not Evaluated
-
None
-
5.9.5
-
None
Description
After building qtcore 5.9.5 with gcc 8.1.0, any consumer fails to build like this (in the example, that qtdbus):
x86_64-pc-linux-gnu-g++ -pipe -frecord-gcc-switches -fuse-linker-plugin -mtune=native -march=native -fomit-frame-pointer -fstack-protector-strong -O2 -fno-delete-null-pointer-checks -ggdb -Wl,--no-undefined -Wl,--version-script,QtDBus.version -Wl,--enable-new-dtags -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5DBus.so.5 -o libQt5DBus.so.5.9.5 .obj/qdbusconnection.o .obj/qdbusconnectioninterface.o .obj/qdbuserror.o .obj/qdbusintegrator.o .obj/qdbusmessage.o .obj/qdbusserver.o .obj/qdbusabstractinterface.o .obj/qdbusinterface.o .obj/qdbusxmlparser.o .obj/qdbusutil.o .obj/qdbusintrospection.o .obj/qdbusabstractadaptor.o .obj/qdbusinternalfilters.o .obj/qdbusmetaobject.o .obj/qdbusxmlgenerator.o .obj/qdbusmisc.o .obj/qdbusargument.o .obj/qdbusreply.o .obj/qdbusmetatype.o .obj/qdbusextratypes.o .obj/qdbuscontext.o .obj/qdbuspendingcall.o .obj/qdbuspendingreply.o .obj/qdbus_symbols.o .obj/qdbusservicewatcher.o .obj/qdbusunixfiledescriptor.o .obj/qdbusvirtualobject.o .obj/moc_qdbusconnectioninterface.o .obj/moc_qdbusconnection.o .obj/moc_qdbusabstractadaptor.o .obj/moc_qdbusvirtualobject.o .obj/moc_qdbusconnection_p.o .obj/moc_qdbusconnectionmanager_p.o .obj/moc_qdbuspendingcall_p.o -lQt5Core -lpthread -ldbus-1
produces
.obj/qdbusconnection.o:(.qtversion[qt_version_tag]+0x0): undefined reference to `qt_version_tag'
Using sys-devel/gcc-7.3.0-r1 yields libQt5Core.so that allows the build to succeed.
Indeed, the working libQt5Core.so has:
$ readelf -a /usr/lib64/libQt5Core.so.5.9.5 | grep qt_version_tag 3361: 00000000002c0945 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.5 3362: 00000000002c0947 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.7 3363: 00000000002c0949 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@@Qt_5.9 3364: 00000000002c0941 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.1 3365: 00000000002c0948 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.8 3366: 00000000002c0943 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.3 3367: 00000000002c0944 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.4 3368: 00000000002c0946 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.6 3369: 00000000002c0940 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.0 3370: 00000000002c0942 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag@Qt_5.2 5145: 00000000002c0940 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_0@@Qt_5 5147: 00000000002c0941 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_1@@Qt_5 5150: 00000000002c0942 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_2@@Qt_5 5151: 00000000002c0943 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_3@@Qt_5 5154: 00000000002c0944 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_4@@Qt_5 5155: 00000000002c0945 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_5@@Qt_5 5157: 00000000002c0946 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_6@@Qt_5 5160: 00000000002c0947 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_7@@Qt_5 5161: 00000000002c0948 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_8@@Qt_5 5163: 00000000002c0949 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_9@@Qt_5
and the broken one has
$ readelf -a /usr/lib64/libQt5Core.so.5.9.5 | grep qt_version_tag 5139: 00000000003804a0 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_0@@Qt_5 5141: 00000000003804a1 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_1@@Qt_5 5144: 00000000003804a2 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_2@@Qt_5 5147: 00000000003804a3 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_3@@Qt_5 5148: 00000000003804a4 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_4@@Qt_5 5149: 00000000003804a5 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_5@@Qt_5 5151: 00000000003804a6 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_6@@Qt_5 5154: 00000000003804a7 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_7@@Qt_5 5155: 00000000003804a8 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_8@@Qt_5 5159: 00000000003804a9 1 OBJECT GLOBAL DEFAULT 14 qt_version_tag_5_9@@Qt_5