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/android/module.go b/android/module.go
index 8228a9c..4fba1cf 100644
--- a/android/module.go
+++ b/android/module.go
@@ -89,6 +89,7 @@
AddMissingDependencies(deps []string)
InstallInData() bool
+ InstallInSanitizerDir() bool
RequiredModuleNames() []string
}
@@ -103,6 +104,7 @@
Enabled() bool
Target() Target
InstallInData() bool
+ InstallInSanitizerDir() bool
SkipInstall()
}
@@ -399,6 +401,10 @@
return false
}
+func (p *ModuleBase) InstallInSanitizerDir() bool {
+ return false
+}
+
func (a *ModuleBase) generateModuleTarget(ctx blueprint.ModuleContext) {
allInstalledFiles := Paths{}
allCheckbuildFiles := Paths{}
@@ -629,6 +635,10 @@
return a.module.InstallInData()
}
+func (a *androidModuleContext) InstallInSanitizerDir() bool {
+ return a.module.InstallInSanitizerDir()
+}
+
func (a *androidModuleContext) InstallFileName(installPath OutputPath, name string, srcPath Path,
deps ...Path) OutputPath {