diff --git a/cc/config/bionic.go b/cc/config/bionic.go index e87f5712b..a1e3851dc 100644 --- a/cc/config/bionic.go +++ b/cc/config/bionic.go @@ -15,6 +15,7 @@ package config type toolchainBionic struct { + toolchainBase } var ( @@ -29,6 +30,12 @@ func (toolchainBionic) Bionic() bool { return true } func (toolchainBionic) DefaultSharedLibraries() []string { return bionicDefaultSharedLibraries } +func (toolchainBionic) ShlibSuffix() string { return ".so" } + +func (toolchainBionic) ExecutableSuffix() string { return "" } + +func (toolchainBionic) AvailableLibraries() []string { return nil } + func (toolchainBionic) CrtBeginStaticBinary() []string { return bionicCrtBeginStaticBinary } func (toolchainBionic) CrtBeginSharedBinary() []string { return bionicCrtBeginSharedBinary } func (toolchainBionic) CrtBeginSharedLibrary() []string { return bionicCrtBeginSharedLibrary } diff --git a/cc/config/darwin_host.go b/cc/config/darwin_host.go index 5e3f7c7d6..01b1e635c 100644 --- a/cc/config/darwin_host.go +++ b/cc/config/darwin_host.go @@ -176,6 +176,8 @@ func getMacTools(ctx android.PathContext) *macPlatformTools { type toolchainDarwin struct { cFlags, ldFlags string toolchain64Bit + toolchainNoCrt + toolchainBase } type toolchainDarwinX86 struct { @@ -254,6 +256,10 @@ func (t *toolchainDarwin) ShlibSuffix() string { return ".dylib" } +func (t *toolchainDarwin) ExecutableSuffix() string { + return "" +} + func (t *toolchainDarwin) AvailableLibraries() []string { return darwinAvailableLibraries } diff --git a/cc/config/toolchain.go b/cc/config/toolchain.go index 253bb06d2..d9eaf533f 100644 --- a/cc/config/toolchain.go +++ b/cc/config/toolchain.go @@ -140,14 +140,6 @@ func (toolchainBase) ToolchainLdflags() string { return "" } -func (toolchainBase) ShlibSuffix() string { - return ".so" -} - -func (toolchainBase) ExecutableSuffix() string { - return "" -} - func (toolchainBase) Asflags() string { return "" } @@ -160,16 +152,14 @@ func (toolchainBase) LibclangRuntimeLibraryArch() string { return "" } -func (toolchainBase) AvailableLibraries() []string { - return nil -} +type toolchainNoCrt struct{} -func (toolchainBase) CrtBeginStaticBinary() []string { return nil } -func (toolchainBase) CrtBeginSharedBinary() []string { return nil } -func (toolchainBase) CrtBeginSharedLibrary() []string { return nil } -func (toolchainBase) CrtEndStaticBinary() []string { return nil } -func (toolchainBase) CrtEndSharedBinary() []string { return nil } -func (toolchainBase) CrtEndSharedLibrary() []string { return nil } +func (toolchainNoCrt) CrtBeginStaticBinary() []string { return nil } +func (toolchainNoCrt) CrtBeginSharedBinary() []string { return nil } +func (toolchainNoCrt) CrtBeginSharedLibrary() []string { return nil } +func (toolchainNoCrt) CrtEndStaticBinary() []string { return nil } +func (toolchainNoCrt) CrtEndSharedBinary() []string { return nil } +func (toolchainNoCrt) CrtEndSharedLibrary() []string { return nil } func (toolchainBase) DefaultSharedLibraries() []string { return nil @@ -188,7 +178,6 @@ func (toolchainBase) Musl() bool { } type toolchain64Bit struct { - toolchainBase } func (toolchain64Bit) Is64Bit() bool { @@ -196,7 +185,6 @@ func (toolchain64Bit) Is64Bit() bool { } type toolchain32Bit struct { - toolchainBase } func (toolchain32Bit) Is64Bit() bool { diff --git a/cc/config/x86_linux_host.go b/cc/config/x86_linux_host.go index 4e8fd7752..1b126dea1 100644 --- a/cc/config/x86_linux_host.go +++ b/cc/config/x86_linux_host.go @@ -158,6 +158,7 @@ func init() { } type toolchainLinux struct { + toolchainBase cFlags, ldFlags string } @@ -247,9 +248,18 @@ func (t *toolchainLinux) AvailableLibraries() []string { return linuxAvailableLibraries } +func (toolchainLinux) ShlibSuffix() string { + return ".so" +} + +func (toolchainLinux) ExecutableSuffix() string { + return "" +} + // glibc specialization of the linux toolchain type toolchainGlibc struct { + toolchainNoCrt } func (toolchainGlibc) Glibc() bool { return true } diff --git a/cc/config/x86_windows_host.go b/cc/config/x86_windows_host.go index 2c8321100..a33606f99 100644 --- a/cc/config/x86_windows_host.go +++ b/cc/config/x86_windows_host.go @@ -153,6 +153,8 @@ func init() { type toolchainWindows struct { cFlags, ldFlags string + toolchainBase + toolchainNoCrt } type toolchainWindowsX86 struct {