diff --git a/src/cmd/internal/telemetry/telemetry.go b/src/cmd/internal/telemetry/telemetry.go
index 0e22344..d31f0ee 100644
--- a/src/cmd/internal/telemetry/telemetry.go
+++ b/src/cmd/internal/telemetry/telemetry.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build !cmd_go_bootstrap
+//go:build !cmd_go_bootstrap && !compiler_bootstrap
 
 // Package telemetry is a shim package around the golang.org/x/telemetry
 // and golang.org/x/telemetry/counter packages that has code build tagged
@@ -38,14 +38,24 @@
 	})
 }
 
+// Inc increments the counter with the given name.
 func Inc(name string) {
 	counter.Inc(name)
 }
 
+// NewCounter returns a counter with the given name.
 func NewCounter(name string) *counter.Counter {
 	return counter.New(name)
 }
 
+// NewStack returns a new stack counter with the given name and depth.
+func NewStackCounter(name string, depth int) *counter.StackCounter {
+	return counter.NewStack(name, depth)
+}
+
+// CountFlags creates a counter for every flag that is set
+// and increments the counter. The name of the counter is
+// the concatenation of prefix and the flag name.
 func CountFlags(prefix string, flagSet flag.FlagSet) {
 	counter.CountFlags(prefix, flagSet)
 }
diff --git a/src/cmd/internal/telemetry/telemetry_bootstrap.go b/src/cmd/internal/telemetry/telemetry_bootstrap.go
index 9fb0350..2e127be 100644
--- a/src/cmd/internal/telemetry/telemetry_bootstrap.go
+++ b/src/cmd/internal/telemetry/telemetry_bootstrap.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build cmd_go_bootstrap
+//go:build cmd_go_bootstrap || compiler_bootstrap
 
 package telemetry
 
@@ -12,8 +12,9 @@
 
 func (dc dummyCounter) Inc() {}
 
-func Start()                                       {}
-func StartWithUpload()                             {}
-func Inc(name string)                              {}
-func NewCounter(name string) dummyCounter          { return dummyCounter{} }
-func CountFlags(name string, flagSet flag.FlagSet) {}
+func Start()                                              {}
+func StartWithUpload()                                    {}
+func Inc(name string)                                     {}
+func NewCounter(name string) dummyCounter                 { return dummyCounter{} }
+func NewStackCounter(name string, depth int) dummyCounter { return dummyCounter{} }
+func CountFlags(name string, flagSet flag.FlagSet)        {}
