summaryrefslogtreecommitdiff
path: root/rust/binary.go
diff options
context:
space:
mode:
Diffstat (limited to 'rust/binary.go')
-rw-r--r--rust/binary.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/rust/binary.go b/rust/binary.go
index 5d9b0a67b..0dc320e5f 100644
--- a/rust/binary.go
+++ b/rust/binary.go
@@ -92,12 +92,21 @@ func (binary *binaryDecorator) compilerFlags(ctx ModuleContext, flags Flags) Fla
func (binary *binaryDecorator) compilerDeps(ctx DepsContext, deps Deps) Deps {
deps = binary.baseCompiler.compilerDeps(ctx, deps)
+ static := Bool(binary.Properties.Static_executable)
if ctx.toolchain().Bionic() {
- deps = bionicDeps(ctx, deps, Bool(binary.Properties.Static_executable))
- if Bool(binary.Properties.Static_executable) {
+ deps = bionicDeps(ctx, deps, static)
+ if static {
deps.CrtBegin = []string{"crtbegin_static"}
} else {
- deps.CrtBegin = []string{"libc_musl_crtbegin_dynamic"}
+ deps.CrtBegin = []string{"crtbegin_dynamic"}
+ }
+ deps.CrtEnd = []string{"crtend_android"}
+ } else if ctx.Os() == android.LinuxMusl {
+ deps = muslDeps(ctx, deps, static)
+ if static {
+ deps.CrtBegin = []string{"libc_musl_crtbegin_static"}
+ } else {
+ deps.CrtBegin = []string{"libc_musl_crtbegin_dynamic", "musl_linker_script"}
}
deps.CrtEnd = []string{"libc_musl_crtend"}
}