Skip to content

Instantly share code, notes, and snippets.

@LunNova
Created September 14, 2025 15:02
Show Gist options
  • Save LunNova/3c77fc924f1f7343ff190d6af09334fc to your computer and use it in GitHub Desktop.
Save LunNova/3c77fc924f1f7343ff190d6af09334fc to your computer and use it in GitHub Desktop.
diff --git a/src/cmd/dist/buildruntime.go b/src/cmd/dist/buildruntime.go
index 87e8867176..dbb635011f 100644
--- a/src/cmd/dist/buildruntime.go
+++ b/src/cmd/dist/buildruntime.go
@@ -62,7 +62,7 @@ func mkbuildcfg(file string) {
fmt.Fprintf(&buf, "const DefaultGORISCV64 = `%s`\n", goriscv64)
fmt.Fprintf(&buf, "const defaultGOEXPERIMENT = `%s`\n", goexperiment)
fmt.Fprintf(&buf, "const defaultGO_EXTLINK_ENABLED = `%s`\n", goextlinkenabled)
- fmt.Fprintf(&buf, "const defaultGO_LDSO = `%s`\n", defaultldso)
+ fmt.Fprintf(&buf, "const DefaultGO_LDSO = `%s`\n", defaultldso)
fmt.Fprintf(&buf, "const version = `%s`\n", findgoversion())
fmt.Fprintf(&buf, "const defaultGOOS = runtime.GOOS\n")
fmt.Fprintf(&buf, "const defaultGOARCH = runtime.GOARCH\n")
diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go
index 6ff1d94383..147a7d91c9 100644
--- a/src/cmd/link/internal/ld/elf.go
+++ b/src/cmd/link/internal/ld/elf.go
@@ -1927,8 +1927,12 @@ func asmbElf(ctxt *Link) {
sh.Flags = uint64(elf.SHF_ALLOC)
sh.Addralign = 1
- if interpreter == "" && buildcfg.GOOS == runtime.GOOS && buildcfg.GOARCH == runtime.GOARCH && buildcfg.GO_LDSO != "" {
- interpreter = buildcfg.GO_LDSO
+ if interpreter == "" {
+ if goLdso := os.Getenv("GO_LDSO"); goLdso != "" {
+ interpreter = goLdso
+ } else if buildcfg.GOOS == runtime.GOOS && buildcfg.GOARCH == runtime.GOARCH {
+ interpreter = buildcfg.DefaultGO_LDSO
+ }
}
if interpreter == "" {
diff --git a/src/internal/buildcfg/cfg.go b/src/internal/buildcfg/cfg.go
index 7e4ee365df..8aaa70fb36 100644
--- a/src/internal/buildcfg/cfg.go
+++ b/src/internal/buildcfg/cfg.go
@@ -33,7 +33,6 @@ var (
GORISCV64 = goriscv64()
GOWASM = gowasm()
ToolTags = toolTags()
- GO_LDSO = defaultGO_LDSO
GOFIPS140 = gofips140()
Version = version
)
--- a/src/cmd/link/internal/ld/elf.go
+++ b/src/cmd/link/internal/ld/elf.go
@@ -1927,8 +1927,12 @@ func asmbElf(ctxt *Link) {
sh.Flags = uint64(elf.SHF_ALLOC)
sh.Addralign = 1
- if interpreter == "" && buildcfg.GOOS == runtime.GOOS && buildcfg.GOARCH == runtime.GOARCH && buildcfg.GO_LDSO != "" {
- interpreter = buildcfg.GO_LDSO
+ if interpreter == "" {
+ if goLdso := os.Getenv("GO_LDSO"); goLdso != "" {
+ interpreter = goLdso
+ } else if buildcfg.GOOS == runtime.GOOS && buildcfg.GOARCH == runtime.GOARCH {
+ interpreter = buildcfg.GO_LDSO
+ }
}
if interpreter == "" {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment