diff options
author | Russ Cox <rsc@golang.org> | 2010-09-28 15:18:02 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-09-28 15:18:02 -0400 |
commit | 2ccbf83b327a214a5b8d7e5f03c2d248e6d473e5 (patch) | |
tree | 1085e96061e3085031af4b8f7415d6daff12f710 | |
parent | a400b0e7d7d33089347ac0256d4d8daa79e87193 (diff) | |
download | go-2ccbf83b327a214a5b8d7e5f03c2d248e6d473e5.tar.gz go-2ccbf83b327a214a5b8d7e5f03c2d248e6d473e5.zip |
6l, 8l: elfsetstring is only for .shstrtab
Was also recording for .dynstrtab which made the
table run out of space and would have caused confusion
if the ELF code tried to refer to any of the strings.
R=r
CC=golang-dev
https://golang.org/cl/2288041
-rw-r--r-- | src/cmd/6l/asm.c | 3 | ||||
-rw-r--r-- | src/cmd/8l/asm.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/cmd/6l/asm.c b/src/cmd/6l/asm.c index 1502ad6602..8cd256ca92 100644 --- a/src/cmd/6l/asm.c +++ b/src/cmd/6l/asm.c @@ -138,7 +138,8 @@ addstring(Sym *s, char *str) s->reachable = 1; r = s->size; n = strlen(str)+1; - elfsetstring(str, r); + if(strcmp(s->name, ".shstrtab") == 0) + elfsetstring(str, r); while(n > 0) { m = n; if(m > sizeof(p->to.scon)) diff --git a/src/cmd/8l/asm.c b/src/cmd/8l/asm.c index ec35d8d519..1dd24b5bea 100644 --- a/src/cmd/8l/asm.c +++ b/src/cmd/8l/asm.c @@ -129,7 +129,8 @@ addstring(Sym *s, char *str) s->reachable = 1; r = s->size; n = strlen(str)+1; - elfsetstring(str, r); + if(strcmp(s->name, ".shstrtab") == 0) + elfsetstring(str, r); while(n > 0) { m = n; if(m > sizeof(p->to.scon)) |