mirror of
https://github.com/qemu/qemu.git
synced 2025-08-05 19:09:28 +00:00
meson.build: default to -gsplit-dwarf for debug info
This option is supported by both gcc (since 4.7) and clang (since 7.0). Not only does this make the linkers job easier by reducing the amount of ELF it needs to parse it also reduces the total build size quite considerably. In my case a default build went from 5.8G to 3.9G (vs 1.9G for --disable-debug-info). The --disable-split-debug option allows distros to keep all the info together for ease of packaging. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Link: https://lore.kernel.org/r/20250306161631.2477685-1-alex.bennee@linaro.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
094cd35913
commit
563b1a35ed
@ -601,6 +601,10 @@ if get_option('tsan')
|
||||
qemu_ldflags = ['-fsanitize=thread'] + qemu_ldflags
|
||||
endif
|
||||
|
||||
if get_option('debug') and get_option('split_debug')
|
||||
qemu_cflags += '-gsplit-dwarf'
|
||||
endif
|
||||
|
||||
# Detect support for PT_GNU_RELRO + DT_BIND_NOW.
|
||||
# The combination is known as "full relro", because .got.plt is read-only too.
|
||||
qemu_ldflags += cc.get_supported_link_arguments('-Wl,-z,relro', '-Wl,-z,now')
|
||||
@ -4583,6 +4587,8 @@ if have_rust
|
||||
summary_info += {'bindgen': bindgen.full_path()}
|
||||
summary_info += {'bindgen version': bindgen.version()}
|
||||
endif
|
||||
# option_cflags is purely for the summary display, meson will pass
|
||||
# -g/-O options directly
|
||||
option_cflags = (get_option('debug') ? ['-g'] : [])
|
||||
if get_option('optimization') != 'plain'
|
||||
option_cflags += ['-O' + get_option('optimization')]
|
||||
|
@ -362,6 +362,8 @@ option('debug_mutex', type: 'boolean', value: false,
|
||||
description: 'mutex debugging support')
|
||||
option('debug_stack_usage', type: 'boolean', value: false,
|
||||
description: 'measure coroutine stack usage')
|
||||
option('split_debug', type: 'boolean', value: true,
|
||||
description: 'split debug info from object files')
|
||||
option('qom_cast_debug', type: 'boolean', value: true,
|
||||
description: 'cast debugging support')
|
||||
option('slirp_smbd', type : 'feature', value : 'auto',
|
||||
|
@ -504,6 +504,8 @@ _meson_option_parse() {
|
||||
--disable-strict-rust-lints) printf "%s" -Dstrict_rust_lints=false ;;
|
||||
--enable-strip) printf "%s" -Dstrip=true ;;
|
||||
--disable-strip) printf "%s" -Dstrip=false ;;
|
||||
--enable-split-debug) printf "%s" -Dsplit_debug=true ;;
|
||||
--disable-split-debug) printf "%s" -Dsplit_debug=false ;;
|
||||
--sysconfdir=*) quote_sh "-Dsysconfdir=$2" ;;
|
||||
--enable-tcg) printf "%s" -Dtcg=enabled ;;
|
||||
--disable-tcg) printf "%s" -Dtcg=disabled ;;
|
||||
|
Loading…
Reference in New Issue
Block a user