diff options
| author | Matthew Dempsky <mdempsky@google.com> | 2014-08-27 20:15:05 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-08-27 20:15:05 -0400 |
| commit | 2c110a11e046920d98fb8b2cb41bfb99a524450b (patch) | |
| tree | d6301647f0bada159de5fc95a234b7c2d4309a40 /src/cmd/ld | |
| parent | 9e360926972b35d2fd4c8f99f22669417876526b (diff) | |
| download | go-2c110a11e046920d98fb8b2cb41bfb99a524450b.tar.xz | |
cmd/{ld,link,objdump}, runtime, debug/gosym: move linker-defined symbols into runtime package
Fixes #8092.
LGTM=rsc
R=iant, rsc
CC=golang-codereviews
https://golang.org/cl/126790043
Diffstat (limited to 'src/cmd/ld')
| -rw-r--r-- | src/cmd/ld/data.c | 92 | ||||
| -rw-r--r-- | src/cmd/ld/lib.c | 4 | ||||
| -rw-r--r-- | src/cmd/ld/pcln.c | 2 | ||||
| -rw-r--r-- | src/cmd/ld/symtab.c | 46 |
4 files changed, 72 insertions, 72 deletions
diff --git a/src/cmd/ld/data.c b/src/cmd/ld/data.c index a988e807e6..098403a743 100644 --- a/src/cmd/ld/data.c +++ b/src/cmd/ld/data.c @@ -987,8 +987,8 @@ dodata(void) sect->align = maxalign(s, SINITARR-1); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "noptrdata", 0)->sect = sect; - linklookup(ctxt, "enoptrdata", 0)->sect = sect; + linklookup(ctxt, "runtime.noptrdata", 0)->sect = sect; + linklookup(ctxt, "runtime.enoptrdata", 0)->sect = sect; for(; s != nil && s->type < SINITARR; s = s->next) { datsize = aligndatsize(datsize, s); s->sect = sect; @@ -1018,9 +1018,9 @@ dodata(void) sect->align = maxalign(s, SBSS-1); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "data", 0)->sect = sect; - linklookup(ctxt, "edata", 0)->sect = sect; - gcdata = linklookup(ctxt, "gcdata", 0); + linklookup(ctxt, "runtime.data", 0)->sect = sect; + linklookup(ctxt, "runtime.edata", 0)->sect = sect; + gcdata = linklookup(ctxt, "runtime.gcdata", 0); proggeninit(&gen, gcdata); for(; s != nil && s->type < SBSS; s = s->next) { if(s->type == SINITARR) { @@ -1042,9 +1042,9 @@ dodata(void) sect->align = maxalign(s, SNOPTRBSS-1); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "bss", 0)->sect = sect; - linklookup(ctxt, "ebss", 0)->sect = sect; - gcbss = linklookup(ctxt, "gcbss", 0); + linklookup(ctxt, "runtime.bss", 0)->sect = sect; + linklookup(ctxt, "runtime.ebss", 0)->sect = sect; + gcbss = linklookup(ctxt, "runtime.gcbss", 0); proggeninit(&gen, gcbss); for(; s != nil && s->type < SNOPTRBSS; s = s->next) { s->sect = sect; @@ -1061,8 +1061,8 @@ dodata(void) sect->align = maxalign(s, SNOPTRBSS); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "noptrbss", 0)->sect = sect; - linklookup(ctxt, "enoptrbss", 0)->sect = sect; + linklookup(ctxt, "runtime.noptrbss", 0)->sect = sect; + linklookup(ctxt, "runtime.enoptrbss", 0)->sect = sect; for(; s != nil && s->type == SNOPTRBSS; s = s->next) { datsize = aligndatsize(datsize, s); s->sect = sect; @@ -1070,7 +1070,7 @@ dodata(void) growdatsize(&datsize, s); } sect->len = datsize - sect->vaddr; - linklookup(ctxt, "end", 0)->sect = sect; + linklookup(ctxt, "runtime.end", 0)->sect = sect; // 6g uses 4-byte relocation offsets, so the entire segment must fit in 32 bits. if(datsize != (uint32)datsize) { @@ -1141,8 +1141,8 @@ dodata(void) sect->align = maxalign(s, STYPELINK-1); datsize = rnd(datsize, sect->align); sect->vaddr = 0; - linklookup(ctxt, "rodata", 0)->sect = sect; - linklookup(ctxt, "erodata", 0)->sect = sect; + linklookup(ctxt, "runtime.rodata", 0)->sect = sect; + linklookup(ctxt, "runtime.erodata", 0)->sect = sect; for(; s != nil && s->type < STYPELINK; s = s->next) { datsize = aligndatsize(datsize, s); s->sect = sect; @@ -1157,8 +1157,8 @@ dodata(void) sect->align = maxalign(s, STYPELINK); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "typelink", 0)->sect = sect; - linklookup(ctxt, "etypelink", 0)->sect = sect; + linklookup(ctxt, "runtime.typelink", 0)->sect = sect; + linklookup(ctxt, "runtime.etypelink", 0)->sect = sect; for(; s != nil && s->type == STYPELINK; s = s->next) { datsize = aligndatsize(datsize, s); s->sect = sect; @@ -1173,8 +1173,8 @@ dodata(void) sect->align = maxalign(s, SPCLNTAB-1); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "symtab", 0)->sect = sect; - linklookup(ctxt, "esymtab", 0)->sect = sect; + linklookup(ctxt, "runtime.symtab", 0)->sect = sect; + linklookup(ctxt, "runtime.esymtab", 0)->sect = sect; for(; s != nil && s->type < SPCLNTAB; s = s->next) { datsize = aligndatsize(datsize, s); s->sect = sect; @@ -1189,8 +1189,8 @@ dodata(void) sect->align = maxalign(s, SELFROSECT-1); datsize = rnd(datsize, sect->align); sect->vaddr = datsize; - linklookup(ctxt, "pclntab", 0)->sect = sect; - linklookup(ctxt, "epclntab", 0)->sect = sect; + linklookup(ctxt, "runtime.pclntab", 0)->sect = sect; + linklookup(ctxt, "runtime.epclntab", 0)->sect = sect; for(; s != nil && s->type < SELFROSECT; s = s->next) { datsize = aligndatsize(datsize, s); s->sect = sect; @@ -1243,8 +1243,8 @@ textaddress(void) // and then letting threads copy down, but probably not worth it. sect = segtext.sect; sect->align = funcalign; - linklookup(ctxt, "text", 0)->sect = sect; - linklookup(ctxt, "etext", 0)->sect = sect; + linklookup(ctxt, "runtime.text", 0)->sect = sect; + linklookup(ctxt, "runtime.etext", 0)->sect = sect; va = INITTEXT; sect->vaddr = va; for(sym = ctxt->textp; sym != nil; sym = sym->next) { @@ -1355,32 +1355,32 @@ address(void) sub->value += sym->value; } - xdefine("text", STEXT, text->vaddr); - xdefine("etext", STEXT, text->vaddr + text->len); - xdefine("rodata", SRODATA, rodata->vaddr); - xdefine("erodata", SRODATA, rodata->vaddr + rodata->len); - xdefine("typelink", SRODATA, typelink->vaddr); - xdefine("etypelink", SRODATA, typelink->vaddr + typelink->len); + xdefine("runtime.text", STEXT, text->vaddr); + xdefine("runtime.etext", STEXT, text->vaddr + text->len); + xdefine("runtime.rodata", SRODATA, rodata->vaddr); + xdefine("runtime.erodata", SRODATA, rodata->vaddr + rodata->len); + xdefine("runtime.typelink", SRODATA, typelink->vaddr); + xdefine("runtime.etypelink", SRODATA, typelink->vaddr + typelink->len); - sym = linklookup(ctxt, "gcdata", 0); - xdefine("egcdata", SRODATA, symaddr(sym) + sym->size); - linklookup(ctxt, "egcdata", 0)->sect = sym->sect; + sym = linklookup(ctxt, "runtime.gcdata", 0); + xdefine("runtime.egcdata", SRODATA, symaddr(sym) + sym->size); + linklookup(ctxt, "runtime.egcdata", 0)->sect = sym->sect; - sym = linklookup(ctxt, "gcbss", 0); - xdefine("egcbss", SRODATA, symaddr(sym) + sym->size); - linklookup(ctxt, "egcbss", 0)->sect = sym->sect; + sym = linklookup(ctxt, "runtime.gcbss", 0); + xdefine("runtime.egcbss", SRODATA, symaddr(sym) + sym->size); + linklookup(ctxt, "runtime.egcbss", 0)->sect = sym->sect; - xdefine("symtab", SRODATA, symtab->vaddr); - xdefine("esymtab", SRODATA, symtab->vaddr + symtab->len); - xdefine("pclntab", SRODATA, pclntab->vaddr); - xdefine("epclntab", SRODATA, pclntab->vaddr + pclntab->len); - xdefine("noptrdata", SNOPTRDATA, noptr->vaddr); - xdefine("enoptrdata", SNOPTRDATA, noptr->vaddr + noptr->len); - xdefine("bss", SBSS, bss->vaddr); - xdefine("ebss", SBSS, bss->vaddr + bss->len); - xdefine("data", SDATA, data->vaddr); - xdefine("edata", SDATA, data->vaddr + data->len); - xdefine("noptrbss", SNOPTRBSS, noptrbss->vaddr); - xdefine("enoptrbss", SNOPTRBSS, noptrbss->vaddr + noptrbss->len); - xdefine("end", SBSS, segdata.vaddr + segdata.len); + xdefine("runtime.symtab", SRODATA, symtab->vaddr); + xdefine("runtime.esymtab", SRODATA, symtab->vaddr + symtab->len); + xdefine("runtime.pclntab", SRODATA, pclntab->vaddr); + xdefine("runtime.epclntab", SRODATA, pclntab->vaddr + pclntab->len); + xdefine("runtime.noptrdata", SNOPTRDATA, noptr->vaddr); + xdefine("runtime.enoptrdata", SNOPTRDATA, noptr->vaddr + noptr->len); + xdefine("runtime.bss", SBSS, bss->vaddr); + xdefine("runtime.ebss", SBSS, bss->vaddr + bss->len); + xdefine("runtime.data", SDATA, data->vaddr); + xdefine("runtime.edata", SDATA, data->vaddr + data->len); + xdefine("runtime.noptrbss", SNOPTRBSS, noptrbss->vaddr); + xdefine("runtime.enoptrbss", SNOPTRBSS, noptrbss->vaddr + noptrbss->len); + xdefine("runtime.end", SBSS, segdata.vaddr + segdata.len); } diff --git a/src/cmd/ld/lib.c b/src/cmd/ld/lib.c index 0a5d8d99f2..a68993715d 100644 --- a/src/cmd/ld/lib.c +++ b/src/cmd/ld/lib.c @@ -1349,10 +1349,10 @@ genasmsym(void (*put)(LSym*, char*, int, vlong, vlong, int, LSym*)) // These symbols won't show up in the first loop below because we // skip STEXT symbols. Normal STEXT symbols are emitted by walking textp. - s = linklookup(ctxt, "text", 0); + s = linklookup(ctxt, "runtime.text", 0); if(s->type == STEXT) put(s, s->name, 'T', s->value, s->size, s->version, 0); - s = linklookup(ctxt, "etext", 0); + s = linklookup(ctxt, "runtime.etext", 0); if(s->type == STEXT) put(s, s->name, 'T', s->value, s->size, s->version, 0); diff --git a/src/cmd/ld/pcln.c b/src/cmd/ld/pcln.c index 17f4f992fc..3cd9e65dad 100644 --- a/src/cmd/ld/pcln.c +++ b/src/cmd/ld/pcln.c @@ -119,7 +119,7 @@ pclntab(void) static Pcln zpcln; funcdata_bytes = 0; - ftab = linklookup(ctxt, "pclntab", 0); + ftab = linklookup(ctxt, "runtime.pclntab", 0); ftab->type = SPCLNTAB; ftab->reachable = 1; diff --git a/src/cmd/ld/symtab.c b/src/cmd/ld/symtab.c index 1805f97d3a..156270c8fa 100644 --- a/src/cmd/ld/symtab.c +++ b/src/cmd/ld/symtab.c @@ -346,36 +346,36 @@ symtab(void) // Define these so that they'll get put into the symbol table. // data.c:/^address will provide the actual values. - xdefine("text", STEXT, 0); - xdefine("etext", STEXT, 0); - xdefine("typelink", SRODATA, 0); - xdefine("etypelink", SRODATA, 0); - xdefine("rodata", SRODATA, 0); - xdefine("erodata", SRODATA, 0); - xdefine("noptrdata", SNOPTRDATA, 0); - xdefine("enoptrdata", SNOPTRDATA, 0); - xdefine("data", SDATA, 0); - xdefine("edata", SDATA, 0); - xdefine("bss", SBSS, 0); - xdefine("ebss", SBSS, 0); - xdefine("noptrbss", SNOPTRBSS, 0); - xdefine("enoptrbss", SNOPTRBSS, 0); - xdefine("end", SBSS, 0); - xdefine("epclntab", SRODATA, 0); - xdefine("esymtab", SRODATA, 0); + xdefine("runtime.text", STEXT, 0); + xdefine("runtime.etext", STEXT, 0); + xdefine("runtime.typelink", SRODATA, 0); + xdefine("runtime.etypelink", SRODATA, 0); + xdefine("runtime.rodata", SRODATA, 0); + xdefine("runtime.erodata", SRODATA, 0); + xdefine("runtime.noptrdata", SNOPTRDATA, 0); + xdefine("runtime.enoptrdata", SNOPTRDATA, 0); + xdefine("runtime.data", SDATA, 0); + xdefine("runtime.edata", SDATA, 0); + xdefine("runtime.bss", SBSS, 0); + xdefine("runtime.ebss", SBSS, 0); + xdefine("runtime.noptrbss", SNOPTRBSS, 0); + xdefine("runtime.enoptrbss", SNOPTRBSS, 0); + xdefine("runtime.end", SBSS, 0); + xdefine("runtime.epclntab", SRODATA, 0); + xdefine("runtime.esymtab", SRODATA, 0); // garbage collection symbols - s = linklookup(ctxt, "gcdata", 0); + s = linklookup(ctxt, "runtime.gcdata", 0); s->type = SRODATA; s->size = 0; s->reachable = 1; - xdefine("egcdata", SRODATA, 0); + xdefine("runtime.egcdata", SRODATA, 0); - s = linklookup(ctxt, "gcbss", 0); + s = linklookup(ctxt, "runtime.gcbss", 0); s->type = SRODATA; s->size = 0; s->reachable = 1; - xdefine("egcbss", SRODATA, 0); + xdefine("runtime.egcbss", SRODATA, 0); // pseudo-symbols to mark locations of type, string, and go string data. s = linklookup(ctxt, "type.*", 0); @@ -396,9 +396,9 @@ symtab(void) s->reachable = 1; symgofunc = s; - symtypelink = linklookup(ctxt, "typelink", 0); + symtypelink = linklookup(ctxt, "runtime.typelink", 0); - symt = linklookup(ctxt, "symtab", 0); + symt = linklookup(ctxt, "runtime.symtab", 0); symt->type = SSYMTAB; symt->size = 0; symt->reachable = 1; |
