From 73b135d12589446d3ac7546692dd70f352c75b13 Mon Sep 17 00:00:00 2001 From: Christopher Obbard Date: Mon, 24 Nov 2025 22:28:12 +0000 Subject: [PATCH] meson: add option to build debugcc as a dynamically linked binary debugcc is currently linked statically using -static and -static-libgcc. This can cause issues for distributions that prefer dynamically linked binaries (e.g. larger binaries and duplicated runtime code which could otherwise be shared). Add a Meson boolean option `dynamic-linking` which when enabled removes the explicit static link flags so that debugcc is built as a dynamically linked binary using the default toolchain behaviour. The default for this option is false so that existing builds continue to get a statically linked binary unless they opt in to dynamic linking. Signed-off-by: Christopher Obbard --- meson.build | 7 ++++++- meson_options.txt | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 meson_options.txt diff --git a/meson.build b/meson.build index 062c48a..e860390 100644 --- a/meson.build +++ b/meson.build @@ -59,7 +59,12 @@ debugcc_srcs += configure_file( output: 'platforms.c', configuration: platforms) +debugcc_link_args = [] +if not get_option('dynamic-linking') + debugcc_link_args += ['-static', '-static-libgcc'] +endif + executable('debugcc', debugcc_srcs, - link_args: ['-static','-static-libgcc'], + link_args: debugcc_link_args, install: true) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..6d1d19e --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,5 @@ +option('dynamic-linking', + type: 'boolean', + value: false, + description: 'Build debugcc as a dynamically linked binary instead of static', +)