commit:     c198f69e66547b5ba7d2ba1b9bae576ce93ee703
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 19 21:07:22 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Jan 19 22:12:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c198f69e

dev-qt/qtbase: add IUSE=cpu_flags_x86_rdrand

Hopefully this is enough to (actually) fix bug #922498, doing
-mno-rdrnd had a similar effect of passing QT_FEATURE_rdrnd=OFF
(but don't have a cpu to test behavior with just -march=native).

Maybe will extend this at some point, but let's treat this
one as as a special case given not the first I've seen of this
with rdrand.

For anyone with rdrand issues, obviously do not enable this.

Probably not worth a revbump considering issue is at build time,
seems safe and could save a few rebuilds. fwiw also won't fail in
case of an aberrant rdrand being set combined with -mno-rdrnd.

Closes: https://bugs.gentoo.org/922498
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtbase/qtbase-6.6.1-r3.ebuild | 11 ++++++++++-
 dev-qt/qtbase/qtbase-6.6.9999.ebuild | 11 ++++++++++-
 dev-qt/qtbase/qtbase-6.7.9999.ebuild | 11 ++++++++++-
 dev-qt/qtbase/qtbase-6.9999.ebuild   | 11 ++++++++++-
 4 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/dev-qt/qtbase/qtbase-6.6.1-r3.ebuild 
b/dev-qt/qtbase/qtbase-6.6.1-r3.ebuild
index a0defb2de975..d9f21bee7611 100644
--- a/dev-qt/qtbase/qtbase-6.6.1-r3.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.1-r3.ebuild
@@ -25,6 +25,8 @@ declare -A QT6_IUSE=(
        [sql]="mysql oci8 odbc postgres +sqlite"
        [widgets]="cups gtk"
 
+       [cpuflags]="cpu_flags_x86_rdrand"
+
        [optfeature]="nls wayland" #810802,864509
 )
 IUSE="${QT6_IUSE[*]}"
@@ -235,7 +237,14 @@ src_configure() {
        )
 
        if use amd64 || use x86; then
-               # see bug #913400 for explanations
+               # see bug #922498, let detection do its thing if set
+               use cpu_flags_x86_rdrand ||
+                       mycmakeargs+=(
+                               -DQT_FEATURE_rdrnd=OFF
+                               -DQT_FEATURE_rdseed=OFF
+                       )
+
+               # see bug #913400 for explanations, mostly to handle -mno-*
                local cpufeats=(
                        # list of checked cpu features in configure.cmake
                        avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}

diff --git a/dev-qt/qtbase/qtbase-6.6.9999.ebuild 
b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
index dcaf37200a90..1df2ecec87b6 100644
--- a/dev-qt/qtbase/qtbase-6.6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
@@ -24,6 +24,8 @@ declare -A QT6_IUSE=(
        [sql]="mysql oci8 odbc postgres +sqlite"
        [widgets]="cups gtk"
 
+       [cpuflags]="cpu_flags_x86_rdrand"
+
        [optfeature]="nls wayland" #810802,864509
 )
 IUSE="${QT6_IUSE[*]}"
@@ -232,7 +234,14 @@ src_configure() {
        )
 
        if use amd64 || use x86; then
-               # see bug #913400 for explanations
+               # see bug #922498, let detection do its thing if set
+               use cpu_flags_x86_rdrand ||
+                       mycmakeargs+=(
+                               -DQT_FEATURE_rdrnd=OFF
+                               -DQT_FEATURE_rdseed=OFF
+                       )
+
+               # see bug #913400 for explanations, mostly to handle -mno-*
                local cpufeats=(
                        # list of checked cpu features in configure.cmake
                        avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}

diff --git a/dev-qt/qtbase/qtbase-6.7.9999.ebuild 
b/dev-qt/qtbase/qtbase-6.7.9999.ebuild
index 10afd1ff2ad0..558e1b6b1caf 100644
--- a/dev-qt/qtbase/qtbase-6.7.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.9999.ebuild
@@ -24,6 +24,8 @@ declare -A QT6_IUSE=(
        [sql]="mysql oci8 odbc postgres +sqlite"
        [widgets]="cups gtk"
 
+       [cpuflags]="cpu_flags_x86_rdrand"
+
        [optfeature]="nls" #810802
 )
 IUSE="${QT6_IUSE[*]}"
@@ -235,7 +237,14 @@ src_configure() {
        )
 
        if use amd64 || use x86; then
-               # see bug #913400 for explanations
+               # see bug #922498, let detection do its thing if set
+               use cpu_flags_x86_rdrand ||
+                       mycmakeargs+=(
+                               -DQT_FEATURE_rdrnd=OFF
+                               -DQT_FEATURE_rdseed=OFF
+                       )
+
+               # see bug #913400 for explanations, mostly to handle -mno-*
                local cpufeats=(
                        # list of checked cpu features in configure.cmake
                        avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}

diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild 
b/dev-qt/qtbase/qtbase-6.9999.ebuild
index 10afd1ff2ad0..558e1b6b1caf 100644
--- a/dev-qt/qtbase/qtbase-6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.9999.ebuild
@@ -24,6 +24,8 @@ declare -A QT6_IUSE=(
        [sql]="mysql oci8 odbc postgres +sqlite"
        [widgets]="cups gtk"
 
+       [cpuflags]="cpu_flags_x86_rdrand"
+
        [optfeature]="nls" #810802
 )
 IUSE="${QT6_IUSE[*]}"
@@ -235,7 +237,14 @@ src_configure() {
        )
 
        if use amd64 || use x86; then
-               # see bug #913400 for explanations
+               # see bug #922498, let detection do its thing if set
+               use cpu_flags_x86_rdrand ||
+                       mycmakeargs+=(
+                               -DQT_FEATURE_rdrnd=OFF
+                               -DQT_FEATURE_rdseed=OFF
+                       )
+
+               # see bug #913400 for explanations, mostly to handle -mno-*
                local cpufeats=(
                        # list of checked cpu features in configure.cmake
                        avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}

Reply via email to