Skip to content

Commit f996ad0

Browse files
committed
build-sys: meson: Add -Wl,no-delete to relevant libraries
This mirrors the autotools option for all server-side dynamic libraries.
1 parent d8927b0 commit f996ad0

File tree

11 files changed

+24
-4
lines changed

11 files changed

+24
-4
lines changed

meson.build

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,12 +286,17 @@ cdata.set('GETGROUPS_T', 'gid_t')
286286
configinc = include_directories('.')
287287
topinc = include_directories('src')
288288

289-
# CFLAGS
289+
# CFLAGS/LDFLAGS
290290

291291
pa_c_args = ['-DHAVE_CONFIG_H', '-D_GNU_SOURCE']
292292
server_c_args = ['-D__INCLUDED_FROM_PULSE_AUDIO']
293293
cdata.set('MESON_BUILD', 1)
294294

295+
# On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
296+
# so we request the nodelete flag to be enabled.
297+
# On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
298+
nodelete_link_args = ['-Wl,-z,nodelete']
299+
295300
# Code coverage
296301

297302
if get_option('gcov')

src/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
181181
libpulsecommon_headers,
182182
include_directories : [configinc, topinc],
183183
c_args : [pa_c_args],
184+
link_args : [nodelete_link_args],
184185
install : true,
185186
install_dir : privlibdir,
186187
dependencies : [libm_dep, thread_dep, shm_dep, sndfile_dep, dbus_dep, x11_dep, libsystemd_dep, glib_dep, gtk_dep, asyncns_dep],

src/modules/alsa/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ libalsa_util = shared_library('alsa-util',
3030
libalsa_util_sources,
3131
libalsa_util_headers,
3232
c_args : [pa_c_args, server_c_args],
33+
link_args : [nodelete_link_args],
3334
include_directories : [configinc, topinc],
3435
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, alsa_dep, dbus_dep, libm_dep, udev_dep],
3536
install : true,

src/modules/bluetooth/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ libbluez5_util = shared_library('bluez5-util',
2424
libbluez5_util_sources,
2525
libbluez5_util_headers,
2626
c_args : [pa_c_args, server_c_args],
27+
link_args : [nodelete_link_args],
2728
include_directories : [configinc, topinc],
2829
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, dbus_dep, sbc_dep],
2930
install : true,

src/modules/echo-cancel/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ libwebrtc_util = shared_library('webrtc-util',
1515
cpp_args : [pa_c_args, server_c_args],
1616
include_directories : [configinc, topinc],
1717
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, webrtc_dep],
18-
link_args : [ '-Wl,--unresolved-symbols=ignore-in-object-files' ],
18+
link_args : [nodelete_link_args, '-Wl,--unresolved-symbols=ignore-in-object-files'],
1919
install : true,
2020
install_dir : modlibexecdir,
2121
)

src/modules/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ foreach m : all_modules
275275
install : true,
276276
install_dir : modlibexecdir,
277277
dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep] + extra_deps,
278-
link_args : [ '-Wl,--no-undefined' ],
278+
link_args : [nodelete_link_args, '-Wl,--no-undefined' ],
279279
link_with : extra_libs,
280280
name_prefix : '',
281281
implicit_include_directories : false)

src/modules/raop/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ libraop = shared_library('raop',
1818
libraop_sources,
1919
libraop_headers,
2020
c_args : [pa_c_args, server_c_args],
21+
link_args : [nodelete_link_args],
2122
include_directories : [configinc, topinc],
2223
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, librtp_dep, openssl_dep],
2324
install : true,

src/modules/rtp/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ librtp = shared_library('rtp',
1818
librtp_sources,
1919
librtp_headers,
2020
c_args : [pa_c_args, server_c_args],
21+
link_args : [nodelete_link_args],
2122
include_directories : [configinc, topinc],
2223
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
2324
install : true,

src/pulse/meson.build

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ libpulse = shared_library('pulse',
7676
version : libpulse_version,
7777
include_directories : [configinc, topinc],
7878
c_args : [pa_c_args],
79+
link_args : [nodelete_link_args],
7980
install : true,
8081
dependencies : [libm_dep, thread_dep, libpulsecommon_dep, dbus_dep],
8182
implicit_include_directories : false)
@@ -92,6 +93,7 @@ libpulse_simple = shared_library('pulse-simple',
9293
'simple.h',
9394
version : libpulse_simple_version,
9495
c_args : [pa_c_args],
96+
link_args : [nodelete_link_args],
9597
include_directories : [configinc, topinc],
9698
dependencies : [libpulse_dep, libpulsecommon_dep],
9799
install : true,
@@ -105,6 +107,7 @@ if glib_dep.found()
105107
'glib-mainloop.h',
106108
version : libpulse_mainloop_glib_version,
107109
c_args : [pa_c_args],
110+
link_args : [nodelete_link_args],
108111
include_directories : [configinc, topinc],
109112
dependencies : [libpulse_dep, libpulsecommon_dep, glib_dep],
110113
install : true,

src/pulsecore/meson.build

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ libpulsecore = shared_library('pulsecore-' + pa_version_major_minor,
189189
orc_sources, orc_headers,
190190
include_directories : [configinc, topinc],
191191
c_args : [pa_c_args, server_c_args],
192+
link_args : [nodelete_link_args],
192193
install : true,
193194
install_dir : privlibdir,
194195
link_with : libpulsecore_simd_lib,
@@ -204,6 +205,7 @@ libavahi_wrap = shared_library('avahi-wrap',
204205
'avahi-wrap.c',
205206
'avahi-wrap.h',
206207
c_args : [pa_c_args, server_c_args, database_c_args],
208+
link_args : [nodelete_link_args],
207209
include_directories : [configinc, topinc],
208210
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, avahi_dep],
209211
implicit_include_directories : false, # pulsecore/poll.h <vs> /usr/include/poll.h
@@ -215,6 +217,7 @@ libcli = shared_library('cli',
215217
'cli.c',
216218
'cli.h',
217219
c_args : [pa_c_args, server_c_args, database_c_args],
220+
link_args : [nodelete_link_args],
218221
include_directories : [configinc, topinc],
219222
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
220223
install : true,
@@ -227,6 +230,7 @@ libprotocol_cli = shared_library('protocol-cli',
227230
'protocol-cli.c',
228231
'protocol-cli.h',
229232
c_args : [pa_c_args, server_c_args, database_c_args],
233+
link_args : [nodelete_link_args],
230234
include_directories : [configinc, topinc],
231235
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libcli_dep],
232236
install : true,
@@ -237,6 +241,7 @@ libprotocol_http = shared_library('protocol-http',
237241
['protocol-http.c', 'mime-type.c'],
238242
['protocol-http.h', 'mime-type.h'],
239243
c_args : [pa_c_args, server_c_args, database_c_args],
244+
link_args : [nodelete_link_args],
240245
include_directories : [configinc, topinc],
241246
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
242247
install : true,
@@ -247,6 +252,7 @@ libprotocol_native = shared_library('protocol-native',
247252
'protocol-native.c',
248253
['protocol-native.h', 'native-common.h'],
249254
c_args : [pa_c_args, server_c_args, database_c_args],
255+
link_args : [nodelete_link_args],
250256
include_directories : [configinc, topinc],
251257
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, dbus_dep],
252258
install : true,
@@ -257,6 +263,7 @@ libprotocol_simple = shared_library('protocol-simple',
257263
'protocol-simple.c',
258264
'protocol-simple.h',
259265
c_args : [pa_c_args, server_c_args, database_c_args],
266+
link_args : [nodelete_link_args],
260267
include_directories : [configinc, topinc],
261268
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
262269
install : true,

src/utils/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ if cc.has_header('sys/soundcard.h')
8888
install_dir : padsplibdir,
8989
include_directories : [configinc, topinc],
9090
link_with : [libpulsecommon, libpulse],
91-
link_args : ['-ldl'],
91+
link_args : [nodelete_link_args, '-ldl'],
9292
dependencies: [thread_dep],
9393
c_args : [pa_c_args, '-Wno-nonnull-compare']
9494
)

0 commit comments

Comments
 (0)