Add support for sanitizer property
Add a new feature to cc modules that adds the cflags and libraries necessary to implement AddressSanitizer, ThreadSanitizer, and UndefinedBehaviorSanitizer. Change-Id: Ibe5ffadc7ece56080a2521f2c7c00da9ef712584
This commit is contained in:
@@ -133,6 +133,7 @@ type builderFlags struct {
|
||||
conlyFlags string
|
||||
cppFlags string
|
||||
ldFlags string
|
||||
libFlags string
|
||||
yaccFlags string
|
||||
nocrt bool
|
||||
toolchain Toolchain
|
||||
@@ -190,7 +191,7 @@ func TransformSourceToObj(ctx common.AndroidModuleContext, subdir string, srcFil
|
||||
panic("unrecoginzied ccCmd")
|
||||
}
|
||||
|
||||
ccCmd = "${clangPath}/" + ccCmd
|
||||
ccCmd = "${clangBin}/" + ccCmd
|
||||
} else {
|
||||
ccCmd = gccCmd(flags.toolchain, ccCmd)
|
||||
}
|
||||
@@ -288,7 +289,7 @@ func TransformObjToDynamicBinary(ctx common.AndroidModuleContext,
|
||||
|
||||
var ldCmd string
|
||||
if flags.clang {
|
||||
ldCmd = "${clangPath}/clang++"
|
||||
ldCmd = "${clangBin}/clang++"
|
||||
} else {
|
||||
ldCmd = gccCmd(flags.toolchain, "g++")
|
||||
}
|
||||
@@ -296,6 +297,10 @@ func TransformObjToDynamicBinary(ctx common.AndroidModuleContext,
|
||||
var ldDirs []string
|
||||
var libFlagsList []string
|
||||
|
||||
if len(flags.libFlags) > 0 {
|
||||
libFlagsList = append(libFlagsList, flags.libFlags)
|
||||
}
|
||||
|
||||
if len(wholeStaticLibs) > 0 {
|
||||
if ctx.Host() && ctx.Darwin() {
|
||||
libFlagsList = append(libFlagsList, common.JoinWithPrefix(wholeStaticLibs.Strings(), "-force_load "))
|
||||
@@ -359,7 +364,7 @@ func TransformObjsToObj(ctx common.AndroidModuleContext, objFiles common.Paths,
|
||||
|
||||
var ldCmd string
|
||||
if flags.clang {
|
||||
ldCmd = "${clangPath}clang++"
|
||||
ldCmd = "${clangBin}clang++"
|
||||
} else {
|
||||
ldCmd = gccCmd(flags.toolchain, "g++")
|
||||
}
|
||||
|
Reference in New Issue
Block a user