From: Jan Janssen Date: Tue, 26 Sep 2023 13:14:38 +0000 (+0200) Subject: meson: Fix version script handling X-Git-Tag: v255-rc1~424 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=90461ef56fe75f3c68741665b103709ae36eaba6;p=thirdparty%2Fsystemd.git meson: Fix version script handling Build targets should have a link dependency on the version scripts they use. This also uses absolute paths in anticipation for meson 1.3 needlessly deprecating file to string conversions. --- diff --git a/meson.build b/meson.build index 381e2a8c4e1..bd7c3e89ed3 100644 --- a/meson.build +++ b/meson.build @@ -2365,17 +2365,20 @@ foreach dict : modules kwargs = {} foreach key, val : dict - if key in ['name', 'conditions'] + if key in ['name', 'conditions', 'version-script'] continue endif kwargs += { key : val } endforeach - sym = meson.current_source_dir() / '@0@'.format(dict.get('link_depends')[0]) kwargs += { 'link_args' : [ kwargs.get('link_args', []), - '-Wl,--version-script=' + sym, + '-Wl,--version-script=' + dict.get('version-script'), + ], + 'link_depends' : [ + kwargs.get('link_depends', []), + dict.get('version-script'), ], } foreach key, val : module_additional_kwargs diff --git a/src/core/meson.build b/src/core/meson.build index 12c7d7c6ed7..e5b92ce4d90 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -117,6 +117,7 @@ libcore = shared_library( c_args : ['-fvisibility=default'], link_args : ['-shared', '-Wl,--version-script=' + libshared_sym_path], + link_depends : libshared_sym_path, link_with : libshared, dependencies : [libacl, libapparmor, diff --git a/src/cryptsetup/cryptsetup-tokens/meson.build b/src/cryptsetup/cryptsetup-tokens/meson.build index 120621eaee3..88665202a0d 100644 --- a/src/cryptsetup/cryptsetup-tokens/meson.build +++ b/src/cryptsetup/cryptsetup-tokens/meson.build @@ -29,7 +29,7 @@ template = { lib_cryptsetup_token_common, libshared, ], - 'link_depends' : files('cryptsetup-token.sym'), + 'version-script' : meson.current_source_dir() / 'cryptsetup-token.sym', 'install_rpath' : pkglibdir, 'install' : true, 'install_dir' : libcryptsetup_plugins_dir, diff --git a/src/home/meson.build b/src/home/meson.build index cbd37dba780..5ababfa02db 100644 --- a/src/home/meson.build +++ b/src/home/meson.build @@ -123,7 +123,7 @@ modules += [ libpam, threads, ], - 'link_depends' : files('pam_systemd_home.sym'), + 'version-script' : meson.current_source_dir() / 'pam_systemd_home.sym', }, ] diff --git a/src/login/meson.build b/src/login/meson.build index 276e920dfc3..1ba996d5171 100644 --- a/src/login/meson.build +++ b/src/login/meson.build @@ -112,7 +112,7 @@ modules += [ 'HAVE_PAM', ], 'sources' : files('pam_systemd.c'), - 'link_depends' : files('pam_systemd.sym'), + 'version-script' : meson.current_source_dir() / 'pam_systemd.sym', }, ] diff --git a/src/nss-myhostname/meson.build b/src/nss-myhostname/meson.build index c53ab22dbcd..53d8bda5773 100644 --- a/src/nss-myhostname/meson.build +++ b/src/nss-myhostname/meson.build @@ -5,6 +5,6 @@ modules += [ 'name' : 'nss_myhostname', 'conditions' : ['ENABLE_NSS_MYHOSTNAME'], 'sources' : files('nss-myhostname.c'), - 'link_depends' : files('nss-myhostname.sym'), + 'version-script' : meson.current_source_dir() / 'nss-myhostname.sym', }, ] diff --git a/src/nss-mymachines/meson.build b/src/nss-mymachines/meson.build index 7b8198fe37e..3e10325100d 100644 --- a/src/nss-mymachines/meson.build +++ b/src/nss-mymachines/meson.build @@ -5,6 +5,6 @@ modules += [ 'name' : 'nss_mymachines', 'conditions' : ['ENABLE_NSS_MYMACHINES'], 'sources' : files('nss-mymachines.c'), - 'link_depends' : files('nss-mymachines.sym'), + 'version-script' : meson.current_source_dir() / 'nss-mymachines.sym', }, ] diff --git a/src/nss-resolve/meson.build b/src/nss-resolve/meson.build index e5b65d256a2..1fae4266364 100644 --- a/src/nss-resolve/meson.build +++ b/src/nss-resolve/meson.build @@ -5,7 +5,7 @@ modules += [ 'name' : 'nss_resolve', 'conditions' : ['ENABLE_NSS_RESOLVE'], 'sources' : files('nss-resolve.c'), - 'link_depends' : files('nss-resolve.sym'), + 'version-script' : meson.current_source_dir() / 'nss-resolve.sym', 'include_directories' : includes + include_directories('../resolve'), }, diff --git a/src/nss-systemd/meson.build b/src/nss-systemd/meson.build index 1bea17156e5..ec4f780d5fa 100644 --- a/src/nss-systemd/meson.build +++ b/src/nss-systemd/meson.build @@ -8,6 +8,6 @@ modules += [ 'nss-systemd.c', 'userdb-glue.c', ), - 'link_depends' : files('nss-systemd.sym'), + 'version-script' : meson.current_source_dir() / 'nss-systemd.sym', }, ] diff --git a/src/shared/meson.build b/src/shared/meson.build index 67f4f4517d2..91ab370e46b 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -315,7 +315,7 @@ libshared_deps = [threads, libxz, libzstd] -libshared_sym_path = '@0@/libshared.sym'.format(meson.current_source_dir()) +libshared_sym_path = meson.current_source_dir() / 'libshared.sym' libshared_build_dir = meson.current_build_dir() libshared_static = static_library( @@ -333,6 +333,7 @@ libshared = shared_library( c_args : ['-fvisibility=default'], link_args : ['-shared', '-Wl,--version-script=' + libshared_sym_path], + link_depends : libshared_sym_path, link_whole : [libshared_static, libbasic, libbasic_gcrypt,