1
0
mirror of https://github.com/golang/go synced 2024-11-12 02:50:25 -07:00

cmd/link: move Iself global to ctxt

For #22095

Change-Id: Iba3dffc782cecc15ea0e90a971a2734729984945
Reviewed-on: https://go-review.googlesource.com/70834
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
David Crawshaw 2017-10-07 13:43:38 -04:00
parent 6738c494ad
commit d05f82a11a
15 changed files with 68 additions and 68 deletions

View File

@ -250,7 +250,7 @@ func adddynrel(ctxt *ld.Link, s *sym.Symbol, r *sym.Reloc) bool {
return true
case objabi.R_ADDR:
if s.Type == sym.STEXT && ld.Iself {
if s.Type == sym.STEXT && ctxt.IsELF {
if ld.Headtype == objabi.Hsolaris {
addpltsym(ctxt, targ)
r.Sym = ctxt.Syms.Lookup(".plt", 0)
@ -316,7 +316,7 @@ func adddynrel(ctxt *ld.Link, s *sym.Symbol, r *sym.Reloc) bool {
}
}
if ld.Iself {
if ctxt.IsELF {
// TODO: We generate a R_X86_64_64 relocation for every R_ADDR, even
// though it would be more efficient (for the dynamic linker) if we
// generated R_X86_RELATIVE instead.
@ -569,7 +569,7 @@ func addpltsym(ctxt *ld.Link, s *sym.Symbol) {
ld.Adddynsym(ctxt, s)
if ld.Iself {
if ctxt.IsELF {
plt := ctxt.Syms.Lookup(".plt", 0)
got := ctxt.Syms.Lookup(".got.plt", 0)
rela := ctxt.Syms.Lookup(".rela.plt", 0)
@ -640,7 +640,7 @@ func addgotsym(ctxt *ld.Link, s *sym.Symbol) {
s.Got = int32(got.Size)
got.AddUint64(ctxt.Arch, 0)
if ld.Iself {
if ctxt.IsELF {
rela := ctxt.Syms.Lookup(".rela", 0)
rela.AddAddrPlus(ctxt.Arch, got, int64(s.Got))
rela.AddUint64(ctxt.Arch, ld.ELF64_R_INFO(uint32(s.Dynid), uint32(elf.R_X86_64_GLOB_DAT)))
@ -661,7 +661,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f codeblk\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -763,7 +763,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Out.SeekSet(symo)
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
ctxt.Out.SeekSet(symo)
ld.Asmelfsym(ctxt)
ctxt.Out.Flush()

View File

@ -238,7 +238,7 @@ func adddynrel(ctxt *ld.Link, s *sym.Symbol, r *sym.Reloc) bool {
if s.Type != sym.SDATA {
break
}
if ld.Iself {
if ctxt.IsELF {
ld.Adddynsym(ctxt, targ)
rel := ctxt.Syms.Lookup(".rel", 0)
rel.AddAddrPlus(ctxt.Arch, s, int64(r.Off))
@ -671,7 +671,7 @@ func addpltsym(ctxt *ld.Link, s *sym.Symbol) {
ld.Adddynsym(ctxt, s)
if ld.Iself {
if ctxt.IsELF {
plt := ctxt.Syms.Lookup(".plt", 0)
got := ctxt.Syms.Lookup(".got.plt", 0)
rel := ctxt.Syms.Lookup(".rel.plt", 0)
@ -713,7 +713,7 @@ func addgotsyminternal(ctxt *ld.Link, s *sym.Symbol) {
got.AddAddrPlus(ctxt.Arch, s, 0)
if ld.Iself {
if ctxt.IsELF {
} else {
ld.Errorf(s, "addgotsyminternal: unsupported binary format")
}
@ -729,7 +729,7 @@ func addgotsym(ctxt *ld.Link, s *sym.Symbol) {
s.Got = int32(got.Size)
got.AddUint32(ctxt.Arch, 0)
if ld.Iself {
if ctxt.IsELF {
rel := ctxt.Syms.Lookup(".rel", 0)
rel.AddAddrPlus(ctxt.Arch, got, int64(s.Got))
rel.AddUint32(ctxt.Arch, ld.ELF32_R_INFO(uint32(s.Dynid), uint32(elf.R_ARM_GLOB_DAT)))
@ -743,7 +743,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -797,7 +797,7 @@ func asmb(ctxt *ld.Link) {
}
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
}
@ -812,7 +812,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Out.SeekSet(int64(symo))
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
if ctxt.Debugvlog != 0 {
ctxt.Logf("%5.2f elfsym\n", ld.Cputime())
}

View File

@ -379,7 +379,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -433,7 +433,7 @@ func asmb(ctxt *ld.Link) {
}
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
}
@ -448,7 +448,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Out.SeekSet(int64(symo))
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
if ctxt.Debugvlog != 0 {
ctxt.Logf("%5.2f elfsym\n", ld.Cputime())
}

View File

@ -189,7 +189,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
case objabi.R_TLS_LE:
isAndroidX86 := objabi.GOOS == "android" && (ctxt.Arch.InFamily(sys.AMD64, sys.I386))
if ctxt.LinkMode == LinkExternal && Iself && !isAndroidX86 {
if ctxt.LinkMode == LinkExternal && ctxt.IsELF && !isAndroidX86 {
r.Done = false
if r.Sym == nil {
r.Sym = ctxt.Tlsg
@ -203,7 +203,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
break
}
if Iself && ctxt.Arch.Family == sys.ARM {
if ctxt.IsELF && ctxt.Arch.Family == sys.ARM {
// On ELF ARM, the thread pointer is 8 bytes before
// the start of the thread-local data block, so add 8
// to the actual TLS offset (r->sym->value).
@ -212,7 +212,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
// related to the fact that our own TLS storage happens
// to take up 8 bytes.
o = 8 + r.Sym.Value
} else if Iself || Headtype == objabi.Hplan9 || Headtype == objabi.Hdarwin || isAndroidX86 {
} else if ctxt.IsELF || Headtype == objabi.Hplan9 || Headtype == objabi.Hdarwin || isAndroidX86 {
o = int64(ctxt.Tlsoffset) + r.Add
} else if Headtype == objabi.Hwindows {
o = r.Add
@ -222,7 +222,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
case objabi.R_TLS_IE:
isAndroidX86 := objabi.GOOS == "android" && (ctxt.Arch.InFamily(sys.AMD64, sys.I386))
if ctxt.LinkMode == LinkExternal && Iself && !isAndroidX86 {
if ctxt.LinkMode == LinkExternal && ctxt.IsELF && !isAndroidX86 {
r.Done = false
if r.Sym == nil {
r.Sym = ctxt.Tlsg
@ -235,7 +235,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
}
break
}
if ctxt.BuildMode == BuildModePIE && Iself {
if ctxt.BuildMode == BuildModePIE && ctxt.IsELF {
// We are linking the final executable, so we
// can optimize any TLS IE relocation to LE.
if Thearch.TLSIEtoLE == nil {
@ -268,7 +268,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
r.Xsym = rs
o = r.Xadd
if Iself {
if ctxt.IsELF {
if ctxt.Arch.Family == sys.AMD64 {
o = 0
}
@ -336,7 +336,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
r.Xadd = r.Add + Symaddr(r.Sym) - int64(r.Sym.Sect.Vaddr)
o = r.Xadd
if Iself && ctxt.Arch.Family == sys.AMD64 {
if ctxt.IsELF && ctxt.Arch.Family == sys.AMD64 {
o = 0
}
break
@ -390,7 +390,7 @@ func relocsym(ctxt *Link, s *sym.Symbol) {
r.Xsym = rs
o = r.Xadd
if Iself {
if ctxt.IsELF {
if ctxt.Arch.Family == sys.AMD64 {
o = 0
}
@ -576,7 +576,7 @@ func dynreloc(ctxt *Link, data *[sym.SXREF][]*sym.Symbol) {
dynrelocsym(ctxt, s)
}
}
if Iself {
if ctxt.IsELF {
elfdynhash(ctxt)
}
}
@ -1289,7 +1289,7 @@ func (ctxt *Link) dodata() {
if len(data[sym.STLSBSS]) > 0 {
var sect *sym.Section
if Iself && (ctxt.LinkMode == LinkExternal || !*FlagD) {
if ctxt.IsELF && (ctxt.LinkMode == LinkExternal || !*FlagD) {
sect = addsection(ctxt.Arch, &Segdata, ".tbss", 06)
sect.Align = int32(ctxt.Arch.PtrSize)
sect.Vaddr = 0
@ -1320,7 +1320,7 @@ func (ctxt *Link) dodata() {
* segtext.
*/
var segro *sym.Segment
if Iself && ctxt.LinkMode == LinkInternal {
if ctxt.IsELF && ctxt.LinkMode == LinkInternal {
segro = &Segrodata
} else {
segro = &Segtext
@ -1690,7 +1690,7 @@ func dodataSect(ctxt *Link, symn sym.SymKind, syms []*sym.Symbol) (result []*sym
syms[len(syms)-1] = tail
}
if Iself && symn == sym.SELFROSECT {
if ctxt.IsELF && symn == sym.SELFROSECT {
// Make .rela and .rela.plt contiguous, the ELF ABI requires this
// and Solaris actually cares.
reli, plti := -1, -1
@ -1732,7 +1732,7 @@ func dodataSect(ctxt *Link, symn sym.SymKind, syms []*sym.Symbol) (result []*sym
// at the very beginning of the text segment.
// This ``header'' is read by cmd/go.
func (ctxt *Link) textbuildid() {
if Iself || ctxt.BuildMode == BuildModePlugin || *flagBuildid == "" {
if ctxt.IsELF || ctxt.BuildMode == BuildModePlugin || *flagBuildid == "" {
return
}
@ -1840,7 +1840,7 @@ func assignAddress(ctxt *Link, sect *sym.Section, n int, s *sym.Symbol, va uint6
// Only break at outermost syms.
if ctxt.Arch.InFamily(sys.PPC64) && s.Outer == nil && Iself && ctxt.LinkMode == LinkExternal && va-sect.Vaddr+funcsize+maxSizeTrampolinesPPC64(s, isTramp) > 0x1c00000 {
if ctxt.Arch.InFamily(sys.PPC64) && s.Outer == nil && ctxt.IsELF && ctxt.LinkMode == LinkExternal && va-sect.Vaddr+funcsize+maxSizeTrampolinesPPC64(s, isTramp) > 0x1c00000 {
// Set the length for the previous text section
sect.Length = va - sect.Vaddr
@ -1941,11 +1941,11 @@ func (ctxt *Link) address() {
var bss *sym.Section
var noptrbss *sym.Section
for i, s := range Segdata.Sections {
if Iself && s.Name == ".tbss" {
if ctxt.IsELF && s.Name == ".tbss" {
continue
}
vlen := int64(s.Length)
if i+1 < len(Segdata.Sections) && !(Iself && Segdata.Sections[i+1].Name == ".tbss") {
if i+1 < len(Segdata.Sections) && !(ctxt.IsELF && Segdata.Sections[i+1].Name == ".tbss") {
vlen = int64(Segdata.Sections[i+1].Vaddr - s.Vaddr)
}
s.Vaddr = va

View File

@ -1508,7 +1508,7 @@ func dwarfgeneratedebugsyms(ctxt *Link) {
if ctxt.LinkMode == LinkExternal {
switch {
case Iself:
case ctxt.IsELF:
case Headtype == objabi.Hdarwin:
case Headtype == objabi.Hwindows:
default:

View File

@ -453,8 +453,6 @@ const (
)
var (
Iself bool
Nelfsym = 1
elf64 bool
@ -485,7 +483,7 @@ var buildinfo []byte
we write section and prog headers.
*/
func Elfinit(ctxt *Link) {
Iself = true
ctxt.IsELF = true
if ctxt.Arch.InFamily(sys.AMD64, sys.ARM64, sys.MIPS64, sys.PPC64, sys.S390X) {
elfRelType = ".rela"
@ -1008,7 +1006,7 @@ havelib:
}
func elfdynhash(ctxt *Link) {
if !Iself {
if !ctxt.IsELF {
return
}
@ -1429,7 +1427,7 @@ func addgonote(ctxt *Link, sectionName string, tag uint32, desc []byte) {
}
func (ctxt *Link) doelf() {
if !Iself {
if !ctxt.IsELF {
return
}

View File

@ -298,7 +298,7 @@ func adddynlib(ctxt *Link, lib string) {
}
seenlib[lib] = true
if Iself {
if ctxt.IsELF {
s := ctxt.Syms.Lookup(".dynstr", 0)
if s.Size == 0 {
Addstring(s, "")
@ -314,7 +314,7 @@ func Adddynsym(ctxt *Link, s *sym.Symbol) {
return
}
if Iself {
if ctxt.IsELF {
elfadddynsym(ctxt, s)
} else if Headtype == objabi.Hdarwin {
Errorf(s, "adddynsym: missed symbol (Extname=%s)", s.Extname)

View File

@ -154,7 +154,7 @@ func (ctxt *Link) CanUsePlugins() bool {
func (ctxt *Link) UseRelro() bool {
switch ctxt.BuildMode {
case BuildModeCArchive, BuildModeCShared, BuildModeShared, BuildModePIE, BuildModePlugin:
return Iself
return ctxt.IsELF
default:
return ctxt.linkShared
}
@ -594,7 +594,7 @@ func (ctxt *Link) loadlib() {
}
if ctxt.Arch == sys.Arch386 {
if (ctxt.BuildMode == BuildModeCArchive && Iself) || (ctxt.BuildMode == BuildModeCShared && Headtype != objabi.Hwindows) || ctxt.BuildMode == BuildModePIE || ctxt.DynlinkingGo() {
if (ctxt.BuildMode == BuildModeCArchive && ctxt.IsELF) || (ctxt.BuildMode == BuildModeCShared && Headtype != objabi.Hwindows) || ctxt.BuildMode == BuildModePIE || ctxt.DynlinkingGo() {
got := ctxt.Syms.Lookup("_GLOBAL_OFFSET_TABLE_", 0)
got.Type = sym.SDYNIMPORT
got.Attr |= sym.AttrReachable
@ -1151,7 +1151,7 @@ func (ctxt *Link) hostlink() {
}
}
if Iself && ctxt.DynlinkingGo() {
if ctxt.IsELF && ctxt.DynlinkingGo() {
// We force all symbol resolution to be done at program startup
// because lazy PLT resolution can use large amounts of stack at
// times we cannot allow it to do so.
@ -1185,7 +1185,7 @@ func (ctxt *Link) hostlink() {
}
}
if Iself && len(buildinfo) > 0 {
if ctxt.IsELF && len(buildinfo) > 0 {
argv = append(argv, fmt.Sprintf("-Wl,--build-id=0x%x", buildinfo))
}
@ -1207,7 +1207,7 @@ func (ctxt *Link) hostlink() {
}
// Force global symbols to be exported for dlopen, etc.
if Iself {
if ctxt.IsELF {
argv = append(argv, "-rdynamic")
}
@ -1291,7 +1291,7 @@ func (ctxt *Link) hostlink() {
// we added it. We do it in this order, rather than
// only adding -rdynamic later, so that -*extldflags
// can override -rdynamic without using -static.
if Iself && p == "-static" {
if ctxt.IsELF && p == "-static" {
for i := range argv {
if argv[i] == "-rdynamic" {
argv[i] = "-static"
@ -2043,7 +2043,7 @@ func genasmsym(ctxt *Link, put func(*Link, *sym.Symbol, string, SymbolType, int6
put(ctxt, s, s.Name, BSSSym, Symaddr(s), s.Gotype)
case sym.SHOSTOBJ:
if Headtype == objabi.Hwindows || Iself {
if Headtype == objabi.Hwindows || ctxt.IsELF {
put(ctxt, s, s.Name, UndefinedSym, s.Value, nil)
}

View File

@ -60,6 +60,8 @@ type Link struct {
Loaded bool // set after all inputs have been loaded as symbols
IsELF bool
linkShared bool // link against installed Go shared libraries
LinkMode LinkMode
BuildMode BuildMode

View File

@ -166,7 +166,7 @@ func Main(arch *sys.Arch, theArch Arch) {
ctxt.computeTLSOffset()
Thearch.Archinit(ctxt)
if ctxt.linkShared && !Iself {
if ctxt.linkShared && !ctxt.IsELF {
Exitf("-linkshared can only be used on elf systems")
}

View File

@ -172,7 +172,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -209,7 +209,7 @@ func asmb(ctxt *ld.Link) {
ld.Lcsize = 0
symo := uint32(0)
if !*ld.FlagS {
if !ld.Iself {
if !ctxt.IsELF {
ld.Errorf(nil, "unsupported executable format")
}
if ctxt.Debugvlog != 0 {

View File

@ -179,7 +179,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -228,7 +228,7 @@ func asmb(ctxt *ld.Link) {
}
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
}
@ -240,7 +240,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Out.SeekSet(int64(symo))
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
if ctxt.Debugvlog != 0 {
ctxt.Logf("%5.2f elfsym\n", ld.Cputime())
}

View File

@ -806,7 +806,7 @@ func addpltsym(ctxt *ld.Link, s *sym.Symbol) {
ld.Adddynsym(ctxt, s)
if ld.Iself {
if ctxt.IsELF {
plt := ctxt.Syms.Lookup(".plt", 0)
rela := ctxt.Syms.Lookup(".rela.plt", 0)
if plt.Size == 0 {
@ -909,7 +909,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -960,7 +960,7 @@ func asmb(ctxt *ld.Link) {
}
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
}
@ -972,7 +972,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Out.SeekSet(int64(symo))
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
if ctxt.Debugvlog != 0 {
ctxt.Logf("%5.2f elfsym\n", ld.Cputime())
}

View File

@ -425,7 +425,7 @@ func addpltsym(ctxt *ld.Link, s *sym.Symbol) {
ld.Adddynsym(ctxt, s)
if ld.Iself {
if ctxt.IsELF {
plt := ctxt.Syms.Lookup(".plt", 0)
got := ctxt.Syms.Lookup(".got", 0)
rela := ctxt.Syms.Lookup(".rela.plt", 0)
@ -491,7 +491,7 @@ func addgotsym(ctxt *ld.Link, s *sym.Symbol) {
s.Got = int32(got.Size)
got.AddUint64(ctxt.Arch, 0)
if ld.Iself {
if ctxt.IsELF {
rela := ctxt.Syms.Lookup(".rela", 0)
rela.AddAddrPlus(ctxt.Arch, got, int64(s.Got))
rela.AddUint64(ctxt.Arch, ld.ELF64_R_INFO(uint32(s.Dynid), uint32(elf.R_390_GLOB_DAT)))
@ -506,7 +506,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -549,7 +549,7 @@ func asmb(ctxt *ld.Link) {
ld.Lcsize = 0
symo := uint32(0)
if !*ld.FlagS {
if !ld.Iself {
if !ctxt.IsELF {
ld.Errorf(nil, "unsupported executable format")
}
if ctxt.Debugvlog != 0 {

View File

@ -58,7 +58,7 @@ func gentext(ctxt *ld.Link) {
} else {
switch ctxt.BuildMode {
case ld.BuildModeCArchive:
if !ld.Iself {
if !ctxt.IsELF {
return
}
case ld.BuildModePIE, ld.BuildModeCShared, ld.BuildModePlugin:
@ -306,7 +306,7 @@ func adddynrel(ctxt *ld.Link, s *sym.Symbol, r *sym.Reloc) bool {
if s.Type != sym.SDATA {
break
}
if ld.Iself {
if ctxt.IsELF {
ld.Adddynsym(ctxt, targ)
rel := ctxt.Syms.Lookup(".rel", 0)
rel.AddAddrPlus(ctxt.Arch, s, int64(r.Off))
@ -541,7 +541,7 @@ func addpltsym(ctxt *ld.Link, s *sym.Symbol) {
ld.Adddynsym(ctxt, s)
if ld.Iself {
if ctxt.IsELF {
plt := ctxt.Syms.Lookup(".plt", 0)
got := ctxt.Syms.Lookup(".got.plt", 0)
rel := ctxt.Syms.Lookup(".rel.plt", 0)
@ -604,7 +604,7 @@ func addgotsym(ctxt *ld.Link, s *sym.Symbol) {
s.Got = int32(got.Size)
got.AddUint32(ctxt.Arch, 0)
if ld.Iself {
if ctxt.IsELF {
rel := ctxt.Syms.Lookup(".rel", 0)
rel.AddAddrPlus(ctxt.Arch, got, int64(s.Got))
rel.AddUint32(ctxt.Arch, ld.ELF32_R_INFO(uint32(s.Dynid), uint32(elf.R_386_GLOB_DAT)))
@ -620,7 +620,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Logf("%5.2f asmb\n", ld.Cputime())
}
if ld.Iself {
if ctxt.IsELF {
ld.Asmbelfsetup()
}
@ -675,7 +675,7 @@ func asmb(ctxt *ld.Link) {
}
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
}
@ -694,7 +694,7 @@ func asmb(ctxt *ld.Link) {
ctxt.Out.SeekSet(int64(symo))
switch ld.Headtype {
default:
if ld.Iself {
if ctxt.IsELF {
if ctxt.Debugvlog != 0 {
ctxt.Logf("%5.2f elfsym\n", ld.Cputime())
}