From: Russ Cox Date: Wed, 19 Feb 2014 15:00:44 +0000 (-0500) Subject: cmd/ld: drop gcargs, gclocals symbols from symbol table X-Git-Tag: go1.3beta1~658 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2541cc81978dc5e41e2e2db6345d8ca7a365ca8c;p=gostls13.git cmd/ld: drop gcargs, gclocals symbols from symbol table 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 --- diff --git a/src/cmd/ld/symtab.c b/src/cmd/ld/symtab.c index bd14d9be7a..c585f96e0f 100644 --- a/src/cmd/ld/symtab.c +++ b/src/cmd/ld/symtab.c @@ -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; + } } }