mirror of
https://github.com/golang/go
synced 2024-11-27 00:11:19 -07:00
cmd/link: put C static symbols in the symbol table
We don't put Go static symbols in the symbol table, as they are always compiler-generated (there is no way to define a static symbol in user code in Go). We retain static symbols in assembly code, as it may be user-defined. Also retain static symbols in C. Change-Id: Ie0425bb4df33f183857b1fd5ba4b2bdfdc497571 Reviewed-on: https://go-review.googlesource.com/c/go/+/263259 Trust: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
3853272573
commit
6398b4725c
@ -518,7 +518,7 @@ func (ctxt *Link) symtab(pcln *pclntab) []sym.SymKind {
|
||||
nsym := loader.Sym(ldr.NSym())
|
||||
symGroupType := make([]sym.SymKind, nsym)
|
||||
for s := loader.Sym(1); s < nsym; s++ {
|
||||
if !ctxt.IsExternal() && ldr.IsFileLocal(s) && !ldr.IsFromAssembly(s) {
|
||||
if !ctxt.IsExternal() && ldr.IsFileLocal(s) && !ldr.IsFromAssembly(s) && !ldr.IsExternal(s) {
|
||||
ldr.SetAttrNotInSymbolTable(s, true)
|
||||
}
|
||||
if !ldr.AttrReachable(s) || ldr.AttrSpecial(s) || (ldr.SymType(s) != sym.SRODATA && ldr.SymType(s) != sym.SGOFUNC) {
|
||||
|
Loading…
Reference in New Issue
Block a user