diff --git a/meson.build b/meson.build index a89a17882c1cb..5e05eb0c37b18 100644 --- a/meson.build +++ b/meson.build @@ -961,6 +961,22 @@ endif # otherwise define MESA_DEBUG to 0 pre_args += '-DMESA_DEBUG=' + (with_mesa_debug ? '1' : '0') +with_split_debug = get_option('split-debug') \ + .disable_if(not cc.compiles('''#include + int main() { + printf("\n"); + };''', + args : '-gsplit-dwarf', + name : 'split-dwarf support'), + error_message : 'split-debug requires compiler -gsplit-dwarf support') \ + .disable_if(not cc.has_link_argument('-Wl,--gdb-index'), + error_message : 'split-debug requires the linker argument -Wl,--gdb-index') + +if with_split_debug.allowed() and get_option('debug') + add_project_arguments('-gsplit-dwarf', langauge : ['c', 'cpp']) + add_project_link_arguments('-Wl,--gdb-index', language : ['c', 'cpp']) +endif + with_shader_cache = get_option('shader-cache') \ .require(host_machine.system() != 'windows', error_message : 'Shader Cache does not currently work on Windows') \ .allowed() diff --git a/meson_options.txt b/meson_options.txt index a8f88e3f009a4..7c021c14cfe3a 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,6 +1,12 @@ # Copyright © 2017-2019 Intel Corporation # SPDX-License-Identifier: MIT +option( + 'split-debug', + type : 'feature', + value : 'disabled', + description : 'split debug information (-gsplit-dwarf compile flag) and debug information in the gdb index format (--gdb-index)', +) option( 'platforms', type : 'array',