1
0
mirror of https://github.com/golang/go synced 2024-10-05 21:31:21 -06:00
go/src/cmd/link
Keith Randall 214c7a2c43 cmd/link/internal/ld: exclude only real container symbols from symtab
It looks like the test for whether symbols contain subsymbols is wrong.
In particular, symbols in C libraries are mistakenly considered container
symbols.

Fix the test so only symbols which actually have a subsymbol
are excluded from the symtab.  When linking cgo programs the list
of containers is small, something like:

container _/home/khr/sandbox/symtab/misc/cgo/test(.text)<74>
container _/home/khr/sandbox/symtab/misc/cgo/test/issue8828(.text)<75>
container _/home/khr/sandbox/symtab/misc/cgo/test/issue9026(.text)<76>
container runtime/cgo(.text)<77>

I'm not sure this is the right fix.  In particular I can't reproduce
the original problem.  Anyone have a repro they can try and see if
this fix works?

Fixes #10747
Fixes #11396

Change-Id: Id8b016389d33348b4a791fdcba0f9db8ae71ebf3
Reviewed-on: https://go-review.googlesource.com/11652
Reviewed-by: Russ Cox <rsc@golang.org>
2015-06-29 02:54:09 +00:00
..
internal cmd/link/internal/ld: exclude only real container symbols from symtab 2015-06-29 02:54:09 +00:00
doc.go cmd/compile, cmd/link: add docs 2015-06-05 04:42:35 +00:00
main.go cmd/compile, cmd/link: create from 5g, 5l, etc 2015-05-21 17:31:51 +00:00