]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: support zero-filled section for Mach-O files
authorShenghou Ma <minux.ma@gmail.com>
Sat, 1 Sep 2012 20:50:58 +0000 (04:50 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Sat, 1 Sep 2012 20:50:58 +0000 (04:50 +0800)
R=golang-dev, r, dave, rsc
CC=golang-dev
https://golang.org/cl/6492069

src/cmd/ld/ldmacho.c

index 54126d586210ab6a5cce54bec8df88934cfff895..c02d1e7f828fd19c3db1fc8fb55fc5c1697345be 100644 (file)
@@ -573,9 +573,14 @@ ldmacho(Biobuf *f, char *pkg, int64 len, char *pn)
                        goto bad;
                }
                free(name);
-               s->p = dat + sect->addr - c->seg.vmaddr;
+
                s->np = sect->size;
                s->size = s->np;
+               if((sect->flags & 0xff) == 1) // S_ZEROFILL
+                       s->p = mal(s->size);
+               else {
+                       s->p = dat + sect->addr - c->seg.vmaddr;
+               }
                
                if(strcmp(sect->segname, "__TEXT") == 0) {
                        if(strcmp(sect->name, "__text") == 0)