From c5a97d658ec19cc02719d7f86c1b0715e3d9ffc4 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Mon, 16 Apr 2018 14:47:58 -0700 Subject: [PATCH] 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 --- meson.build | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meson.build b/meson.build index 2e10ed74e29..4019b21dad1 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 -- 2.11.0