--- src/cmd/go/internal/work/buildid.go.old	2021-01-25 20:27:56.000000000 +0100
+++ src/cmd/go/internal/work/buildid.go	2021-01-25 20:28:20.000000000 +0100
@@ -617,7 +617,11 @@ func (b *Builder) flushOutput(a *Action)
 func (b *Builder) updateBuildID(a *Action, target string, rewrite bool) error {
 	if cfg.BuildX || cfg.BuildN {
 		if rewrite {
-			b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList(base.Tool("buildid"), "-w", target)))
+			if strings.Contains(os.Args[0], "go_bootstrap") {
+				b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList(base.Tool("go_bootstrap"), "tool", "buildid", "-w", target)))
+			} else {
+				b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList(base.Tool("buildid"), "-w", target)))
+			}
 		}
 		if cfg.BuildN {
 			return nil
--- src/cmd/go/internal/work/gc.go.old	2021-01-25 20:27:56.000000000 +0100
+++ src/cmd/go/internal/work/gc.go	2021-01-25 20:28:20.000000000 +0100
@@ -365,7 +365,14 @@ func (gcToolchain) pack(b *Builder, a *A
 
 	p := a.Package
 	if cfg.BuildN || cfg.BuildX {
-		cmdline := str.StringList(base.Tool("pack"), "r", absAfile, absOfiles)
+		cmdline := str.StringList("r", absAfile, absOfiles)
+		var toolPath []string
+		if strings.Contains(os.Args[0], "go_bootstrap") {
+			toolPath = str.StringList(base.Tool("go_bootstrap"), "tool", "pack")
+		} else {
+			toolPath = str.StringList(base.Tool("pack"))
+		}
+		cmdline = append(toolPath, cmdline...)
 		b.Showcmd(p.Dir, "%s # internal", joinUnambiguously(cmdline))
 	}
 	if cfg.BuildN {
