19dd615 x86: Don't set eh->local_ref to 1 for linker defined symbols

Authored and Committed by H.J. Lu 5 years ago
    x86: Don't set eh->local_ref to 1 for linker defined symbols
    
    Since symbols created by HIDDEN and PROVIDE_HIDDEN assignments in
    linker script may be marked as defined, but not hidden, we can't
    set eh->local_ref to 1 in _bfd_x86_elf_link_symbol_references_local.
    
    Also R_386_GOT32X should be handled as just like R_386_GOT32 when
    relocating a section.  The input R_386_GOT32X relocations, which
    can be relaxed, should have been converted to R_386_PC32, R_386_32
    or R_386_GOTOFF.
    
    bfd/
    
    	PR ld/23189
    	* elf32-i386.c (elf_i386_relocate_section): Handle R_386_GOT32X
    	like R_386_GOT32.
    	* elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
    	set eh->local_ref to 1 for linker defined symbols.
    
    ld/
    
    	PR ld/23189
    	* testsuite/ld-i386/i386.exp: Run pr23189.
    	* testsuite/ld-x86-64/x86-64.exp: Likewise.
    	* testsuite/ld-i386/pr23189.d: New file.
    	* testsuite/ld-i386/pr23189.s: Likewise.
    	* testsuite/ld-i386/pr23189.t: Likewise.
    	* testsuite/ld-x86-64/pr23189.d: Likewise.
    	* testsuite/ld-x86-64/pr23189.s: Likewise.
    	* testsuite/ld-x86-64/pr23189.t: Likewise.
    
    (cherry picked from commit 011b32fd4270fb7111ee1f63695ccd44562ee7df)
    
        
file modified
+8 -0
file modified
+0 -59
file modified
+5 -1
file modified
+12 -0