break
}
if val < addr {
- ldr.Errorf(s, "phase error: addr=%#x but sym=%#x type=%v sect=%v", addr, val, ldr.SymType(s), ldr.SymSect(s).Name)
+ ldr.Errorf(s, "phase error: addr=%#x but val=%#x sym=%s type=%v sect=%v sect.addr=%#x", addr, val, ldr.SymName(s), ldr.SymType(s), ldr.SymSect(s).Name, ldr.SymSect(s).Vaddr)
errorexit()
}
if addr < val {
edata.SetType(sym.SXCOFFTOC)
}
+ noptrbss := ldr.CreateSymForUpdate("runtime.noptrbss", 0)
+ noptrbss.SetSize(8)
+ ldr.SetAttrSpecial(noptrbss.Sym(), false)
+
+ enoptrbss := ldr.CreateSymForUpdate("runtime.enoptrbss", 0)
+ ldr.SetAttrSpecial(enoptrbss.Sym(), false)
+
+ noptrdata := ldr.CreateSymForUpdate("runtime.noptrdata", 0)
+ noptrdata.SetSize(8)
+ ldr.SetAttrSpecial(noptrdata.Sym(), false)
+
+ enoptrdata := ldr.CreateSymForUpdate("runtime.enoptrdata", 0)
+ ldr.SetAttrSpecial(enoptrdata.Sym(), false)
+
types := ldr.CreateSymForUpdate("runtime.types", 0)
types.SetType(sym.STYPE)
types.SetSize(8)
// end of their section.
if (ctxt.DynlinkingGo() && ctxt.HeadType == objabi.Hdarwin) || (ctxt.HeadType == objabi.Haix && ctxt.LinkMode == LinkExternal) {
switch ldr.SymName(s) {
- case "runtime.text", "runtime.bss", "runtime.data", "runtime.types", "runtime.rodata":
+ case "runtime.text", "runtime.bss", "runtime.data", "runtime.types", "runtime.rodata",
+ "runtime.noptrdata", "runtime.noptrbss":
head = s
continue
- case "runtime.etext", "runtime.ebss", "runtime.edata", "runtime.etypes", "runtime.erodata":
+ case "runtime.etext", "runtime.ebss", "runtime.edata", "runtime.etypes", "runtime.erodata",
+ "runtime.enoptrdata", "runtime.enoptrbss":
tail = s
continue
}