summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-04-03 19:04:15 -0400
committerRuss Cox <rsc@golang.org>2014-04-03 19:04:15 -0400
commitf3fce6e325171c742a7c6ef61e22307e9a9c090d (patch)
tree86a7ec1e903052350229bbe977f39ee15a9dddf2
parenta3972371d3f1438751b94e3de442a0ef2ce83fdd (diff)
downloadgo-f3fce6e325171c742a7c6ef61e22307e9a9c090d.tar.gz
cmd/cc: emit gc bitmaps in read-only memory
Cuts hello world by 70kB, because we don't write those names into the symbol table. Update issue 6853 LGTM=khr R=khr CC=golang-codereviews https://codereview.appspot.com/80370045
-rw-r--r--src/cmd/cc/pgen.c1
-rw-r--r--src/cmd/ld/symtab.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/cmd/cc/pgen.c b/src/cmd/cc/pgen.c
index d3fc4193e..10bebc196 100644
--- a/src/cmd/cc/pgen.c
+++ b/src/cmd/cc/pgen.c
@@ -51,6 +51,7 @@ makefuncdatasym(char *namefmt, int64 funcdatakind)
nod.sym = sym;
nod.class = CSTATIC;
gins(AFUNCDATA, nodconst(funcdatakind), &nod);
+ linksym(sym)->type = SRODATA;
return sym;
}
diff --git a/src/cmd/ld/symtab.c b/src/cmd/ld/symtab.c
index 1d5511993..6d321c0bb 100644
--- a/src/cmd/ld/symtab.c
+++ b/src/cmd/ld/symtab.c
@@ -425,7 +425,7 @@ symtab(void)
s->hide = 1;
s->outer = symgofunc;
}
- if(strstr(s->name, ".gcargs·") != nil || strstr(s->name, ".gclocals·") != nil || strncmp(s->name, "gcargs·", 8) == 0 || strncmp(s->name, "gclocals·", 10) == 0) {
+ if(strncmp(s->name, "gcargs.", 7) == 0 || strncmp(s->name, "gclocals.", 9) == 0 || strncmp(s->name, "gclocals·", 10) == 0) {
s->type = SGOFUNC;
s->hide = 1;
s->outer = symgofunc;