Add flag property checking

Some checks for common errors with user-provided compiler and linker
flags:

* Using -I instead of include_dirs
* Using -l<lib> in ldflags instead of host_ldlibs (or shared_libs)
* Using -L in ldflags
* Splitting a multi-word flag into two flags
* Combining two flags into one list entry
* Using a path that could search outside the source or output trees
* Using a non-whitelisted library in host_ldlibs

Maybe some of the flag checks should happen during a static analysis
pass, but we don't have one right now, and this only adds ~1/2 second to
our 73 second Mega_device runs (recompile the changed code, run
soong_build, then report unknown target).

Change-Id: Icea7436260f1caa62c0cec29817a1cfea27b3e7c
diff --git a/cc/x86_darwin_host.go b/cc/x86_darwin_host.go
index bd164e3..f3cf1c9 100644
--- a/cc/x86_darwin_host.go
+++ b/cc/x86_darwin_host.go
@@ -84,6 +84,12 @@
 		"10.10",
 		"10.11",
 	}
+
+	darwinAvailableLibraries = addPrefix([]string{
+		"c",
+		"m",
+		"pthread",
+	}, "-l")
 )
 
 const (
@@ -258,6 +264,10 @@
 	return "${darwinSystemCppLdflags}"
 }
 
+func (t *toolchainDarwin) AvailableLibraries() []string {
+	return darwinAvailableLibraries
+}
+
 var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
 var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}