1
0
mirror of https://github.com/golang/go synced 2024-09-24 17:10:13 -06:00

cmd/link: stop linker crashing with -s flag on windows

Update #10254

Change-Id: I3ddd26607813ca629e3ab62abf87dc5ab453e36f
Reviewed-on: https://go-review.googlesource.com/10835
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Alex Brainman 2015-06-09 16:16:42 +10:00
parent 93e57a22d5
commit ab08f79af3

View File

@ -545,10 +545,6 @@ func initdynimport() *Dll {
r.Off = 0
r.Siz = uint8(Thearch.Ptrsize)
r.Type = obj.R_ADDR
// pre-allocate symtab entries for those symbols
dynSym.Dynid = int32(ncoffsym)
ncoffsym++
}
}
} else {
@ -988,20 +984,25 @@ func addpesym(s *LSym, name string, type_ int, addr int64, size int64, ver int,
ncoffsym++
}
func addpesymtable() {
if Debug['s'] == 0 {
genasmsym(addpesym)
coffsym = make([]COFFSym, ncoffsym)
ncoffsym = 0
if Linkmode == LinkExternal {
for d := dr; d != nil; d = d.next {
for m := d.ms; m != nil; m = m.next {
s := m.s.R[0].Xsym
addpesym(s, s.Name, 'U', 0, int64(Thearch.Ptrsize), 0, nil)
}
func pegenasmsym(put func(*LSym, string, int, int64, int64, int, *LSym)) {
if Linkmode == LinkExternal {
for d := dr; d != nil; d = d.next {
for m := d.ms; m != nil; m = m.next {
s := m.s.R[0].Xsym
put(s, s.Name, 'U', 0, int64(Thearch.Ptrsize), 0, nil)
}
}
genasmsym(addpesym)
}
genasmsym(put)
}
func addpesymtable() {
if Debug['s'] == 0 || Linkmode == LinkExternal {
ncoffsym = 0
pegenasmsym(addpesym)
coffsym = make([]COFFSym, ncoffsym)
ncoffsym = 0
pegenasmsym(addpesym)
}
size := len(strtbl) + 4 + 18*ncoffsym