mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/internal/obj: remove dead fields and code
A quick pass through link.go, mostly removing fields that are not used on the "creating a single object file" side of the fence. Change-Id: I35ba41378c2c418f7df2f2f88dce65bc64a1a45d Reviewed-on: https://go-review.googlesource.com/7672 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
e7d9f81645
commit
ad49c7bb62
6 changed files with 30 additions and 119 deletions
|
|
@ -1524,7 +1524,7 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) {
|
||||||
|
|
||||||
case 0: /* pseudo ops */
|
case 0: /* pseudo ops */
|
||||||
if false { /*debug['G']*/
|
if false { /*debug['G']*/
|
||||||
fmt.Printf("%x: %s: arm %d\n", uint32(p.Pc), p.From.Sym.Name, p.From.Sym.Fnptr)
|
fmt.Printf("%x: %s: arm\n", uint32(p.Pc), p.From.Sym.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
case 1: /* op R,[R],R */
|
case 1: /* op R,[R],R */
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = obj.SRODATA
|
s.Type = obj.SRODATA
|
||||||
obj.Adduint32(ctxt, s, i32)
|
obj.Adduint32(ctxt, s, i32)
|
||||||
s.Reachable = 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p.From.Type = obj.TYPE_MEM
|
p.From.Type = obj.TYPE_MEM
|
||||||
|
|
@ -132,7 +131,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = obj.SRODATA
|
s.Type = obj.SRODATA
|
||||||
obj.Adduint64(ctxt, s, i64)
|
obj.Adduint64(ctxt, s, i64)
|
||||||
s.Reachable = 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p.From.Type = obj.TYPE_MEM
|
p.From.Type = obj.TYPE_MEM
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,6 @@ func Setuintxx(ctxt *Link, s *LSym, off int64, v uint64, wid int64) int64 {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = SDATA
|
s.Type = SDATA
|
||||||
}
|
}
|
||||||
s.Reachable = 1
|
|
||||||
if s.Size < off+wid {
|
if s.Size < off+wid {
|
||||||
s.Size = off + wid
|
s.Size = off + wid
|
||||||
Symgrow(ctxt, s, s.Size)
|
Symgrow(ctxt, s, s.Size)
|
||||||
|
|
@ -183,7 +182,6 @@ func addaddrplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = SDATA
|
s.Type = SDATA
|
||||||
}
|
}
|
||||||
s.Reachable = 1
|
|
||||||
i := s.Size
|
i := s.Size
|
||||||
s.Size += int64(ctxt.Arch.Ptrsize)
|
s.Size += int64(ctxt.Arch.Ptrsize)
|
||||||
Symgrow(ctxt, s, s.Size)
|
Symgrow(ctxt, s, s.Size)
|
||||||
|
|
@ -200,7 +198,6 @@ func addpcrelplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = SDATA
|
s.Type = SDATA
|
||||||
}
|
}
|
||||||
s.Reachable = 1
|
|
||||||
i := s.Size
|
i := s.Size
|
||||||
s.Size += 4
|
s.Size += 4
|
||||||
Symgrow(ctxt, s, s.Size)
|
Symgrow(ctxt, s, s.Size)
|
||||||
|
|
@ -221,7 +218,6 @@ func setaddrplus(ctxt *Link, s *LSym, off int64, t *LSym, add int64) int64 {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = SDATA
|
s.Type = SDATA
|
||||||
}
|
}
|
||||||
s.Reachable = 1
|
|
||||||
if off+int64(ctxt.Arch.Ptrsize) > s.Size {
|
if off+int64(ctxt.Arch.Ptrsize) > s.Size {
|
||||||
s.Size = off + int64(ctxt.Arch.Ptrsize)
|
s.Size = off + int64(ctxt.Arch.Ptrsize)
|
||||||
Symgrow(ctxt, s, s.Size)
|
Symgrow(ctxt, s, s.Size)
|
||||||
|
|
@ -244,7 +240,6 @@ func addsize(ctxt *Link, s *LSym, t *LSym) int64 {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = SDATA
|
s.Type = SDATA
|
||||||
}
|
}
|
||||||
s.Reachable = 1
|
|
||||||
i := s.Size
|
i := s.Size
|
||||||
s.Size += int64(ctxt.Arch.Ptrsize)
|
s.Size += int64(ctxt.Arch.Ptrsize)
|
||||||
Symgrow(ctxt, s, s.Size)
|
Symgrow(ctxt, s, s.Size)
|
||||||
|
|
@ -260,7 +255,6 @@ func addaddrplus4(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = SDATA
|
s.Type = SDATA
|
||||||
}
|
}
|
||||||
s.Reachable = 1
|
|
||||||
i := s.Size
|
i := s.Size
|
||||||
s.Size += 4
|
s.Size += 4
|
||||||
Symgrow(ctxt, s, s.Size)
|
Symgrow(ctxt, s, s.Size)
|
||||||
|
|
|
||||||
|
|
@ -272,45 +272,20 @@ const (
|
||||||
|
|
||||||
type LSym struct {
|
type LSym struct {
|
||||||
Name string
|
Name string
|
||||||
Extname string
|
|
||||||
Type int16
|
Type int16
|
||||||
Version int16
|
Version int16
|
||||||
Dupok uint8
|
Dupok uint8
|
||||||
Cfunc uint8
|
Cfunc uint8
|
||||||
External uint8
|
|
||||||
Nosplit uint8
|
Nosplit uint8
|
||||||
Reachable uint8
|
|
||||||
Cgoexport uint8
|
|
||||||
Special uint8
|
|
||||||
Stkcheck uint8
|
|
||||||
Hide uint8
|
|
||||||
Leaf uint8
|
Leaf uint8
|
||||||
Fnptr uint8
|
|
||||||
Localentry uint8
|
|
||||||
Seenglobl uint8
|
Seenglobl uint8
|
||||||
Onlist uint8
|
Onlist uint8
|
||||||
Printed uint8
|
|
||||||
Symid int16
|
|
||||||
Dynid int32
|
|
||||||
Plt int32
|
|
||||||
Got int32
|
|
||||||
Align int32
|
|
||||||
Elfsym int32
|
|
||||||
Args int32
|
Args int32
|
||||||
Locals int32
|
Locals int32
|
||||||
Value int64
|
Value int64
|
||||||
Size int64
|
Size int64
|
||||||
Allsym *LSym
|
|
||||||
Next *LSym
|
Next *LSym
|
||||||
Sub *LSym
|
|
||||||
Outer *LSym
|
|
||||||
Gotype *LSym
|
Gotype *LSym
|
||||||
Reachparent *LSym
|
|
||||||
Queue *LSym
|
|
||||||
File string
|
|
||||||
Dynimplib string
|
|
||||||
Dynimpvers string
|
|
||||||
Sect *struct{}
|
|
||||||
Autom *Auto
|
Autom *Auto
|
||||||
Text *Prog
|
Text *Prog
|
||||||
Etext *Prog
|
Etext *Prog
|
||||||
|
|
@ -376,9 +351,7 @@ const (
|
||||||
type Reloc struct {
|
type Reloc struct {
|
||||||
Off int32
|
Off int32
|
||||||
Siz uint8
|
Siz uint8
|
||||||
Done uint8
|
|
||||||
Type int32
|
Type int32
|
||||||
Variant int32
|
|
||||||
Add int64
|
Add int64
|
||||||
Xadd int64
|
Xadd int64
|
||||||
Sym *LSym
|
Sym *LSym
|
||||||
|
|
@ -408,17 +381,6 @@ const (
|
||||||
R_POWER_TOC
|
R_POWER_TOC
|
||||||
)
|
)
|
||||||
|
|
||||||
// Reloc.variant
|
|
||||||
const (
|
|
||||||
RV_NONE = iota
|
|
||||||
RV_POWER_LO
|
|
||||||
RV_POWER_HI
|
|
||||||
RV_POWER_HA
|
|
||||||
RV_POWER_DS
|
|
||||||
RV_CHECK_OVERFLOW = 1 << 8
|
|
||||||
RV_TYPE_MASK = RV_CHECK_OVERFLOW - 1
|
|
||||||
)
|
|
||||||
|
|
||||||
type Auto struct {
|
type Auto struct {
|
||||||
Asym *LSym
|
Asym *LSym
|
||||||
Link *Auto
|
Link *Auto
|
||||||
|
|
@ -459,24 +421,15 @@ const (
|
||||||
// Link holds the context for writing object code from a compiler
|
// Link holds the context for writing object code from a compiler
|
||||||
// to be linker input or for reading that input into the linker.
|
// to be linker input or for reading that input into the linker.
|
||||||
type Link struct {
|
type Link struct {
|
||||||
Thechar int32
|
|
||||||
Thestring string
|
|
||||||
Goarm int32
|
Goarm int32
|
||||||
Headtype int
|
Headtype int
|
||||||
Arch *LinkArch
|
Arch *LinkArch
|
||||||
Ignore func(string) int32
|
|
||||||
Debugasm int32
|
Debugasm int32
|
||||||
Debugline int32
|
|
||||||
Debughist int32
|
|
||||||
Debugread int32
|
|
||||||
Debugvlog int32
|
Debugvlog int32
|
||||||
Debugstack int32
|
|
||||||
Debugzerostack int32
|
Debugzerostack int32
|
||||||
Debugdivmod int32
|
Debugdivmod int32
|
||||||
Debugfloat int32
|
|
||||||
Debugpcln int32
|
Debugpcln int32
|
||||||
Flag_shared int32
|
Flag_shared int32
|
||||||
Iself int32
|
|
||||||
Bso *Biobuf
|
Bso *Biobuf
|
||||||
Pathname string
|
Pathname string
|
||||||
Windows int32
|
Windows int32
|
||||||
|
|
@ -485,8 +438,6 @@ type Link struct {
|
||||||
Goroot_final string
|
Goroot_final string
|
||||||
Enforce_data_order int32
|
Enforce_data_order int32
|
||||||
Hash map[SymVer]*LSym
|
Hash map[SymVer]*LSym
|
||||||
Allsym *LSym
|
|
||||||
Nsymbol int32
|
|
||||||
LineHist LineHist
|
LineHist LineHist
|
||||||
Imports []string
|
Imports []string
|
||||||
Plist *Plist
|
Plist *Plist
|
||||||
|
|
@ -513,20 +464,13 @@ type Link struct {
|
||||||
Autosize int32
|
Autosize int32
|
||||||
Armsize int32
|
Armsize int32
|
||||||
Pc int64
|
Pc int64
|
||||||
Libdir []string
|
|
||||||
Library []Library
|
|
||||||
Tlsoffset int
|
Tlsoffset int
|
||||||
Diag func(string, ...interface{})
|
Diag func(string, ...interface{})
|
||||||
Mode int
|
Mode int
|
||||||
Curauto *Auto
|
|
||||||
Curhist *Auto
|
|
||||||
Cursym *LSym
|
Cursym *LSym
|
||||||
Version int
|
Version int
|
||||||
Textp *LSym
|
Textp *LSym
|
||||||
Etextp *LSym
|
Etextp *LSym
|
||||||
Histdepth int32
|
|
||||||
Nhistfile int32
|
|
||||||
Filesyms *LSym
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type SymVer struct {
|
type SymVer struct {
|
||||||
|
|
@ -534,13 +478,6 @@ type SymVer struct {
|
||||||
Version int
|
Version int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Library struct {
|
|
||||||
Objref string
|
|
||||||
Srcref string
|
|
||||||
File string
|
|
||||||
Pkg string
|
|
||||||
}
|
|
||||||
|
|
||||||
// LinkArch is the definition of a single architecture.
|
// LinkArch is the definition of a single architecture.
|
||||||
type LinkArch struct {
|
type LinkArch struct {
|
||||||
ByteOrder binary.ByteOrder
|
ByteOrder binary.ByteOrder
|
||||||
|
|
@ -572,14 +509,6 @@ const (
|
||||||
Hwindows
|
Hwindows
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
LinkAuto = 0 + iota
|
|
||||||
LinkInternal
|
|
||||||
LinkExternal
|
|
||||||
)
|
|
||||||
|
|
||||||
var linkbasepointer int
|
|
||||||
|
|
||||||
type Plist struct {
|
type Plist struct {
|
||||||
Name *LSym
|
Name *LSym
|
||||||
Firstpc *Prog
|
Firstpc *Prog
|
||||||
|
|
|
||||||
|
|
@ -225,18 +225,11 @@ func linknewsym(ctxt *Link, symb string, v int) *LSym {
|
||||||
s := new(LSym)
|
s := new(LSym)
|
||||||
*s = LSym{}
|
*s = LSym{}
|
||||||
|
|
||||||
s.Dynid = -1
|
|
||||||
s.Plt = -1
|
|
||||||
s.Got = -1
|
|
||||||
s.Name = symb
|
s.Name = symb
|
||||||
s.Type = 0
|
s.Type = 0
|
||||||
s.Version = int16(v)
|
s.Version = int16(v)
|
||||||
s.Value = 0
|
s.Value = 0
|
||||||
s.Size = 0
|
s.Size = 0
|
||||||
ctxt.Nsymbol++
|
|
||||||
|
|
||||||
s.Allsym = ctxt.Allsym
|
|
||||||
ctxt.Allsym = s
|
|
||||||
|
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
@ -248,7 +241,6 @@ func _lookup(ctxt *Link, symb string, v int, creat int) *LSym {
|
||||||
}
|
}
|
||||||
|
|
||||||
s = linknewsym(ctxt, symb, v)
|
s = linknewsym(ctxt, symb, v)
|
||||||
s.Extname = s.Name
|
|
||||||
ctxt.Hash[SymVer{symb, v}] = s
|
ctxt.Hash[SymVer{symb, v}] = s
|
||||||
|
|
||||||
return s
|
return s
|
||||||
|
|
|
||||||
|
|
@ -246,7 +246,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = obj.SRODATA
|
s.Type = obj.SRODATA
|
||||||
obj.Adduint32(ctxt, s, i32)
|
obj.Adduint32(ctxt, s, i32)
|
||||||
s.Reachable = 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p.From.Type = obj.TYPE_MEM
|
p.From.Type = obj.TYPE_MEM
|
||||||
|
|
@ -290,7 +289,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
|
||||||
if s.Type == 0 {
|
if s.Type == 0 {
|
||||||
s.Type = obj.SRODATA
|
s.Type = obj.SRODATA
|
||||||
obj.Adduint64(ctxt, s, i64)
|
obj.Adduint64(ctxt, s, i64)
|
||||||
s.Reachable = 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p.From.Type = obj.TYPE_MEM
|
p.From.Type = obj.TYPE_MEM
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue