diff -Nruap elfutils-0.120.org/backends/i386_symbol.c elfutils-0.120/backends/i386_symbol.c --- elfutils-0.120.org/backends/i386_symbol.c 2006-04-13 16:55:05.000000000 +0800 +++ elfutils-0.120/backends/i386_symbol.c 2006-04-13 16:57:21.000000000 +0800 @@ -50,7 +50,11 @@ i386_reloc_simple_type (Ebl *ebl __attri { switch (type) { - case R_386_32: + case R_386_32 ... R_386_PLT32: + case R_386_GLOB_DAT ... R_386_TLS_LDM: + case R_386_TLS_LDO_32: + case R_386_TLS_DTPMOD32: + case R_386_TLS_DTPOFF32: return ELF_T_SWORD; case R_386_16: return ELF_T_HALF; diff -Nruap elfutils-0.120.org/backends/ia64_symbol.c elfutils-0.120/backends/ia64_symbol.c --- elfutils-0.120.org/backends/ia64_symbol.c 2006-04-13 16:55:05.000000000 +0800 +++ elfutils-0.120/backends/ia64_symbol.c 2006-04-13 16:57:21.000000000 +0800 @@ -110,18 +110,54 @@ ia64_reloc_simple_type (Ebl *ebl, int ty switch (type) { case R_IA64_DIR32MSB: + case R_IA64_SECREL32MSB: + case R_IA64_SEGREL32MSB: + case R_IA64_REL32MSB: + case R_IA64_GPREL32MSB: + case R_IA64_FPTR32MSB: + case R_IA64_PCREL32MSB: + case R_IA64_LTOFF_FPTR32MSB: + case R_IA64_LTV32MSB: + case R_IA64_DTPREL32MSB: if (ebl->data == ELFDATA2MSB) return ELF_T_WORD; break; case R_IA64_DIR32LSB: + case R_IA64_SECREL32LSB: + case R_IA64_SEGREL32LSB: + case R_IA64_REL32LSB: + case R_IA64_GPREL32LSB: + case R_IA64_FPTR32LSB: + case R_IA64_PCREL32LSB: + case R_IA64_LTOFF_FPTR32LSB: + case R_IA64_LTV32LSB: + case R_IA64_DTPREL32LSB: if (ebl->data == ELFDATA2LSB) return ELF_T_WORD; break; case R_IA64_DIR64MSB: + case R_IA64_SECREL64MSB: + case R_IA64_SEGREL64MSB: + case R_IA64_REL64MSB: + case R_IA64_GPREL64MSB: + case R_IA64_FPTR64MSB: + case R_IA64_PCREL64MSB: + case R_IA64_LTOFF_FPTR64MSB: + case R_IA64_LTV64MSB: + case R_IA64_DTPREL64MSB: if (ebl->data == ELFDATA2MSB) return ELF_T_XWORD; break; case R_IA64_DIR64LSB: + case R_IA64_SECREL64LSB: + case R_IA64_SEGREL64LSB: + case R_IA64_REL64LSB: + case R_IA64_GPREL64LSB: + case R_IA64_FPTR64LSB: + case R_IA64_PCREL64LSB: + case R_IA64_LTOFF_FPTR64LSB: + case R_IA64_LTV64LSB: + case R_IA64_DTPREL64LSB: if (ebl->data == ELFDATA2LSB) return ELF_T_XWORD; break; diff -Nruap elfutils-0.120.org/backends/x86_64_symbol.c elfutils-0.120/backends/x86_64_symbol.c --- elfutils-0.120.org/backends/x86_64_symbol.c 2006-04-13 16:55:05.000000000 +0800 +++ elfutils-0.120/backends/x86_64_symbol.c 2006-04-13 16:57:21.000000000 +0800 @@ -42,8 +42,20 @@ x86_64_reloc_simple_type (Ebl *ebl __att switch (type) { case R_X86_64_64: + case R_X86_64_GLOB_DAT: + case R_X86_64_RELATIVE: + case R_X86_64_DTPMOD64: + case R_X86_64_DTPOFF64: + case R_X86_64_TPOFF64: return ELF_T_XWORD; case R_X86_64_32: + case R_X86_64_PC32: + case R_X86_64_PLT32: + case R_X86_64_GOTPCREL: + case R_X86_64_TLSGD: + case R_X86_64_TLSLD: + case R_X86_64_DTPOFF32: + case R_X86_64_GOTTPOFF: return ELF_T_WORD; case R_X86_64_32S: return ELF_T_SWORD;