76 lines
3.1 KiB
Diff
76 lines
3.1 KiB
Diff
|
diff --git a/meson.build b/meson.build
|
||
|
index c5135330f..1b66a1fc4 100644
|
||
|
--- a/meson.build
|
||
|
+++ b/meson.build
|
||
|
@@ -424,7 +424,7 @@ cdata.set('MESON_BUILD', 1)
|
||
|
# 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.
|
||
|
# Windows doesn't support this flag.
|
||
|
-if host_machine.system() != 'windows'
|
||
|
+if host_machine.system() not in ['windows', 'darwin']
|
||
|
nodelete_link_args = ['-Wl,-z,nodelete']
|
||
|
else
|
||
|
nodelete_link_args = []
|
||
|
diff --git a/src/modules/echo-cancel/meson.build b/src/modules/echo-cancel/meson.build
|
||
|
index 641cd35e7..523bffac4 100644
|
||
|
--- a/src/modules/echo-cancel/meson.build
|
||
|
+++ b/src/modules/echo-cancel/meson.build
|
||
|
@@ -10,12 +10,17 @@ libwebrtc_util_sources = [
|
||
|
'webrtc.cc'
|
||
|
]
|
||
|
|
||
|
+ignore_unresolved_symbols_link_args = ['-Wl,--unresolved-symbols=ignore-in-object-files']
|
||
|
+if meson.get_compiler('c').get_linker_id() == 'ld64'
|
||
|
+ ignore_unresolved_symbols_link_args = [ '-Wl,-undefined,dynamic_lookup' ]
|
||
|
+endif
|
||
|
+
|
||
|
libwebrtc_util = shared_library('webrtc-util',
|
||
|
libwebrtc_util_sources,
|
||
|
cpp_args : [pa_c_args, server_c_args],
|
||
|
include_directories : [configinc, topinc],
|
||
|
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libatomic_ops_dep, webrtc_dep, libintl_dep],
|
||
|
- link_args : [nodelete_link_args, '-Wl,--unresolved-symbols=ignore-in-object-files'],
|
||
|
+ link_args : [nodelete_link_args, ignore_unresolved_symbols_link_args],
|
||
|
install : true,
|
||
|
install_rpath : privlibdir,
|
||
|
install_dir : modlibexecdir,
|
||
|
diff --git a/src/modules/meson.build b/src/modules/meson.build
|
||
|
index 1e12569dc..66f3e46a4 100644
|
||
|
--- a/src/modules/meson.build
|
||
|
+++ b/src/modules/meson.build
|
||
|
@@ -298,6 +298,11 @@ all_modules += [
|
||
|
# FIXME: meson doesn't support multiple RPATH arguments currently
|
||
|
rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
|
||
|
|
||
|
+no_undefined_link_args = ['-Wl,--no-undefined']
|
||
|
+if meson.get_compiler('c').get_linker_id() == 'ld64'
|
||
|
+ no_undefined_link_args = [ '-Wl,-undefined,error' ]
|
||
|
+endif
|
||
|
+
|
||
|
foreach m : all_modules
|
||
|
name = m[0]
|
||
|
sources = m[1]
|
||
|
@@ -315,7 +320,7 @@ foreach m : all_modules
|
||
|
install_rpath : rpath_dirs,
|
||
|
install_dir : modlibexecdir,
|
||
|
dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps,
|
||
|
- link_args : [nodelete_link_args, '-Wl,--no-undefined' ],
|
||
|
+ link_args : [nodelete_link_args, no_undefined_link_args ],
|
||
|
link_with : extra_libs,
|
||
|
name_prefix : '',
|
||
|
implicit_include_directories : false)
|
||
|
diff --git a/src/pulse/meson.build b/src/pulse/meson.build
|
||
|
index 1b82c807c..938e4addd 100644
|
||
|
--- a/src/pulse/meson.build
|
||
|
+++ b/src/pulse/meson.build
|
||
|
@@ -75,6 +75,9 @@ run_target('update-map-file',
|
||
|
[ libpulse_headers, 'simple.h', join_paths(meson.build_root(), 'src', 'pulse', 'version.h') ] ])
|
||
|
|
||
|
versioning_link_args = '-Wl,-version-script=' + join_paths(meson.source_root(), 'src', 'pulse', 'map-file')
|
||
|
+if meson.get_compiler('c').get_linker_id() == 'ld64'
|
||
|
+ versioning_link_args = []
|
||
|
+endif
|
||
|
|
||
|
libpulse = shared_library('pulse',
|
||
|
libpulse_sources,
|