Skip to content

Commit 1f8a5b8

Browse files
cherrymuiandybons
authored andcommitted
[release-branch.go1.10] cmd/link: put runtime.framepointer_enabled in DATA instead of RODATA
On darwin, only writable symbol is exported (cmd/link/internal/ld/macho.go:/machoShouldExport). For plugin to work correctly, global variables, including runtime.framepointer_enabled which is set by the linker, need to be exported when dynamic linking. Put it in DATA so it is exported. Also in Go it is defined as a var, which is not read-only. While here, do the same for runtime.goarm. Fixes #25038. Change-Id: I9d1b7d5a648be17103d20b97be65a901cb69f5a2 Reviewed-on: https://go-review.googlesource.com/104715 Run-TryBot: Cherry Zhang <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]> Reviewed-by: Austin Clements <[email protected]> Reviewed-on: https://go-review.googlesource.com/c/122116 Run-TryBot: Andrew Bonventre <[email protected]> TryBot-Result: Gobot Gobot <[email protected]>
1 parent 95b56b3 commit 1f8a5b8

File tree

1 file changed

+2
-2
lines changed
  • src/cmd/link/internal/ld

1 file changed

+2
-2
lines changed

src/cmd/link/internal/ld/lib.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,14 +461,14 @@ func (ctxt *Link) loadlib() {
461461
// recording the value of GOARM.
462462
if ctxt.Arch.Family == sys.ARM {
463463
s := ctxt.Syms.Lookup("runtime.goarm", 0)
464-
s.Type = sym.SRODATA
464+
s.Type = sym.SDATA
465465
s.Size = 0
466466
s.AddUint8(uint8(objabi.GOARM))
467467
}
468468

469469
if objabi.Framepointer_enabled(objabi.GOOS, objabi.GOARCH) {
470470
s := ctxt.Syms.Lookup("runtime.framepointer_enabled", 0)
471-
s.Type = sym.SRODATA
471+
s.Type = sym.SDATA
472472
s.Size = 0
473473
s.AddUint8(1)
474474
}

0 commit comments

Comments
 (0)