aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2019-07-02 23:47:35 -0700
committerOliver Nguyen <olivernguyen@google.com>2020-02-03 19:04:09 +0000
commitc2cf2c5dbe777e67d0dfc9f3130c265c81dd6198 (patch)
tree24c3ac43924be72fb2f60b0396f1d939b57ff96b
parent2363a2b162cac1946ae4a8677a473890da98dc10 (diff)
downloadbuild_soong-c2cf2c5dbe777e67d0dfc9f3130c265c81dd6198.tar.gz
build_soong-c2cf2c5dbe777e67d0dfc9f3130c265c81dd6198.tar.bz2
build_soong-c2cf2c5dbe777e67d0dfc9f3130c265c81dd6198.zip
Wrap getenv when linking a coverage-enabled binary
The wrapper to getenv() appends the effective userid (euid) of the current process to GCOV_PREFIX. This avoids conflicts and permissions issues when multiple processes try to create/access the same directories and files under /data/misc/trace. Bug: 148178774 Test: Verify that coverage files are written to /data/misc/trace/<euid>/proc/... instead of /data/misc/trace/proc/... Change-Id: If58081a12b2b9bc40cfcbf64c99beafe198d07af Merged-In: If58081a12b2b9bc40cfcbf64c99beafe198d07af (cherry picked from commit 100bbdc8f3458b8a48b339356130cf4165aaadea)
-rw-r--r--cc/coverage.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/cc/coverage.go b/cc/coverage.go
index c189398a..0de0c1c9 100644
--- a/cc/coverage.go
+++ b/cc/coverage.go
@@ -116,6 +116,8 @@ func (cov *coverage) flags(ctx ModuleContext, flags Flags, deps PathDeps) (Flags
coverage := ctx.GetDirectDepWithTag(getProfileLibraryName(ctx), coverageDepTag).(*Module)
deps.WholeStaticLibs = append(deps.WholeStaticLibs, coverage.OutputFile().Path())
+
+ flags.LdFlags = append(flags.LdFlags, "-Wl,--wrap,getenv")
}
return flags, deps