quick3d: fix GCC14 build issue with embree

Add workaround for building quick3d with GCC14. Builds would
otherwise fail on x86_64 targets using AVX.

Change-Id: Ie2c1c4e5aaa110d82594582588f170977855f20a
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
This commit is contained in:
Samuli Piippo 2024-10-22 11:05:52 +00:00
parent abdf375a2e
commit e83389116c
2 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,31 @@
From ae28850ddb92450e30e1fa6bbace00af0775e907 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Tue, 22 Oct 2024 10:24:11 +0000
Subject: [PATCH] embree: properly disable avx for GCC14
GCC 14 does not keep avx disabled just by undef'ing __AVX__ .
Add pragma option to do this properly.
Fixes: QTBUG-130381
Change-Id: Ia2ae6edc50bfb24b83753fff184469c86daa88dc
Upstream-Status: Pending
---
src/3rdparty/embree/common/sys/platform.h | 4 +++
2 files changed, 30 insertions(+)
create mode 100644 src/3rdparty/embree/patches/0004-embree-properly-disable-avx-for-GCC14.patch
diff --git a/src/3rdparty/embree/common/sys/platform.h b/src/3rdparty/embree/common/sys/platform.h
index 78d8afce5..5e218fa37 100644
--- a/src/3rdparty/embree/common/sys/platform.h
+++ b/src/3rdparty/embree/common/sys/platform.h
@@ -3,6 +3,10 @@
#pragma once
+#if defined (__AVX__)
+#pragma GCC target("no-sse3")
+#endif
+
#define _CRT_SECURE_NO_WARNINGS
#include <cstddef>

View File

@ -23,6 +23,7 @@ ASSIMP_BRANCH = "qt6_assimp"
SRC_URI += " \
${QT_GIT}/${QT_GIT_PROJECT}/qtquick3d-assimp.git;name=qtquick3d-assimp;branch=${ASSIMP_BRANCH};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/assimp/src \
file://0001-Skip-embree-on-mingw.patch \
file://0002-embree-properly-disable-avx-for-GCC14.patch \
"
DEPENDS = "qtbase qtdeclarative qtshadertools qtshadertools-native qtquick3d-native"