summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cc/config/bionic.go6
-rw-r--r--cc/config/toolchain.go10
-rw-r--r--cc/linker.go6
3 files changed, 18 insertions, 4 deletions
diff --git a/cc/config/bionic.go b/cc/config/bionic.go
index d6e28eeee..0258408fc 100644
--- a/cc/config/bionic.go
+++ b/cc/config/bionic.go
@@ -17,4 +17,10 @@ package config
type toolchainBionic struct {
}
+var (
+ bionicDefaultSharedLibraries = []string{"libc", "libm", "libdl"}
+)
+
func (toolchainBionic) Bionic() bool { return true }
+
+func (toolchainBionic) DefaultSharedLibraries() []string { return bionicDefaultSharedLibraries }
diff --git a/cc/config/toolchain.go b/cc/config/toolchain.go
index 496277bc2..dfb2439c3 100644
--- a/cc/config/toolchain.go
+++ b/cc/config/toolchain.go
@@ -106,6 +106,10 @@ type Toolchain interface {
AvailableLibraries() []string
+ // DefaultSharedLibraries returns the list of shared libraries that will be added to all
+ // targets unless they explicitly specify system_shared_libs.
+ DefaultSharedLibraries() []string
+
Bionic() bool
}
@@ -165,7 +169,11 @@ func (toolchainBase) LibclangRuntimeLibraryArch() string {
}
func (toolchainBase) AvailableLibraries() []string {
- return []string{}
+ return nil
+}
+
+func (toolchainBase) DefaultSharedLibraries() []string {
+ return nil
}
func (toolchainBase) Bionic() bool {
diff --git a/cc/linker.go b/cc/linker.go
index d9ee0cfde..7b16b4097 100644
--- a/cc/linker.go
+++ b/cc/linker.go
@@ -344,7 +344,7 @@ func (linker *baseLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
// Provide a default system_shared_libs if it is unspecified. Note: If an
// empty list [] is specified, it implies that the module declines the
// default system_shared_libs.
- deps.SystemSharedLibs = []string{"libc", "libm", "libdl"}
+ deps.SystemSharedLibs = append(deps.SystemSharedLibs, ctx.toolchain().DefaultSharedLibraries()...)
}
if inList("libdl", deps.SharedLibs) {
@@ -365,10 +365,10 @@ func (linker *baseLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
indexList("libdl", deps.SystemSharedLibs) < indexList("libc", deps.SystemSharedLibs) {
ctx.PropertyErrorf("system_shared_libs", "libdl must be after libc")
}
-
- deps.LateSharedLibs = append(deps.LateSharedLibs, deps.SystemSharedLibs...)
}
+ deps.LateSharedLibs = append(deps.LateSharedLibs, deps.SystemSharedLibs...)
+
if ctx.Fuchsia() {
if ctx.ModuleName() != "libbioniccompat" &&
ctx.ModuleName() != "libcompiler_rt-extras" &&