https://github.com/json-c/json-c/pull/988 From: ShengYi Hung Date: Tue, 20 Oct 2026 23:23:48 -0500 Subject: [PATCH] meson: Fix lld version script detection In lld, a symbol version with undefined symbol is rejected by default. In previous CMake, we use a wildcard for all symbol, which is fine for empty program. Add --undefined-version to the detection to fix it. --- --- a/meson.build +++ b/meson.build @@ -227,12 +227,18 @@ add_project_arguments(cc.get_supported_arguments('-Wno-unused-parameter'), language : 'c') -sym = cc.get_supported_link_arguments( - '-Wl,--version-script,@0@/json-c.sym'.format( - meson.current_source_dir(), - ), +version_script_arg = '-Wl,--version-script,@0@/json-c.sym'.format( + meson.current_source_dir(), ) +sym = [] +if cc.has_link_argument(version_script_arg) or cc.has_multi_link_arguments( + version_script_arg, + '-Wl,--undefined-version', +) + sym = [version_script_arg] +endif + # Source files sources = files( 'arraylist.c', 'debug.c', 'json_c_version.c', 'json_object.c',