Add missing declared inputs
diff --git a/go/private/actions/compilepkg.bzl b/go/private/actions/compilepkg.bzl
index df42de7..e8e2d13 100644
--- a/go/private/actions/compilepkg.bzl
+++ b/go/private/actions/compilepkg.bzl
@@ -79,7 +79,8 @@
     outputs = [out_lib, out_export]
     env = go.env
 
-    args = go.builder_args(go, "compilepkg")
+    args, sdk_roots = go.builder_args(go, "compilepkg")
+    inputs += sdk_roots
     args.add_all(sources, before_each = "-src")
     args.add_all(embedsrcs, before_each = "-embedsrc", expand_directories = False)
     args.add_all(
diff --git a/go/private/actions/link.bzl b/go/private/actions/link.bzl
index 0a2207d..a146fac 100644
--- a/go/private/actions/link.bzl
+++ b/go/private/actions/link.bzl
@@ -85,7 +85,7 @@
     gc_linkopts = list(gc_linkopts)
     gc_linkopts.extend(go.mode.gc_linkopts)
     gc_linkopts, extldflags = _extract_extldflags(gc_linkopts, extldflags)
-    builder_args = go.builder_args(go, "link")
+    builder_args, sdk_roots = go.builder_args(go, "link")
     tool_args = go.tool_args(go)
 
     # Add in any mode specific behaviours
@@ -182,7 +182,7 @@
         # that doesn't give useful information.
         builder_args.add("-conflict_err", conflict_err)
 
-    inputs_direct = stamp_inputs + [go.sdk.package_list]
+    inputs_direct = stamp_inputs + [go.sdk.package_list] + sdk_roots
     if go.coverage_enabled and go.coverdata:
         inputs_direct.append(go.coverdata.data.file)
     inputs_transitive = [
diff --git a/go/private/actions/stdlib.bzl b/go/private/actions/stdlib.bzl
index 16ad0b0..fbfae00 100644
--- a/go/private/actions/stdlib.bzl
+++ b/go/private/actions/stdlib.bzl
@@ -53,11 +53,11 @@
 
 def _build_stdlib_list_json(go):
     out = go.declare_file(go, "stdlib.pkg.json")
-    args = go.builder_args(go, "stdliblist")
+    args, sdk_roots = go.builder_args(go, "stdliblist")
     args.add_all([go.sdk.root_file], before_each = "-sdk", map_each = _dirname)
     args.add("-out", out)
     go.actions.run(
-        inputs = go.sdk_files + [go.sdk.root_file],
+        inputs = go.sdk_files + sdk_roots,
         outputs = [out],
         mnemonic = "GoStdlibList",
         executable = go.toolchain._builder,
@@ -78,7 +78,7 @@
 
 def _build_stdlib(go):
     pkg = go.declare_directory(go, path = "pkg")
-    args = go.builder_args(go, "stdlib")
+    args, sdk_roots = go.builder_args(go, "stdlib")
     args.add_all([pkg], before_each = "-out", map_each = _dirname, expand_directories = False)
     if go.mode.race:
         args.add("-race")
@@ -103,7 +103,8 @@
     inputs = (go.sdk.srcs +
               go.sdk.headers +
               go.sdk.tools +
-              [go.sdk.go, go.sdk.package_list, go.sdk.root_file] +
+              [go.sdk.go, go.sdk.package_list] +
+              sdk_roots +
               go.crosstool)
     outputs = [pkg]
     go.actions.run(
diff --git a/go/private/context.bzl b/go/private/context.bzl
index 19f1654..2c50f3b 100644
--- a/go/private/context.bzl
+++ b/go/private/context.bzl
@@ -158,7 +158,7 @@
     args.add_all([go.sdk_root], before_each = "-goroot", map_each = _dirname, expand_directories = False)
     args.add("-installsuffix", installsuffix(go.mode))
     args.add_joined("-tags", go.tags, join_with = ",")
-    return args
+    return args, [go.sdk.root_file, go.sdk_root]
 
 def _tool_args(go):
     args = go.actions.args()
diff --git a/go/private/rules/info.bzl b/go/private/rules/info.bzl
index 28cd1ba..8967ed8 100644
--- a/go/private/rules/info.bzl
+++ b/go/private/rules/info.bzl
@@ -24,10 +24,10 @@
 def _go_info_impl(ctx):
     go = go_context(ctx)
     report = go.declare_file(go, ext = ".txt")
-    args = go.builder_args(go)
+    args, sdk_roots = go.builder_args(go)
     args.add("-out", report)
     go.actions.run(
-        inputs = go.sdk_files,
+        inputs = go.sdk_files + sdk_roots,
         outputs = [report],
         mnemonic = "GoInfo",
         executable = ctx.executable._go_info,
diff --git a/go/private/rules/test.bzl b/go/private/rules/test.bzl
index a935b0d..0751bae 100644
--- a/go/private/rules/test.bzl
+++ b/go/private/rules/test.bzl
@@ -95,7 +95,7 @@
         run_dir = pkg_dir(ctx.label.workspace_root, ctx.label.package)
 
     main_go = go.declare_file(go, path = "testmain.go")
-    arguments = go.builder_args(go, "gentestmain")
+    arguments, sdk_roots = go.builder_args(go, "gentestmain")
     arguments.add("-output", main_go)
     if go.coverage_enabled:
         if go.mode.race:
@@ -116,7 +116,7 @@
     arguments.add("-pkgname", internal_source.library.importpath)
     arguments.add_all(go_srcs, before_each = "-src", format_each = "l=%s")
     ctx.actions.run(
-        inputs = go_srcs,
+        inputs = go_srcs + sdk_roots,
         outputs = [main_go],
         mnemonic = "GoTestGenTest",
         executable = go.toolchain._builder,