diff options
Diffstat (limited to 'libebl/eblsymboltypename.c')
-rw-r--r-- | libebl/eblsymboltypename.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libebl/eblsymboltypename.c b/libebl/eblsymboltypename.c index c7cb2cba..f2ac6222 100644 --- a/libebl/eblsymboltypename.c +++ b/libebl/eblsymboltypename.c @@ -1,5 +1,5 @@ /* Return symbol type name. - Copyright (C) 2001, 2002 Red Hat, Inc. + Copyright (C) 2001, 2002, 2009 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 2001. @@ -84,8 +84,14 @@ ebl_symbol_type_name (ebl, symbol, buf, len) res = stt_names[symbol]; else { + char *ident; + if (symbol >= STT_LOPROC && symbol <= STT_HIPROC) snprintf (buf, len, "LOPROC+%d", symbol - STT_LOPROC); + else if (symbol == STT_GNU_IFUNC + && (ident = elf_getident (ebl->elf, NULL)) != NULL + && ident[EI_OSABI] == ELFOSABI_LINUX) + return "GNU_IFUNC"; else if (symbol >= STT_LOOS && symbol <= STT_HIOS) snprintf (buf, len, "LOOS+%d", symbol - STT_LOOS); else |