mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: remove duplicate asmb code
Lots of the architecture specific code for asmb() is very simimar. As such, move to a common function. Change-Id: Id1fd50ee7bfa1bc9978e3f42ad08914b04cd677b Reviewed-on: https://go-review.googlesource.com/c/go/+/234683 Run-TryBot: Jeremy Faller <jeremy@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
6097f7cf7a
commit
49b12dcca9
22 changed files with 104 additions and 304 deletions
|
|
@ -39,7 +39,6 @@ import (
|
|||
"debug/elf"
|
||||
"fmt"
|
||||
"log"
|
||||
"sync"
|
||||
)
|
||||
|
||||
func gentext(ctxt *ld.Link, ldr *loader.Loader) {
|
||||
|
|
@ -797,35 +796,6 @@ func addgotsym(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade
|
|||
}
|
||||
}
|
||||
|
||||
func asmb(ctxt *ld.Link, _ *loader.Loader) {
|
||||
if ctxt.IsELF {
|
||||
ld.Asmbelfsetup()
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
sect := ld.Segtext.Sections[0]
|
||||
offset := sect.Vaddr - ld.Segtext.Vaddr + ld.Segtext.Fileoff
|
||||
ld.WriteParallel(&wg, ld.Codeblk, ctxt, offset, sect.Vaddr, sect.Length)
|
||||
|
||||
for _, sect := range ld.Segtext.Sections[1:] {
|
||||
offset := sect.Vaddr - ld.Segtext.Vaddr + ld.Segtext.Fileoff
|
||||
ld.WriteParallel(&wg, ld.Datblk, ctxt, offset, sect.Vaddr, sect.Length)
|
||||
}
|
||||
|
||||
if ld.Segrodata.Filelen > 0 {
|
||||
ld.WriteParallel(&wg, ld.Datblk, ctxt, ld.Segrodata.Fileoff, ld.Segrodata.Vaddr, ld.Segrodata.Filelen)
|
||||
}
|
||||
|
||||
if ld.Segrelrodata.Filelen > 0 {
|
||||
ld.WriteParallel(&wg, ld.Datblk, ctxt, ld.Segrelrodata.Fileoff, ld.Segrelrodata.Vaddr, ld.Segrelrodata.Filelen)
|
||||
}
|
||||
|
||||
ld.WriteParallel(&wg, ld.Datblk, ctxt, ld.Segdata.Fileoff, ld.Segdata.Vaddr, ld.Segdata.Filelen)
|
||||
|
||||
ld.WriteParallel(&wg, ld.Dwarfblk, ctxt, ld.Segdwarf.Fileoff, ld.Segdwarf.Vaddr, ld.Segdwarf.Filelen)
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func asmb2(ctxt *ld.Link, _ *loader.Loader) {
|
||||
machlink := uint32(0)
|
||||
if ctxt.HeadType == objabi.Hdarwin {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue