compiler_wrapper: pass --prefix argument to clang

ToT clang needs --prefix is needed to find the correct tools.

BUG=chromium:1182224
TEST=Updated compiler wrapper in SimpleChrome, nacl builds.

Change-Id: I8073e1a5482a23f38bb1e0d88e2b31ee2d97fa6e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2721199
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: George Burgess <gbiv@chromium.org>
diff --git a/compiler_wrapper/clang_flags.go b/compiler_wrapper/clang_flags.go
index e4d1e19..c69d1b3 100644
--- a/compiler_wrapper/clang_flags.go
+++ b/compiler_wrapper/clang_flags.go
@@ -7,6 +7,7 @@
 import (
 	"bytes"
 	"os"
+	"path"
 	"path/filepath"
 	"strings"
 )
@@ -134,6 +135,8 @@
 			return wrapErrorwithSourceLocf(err, "failed to make linker path %s relative to %s",
 				linkerPath, env.getwd())
 		}
+		prefixPath := path.Join(relLinkerPath, builder.target.target+"-")
+		builder.addPreUserArgs("--prefix=" + prefixPath)
 		builder.addPostUserArgs("-B" + relLinkerPath)
 		builder.addPostUserArgs("-target", builder.target.target)
 	}
diff --git a/compiler_wrapper/clang_flags_test.go b/compiler_wrapper/clang_flags_test.go
index bd87831..bdc0bba 100644
--- a/compiler_wrapper/clang_flags_test.go
+++ b/compiler_wrapper/clang_flags_test.go
@@ -258,6 +258,10 @@
 		if err := verifyArgOrder(cmd, "-Ba/b/c"); err != nil {
 			t.Error(err)
 		}
+		if err := verifyArgOrder(cmd, "--prefix=a/b/c/x86_64-cros-linux-gnu-"); err != nil {
+			t.Error(err)
+		}
+
 	})
 }
 
@@ -276,6 +280,10 @@
 		if err := verifyArgOrder(cmd, "-Ba/first"); err != nil {
 			t.Error(err)
 		}
+		if err := verifyArgOrder(cmd, "--prefix=a/first/x86_64-cros-linux-gnu-"); err != nil {
+			t.Error(err)
+		}
+
 	})
 }
 
@@ -286,6 +294,9 @@
 		if err := verifyArgOrder(cmd, "-Bbin"); err != nil {
 			t.Error(err)
 		}
+		if err := verifyArgOrder(cmd, "--prefix=bin/x86_64-cros-linux-gnu-"); err != nil {
+			t.Error(err)
+		}
 	})
 }
 
@@ -297,5 +308,8 @@
 		if err := verifyArgOrder(cmd, "-Bsomepath/bin"); err != nil {
 			t.Error(err)
 		}
+		if err := verifyArgOrder(cmd, "--prefix=somepath/bin/x86_64-cros-linux-gnu-"); err != nil {
+			t.Error(err)
+		}
 	})
 }
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/bisect.json b/compiler_wrapper/testdata/cros_hardened_golden/bisect.json
index d7af750..53cc598 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/bisect.json
@@ -46,6 +46,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -113,6 +114,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -183,6 +185,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json
index 784b01a..c7016ad 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json
@@ -37,6 +37,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -94,6 +95,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-eabi-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -151,6 +153,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-win-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -208,6 +211,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-linux-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -264,6 +268,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/armv7m-cros-eabi-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -320,6 +325,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-win-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -376,6 +382,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-linux-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -432,6 +439,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/armv8m-cros-eabi-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -488,6 +496,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-win-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json
index 7a0b2ad..4c7ebd0 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json
@@ -36,6 +36,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -91,6 +92,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-eabi-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -146,6 +148,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-win-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -201,6 +204,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -255,6 +259,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/armv7m-cros-eabi-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -309,6 +314,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-win-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -363,6 +369,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -417,6 +424,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/armv8m-cros-eabi-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -471,6 +479,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-win-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json
index 7e8ad0b..48ab0dd 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json
@@ -36,6 +36,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -94,6 +95,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -152,6 +154,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -210,6 +213,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -275,6 +279,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -345,6 +350,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -410,6 +416,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -470,6 +477,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -525,6 +533,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -580,6 +589,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -635,6 +645,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -693,6 +704,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
index 2f7455e..30536e6 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
@@ -37,6 +37,7 @@
             "-fPIE",
             "-pie",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -94,6 +95,7 @@
             "-fPIE",
             "-pie",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -151,6 +153,7 @@
             "-fPIE",
             "-pie",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -208,6 +211,7 @@
             "-fPIE",
             "-pie",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -265,6 +269,7 @@
             "-pie",
             "-fno-omit-frame-pointer",
             "-fno-experimental-new-pass-manager",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=fuzzer",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -323,6 +328,7 @@
             "-pie",
             "-fno-omit-frame-pointer",
             "-fno-experimental-new-pass-manager",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=address",
             "-fprofile-instr-generate",
             "main.cc",
@@ -380,6 +386,7 @@
             "-fPIE",
             "-pie",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -437,6 +444,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fprofile-instr-generate",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json
index d0638bb..973cf63 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json
@@ -46,6 +46,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-mno-movbe",
             "-Wclobbered",
             "-Wno-psabi",
@@ -110,6 +111,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-#warnings",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -167,6 +169,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-error=uninitialized",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -224,6 +227,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-error=unused-variable",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -281,6 +285,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-unused-variable",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -338,6 +343,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wunused-variable",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -395,6 +401,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-someflag",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json
index ddf02ae..f9fa152 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json
@@ -72,6 +72,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -130,6 +131,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -179,6 +181,7 @@
             "-fstack-protector-strong",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -233,6 +236,7 @@
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
             "-fno-stack-protector",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-D__KERNEL__",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -288,6 +292,7 @@
             "-D_FORTIFY_SOURCE=2",
             "-mthumb",
             "-fno-stack-protector",
+            "--prefix=../../bin/armv7a-cros-linux-gnueabihf-",
             "-D__KERNEL__",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -343,6 +348,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "--sysroot=xyz",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json b/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json
index 44b66d3..d2f2271 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json
@@ -51,6 +51,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -87,6 +88,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -153,6 +155,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -190,6 +193,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -258,6 +262,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -298,6 +303,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -367,6 +373,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -404,6 +411,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json
index eef9fd5..523d3df 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json
@@ -39,6 +39,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -97,6 +98,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -141,6 +143,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -203,6 +206,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -247,6 +251,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json
index fd2c07b..f3d487e 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json
@@ -36,6 +36,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -116,6 +117,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -191,6 +193,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -249,6 +252,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json
index d7af750..53cc598 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json
@@ -46,6 +46,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -113,6 +114,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -183,6 +185,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json
index 7e8ad0b..48ab0dd 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json
@@ -36,6 +36,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -94,6 +95,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -152,6 +154,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -210,6 +213,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -275,6 +279,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -345,6 +350,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -410,6 +416,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -470,6 +477,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -525,6 +533,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -580,6 +589,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -635,6 +645,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -693,6 +704,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json
index 44b66d3..d2f2271 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json
@@ -51,6 +51,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -87,6 +88,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -153,6 +155,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -190,6 +193,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -258,6 +262,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -298,6 +303,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -367,6 +373,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -404,6 +411,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json
index eef9fd5..523d3df 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json
@@ -39,6 +39,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -97,6 +98,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -141,6 +143,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -203,6 +206,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -247,6 +251,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json
index fd2c07b..f3d487e 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json
@@ -36,6 +36,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -116,6 +117,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -191,6 +193,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -249,6 +252,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json
index a3eae0c..5adec38 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json
@@ -45,6 +45,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -108,6 +109,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -174,6 +176,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json
index 6150d5d..ff41cec 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json
@@ -35,6 +35,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -87,6 +88,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -139,6 +141,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -191,6 +194,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -250,6 +254,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -315,6 +320,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -379,6 +385,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -433,6 +440,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -482,6 +490,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -531,6 +540,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -580,6 +590,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -632,6 +643,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json
index 44b66d3..d2f2271 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json
@@ -51,6 +51,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -87,6 +88,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -153,6 +155,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -190,6 +193,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -258,6 +262,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -298,6 +303,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -367,6 +373,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -404,6 +411,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json
index dda0c1c..46a56fa 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json
@@ -38,6 +38,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -90,6 +91,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -128,6 +130,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -184,6 +187,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -222,6 +226,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json
index ab43d7a..0c937f2 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json
@@ -36,6 +36,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -111,6 +112,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -186,6 +188,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -244,6 +247,7 @@
             "-pie",
             "-D_FORTIFY_SOURCE=2",
             "-fno-omit-frame-pointer",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/bisect.json b/compiler_wrapper/testdata/cros_nonhardened_golden/bisect.json
index 4be1995..91ed0d6 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/bisect.json
@@ -38,6 +38,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -97,6 +98,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -159,6 +161,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_ftrapv_maincc_target_specific.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_ftrapv_maincc_target_specific.json
index 162f857..2793238 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_ftrapv_maincc_target_specific.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_ftrapv_maincc_target_specific.json
@@ -29,6 +29,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -78,6 +79,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-eabi-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -127,6 +129,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-win-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -177,6 +180,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-linux-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -225,6 +229,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/armv7m-cros-eabi-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -274,6 +279,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-win-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -323,6 +329,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-linux-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -371,6 +378,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/armv8m-cros-eabi-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -420,6 +428,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-win-gnu-",
             "-ftrapv",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_maincc_target_specific.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_maincc_target_specific.json
index e9b8470..183ed65 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_maincc_target_specific.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_maincc_target_specific.json
@@ -28,6 +28,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -75,6 +76,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-eabi-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -122,6 +124,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-win-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -170,6 +173,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -216,6 +220,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/armv7m-cros-eabi-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -263,6 +268,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv7m-cros-win-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -310,6 +316,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -356,6 +363,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/armv8m-cros-eabi-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -403,6 +411,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
+            "--prefix=../../bin/armv8m-cros-win-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_path.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_path.json
index 9f98ef4..9a7ef5a 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_path.json
@@ -28,6 +28,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -78,6 +79,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -128,6 +130,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -178,6 +181,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -235,6 +239,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -297,6 +302,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -354,6 +360,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-resource-dir=someResourceDir",
             "--gcc-toolchain=/usr",
             "main.cc",
@@ -406,6 +413,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -453,6 +461,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -500,6 +509,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=a/b/bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -547,6 +557,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -597,6 +608,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json
index a1dfbf0..26029d5 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json
@@ -30,6 +30,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -80,6 +81,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -130,6 +132,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -180,6 +183,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=kernel-address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -230,6 +234,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-fno-experimental-new-pass-manager",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=fuzzer",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -281,6 +286,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-fno-experimental-new-pass-manager",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=address",
             "-fprofile-instr-generate",
             "main.cc",
@@ -331,6 +337,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fsanitize=address",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -380,6 +387,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-fprofile-instr-generate",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_specific_args.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_specific_args.json
index 1498712..256078c 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_specific_args.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_specific_args.json
@@ -38,6 +38,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-mno-movbe",
             "-Wclobbered",
             "-Wno-psabi",
@@ -94,6 +95,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-#warnings",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -143,6 +145,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-error=uninitialized",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -192,6 +195,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-error=unused-variable",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -241,6 +245,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wno-unused-variable",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -290,6 +295,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-Wunused-variable",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -339,6 +345,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-someflag",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sysroot_wrapper_common.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sysroot_wrapper_common.json
index 2951a8f..2e8bffe 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sysroot_wrapper_common.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sysroot_wrapper_common.json
@@ -59,6 +59,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -109,6 +110,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -152,6 +154,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -201,6 +204,7 @@
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-fno-stack-protector",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "-D__KERNEL__",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -252,6 +256,7 @@
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
             "-mthumb",
             "-fno-stack-protector",
+            "--prefix=../../bin/armv7a-cros-linux-gnueabihf-",
             "-D__KERNEL__",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
@@ -299,6 +304,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "--sysroot=xyz",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clangtidy.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clangtidy.json
index 6e0baa3..53bfbde 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clangtidy.json
@@ -43,6 +43,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -71,6 +72,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -129,6 +131,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -158,6 +161,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -218,6 +222,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -250,6 +255,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -311,6 +317,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -340,6 +347,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_nonhardened_golden/force_disable_werror.json
index ecc4e44..1bf6339 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/force_disable_werror.json
@@ -31,6 +31,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -81,6 +82,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -117,6 +119,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -171,6 +174,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -207,6 +211,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_nonhardened_golden/gcc_clang_syntax.json
index dac1ff8..ca3284f 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/gcc_clang_syntax.json
@@ -28,6 +28,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -95,6 +96,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -157,6 +159,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",
@@ -207,6 +210,7 @@
             "-fexperimental-new-pass-manager",
             "-Wno-compound-token-split-by-macro",
             "-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
+            "--prefix=../../bin/x86_64-cros-linux-gnu-",
             "main.cc",
             "-Wno-implicit-int-float-conversion",
             "-Wno-compound-token-split-by-space",