aboutsummaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2019-04-02 21:06:08 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-04-02 21:06:08 -0700
commit2278b4ea57c0aa247034e94e2192747a2cd62b03 (patch)
tree8a5fdff467d87980d4906189da5c7a2cc9da9269 /cc
parent0c39a64d3ae0517eb27c5c1beb1ddc2cd1142f77 (diff)
parent87fd9dec38738aa465771e4b1579fdcb4c226dc3 (diff)
downloadbuild_soong-2278b4ea57c0aa247034e94e2192747a2cd62b03.tar.gz
build_soong-2278b4ea57c0aa247034e94e2192747a2cd62b03.tar.bz2
build_soong-2278b4ea57c0aa247034e94e2192747a2cd62b03.zip
Revert "Enable lld for windows" am: 61166dc047
am: 87fd9dec38 Change-Id: I0f9345529010c691cd86af3a63c9723e740b8c64
Diffstat (limited to 'cc')
-rw-r--r--cc/binary.go2
-rw-r--r--cc/builder.go20
-rw-r--r--cc/library.go17
-rw-r--r--cc/linker.go8
4 files changed, 18 insertions, 29 deletions
diff --git a/cc/binary.go b/cc/binary.go
index 51e68fcd..35c3d85d 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -384,7 +384,7 @@ func (binary *binaryDecorator) link(ctx ModuleContext,
TransformObjToDynamicBinary(ctx, objs.objFiles, sharedLibs, deps.StaticLibs,
deps.LateStaticLibs, deps.WholeStaticLibs, linkerDeps, deps.CrtBegin, deps.CrtEnd, true,
- builderFlags, outputFile, nil)
+ builderFlags, outputFile)
objs.coverageFiles = append(objs.coverageFiles, deps.StaticLibObjs.coverageFiles...)
objs.coverageFiles = append(objs.coverageFiles, deps.WholeStaticLibObjs.coverageFiles...)
diff --git a/cc/builder.go b/cc/builder.go
index 24c9377d..c64243f6 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -26,7 +26,6 @@ import (
"strings"
"github.com/google/blueprint"
- "github.com/google/blueprint/pathtools"
"android/soong/android"
"android/soong/cc/config"
@@ -596,7 +595,7 @@ func transformDarwinObjToStaticLib(ctx android.ModuleContext, objFiles android.P
// and shared libraries, to a shared library (.so) or dynamic executable
func TransformObjToDynamicBinary(ctx android.ModuleContext,
objFiles, sharedLibs, staticLibs, lateStaticLibs, wholeStaticLibs, deps android.Paths,
- crtBegin, crtEnd android.OptionalPath, groupLate bool, flags builderFlags, outputFile android.WritablePath, implicitOutputs android.WritablePaths) {
+ crtBegin, crtEnd android.OptionalPath, groupLate bool, flags builderFlags, outputFile android.WritablePath) {
ldCmd := "${config.ClangBin}/clang++"
@@ -633,11 +632,7 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
}
for _, lib := range sharedLibs {
- libFile := lib.String()
- if ctx.Windows() {
- libFile = pathtools.ReplaceExtension(libFile, "a")
- }
- libFlagsList = append(libFlagsList, libFile)
+ libFlagsList = append(libFlagsList, lib.String())
}
deps = append(deps, staticLibs...)
@@ -648,12 +643,11 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
}
ctx.Build(pctx, android.BuildParams{
- Rule: ld,
- Description: "link " + outputFile.Base(),
- Output: outputFile,
- ImplicitOutputs: implicitOutputs,
- Inputs: objFiles,
- Implicits: deps,
+ Rule: ld,
+ Description: "link " + outputFile.Base(),
+ Output: outputFile,
+ Inputs: objFiles,
+ Implicits: deps,
Args: map[string]string{
"ldCmd": ldCmd,
"crtBegin": crtBegin.String(),
diff --git a/cc/library.go b/cc/library.go
index 5556fd4f..cf207473 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -357,10 +357,9 @@ func (library *libraryDecorator) linkerFlags(ctx ModuleContext, flags Flags) Fla
)
}
} else {
- f = append(f, "-shared")
- if !ctx.Windows() {
- f = append(f, "-Wl,-soname,"+libName+flags.Toolchain.ShlibSuffix())
- }
+ f = append(f,
+ "-shared",
+ "-Wl,-soname,"+libName+flags.Toolchain.ShlibSuffix())
}
flags.LdFlags = append(f, flags.LdFlags...)
@@ -684,14 +683,6 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
outputFile := android.PathForModuleOut(ctx, fileName)
ret := outputFile
- var implicitOutputs android.WritablePaths
- if ctx.Windows() {
- importLibraryPath := android.PathForModuleOut(ctx, pathtools.ReplaceExtension(fileName, "a"))
-
- flags.LdFlags = append(flags.LdFlags, "-Wl,--out-implib="+importLibraryPath.String())
- implicitOutputs = append(implicitOutputs, importLibraryPath)
- }
-
builderFlags := flagsToBuilderFlags(flags)
// Optimize out relinking against shared libraries whose interface hasn't changed by
@@ -743,7 +734,7 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
TransformObjToDynamicBinary(ctx, objs.objFiles, sharedLibs,
deps.StaticLibs, deps.LateStaticLibs, deps.WholeStaticLibs,
- linkerDeps, deps.CrtBegin, deps.CrtEnd, false, builderFlags, outputFile, implicitOutputs)
+ linkerDeps, deps.CrtBegin, deps.CrtEnd, false, builderFlags, outputFile)
objs.coverageFiles = append(objs.coverageFiles, deps.StaticLibObjs.coverageFiles...)
objs.coverageFiles = append(objs.coverageFiles, deps.WholeStaticLibObjs.coverageFiles...)
diff --git a/cc/linker.go b/cc/linker.go
index 179a9985..fd958ba8 100644
--- a/cc/linker.go
+++ b/cc/linker.go
@@ -290,6 +290,10 @@ func (linker *baseLinker) useClangLld(ctx ModuleContext) bool {
if ctx.Darwin() {
return false
}
+ // http://b/110800681 - lld cannot link Android's Windows modules yet.
+ if ctx.Windows() {
+ return false
+ }
if linker.Properties.Use_clang_lld != nil {
return Bool(linker.Properties.Use_clang_lld)
}
@@ -343,7 +347,7 @@ func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
// darwin defaults to treating undefined symbols as errors
flags.LdFlags = append(flags.LdFlags, "-Wl,-undefined,dynamic_lookup")
}
- } else if !ctx.Darwin() && !ctx.Windows() {
+ } else if !ctx.Darwin() {
flags.LdFlags = append(flags.LdFlags, "-Wl,--no-undefined")
}
@@ -380,7 +384,7 @@ func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
flags.LdFlags = append(flags.LdFlags, proptools.NinjaAndShellEscapeList(linker.Properties.Ldflags)...)
- if ctx.Host() && !ctx.Windows() {
+ if ctx.Host() {
rpath_prefix := `\$$ORIGIN/`
if ctx.Darwin() {
rpath_prefix = "@loader_path/"