• Dave Cheney's avatar
    runtime: fix GOARM<7 build · 66795e8b
    Dave Cheney authored
    Update #8690
    
    If liblink determines that the host doesn't support TLS it replaces the MRC call with a BL runtime.tls_read_fallback. The problem is save_g doesn't expect anyone to make any BL calls and hasn't setup its own link register properly so when runtime.tls_read_fallback returns the LR points to save_g, not save_g's caller so the RET at the end of the function turns into an infinite loop.
    
    This fix is only a proof of concept, I think the real fix should go into liblink as its MRC substitution is not as transparent as expected.
    
    LGTM=rsc
    R=rsc, minux
    CC=golang-codereviews
    https://golang.org/cl/143050043
    66795e8b
tls_arm.s 2.43 KB