mirror of
https://github.com/golang/go
synced 2024-10-03 06:21:21 -06:00
cmd/internal/ld: make a few more symbols local
The symbols for the actual data in a constant string or bytes literal should be local. Change-Id: Idafcfba9a638eaa4e460e5103d96843960559b35 Reviewed-on: https://go-review.googlesource.com/8772 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
e1366f94ee
commit
d765e41c62
@ -367,9 +367,18 @@ func symtab() {
|
|||||||
// just defined above will be first.
|
// just defined above will be first.
|
||||||
// hide the specific symbols.
|
// hide the specific symbols.
|
||||||
for s := Ctxt.Allsym; s != nil; s = s.Allsym {
|
for s := Ctxt.Allsym; s != nil; s = s.Allsym {
|
||||||
if !s.Reachable || s.Special != 0 || s.Type != SRODATA {
|
if !s.Reachable || s.Special != 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if strings.Contains(s.Name, "..gostring.") || strings.Contains(s.Name, "..gobytes.") {
|
||||||
|
s.Local = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if s.Type != SRODATA {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(s.Name, "type.") && !DynlinkingGo() {
|
if strings.HasPrefix(s.Name, "type.") && !DynlinkingGo() {
|
||||||
s.Type = STYPE
|
s.Type = STYPE
|
||||||
s.Hide = 1
|
s.Hide = 1
|
||||||
|
Loading…
Reference in New Issue
Block a user