• Keith Randall's avatar
    cmd/link/internal/ld: exclude only real container symbols from symtab · 214c7a2c
    Keith Randall authored
    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/11652Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    214c7a2c
Name
Last commit
Last update
..
asm Loading commit data...
gcprog Loading commit data...
goobj Loading commit data...
obj Loading commit data...
objfile Loading commit data...
rsc.io Loading commit data...