commit: 4712e403c0ccfc6d3d857df61dee1fc910f4451f
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 11 10:00:22 2024 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Dec 11 11:44:29 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4712e403
qt6-build.eclass: split sanitize_cpu_flags checks in separate blocks
About to add a new one and increasing the if levels was getting
confusing. This way can remove or add new ones without affecting
the others. Do need to check the sanitize variable multiple times
to avoid running extra checks for nothing though.
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
eclass/qt6-build.eclass | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/eclass/qt6-build.eclass b/eclass/qt6-build.eclass
index 3d3531dd96d5..a0ca9c619405 100644
--- a/eclass/qt6-build.eclass
+++ b/eclass/qt6-build.eclass
@@ -309,12 +309,16 @@ _qt6-build_sanitize_cpu_flags() {
avx512vp2intersect
)
+ local sanitize
+
# check if any known problematic -mno-* C(XX)FLAGS
- if ! is-flagq "@($(IFS='|'; echo "${cpuflags[*]/#/-mno-}"))"; then
- # check if qsimd_p.h (search for "enable all") will accept
-march, and
- # further check when -march=haswell is appended (which Qt uses
for some
- # parts) given combination with other -m* could lead to partial
support
- local bad flags
+ is-flagq "@($(IFS='|'; echo "${cpuflags[*]/#/-mno-}"))" && sanitize=1
+
+ # check if qsimd_p.h (search for "enable all") will accept -march, and
+ # further check when -march=haswell is appended (which Qt uses for some
+ # parts) given combination with other -m* could lead to partial support
+ if [[ ! -v sanitize ]]; then
+ local flags
for flags in '' '-march=haswell'; do
: "$($(tc-getCXX) -E -P ${CXXFLAGS} ${CPPFLAGS}
${flags} - <<-EOF | tail -n 1
#if (defined(__AVX2__) && (__BMI__ +
__BMI2__ + __F16C__ + __FMA__ + __LZCNT__ + __POPCNT__) != 6) || \
@@ -324,11 +328,15 @@ _qt6-build_sanitize_cpu_flags() {
EOF
pipestatus || die
)"
- [[ ${_} == bad ]] && bad=1 && break
+ if [[ ${_} == bad ]]; then
+ sanitize=1
+ break
+ fi
done
- [[ -v bad ]] || return 0 # *should* be fine as-is
fi
+ [[ -v sanitize ]] || return 0 # *should* be fine as-is
+
# determine highest(known) usable x86-64 feature level
local march=$(
$(tc-getCXX) -E -P ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1