• Russ Cox's avatar
    [dev.cc] liblink: invoke 'go tool objwriter' to implement writeobj, if directed · be818361
    Russ Cox authored
    This CL enables moving the bulk of the object writing code
    out of liblink and into translated Go libraries in cmd/internal/obj,
    but it does not do the move.
    
    This CL introduces two new environment variables,
    $GOOBJ and $GOOBJWRITER, but both will be deleted along with
    the rest of the liblink C code.
    
    The default behavior of a build is unchanged by this CL:
    the C version of liblink uses the C object layout and writing code.
    
    If $GOOBJ=1, liblink invokes go tool objwriter instead.
    
    If $GOOBJ=2, liblink does its own layout and then invokes
    go tool objwriter, which checks that it gets the same answer.
    
    That is, in $GOOBJ=2 mode, both the C and the Go version of
    the code run, and the operation fails if the two produce different
    answers. This provides a very strong check that the translation
    is working correctly.
    
    Change-Id: I56ab49b07ccb2c7b81085f1d6950131047c6aa3c
    Reviewed-on: https://go-review.googlesource.com/3048Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    be818361
link.h 14.6 KB