Change stdlib linkage for C libraries.
Rust C libraries cannot currently depend on dylibs. This prevents device libraries from attempting to link the stdlib dynamically, instead using rlibs. Bug: 144861059 Test: Simple Rust library compiles as a shared/static library. Change-Id: I38e5aae90e50ddcc5fc72d5a8d1820d92955cf48
This commit is contained in:
parent
c6e9f92cfa
commit
88f2b1ce53
|
@ -19,6 +19,7 @@ import (
|
|||
"strings"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/rust/config"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -304,6 +305,15 @@ func (library *libraryDecorator) compilerProps() []interface{} {
|
|||
}
|
||||
|
||||
func (library *libraryDecorator) compilerDeps(ctx DepsContext, deps Deps) Deps {
|
||||
|
||||
// TODO(b/144861059) Remove if C libraries support dylib linkage in the future.
|
||||
if !ctx.Host() && (library.static() || library.shared()) {
|
||||
library.setNoStdlibs()
|
||||
for _, stdlib := range config.Stdlibs {
|
||||
deps.Rlibs = append(deps.Rlibs, stdlib+".static")
|
||||
}
|
||||
}
|
||||
|
||||
deps = library.baseCompiler.compilerDeps(ctx, deps)
|
||||
|
||||
if ctx.toolchain().Bionic() && (library.dylib() || library.shared()) {
|
||||
|
|
Loading…
Reference in New Issue