From 02123a224b75e7e3b6bbad174fa195203b969e6cad0326170befa1a470fb9402 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Tue, 5 Oct 2021 01:38:07 +0000 Subject: [PATCH] Accepting request 923138 from home:aaronpuchert:llvm-next - Fix build with LLVM 13: * U_gallivm-add-new-wrapper-around-Module.patch * U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch OBS-URL: https://build.opensuse.org/request/show/923138 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=1061 --- Mesa-drivers.changes | 7 +++ Mesa-drivers.spec | 4 ++ Mesa.changes | 7 +++ Mesa.spec | 4 ++ U_gallivm-add-new-wrapper-around-Module.patch | 60 +++++++++++++++++++ ...llivm-fix-FTBFS-on-i386-with-LLVM-13.patch | 52 ++++++++++++++++ 6 files changed, 134 insertions(+) create mode 100644 U_gallivm-add-new-wrapper-around-Module.patch create mode 100644 U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch diff --git a/Mesa-drivers.changes b/Mesa-drivers.changes index c9b707d..03fd140 100644 --- a/Mesa-drivers.changes +++ b/Mesa-drivers.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Oct 4 20:05:50 UTC 2021 - Aaron Puchert + +- 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 diff --git a/Mesa-drivers.spec b/Mesa-drivers.spec index 5d910af..f34618e 100644 --- a/Mesa-drivers.spec +++ b/Mesa-drivers.spec @@ -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 ... diff --git a/Mesa.changes b/Mesa.changes index c9b707d..03fd140 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Oct 4 20:05:50 UTC 2021 - Aaron Puchert + +- 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 diff --git a/Mesa.spec b/Mesa.spec index 4fc5240..8f4c387 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -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 ... diff --git a/U_gallivm-add-new-wrapper-around-Module.patch b/U_gallivm-add-new-wrapper-around-Module.patch new file mode 100644 index 0000000..e2560e5 --- /dev/null +++ b/U_gallivm-add-new-wrapper-around-Module.patch @@ -0,0 +1,60 @@ +From c1b4c64a28d9fc093229eab91a3a7fc4cb4fe29a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= +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 +. + +Unfortunately Module::setOverrideStackAlignment() is not available +through the C API and we need to wrap it ourselves. + +Signed-off-by: Kai Wasserbäch +Reference: mesa/mesa#4906 +Reviewed-by: Roland Scheidegger +Part-of: +--- + 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 + diff --git a/U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch b/U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch new file mode 100644 index 0000000..153c427 --- /dev/null +++ b/U_gallivm-fix-FTBFS-on-i386-with-LLVM-13.patch @@ -0,0 +1,52 @@ +From 3a2d317b996f57647da23de7876142be4b9b71f3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= +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 +Closes: mesa/mesa#4906 +Reviewed-by: Roland Scheidegger +Part-of: +--- + 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 +