Skip to content
  • Kuan-Lin Chen's avatar
    RISC-V: Use pc-relative relocation for FDE initial location · a6cbf936
    Kuan-Lin Chen authored
    The symbol address in .eh_frame may be adjusted in
    _bfd_elf_discard_section_eh_frame, and the content of .eh_frame will be
    adjusted in _bfd_elf_write_section_eh_frame. Therefore, we cannot insert
    a relocation whose addend symbol is in .eh_frame. Othrewise, the value
    may be adjusted twice.
    
    bfd/ChangeLog
    2017-06-26  Kuan-Lin Chen  <rufus@andestech.com>
    
    	* elfnn-riscv.c (perform_relocation): Support the new
    	R_RISCV_32_PCREL relocation.
    	(riscv_elf_relocate_section): Likewise.
    	* elfxx-riscv.c (howto_table): Likewise.
    	(riscv_reloc_map): Likewise.
    	* bfd-in2.h (BFD_RELOC_RISCV_32_PCREL): New relocation.
    	* libbfd.h: Regenerate.
    
    gas/ChangeLog
    2017-06-26  Kuan-Lin Chen  <rufus@andestech.com>
    
    	* config/tc-riscv.c (md_apply_fix) [BFD_RELOC_32]: Convert to a
    	R_RISCV_32_PCREL relocation.
    
    include/ChangeLog
    2017-06-26  Kuan-Lin Chen  <rufus@andestech.com>
    
    	* elf/riscv.h (R_RISCV_32_PCREL): New.
    a6cbf936