diff options
Diffstat (limited to 'backends/ia64_symbol.c')
| -rw-r--r-- | backends/ia64_symbol.c | 11 |
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; |
