diff options
| -rw-r--r-- | cc/config/bionic.go | 6 | ||||
| -rw-r--r-- | cc/config/toolchain.go | 10 | ||||
| -rw-r--r-- | cc/linker.go | 6 |
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" && |