Summary: | dev-qt/qtwebengine-5.15.9_p20230505 fails to build(lto):release/../../../../qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:145:19:error:type ‘struct RefCountedThreadSafeBase’ violates the C++ One Definition Rule [-Werror=odr] | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Kostadin Shishmanov <kostadinshishmanov> |
Component: | Current packages | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 618550 | ||
Attachments: | build log and emerge --info compressed with xz |
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d51131e1ec7aa03f22a2f2864237fdc3d4dc146 commit 2d51131e1ec7aa03f22a2f2864237fdc3d4dc146 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2023-12-07 17:56:50 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2023-12-12 12:56:01 +0000 qt5-build.eclass: filter-lto Closes: https://bugs.gentoo.org/650488 Closes: https://bugs.gentoo.org/692078 Closes: https://bugs.gentoo.org/713850 Closes: https://bugs.gentoo.org/908419 Closes: https://bugs.gentoo.org/652158 Closes: https://bugs.gentoo.org/919043 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> eclass/qt5-build.eclass | 3 +++ 1 file changed, 3 insertions(+) |
Created attachment 863744 [details] build log and emerge --info compressed with xz dev-qt/qtwebengine fails to compile with CFLAGS=-flto=auto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-alaising and LDFLAGS=-Werror=odr -Werror=lto-type-mismatch -Werror=strict-alaising ulimit -n 4096 && x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing @/var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505_build/src/core/release/QtWebEngineCore_o.rsp -Wl,--start-group @/var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505_build/src/core/release/QtWebEngineCore_a.rsp -Wl,--end-group -Wl,-z,noexecstack -Wl,--build-id=sha1 -fPIC -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -m64 -Wl,-O2 -Wl,--gc-sections -rdynamic -Wl,-O1 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--enable-new-dtags -Wl,-whole-archive -lqtwebenginecoreapi -Wl,-no-whole-archive -Wl,--no-undefined -Wl,--version-script,QtWebEngineCore.version -Wl,--enable-new-dtags -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5WebEngineCore.so.5 -o libQt5WebEngineCore.so.5.15.9 /usr/lib64/libQt5Quick.so /usr/lib64/libQt5Gui.so /usr/lib64/libQt5QmlModels.so /usr/lib64/libQt5WebChannel.so /usr/lib64/libQt5Qml.so /usr/lib64/libQt5Network.so /usr/lib64/libQt5Core.so -pthread -lGL -ldl -lpthread -lrt -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lz -levent -lresolv -ljpeg -lm -lopus -lvpx -lX11 -lXcomposite -lXdamage -lXext -lXfixes -lXrender -lXrandr -lXtst -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpng16 -lwebpmux -lwebpdemux -lwebp -lfreetype -lexpat -lfontconfig -lharfbuzz-subset -lharfbuzz -lre2 -lX11-xcb -lxcb -lxkbcommon -ldbus-1 -lpci -lsnappy -lxml2 -lxslt -lminizip -llcms2 -llcms2_fast_float -llcms2_threaded -L/var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505_build/src/core/api/release -lGL release/../../../../qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:145:19: error: type ‘struct RefCountedThreadSafeBase’ violates the C++ One Definition Rule [-Werror=odr] 145 | class BASE_EXPORT RefCountedThreadSafeBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:145:19: note: a different type is defined in another translation unit 145 | class BASE_EXPORT RefCountedThreadSafeBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:229:16: note: the first difference of corresponding definitions is field ‘needs_adopt_ref_’ 229 | mutable bool needs_adopt_ref_ = false; | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:145:19: note: a type with different number of fields is defined in another translation unit 145 | class BASE_EXPORT RefCountedThreadSafeBase { | ^ release/../../../../qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:387:7: error: type ‘struct RefCountedThreadSafe’ violates the C++ One Definition Rule [-Werror=odr] 387 | class RefCountedThreadSafe : public subtle::RefCountedThreadSafeBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/3rdparty/chromium/base/memory/ref_counted.h:387:7: note: a type with different bases is defined in another translation unit 387 | class RefCountedThreadSafe : public subtle::RefCountedThreadSafeBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:87:38: error: type ‘struct CookieMonsterDelegateQt’ violates the C++ One Definition Rule [-Werror=odr] 87 | class Q_WEBENGINECORE_PRIVATE_EXPORT CookieMonsterDelegateQt : public base::RefCountedThreadSafe<CookieMonsterDelegateQt> | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:87:38: note: a type with different bases is defined in another translation unit 87 | class Q_WEBENGINECORE_PRIVATE_EXPORT CookieMonsterDelegateQt : public base::RefCountedThreadSafe<CookieMonsterDelegateQt> | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:104:10: error: type of ‘setCookie’ does not match original declaration [-Werror=lto-type-mismatch] 104 | void setCookie(quint64 callbackId, const QNetworkCookie &cookie, const QUrl &origin); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:134:6: note: ‘setCookie’ was previously declared here 134 | void CookieMonsterDelegateQt::setCookie(quint64 callbackId, const QNetworkCookie &cookie, const QUrl &origin) | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:134:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:105:10: error: type of ‘deleteCookie’ does not match original declaration [-Werror=lto-type-mismatch] 105 | void deleteCookie(const QNetworkCookie &cookie, const QUrl &origin); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:158:6: note: ‘deleteCookie’ was previously declared here 158 | void CookieMonsterDelegateQt::deleteCookie(const QNetworkCookie &cookie, const QUrl &origin) | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:158:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:113:10: error: type of ‘setHasFilter’ does not match original declaration [-Werror=lto-type-mismatch] 113 | void setHasFilter(bool b); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:212:6: note: ‘setHasFilter’ was previously declared here 212 | void CookieMonsterDelegateQt::setHasFilter(bool hasFilter) | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:212:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:108:10: error: type of ‘deleteAllCookies’ does not match original declaration [-Werror=lto-type-mismatch] 108 | void deleteAllCookies(quint64 callbackId); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:183:6: note: ‘deleteAllCookies’ was previously declared here 183 | void CookieMonsterDelegateQt::deleteAllCookies(quint64 callbackId) | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:183:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:107:10: error: type of ‘deleteSessionCookies’ does not match original declaration [-Werror=lto-type-mismatch] 107 | void deleteSessionCookies(quint64 callbackId); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:171:6: note: ‘deleteSessionCookies’ was previously declared here 171 | void CookieMonsterDelegateQt::deleteSessionCookies(quint64 callbackId) | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:171:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:106:10: error: type of ‘getAllCookies’ does not match original declaration [-Werror=lto-type-mismatch] 106 | void getAllCookies(quint64 callbackId); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:129:6: note: ‘getAllCookies’ was previously declared here 129 | void CookieMonsterDelegateQt::getAllCookies(quint64 callbackId) | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:129:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.h:102:10: error: type of ‘hasCookieMonster’ does not match original declaration [-Werror=lto-type-mismatch] 102 | bool hasCookieMonster(); | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:124:6: note: ‘hasCookieMonster’ was previously declared here 124 | bool CookieMonsterDelegateQt::hasCookieMonster() | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/net/cookie_monster_delegate_qt.cpp:124:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: error: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Werror=odr] 136 | struct CallbackSharedDataPointer : public CallbackSharedDataPointerBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: error: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Werror=odr] 136 | struct CallbackSharedDataPointer : public CallbackSharedDataPointerBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: error: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Werror=odr] 136 | struct CallbackSharedDataPointer : public CallbackSharedDataPointerBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: error: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Werror=odr] 136 | struct CallbackSharedDataPointer : public CallbackSharedDataPointerBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: error: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Werror=odr] 136 | struct CallbackSharedDataPointer : public CallbackSharedDataPointerBase { | ^ /var/tmp/portage/dev-qt/qtwebengine-5.15.9_p20230505/work/qtwebengine-5.15.9_p20230505/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries lto1: some warnings being treated as errors lto-wrapper: fatal error: x86_64-pc-linux-gnu-g++ returned 1 exit status compilation terminated