aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2018-04-23 22:44:39 +0000
committerPirama Arumuga Nainar <pirama@google.com>2018-04-23 22:44:39 +0000
commit0b882f0394f0deaf742e09b72123ac83d455c6c1 (patch)
tree326193cf51b980662fb9ed4cfabc6bd65d588f50
parent358056c058e43bfb2bbae8978fbfe4a8e4c84fb5 (diff)
downloadbuild_soong-0b882f0394f0deaf742e09b72123ac83d455c6c1.tar.gz
build_soong-0b882f0394f0deaf742e09b72123ac83d455c6c1.tar.bz2
build_soong-0b882f0394f0deaf742e09b72123ac83d455c6c1.zip
Revert "Support coverage instrumentation for Linux host"
This reverts commit 358056c058e43bfb2bbae8978fbfe4a8e4c84fb5. Reason for revert: Breaks build_test target in some branches. Change-Id: I604561033038d4ff15b74caf7b81ff5c8dd9632f
-rw-r--r--cc/cc.go14
-rw-r--r--cc/config/toolchain.go12
-rw-r--r--cc/config/x86_linux_bionic_host.go4
-rw-r--r--cc/config/x86_linux_host.go8
-rw-r--r--cc/coverage.go10
5 files changed, 10 insertions, 38 deletions
diff --git a/cc/cc.go b/cc/cc.go
index 1e313c0b..9722cf08 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -40,7 +40,6 @@ func init() {
ctx.BottomUp("ndk_api", ndkApiMutator).Parallel()
ctx.BottomUp("test_per_src", testPerSrcMutator).Parallel()
ctx.BottomUp("begin", beginMutator).Parallel()
- ctx.BottomUp("coverage", coverageLinkingMutator).Parallel()
})
android.PostDepsMutators(func(ctx android.RegisterMutatorsContext) {
@@ -55,6 +54,7 @@ func init() {
ctx.TopDown("sanitize_runtime_deps", sanitizerRuntimeDepsMutator())
+ ctx.BottomUp("coverage", coverageLinkingMutator).Parallel()
ctx.TopDown("vndk_deps", sabiDepsMutator)
ctx.TopDown("lto_deps", ltoDepsMutator)
@@ -809,15 +809,12 @@ func (c *Module) deps(ctx DepsContext) Deps {
if c.compiler != nil {
deps = c.compiler.compilerDeps(ctx, deps)
}
- // clang_rt.profile runtime libraries necessary for PGO and coverage
- // depend on symbols from libgcc. Add the runtime library dependency
- // before libgcc gets added in linkerDeps().
+ // Add the PGO dependency (the clang_rt.profile runtime library), which
+ // sometimes depends on symbols from libgcc, before libgcc gets added
+ // in linkerDeps().
if c.pgo != nil {
deps = c.pgo.deps(ctx, deps)
}
- if c.coverage != nil {
- deps = c.coverage.deps(ctx, deps)
- }
if c.linker != nil {
deps = c.linker.linkerDeps(ctx, deps)
}
@@ -827,6 +824,9 @@ func (c *Module) deps(ctx DepsContext) Deps {
if c.sanitize != nil {
deps = c.sanitize.deps(ctx, deps)
}
+ if c.coverage != nil {
+ deps = c.coverage.deps(ctx, deps)
+ }
if c.sabi != nil {
deps = c.sabi.deps(ctx, deps)
}
diff --git a/cc/config/toolchain.go b/cc/config/toolchain.go
index 19d28289..ca863a7d 100644
--- a/cc/config/toolchain.go
+++ b/cc/config/toolchain.go
@@ -85,8 +85,6 @@ type Toolchain interface {
AvailableLibraries() []string
Bionic() bool
-
- profileRuntimeLibrary() string
}
type toolchainBase struct {
@@ -171,10 +169,6 @@ func (toolchainBase) Bionic() bool {
return true
}
-func (t toolchainBase) profileRuntimeLibrary() string {
- return ""
-}
-
func (t toolchainBase) ToolPath() string {
return ""
}
@@ -246,12 +240,6 @@ func ThreadSanitizerRuntimeLibrary(t Toolchain) string {
}
func ProfileRuntimeLibrary(t Toolchain) string {
- lib := t.profileRuntimeLibrary()
- if lib != "" {
- // Return the directly exported profile library
- return lib
- }
- // Return the Android-specific library
return SanitizerRuntimeLibrary(t, "profile")
}
diff --git a/cc/config/x86_linux_bionic_host.go b/cc/config/x86_linux_bionic_host.go
index 290793e6..a9fb1f66 100644
--- a/cc/config/x86_linux_bionic_host.go
+++ b/cc/config/x86_linux_bionic_host.go
@@ -151,10 +151,6 @@ func (t *toolchainLinuxBionic) Bionic() bool {
return true
}
-func (t *toolchainLinuxBionic) profileRuntimeLibrary() string {
- return "libclang_rt.profile-x86_64"
-}
-
var toolchainLinuxBionicSingleton Toolchain = &toolchainLinuxBionic{}
func linuxBionicToolchainFactory(arch android.Arch) Toolchain {
diff --git a/cc/config/x86_linux_host.go b/cc/config/x86_linux_host.go
index 653f819e..354500eb 100644
--- a/cc/config/x86_linux_host.go
+++ b/cc/config/x86_linux_host.go
@@ -270,14 +270,6 @@ func (t *toolchainLinuxX8664) YasmFlags() string {
return "${config.LinuxX8664YasmFlags}"
}
-func (t *toolchainLinuxX86) profileRuntimeLibrary() string {
- return "libclang_rt.profile-i386"
-}
-
-func (t *toolchainLinuxX8664) profileRuntimeLibrary() string {
- return "libclang_rt.profile-x86_64"
-}
-
func (t *toolchainLinux) AvailableLibraries() []string {
return linuxAvailableLibraries
}
diff --git a/cc/coverage.go b/cc/coverage.go
index 671353c9..391b1181 100644
--- a/cc/coverage.go
+++ b/cc/coverage.go
@@ -16,7 +16,6 @@ package cc
import (
"android/soong/android"
- "android/soong/cc/config"
)
type CoverageProperties struct {
@@ -39,10 +38,6 @@ func (cov *coverage) props() []interface{} {
func (cov *coverage) begin(ctx BaseModuleContext) {}
func (cov *coverage) deps(ctx BaseModuleContext, deps Deps) Deps {
- if cov.Properties.CoverageEnabled {
- runtimeLibrary := config.ProfileRuntimeLibrary(ctx.toolchain())
- deps.LateStaticLibs = append(deps.LateStaticLibs, runtimeLibrary)
- }
return deps
}
@@ -104,8 +99,9 @@ func coverageLinkingMutator(mctx android.BottomUpMutatorContext) {
if !mctx.DeviceConfig().NativeCoverageEnabled() {
// Coverage is disabled globally
- } else if mctx.Darwin() || mctx.Windows() {
- // Coverage not supported for Darwin and Windows
+ } else if mctx.Host() {
+ // TODO(dwillemsen): because of -nodefaultlibs, we must depend on libclang_rt.profile-*.a
+ // Just turn off for now.
} else if c.coverage.Properties.Native_coverage != nil {
enabled = *c.coverage.Properties.Native_coverage
} else {