]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: consistent binary for cgo programs
authorShenghou Ma <minux.ma@gmail.com>
Wed, 19 Sep 2012 16:18:41 +0000 (00:18 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Wed, 19 Sep 2012 16:18:41 +0000 (00:18 +0800)
We use pkg path instead of file name (which contains $WORK) in section symbols names.

R=golang-dev, fullung, rsc, iant
CC=golang-dev
https://golang.org/cl/6445085

src/cmd/ld/ldelf.c
src/cmd/ld/ldmacho.c
src/cmd/ld/ldpe.c

index f6da33341cc73692270f06a1448b564d2856738d..01f66464a2ed607e69fea8ff1a87c5450d47aeb2 100644 (file)
@@ -331,7 +331,6 @@ ldelf(Biobuf *f, char *pkg, int64 len, char *pn)
 
        symbols = nil;
 
-       USED(pkg);
        if(debug['v'])
                Bprint(&bso, "%5.2f ldelf %s\n", cputime(), pn);
 
@@ -519,7 +518,7 @@ ldelf(Biobuf *f, char *pkg, int64 len, char *pn)
                if(sect->type != ElfSectNobits && map(obj, sect) < 0)
                        goto bad;
                
-               name = smprint("%s(%s)", pn, sect->name);
+               name = smprint("%s(%s)", pkg, sect->name);
                s = lookup(name, version);
                free(name);
                switch((int)sect->flags&(ElfSectFlagAlloc|ElfSectFlagWrite|ElfSectFlagExec)) {
index c02d1e7f828fd19c3db1fc8fb55fc5c1697345be..3310903e18e341162f995aa652c3e5e77e8dd0bc 100644 (file)
@@ -440,7 +440,6 @@ ldmacho(Biobuf *f, char *pkg, int64 len, char *pn)
        Reloc *r, *rp;
        char *name;
 
-       USED(pkg);
        version++;
        base = Boffset(f);
        if(Bread(f, hdr, sizeof hdr) != sizeof hdr)
@@ -566,7 +565,7 @@ ldmacho(Biobuf *f, char *pkg, int64 len, char *pn)
                        continue;
                if(strcmp(sect->name, "__eh_frame") == 0)
                        continue;
-               name = smprint("%s(%s/%s)", pn, sect->segname, sect->name);
+               name = smprint("%s(%s/%s)", pkg, sect->segname, sect->name);
                s = lookup(name, version);
                if(s->type != 0) {
                        werrstr("duplicate %s/%s", sect->segname, sect->name);
index 942f69ae1a212b3869c35b32a3601e8c2e55b5e7..8923bc729cc9a31e34226e2c9749d3ffceb9a577 100644 (file)
@@ -145,7 +145,6 @@ ldpe(Biobuf *f, char *pkg, int64 len, char *pn)
        PeSym *sym;
 
        USED(len);
-       USED(pkg);
        if(debug['v'])
                Bprint(&bso, "%5.2f ldpe %s\n", cputime(), pn);
        
@@ -213,7 +212,7 @@ ldpe(Biobuf *f, char *pkg, int64 len, char *pn)
                if(map(obj, sect) < 0)
                        goto bad;
                
-               name = smprint("%s(%s)", pn, sect->name);
+               name = smprint("%s(%s)", pkg, sect->name);
                s = lookup(name, version);
                free(name);
                switch(sect->sh.Characteristics&(IMAGE_SCN_CNT_UNINITIALIZED_DATA|IMAGE_SCN_CNT_INITIALIZED_DATA|