• Austin Clements's avatar
    cmd/internal/obj, cmd/link: record ABIs and aliases in Go obj files · c5718b6b
    Austin Clements authored
    This repurposes the "version" field of a symbol reference in the Go
    object file format to be an ABI field. Currently, this is just 0 or 1
    depending on whether the symbol is static (the linker turns it into a
    different internal version number), so it's already only tenuously a
    symbol version. We change this to be -1 for static symbols and
    otherwise by the ABI number.
    
    This also adds a separate list of ABI alias symbols to be recorded in
    the object file. The ABI aliases must be a separate list and not just
    part of the symbol definitions because it's possible to have a symbol
    defined in one package and the alias "defined" in a different package.
    For example, this can happen if a symbol is defined in assembly in one
    package and stubbed in a different package. The stub triggers the
    generation of the ABI alias, but in a different package from the
    definition.
    
    For #27539.
    
    Change-Id: I015c9fe54690c027de6ef77e22b5585976a01587
    Reviewed-on: https://go-review.googlesource.com/c/147157
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDavid Chase <drchase@google.com>
    c5718b6b
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...