[PATCH 1/4] meson: Reuse linker script strings



There are some linker scripts which are used at link time. These
are not modified very much, so by using variables with already
formatted string can increase meson's parsing time.

Preformatted strings have been used for `binary`, `device` and
`settings` link scripts.

Those link scripts which are used as the only linker flag has
also been changed and moved to the target using them.
---
 clients/cli/meson.build                   |  6 +-----
 clients/meson.build                       |  6 +-----
 clients/tui/meson.build                   |  6 +-----
 dispatcher/meson.build                    |  6 +-----
 libnm-glib/meson.build                    | 12 ++----------
 libnm-util/meson.build                    |  6 +-----
 libnm/meson.build                         |  6 +-----
 meson.build                               |  5 +++++
 src/devices/adsl/meson.build              |  6 +-----
 src/devices/bluetooth/meson.build         |  6 +-----
 src/devices/ovs/meson.build               |  6 +-----
 src/devices/team/meson.build              |  6 +-----
 src/devices/wifi/meson.build              |  6 +-----
 src/devices/wwan/meson.build              | 12 ++----------
 src/dhcp/meson.build                      |  6 +-----
 src/meson.build                           |  6 +-----
 src/ppp/meson.build                       |  6 +-----
 src/settings/plugins/ibft/meson.build     |  6 +-----
 src/settings/plugins/ifcfg-rh/meson.build |  6 +-----
 src/settings/plugins/ifupdown/meson.build |  6 +-----
 20 files changed, 26 insertions(+), 105 deletions(-)

diff --git a/clients/cli/meson.build b/clients/cli/meson.build
index adfe0e94a..3cba03ed6 100644
--- a/clients/cli/meson.build
+++ b/clients/cli/meson.build
@@ -31,10 +31,6 @@ cflags = clients_cflags + [
   '-DNMCLI_LOCALEDIR="@0@"'.format(nm_localedir)
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_binary),
-]
-
 if enable_polkit_agent
   sources += nm_polkit_listener
 
@@ -46,7 +42,7 @@ executable(
   sources,
   dependencies: deps,
   c_args: cflags,
-  link_args: ldflags,
+  link_args: linker_script_binary_ldflag,
   link_depends: linker_script_binary,
   install: true
 )
diff --git a/clients/meson.build b/clients/meson.build
index efcaf299f..faac7eea4 100644
--- a/clients/meson.build
+++ b/clients/meson.build
@@ -14,16 +14,12 @@ cflags = clients_cflags + [
   '-DG_LOG_DOMAIN="@0@"'.format(name),
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_binary),
-]
-
 executable(
   name,
   name + '.c',
   dependencies: deps,
   c_args: cflags,
-  link_args: ldflags,
+  link_args: linker_script_binary_ldflag,
   link_depends: linker_script_binary,
   install: true
 )
diff --git a/clients/tui/meson.build b/clients/tui/meson.build
index d2bf27c68..09f600fbe 100644
--- a/clients/tui/meson.build
+++ b/clients/tui/meson.build
@@ -61,16 +61,12 @@ deps += [
   libnmt_newt_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_binary),
-]
-
 executable(
   name,
   sources,
   dependencies: deps,
   c_args: cflags,
-  link_args: ldflags,
+  link_args: linker_script_binary_ldflag,
   link_depends: linker_script_binary,
   install: true
 )
diff --git a/dispatcher/meson.build b/dispatcher/meson.build
index c6b94a39e..b9b4eab1b 100644
--- a/dispatcher/meson.build
+++ b/dispatcher/meson.build
@@ -54,17 +54,13 @@ sources += gnome.gdbus_codegen(
   namespace: 'NMDBus'
 )
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_binary),
-]
-
 executable(
   name,
   sources,
   dependencies: deps,
   c_args: cflags,
   link_with: libnm_dispatcher_core,
-  link_args: ldflags,
+  link_args: linker_script_binary_ldflag,
   link_depends: linker_script_binary,
   install: true,
   install_dir: nm_libexecdir
diff --git a/libnm-glib/meson.build b/libnm-glib/meson.build
index 9ec79ca72..f7fdf6339 100644
--- a/libnm-glib/meson.build
+++ b/libnm-glib/meson.build
@@ -102,17 +102,13 @@ deps = common_deps + [libnm_util_dep]
 
 symbol_map = join_paths(meson.current_source_dir(), 'libnm-glib-vpn.ver')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(symbol_map),
-]
-
 libnm_glib_vpn = shared_library(
   'nm-glib-vpn',
   sources: sources + libnm_glib_vpn_enum,
   version: libnm_glib_vpn_version,
   dependencies: deps,
   c_args: cflags,
-  link_args: ldflags,
+  link_args: '-Wl,--version-script,' + symbol_map,
   link_depends: symbol_map,
   install: true
 )
@@ -194,10 +190,6 @@ deps = common_deps + [
 
 symbol_map = join_paths(meson.current_source_dir(), 'libnm-glib.ver')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(symbol_map),
-]
-
 libnm_glib = shared_library(
   'nm-glib',
   sources: sources + libnm_glib_enum + [nm_secret_agent_glue],
@@ -207,7 +199,7 @@ libnm_glib = shared_library(
     '-DNMRUNDIR="@0@"'.format(nm_pkgrundir),
   ],
   link_with: libdeprecated_nm_glib,
-  link_args: ldflags,
+  link_args: '-Wl,--version-script,' + symbol_map,
   link_depends: symbol_map,
   install: true
 )
diff --git a/libnm-util/meson.build b/libnm-util/meson.build
index 3cd53d9e7..63a174c7e 100644
--- a/libnm-util/meson.build
+++ b/libnm-util/meson.build
@@ -110,17 +110,13 @@ cflags = common_cflags + [
 
 symbol_map = join_paths(meson.current_source_dir(), 'libnm-util.ver')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(symbol_map),
-]
-
 libnm_util = shared_library(
   'nm-util',
   sources: sources + libnm_utils_enum,
   version: libnm_util_version,
   dependencies: deps,
   c_args: cflags,
-  link_args: ldflags,
+  link_args: '-Wl,--version-script,' + symbol_map,
   link_depends: symbol_map,
   install: true
 )
diff --git a/libnm/meson.build b/libnm/meson.build
index 949908191..279377411 100644
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -145,10 +145,6 @@ deps = [
 
 symbol_map = join_paths(meson.current_source_dir(), 'libnm.ver')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(symbol_map),
-]
-
 libnm = shared_library(
   'nm',
   sources: libnm_sources + libnm_enum,
@@ -158,7 +154,7 @@ libnm = shared_library(
   c_args: cflags,
   link_with: libnm_utils,
   link_whole: libnm_core,
-  link_args: ldflags,
+  link_args: '-Wl,--version-script,' + symbol_map,
   link_depends: symbol_map,
   install: true
 )
diff --git a/meson.build b/meson.build
index 5a565e5a5..1a2d3b97b 100644
--- a/meson.build
+++ b/meson.build
@@ -166,8 +166,13 @@ add_project_arguments(common_flags, language: 'c')
 add_project_link_arguments(common_ldflags, language: 'c')
 
 linker_script_binary = join_paths(meson.source_root(), 'linker-script-binary.ver')
+linker_script_binary_ldflag = '-Wl,--version-script,' + linker_script_binary
+
 linker_script_devices = join_paths(meson.source_root(), 'linker-script-devices.ver')
+linker_script_devices_ldflag = '-Wl,--version-script,' + linker_script_devices
+
 linker_script_settings = join_paths(meson.source_root(), 'linker-script-settings.ver')
+linker_script_settings_ldflag = '-Wl,--version-script,' + linker_script_settings
 
 uuid_dep = dependency('uuid')
 libelogind_dep = dependency('libelogind', version: '>= 219', required: false)
diff --git a/src/devices/adsl/meson.build b/src/devices/adsl/meson.build
index 227f67f62..4cf9cc6cd 100644
--- a/src/devices/adsl/meson.build
+++ b/src/devices/adsl/meson.build
@@ -9,15 +9,11 @@ deps = [
   nm_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_devices),
-]
-
 libnm_device_plugin_adsl = shared_module(
   'nm-device-plugin-adsl',
   sources: sources,
   dependencies: deps,
-  link_args: ldflags,
+  link_args: linker_script_devices_ldflag,
   link_depends: linker_script_devices,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/devices/bluetooth/meson.build b/src/devices/bluetooth/meson.build
index 85d29c762..8dae65db5 100644
--- a/src/devices/bluetooth/meson.build
+++ b/src/devices/bluetooth/meson.build
@@ -14,10 +14,6 @@ deps = [
   nm_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_devices),
-]
-
 if enable_bluez5_dun
   sources += files('nm-bluez5-dun.c')
 
@@ -28,7 +24,7 @@ libnm_device_plugin_bluetooth = shared_module(
   'nm-device-plugin-bluetooth',
   sources: sources,
   dependencies: deps,
-  link_args: ldflags,
+  link_args: linker_script_devices_ldflag,
   link_depends: linker_script_devices,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/devices/ovs/meson.build b/src/devices/ovs/meson.build
index c867e17b5..27690d434 100644
--- a/src/devices/ovs/meson.build
+++ b/src/devices/ovs/meson.build
@@ -12,16 +12,12 @@ deps = [
   nm_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_devices),
-]
-
 libnm_device_plugin_ovs = shared_module(
   'nm-device-plugin-ovs',
   sources: sources,
   dependencies: deps,
   c_args: '-DRUNSTATEDIR="@0@"'.format(nm_runstatedir),
-  link_args: ldflags,
+  link_args: linker_script_devices_ldflag,
   link_depends: linker_script_devices,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/devices/team/meson.build b/src/devices/team/meson.build
index 84782890e..e3ead6fe7 100644
--- a/src/devices/team/meson.build
+++ b/src/devices/team/meson.build
@@ -10,15 +10,11 @@ deps = [
   nm_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_devices),
-]
-
 libnm_device_plugin_team = shared_module(
   'nm-device-plugin-team',
   sources: sources,
   dependencies: deps,
-  link_args: ldflags,
+  link_args: linker_script_devices_ldflag,
   link_depends: linker_script_devices,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/devices/wifi/meson.build b/src/devices/wifi/meson.build
index a6801f055..ca7f17f19 100644
--- a/src/devices/wifi/meson.build
+++ b/src/devices/wifi/meson.build
@@ -21,15 +21,11 @@ deps = [
   nm_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_devices),
-]
-
 libnm_device_plugin_wifi = shared_module(
   'nm-device-plugin-wifi',
   sources: sources,
   dependencies: deps,
-  link_args: ldflags,
+  link_args: linker_script_devices_ldflag,
   link_depends: linker_script_devices,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/devices/wwan/meson.build b/src/devices/wwan/meson.build
index 70f697777..1d605bf6f 100644
--- a/src/devices/wwan/meson.build
+++ b/src/devices/wwan/meson.build
@@ -16,15 +16,11 @@ endif
 
 symbol_name = join_paths(meson.current_source_dir(), 'libnm-wwan.ver')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(symbol_name),
-]
-
 libnm_wwan = shared_module(
   'nm-wwan',
   sources: sources,
   dependencies: deps,
-  link_args: ldflags,
+  link_args: '-Wl,--version-script,' + symbol_name,
   link_depends: symbol_name,
   install: true,
   install_dir: nm_pkglibdir
@@ -50,16 +46,12 @@ sources = files(
 
 deps += libnmdbus_dep
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_devices),
-]
-
 libnm_device_plugin_wwan = shared_module(
   'nm-device-plugin-wwan',
   sources: sources,
   dependencies: deps,
   link_with: libnm_wwan,
-  link_args: ldflags,
+  link_args: linker_script_devices_ldflag,
   link_depends: linker_script_devices,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/dhcp/meson.build b/src/dhcp/meson.build
index a08ca7653..7735550d4 100644
--- a/src/dhcp/meson.build
+++ b/src/dhcp/meson.build
@@ -6,16 +6,12 @@ cflags = [
   '-DNMRUNDIR="@0@"'.format(nm_pkgrundir),
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_binary),
-]
-
 executable(
   name,
   name + '.c',
   dependencies: nm_core_dep,
   c_args: cflags,
-  link_args: ldflags,
+  link_args: linker_script_binary_ldflag,
   link_depends: linker_script_binary,
   install: true,
   install_dir: nm_libexecdir
diff --git a/src/meson.build b/src/meson.build
index b3d7f333e..a08101f2a 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -255,10 +255,6 @@ deps = [
   nm_core_dep
 ]
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_binary),
-]
-
 name = 'nm-iface-helper'
 
 executable(
@@ -267,7 +263,7 @@ executable(
   dependencies: deps,
   c_args: cflags,
   link_with: [libnetwork_manager_base, libsystemd_nm],
-  link_args: ldflags,
+  link_args: linker_script_binary_ldflag,
   link_depends: linker_script_binary,
   install: true,
   install_dir: nm_libexecdir
diff --git a/src/ppp/meson.build b/src/ppp/meson.build
index 4c512e760..ad329060e 100644
--- a/src/ppp/meson.build
+++ b/src/ppp/meson.build
@@ -28,16 +28,12 @@ deps = [
 
 symbol_map = join_paths(meson.current_source_dir(), 'nm-ppp-plugin.ver')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(symbol_map),
-]
-
 core_plugins += shared_module(
   name,
   sources: 'nm-ppp-manager.c',
   dependencies: deps,
   c_args: '-DPPPD_PLUGIN_DIR="@0@"'.format(pppd_plugin_dir),
-  link_args: ldflags,
+  link_args: '-Wl,--version-script,' + symbol_map,
   link_depends: symbol_map,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/settings/plugins/ibft/meson.build b/src/settings/plugins/ibft/meson.build
index ace2f72a5..f9aa8f41c 100644
--- a/src/settings/plugins/ibft/meson.build
+++ b/src/settings/plugins/ibft/meson.build
@@ -17,17 +17,13 @@ sources = files(
   'nms-ibft-plugin.c'
 )
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_settings),
-]
-
 libnm_settings_plugin_ibft = shared_module(
   name,
   sources: sources,
   dependencies: nm_dep,
   c_args: cflags,
   link_with: libnms_ibft_core,
-  link_args: ldflags,
+  link_args: linker_script_settings_ldflag,
   link_depends: linker_script_settings,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/settings/plugins/ifcfg-rh/meson.build b/src/settings/plugins/ifcfg-rh/meson.build
index eab51c0c0..dc507c70e 100644
--- a/src/settings/plugins/ifcfg-rh/meson.build
+++ b/src/settings/plugins/ifcfg-rh/meson.build
@@ -46,17 +46,13 @@ libnms_ifcfg_rh_core = static_library(
 
 sources = [dbus_sources] + files('nms-ifcfg-rh-connection.c')
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_settings),
-]
-
 libnm_settings_plugin_ifcfg_rh = shared_module(
   'nm-settings-plugin-ifcfg-rh',
   sources: sources,
   dependencies: deps,
   c_args: cflags,
   link_with: [libnmdbus_ifcfg_rh, libnms_ifcfg_rh_core],
-  link_args: ldflags,
+  link_args: linker_script_settings_ldflag,
   link_depends: linker_script_settings,
   install: true,
   install_dir: nm_pkglibdir
diff --git a/src/settings/plugins/ifupdown/meson.build b/src/settings/plugins/ifupdown/meson.build
index 1dc875a64..5402f2c5d 100644
--- a/src/settings/plugins/ifupdown/meson.build
+++ b/src/settings/plugins/ifupdown/meson.build
@@ -22,17 +22,13 @@ sources = files(
   'nms-ifupdown-plugin.c'
 )
 
-ldflags = [
-  '-Wl,--version-script,@0@'.format(linker_script_settings),
-]
-
 libnm_settings_plugin_ifupdown = shared_module(
   'nm-settings-plugin-ifupdown',
   sources: sources,
   dependencies: deps,
   c_args: cflags,
   link_with: libnms_ifupdown_core,
-  link_args: ldflags,
+  link_args: linker_script_settings_ldflag,
   link_depends: linker_script_settings,
   install: true,
   install_dir: nm_pkglibdir
-- 
2.15.1



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]