Fix ToolchainLdflags calls

Instead of having the baseCompiler adjust the Ldflags, teach
objectLinker about ToolchainLdflags. And don't assume that
ToolchainLdflags will work for Clang too, add a ToolchainClangLdflags
call.

Change-Id: I5f546e46f32edf3fcf75a44bee2c5ee103bc5de3
diff --git a/cc/cc.go b/cc/cc.go
index 9f582cb..56655b9 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1014,7 +1014,6 @@
 	} else {
 		flags.GlobalFlags = append(flags.GlobalFlags, toolchain.ToolchainCflags())
 	}
-	flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainLdflags())
 
 	if !ctx.sdk() {
 		if ctx.Host() && !flags.Clang {
@@ -1153,7 +1152,9 @@
 		}
 	}
 
-	if !flags.Clang {
+	if flags.Clang {
+		flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainClangLdflags())
+	} else {
 		flags.LdFlags = append(flags.LdFlags, toolchain.ToolchainLdflags())
 	}
 
@@ -1544,6 +1545,12 @@
 }
 
 func (*objectLinker) flags(ctx ModuleContext, flags Flags) Flags {
+	if flags.Clang {
+		flags.LdFlags = append(flags.LdFlags, ctx.toolchain().ToolchainClangLdflags())
+	} else {
+		flags.LdFlags = append(flags.LdFlags, ctx.toolchain().ToolchainLdflags())
+	}
+
 	return flags
 }