• Michael Hudson-Doyle's avatar
    cmd/link: do not add duplicate symbols to Allsym · 956e9e6c
    Michael Hudson-Doyle authored
    When building shared libraries, all symbols on Allsym are marked reachable.
    What I didn't realize was that this includes the ".dup" symbols created when
    "dupok" symbols are read from multiple package files. This breaks now because
    deadcode makes some assumptions that fail for these ".dup" symbols, but in any
    case was a bad idea -- I suspect this change makes libstd.so a bunch smaller,
    but creating it was broken before this CL so I can't be sure.
    
    This change simply stops adding these symbols to Allsym, which might make some
    of the many iterations over Allsym the linker does a touch quicker, although
    that's not the motivation here.
    
    Add a test that no symbols called ".dup" makes it into the runtime shared
    library.
    
    Fixes #14841
    
    Change-Id: I65dd6e88d150a770db2d01b75cfe5db5fd4f8d25
    Reviewed-on: https://go-review.googlesource.com/20780
    Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    956e9e6c
Name
Last commit
Last update
..
addr2line Loading commit data...
api Loading commit data...
asm Loading commit data...
cgo Loading commit data...
compile Loading commit data...
cover Loading commit data...
dist Loading commit data...
doc Loading commit data...
fix Loading commit data...
go Loading commit data...
gofmt Loading commit data...
internal Loading commit data...
link Loading commit data...
nm Loading commit data...
objdump Loading commit data...
pack Loading commit data...
pprof Loading commit data...
trace Loading commit data...
vet Loading commit data...
yacc Loading commit data...