Commit 836a3ae6 authored by Michael Hudson-Doyle's avatar Michael Hudson-Doyle

cmd/link: remove more unused ctxt parameters

This time in elf.go.

Change-Id: Ifaf71742ebbc9aadc8606c39ea2d417ae5cc7e0d
Reviewed-on: https://go-review.googlesource.com/29450
Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent b6324ef5
...@@ -653,7 +653,7 @@ func asmb(ctxt *ld.Link) { ...@@ -653,7 +653,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
...@@ -588,7 +588,7 @@ func asmb(ctxt *ld.Link) { ...@@ -588,7 +588,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
...@@ -397,7 +397,7 @@ func asmb(ctxt *ld.Link) { ...@@ -397,7 +397,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
...@@ -1216,7 +1216,7 @@ func elfinterp(sh *ElfShdr, startva uint64, resoff uint64, p string) int { ...@@ -1216,7 +1216,7 @@ func elfinterp(sh *ElfShdr, startva uint64, resoff uint64, p string) int {
return n return n
} }
func elfwriteinterp(ctxt *Link) int { func elfwriteinterp() int {
sh := elfshname(".interp") sh := elfshname(".interp")
Cseek(int64(sh.off)) Cseek(int64(sh.off))
coutbuf.WriteString(interp) coutbuf.WriteString(interp)
...@@ -1578,7 +1578,7 @@ func elfdynhash(ctxt *Link) { ...@@ -1578,7 +1578,7 @@ func elfdynhash(ctxt *Link) {
Elfwritedynent(ctxt, s, DT_NULL, 0) Elfwritedynent(ctxt, s, DT_NULL, 0)
} }
func elfphload(ctxt *Link, seg *Segment) *ElfPhdr { func elfphload(seg *Segment) *ElfPhdr {
ph := newElfPhdr() ph := newElfPhdr()
ph.type_ = PT_LOAD ph.type_ = PT_LOAD
if seg.Rwx&4 != 0 { if seg.Rwx&4 != 0 {
...@@ -1600,7 +1600,7 @@ func elfphload(ctxt *Link, seg *Segment) *ElfPhdr { ...@@ -1600,7 +1600,7 @@ func elfphload(ctxt *Link, seg *Segment) *ElfPhdr {
return ph return ph
} }
func elfphrelro(ctxt *Link, seg *Segment) { func elfphrelro(seg *Segment) {
ph := newElfPhdr() ph := newElfPhdr()
ph.type_ = PT_GNU_RELRO ph.type_ = PT_GNU_RELRO
ph.vaddr = seg.Vaddr ph.vaddr = seg.Vaddr
...@@ -1696,7 +1696,7 @@ func elfshbits(sect *Section) *ElfShdr { ...@@ -1696,7 +1696,7 @@ func elfshbits(sect *Section) *ElfShdr {
return sh return sh
} }
func elfshreloc(ctxt *Link, sect *Section) *ElfShdr { func elfshreloc(sect *Section) *ElfShdr {
// If main section is SHT_NOBITS, nothing to relocate. // If main section is SHT_NOBITS, nothing to relocate.
// Also nothing to relocate in .shstrtab or notes. // Also nothing to relocate in .shstrtab or notes.
if sect.Vaddr >= sect.Seg.Vaddr+sect.Seg.Filelen { if sect.Vaddr >= sect.Seg.Vaddr+sect.Seg.Filelen {
...@@ -2101,7 +2101,7 @@ func (ctxt *Link) doelf() { ...@@ -2101,7 +2101,7 @@ func (ctxt *Link) doelf() {
} }
// Do not write DT_NULL. elfdynhash will finish it. // Do not write DT_NULL. elfdynhash will finish it.
func shsym(ctxt *Link, sh *ElfShdr, s *Symbol) { func shsym(sh *ElfShdr, s *Symbol) {
addr := Symaddr(s) addr := Symaddr(s)
if sh.flags&SHF_ALLOC != 0 { if sh.flags&SHF_ALLOC != 0 {
sh.addr = uint64(addr) sh.addr = uint64(addr)
...@@ -2119,7 +2119,7 @@ func phsh(ph *ElfPhdr, sh *ElfShdr) { ...@@ -2119,7 +2119,7 @@ func phsh(ph *ElfPhdr, sh *ElfShdr) {
ph.align = sh.addralign ph.align = sh.addralign
} }
func Asmbelfsetup(ctxt *Link) { func Asmbelfsetup() {
/* This null SHdr must appear before all others */ /* This null SHdr must appear before all others */
elfshname("") elfshname("")
...@@ -2297,15 +2297,15 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2297,15 +2297,15 @@ func Asmbelf(ctxt *Link, symo int64) {
// Additions to the reserved area must be above this line. // Additions to the reserved area must be above this line.
elfphload(ctxt, &Segtext) elfphload(&Segtext)
if Segrodata.Sect != nil { if Segrodata.Sect != nil {
elfphload(ctxt, &Segrodata) elfphload(&Segrodata)
} }
if Segrelrodata.Sect != nil { if Segrelrodata.Sect != nil {
elfphload(ctxt, &Segrelrodata) elfphload(&Segrelrodata)
elfphrelro(ctxt, &Segrelrodata) elfphrelro(&Segrelrodata)
} }
elfphload(ctxt, &Segdata) elfphload(&Segdata)
/* Dynamic linking sections */ /* Dynamic linking sections */
if !*FlagD { if !*FlagD {
...@@ -2321,13 +2321,13 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2321,13 +2321,13 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.link = uint32(elfshname(".dynstr").shnum) sh.link = uint32(elfshname(".dynstr").shnum)
// sh->info = index of first non-local symbol (number of local symbols) // sh->info = index of first non-local symbol (number of local symbols)
shsym(ctxt, sh, ctxt.Syms.Lookup(".dynsym", 0)) shsym(sh, ctxt.Syms.Lookup(".dynsym", 0))
sh = elfshname(".dynstr") sh = elfshname(".dynstr")
sh.type_ = SHT_STRTAB sh.type_ = SHT_STRTAB
sh.flags = SHF_ALLOC sh.flags = SHF_ALLOC
sh.addralign = 1 sh.addralign = 1
shsym(ctxt, sh, ctxt.Syms.Lookup(".dynstr", 0)) shsym(sh, ctxt.Syms.Lookup(".dynstr", 0))
if elfverneed != 0 { if elfverneed != 0 {
sh := elfshname(".gnu.version") sh := elfshname(".gnu.version")
...@@ -2336,7 +2336,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2336,7 +2336,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.addralign = 2 sh.addralign = 2
sh.link = uint32(elfshname(".dynsym").shnum) sh.link = uint32(elfshname(".dynsym").shnum)
sh.entsize = 2 sh.entsize = 2
shsym(ctxt, sh, ctxt.Syms.Lookup(".gnu.version", 0)) shsym(sh, ctxt.Syms.Lookup(".gnu.version", 0))
sh = elfshname(".gnu.version_r") sh = elfshname(".gnu.version_r")
sh.type_ = SHT_GNU_VERNEED sh.type_ = SHT_GNU_VERNEED
...@@ -2344,7 +2344,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2344,7 +2344,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.addralign = uint64(SysArch.RegSize) sh.addralign = uint64(SysArch.RegSize)
sh.info = uint32(elfverneed) sh.info = uint32(elfverneed)
sh.link = uint32(elfshname(".dynstr").shnum) sh.link = uint32(elfshname(".dynstr").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".gnu.version_r", 0)) shsym(sh, ctxt.Syms.Lookup(".gnu.version_r", 0))
} }
if elfRelType == ".rela" { if elfRelType == ".rela" {
...@@ -2355,7 +2355,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2355,7 +2355,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.addralign = uint64(SysArch.RegSize) sh.addralign = uint64(SysArch.RegSize)
sh.link = uint32(elfshname(".dynsym").shnum) sh.link = uint32(elfshname(".dynsym").shnum)
sh.info = uint32(elfshname(".plt").shnum) sh.info = uint32(elfshname(".plt").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".rela.plt", 0)) shsym(sh, ctxt.Syms.Lookup(".rela.plt", 0))
sh = elfshname(".rela") sh = elfshname(".rela")
sh.type_ = SHT_RELA sh.type_ = SHT_RELA
...@@ -2363,7 +2363,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2363,7 +2363,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.entsize = ELF64RELASIZE sh.entsize = ELF64RELASIZE
sh.addralign = 8 sh.addralign = 8
sh.link = uint32(elfshname(".dynsym").shnum) sh.link = uint32(elfshname(".dynsym").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".rela", 0)) shsym(sh, ctxt.Syms.Lookup(".rela", 0))
} else { } else {
sh := elfshname(".rel.plt") sh := elfshname(".rel.plt")
sh.type_ = SHT_REL sh.type_ = SHT_REL
...@@ -2371,7 +2371,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2371,7 +2371,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.entsize = ELF32RELSIZE sh.entsize = ELF32RELSIZE
sh.addralign = 4 sh.addralign = 4
sh.link = uint32(elfshname(".dynsym").shnum) sh.link = uint32(elfshname(".dynsym").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".rel.plt", 0)) shsym(sh, ctxt.Syms.Lookup(".rel.plt", 0))
sh = elfshname(".rel") sh = elfshname(".rel")
sh.type_ = SHT_REL sh.type_ = SHT_REL
...@@ -2379,7 +2379,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2379,7 +2379,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.entsize = ELF32RELSIZE sh.entsize = ELF32RELSIZE
sh.addralign = 4 sh.addralign = 4
sh.link = uint32(elfshname(".dynsym").shnum) sh.link = uint32(elfshname(".dynsym").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".rel", 0)) shsym(sh, ctxt.Syms.Lookup(".rel", 0))
} }
if eh.machine == EM_PPC64 { if eh.machine == EM_PPC64 {
...@@ -2387,7 +2387,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2387,7 +2387,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.type_ = SHT_PROGBITS sh.type_ = SHT_PROGBITS
sh.flags = SHF_ALLOC + SHF_EXECINSTR sh.flags = SHF_ALLOC + SHF_EXECINSTR
sh.addralign = 4 sh.addralign = 4
shsym(ctxt, sh, ctxt.Syms.Lookup(".glink", 0)) shsym(sh, ctxt.Syms.Lookup(".glink", 0))
} }
sh = elfshname(".plt") sh = elfshname(".plt")
...@@ -2408,7 +2408,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2408,7 +2408,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.entsize = 4 sh.entsize = 4
} }
sh.addralign = sh.entsize sh.addralign = sh.entsize
shsym(ctxt, sh, ctxt.Syms.Lookup(".plt", 0)) shsym(sh, ctxt.Syms.Lookup(".plt", 0))
// On ppc64, .got comes from the input files, so don't // On ppc64, .got comes from the input files, so don't
// create it here, and .got.plt is not used. // create it here, and .got.plt is not used.
...@@ -2418,14 +2418,14 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2418,14 +2418,14 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.flags = SHF_ALLOC + SHF_WRITE sh.flags = SHF_ALLOC + SHF_WRITE
sh.entsize = uint64(SysArch.RegSize) sh.entsize = uint64(SysArch.RegSize)
sh.addralign = uint64(SysArch.RegSize) sh.addralign = uint64(SysArch.RegSize)
shsym(ctxt, sh, ctxt.Syms.Lookup(".got", 0)) shsym(sh, ctxt.Syms.Lookup(".got", 0))
sh = elfshname(".got.plt") sh = elfshname(".got.plt")
sh.type_ = SHT_PROGBITS sh.type_ = SHT_PROGBITS
sh.flags = SHF_ALLOC + SHF_WRITE sh.flags = SHF_ALLOC + SHF_WRITE
sh.entsize = uint64(SysArch.RegSize) sh.entsize = uint64(SysArch.RegSize)
sh.addralign = uint64(SysArch.RegSize) sh.addralign = uint64(SysArch.RegSize)
shsym(ctxt, sh, ctxt.Syms.Lookup(".got.plt", 0)) shsym(sh, ctxt.Syms.Lookup(".got.plt", 0))
} }
sh = elfshname(".hash") sh = elfshname(".hash")
...@@ -2434,7 +2434,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2434,7 +2434,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.entsize = 4 sh.entsize = 4
sh.addralign = uint64(SysArch.RegSize) sh.addralign = uint64(SysArch.RegSize)
sh.link = uint32(elfshname(".dynsym").shnum) sh.link = uint32(elfshname(".dynsym").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".hash", 0)) shsym(sh, ctxt.Syms.Lookup(".hash", 0))
/* sh and PT_DYNAMIC for .dynamic section */ /* sh and PT_DYNAMIC for .dynamic section */
sh = elfshname(".dynamic") sh = elfshname(".dynamic")
...@@ -2444,7 +2444,7 @@ func Asmbelf(ctxt *Link, symo int64) { ...@@ -2444,7 +2444,7 @@ func Asmbelf(ctxt *Link, symo int64) {
sh.entsize = 2 * uint64(SysArch.RegSize) sh.entsize = 2 * uint64(SysArch.RegSize)
sh.addralign = uint64(SysArch.RegSize) sh.addralign = uint64(SysArch.RegSize)
sh.link = uint32(elfshname(".dynstr").shnum) sh.link = uint32(elfshname(".dynstr").shnum)
shsym(ctxt, sh, ctxt.Syms.Lookup(".dynamic", 0)) shsym(sh, ctxt.Syms.Lookup(".dynamic", 0))
ph := newElfPhdr() ph := newElfPhdr()
ph.type_ = PT_DYNAMIC ph.type_ = PT_DYNAMIC
ph.flags = PF_R + PF_W ph.flags = PF_R + PF_W
...@@ -2489,7 +2489,7 @@ elfobj: ...@@ -2489,7 +2489,7 @@ elfobj:
sh := elfshname(".shstrtab") sh := elfshname(".shstrtab")
sh.type_ = SHT_STRTAB sh.type_ = SHT_STRTAB
sh.addralign = 1 sh.addralign = 1
shsym(ctxt, sh, ctxt.Syms.Lookup(".shstrtab", 0)) shsym(sh, ctxt.Syms.Lookup(".shstrtab", 0))
eh.shstrndx = uint16(sh.shnum) eh.shstrndx = uint16(sh.shnum)
// put these sections early in the list // put these sections early in the list
...@@ -2516,20 +2516,20 @@ elfobj: ...@@ -2516,20 +2516,20 @@ elfobj:
if Linkmode == LinkExternal { if Linkmode == LinkExternal {
for sect := Segtext.Sect; sect != nil; sect = sect.Next { for sect := Segtext.Sect; sect != nil; sect = sect.Next {
elfshreloc(ctxt, sect) elfshreloc(sect)
} }
for sect := Segrodata.Sect; sect != nil; sect = sect.Next { for sect := Segrodata.Sect; sect != nil; sect = sect.Next {
elfshreloc(ctxt, sect) elfshreloc(sect)
} }
for sect := Segrelrodata.Sect; sect != nil; sect = sect.Next { for sect := Segrelrodata.Sect; sect != nil; sect = sect.Next {
elfshreloc(ctxt, sect) elfshreloc(sect)
} }
for sect := Segdata.Sect; sect != nil; sect = sect.Next { for sect := Segdata.Sect; sect != nil; sect = sect.Next {
elfshreloc(ctxt, sect) elfshreloc(sect)
} }
for _, s := range dwarfp { for _, s := range dwarfp {
if len(s.R) > 0 || s.Type == obj.SDWARFINFO { if len(s.R) > 0 || s.Type == obj.SDWARFINFO {
elfshreloc(ctxt, s.Sect) elfshreloc(s.Sect)
} }
if s.Type == obj.SDWARFINFO { if s.Type == obj.SDWARFINFO {
break break
...@@ -2612,7 +2612,7 @@ elfobj: ...@@ -2612,7 +2612,7 @@ elfobj:
a += int64(elfwritephdrs()) a += int64(elfwritephdrs())
a += int64(elfwriteshdrs()) a += int64(elfwriteshdrs())
if !*FlagD { if !*FlagD {
a += int64(elfwriteinterp(ctxt)) a += int64(elfwriteinterp())
} }
if Linkmode != LinkExternal { if Linkmode != LinkExternal {
if Headtype == obj.Hnetbsd { if Headtype == obj.Hnetbsd {
......
...@@ -189,7 +189,7 @@ func asmb(ctxt *ld.Link) { ...@@ -189,7 +189,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
...@@ -808,7 +808,7 @@ func asmb(ctxt *ld.Link) { ...@@ -808,7 +808,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
...@@ -507,7 +507,7 @@ func asmb(ctxt *ld.Link) { ...@@ -507,7 +507,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
...@@ -629,7 +629,7 @@ func asmb(ctxt *ld.Link) { ...@@ -629,7 +629,7 @@ func asmb(ctxt *ld.Link) {
} }
if ld.Iself { if ld.Iself {
ld.Asmbelfsetup(ctxt) ld.Asmbelfsetup()
} }
sect := ld.Segtext.Sect sect := ld.Segtext.Sect
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment