diff options
Diffstat (limited to 'rust/binary.go')
-rw-r--r-- | rust/binary.go | 15 |
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"} } |