]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: drop gcargs, gclocals symbols from symbol table
authorRuss Cox <rsc@golang.org>
Wed, 19 Feb 2014 15:00:44 +0000 (10:00 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 19 Feb 2014 15:00:44 +0000 (10:00 -0500)
Update #6853

Every function now has a gcargs and gclocals symbol
holding associated garbage collection information.
Put them all in the same meta-symbol as the go.func data
and then drop individual entries from symbol table.

Removing gcargs and gclocals reduces the size of a
typical binary by 10%.

LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/65870044

src/cmd/ld/symtab.c

index bd14d9be7a02b93d7dcb509b4037f862acd17655..c585f96e0ffb3af9e999d76f0a8759139c5d37bf 100644 (file)
@@ -409,5 +409,10 @@ 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) {
+                       s->type = SGOFUNC;
+                       s->hide = 1;
+                       s->outer = symgofunc;
+               }
        }
 }