* readelf.c (is_32bit_abs_reloc): Add support for NIOS relocs.

(is_64bit_abs_reloc): Add support for HPPA relocs.
   (is_16bit_abs_reloc): Add support for NIOS relocs.
This commit is contained in:
Nick Clifton 2007-11-19 12:01:42 +00:00
parent e7faf93859
commit 3e0873ac4f
2 changed files with 23 additions and 13 deletions

View file

@ -1,3 +1,9 @@
2007-11-19 Nick Clifton <nickc@redhat.com>
* readelf.c (is_32bit_abs_reloc): Add support for NIOS relocs.
(is_64bit_abs_reloc): Add support for HPPA relocs.
(is_16bit_abs_reloc): Add support for NIOS relocs.
2007-11-17 Thiemo Seufer <ths@mips.com> 2007-11-17 Thiemo Seufer <ths@mips.com>
* readelf.c (display_mips_gnu_attribute): Recognize -mips32r2 -mfp64 * readelf.c (display_mips_gnu_attribute): Recognize -mips32r2 -mfp64

View file

@ -8013,6 +8013,9 @@ is_32bit_abs_reloc (unsigned int reloc_type)
return reloc_type == 1; /* R_MSP43_32. */ return reloc_type == 1; /* R_MSP43_32. */
case EM_MT: case EM_MT:
return reloc_type == 2; /* R_MT_32. */ return reloc_type == 2; /* R_MT_32. */
case EM_ALTERA_NIOS2:
case EM_NIOS32:
return reloc_type == 1; /* R_NIOS_32. */
case EM_OPENRISC: case EM_OPENRISC:
case EM_OR32: case EM_OR32:
return reloc_type == 1; /* R_OR32_32. */ return reloc_type == 1; /* R_OR32_32. */
@ -8052,10 +8055,6 @@ is_32bit_abs_reloc (unsigned int reloc_type)
case EM_XTENSA: case EM_XTENSA:
return reloc_type == 1; /* R_XTENSA_32. */ return reloc_type == 1; /* R_XTENSA_32. */
case EM_ALTERA_NIOS2:
/* Fall through (what reloc type is used ?). */
case EM_NIOS32:
/* Fall through (what reloc type is used ?). */
default: default:
error (_("Missing knowledge of 32-bit reloc types used in DWARF sections of machine number %d\n"), error (_("Missing knowledge of 32-bit reloc types used in DWARF sections of machine number %d\n"),
elf_header.e_machine); elf_header.e_machine);
@ -8073,30 +8072,30 @@ is_32bit_pcrel_reloc (unsigned int reloc_type)
{ {
case EM_386: case EM_386:
case EM_486: case EM_486:
return reloc_type == 2; /* R_386_PC32. */ return reloc_type == 2; /* R_386_PC32. */
case EM_68K: case EM_68K:
return reloc_type == 4; /* R_68K_PC32. */ return reloc_type == 4; /* R_68K_PC32. */
case EM_ALPHA: case EM_ALPHA:
return reloc_type == 10; /* R_ALPHA_SREL32. */ return reloc_type == 10; /* R_ALPHA_SREL32. */
case EM_ARM: case EM_ARM:
return reloc_type == 3; /* R_ARM_REL32 */ return reloc_type == 3; /* R_ARM_REL32 */
case EM_PARISC: case EM_PARISC:
return reloc_type == 0; /* R_PARISC_NONE. *//* FIXME: This reloc is generated, but it may be a bug. */ return reloc_type == 0; /* R_PARISC_NONE. *//* FIXME: This reloc is generated, but it may be a bug. */
case EM_PPC: case EM_PPC:
return reloc_type == 26; /* R_PPC_REL32. */ return reloc_type == 26; /* R_PPC_REL32. */
case EM_PPC64: case EM_PPC64:
return reloc_type == 26; /* R_PPC64_REL32. */ return reloc_type == 26; /* R_PPC64_REL32. */
case EM_S390_OLD: case EM_S390_OLD:
case EM_S390: case EM_S390:
return reloc_type == 5; /* R_390_PC32. */ return reloc_type == 5; /* R_390_PC32. */
case EM_SH: case EM_SH:
return reloc_type == 2; /* R_SH_REL32. */ return reloc_type == 2; /* R_SH_REL32. */
case EM_SPARC32PLUS: case EM_SPARC32PLUS:
case EM_SPARCV9: case EM_SPARCV9:
case EM_SPARC: case EM_SPARC:
return reloc_type == 6; /* R_SPARC_DISP32. */ return reloc_type == 6; /* R_SPARC_DISP32. */
case EM_X86_64: case EM_X86_64:
return reloc_type == 2; /* R_X86_64_PC32. */ return reloc_type == 2; /* R_X86_64_PC32. */
default: default:
/* Do not abort or issue an error message here. Not all targets use /* Do not abort or issue an error message here. Not all targets use
pc-relative 32-bit relocs in their DWARF debug information and we pc-relative 32-bit relocs in their DWARF debug information and we
@ -8119,6 +8118,8 @@ is_64bit_abs_reloc (unsigned int reloc_type)
return reloc_type == 2; /* R_ALPHA_REFQUAD. */ return reloc_type == 2; /* R_ALPHA_REFQUAD. */
case EM_IA_64: case EM_IA_64:
return reloc_type == 0x27; /* R_IA64_DIR64LSB. */ return reloc_type == 0x27; /* R_IA64_DIR64LSB. */
case EM_PARISC:
return reloc_type == 80; /* R_PARISC_DIR64. */
case EM_PPC64: case EM_PPC64:
return reloc_type == 38; /* R_PPC64_ADDR64. */ return reloc_type == 38; /* R_PPC64_ADDR64. */
case EM_SPARC32PLUS: case EM_SPARC32PLUS:
@ -8156,6 +8157,9 @@ is_16bit_abs_reloc (unsigned int reloc_type)
case EM_MSP430_OLD: case EM_MSP430_OLD:
case EM_MSP430: case EM_MSP430:
return reloc_type == 5; /* R_MSP430_16_BYTE. */ return reloc_type == 5; /* R_MSP430_16_BYTE. */
case EM_ALTERA_NIOS2:
case EM_NIOS32:
return reloc_type == 9; /* R_NIOS_16. */
default: default:
return FALSE; return FALSE;
} }