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. Test: Verify that coverage files are written to /data/misc/trace/<euid>/proc/... instead of /data/misc/trace/proc/... Change-Id: If58081a12b2b9bc40cfcbf64c99beafe198d07af
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user