summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arun@arunraghavan.net>2019-08-03 01:52:09 +0530
committerArun Raghavan <arun@arunraghavan.net>2019-08-05 09:52:32 +0530
commitf996ad0688c60c968f9594b7c88904eaedd2d896 (patch)
tree4198427baa49c12e6ff4323f49479431c36ec83d
parentd8927b0e533509fcf04b83a542bd5d2e380c67a9 (diff)
build-sys: meson: Add -Wl,no-delete to relevant libraries
This mirrors the autotools option for all server-side dynamic libraries.
-rw-r--r--meson.build7
-rw-r--r--src/meson.build1
-rw-r--r--src/modules/alsa/meson.build1
-rw-r--r--src/modules/bluetooth/meson.build1
-rw-r--r--src/modules/echo-cancel/meson.build2
-rw-r--r--src/modules/meson.build2
-rw-r--r--src/modules/raop/meson.build1
-rw-r--r--src/modules/rtp/meson.build1
-rw-r--r--src/pulse/meson.build3
-rw-r--r--src/pulsecore/meson.build7
-rw-r--r--src/utils/meson.build2
11 files changed, 24 insertions, 4 deletions
diff --git a/meson.build b/meson.build
index 1a504cc02..f4a1a7cf4 100644
--- a/meson.build
+++ b/meson.build
@@ -286,12 +286,17 @@ cdata.set('GETGROUPS_T', 'gid_t')
configinc = include_directories('.')
topinc = include_directories('src')
-# CFLAGS
+# CFLAGS/LDFLAGS
pa_c_args = ['-DHAVE_CONFIG_H', '-D_GNU_SOURCE']
server_c_args = ['-D__INCLUDED_FROM_PULSE_AUDIO']
cdata.set('MESON_BUILD', 1)
+# On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
+# so we request the nodelete flag to be enabled.
+# On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
+nodelete_link_args = ['-Wl,-z,nodelete']
+
# Code coverage
if get_option('gcov')
diff --git a/src/meson.build b/src/meson.build
index 8063355e2..7cd949962 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -181,6 +181,7 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
libpulsecommon_headers,
include_directories : [configinc, topinc],
c_args : [pa_c_args],
+ link_args : [nodelete_link_args],
install : true,
install_dir : privlibdir,
dependencies : [libm_dep, thread_dep, shm_dep, sndfile_dep, dbus_dep, x11_dep, libsystemd_dep, glib_dep, gtk_dep, asyncns_dep],
diff --git a/src/modules/alsa/meson.build b/src/modules/alsa/meson.build
index edf5b2e25..8e8994c30 100644
--- a/src/modules/alsa/meson.build
+++ b/src/modules/alsa/meson.build
@@ -30,6 +30,7 @@ libalsa_util = shared_library('alsa-util',
libalsa_util_sources,
libalsa_util_headers,
c_args : [pa_c_args, server_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, alsa_dep, dbus_dep, libm_dep, udev_dep],
install : true,
diff --git a/src/modules/bluetooth/meson.build b/src/modules/bluetooth/meson.build
index 7056fcd54..17587356d 100644
--- a/src/modules/bluetooth/meson.build
+++ b/src/modules/bluetooth/meson.build
@@ -24,6 +24,7 @@ libbluez5_util = shared_library('bluez5-util',
libbluez5_util_sources,
libbluez5_util_headers,
c_args : [pa_c_args, server_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, dbus_dep, sbc_dep],
install : true,
diff --git a/src/modules/echo-cancel/meson.build b/src/modules/echo-cancel/meson.build
index 0a3deb902..03d522149 100644
--- a/src/modules/echo-cancel/meson.build
+++ b/src/modules/echo-cancel/meson.build
@@ -15,7 +15,7 @@ libwebrtc_util = shared_library('webrtc-util',
cpp_args : [pa_c_args, server_c_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, webrtc_dep],
- link_args : [ '-Wl,--unresolved-symbols=ignore-in-object-files' ],
+ link_args : [nodelete_link_args, '-Wl,--unresolved-symbols=ignore-in-object-files'],
install : true,
install_dir : modlibexecdir,
)
diff --git a/src/modules/meson.build b/src/modules/meson.build
index 61ff7fa48..89aa6b6e7 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -275,7 +275,7 @@ foreach m : all_modules
install : true,
install_dir : modlibexecdir,
dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep] + extra_deps,
- link_args : [ '-Wl,--no-undefined' ],
+ link_args : [nodelete_link_args, '-Wl,--no-undefined' ],
link_with : extra_libs,
name_prefix : '',
implicit_include_directories : false)
diff --git a/src/modules/raop/meson.build b/src/modules/raop/meson.build
index 58d01489a..d1501126a 100644
--- a/src/modules/raop/meson.build
+++ b/src/modules/raop/meson.build
@@ -18,6 +18,7 @@ libraop = shared_library('raop',
libraop_sources,
libraop_headers,
c_args : [pa_c_args, server_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, librtp_dep, openssl_dep],
install : true,
diff --git a/src/modules/rtp/meson.build b/src/modules/rtp/meson.build
index cbb32ad44..2180540e1 100644
--- a/src/modules/rtp/meson.build
+++ b/src/modules/rtp/meson.build
@@ -18,6 +18,7 @@ librtp = shared_library('rtp',
librtp_sources,
librtp_headers,
c_args : [pa_c_args, server_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
install : true,
diff --git a/src/pulse/meson.build b/src/pulse/meson.build
index 493bf582d..7920a781d 100644
--- a/src/pulse/meson.build
+++ b/src/pulse/meson.build
@@ -76,6 +76,7 @@ libpulse = shared_library('pulse',
version : libpulse_version,
include_directories : [configinc, topinc],
c_args : [pa_c_args],
+ link_args : [nodelete_link_args],
install : true,
dependencies : [libm_dep, thread_dep, libpulsecommon_dep, dbus_dep],
implicit_include_directories : false)
@@ -92,6 +93,7 @@ libpulse_simple = shared_library('pulse-simple',
'simple.h',
version : libpulse_simple_version,
c_args : [pa_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep],
install : true,
@@ -105,6 +107,7 @@ if glib_dep.found()
'glib-mainloop.h',
version : libpulse_mainloop_glib_version,
c_args : [pa_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, glib_dep],
install : true,
diff --git a/src/pulsecore/meson.build b/src/pulsecore/meson.build
index 48cc79ff4..99dbe77ab 100644
--- a/src/pulsecore/meson.build
+++ b/src/pulsecore/meson.build
@@ -189,6 +189,7 @@ libpulsecore = shared_library('pulsecore-' + pa_version_major_minor,
orc_sources, orc_headers,
include_directories : [configinc, topinc],
c_args : [pa_c_args, server_c_args],
+ link_args : [nodelete_link_args],
install : true,
install_dir : privlibdir,
link_with : libpulsecore_simd_lib,
@@ -204,6 +205,7 @@ libavahi_wrap = shared_library('avahi-wrap',
'avahi-wrap.c',
'avahi-wrap.h',
c_args : [pa_c_args, server_c_args, database_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, avahi_dep],
implicit_include_directories : false, # pulsecore/poll.h <vs> /usr/include/poll.h
@@ -215,6 +217,7 @@ libcli = shared_library('cli',
'cli.c',
'cli.h',
c_args : [pa_c_args, server_c_args, database_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
install : true,
@@ -227,6 +230,7 @@ libprotocol_cli = shared_library('protocol-cli',
'protocol-cli.c',
'protocol-cli.h',
c_args : [pa_c_args, server_c_args, database_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libcli_dep],
install : true,
@@ -237,6 +241,7 @@ libprotocol_http = shared_library('protocol-http',
['protocol-http.c', 'mime-type.c'],
['protocol-http.h', 'mime-type.h'],
c_args : [pa_c_args, server_c_args, database_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
install : true,
@@ -247,6 +252,7 @@ libprotocol_native = shared_library('protocol-native',
'protocol-native.c',
['protocol-native.h', 'native-common.h'],
c_args : [pa_c_args, server_c_args, database_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, dbus_dep],
install : true,
@@ -257,6 +263,7 @@ libprotocol_simple = shared_library('protocol-simple',
'protocol-simple.c',
'protocol-simple.h',
c_args : [pa_c_args, server_c_args, database_c_args],
+ link_args : [nodelete_link_args],
include_directories : [configinc, topinc],
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
install : true,
diff --git a/src/utils/meson.build b/src/utils/meson.build
index 388a0c433..e82e6eae2 100644
--- a/src/utils/meson.build
+++ b/src/utils/meson.build
@@ -88,7 +88,7 @@ if cc.has_header('sys/soundcard.h')
install_dir : padsplibdir,
include_directories : [configinc, topinc],
link_with : [libpulsecommon, libpulse],
- link_args : ['-ldl'],
+ link_args : [nodelete_link_args, '-ldl'],
dependencies: [thread_dep],
c_args : [pa_c_args, '-Wno-nonnull-compare']
)