diff --git a/ui/build/config.go b/ui/build/config.go
index 6a05f4f..6de7a05 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -739,6 +739,20 @@
 	return filepath.Join(c.OutDir(), "soong")
 }
 
+func (c *configImpl) PrebuiltOS() string {
+	switch runtime.GOOS {
+	case "linux":
+		return "linux-x86"
+	case "darwin":
+		return "darwin-x86"
+	default:
+		panic("Unknown GOOS")
+	}
+}
+func (c *configImpl) HostToolDir() string {
+	return filepath.Join(c.SoongOutDir(), "host", c.PrebuiltOS(), "bin")
+}
+
 func (c *configImpl) MainNinjaFile() string {
 	return shared.JoinPath(c.SoongOutDir(), "build.ninja")
 }
diff --git a/ui/build/soong.go b/ui/build/soong.go
index 726b541..a627dae 100644
--- a/ui/build/soong.go
+++ b/ui/build/soong.go
@@ -71,11 +71,16 @@
 // A tiny struct used to tell Blueprint that it's in bootstrap mode. It would
 // probably be nicer to use a flag in bootstrap.Args instead.
 type BlueprintConfig struct {
+	toolDir          string
 	soongOutDir      string
 	outDir           string
 	debugCompilation bool
 }
 
+func (c BlueprintConfig) HostToolDir() string {
+	return c.toolDir
+}
+
 func (c BlueprintConfig) SoongOutDir() string {
 	return c.soongOutDir
 }
@@ -151,7 +156,7 @@
 	}
 
 	soongBuildArgs := []string{
-		"--globListDir", "globs",
+		"--globListDir", "build",
 		"--globFile", bootstrapGlobFile,
 	}
 
@@ -167,7 +172,7 @@
 
 	bp2buildArgs := []string{
 		"--bp2build_marker", config.Bp2BuildMarkerFile(),
-		"--globListDir", "globs.bp2build",
+		"--globListDir", "bp2build",
 		"--globFile", bp2buildGlobFile,
 	}
 
@@ -183,7 +188,7 @@
 
 	moduleGraphArgs := []string{
 		"--module_graph_file", config.ModuleGraphFile(),
-		"--globListDir", "globs.modulegraph",
+		"--globListDir", "modulegraph",
 		"--globFile", moduleGraphGlobFile,
 	}
 
@@ -207,6 +212,7 @@
 	blueprintCtx.SetIgnoreUnknownModuleTypes(true)
 	blueprintConfig := BlueprintConfig{
 		soongOutDir:      config.SoongOutDir(),
+		toolDir:          config.HostToolDir(),
 		outDir:           config.OutDir(),
 		debugCompilation: os.Getenv("SOONG_DELVE") != "",
 	}
@@ -282,7 +288,7 @@
 		}
 	}()
 
-	runMicrofactory(ctx, config, ".bootstrap/bpglob", "github.com/google/blueprint/bootstrap/bpglob",
+	runMicrofactory(ctx, config, filepath.Join(config.HostToolDir(), "bpglob"), "github.com/google/blueprint/bootstrap/bpglob",
 		map[string]string{"github.com/google/blueprint": "build/blueprint"})
 
 	ninja := func(name, ninjaFile string, targets ...string) {
