radv: split linker script for android since it requires different symbols

Fixes: 4956f6d0bf ("radv: Add Android module info to linker script.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8338
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21518>
This commit is contained in:
Eric Engestrom 2023-02-24 10:57:24 +00:00 committed by Marge Bot
parent 669a68489d
commit 735df516e9
3 changed files with 23 additions and 7 deletions

View file

@ -170,8 +170,13 @@ libvulkan_radeon_ld_args = []
libvulkan_radeon_link_depends = []
if with_ld_version_script
libvulkan_radeon_ld_args += ['-Wl,--version-script', join_paths(meson.current_source_dir(), 'vulkan.sym')]
libvulkan_radeon_link_depends += files('vulkan.sym')
if with_platform_android
libvulkan_radeon_ld_args += ['-Wl,--version-script', join_paths(meson.current_source_dir(), 'vulkan-android.sym')]
libvulkan_radeon_link_depends += files('vulkan-android.sym')
else
libvulkan_radeon_ld_args += ['-Wl,--version-script', join_paths(meson.current_source_dir(), 'vulkan.sym')]
libvulkan_radeon_link_depends += files('vulkan.sym')
endif
endif
radv_build_id = get_option('radv-build-id')

View file

@ -0,0 +1,16 @@
{
global:
vk_icdGetInstanceProcAddr;
vk_icdGetPhysicalDeviceProcAddr;
vk_icdNegotiateLoaderICDInterfaceVersion;
# Andoid looks for this global in HAL modules. In the source it occurs
# as HAL_MODULE_INFO_SYM (which is just a #define for HMI) and it's an
# instance of struct hwvulkan_module_t.
HMI;
local:
# When static linking LLVM, all its symbols are public API.
# That may cause symbol collision, so explicitly demote everything.
*;
};

View file

@ -4,11 +4,6 @@
vk_icdGetPhysicalDeviceProcAddr;
vk_icdNegotiateLoaderICDInterfaceVersion;
# Andoid looks for this global in HAL modules. In the source it occurs
# as HAL_MODULE_INFO_SYM (which is just a #define for HMI) and it's an
# instance of struct hwvulkan_module_t.
HMI;
local:
# When static linking LLVM, all its symbols are public API.
# That may cause symbol collision, so explicitly demote everything.