Export asan configuration to make
Test: Ninja files for ASAN'd aosp_flounder-eng identical
Change-Id: Ib29cac0bc391dadd9ff27992c7b356415182767f
diff --git a/cc/makevars.go b/cc/makevars.go
index 3dd0f74..098ec02 100644
--- a/cc/makevars.go
+++ b/cc/makevars.go
@@ -44,6 +44,10 @@
ctx.Strict("GLOBAL_CLANG_CPPFLAGS_NO_OVERRIDE", "")
ctx.Strict("NDK_PREBUILT_SHARED_LIBRARIES", strings.Join(ndkPrebuiltSharedLibs, " "))
+ ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS", asanCflags)
+ ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS", asanLdflags)
+ ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES", asanLibs)
+
includeFlags, err := ctx.Eval("${config.CommonGlobalIncludes} ${config.CommonGlobalSystemIncludes}")
if err != nil {
panic(err)
diff --git a/cc/sanitize.go b/cc/sanitize.go
index bb1a2ad..2676373 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -24,6 +24,12 @@
"android/soong/cc/config"
)
+const (
+ asanCflags = "-fno-omit-frame-pointer"
+ asanLdflags = "-Wl,-u,__asan_preinit"
+ asanLibs = "libasan"
+)
+
type sanitizerType int
func boolPtr(v bool) *bool {
@@ -175,7 +181,7 @@
if ctx.Device() {
if Bool(sanitize.Properties.Sanitize.Address) {
- deps.StaticLibs = append(deps.StaticLibs, "libasan")
+ deps.StaticLibs = append(deps.StaticLibs, asanLibs)
}
if Bool(sanitize.Properties.Sanitize.Address) || Bool(sanitize.Properties.Sanitize.Thread) {
deps.SharedLibs = append(deps.SharedLibs, "libdl")
@@ -236,8 +242,8 @@
// TODO: put in flags?
flags.RequiredInstructionSet = "arm"
}
- flags.CFlags = append(flags.CFlags, "-fno-omit-frame-pointer")
- flags.LdFlags = append(flags.LdFlags, "-Wl,-u,__asan_preinit")
+ flags.CFlags = append(flags.CFlags, asanCflags)
+ flags.LdFlags = append(flags.LdFlags, asanLdflags)
// ASan runtime library must be the first in the link order.
runtimeLibrary := config.AddressSanitizerRuntimeLibrary(ctx.toolchain())