From: Wei Guangjing Date: Fri, 11 Nov 2011 19:40:24 +0000 (-0500) Subject: ld: fix .bss for ldpe. X-Git-Tag: weekly.2011-11-18~107 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3199a6ca8d06ef608080f1ef6c0523ebbbeb0025;p=gostls13.git ld: fix .bss for ldpe. Fixes #2409. R=mattn.jp, rsc, alex.brainman CC=golang-dev https://golang.org/cl/5334046 --- diff --git a/src/cmd/ld/ldpe.c b/src/cmd/ld/ldpe.c index c112cb5394..8d175b1156 100644 --- a/src/cmd/ld/ldpe.c +++ b/src/cmd/ld/ldpe.c @@ -283,7 +283,7 @@ ldpe(Biobuf *f, char *pkg, int64 len, char *pn) case IMAGE_REL_I386_REL32: case IMAGE_REL_AMD64_REL32: rp->type = D_PCREL; - rp->add = 0; + rp->add = le32(rsect->base+rp->off); break; case IMAGE_REL_I386_DIR32NB: case IMAGE_REL_I386_DIR32: @@ -408,7 +408,7 @@ readsym(PeObj *obj, int i, PeSym **y) sym = &obj->pesym[i]; *y = sym; - if(sym->sclass == IMAGE_SYM_CLASS_STATIC && sym->value == 0 && sym->type == 0) // section + if(sym->name[0] == '.') // .section name = obj->sect[sym->sectnum-1].sym->name; else { name = sym->name;