Fixes for building against LLVM 13
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
This commit is contained in:
parent
263d093bf3
commit
1c6ea06773
113
gallium-llvm13.patch
Normal file
113
gallium-llvm13.patch
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
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
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
10
mesa.spec
10
mesa.spec
@ -59,7 +59,7 @@ Name: mesa
|
|||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
%global ver 21.2.0
|
%global ver 21.2.0
|
||||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://www.mesa3d.org
|
URL: http://www.mesa3d.org
|
||||||
|
|
||||||
@ -69,6 +69,11 @@ Source0: https://mesa.freedesktop.org/archive/%{name}-%{ver}.tar.xz
|
|||||||
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
||||||
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||||
|
|
||||||
|
|
||||||
|
# Backport of upstream patches from
|
||||||
|
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940
|
||||||
|
Patch0001: gallium-llvm13.patch
|
||||||
|
|
||||||
BuildRequires: meson >= 0.45
|
BuildRequires: meson >= 0.45
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -606,6 +611,9 @@ popd
|
|||||||
%files vulkan-devel
|
%files vulkan-devel
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 19 2021 Stephen Gallagher <sgallagh@redhat.com> - 21.2.0-3
|
||||||
|
- Fixes for building against LLVM 13
|
||||||
|
|
||||||
* Thu Aug 05 2021 ValdikSS <iam@valdikss.org.ru> - 21.2.0-2
|
* Thu Aug 05 2021 ValdikSS <iam@valdikss.org.ru> - 21.2.0-2
|
||||||
- Enable Crocus driver
|
- Enable Crocus driver
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user