From cbceaab39cc246cc863e56366574b605147cec58 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Thu, 13 Oct 2016 16:44:07 -0700 Subject: [PATCH] Export asan configuration to make Test: Ninja files for ASAN'd aosp_flounder-eng identical Change-Id: Ib29cac0bc391dadd9ff27992c7b356415182767f --- cc/makevars.go | 4 ++++ cc/sanitize.go | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/cc/makevars.go b/cc/makevars.go index 3dd0f745a..098ec02c8 100644 --- a/cc/makevars.go +++ b/cc/makevars.go @@ -44,6 +44,10 @@ func makeVarsProvider(ctx android.MakeVarsContext) { 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 bb1a2ad62..2676373f0 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -24,6 +24,12 @@ import ( "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 @@ func (sanitize *sanitize) deps(ctx BaseModuleContext, deps Deps) Deps { 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 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags { // 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())