aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2024-12-12 13:03:49 -0500
committerCherry Mui <cherryyz@google.com>2024-12-12 11:54:53 -0800
commitfb764cdad03ae2e500100b691f77cbd0d22b7d9c (patch)
tree02ba081a693eaf8ea41ec913798e25cb4a4b0f50 /src/cmd/link/internal
parent9118060040ab7af4d384c2c1e2862673e2bbb8c3 (diff)
downloadgo-fb764cdad03ae2e500100b691f77cbd0d22b7d9c.tar.xz
cmd/link: block new standard library linknames
In Go 1.24 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: Ibb7fa095506c161604e978ae196a7cf248475b2e Reviewed-on: https://go-review.googlesource.com/c/go/+/635676 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/cmd/link/internal')
-rw-r--r--src/cmd/link/internal/loader/loader.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index 6fe895a840..e7cc30ab07 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -2338,6 +2338,45 @@ var blockedLinknames = map[string][]string{
"runtime.newcoro": {"iter"},
// fips info
"go:fipsinfo": {"crypto/internal/fips140/check"},
+ // New internal linknames in Go 1.24
+ // Pushed from runtime
+ "crypto/internal/fips140.fatal": {"crypto/internal/fips140"},
+ "crypto/internal/fips140.getIndicator": {"crypto/internal/fips140"},
+ "crypto/internal/fips140.setIndicator": {"crypto/internal/fips140"},
+ "crypto/internal/sysrand.fatal": {"crypto/internal/sysrand"},
+ "crypto/rand.fatal": {"crypto/rand"},
+ "internal/runtime/maps.errNilAssign": {"internal/runtime/maps"},
+ "internal/runtime/maps.fatal": {"internal/runtime/maps"},
+ "internal/runtime/maps.mapKeyError": {"internal/runtime/maps"},
+ "internal/runtime/maps.newarray": {"internal/runtime/maps"},
+ "internal/runtime/maps.newobject": {"internal/runtime/maps"},
+ "internal/runtime/maps.typedmemclr": {"internal/runtime/maps"},
+ "internal/runtime/maps.typedmemmove": {"internal/runtime/maps"},
+ "internal/sync.fatal": {"internal/sync"},
+ "internal/sync.runtime_canSpin": {"internal/sync"},
+ "internal/sync.runtime_doSpin": {"internal/sync"},
+ "internal/sync.runtime_nanotime": {"internal/sync"},
+ "internal/sync.runtime_Semrelease": {"internal/sync"},
+ "internal/sync.runtime_SemacquireMutex": {"internal/sync"},
+ "internal/sync.throw": {"internal/sync"},
+ "internal/synctest.Run": {"internal/synctest"},
+ "internal/synctest.Wait": {"internal/synctest"},
+ "internal/synctest.acquire": {"internal/synctest"},
+ "internal/synctest.release": {"internal/synctest"},
+ "internal/synctest.inBubble": {"internal/synctest"},
+ "runtime.getStaticuint64s": {"reflect"},
+ "sync.runtime_SemacquireWaitGroup": {"sync"},
+ "time.runtimeNow": {"time"},
+ "time.runtimeNano": {"time"},
+ // Pushed to runtime from internal/runtime/maps
+ // (other map functions are already linknamed in Go 1.23)
+ "runtime.mapaccess1": {"runtime"},
+ "runtime.mapaccess1_fast32": {"runtime"},
+ "runtime.mapaccess1_fast64": {"runtime"},
+ "runtime.mapaccess1_faststr": {"runtime"},
+ "runtime.mapdelete_fast32": {"runtime"},
+ "runtime.mapdelete_fast64": {"runtime"},
+ "runtime.mapdelete_faststr": {"runtime"},
}
// check if a linkname reference to symbol s from pkg is allowed