diff --git a/prelude/android/android_binary_native_library_rules.bzl b/prelude/android/android_binary_native_library_rules.bzl index 8a9603cce79b..03d380db1f32 100644 --- a/prelude/android/android_binary_native_library_rules.bzl +++ b/prelude/android/android_binary_native_library_rules.bzl @@ -1661,6 +1661,7 @@ def relink_libraries(ctx: AnalysisContext, libraries_by_platform: dict[str, dict relinker_link_args = ( original_shared_library.link_args + [LinkArgs(flags = [cmd_args(relinker_version_script, format = "-Wl,--version-script={}")])] + + [LinkArgs(flags = ctx.attrs.relinker_extra_args)] + ([LinkArgs(infos = [set_link_info_link_whole(red_linkable[1]) for red_linkable in red_linkables[platform]])] if len(red_linkables) > 0 else []) ) diff --git a/prelude/decls/android_rules.bzl b/prelude/decls/android_rules.bzl index 4a30ac7765a3..62efecd0c11a 100644 --- a/prelude/decls/android_rules.bzl +++ b/prelude/decls/android_rules.bzl @@ -139,6 +139,7 @@ android_aar = prelude_rule( "never_mark_as_unused_dependency": attrs.option(attrs.bool(), default = None), "on_unused_dependencies": attrs.option(attrs.enum(UnusedDependenciesAction), default = None), "proguard_config": attrs.option(attrs.source(), default = None), + "relinker_extra_args": attrs.list(attrs.arg(), default = [], doc = "Extra arguments passed when relinking all libraries."), "relinker_extra_deps": attrs.list(attrs.dep(), default = [], doc = "Deps statically linked to every native lib by the relinker."), "relinker_whitelist": attrs.list(attrs.regex(), default = []), "required_for_source_only_abi": attrs.bool(default = False), @@ -256,6 +257,7 @@ android_binary = prelude_rule( "primary_dex_patterns": attrs.list(attrs.string(), default = []), "proguard_config": attrs.option(attrs.source(), default = None), "proguard_jvm_args": attrs.list(attrs.string(), default = []), + "relinker_extra_args": attrs.list(attrs.arg(), default = [], doc = "Extra arguments passed when relinking all libraries."), "relinker_extra_deps": attrs.list(attrs.dep(), default = [], doc = "Deps statically linked to every native lib by the relinker."), "relinker_whitelist": attrs.list(attrs.regex(), default = []), "resource_compression": attrs.enum(ResourceCompressionMode, default = "disabled"), @@ -491,6 +493,7 @@ android_bundle = prelude_rule( "primary_dex_patterns": attrs.list(attrs.string(), default = []), "proguard_config": attrs.option(attrs.source(), default = None), "proguard_jvm_args": attrs.list(attrs.string(), default = []), + "relinker_extra_args": attrs.list(attrs.arg(), default = [], doc = "Extra arguments passed when relinking all libraries."), "relinker_extra_deps": attrs.list(attrs.dep(), default = [], doc = "Deps statically linked to every native lib by the relinker."), "relinker_whitelist": attrs.list(attrs.regex(), default = []), "resource_compression": attrs.enum(ResourceCompressionMode, default = "disabled"),