summaryrefslogtreecommitdiff
path: root/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch')
-rw-r--r--packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch b/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
new file mode 100644
index 0000000..18f7b00
--- /dev/null
+++ b/packages/x11-dri/mesa/files/c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4.patch
@@ -0,0 +1,39 @@
+Upstream: Yes
+From c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4 Mon Sep 17 00:00:00 2001
+From: Dylan Baker <dylan@pnwbakers.com>
+Date: Mon, 16 Apr 2018 14:47:58 -0700
+Subject: meson: fix builds against LLVM built without rtti
+
+Building without rtti is a frought with peril, but it's something that
+autotools supports so we need to support it too.
+
+Since we've moved to version 0.44 as a whole we can use the meson
+functionality for accessing random llvm-config options we can check for
+rtti and add -fno-rtti to all C++ code accordingly.
+
+Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
+---
+ meson.build | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 2e10ed7..4019b21 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1143,6 +1143,13 @@ if with_llvm
+ '-DHAVE_LLVM=0x0@0@0@1@'.format(_llvm_version[0], _llvm_version[1]),
+ '-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
+ ]
++
++ # LLVM can be built without rtti, turning off rtti changes the ABI of C++
++ # programs, so we need to build all C++ code in mesa without rtti as well to
++ # ensure that linking works.
++ if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
++ cpp_args('-fno-rtti')
++ endif
+ elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
+ error('The following drivers require LLVM: Radv, RadeonSI, SWR. One of these is enabled, but LLVM is disabled.')
+ endif
+--
+cgit v1.1
+