diff --git a/apex/apex.go b/apex/apex.go index 1d4f7b2cf..72f3db1ae 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -2016,7 +2016,9 @@ func (a *apexBundle) checkStaticLinkingToStubLibraries(ctx android.ModuleContext // The dynamic linker and crash_dump tool in the runtime APEX is the only // exception to this rule. It can't make the static dependencies dynamic // because it can't do the dynamic linking for itself. - if apexName == "com.android.runtime" && (fromName == "linker" || fromName == "crash_dump") { + // Same rule should be applied to linkerconfig, because it should be executed + // only with static linked libraries before linker is available with ld.config.txt + if apexName == "com.android.runtime" && (fromName == "linker" || fromName == "crash_dump" || fromName == "linkerconfig") { return false } diff --git a/cc/cc.go b/cc/cc.go index f922ea5b5..f62df3c33 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -1128,7 +1128,7 @@ func (c *Module) ExcludeFromRecoverySnapshot() bool { func isBionic(name string) bool { switch name { - case "libc", "libm", "libdl", "libdl_android", "linker": + case "libc", "libm", "libdl", "libdl_android", "linker", "linkerconfig": return true } return false diff --git a/linkerconfig/proto/Android.bp b/linkerconfig/proto/Android.bp index c04887e9b..4d971288d 100644 --- a/linkerconfig/proto/Android.bp +++ b/linkerconfig/proto/Android.bp @@ -7,6 +7,10 @@ cc_library_static { type: "lite", }, srcs: ["linker_config.proto"], + apex_available: [ + "//apex_available:platform", + "//apex_available:anyapex", + ], } python_library_host {