1/* Linker version script for libwebrtc.so (Linux only).
2 *
3 * When libwebrtc.so is built with rtc_use_pipewire=true and
4 * -fvisibility=default, PipeWire lazy-load trampoline stubs (pw_*, spa_*)
5 * are exported as weak symbols. If the PipeWire ALSA plugin
6 * (libasound_module_pcm_pipewire.so) is later dlopen'd by libasound,
7 * the dynamic linker may resolve the plugin's pw_* references through
8 * libwebrtc.so's broken trampolines instead of the real libpipewire.so,
9 * causing a SIGSEGV (NULL function pointer dereference).
10 *
11 * This script hides only those third-party symbol namespaces while
12 * keeping every WebRTC / BoringSSL / internal symbol exported (which
13 * the Rust webrtc-sys bindings require).
14 */
15{
16 global:
17 *;
18
19 local:
20 pw_*;
21 spa_*;
22};