From 7638290dcbf0320e9bc978f424624b0af9bc3286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?= Date: Thu, 9 Jan 2025 23:29:43 +0100 Subject: [PATCH] agent: Exclude OS/arch symbols in version script Newer toolchains, such as the default toolchain on FreeBSD 14.2, don't like references to symbols that don't exist. Instead of listing JNI_OnLoad, which is only defined for Android builds, we use a separate version script for Android instead. --- lib/agent/frida-agent-android.version | 8 ++++++++ lib/agent/frida-agent.version | 1 - lib/agent/meson.build | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 lib/agent/frida-agent-android.version diff --git a/lib/agent/frida-agent-android.version b/lib/agent/frida-agent-android.version new file mode 100644 index 000000000..c273bd0ce --- /dev/null +++ b/lib/agent/frida-agent-android.version @@ -0,0 +1,8 @@ +{ + global: + frida_agent_main; + JNI_OnLoad; + + local: + *; +}; diff --git a/lib/agent/frida-agent.version b/lib/agent/frida-agent.version index c273bd0ce..d9571f630 100644 --- a/lib/agent/frida-agent.version +++ b/lib/agent/frida-agent.version @@ -1,7 +1,6 @@ { global: frida_agent_main; - JNI_OnLoad; local: *; diff --git a/lib/agent/meson.build b/lib/agent/meson.build index 0aab03532..266decf00 100644 --- a/lib/agent/meson.build +++ b/lib/agent/meson.build @@ -28,7 +28,7 @@ if host_os_family == 'windows' elif host_os_family == 'darwin' extra_link_args += '-Wl,-exported_symbol,_frida_agent_main' else - symscript = 'frida-agent.version' + symscript = (host_os == 'android') ? 'frida-agent-android.version' : 'frida-agent.version' extra_link_args += '-Wl,--version-script,' + meson.current_source_dir() / symscript extra_link_depends += symscript endif