diff --git a/lib/meson.build b/lib/meson.build index a5a203c..5c5584a 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -17,10 +17,20 @@ elif build_machine.system() == 'freebsd' else # Linux and other systems version_script_flags = '-Wl,--version-script=' + meson.current_source_dir() + '/libjose.map' - if not cc.links(code, args: version_script_flags, name: '-Wl,--version-script=...') - flags = [ '-export-symbols-regex=^jose_.*' ] + if cc.get_linker_id() == 'ld.lld' + if not cc.links(code, args: version_script_flags + ',--undefined-version', + name: '-Wl,--version-script=... (--undefined-version)') + flags = ['-export-symbols-regex=^jose_.*'] + else + flags = [version_script_flags] + endif else - flags = [version_script_flags] + if not cc.links(code, args: version_script_flags, + name: '-Wl,--version-script=... (plain)') + flags = ['-export-symbols-regex=^jose_.*'] + else + flags = [version_script_flags] + endif endif endif diff --git a/meson.build b/meson.build index 98d4d74..3da9ae3 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project('jose', 'c', license: 'APL2', 'warning_level=2', 'werror=true' ], - meson_version: '>=0.47.0', + meson_version: '>=0.53.0', ) licensedir = join_paths(get_option('prefix'), 'share', 'licenses', meson.project_name())