diff --git a/meson.build b/meson.build index 6a12c4b94..b3bcd6718 100644 --- a/meson.build +++ b/meson.build @@ -111,6 +111,7 @@ add_project_arguments(cc.get_supported_arguments(warning_flags), language : 'c') global_link_args = [] test_link_args = [ '-Wl,-z,relro', + '-Wl,-z,defs', '-Wl,-z,now', ] foreach arg: test_link_args diff --git a/plugins/altos/meson.build b/plugins/altos/meson.build index eb0300b96..bd0d8e47c 100644 --- a/plugins/altos/meson.build +++ b/plugins/altos/meson.build @@ -17,6 +17,9 @@ shared_module('fu_plugin_altos', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ libelf, diff --git a/plugins/amt/meson.build b/plugins/amt/meson.build index b3711974d..18ddedb35 100644 --- a/plugins/amt/meson.build +++ b/plugins/amt/meson.build @@ -11,6 +11,9 @@ shared_module('fu_plugin_amt', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/colorhug/meson.build b/plugins/colorhug/meson.build index 206e71497..3b6b86279 100644 --- a/plugins/colorhug/meson.build +++ b/plugins/colorhug/meson.build @@ -19,6 +19,9 @@ shared_module('fu_plugin_colorhug', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/csr/meson.build b/plugins/csr/meson.build index 401283b20..3748c18e3 100644 --- a/plugins/csr/meson.build +++ b/plugins/csr/meson.build @@ -22,6 +22,7 @@ shared_module('fu_plugin_csr', plugin_deps, ], link_with : [ + libfwupdprivate, dfu, ], ) diff --git a/plugins/dell-dock/meson.build b/plugins/dell-dock/meson.build index 214420b50..a03a60760 100644 --- a/plugins/dell-dock/meson.build +++ b/plugins/dell-dock/meson.build @@ -21,6 +21,9 @@ shared_module('fu_plugin_dell_dock', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/dell-esrt/meson.build b/plugins/dell-esrt/meson.build index 76da59ea4..39fae22d3 100644 --- a/plugins/dell-esrt/meson.build +++ b/plugins/dell-esrt/meson.build @@ -12,8 +12,11 @@ shared_module('fu_plugin_dell_esrt', install : true, install_dir: plugin_dir, c_args : [ - cargs, - ], + cargs, + ], + link_with : [ + libfwupdprivate, + ], dependencies : [ plugin_deps, libsmbios_c, diff --git a/plugins/dell/meson.build b/plugins/dell/meson.build index 0a0dcc5df..67683591b 100644 --- a/plugins/dell/meson.build +++ b/plugins/dell/meson.build @@ -16,9 +16,12 @@ shared_module('fu_plugin_dell', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : [ - cargs, - ], + cargs, + ], dependencies : [ plugin_deps, efivar, @@ -51,7 +54,6 @@ if get_option('tests') valgrind, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : [ diff --git a/plugins/dfu/meson.build b/plugins/dfu/meson.build index cac1a82b1..404b7bbb7 100644 --- a/plugins/dfu/meson.build +++ b/plugins/dfu/meson.build @@ -31,6 +31,9 @@ dfu = static_library( gusb, gudev, ], + link_with : [ + libfwupdprivate, + ], c_args : cargs, include_directories : [ include_directories('../..'), @@ -55,6 +58,7 @@ shared_module('fu_plugin_dfu', plugin_deps, ], link_with : [ + libfwupdprivate, dfu, ], ) @@ -79,7 +83,6 @@ dfu_tool = executable( ], link_with : [ dfu, - fwupd, libfwupdprivate, ], c_args : cargs, @@ -130,7 +133,6 @@ if get_option('tests') ], link_with : [ dfu, - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/plugins/ebitdo/meson.build b/plugins/ebitdo/meson.build index a952bae21..4d438a740 100644 --- a/plugins/ebitdo/meson.build +++ b/plugins/ebitdo/meson.build @@ -17,6 +17,9 @@ shared_module('fu_plugin_ebitdo', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/fastboot/meson.build b/plugins/fastboot/meson.build index 4042e5310..3afa16734 100644 --- a/plugins/fastboot/meson.build +++ b/plugins/fastboot/meson.build @@ -16,6 +16,9 @@ shared_module('fu_plugin_fastboot', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/flashrom/meson.build b/plugins/flashrom/meson.build index 1b4250f03..ee048e51f 100644 --- a/plugins/flashrom/meson.build +++ b/plugins/flashrom/meson.build @@ -15,6 +15,9 @@ shared_module('fu_plugin_flashrom', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : [ cargs, '-DLOCALSTATEDIR="' + localstatedir + '"', diff --git a/plugins/nitrokey/meson.build b/plugins/nitrokey/meson.build index 324958fc6..1aee68859 100644 --- a/plugins/nitrokey/meson.build +++ b/plugins/nitrokey/meson.build @@ -17,6 +17,9 @@ shared_module('fu_plugin_nitrokey', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/nvme/meson.build b/plugins/nvme/meson.build index bc5d28137..a3af4638b 100644 --- a/plugins/nvme/meson.build +++ b/plugins/nvme/meson.build @@ -16,6 +16,9 @@ shared_module('fu_plugin_nvme', cargs, '-DLOCALSTATEDIR="' + localstatedir + '"', ], + link_with : [ + libfwupdprivate, + ], dependencies : [ plugin_deps, efivar, @@ -42,7 +45,6 @@ if get_option('tests') efivar, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/plugins/redfish/meson.build b/plugins/redfish/meson.build index 288f614e4..ef07bd819 100644 --- a/plugins/redfish/meson.build +++ b/plugins/redfish/meson.build @@ -13,6 +13,9 @@ shared_module('fu_plugin_redfish', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, @@ -44,7 +47,6 @@ if get_option('tests') libjsonglib, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/plugins/rts54hid/meson.build b/plugins/rts54hid/meson.build index 517dde396..ff6c621de 100644 --- a/plugins/rts54hid/meson.build +++ b/plugins/rts54hid/meson.build @@ -19,6 +19,9 @@ shared_module('fu_plugin_rts54hid', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/rts54hub/meson.build b/plugins/rts54hub/meson.build index a046af90a..3f525b4ad 100644 --- a/plugins/rts54hub/meson.build +++ b/plugins/rts54hub/meson.build @@ -18,6 +18,9 @@ shared_module('fu_plugin_rts54hub', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/steelseries/meson.build b/plugins/steelseries/meson.build index cf4fd3342..e2fc45ea5 100644 --- a/plugins/steelseries/meson.build +++ b/plugins/steelseries/meson.build @@ -16,6 +16,9 @@ shared_module('fu_plugin_steelseries', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/superio/meson.build b/plugins/superio/meson.build index 57edaf93c..fb27ac504 100644 --- a/plugins/superio/meson.build +++ b/plugins/superio/meson.build @@ -16,6 +16,9 @@ shared_module('fu_plugin_superio', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/synapticsmst/meson.build b/plugins/synapticsmst/meson.build index 3a93115b2..197620b77 100644 --- a/plugins/synapticsmst/meson.build +++ b/plugins/synapticsmst/meson.build @@ -18,8 +18,11 @@ shared_module('fu_plugin_synapticsmst', install : true, install_dir: plugin_dir, c_args : [ - cargs, - ], + cargs, + ], + link_with : [ + libfwupdprivate, + ], dependencies : [ plugin_deps, ], @@ -47,7 +50,6 @@ if get_option('tests') valgrind, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : [ diff --git a/plugins/test/meson.build b/plugins/test/meson.build index 7f07a596c..2dfdd91e9 100644 --- a/plugins/test/meson.build +++ b/plugins/test/meson.build @@ -16,6 +16,9 @@ shared_module('fu_plugin_test', ], install : install_dummy, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/thunderbolt-power/meson.build b/plugins/thunderbolt-power/meson.build index 59257c6ed..1df672074 100644 --- a/plugins/thunderbolt-power/meson.build +++ b/plugins/thunderbolt-power/meson.build @@ -11,6 +11,9 @@ fu_plugin_thunderbolt_power = shared_module('fu_plugin_thunderbolt_power', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/thunderbolt/meson.build b/plugins/thunderbolt/meson.build index 17e81b73e..ce7c76203 100644 --- a/plugins/thunderbolt/meson.build +++ b/plugins/thunderbolt/meson.build @@ -12,6 +12,9 @@ fu_plugin_thunderbolt = shared_module('fu_plugin_thunderbolt', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, @@ -33,7 +36,6 @@ executable('tbtfwucli', c_args : cargs, link_with : [ fu_plugin_thunderbolt, - fwupd, libfwupdprivate, ], dependencies : [ @@ -62,7 +64,6 @@ if get_option('tests') and umockdev.found() and gio.version().version_compare('> umockdev, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/plugins/udev/meson.build b/plugins/udev/meson.build index cdadc08d2..33eb149ca 100644 --- a/plugins/udev/meson.build +++ b/plugins/udev/meson.build @@ -12,6 +12,9 @@ shared_module('fu_plugin_udev', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, @@ -33,7 +36,6 @@ executable( plugin_deps, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : cargs, @@ -59,7 +61,6 @@ if get_option('tests') plugin_deps, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/plugins/uefi/meson.build b/plugins/uefi/meson.build index 575f6c64e..09ebdf82d 100644 --- a/plugins/uefi/meson.build +++ b/plugins/uefi/meson.build @@ -26,6 +26,9 @@ shared_module('fu_plugin_uefi', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, @@ -62,7 +65,6 @@ executable( efiboot, ], link_with : [ - fwupd, libfwupdprivate, ], install : true, @@ -101,7 +103,6 @@ if get_option('tests') efiboot, ], link_with : [ - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/plugins/unifying/meson.build b/plugins/unifying/meson.build index 011fd0187..f3ab13008 100644 --- a/plugins/unifying/meson.build +++ b/plugins/unifying/meson.build @@ -26,6 +26,9 @@ shared_module('fu_plugin_unifying', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, @@ -47,7 +50,7 @@ if get_option('tests') plugin_deps, ], link_with : [ - fwupd, + libfwupdprivate, ], c_args : cargs, ) diff --git a/plugins/upower/meson.build b/plugins/upower/meson.build index 9d027744b..62c7dfc54 100644 --- a/plugins/upower/meson.build +++ b/plugins/upower/meson.build @@ -11,6 +11,9 @@ shared_module('fu_plugin_upower', ], install : true, install_dir: plugin_dir, + link_with : [ + libfwupdprivate, + ], c_args : cargs, dependencies : [ plugin_deps, diff --git a/plugins/wacom-usb/meson.build b/plugins/wacom-usb/meson.build index f7f74648d..44374232c 100644 --- a/plugins/wacom-usb/meson.build +++ b/plugins/wacom-usb/meson.build @@ -27,6 +27,7 @@ shared_module('fu_plugin_wacom_usb', plugin_deps, ], link_with : [ + libfwupdprivate, dfu, ], ) @@ -57,7 +58,6 @@ if get_option('tests') ], link_with : [ dfu, - fwupd, libfwupdprivate, ], c_args : cargs diff --git a/src/meson.build b/src/meson.build index 427801ee1..99e16a4d0 100644 --- a/src/meson.build +++ b/src/meson.build @@ -59,6 +59,9 @@ libfwupdprivate = static_library( valgrind, uuid, ], + link_with : [ + fwupd, + ], c_args : [ '-DFU_OFFLINE_DESTDIR=""', ],