Support BUILD_HOST_static=1 for musl and linux_bionic builds
BUILD_HOST_static=1 is useful for musl and linux_bionic builds to produce standalone static binaries. Bug: 179809553 Test: m USE_HOST_MUSL=true BUILD_HOST_static=1 apexer deapexer Change-Id: Iac0f4ca92c3ffb27bccd4cac15a6ef9fa5924471
This commit is contained in:
20
cc/binary.go
20
cc/binary.go
@@ -220,18 +220,18 @@ func newBinary(hod android.HostOrDeviceSupported, bazelable bool) (*Module, *bin
|
||||
func (binary *binaryDecorator) linkerInit(ctx BaseModuleContext) {
|
||||
binary.baseLinker.linkerInit(ctx)
|
||||
|
||||
if !ctx.toolchain().Bionic() && !ctx.toolchain().Musl() {
|
||||
if ctx.Os() == android.Linux {
|
||||
// Unless explicitly specified otherwise, host static binaries are built with -static
|
||||
// if HostStaticBinaries is true for the product configuration.
|
||||
if binary.Properties.Static_executable == nil && ctx.Config().HostStaticBinaries() {
|
||||
binary.Properties.Static_executable = BoolPtr(true)
|
||||
}
|
||||
} else {
|
||||
// Static executables are not supported on Darwin or Windows
|
||||
binary.Properties.Static_executable = nil
|
||||
if ctx.Os().Linux() && ctx.Host() {
|
||||
// Unless explicitly specified otherwise, host static binaries are built with -static
|
||||
// if HostStaticBinaries is true for the product configuration.
|
||||
if binary.Properties.Static_executable == nil && ctx.Config().HostStaticBinaries() {
|
||||
binary.Properties.Static_executable = BoolPtr(true)
|
||||
}
|
||||
}
|
||||
|
||||
if ctx.Darwin() || ctx.Windows() {
|
||||
// Static executables are not supported on Darwin or Windows
|
||||
binary.Properties.Static_executable = nil
|
||||
}
|
||||
}
|
||||
|
||||
func (binary *binaryDecorator) static() bool {
|
||||
|
Reference in New Issue
Block a user