meson: implement split-debug

split-debug uses C args `--gsplit-dwarf` and linker args `--gdb-index`
to achieve split debug, speed up the CI linking, and allow us to
distribute debug symbols standalone.

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28576>
This commit is contained in:
David Heidelberg 2022-12-29 18:08:57 +01:00 committed by Marge Bot
parent 9d5af35318
commit 44b080af07
2 changed files with 22 additions and 0 deletions

View File

@ -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<stdio.h>
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()

View File

@ -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',