Refactor sanitized library on-disk layout - Soong.
This CL moves the location of ASAN-ified libraries on disk in the
following manner:
/data/lib* --> /data/asan/system/lib*
/data/vendor/* --> /data/asan/vendor/*
There are a couple of advantages to this, including better isolation
from other components, and more transparent linker renaming and
SELinux policies.
Bug: 36574794
Bug: 36674745
Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device
boots. All sanitized libraries are correctly located in /data/asan/*.
Change-Id: I06bf459260ec451d4495a02562f640ad622f34c2
diff --git a/cc/cc.go b/cc/cc.go
index b107d01..6f5539f 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -212,6 +212,7 @@
installerProps() []interface{}
install(ctx ModuleContext, path android.Path)
inData() bool
+ inSanitizerDir() bool
hostToolPath() android.OptionalPath
}
@@ -993,10 +994,17 @@
if c.installer == nil {
return false
}
- if c.sanitize != nil && c.sanitize.inData() {
+ return c.installer.inData()
+}
+
+func (c *Module) InstallInSanitizerDir() bool {
+ if c.installer == nil {
+ return false
+ }
+ if c.sanitize != nil && c.sanitize.inSanitizerDir() {
return true
}
- return c.installer.inData()
+ return c.installer.inSanitizerDir()
}
func (c *Module) HostToolPath() android.OptionalPath {