summaryrefslogtreecommitdiffstats
path: root/libebl/eblsymbolbindingname.c
diff options
context:
space:
mode:
authorUlrich Drepper <[email protected]>2009-07-08 00:53:24 -0700
committerUlrich Drepper <[email protected]>2009-07-08 00:53:24 -0700
commit70c442caa8296a698b395b8969b9a04d5491d47b (patch)
treeb4bae07225d5d7d0e1d1b21031f614132091d56c /libebl/eblsymbolbindingname.c
parent46d5827cc232c689853b50181b17751aa7574128 (diff)
Add support for STB_GNU_UNIQUE to libebl.
Diffstat (limited to 'libebl/eblsymbolbindingname.c')
-rw-r--r--libebl/eblsymbolbindingname.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libebl/eblsymbolbindingname.c b/libebl/eblsymbolbindingname.c
index c4412c9e..334a9c3e 100644
--- a/libebl/eblsymbolbindingname.c
+++ b/libebl/eblsymbolbindingname.c
@@ -1,5 +1,5 @@
/* Return symbol binding 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 <[email protected]>, 2001.
@@ -78,8 +78,14 @@ ebl_symbol_binding_name (ebl, binding, buf, len)
res = stb_names[binding];
else
{
+ char *ident;
+
if (binding >= STB_LOPROC && binding <= STB_HIPROC)
snprintf (buf, len, "LOPROC+%d", binding - STB_LOPROC);
+ else if (binding == STB_GNU_UNIQUE
+ && (ident = elf_getident (ebl->elf, NULL)) != NULL
+ && ident[EI_OSABI] == ELFOSABI_LINUX)
+ return "GNU_UNIQUE";
else if (binding >= STB_LOOS && binding <= STB_HIOS)
snprintf (buf, len, "LOOS+%d", binding - STB_LOOS);
else