[dev.link] all: merge branch 'master' into dev.link

Change-Id: I644cfc9dfd6e024a0d62bbd226db8639e4a87dc7
This commit is contained in:
Cherry Zhang 2020-07-10 14:54:13 -04:00
commit 86f53c2a3c
67 changed files with 1172 additions and 642 deletions

View file

@ -123,12 +123,14 @@ type ArchSyms struct {
// mkArchSym is a helper for setArchSyms, to set up a special symbol.
func (ctxt *Link) mkArchSym(name string, ver int, ls *loader.Sym) {
*ls = ctxt.loader.LookupOrCreateSym(name, ver)
ctxt.loader.SetAttrReachable(*ls, true)
}
// mkArchVecSym is similar to setArchSyms, but operates on elements within
// a slice, where each element corresponds to some symbol version.
func (ctxt *Link) mkArchSymVec(name string, ver int, ls []loader.Sym) {
ls[ver] = ctxt.loader.LookupOrCreateSym(name, ver)
ctxt.loader.SetAttrReachable(ls[ver], true)
}
// setArchSyms sets up the ArchSyms structure, and must be called before
@ -1999,7 +2001,9 @@ func ldshlibsyms(ctxt *Link, shlib string) {
Errorf(nil, "cannot open shared library: %s", libpath)
return
}
defer f.Close()
// Keep the file open as decodetypeGcprog needs to read from it.
// TODO: fix. Maybe mmap the file.
//defer f.Close()
hash, err := readnote(f, ELF_NOTE_GO_NAME, ELF_NOTE_GOABIHASH_TAG)
if err != nil {