aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-09-28 15:18:02 -0400
committerRuss Cox <rsc@golang.org>2010-09-28 15:18:02 -0400
commit2ccbf83b327a214a5b8d7e5f03c2d248e6d473e5 (patch)
tree1085e96061e3085031af4b8f7415d6daff12f710
parenta400b0e7d7d33089347ac0256d4d8daa79e87193 (diff)
downloadgo-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.c3
-rw-r--r--src/cmd/8l/asm.c3
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))