-gsplit-dwarf is reported to produce broken binaries on Windows. The linker produces warnings but exits successfully:
/usr/lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld: qga/qemu-ga.exe:/4: section below image base /usr/lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld: qga/qemu-ga.exe:/24: section below image base and as a result qemu-ga.exe fails to start. On top of this, also disable -gsplit-dwarf unless building from git. Similar to -Werror, split debug info is probably not the best choice for people that want to build for installing. (Random thoughts: there is a tension here between adding an option that is useful for QEMU developers, and messing things up for everyone else by doing something decidedly non-standard. For example, distros are starting to create a fake git repository just so that they can use "git am" to apply patches; while some of them, for example Fedora, are wise, or paranoid, enough to pass --disable-XXX for everything and then turn back on what they want, it cannot be expected that everyone does this. It may be safer to make --enable-split-debug default off for everybody and add it somewhere in docs/. For now I am keeping it enabled but we could consider doing something different during the hard freeze period). Reported-by: Konstantin Kostiuk <kkost...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- configure | 4 ++++ meson_options.txt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 02f1dd2311f..9aece67ed08 100755 --- a/configure +++ b/configure @@ -1864,6 +1864,10 @@ if test "$skip_meson" = no; then { test "$host_os" = linux || test "$host_os" = "windows"; }; then echo 'werror = true' >> $cross fi + if test -e "$source_path/.git" && test "$host_os" != "windows"; then + echo 'split_debug = true' >> $cross + fi + echo "[project options]" >> $cross if test "$SMBD" != ''; then echo "smbd = $(meson_quote "$SMBD")" >> $cross diff --git a/meson_options.txt b/meson_options.txt index 3432123fee2..f3546b9abc1 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -362,7 +362,7 @@ 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, +option('split_debug', type: 'boolean', value: false, description: 'split debug info from object files') option('qom_cast_debug', type: 'boolean', value: true, description: 'cast debugging support') -- 2.48.1