wg.Done()
}()
go func() {
- for _, s := range datap {
+ for _, s := range ctxt.datap {
relocsym(target, reporter, lookup, syms, s)
}
wg.Done()
ctxt.Logf("datblk [%#x,%#x) at offset %#x\n", addr, addr+size, ctxt.Out.Offset())
}
- blk(out, datap, addr, size, zeros[:])
+ blk(out, ctxt.datap, addr, size, zeros[:])
/* again for printing */
if !*flagA {
return
}
- syms := datap
+ syms := ctxt.datap
for i, sym := range syms {
if sym.Value >= addr {
syms = syms[i:]
}
}
-// datap is a collection of reachable data symbols in address order.
-// Generated by dodata.
-var datap []*sym.Symbol
-
func (ctxt *Link) dodata() {
// Give zeros sized symbols space if necessary.
fixZeroSizedSymbols(ctxt)
}
for symn := sym.SELFRXSECT; symn < sym.SXREF; symn++ {
- datap = append(datap, data[symn]...)
+ ctxt.datap = append(ctxt.datap, data[symn]...)
}
dwarfGenerateDebugSyms(ctxt)
}
}
- for _, s := range datap {
+ for _, s := range ctxt.datap {
if s.Sect != nil {
s.Value += int64(s.Sect.Vaddr)
}
if sect.Name == ".text" {
elfrelocsect(ctxt, sect, ctxt.Textp)
} else {
- elfrelocsect(ctxt, sect, datap)
+ elfrelocsect(ctxt, sect, ctxt.datap)
}
}
for _, sect := range Segrodata.Sections {
- elfrelocsect(ctxt, sect, datap)
+ elfrelocsect(ctxt, sect, ctxt.datap)
}
for _, sect := range Segrelrodata.Sections {
- elfrelocsect(ctxt, sect, datap)
+ elfrelocsect(ctxt, sect, ctxt.datap)
}
for _, sect := range Segdata.Sections {
- elfrelocsect(ctxt, sect, datap)
+ elfrelocsect(ctxt, sect, ctxt.datap)
}
for _, sect := range Segdwarf.Sections {
elfrelocsect(ctxt, sect, dwarfp)
for _, s := range ctxt.Textp {
undefsym(ctxt, s)
}
- for _, s := range datap {
+ for _, s := range ctxt.datap {
undefsym(ctxt, s)
}
if nerrors > 0 {
cgo_export_static map[string]bool
cgo_export_dynamic map[string]bool
+
+ datap []*sym.Symbol
}
type cgodata struct {
machorelocsect(ctxt, Segtext.Sections[0], ctxt.Textp)
for _, sect := range Segtext.Sections[1:] {
- machorelocsect(ctxt, sect, datap)
+ machorelocsect(ctxt, sect, ctxt.datap)
}
for _, sect := range Segdata.Sections {
- machorelocsect(ctxt, sect, datap)
+ machorelocsect(ctxt, sect, ctxt.datap)
}
for _, sect := range Segdwarf.Sections {
machorelocsect(ctxt, sect, dwarfp)
syms []*sym.Symbol
}{
{f.textSect, &Segtext, ctxt.Textp},
- {f.rdataSect, &Segrodata, datap},
- {f.dataSect, &Segdata, datap},
+ {f.rdataSect, &Segrodata, ctxt.datap},
+ {f.dataSect, &Segdata, ctxt.datap},
}
for _, s := range sects {
s.peSect.emitRelocations(ctxt.Out, func() int {
for _, s := range ctxt.Textp {
addPEBaseRelocSym(ctxt, s, &rt)
}
- for _, s := range datap {
+ for _, s := range ctxt.datap {
addPEBaseRelocSym(ctxt, s, &rt)
}
if sect.Name == ".text" {
n += relocsect(sect, ctxt.Textp, 0)
} else {
- n += relocsect(sect, datap, 0)
+ n += relocsect(sect, ctxt.datap, 0)
}
}
}