diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2024-08-12 17:05:42 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2024-08-12 21:25:35 -0400 |
commit | 486b070b0523b91176f5c56f93635de9a15f6a1c (patch) | |
tree | 6f21433a8d1b3c9caa1768f2e867202a8f876f9b /dev-qt | |
parent | media-libs/mesa: Don't request 'kmsro' driver (diff) | |
download | gentoo-486b070b0523b91176f5c56f93635de9a15f6a1c.tar.gz gentoo-486b070b0523b91176f5c56f93635de9a15f6a1c.tar.bz2 gentoo-486b070b0523b91176f5c56f93635de9a15f6a1c.zip |
dev-qt/qtbase: fix build with gcc15, incl. for revdeps
Issue is in public headers, so revbump is necessary. Please ensure
update to qtbase-6.7.2-r2 before reporting new bugs while testing
gcc15. Thankfully most normal users should have updated long before
gcc15 is keyworded (and further stabled) so there should be little
need to set lower bounds.
Closes: https://bugs.gentoo.org/937808
Closes: https://bugs.gentoo.org/937809
Closes: https://bugs.gentoo.org/937824
Closes: https://bugs.gentoo.org/937825
Closes: https://bugs.gentoo.org/937828
Closes: https://bugs.gentoo.org/937829
Thanks-to: Sam James <sam@gentoo.org>
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt')
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch | 32 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.7.2-r2.ebuild (renamed from dev-qt/qtbase/qtbase-6.7.2-r1.ebuild) | 1 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.7.9999.ebuild | 1 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.8.9999.ebuild | 1 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.9999.ebuild | 1 |
5 files changed, 36 insertions, 0 deletions
diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch b/dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch new file mode 100644 index 000000000000..64cedb14662a --- /dev/null +++ b/dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch @@ -0,0 +1,32 @@ +https://codereview.qt-project.org/c/qt/qtbase/+/582403 +From: Sam James <sam@gentoo.org> +Date: Sat, 10 Aug 2024 16:43:05 +0100 +Subject: [PATCH] Fix ODR violation for IsFloatType_v + +With recent GCC 15 trunk, I started to see: +``` +ld: .../kwalletentry.cc.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; + src/runtime/kwalletd/backend/CMakeFiles/KF6WalletBackend.dir/cbc.cc.o:(.rodata+0x0): first defined here +``` + +The issue is that constexpr is only implicitly inline for functions or +static data members [0], so the two constexpr IsFloatType_v definitions +here cause an ODR violation. + +Explicitly mark them as inline constexpr. + +[0] http://eel.is/c++draft/dcl.constexpr#1.sentence-3 +--- a/src/corelib/global/qcomparehelpers.h ++++ b/src/corelib/global/qcomparehelpers.h +@@ -348,9 +348,9 @@ + + template <typename T> +-constexpr bool IsFloatType_v = std::is_floating_point_v<T>; ++inline constexpr bool IsFloatType_v = std::is_floating_point_v<T>; + + #if QFLOAT16_IS_NATIVE + template <> +-constexpr bool IsFloatType_v<QtPrivate::NativeFloat16Type> = true; ++inline constexpr bool IsFloatType_v<QtPrivate::NativeFloat16Type> = true; + #endif + diff --git a/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild b/dev-qt/qtbase/qtbase-6.7.2-r2.ebuild index 37e0b5c51a97..3b8705b716fd 100644 --- a/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild +++ b/dev-qt/qtbase/qtbase-6.7.2-r2.ebuild @@ -146,6 +146,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch "${FILESDIR}"/${PN}-6.7.2-CVE-2024-39936.patch + "${FILESDIR}"/${PN}-6.7.2-gcc15-odr.patch ) src_prepare() { diff --git a/dev-qt/qtbase/qtbase-6.7.9999.ebuild b/dev-qt/qtbase/qtbase-6.7.9999.ebuild index 66720e44d615..e4a66f7137f8 100644 --- a/dev-qt/qtbase/qtbase-6.7.9999.ebuild +++ b/dev-qt/qtbase/qtbase-6.7.9999.ebuild @@ -145,6 +145,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch + "${FILESDIR}"/${PN}-6.7.2-gcc15-odr.patch ) src_prepare() { diff --git a/dev-qt/qtbase/qtbase-6.8.9999.ebuild b/dev-qt/qtbase/qtbase-6.8.9999.ebuild index 0f0f5cc3cd3a..9af015d9b088 100644 --- a/dev-qt/qtbase/qtbase-6.8.9999.ebuild +++ b/dev-qt/qtbase/qtbase-6.8.9999.ebuild @@ -145,6 +145,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch + "${FILESDIR}"/${PN}-6.7.2-gcc15-odr.patch ) src_prepare() { diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild b/dev-qt/qtbase/qtbase-6.9999.ebuild index 0f0f5cc3cd3a..9af015d9b088 100644 --- a/dev-qt/qtbase/qtbase-6.9999.ebuild +++ b/dev-qt/qtbase/qtbase-6.9999.ebuild @@ -145,6 +145,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch + "${FILESDIR}"/${PN}-6.7.2-gcc15-odr.patch ) src_prepare() { |