Use `Path` instead of string for file paths

This centralizes verification and common operations, like converting the
path to a source file to the path for a built object.

It also embeds the configuration knowledge into the path, so that we can
remove "${SrcDir}/path" from the ninja file. When SrcDir is '.', that
leads to paths like './path' instead of just 'path' like make is doing,
causing differences in compiled binaries.

Change-Id: Ib4e8910a6e867ce1b7b420d927c04f1142a7589e
diff --git a/cc/x86_linux_host.go b/cc/x86_linux_host.go
index 98bceef..a3c50d1 100644
--- a/cc/x86_linux_host.go
+++ b/cc/x86_linux_host.go
@@ -108,8 +108,8 @@
 func init() {
 	pctx.StaticVariable("linuxGccVersion", linuxGccVersion)
 
-	pctx.StaticVariable("linuxGccRoot",
-		"${SrcDir}/prebuilts/gcc/${HostPrebuiltTag}/host/x86_64-linux-glibc2.15-${linuxGccVersion}")
+	pctx.SourcePathVariable("linuxGccRoot",
+		"prebuilts/gcc/${HostPrebuiltTag}/host/x86_64-linux-glibc2.15-${linuxGccVersion}")
 
 	pctx.StaticVariable("linuxGccTriple", "x86_64-linux")