Richard Brown 2021-10-08 20:04:43 +00:00 committed by Git OBS Bridge
commit 7c7da91a05
6 changed files with 134 additions and 0 deletions

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Mon Oct 4 20:05:50 UTC 2021 - Aaron Puchert <aaronpuchert@alice-dsl.net>
- Fix build with LLVM 13:
* U_gallivm-add-new-wrapper-around-Module.patch
* U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch
-------------------------------------------------------------------
Thu Sep 30 09:05:54 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -133,6 +133,8 @@ Patch2: n_add-Mesa-headers-again.patch
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
Patch58: u_dep_xcb.patch
Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch
Patch101: U_gallivm-add-new-wrapper-around-Module.patch
Patch102: U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
@ -766,6 +768,8 @@ rm -rf docs/README.{VMS,WIN32,OS2}
%endif
%patch58 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
# Remove requires to vulkan libs from baselibs.conf on platforms
# where vulkan build is disabled; ugly ...

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Mon Oct 4 20:05:50 UTC 2021 - Aaron Puchert <aaronpuchert@alice-dsl.net>
- Fix build with LLVM 13:
* U_gallivm-add-new-wrapper-around-Module.patch
* U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch
-------------------------------------------------------------------
Thu Sep 30 09:05:54 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -132,6 +132,8 @@ Patch2: n_add-Mesa-headers-again.patch
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
Patch58: u_dep_xcb.patch
Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch
Patch101: U_gallivm-add-new-wrapper-around-Module.patch
Patch102: U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
@ -765,6 +767,8 @@ rm -rf docs/README.{VMS,WIN32,OS2}
%endif
%patch58 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
# Remove requires to vulkan libs from baselibs.conf on platforms
# where vulkan build is disabled; ugly ...

View File

@ -0,0 +1,60 @@
From c1b4c64a28d9fc093229eab91a3a7fc4cb4fe29a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <kai@dev.carbon-project.org>
Date: Thu, 22 Jul 2021 07:34:09 +0200
Subject: [PATCH 1/2] gallivm: add new wrapper around
Module::setOverrideStackAlignment()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We need it in the next commit to replace setting the stack alignment on
i386 with LLVM >= 13 through the TargetOption::StackAlignmentOverride,
which was removed in the upstream commit
<https://github.com/llvm/llvm-project/commit/3787ee457173c3612aac4c9b1a2b6d6ab0202616>.
Unfortunately Module::setOverrideStackAlignment() is not available
through the C API and we need to wrap it ourselves.
Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reference: mesa/mesa#4906
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940>
---
src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 9 +++++++++
src/gallium/auxiliary/gallivm/lp_bld_misc.h | 3 +++
2 files changed, 12 insertions(+)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index 44d07fe69c6..5f52ed08fae 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -615,3 +615,12 @@ lp_is_function(LLVMValueRef v)
{
return LLVMGetValueKind(v) == LLVMFunctionValueKind;
}
+
+extern "C" void
+lp_set_module_stack_alignment_override(LLVMModuleRef MRef, unsigned align)
+{
+#if LLVM_VERSION_MAJOR >= 13
+ llvm::Module *M = llvm::unwrap(MRef);
+ M->setOverrideStackAlignment(align);
+#endif
+}
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h
index f2a15f19e47..fa0ce90162e 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h
@@ -91,6 +91,9 @@ lp_is_function(LLVMValueRef v);
void
lp_free_objcache(void *objcache);
+
+void
+lp_set_module_stack_alignment_override(LLVMModuleRef M, unsigned align);
#ifdef __cplusplus
}
#endif
--
2.33.0

View File

@ -0,0 +1,52 @@
From 3a2d317b996f57647da23de7876142be4b9b71f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <kai@dev.carbon-project.org>
Date: Thu, 22 Jul 2021 07:42:12 +0200
Subject: [PATCH 2/2] gallivm: fix FTBFS on i386 with LLVM >= 13,
StackAlignmentOverride is gone
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Use the newly added wrapper lp_set_module_stack_alignment_override() to
achieve the same end result.
Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Closes: mesa/mesa#4906
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940>
---
src/gallium/auxiliary/gallivm/lp_bld_init.c | 4 ++++
src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
index 8e5fe6f24dc..d2d049ace5e 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -347,6 +347,10 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name,
if (!gallivm->module)
goto fail;
+#if defined(PIPE_ARCH_X86)
+ lp_set_module_stack_alignment_override(gallivm->module, 4);
+#endif
+
gallivm->builder = LLVMCreateBuilderInContext(gallivm->context);
if (!gallivm->builder)
goto fail;
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index 5f52ed08fae..be288ab02e2 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -350,7 +350,7 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
* friends for configuring code generation options, like stack alignment.
*/
TargetOptions options;
-#if defined(PIPE_ARCH_X86)
+#if defined(PIPE_ARCH_X86) && LLVM_VERSION_MAJOR < 13
options.StackAlignmentOverride = 4;
#endif
--
2.33.0