]> Cypherpunks repositories - gostls13.git/commitdiff
6l, 8l: elfsetstring is only for .shstrtab
authorRuss Cox <rsc@golang.org>
Tue, 28 Sep 2010 19:18:02 +0000 (15:18 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 28 Sep 2010 19:18:02 +0000 (15:18 -0400)
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

src/cmd/6l/asm.c
src/cmd/8l/asm.c

index 1502ad66023f576743c5a387a6e100a08f9b4022..8cd256ca928f85f2d921658bd395f47a20dd5d80 100644 (file)
@@ -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))
index ec35d8d519a1a1d6e53465478318d1384885ea77..1dd24b5bea353ee8524c9dbd583162b6c211e15d 100644 (file)
@@ -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))