• Clément Chigot's avatar
    cmd/link: fix moduledata symbols for aix/ppc64 and external linking · f0749c74
    Clément Chigot authored
    Moduledata symbols like runtime.data or runtime.text must have the
    same position in the final executable (as some symbol accesses are made
    by offset from them).
    ld on AIX might move them randomly if there are nil size symbols.
    
    ld will also remove unreachable symbols like runtime.epclntab or
    runtime.rodata. In order to keep them, R_REF relocations are created
    between firstmoduledata and these symbols. This relocation tells ld to
    keep these symbols even if there aren't reachable.
    
    Change-Id: Ie5a28cf406977131cec6442f7f5b6fd89fb775a3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/164004
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    f0749c74
symtab.go 22.4 KB