Support global and local sanitizers

Mixing undefined and address sanitizers requires updating cflags.
Matches makefile change Ifee350da4877008fb061bc7f6c700e7fade405bc

Bug: 30163657
Change-Id: Iea4364b912b496400581a475bc79bd9b9c4dd76d
diff --git a/cc/sanitize.go b/cc/sanitize.go
index 76d6618..172aae7 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -170,10 +170,12 @@
 	}
 
 	if ctx.Device() {
-		deps.SharedLibs = append(deps.SharedLibs, "libdl")
 		if Bool(sanitize.Properties.Sanitize.Address) {
 			deps.StaticLibs = append(deps.StaticLibs, "libasan")
 		}
+		if Bool(sanitize.Properties.Sanitize.Address) || Bool(sanitize.Properties.Sanitize.Thread) {
+			deps.SharedLibs = append(deps.SharedLibs, "libdl")
+		}
 	}
 
 	return deps
@@ -274,8 +276,9 @@
 			flags.LdFlags = append(flags.LdFlags, sanitizeArg)
 			flags.LdFlags = append(flags.LdFlags, "-lrt", "-ldl")
 		} else {
-			if !Bool(sanitize.Properties.Sanitize.Address) {
-				flags.CFlags = append(flags.CFlags, "-fsanitize-trap=all", "-ftrap-function=abort")
+			flags.CFlags = append(flags.CFlags, "-fsanitize-trap=all", "-ftrap-function=abort")
+			if Bool(sanitize.Properties.Sanitize.Address) || Bool(sanitize.Properties.Sanitize.Thread) {
+				flags.CFlags = append(flags.CFlags, "-fno-sanitize-trap=address,thread")
 			}
 		}
 	}