• 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: default avatarIan Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    956e9e6c
shared_test.go 23.1 KB