summaryrefslogtreecommitdiffstats
path: root/backends/ia64_symbol.c
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2006-10-10 00:25:21 +0000
committerRoland McGrath <[email protected]>2006-10-10 00:25:21 +0000
commitc373d850ec9ca342f4c71d5e287c8d8bf0723cd6 (patch)
treec8f9ea814866cdfb30ac9506ccddbc8629ebe345 /backends/ia64_symbol.c
parent1dee360aa30fecd20f403f98fd1cb9e543afcca7 (diff)
2006-10-09 Roland McGrath <[email protected]>
* ia64_symbol.c (ia64_reloc_simple_type): Treat SECREL types as simple.
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;