Add relocation support for RISC-V.

Reviewed by:	emaste
Sponsored by:	DARPA, AFRL
Sponsored by:	HEIF5
Differential Revision:	https://reviews.freebsd.org/D6559
This commit is contained in:
Ruslan Bukin 2016-05-25 11:58:55 +00:00
parent 8dc78d592c
commit ce35ddbc74
2 changed files with 9 additions and 0 deletions

View File

@ -440,6 +440,7 @@ enum Dwarf_ISA {
DW_ISA_X86,
DW_ISA_X86_64,
DW_ISA_AARCH64,
DW_ISA_RISCV,
DW_ISA_MAX
};

View File

@ -54,6 +54,8 @@ _dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64)
return (R_ARM_ABS32);
case DW_ISA_MIPS:
return (is64 ? R_MIPS_64 : R_MIPS_32);
case DW_ISA_RISCV:
return (is64 ? R_RISCV_64 : R_RISCV_32);
case DW_ISA_IA64:
return (is64 ? R_IA_64_DIR64LSB : R_IA_64_DIR32LSB);
default:
@ -106,6 +108,12 @@ _dwarf_get_reloc_size(Dwarf_Debug dbg, Dwarf_Unsigned rel_type)
else if (rel_type == R_MIPS_64)
return (8);
break;
case EM_RISCV:
if (rel_type == R_RISCV_32)
return (4);
else if (rel_type == R_RISCV_64)
return (8);
break;
case EM_IA_64:
if (rel_type == R_IA_64_SECREL32LSB)
return (4);