]> Cypherpunks repositories - gostls13.git/commitdiff
ld: fix .bss for ldpe.
authorWei Guangjing <vcc.163@gmail.com>
Fri, 11 Nov 2011 19:40:24 +0000 (14:40 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 11 Nov 2011 19:40:24 +0000 (14:40 -0500)
Fixes #2409.

R=mattn.jp, rsc, alex.brainman
CC=golang-dev
https://golang.org/cl/5334046

src/cmd/ld/ldpe.c

index c112cb5394b9a2ac3841abff9d71f6bf44c32dbc..8d175b1156c6e505ed8676979e7ad60d1825b2a2 100644 (file)
@@ -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;