]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: block new standard library linknames
authorCherry Mui <cherryyz@google.com>
Fri, 13 Jun 2025 15:31:06 +0000 (11:31 -0400)
committerCherry Mui <cherryyz@google.com>
Fri, 13 Jun 2025 16:04:49 +0000 (09:04 -0700)
In Go 1.25 we added a number of new linknames for standard library
internal uses. Add them to the linker's blocklist to keep them
internal.

Change-Id: I5b6051a669b7ff132a1d2c05deefbbf74701c5d5
Reviewed-on: https://go-review.googlesource.com/c/go/+/681475
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/cmd/link/internal/loader/loader.go

index 6561362210d796ee6fcdc9df62b4e1c03af11a0e..2bf52d221bfadf1c358a2765af60a8d235e8859d 100644 (file)
@@ -2368,7 +2368,6 @@ var blockedLinknames = map[string][]string{
        "crypto/internal/sysrand.fatal":         {"crypto/internal/sysrand"},
        "crypto/rand.fatal":                     {"crypto/rand"},
        "internal/runtime/maps.errNilAssign":    {"internal/runtime/maps"},
-       "internal/runtime/maps.typeString":      {"internal/runtime/maps"},
        "internal/runtime/maps.fatal":           {"internal/runtime/maps"},
        "internal/runtime/maps.newarray":        {"internal/runtime/maps"},
        "internal/runtime/maps.newobject":       {"internal/runtime/maps"},
@@ -2399,6 +2398,22 @@ var blockedLinknames = map[string][]string{
        "runtime.mapdelete_fast32":   {"runtime"},
        "runtime.mapdelete_fast64":   {"runtime"},
        "runtime.mapdelete_faststr":  {"runtime"},
+       // New internal linknames in Go 1.25
+       // Pushed from runtime
+       "internal/runtime/cgroup.throw":                  {"internal/runtime/cgroup"},
+       "internal/runtime/maps.typeString":               {"internal/runtime/maps"},
+       "internal/synctest.IsInBubble":                   {"internal/synctest"},
+       "internal/synctest.associate":                    {"internal/synctest"},
+       "internal/synctest.disassociate":                 {"internal/synctest"},
+       "internal/synctest.isAssociated":                 {"internal/synctest"},
+       "runtime/trace.runtime_readTrace":                {"runtime/trace"},
+       "runtime/trace.runtime_traceClockUnitsPerSecond": {"runtime/trace"},
+       "sync_test.runtime_blockUntilEmptyCleanupQueue":  {"sync_test"},
+       "time.runtimeIsBubbled":                          {"time"},
+       "unique.runtime_blockUntilEmptyCleanupQueue":     {"unique"},
+       // Others
+       "net.newWindowsFile":                   {"net"},              // pushed from os
+       "testing/synctest.testingSynctestTest": {"testing/synctest"}, // pushed from testing
 }
 
 // check if a linkname reference to symbol s from pkg is allowed