4aa5eb0 __tls_get_addr_opt stubs and tocsave optimization

Authored and Committed by Alan Modra 5 years ago
    __tls_get_addr_opt stubs and tocsave optimization
    
    This patch fixes a bug in the handling of the __tls_get_addr_opt
    stub.  Calls via this stub don't have a toc restoring instruction
    following the "bl", and the stub itself doesn't have an initial toc
    save instruction.  Thus it is incorrect to skip over the first
    instruction when a __tls_get_addr call is marked with a tocsave
    reloc.
    
    	* elf64-ppc.c (ppc64_elf_relocate_section): Don't skip first
    	instruction of __tls_get_addr_opt stub.
    	(plt_stub_size): Omit ALWAYS_EMIT_R2SAVE condition when
    	dealing with __tls_get_addr_opt stub.
    	(build_tls_get_addr_stub, ppc_size_one_stub): Likewise.
    
    (cherry picked from commit e81b4c933c1b88e29f4b27627dd9ea0bf9189944)
    
        
file modified
+8 -0
file modified
+9 -9