• David Crawshaw's avatar
    cmd/link: limit darwin dynlink symbol exports · ab5a2173
    David Crawshaw authored
    The pclntable contains pointers to functions. If the function symbol
    is exported in a plugin, and there is a matching symbol in the host
    binary, then the pclntable of a plugin ends up pointing at the
    function in the host module.
    
    This doesn't work because the traceback code expects the pointer to
    be in the same module space as the PC value.
    
    So don't export functions that might overlap with the host binary.
    This way the pointer stays in its module.
    
    Updates #18190
    
    Change-Id: Ifb77605b35fb0a1e7edeecfd22b1e335ed4bb392
    Reviewed-on: https://go-review.googlesource.com/34196
    Run-TryBot: David Crawshaw <crawshaw@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    ab5a2173
macho.go 22.3 KB