Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 908419 - 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]
Summary: dev-qt/qtwebengine-5.15.9_p20230505 fails to build(lto):release/../../../../q...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2023-06-12 21:06 UTC by Kostadin Shishmanov
Modified: 2023-12-12 13:04 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
build log and emerge --info compressed with xz (build.log.xz,583.59 KB, application/x-xz)
2023-06-12 21:06 UTC, Kostadin Shishmanov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kostadin Shishmanov 2023-06-12 21:06:30 UTC
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
Comment 1 Larry the Git Cow gentoo-dev 2023-12-12 13:04:18 UTC
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(+)