}
}
+var dupSym = &LSym{Name: ".dup"}
+
func readsym(ctxt *Link, f *obj.Biobuf, buf *[]byte, pkg string, pn string) {
if obj.Bgetc(f) != 0xfe {
log.Fatalf("readsym out of sync")
}
if len(s.P) > 0 {
dup = s
- s = linknewsym(ctxt, ".dup", -1)
+ s = dupSym
}
}
s.Size = int64(size)
}
s.Attr.Set(AttrLocal, local)
- if typ != nil { // if bss sym defined multiple times, take type from any one def
+ if typ != nil {
s.Gotype = typ
}
- if dup != nil && typ != nil {
+ if dup != nil && typ != nil { // if bss sym defined multiple times, take type from any one def
dup.Gotype = typ
}
s.P = data
- s.P = s.P[:len(data)]
if nreloc > 0 {
s.R = make([]Reloc, nreloc)
- s.R = s.R[:nreloc]
var r *Reloc
for i := 0; i < nreloc; i++ {
r = &s.R[i]
s.Name = symb
s.Version = int16(v)
ctxt.Nsymbol++
+ ctxt.Allsym = append(ctxt.Allsym, s)
- if v != -1 {
- ctxt.Allsym = append(ctxt.Allsym, s)
- } else if v < -1 {
- ctxt.Diag("invalid version %d in linknewsym", v)
- }
return s
}