summaryrefslogtreecommitdiffstats
path: root/backends/ia64_symbol.c
diff options
context:
space:
mode:
Diffstat (limited to 'backends/ia64_symbol.c')
-rw-r--r--backends/ia64_symbol.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/backends/ia64_symbol.c b/backends/ia64_symbol.c
index d7caaf38..4faec0c9 100644
--- a/backends/ia64_symbol.c
+++ b/backends/ia64_symbol.c
@@ -1,5 +1,5 @@
/* IA-64 specific symbolic name handling.
- Copyright (C) 2002, 2003, 2005 Red Hat, Inc.
+ Copyright (C) 2002, 2003, 2005, 2006 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2002.
@@ -109,18 +109,27 @@ ia64_reloc_simple_type (Ebl *ebl, int type)
{
switch (type)
{
+ /* The SECREL types when used with non-allocated sections
+ like .debug_* are the same as direct absolute relocs
+ applied to those sections, since a 0 section address is assumed.
+ So we treat them the same here. */
+
+ case R_IA64_SECREL32MSB:
case R_IA64_DIR32MSB:
if (ebl->data == ELFDATA2MSB)
return ELF_T_WORD;
break;
+ case R_IA64_SECREL32LSB:
case R_IA64_DIR32LSB:
if (ebl->data == ELFDATA2LSB)
return ELF_T_WORD;
break;
case R_IA64_DIR64MSB:
+ case R_IA64_SECREL64MSB:
if (ebl->data == ELFDATA2MSB)
return ELF_T_XWORD;
break;
+ case R_IA64_SECREL64LSB:
case R_IA64_DIR64LSB:
if (ebl->data == ELFDATA2LSB)
return ELF_T_XWORD;