]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: elide individual gcbits symbols
authorRuss Cox <rsc@golang.org>
Wed, 22 Jul 2015 18:59:56 +0000 (14:59 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 22 Jul 2015 20:27:24 +0000 (20:27 +0000)
Same as we do for string symbols.

Fixes #11583.

Change-Id: Ia9264f6faf486697d987051b7f9851d37d8ad381
Reviewed-on: https://go-review.googlesource.com/12531
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/internal/obj/link.go
src/cmd/link/internal/ld/dwarf.go
src/cmd/link/internal/ld/lib.go
src/cmd/link/internal/ld/symtab.go
src/cmd/newlink/testdata/Makefile
src/cmd/newlink/testdata/autosection.6
src/cmd/newlink/testdata/autoweak.6
src/cmd/newlink/testdata/dead.6
src/cmd/newlink/testdata/hello.6
src/cmd/newlink/testdata/layout.6
src/cmd/newlink/testdata/pclntab.6

index 24de6ef698b7f1c431e1e77761ae9dfdbac645bf..688c2785d13e0422802fc23f44c1da74ce708a16 100644 (file)
@@ -337,6 +337,7 @@ const (
        SSTRING
        SGOSTRING
        SGOFUNC
+       SGCBITS
        SRODATA
        SFUNCTAB
        STYPELINK
index b8fb2e6b55ee7f5ddb58de7685f8de89c04bf965..41d820dc153fcd90365ce73355dc1e202b3ec7d6 100644 (file)
@@ -1419,6 +1419,9 @@ func defdwsymb(sym *LSym, s string, t int, v int64, size int64, ver int, gotype
        if strings.HasPrefix(s, "go.string.") {
                return
        }
+       if strings.HasPrefix(s, "runtime.gcbits.") {
+               return
+       }
 
        if strings.HasPrefix(s, "type.") && s != "type.*" && !strings.HasPrefix(s, "type..") {
                defgotype(sym)
index 1ce034860232e99cdc908cfd413c1cda5dcc0e07..74e4445b86c0b1f749357f593ffb6d1d53334d5b 100644 (file)
@@ -1793,6 +1793,7 @@ func genasmsym(put func(*LSym, string, int, int64, int64, int, *LSym)) {
                        obj.SSTRING,
                        obj.SGOSTRING,
                        obj.SGOFUNC,
+                       obj.SGCBITS,
                        obj.SWINDOWS:
                        if !s.Reachable {
                                continue
index 7ceb64f941f15afc8b4adbff77b5649f2dce9e05..5360ec15a1da5a5f11803fdf6a9e550641483433 100644 (file)
@@ -373,6 +373,13 @@ func symtab() {
        s.Reachable = true
        symgofunc := s
 
+       s = Linklookup(Ctxt, "runtime.gcbits.*", 0)
+       s.Type = obj.SGCBITS
+       s.Local = true
+       s.Size = 0
+       s.Reachable = true
+       symgcbits := s
+
        symtypelink := Linklookup(Ctxt, "runtime.typelink", 0)
 
        symt = Linklookup(Ctxt, "runtime.symtab", 0)
@@ -411,6 +418,12 @@ func symtab() {
                        s.Outer = symgostring
                }
 
+               if strings.HasPrefix(s.Name, "runtime.gcbits.") {
+                       s.Type = obj.SGCBITS
+                       s.Hide = 1
+                       s.Outer = symgcbits
+               }
+
                if strings.HasPrefix(s.Name, "go.func.") {
                        s.Type = obj.SGOFUNC
                        s.Hide = 1
index 83e8a05195a9a47c1f363f596ebdfa3df88ba91f..d5df474248d6e5bd07d38d62ebe081b96b628e77 100644 (file)
@@ -9,7 +9,7 @@ ALL=\
 all: $(ALL)
 
 %.6: %.s
-       GOARCH=amd64 GOOS=darwin go tool asm -I $(shell go env GOROOT)/pkg/include -trimpath=$(shell pwd) $*.s
+       GOARCH=amd64 GOOS=darwin go tool asm -o $*.6 -I $(shell go env GOROOT)/pkg/include -trimpath=$(shell pwd) $*.s
 
 pclntab.s: genpcln.go
        go run genpcln.go >pclntab.s
index 34aa5d3dbbc9219f9866cc7b0f1933dcc8c1024e..3681f70db8d04528f734877f485a91960278e902 100644 (file)
Binary files a/src/cmd/newlink/testdata/autosection.6 and b/src/cmd/newlink/testdata/autosection.6 differ
index a86b84117137d7a564acb97639707304ac1f06db..99cf465928063a6a915efb4db536b9c56e79c236 100644 (file)
Binary files a/src/cmd/newlink/testdata/autoweak.6 and b/src/cmd/newlink/testdata/autoweak.6 differ
index 5e9b09c03ee8598c6dd63b0f2efc0e512fe3798e..5b17ef1adb8ccbe8a482b46875f8ebfa6d2a4e02 100644 (file)
Binary files a/src/cmd/newlink/testdata/dead.6 and b/src/cmd/newlink/testdata/dead.6 differ
index 890cbbd016f76da8ddd5504d6ee9f947d7db038f..1f08d2155eec7afe079e143ee53c45f0d5fd5c40 100644 (file)
Binary files a/src/cmd/newlink/testdata/hello.6 and b/src/cmd/newlink/testdata/hello.6 differ
index 748c836255cb0d3494e835da9cdc1e9ec838f3d5..d1669866a4976400f78effb9de09191f4630d832 100644 (file)
Binary files a/src/cmd/newlink/testdata/layout.6 and b/src/cmd/newlink/testdata/layout.6 differ
index 8156698265f7f60821a1888b108470936b70b1e4..dfe53ddc38d35ad73460c49f7246edb6b7c3ff1d 100644 (file)
Binary files a/src/cmd/newlink/testdata/pclntab.6 and b/src/cmd/newlink/testdata/pclntab.6 differ