veyron/services/mgmt/build/impl: locating cross-compiled binaries correctly

Change-Id: Ief6cc69d7f747e36c1c0f9654a69d170492f849b
diff --git a/services/mgmt/build/impl/invoker.go b/services/mgmt/build/impl/invoker.go
index 1548c59..34e9f4d 100644
--- a/services/mgmt/build/impl/invoker.go
+++ b/services/mgmt/build/impl/invoker.go
@@ -87,13 +87,16 @@
 		return output.Bytes(), errBuildFailed
 	}
 	binDir := filepath.Join(root, "go", "bin")
+	if runtime.GOARCH != archString(arch) || runtime.GOOS != osString(opsys) {
+		binDir = filepath.Join(binDir, fmt.Sprintf("%v_%v", osString(opsys), archString(arch)))
+	}
 	files, err := ioutil.ReadDir(binDir)
 	if err != nil && !os.IsNotExist(err) {
 		vlog.Errorf("ReadDir(%v) failed: %v", binDir, err)
 		return nil, errInternalError
 	}
 	for _, file := range files {
-		binPath := filepath.Join(root, "go", "bin", file.Name())
+		binPath := filepath.Join(binDir, file.Name())
 		bytes, err := ioutil.ReadFile(binPath)
 		if err != nil {
 			vlog.Errorf("ReadFile(%v) failed: %v", binPath, err)