]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: remove size and version from genasmsym's argument
authorMichael Hudson-Doyle <michael.hudson@canonical.com>
Fri, 16 Sep 2016 04:47:28 +0000 (16:47 +1200)
committerMichael Hudson-Doyle <michael.hudson@canonical.com>
Sun, 18 Sep 2016 21:59:20 +0000 (21:59 +0000)
They are trivially available in the few places they are needed.

Change-Id: I6544692e9027076ec9e6e9a295c66457039e55e1
Reviewed-on: https://go-review.googlesource.com/29332
Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/link/internal/ld/dwarf.go
src/cmd/link/internal/ld/lib.go
src/cmd/link/internal/ld/macho.go
src/cmd/link/internal/ld/pe.go
src/cmd/link/internal/ld/symtab.go

index bceda5255363e8cccfd3b3b82c57e0d7b2a63ffd..1fb42b61abb08316e03b860cb8c33c8925a7e757 100644 (file)
@@ -814,7 +814,7 @@ func synthesizechantypes(ctxt *Link, die *dwarf.DWDie) {
 }
 
 // For use with pass.c::genasmsym
-func defdwsymb(ctxt *Link, sym *Symbol, s string, t SymbolType, v int64, size int64, ver int, gotype *Symbol) {
+func defdwsymb(ctxt *Link, sym *Symbol, s string, t SymbolType, v int64, gotype *Symbol) {
        if strings.HasPrefix(s, "go.string.") {
                return
        }
@@ -835,9 +835,9 @@ func defdwsymb(ctxt *Link, sym *Symbol, s string, t SymbolType, v int64, size in
                return
 
        case DataSym, BSSSym:
-               dv = newdie(ctxt, &dwglobals, dwarf.DW_ABRV_VARIABLE, s, ver)
+               dv = newdie(ctxt, &dwglobals, dwarf.DW_ABRV_VARIABLE, s, int(sym.Version))
                newabslocexprattr(dv, v, sym)
-               if ver == 0 {
+               if sym.Version == 0 {
                        newattr(dv, dwarf.DW_AT_external, dwarf.DW_CLS_FLAG, 1, 0)
                }
                fallthrough
index 3f092b2283845c55c55df89e0e9817818884ab65..fdbaa9dad4d236a4dc76222449b910d1fbfeb52f 100644 (file)
@@ -1818,16 +1818,16 @@ const (
        AutoSym                 = 'a'
 )
 
-func genasmsym(ctxt *Link, put func(*Link, *Symbol, string, SymbolType, int64, int64, int, *Symbol)) {
+func genasmsym(ctxt *Link, put func(*Link, *Symbol, string, SymbolType, int64, *Symbol)) {
        // These symbols won't show up in the first loop below because we
        // skip STEXT symbols. Normal STEXT symbols are emitted by walking textp.
        s := Linklookup(ctxt, "runtime.text", 0)
        if s.Type == obj.STEXT {
-               put(ctxt, s, s.Name, TextSym, s.Value, s.Size, int(s.Version), nil)
+               put(ctxt, s, s.Name, TextSym, s.Value, nil)
        }
        s = Linklookup(ctxt, "runtime.etext", 0)
        if s.Type == obj.STEXT {
-               put(ctxt, s, s.Name, TextSym, s.Value, s.Size, int(s.Version), nil)
+               put(ctxt, s, s.Name, TextSym, s.Value, nil)
        }
 
        for _, s := range ctxt.Allsym {
@@ -1866,7 +1866,7 @@ func genasmsym(ctxt *Link, put func(*Link, *Symbol, string, SymbolType, int64, i
                        if !s.Attr.Reachable() {
                                continue
                        }
-                       put(ctxt, s, s.Name, DataSym, Symaddr(ctxt, s), s.Size, int(s.Version), s.Gotype)
+                       put(ctxt, s, s.Name, DataSym, Symaddr(ctxt, s), s.Gotype)
 
                case obj.SBSS, obj.SNOPTRBSS:
                        if !s.Attr.Reachable() {
@@ -1875,39 +1875,39 @@ func genasmsym(ctxt *Link, put func(*Link, *Symbol, string, SymbolType, int64, i
                        if len(s.P) > 0 {
                                ctxt.Diag("%s should not be bss (size=%d type=%d special=%v)", s.Name, len(s.P), s.Type, s.Attr.Special())
                        }
-                       put(ctxt, s, s.Name, BSSSym, Symaddr(ctxt, s), s.Size, int(s.Version), s.Gotype)
+                       put(ctxt, s, s.Name, BSSSym, Symaddr(ctxt, s), s.Gotype)
 
                case obj.SFILE:
-                       put(ctxt, nil, s.Name, FileSym, s.Value, 0, int(s.Version), nil)
+                       put(ctxt, nil, s.Name, FileSym, s.Value, nil)
 
                case obj.SHOSTOBJ:
                        if Headtype == obj.Hwindows || Headtype == obj.Hwindowsgui || Iself {
-                               put(ctxt, s, s.Name, UndefinedSym, s.Value, 0, int(s.Version), nil)
+                               put(ctxt, s, s.Name, UndefinedSym, s.Value, nil)
                        }
 
                case obj.SDYNIMPORT:
                        if !s.Attr.Reachable() {
                                continue
                        }
-                       put(ctxt, s, s.Extname, UndefinedSym, 0, 0, int(s.Version), nil)
+                       put(ctxt, s, s.Extname, UndefinedSym, 0, nil)
 
                case obj.STLSBSS:
                        if Linkmode == LinkExternal && Headtype != obj.Hopenbsd {
-                               put(ctxt, s, s.Name, TLSSym, Symaddr(ctxt, s), s.Size, int(s.Version), s.Gotype)
+                               put(ctxt, s, s.Name, TLSSym, Symaddr(ctxt, s), s.Gotype)
                        }
                }
        }
 
        var off int32
        for _, s := range ctxt.Textp {
-               put(ctxt, s, s.Name, TextSym, s.Value, s.Size, int(s.Version), s.Gotype)
+               put(ctxt, s, s.Name, TextSym, s.Value, s.Gotype)
 
                locals := int32(0)
                if s.FuncInfo != nil {
                        locals = s.FuncInfo.Locals
                }
                // NOTE(ality): acid can't produce a stack trace without .frame symbols
-               put(ctxt, nil, ".frame", FrameSym, int64(locals)+int64(SysArch.PtrSize), 0, 0, nil)
+               put(ctxt, nil, ".frame", FrameSym, int64(locals)+int64(SysArch.PtrSize), nil)
 
                if s.FuncInfo == nil {
                        continue
@@ -1928,13 +1928,13 @@ func genasmsym(ctxt *Link, put func(*Link, *Symbol, string, SymbolType, int64, i
 
                        // FP
                        if off >= 0 {
-                               put(ctxt, nil, a.Asym.Name, ParamSym, int64(off), 0, 0, a.Gotype)
+                               put(ctxt, nil, a.Asym.Name, ParamSym, int64(off), a.Gotype)
                                continue
                        }
 
                        // SP
                        if off <= int32(-SysArch.PtrSize) {
-                               put(ctxt, nil, a.Asym.Name, AutoSym, -(int64(off) + int64(SysArch.PtrSize)), 0, 0, a.Gotype)
+                               put(ctxt, nil, a.Asym.Name, AutoSym, -(int64(off) + int64(SysArch.PtrSize)), a.Gotype)
                                continue
                        }
                }
index a5d36bfee6977c7b011fbef69e03bc70aed5c6c7..fa7d2b7d11a6355a2fa9403588c40c1062dfe426 100644 (file)
@@ -612,7 +612,7 @@ func symkind(s *Symbol) int {
        return SymKindLocal
 }
 
-func addsym(ctxt *Link, s *Symbol, name string, type_ SymbolType, addr int64, size int64, ver int, gotype *Symbol) {
+func addsym(ctxt *Link, s *Symbol, name string, type_ SymbolType, addr int64, gotype *Symbol) {
        if s == nil {
                return
        }
@@ -661,7 +661,7 @@ func machogenasmsym(ctxt *Link) {
        for _, s := range ctxt.Allsym {
                if s.Type == obj.SDYNIMPORT || s.Type == obj.SHOSTOBJ {
                        if s.Attr.Reachable() {
-                               addsym(ctxt, s, "", DataSym, 0, 0, 0, nil)
+                               addsym(ctxt, s, "", DataSym, 0, nil)
                        }
                }
        }
index 407f90f9cb0629910e0c02fcdd0e9556513ec097..d6be4206a51d5ff9ad4d563dcd4af8f1dcac3793 100644 (file)
@@ -930,7 +930,7 @@ func newPEDWARFSection(ctxt *Link, name string, size int64) *IMAGE_SECTION_HEADE
 func writePESymTableRecords(ctxt *Link) int {
        var symcnt int
 
-       put := func(ctxt *Link, s *Symbol, name string, type_ SymbolType, addr int64, size int64, ver int, gotype *Symbol) {
+       put := func(ctxt *Link, s *Symbol, name string, type_ SymbolType, addr int64, gotype *Symbol) {
                if s == nil {
                        return
                }
@@ -1000,13 +1000,13 @@ func writePESymTableRecords(ctxt *Link) int {
                for d := dr; d != nil; d = d.next {
                        for m := d.ms; m != nil; m = m.next {
                                s := m.s.R[0].Xsym
-                               put(ctxt, s, s.Name, UndefinedSym, 0, int64(SysArch.PtrSize), 0, nil)
+                               put(ctxt, s, s.Name, UndefinedSym, 0, nil)
                        }
                }
 
                s := Linklookup(ctxt, ".text", 0)
                if s.Type == obj.STEXT {
-                       put(ctxt, s, s.Name, TextSym, s.Value, s.Size, int(s.Version), nil)
+                       put(ctxt, s, s.Name, TextSym, s.Value, nil)
                }
        }
 
index d1cb614e817654342f54706c02d6dd663b390450..2d6f74dd7598246b641913d5938302783cde4cdf 100644 (file)
@@ -76,7 +76,7 @@ var numelfsym int = 1 // 0 is reserved
 
 var elfbind int
 
-func putelfsym(ctxt *Link, x *Symbol, s string, t SymbolType, addr int64, size int64, ver int, go_ *Symbol) {
+func putelfsym(ctxt *Link, x *Symbol, s string, t SymbolType, addr int64, go_ *Symbol) {
        var typ int
 
        switch t {
@@ -98,6 +98,11 @@ func putelfsym(ctxt *Link, x *Symbol, s string, t SymbolType, addr int64, size i
                typ = STT_TLS
        }
 
+       size := x.Size
+       if t == UndefinedSym {
+               size = 0
+       }
+
        xo := x
        for xo.Outer != nil {
                xo = xo.Outer
@@ -124,7 +129,7 @@ func putelfsym(ctxt *Link, x *Symbol, s string, t SymbolType, addr int64, size i
        // maybe one day STB_WEAK.
        bind := STB_GLOBAL
 
-       if ver != 0 || (x.Type&obj.SHIDDEN != 0) || x.Attr.Local() {
+       if x.Version != 0 || (x.Type&obj.SHIDDEN != 0) || x.Attr.Local() {
                bind = STB_LOCAL
        }
 
@@ -208,11 +213,11 @@ func Asmelfsym(ctxt *Link) {
        genasmsym(ctxt, putelfsym)
 }
 
-func putplan9sym(ctxt *Link, x *Symbol, s string, typ SymbolType, addr int64, size int64, ver int, go_ *Symbol) {
+func putplan9sym(ctxt *Link, x *Symbol, s string, typ SymbolType, addr int64, go_ *Symbol) {
        t := int(typ)
        switch typ {
        case TextSym, DataSym, BSSSym:
-               if ver != 0 {
+               if x.Version != 0 {
                        t += 'a' - 'A'
                }
                fallthrough