]> Cypherpunks.ru repositories - gostls13.git/commitdiff
[dev.link] all: merge branch 'master' into dev.link
authorCherry Zhang <cherryyz@google.com>
Tue, 3 Dec 2019 15:38:43 +0000 (10:38 -0500)
committerCherry Zhang <cherryyz@google.com>
Tue, 3 Dec 2019 15:38:43 +0000 (10:38 -0500)
Bring in Than's fix of #35779.

The only merge conflict is cmd/link/internal/loadelf/ldelf.go,
with a modification-deletion conflict.

Change-Id: Id2fcfd2094a31120966a6ea9c462b4ec76646b10

1  2 
src/cmd/compile/internal/gc/main.go
src/cmd/link/internal/loadelf/ldelf.go
src/cmd/link/internal/loader/loader.go

Simple merge
index c32f32c32b5a1a12404b1a77e58668458c5e11a9,60bebab8180b49a99d4660725b5a2a1773ef4454..8bcba8b2f994c8f184d019e7fb7edf5daf866843
@@@ -460,11 -476,7 +460,14 @@@ func parseArmAttributes(e binary.ByteOr
  // parameter initEhdrFlags contains the current header flags for the output
  // object, and the returned ehdrFlags contains what this Load function computes.
  // TODO: find a better place for this logic.
 -func load(arch *sys.Arch, localSymVersion int, newSym, lookup lookupFunc, f *bio.Reader, pkg string, length int64, pn string, initEhdrFlags uint32) (textp []*sym.Symbol, ehdrFlags uint32, err error) {
 +func Load(l *loader.Loader, arch *sys.Arch, syms *sym.Symbols, f *bio.Reader, pkg string, length int64, pn string, initEhdrFlags uint32) (textp []*sym.Symbol, ehdrFlags uint32, err error) {
 +      localSymVersion := syms.IncVersion()
++      newSym := func(name string, version int) *sym.Symbol {
++              return l.Create(name, syms)
++      }
 +      lookup := func(name string, version int) *sym.Symbol {
 +              return l.LookupOrCreate(name, version, syms)
 +      }
        errorf := func(str string, args ...interface{}) ([]*sym.Symbol, uint32, error) {
                return nil, 0, fmt.Errorf("loadelf: %s: %v", pn, fmt.Sprintf(str, args...))
        }
@@@ -1006,7 -1018,7 +1009,7 @@@ func elfmap(elfobj *ElfObj, sect *ElfSe
        return nil
  }
  
- func readelfsym(lookup func(string, int) *sym.Symbol, arch *sys.Arch, elfobj *ElfObj, i int, elfsym *ElfSym, needSym int, localSymVersion int) (err error) {
 -func readelfsym(newSym, lookup lookupFunc, arch *sys.Arch, elfobj *ElfObj, i int, elfsym *ElfSym, needSym int, localSymVersion int) (err error) {
++func readelfsym(newSym, lookup func(string, int) *sym.Symbol, arch *sys.Arch, elfobj *ElfObj, i int, elfsym *ElfSym, needSym int, localSymVersion int) (err error) {
        if i >= elfobj.nsymtab || i < 0 {
                err = fmt.Errorf("invalid elf symbol index")
                return err