Hi Mark,
On Thu, 14 Nov 2013 14:42:34 +0100, Mark Wielaard wrote:
As far as I understand from skimming the code, you want to provide
an
(extra) table of (function) symbols from ebl for the elf file it is
backing. These symbols are matched against the .odp (in this ppc64 case)
section data.
Yes. Not "for the elf file" but for the whole Dwfl_Module where symbols can
come from two different places (aux_sym).
Could you please add a little (high-level) description of the ppc64
.odp
section data and how it relates to the symbol table data?
Added there:
/* Scan all the symbols of EBL and create table of struct sym_entry entries for
every function symbol pointing to the .opd section. This includes automatic
derefencing of the symbols via the .opd section content to create the
virtual symbols for the struct sym_entry entries. As GETSYM points to
dwfl_module_getsym we scan all the available symbols, either
Dwfl_Module.main plus Dwfl_Module.aux_sym or Dwfl_Module.debug.
Symbols from all the available files are included in the SYMENTS count. */
For each symbol, in the original elf file symbol table, whose
st_value
points to an .odp entry, you store a new derived symbol with an adjust
value, name,
Yes.
the original shndx
It is shndx recalculated from section where belongs VMA of the target code
instruction. So not the _original_ shndx.
and file (different from elf?).
The code was wrong wrt various handling of shndx and dwfl_file, also some of
the resulting API was wrong due to it. Even 'ebl_getsym_t *getsym' now is
just pointer to regular dwfl_module_getsym
(and no longer pointer to __libdwfl_module_getsym). Also shndxp is no longer
used there, Besides that I think shndxp should be removed from
dwfl_module_getsym as discussed in some other mail.
The trick is that even if the symbol comes from aux_sym its VMA still has to
point into the main dwfl_file. Also returning dwfl_file * does not make
sense, the target virtual symbol always has to point into .opd, therefore into
mod->main file and nowhere else. I just dropped the check that symbol's shndx
is really the .opd section shndx as it would need some API extensions not
implemented there yet and I find the VMA address check as good enough.
Still __libdwfl_module_getsym is IMO useful for libdwfl/dwfl_module_addrsym.c.
Although it would be even feasible now to calculate the dwfl_file * out of the
count of various kinds of Dwfl_Module symbols.
For this
you do need to walk the original symbol table twice on initialization.
Yes. First time just to calculate the count, as C does not have std::vector.
You don't directly read the symbol table (using for example
gelf_getsymshndx), but use a callback for that in the ebl hook. Why is
that?
Because dwfl_module_getsym does all the work of merging various symbol sources
(main, debug, aux_sym) together with their proper relocation. It would mean
just reimplementing dwfl_module_getsym in backends/ppc64_get_symbol.c.
BTW. Missing separator libdwfl/ here.
Fixed.
BTW2. Please do send patches through git send-email or git
format-patch
so they can be more easily applied locally and binaries come through
encoded and not just as Binary files /dev/null and
b/tests/testfile66.bz2 differ. The git branch was useful to find this
though.
I am not used to git send-email or git format-patch. I hope the format used
here from git format-patch works for you. Otherwise unaware how to include
such a patch in a reply.
Thanks,
Jan
Provide virtual symbols for ppc64 function descriptors
backends/
2013-11-14 Jan Kratochvil <jan.kratochvil(a)redhat.com>
Provide virtual symbols for ppc64 function descriptors.
* Makefile.am (ppc64_SRCS): Add ppc64_get_symbol.c.
* ppc64_get_symbol.c: New file.
* ppc64_init.c (ppc64_init): Install init_symbols, get_symbol and
destr.
libdwfl/
2013-11-14 Jan Kratochvil <jan.kratochvil(a)redhat.com>
* dwfl_module_addrsym.c (dwfl_module_addrsym): Adjust FIRST_GLOBAL also
for EBL_FIRST_GLOBAL.
* dwfl_module_getdwarf.c (getsym_helper): New function.
(find_symtab): Call also ebl_init_symbols.
(dwfl_module_getsymtab): Count also EBL_SYMENTS.
* dwfl_module_getsym.c (__libdwfl_module_getsym): Count also
EBL_FIRST_GLOBAL, EBL_SYMENTS. Call also ebl_get_symbol.
* libdwflP.h (DWFL_ERRORS): Add INVALID_INDEX.
(struct Dwfl_Module): Add fields ebl_syments and ebl_first_global.
libebl/
2013-11-14 Jan Kratochvil <jan.kratochvil(a)redhat.com>
Provide virtual symbols for ppc64 function descriptors.
* Makefile.am (gen_SOURCES): Add eblgetsymbol.c.
* ebl-hooks.h (init_symbols, get_symbol): New.
* eblgetsymbol.c: New file.
* libebl.h (ebl_getsym_t): New definition.
(ebl_init_symbols, ebl_get_symbol): New declarations.
* libeblP.h (struct ebl): New field backend.
tests/
2013-11-06 Jan Kratochvil <jan.kratochvil(a)redhat.com>
Provide virtual symbols for ppc64 function descriptors.
* Makefile.am (EXTRA_DIST): Add testfile66.bz2 and testfile66.core.bz2.
* run-addrname-test.sh (testfile66, testfile66.core): New tests.
* testfile66.bz2: New file.
* testfile66.core.bz2: New file.
Signed-off-by: Jan Kratochvil <jan.kratochvil(a)redhat.com>
---
backends/Makefile.am | 2 +-
backends/ppc64_get_symbol.c | 196 +++++++++++++++++++++++++++++++++++++++++
backends/ppc64_init.c | 3 +
libdwfl/dwfl_module_addrsym.c | 21 ++---
libdwfl/dwfl_module_getdwarf.c | 19 +++-
libdwfl/dwfl_module_getsym.c | 48 ++++++++--
libdwfl/libdwflP.h | 5 +-
libebl/Makefile.am | 2 +-
libebl/ebl-hooks.h | 10 +++
libebl/eblgetsymbol.c | 57 ++++++++++++
libebl/libebl.h | 26 ++++++
libebl/libeblP.h | 3 +
tests/Makefile.am | 3 +-
tests/run-addrname-test.sh | 39 ++++++++
tests/testfile66.bz2 | Bin 0 -> 741 bytes
tests/testfile66.core.bz2 | Bin 0 -> 56448 bytes
16 files changed, 412 insertions(+), 22 deletions(-)
create mode 100644 backends/ppc64_get_symbol.c
create mode 100644 libebl/eblgetsymbol.c
create mode 100755 tests/testfile66.bz2
create mode 100644 tests/testfile66.core.bz2
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 5b5e067..0e00329 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -94,7 +94,7 @@ am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \
ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
- ppc_cfi.c
+ ppc_cfi.c ppc64_get_symbol.c
libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS)
am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
diff --git a/backends/ppc64_get_symbol.c b/backends/ppc64_get_symbol.c
new file mode 100644
index 0000000..d7a7af0
--- /dev/null
+++ b/backends/ppc64_get_symbol.c
@@ -0,0 +1,196 @@
+/* Provide virtual symbols for ppc64 function descriptors.
+ Copyright (C) 2013 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <
http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <assert.h>
+#include <endian.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define BACKEND ppc64_
+#include "libebl_CPU.h"
+
+/* Pointer to the first entry is stored into ebl->backend.
+ It has Dwfl_Module->ebl_syments entries and its memory is followed by
+ strings for the NAME entries. */
+
+struct sym_entry
+{
+ GElf_Sym sym;
+ GElf_Word shndx;
+ const char *name;
+};
+
+static Elf_Scn *
+scnfindvma (Elf *elf, GElf_Addr vma)
+{
+ Elf_Scn *scn = NULL;
+ while ((scn = elf_nextscn (elf, scn)) != NULL)
+ {
+ GElf_Shdr shdr_mem;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (likely (shdr != NULL)
+ && vma >= shdr->sh_addr
+ && vma < shdr->sh_addr + shdr->sh_size)
+ break;
+ }
+ return scn;
+}
+
+/* Scan all the symbols of EBL and create table of struct sym_entry entries for
+ every function symbol pointing to the .opd section. This includes automatic
+ derefencing of the symbols via the .opd section content to create the
+ virtual symbols for the struct sym_entry entries. As GETSYM points to
+ dwfl_module_getsym we scan all the available symbols, either
+ Dwfl_Module.main plus Dwfl_Module.aux_sym or Dwfl_Module.debug.
+ Symbols from all the available files are included in the SYMENTS count. */
+
+void
+ppc64_init_symbols (Ebl *ebl, size_t syments, int first_global,
+ GElf_Addr main_bias, ebl_getsym_t *getsym, void *arg,
+ size_t *ebl_symentsp, int *ebl_first_globalp)
+{
+ assert (ebl != NULL);
+ assert (ebl->backend == NULL);
+ Elf *elf = ebl->elf;
+ assert (*ebl_symentsp == 0);
+ assert (*ebl_first_globalp == 0);
+ GElf_Ehdr ehdr_mem, *ehdr = gelf_getehdr (elf, &ehdr_mem);
+ if (ehdr == NULL)
+ return;
+ GElf_Shdr opd_shdr_mem, *opd_shdr;
+ Elf_Data *opd_data = NULL;
+ Elf_Scn *scn = NULL;
+ while ((scn = elf_nextscn (elf, scn)) != NULL)
+ {
+ opd_shdr = gelf_getshdr (scn, &opd_shdr_mem);
+ if (opd_shdr == NULL)
+ continue;
+ if (strcmp (elf_strptr (elf, ehdr->e_shstrndx, opd_shdr->sh_name),
".opd")
+ != 0)
+ continue;
+ opd_data = elf_getdata (scn, NULL);
+ /* SHT_NOBITS will produce NULL D_BUF. */
+ if (opd_data == NULL || opd_data->d_buf == NULL)
+ return;
+ assert (opd_data->d_size == opd_shdr->sh_size);
+ break;
+ }
+ if (opd_data == NULL)
+ return;
+ size_t names_size = 0;
+ size_t ebl_syments = 0;
+ int ebl_first_global = 0;
+ for (size_t symi = 0; symi < syments; symi++)
+ {
+ GElf_Sym sym;
+ const char *symname = getsym (arg, symi, &sym, NULL);
+ /* Do not check SHNDX as it may correspond to aux_sym and we do not have
+ access to its Elf * to find its the aux_sym .opd section. */
+ if (symname == NULL)
+ continue;
+ Elf64_Addr val;
+ if (sym.st_value < opd_shdr->sh_addr + main_bias
+ || sym.st_value > (opd_shdr->sh_addr + main_bias
+ + opd_shdr->sh_size - sizeof (val)))
+ continue;
+ ebl_syments++;
+ if ((ssize_t) symi < first_global)
+ ebl_first_global++;
+ names_size += 1 + strlen (symname) + 1;
+ }
+ if (ebl_syments == 0)
+ return;
+ struct sym_entry *sym_table;
+ sym_table = malloc (ebl_syments * sizeof (*sym_table) + names_size);
+ if (sym_table == NULL)
+ return;
+ struct sym_entry *dest = sym_table;
+ char *names = (void *) &sym_table[ebl_syments];
+ char *names_dest = names;
+ for (size_t symi = 0; symi < syments; symi++)
+ {
+ GElf_Sym sym;
+ const char *symname = getsym (arg, symi, &sym, NULL);
+ /* Do not check SHNDX as it may correspond to aux_sym and we do not have
+ access to its Elf * to find its the aux_sym .opd section. */
+ if (symname == NULL)
+ continue;
+ uint64_t val64;
+ if (sym.st_value < opd_shdr->sh_addr + main_bias
+ || sym.st_value > (opd_shdr->sh_addr + main_bias
+ + opd_shdr->sh_size - sizeof (val64)))
+ continue;
+ val64 = *(const uint64_t *) (opd_data->d_buf + sym.st_value
+ - (opd_shdr->sh_addr + main_bias));
+ val64 = (elf_getident (elf, NULL)[EI_DATA] == ELFDATA2MSB
+ ? be64toh (val64) : le64toh (val64));
+ assert ((char *) dest < names);
+ dest->sym = sym;
+ dest->sym.st_value = val64 + main_bias;
+ Elf_Scn *sym_scn = scnfindvma (elf, dest->sym.st_value);
+ dest->shndx = sym_scn == NULL ? SHN_ABS : elf_ndxscn (sym_scn);
+ dest->sym.st_shndx = SHN_XINDEX;
+ dest->name = names_dest;
+ *names_dest++ = '.';
+ names_dest = stpcpy (names_dest, symname) + 1;
+ dest++;
+ }
+ assert ((char *) dest == names);
+ assert (names_dest == names + names_size);
+ *ebl_symentsp = ebl_syments;
+ *ebl_first_globalp = ebl_first_global;
+ ebl->backend = sym_table;
+}
+
+const char *
+ppc64_get_symbol (Ebl *ebl, size_t ndx, GElf_Sym *symp, GElf_Word *shndxp)
+{
+ assert (ebl != NULL);
+ if (ebl->backend == NULL)
+ return NULL;
+ struct sym_entry *sym_table = ebl->backend;
+ const struct sym_entry *found = &sym_table[ndx];
+ *symp = found->sym;
+ if (shndxp)
+ *shndxp = found->shndx;
+ return found->name;
+}
+
+void
+ppc64_destr (Ebl *ebl)
+{
+ if (ebl->backend == NULL)
+ return;
+ struct sym_entry *sym_table = ebl->backend;
+ free (sym_table);
+ ebl->backend = NULL;
+}
diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c
index 1435875..3ed882b 100644
--- a/backends/ppc64_init.c
+++ b/backends/ppc64_init.c
@@ -65,6 +65,9 @@ ppc64_init (elf, machine, eh, ehlen)
HOOK (eh, core_note);
HOOK (eh, auxv_info);
HOOK (eh, abi_cfi);
+ HOOK (eh, init_symbols);
+ HOOK (eh, get_symbol);
+ HOOK (eh, destr);
return MODVERSION;
}
diff --git a/libdwfl/dwfl_module_addrsym.c b/libdwfl/dwfl_module_addrsym.c
index d9eb0a2..6a39346 100644
--- a/libdwfl/dwfl_module_addrsym.c
+++ b/libdwfl/dwfl_module_addrsym.c
@@ -173,16 +173,17 @@ dwfl_module_addrsym (Dwfl_Module *mod, GElf_Addr addr,
}
}
- /* First go through global symbols. mod->first_global and
- mod->aux_first_global are setup by dwfl_module_getsymtab to the
- index of the first global symbol in those symbol tables. Both
- are non-zero when the table exist, except when there is only a
- dynsym table loaded through phdrs, then first_global is zero and
- there will be no auxiliary table. All symbols with local binding
- come first in the symbol table, then all globals. The zeroth,
- null entry, in the auxiliary table is skipped if there is a main
- table. */
- int first_global = mod->first_global + mod->aux_first_global;
+ /* First go through global symbols. mod->first_global,
+ mod->aux_first_global and mod->ebl_first_global are setup by
+ dwfl_module_getsymtab to the index of the first global symbol in
+ those symbol tables. Both are non-zero when the table exist,
+ except when there is only a dynsym table loaded through phdrs, then
+ first_global is zero and there will be no auxiliary table. All
+ symbols with local binding come first in the symbol table, then all
+ globals. The zeroth, null entry, in the auxiliary table is skipped
+ if there is a main table. */
+ int first_global = (mod->first_global + mod->aux_first_global
+ + mod->ebl_first_global);
if (mod->syments > 0 && mod->aux_syments > 0)
first_global--;
search_table (first_global == 0 ? 1 : first_global, syments);
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
index 7a65ec3..3321751 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -945,6 +945,13 @@ find_aux_sym (Dwfl_Module *mod __attribute__ ((unused)),
#endif
}
+static const char *
+getsym_helper (void *arg, int ndx, GElf_Sym *sym, GElf_Word *shndxp)
+{
+ Dwfl_Module *mod = arg;
+ return dwfl_module_getsym (mod, ndx, sym, shndxp);
+}
+
/* Try to find a symbol table in either MOD->main.elf or MOD->debug.elf. */
static void
find_symtab (Dwfl_Module *mod)
@@ -1064,7 +1071,7 @@ find_symtab (Dwfl_Module *mod)
mod->aux_syments = 0;
elf_end (mod->aux_sym.elf);
mod->aux_sym.elf = NULL;
- return;
+ goto aux_done;
}
mod->aux_symstrdata = elf_getdata (elf_getscn (mod->aux_sym.elf,
@@ -1085,7 +1092,15 @@ find_symtab (Dwfl_Module *mod)
mod->aux_symdata = elf_getdata (aux_symscn, NULL);
if (mod->aux_symdata == NULL)
goto aux_cleanup;
+ aux_done:;
}
+
+ Dwfl_Error error = __libdwfl_module_getebl (mod);
+ if (error == DWFL_E_NOERROR)
+ ebl_init_symbols (mod->ebl, mod->syments + mod->aux_syments,
+ mod->first_global + mod->aux_first_global,
+ mod->main_bias, getsym_helper, mod,
+ &mod->ebl_syments, &mod->ebl_first_global);
}
@@ -1242,7 +1257,7 @@ dwfl_module_getsymtab (Dwfl_Module *mod)
find_symtab (mod);
if (mod->symerr == DWFL_E_NOERROR)
/* We will skip the auxiliary zero entry if there is another one. */
- return (mod->syments + mod->aux_syments
+ return (mod->syments + mod->aux_syments + mod->ebl_syments
- (mod->syments > 0 && mod->aux_syments > 0 ? 1 : 0));
__libdwfl_seterrno (mod->symerr);
diff --git a/libdwfl/dwfl_module_getsym.c b/libdwfl/dwfl_module_getsym.c
index 0f5dd37..e159850 100644
--- a/libdwfl/dwfl_module_getsym.c
+++ b/libdwfl/dwfl_module_getsym.c
@@ -55,8 +55,7 @@ __libdwfl_module_getsym (Dwfl_Module *mod, int ndx,
Elf_Data *symdata;
Elf_Data *symxndxdata;
Elf_Data *symstrdata;
- if (mod->aux_symdata == NULL
- || ndx < mod->first_global)
+ if (ndx < mod->first_global)
{
/* main symbol table (locals). */
tndx = ndx;
@@ -74,24 +73,61 @@ __libdwfl_module_getsym (Dwfl_Module *mod, int ndx,
symxndxdata = mod->aux_symxndxdata;
symstrdata = mod->aux_symstrdata;
}
- else if ((size_t) ndx < mod->syments + mod->aux_first_global - skip_aux_zero)
+ else if (ndx < (mod->first_global + mod->aux_first_global
+ + mod->ebl_first_global - skip_aux_zero))
+ {
+ /* ebl symbol lookup (locals). */
+ symdata = NULL;
+ tndx = ndx - (mod->first_global + mod->aux_first_global - skip_aux_zero);
+ }
+ else if ((size_t) ndx < (mod->syments + mod->aux_first_global
+ + mod->ebl_first_global - skip_aux_zero))
{
/* main symbol table (globals). */
- tndx = ndx - mod->aux_first_global + skip_aux_zero;
+ tndx = ndx - (mod->aux_first_global + mod->ebl_first_global
+ - skip_aux_zero);
file = mod->symfile;
symdata = mod->symdata;
symxndxdata = mod->symxndxdata;
symstrdata = mod->symstrdata;
}
- else
+ else if ((size_t) ndx < (mod->syments + mod->aux_syments
+ + mod->ebl_first_global - skip_aux_zero))
{
/* aux symbol table (globals). */
- tndx = ndx - mod->syments + skip_aux_zero;
+ tndx = ndx - (mod->syments + mod->ebl_first_global - skip_aux_zero);
file = &mod->aux_sym;
symdata = mod->aux_symdata;
symxndxdata = mod->aux_symxndxdata;
symstrdata = mod->aux_symstrdata;
}
+ else if ((size_t) ndx < (mod->syments + mod->aux_syments
+ + mod->ebl_syments - skip_aux_zero))
+ {
+ /* ebl symbol lookup (globals). */
+ symdata = NULL;
+ tndx = ndx - (mod->syments + mod->aux_syments - skip_aux_zero);
+ }
+ else
+ {
+ /* out of range NDX. */
+ __libdwfl_seterrno (DWFL_E_INVALID_INDEX);
+ return NULL;
+ }
+
+ if (symdata == NULL)
+ {
+ const char *name = ebl_get_symbol (mod->ebl, tndx, sym, &shndx);
+ if (likely (name != NULL))
+ {
+ if (filep)
+ *filep = &mod->main;
+ return name;
+ }
+ __libdwfl_seterrno (DWFL_E_LIBEBL);
+ return NULL;
+ }
+
sym = gelf_getsymshndx (symdata, symxndxdata, tndx, sym, &shndx);
if (unlikely (sym == NULL))
diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h
index 0c862b3..ee89344 100644
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -89,7 +89,8 @@ typedef struct Dwfl_Process Dwfl_Process;
DWFL_ERROR (ATTACH_STATE_CONFLICT, N_("Dwfl already has attached state"))
\
DWFL_ERROR (NO_ATTACH_STATE, N_("Dwfl has no attached state")) \
DWFL_ERROR (NO_UNWIND, N_("Unwinding not supported for this architecture"))
\
- DWFL_ERROR (INVALID_ARGUMENT, N_("Invalid argument"))
+ DWFL_ERROR (INVALID_ARGUMENT, N_("Invalid argument")) \
+ DWFL_ERROR (INVALID_INDEX, N_("invalid section index"))
#define DWFL_ERROR(name, text) DWFL_E_##name,
typedef enum { DWFL_ERRORS DWFL_E_NUM } Dwfl_Error;
@@ -172,8 +173,10 @@ struct Dwfl_Module
Elf_Data *aux_symdata; /* Data in the auxiliary ELF symbol table. */
size_t syments; /* sh_size / sh_entsize of that section. */
size_t aux_syments; /* sh_size / sh_entsize of aux_sym section. */
+ size_t ebl_syments; /* Number of symbols from ebl_getsym. */
int first_global; /* Index of first global symbol of table. */
int aux_first_global; /* Index of first global of aux_sym table. */
+ int ebl_first_global; /* Index of first global from ebl_getsym. */
Elf_Data *symstrdata; /* Data for its string table. */
Elf_Data *aux_symstrdata; /* Data for aux_sym string table. */
Elf_Data *symxndxdata; /* Data in the extended section index table. */
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
index 4487c5f..1fb3da3 100644
--- a/libebl/Makefile.am
+++ b/libebl/Makefile.am
@@ -54,7 +54,7 @@ gen_SOURCES = eblopenbackend.c eblclosebackend.c eblstrtab.c \
eblreginfo.c eblnonerelocp.c eblrelativerelocp.c \
eblsysvhashentrysize.c eblauxvinfo.c eblcheckobjattr.c \
ebl_check_special_section.c ebl_syscall_abi.c eblabicfi.c \
- eblstother.c eblinitreg.c
+ eblstother.c eblinitreg.c eblgetsymbol.c
libebl_a_SOURCES = $(gen_SOURCES)
diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h
index cb52fee..2ad18ec 100644
--- a/libebl/ebl-hooks.h
+++ b/libebl/ebl-hooks.h
@@ -162,5 +162,15 @@ bool EBLHOOK(set_initial_registers_tid) (pid_t tid,
ebl_tid_registers_t *setfunc,
void *arg);
+/* See ebl_init_symbols. */
+void EBLHOOK(init_symbols) (Ebl *ebl, size_t syments, int first_global,
+ GElf_Addr main_bias,
+ ebl_getsym_t *getsym, void *arg,
+ size_t *ebl_symentsp, int *ebl_first_globalp);
+
+/* See ebl_get_symbol. */
+const char *EBLHOOK(get_symbol) (Ebl *ebl, size_t ndx, GElf_Sym *symp,
+ GElf_Word *shndxp);
+
/* Destructor for ELF backend handle. */
void EBLHOOK(destr) (struct ebl *);
diff --git a/libebl/eblgetsymbol.c b/libebl/eblgetsymbol.c
new file mode 100644
index 0000000..29480eb
--- /dev/null
+++ b/libebl/eblgetsymbol.c
@@ -0,0 +1,57 @@
+/* Provide virtual symbols from backend.
+ Copyright (C) 2013 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <
http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libeblP.h>
+#include <assert.h>
+
+void
+ebl_init_symbols (Ebl *ebl, size_t syments, int first_global,
+ GElf_Addr main_bias, ebl_getsym_t *getsym, void *arg,
+ size_t *ebl_symentsp, int *ebl_first_globalp)
+{
+ if (ebl == NULL)
+ return;
+ if (ebl->init_symbols == NULL)
+ return;
+ ebl->init_symbols (ebl, syments, first_global, main_bias, getsym, arg,
+ ebl_symentsp, ebl_first_globalp);
+}
+
+const char *
+ebl_get_symbol (Ebl *ebl, size_t ndx, GElf_Sym *symp, GElf_Word *shndxp)
+{
+ if (ebl == NULL)
+ return NULL;
+ if (ebl->get_symbol == NULL)
+ return NULL;
+ return ebl->get_symbol (ebl, ndx, symp, shndxp);
+}
diff --git a/libebl/libebl.h b/libebl/libebl.h
index 622f9e8..8578ecd 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -404,6 +404,32 @@ extern bool ebl_set_initial_registers_tid (Ebl *ebl,
extern size_t ebl_frame_nregs (Ebl *ebl)
__nonnull_attribute__ (1);
+/* Callback type for ebl_init_symbols,
+ it is forwarded to dwfl_module_getsym. */
+typedef const char *(ebl_getsym_t) (void *arg, int ndx, GElf_Sym *symp,
+ GElf_Word *shndxp)
+ __nonnull_attribute__ (3);
+
+/* Initialize virtual backend symbol table for EBL->elf currently containing
+ SYMENTS symbols, FIRST_GLOBAL of them are local, EBL->elf is using
+ MAIN_BIAS. GETSYM is a callback to fetch the existing EBL->elf symbols,
+ ARG is an opaque parameter for GETSYM. Fill in *EBL_SYMENTSP with the total
+ number of virtual symbols found, *EBL_FIRST_GLOBALP of them are local.
+ Both return values have to be initialized to zero by caller. */
+extern void ebl_init_symbols (Ebl *ebl, size_t syments, int first_global,
+ Dwarf_Addr symbias, ebl_getsym_t *getsym,
+ void *arg, size_t *ebl_symentsp,
+ int *ebl_first_globalp)
+ __nonnull_attribute__ (1, 5, 7, 8);
+
+/* Return NDXth virtual backend symbol from MOD, store it to *SYM and its
+ section to *SHNDX. Return its name. NDX must be less than *EBL_SYMENTSP
+ returned by init_symbols above. SHNDXP may be NULL. Returned name is valid
+ as long as EBL is valid. */
+extern const char *ebl_get_symbol (Ebl *ebl, size_t ndx, GElf_Sym *symp,
+ GElf_Word *shndxp)
+ __nonnull_attribute__ (1, 3);
+
#ifdef __cplusplus
}
#endif
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
index 4f4137d..3282050 100644
--- a/libebl/libeblP.h
+++ b/libebl/libeblP.h
@@ -66,6 +66,9 @@ struct ebl
/* Internal data. */
void *dlhandle;
+
+ /* Data specific to the backend. */
+ void *backend;
};
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bc97523..ce80a92 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -214,7 +214,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
testfile_implicit_pointer.c testfile_implicit_pointer.bz2 \
testfile_parameter_ref.c testfile_parameter_ref.bz2 \
testfile_entry_value.c testfile_entry_value.bz2 \
- testfile_implicit_value.c testfile_implicit_value.bz2
+ testfile_implicit_value.c testfile_implicit_value.bz2 \
+ testfile66.bz2 testfile66.core.bz2
if USE_VALGRIND
valgrind_cmd='valgrind -q --trace-children=yes --error-exitcode=1
--run-libc-freeres=no'
diff --git a/tests/run-addrname-test.sh b/tests/run-addrname-test.sh
index 8624074..bdf8ea6 100755
--- a/tests/run-addrname-test.sh
+++ b/tests/run-addrname-test.sh
@@ -298,6 +298,45 @@ __vdso_time
??:0
EOF
+# .section ".text"
+# .globl _start
+# .section ".opd","aw"
+#_start: .quad .L._start,.TOC.@tocbase
+# .previous
+# .type _start, @function
+#.L._start:
+# .byte 0x7d, 0x82, 0x10, 0x08
+# .size _start,.-.L._start
+testfiles testfile66 testfile66.core
+testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile66 _start 0x103d0 0x103d3
0x103d4 ._start 0x2d8 0x2db 0x2dc <<\EOF
+_start
+??:0
+_start
+??:0
+_start+0x3
+??:0
+()+0x103d4
+??:0
+._start
+??:0
+._start
+??:0
+._start+0x3
+??:0
+()+0x2dc
+??:0
+EOF
+testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile66 --core=testfile66.core
_start 0x461c03d0 ._start 0x461b02d8 <<\EOF
+_start
+??:0
+_start
+??:0
+._start
+??:0
+._start
+??:0
+EOF
+
testfiles testfile69.core testfile69.so
testrun_compare ${abs_top_builddir}/src/addr2line --core=./testfile69.core -S
0x7f0bc6a33535 0x7f0bc6a33546 <<\EOF
libstatic+0x9
diff --git a/tests/testfile66.bz2 b/tests/testfile66.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..4797590e2f4ad9e618de393bf498e76882eeecbb
GIT binary patch
literal 741
zcmV<B0vi27T4*^jL0KkKS!&pZ_5cGu|NsC0|9(uf<v@SuQgHs~{%4p&&`<<G00;m<
zLS#r}V`0DobvV$LL82sRWj!NLA{u%?^#A|>00003Mj`5HrqpO;dO&IrX&QP-=BAlO
zo}dp<X^;RK27mwn0MO7h(8vRT000^Q003wKpa2>G0B8UJ01_l3YM!T&00YVfk5B*y
zsA$ok&}aYv01X;6Jxv~8)y1h1g49BdEKx~7+h+t;QTG{U`f_MUC}2%iip2#LeH=}T
z>ZZZdMVrd9Z7C%onpDJh8if0G@v5$=Fura)i12QfYBP0Qm0vYStb{2{FPP+oF4~DJ
zB+xKhM7UcJ!G&mfgTNL!Lgi5E6p|4cnC&HYP}c!yy#6z{?WVd2O3hl==r1rchtJ{H
z!x0P+5S5NhNg1~_SrzPUUbK=H7K&={U@N6Jn~ZI(2-bMG^Pf5pmF8~R4o-dDG{LZ`
zzC<i>i34dQHj)9cHYUW{K-xzx2ux@MEXD|2##>}c8DBZ!IVtbbnCeCa+U>3cxRXpD
zGJ>$=v<T2<MJqf8a;HYxh9N=>3`(MNAe7t*6ehvBN<tTbf*}W)hGQs(%7TbG_qJ&o
ziHJ(2TN7i8?m}r@vKn-7(rvV)(1&(Ic+n%PI~u7XmO_(I;#txp!G2w`SZ;6U!p+Y1
zT2>u4v)+S?0R{jw2QH$CT@VQAq5D^rq~Z#RgqaDZN0A~SOq>?Oiw+0~MQzOlyFSbE
zr>e@)g+tlq1XWm`@@@}^#c)CkQ2s<b;qcctDiwPJY`gdF4yjr);xvXqP*quNkV#z2
zh{KO(NA0>iW~l^mI9EyxxH^FJ#C1%WcWs&3l-|6G)N(2i45(N(L`qb}i}3mh5EMSi
zCmtk4NMRYNDu@8W)|V!w!6$*QJsisrjCS-T`eLv@uy$Fpw3aG@ACLI}u}v78F=}KZ
XMJ*Sl22CbkU-5S&Q-uizt%z@6@PRxr
literal 0
HcmV?d00001
diff --git a/tests/testfile66.core.bz2 b/tests/testfile66.core.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..12e2d4442a18fe2d7074c79b365f1711a38b5dc4
GIT binary patch
literal 56448
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
Q<$wHL$rRy2L!*PWNFYxGr2qf`
literal 0
HcmV?d00001
--
1.8.3.1