diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2019-07-02 23:47:35 -0700 |
---|---|---|
committer | Oliver Nguyen <olivernguyen@google.com> | 2020-02-03 19:04:09 +0000 |
commit | c2cf2c5dbe777e67d0dfc9f3130c265c81dd6198 (patch) | |
tree | 24c3ac43924be72fb2f60b0396f1d939b57ff96b | |
parent | 2363a2b162cac1946ae4a8677a473890da98dc10 (diff) | |
download | build_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.go | 2 |
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 |