rust: Add support for bootstrap linker.
Adds the 'bootstrap' property to Rust modules to set the linker to the bootstrap linker. Bug: 194276829 Test: set bootstrap: true on module, checked .interp section on output. Test: bootstrapped binary runs. Change-Id: I459c8194902cfea3c44b060e70d28a43fcba3ade
This commit is contained in:
@@ -220,6 +220,15 @@ func transformSrctoCrate(ctx ModuleContext, main android.Path, deps PathDeps, fl
|
||||
linkFlags = append(linkFlags, flags.GlobalLinkFlags...)
|
||||
linkFlags = append(linkFlags, flags.LinkFlags...)
|
||||
|
||||
// Check if this module needs to use the bootstrap linker
|
||||
if ctx.RustModule().Bootstrap() && !ctx.RustModule().InRecovery() && !ctx.RustModule().InRamdisk() && !ctx.RustModule().InVendorRamdisk() {
|
||||
dynamicLinker := "-Wl,-dynamic-linker,/system/bin/bootstrap/linker"
|
||||
if ctx.toolchain().Is64Bit() {
|
||||
dynamicLinker += "64"
|
||||
}
|
||||
linkFlags = append(linkFlags, dynamicLinker)
|
||||
}
|
||||
|
||||
libFlags := makeLibFlags(deps)
|
||||
|
||||
// Collect dependencies
|
||||
|
Reference in New Issue
Block a user