Fix arm cflags

-mthumb-interwork was missing from the beginning.

The Clang cflags copy was only a shallow copy, so our clang-specific
fixups were affecting the GCC cflags as well.

The cortex-a15 replacement was removed from build/core with this change:
https://android-review.googlesource.com/#/c/143851

Change-Id: Ib6300e064f6ec4f6a7174d5e2aeacad1c359f7ea
diff --git a/cc/arm_device.go b/cc/arm_device.go
index 8adbc29..b935348 100644
--- a/cc/arm_device.go
+++ b/cc/arm_device.go
@@ -27,6 +27,8 @@
 		"-fno-builtin-sin",
 		"-fno-strict-volatile-bitfields",
 
+		"-mthumb-interwork",
+
 		// TARGET_RELEASE_CFLAGS
 		"-DNDEBUG",
 		"-g",
@@ -100,10 +102,22 @@
 		},
 	}
 
-	armClangCpuVariantCflags  = armCpuVariantCflags
-	armClangArchVariantCflags = armArchVariantCflags
+	armClangCpuVariantCflags  = copyVariantFlags(armCpuVariantCflags)
+	armClangArchVariantCflags = copyVariantFlags(armArchVariantCflags)
 )
 
+func copyVariantFlags(m map[string][]string) map[string][]string {
+	ret := make(map[string][]string, len(m))
+	for k, v := range m {
+		l := make([]string, len(m[k]))
+		for i := range m[k] {
+			l[i] = v[i]
+		}
+		ret[k] = l
+	}
+	return ret
+}
+
 func init() {
 	replaceFirst := func(slice []string, from, to string) {
 		if slice[0] != from {
@@ -114,7 +128,6 @@
 	}
 
 	replaceFirst(armClangArchVariantCflags["armv5te"], "-march=armv5te", "-march=armv5t")
-	replaceFirst(armClangCpuVariantCflags["cortex-a15"], "-mcpu=cortex-a15", "-march=armv7-a")
 	armClangCpuVariantCflags["krait"] = []string{
 		"-mcpu=krait",
 	}