This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patchv4 4/4] Provide virtual symbols for ppc64 function descriptors


Hi Mark,

jankratochvil/ppc64bidir


On Wed, 27 Nov 2013 13:27:01 +0100, Mark Wielaard wrote:
> Right. So you need a symbol table and at least the main Elf .odp section
> (none of the other Elf files contain the .odp bits). And it is the Ebl
> of the main Elf file that is responsible for the table.

Yes.


> It looks like this could create duplicate symbols, at least symbols with
> the same st_value. So you might need to also check such a symbol doesn't
> exist yet. The relocatable kernel modules for example seem to already
> contain such symbols, plus their .odp variants. See for example the
> hello_ppc64.ko in the testsuite.

OK, I did not know any .symtab may contain the dot-prefixed symbols. BTW plain
.o file does not contain them, it is some special case in those .ko files.

I just do not resolve "SYMBOL" if ".SYMBOL" already exists.


> And one extra complication is that we present the dwfl_module_symtab as
> a "real symbol table". That means it has a zero entry first and all
> LOCAL symbols come before the GLOBAL ones.
> 
> [Side note. But unlike a real symbol table we don't provide a way to get
> at the first GLOBAL, as a real symbol table would through sh_info. This
> prevents users to actually use this as an optimization like
> dwfl_module_addrsym does, by searching GLOBALs before LOCALs, which
> might be desirable. So we really should provide an interface for the
> index of the first GLOBAL for use with dwfl_module_getsymtab. Or is it
> acceptable for a user to just walk the table once till they hit the
> first GLOBAL and cache that themselves?]

Since the introduction of minisymtab dwfl_module_getsym()'s API is no longer
an appropriate way to access Dwfl_Module's symbols, there should be obviously
an abstraction layer now.

So modifying even sh_info seems to go more far the wrong way.

So I find it fine as is, although there could be rather provided a new
Dwfl_Module symbols interface in the future.


> > diff --git a/backends/ppc64_get_symbol.c b/backends/ppc64_get_symbol.c
> > [...]
> > +/* 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;
> > +};
> 
> It might be slightly less memory to store only the original sym index
> and new value instead of the full GElf_Sym. Although that might make the
> code more complicated, having to pass the ebl_getsym_t also to this
> function.

I agree, I did not change it.  Primarily IMO it just does not matter.


> > +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;
> > +}
> 
> What does vma stand for in this case? Could use a little comment.

I have renamed it to 'addr'.  And added:
/* Find section containing ADDR in its address range.  */


> Should this just return the section index? Which is all you seem to need
> below.

As you only ask I say no.  I find there unclear how to return NULL.
Section with index 0 should never be returned but still.  NULL is clear.

Also scnfindvma() needs to deal with Elf_Scn * so it does not matter much if
elf_ndxscn() is called in the callee or in the one caller.


> > +/* 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.  */
> 
> In theory this is just a generic function. In goes a symbol table of
> size syments, accessed by the getsym function (that takes arg as
> callback value). Out comes a symbol table based on that of size
> ebl_syments accessed through ebl_get_symbol, with ebl_first_global as
> its first global.

I agree.  But I do not see what it implies, if any change or what.


> > +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)
> 
> You don't really need the first_global, see below.

OK, true.  I am not completely sure which symbols belong into the local vs.
global part.  At least STB_WEAK belongs to the global (second) part. Used:
      if (GELF_ST_BIND (sym.st_info) == STB_LOCAL)
to distinguish local vs. global input symbols now.


> main_bias is the bias used in the given symbol table st_values compared
> to the load addresses used in the main/ebl elf file. I wonder whether
> the getsym callback doesn't just need to compensate for that in this
> case, so you don't have to do that here?

It looked as a good idea but in the end main_bias needs to be known in either
ppc64_init_symbols or in ppc64_get_symbol because we need to relocate the value
indirectly fetched from .opd.  So I do not think moving the main_bias
adjustment for symbols elsewhere would help anything.


> > +{
> > +  assert (ebl != NULL);
> > +  assert (ebl->backend == NULL);
> 
> You could also allow multiple calls and just see the values are already
> there and returned the cached values. But do document whether it can
> only be called once or multiple times.

Added:
   Function must be called exactly once for new EBL.  */

I do not want to allow callers to call it multiple times as on ppc64 files not
containing any function descriptors each such call is relatively expensive.
The assertion will unfortunately not catch such a case, though.


> > +  Elf *elf = ebl->elf;
> > +  assert (*ebl_symentsp == 0);
> > +  assert (*ebl_first_globalp == 0);
> 
> Why do you care what values were passed in? These are return values.
> Just initialize them to zero so an early return makes sure they are set
> to zero.

Done; differently style.  They must be initialized now already in
ebl_init_symbols() as the backend may not have the method implemented.


> > +  GElf_Ehdr ehdr_mem, *ehdr = gelf_getehdr (elf, &ehdr_mem);
> > +  if (ehdr == NULL)
> > +    return;
> 
> We don't have a good ebl error story, but maybe make this function
> return a boolean, so the caller knows whether zero ebl_syments means
> error or no-extra-symbols?

Done, added:
   Function returns false if
   there was an error; *EBL_SYMENTSP and *EBL_FIRST_GLOBALP are left as zero in
   such case.  If function returns true (success) *EBL_SYMENTSP and 
   *EBL_FIRST_GLOBALP still can be zero, if the file does not contain any
   matching symbols.  */

Although it is a feature only for 3rd party non-existing callers,
find_symtab() just ignores the error.  It is still better to offer at least
file without resolved function descriptors than no file.

For SHT_NOBITS it currently returns false (error).  Not sure it is right but
that would rather depende on the specific caller which is currently unknown.


> I could not find a reference to this .odp section. Please add a
> reference to the standard that describes it if there is any.

I had to search for some.  I have put this text to the function comment:

   .opd section contents is described in:
   http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-DES
   http://www.ibm.com/developerworks/library/l-ppc/
    - see: Function descriptors -- the .opd section  */


> > +      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.  */
> 
> We could (and should IMHO) provide the Elf a symbol comes from if you
> need it.

As there is now dwfl_module_getsym_elf I have used it and the code verifies
the .opd section match appropriately now.


> > +      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++;
> 
> Since the symbols are given in normal order, you can just look for the
> first GLOBAL sym to record your own first global.

It seems to me slightly more complicated to me than this way, it would be:

int ebl_first_global = -1;
if ((ssize_t) symi >= first_global && ebl_first_global == -1)
  ebl_first_global = ebl_syments;

So I left it as is.

(The '(ssize_t) symi >= first_global' conditional is now different as
first_global is no longer available there.)


> A description of the layout of the .odp section, or a reference to it,
> would help here.

Added it to the function comment as described somewhere above.


> > +      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);
> 
> When does it happen that no real section index can be found. Isn't that
> always an error?

OK, yes.  So such symbols are ignored now.


> > +      dest->sym.st_shndx = SHN_XINDEX;
> 
> That doesn't seem correct, unless the section index is really too large
> to fit. Especially not if SHN_ABS is a valid value.

SHN_ABS is no longer a valid value.

OK, used there:
      dest->sym.st_shndx = (dest->shndx > SHN_HIRESERVE
                            ? SHN_XINDEX : dest->shndx);


> > +      dest->name = names_dest;
> > +      *names_dest++ = '.';
> > +      names_dest = stpcpy (names_dest, symname) + 1;
> > +      dest++;
> 
> The mangling of names by prepending a dot is somewhat ugly and requires
> lots of extra memory. Can't we just keep the proper name of the original
> symbol without the extra dot added. That would look much cleaner.
> 
> Or more radical, do we even have to keep the old symbols? Can't we just
> adjust their st_value and section index and be done with it? That would
> simplify things a lot.

I find even better looking to display the symbol names capitalized.
It is a name of function so the capitalization makes sense.

I was joking now but this is exactly the same elf symbol name corruption you
suggest.

http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-DES
exactly defines it:
	For an externally visible function, the value of the symbol with the
	same name as the function is the address of the function descriptor.
	Symbol names with a dot (.) prefix are reserved for holding entry
	point addresses. The value of a symbol named ".FN", if it exists, is
	the entry point of the function "FN". 

ppc64_init_symbols() generates synthetic ELF symbols.  Those are ELF symbols.
Therefore they have to be compliant to the ppc64 ABI above.

Additionally even when dot-prefixed symbols may exist in the input file having
some different naming for the symbols would be a complete mess.

I did not expect we will continue this disagreement even when real ELF symbols
are generated now.  Originally I wanted to Cc someone from IBM but I do not
see what to ask about, the ppc64 ABI spec is clear enough.


> > +void
> > +ppc64_destr (Ebl *ebl)
> > +{
> > +  if (ebl->backend == NULL)
> > +    return;
> > +  struct sym_entry *sym_table = ebl->backend;
> > +  free (sym_table);
> > +  ebl->backend = NULL;
> > +}
> 
> You can just free (ebl->backend).

Done.


> > diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
> > [...]
> > +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);
> > +}
> 
> So, here you could already adjust the sym st_value by any bias if that
> makes things easier, and/or even provide the actual Elf or bias itself.

The problem is after one fetches the value from .opd section:
      uint64_t 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));

One has to adjust it with MAIN_BIAS:
      dest->sym.st_value = val64 + main_bias;

Otherwise ST_VALUE could be adjusted only later in ppc64_get_symbol() but we
would have to add new MAIN_BIAS parameter there.

So I do not see how it could simplify anything.

ebl_getsym_t behavior now at least for simplicity perfectly matches
dwfl_module_getsym (dwfl_module_getsym_elf in the latest version).


[...]
> > -      tndx = ndx - mod->aux_first_global + skip_aux_zero;
> > +      tndx = ndx - (mod->aux_first_global + mod->ebl_first_global
> > +		    - skip_aux_zero);
[...]
> > -      tndx = ndx - mod->syments + skip_aux_zero;
> > +      tndx = ndx - (mod->syments + mod->ebl_first_global - skip_aux_zero);
[...]
> OK, lots of index adjustments/checks that make my head spin, but they
> look OK.

BTW I did refactor syments+first_global into symlocals+symglobals which seem
more clear to me.  But that patch is now completely out of sync, forgotten:
	[patch 1/3] ppc64 .opd: Refactor syments/first_global
	https://lists.fedorahosted.org/pipermail/elfutils-devel/2012-December/002839.html
	Message-ID: <20121214193310.GA5500@host2.jankratochvil.net>

(I do not plan to resurrect that patch in any way.)


> > diff --git a/libebl/eblgetsymbol.c b/libebl/eblgetsymbol.c
> > [...]
> > +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);
> > +}
> 
> Nitpicks. if (ebl == NULL || ebl->xxx_symbol == NULL) return;
> is shorter.

Done.  No longer applicable to ebl_init_symbols which now returns false+true.


> > diff --git a/libebl/libebl.h b/libebl/libebl.h
> > +/* 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);
> 
> Above you claim to never need the shndx.

shndxp is used now, additionally new elfp is also used, although biasp is not
used so it does not exactly match dwfl_module_getsym_elf.  There is now:

/* Callback type for ebl_init_symbols,
   it is forwarded to dwfl_module_getsym_elf.  */
typedef const char *(ebl_getsym_t) (void *arg, int ndx, GElf_Sym *symp,
                                    GElf_Word *shndxp, Elf **elfp)
  __nonnull_attribute__ (3);


> It would be good to also add a testcase based on run-dwflsym.sh that
> shows the generated tables in a couple of cases. That will also test
> some of the getsym/addrsym matching. See run-readelf-s.sh how to
> generate the example files on ppc.

Done.  That has caught multiple bugs still remaining in the new code, thanks.


Jan


24fb1f7d9c77fec7a564cd319d0580d441bd017a Mon Sep 17 00:00:00 2001
From: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed, 6 Nov 2013 20:38:05 +0100
Subject: [PATCH] Provide virtual symbols for ppc64 function descriptors

backends/
2013-11-30  Jan Kratochvil  <jan.kratochvil@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-30  Jan Kratochvil  <jan.kratochvil@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 (dwfl_module_getsym_elf): 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-30  Jan Kratochvil  <jan.kratochvil@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-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Provide virtual symbols for ppc64 function descriptors.
	* Makefile.am (EXTRA_DIST): Add testfile66.bz2 and testfile66.core.bz2.
	* dwflsyms.c (list_syms): Remove unused from parameter mod_name.  Print
	error on dwfl_module_getsymtab error.
	* run-addrname-test.sh (testfile66, testfile66.core): New tests.
	* run-dwflsyms.sh (testfile66, testfile66.core, hello_ppc64.ko): New
	tests.
	* testfile66.bz2: New file.
	* testfile66.core.bz2: New file.

Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
---
 backends/Makefile.am           |   2 +-
 backends/ppc64_get_symbol.c    | 264 +++++++++++++++++++++++++++++++++++++++++
 backends/ppc64_init.c          |   3 +
 libdwfl/dwfl_module_addrsym.c  |  21 ++--
 libdwfl/dwfl_module_getdwarf.c |  18 ++-
 libdwfl/dwfl_module_getsym.c   |  48 +++++++-
 libdwfl/libdwflP.h             |   5 +-
 libebl/Makefile.am             |   2 +-
 libebl/ebl-hooks.h             |   9 ++
 libebl/eblgetsymbol.c          |  57 +++++++++
 libebl/libebl.h                |  28 +++++
 libebl/libeblP.h               |   3 +
 tests/Makefile.am              |   3 +-
 tests/dwflsyms.c               |   9 +-
 tests/run-addrname-test.sh     |  39 ++++++
 tests/run-dwflsyms.sh          | 100 ++++++++++++++++
 tests/testfile66.bz2           | Bin 0 -> 741 bytes
 tests/testfile66.core.bz2      | Bin 0 -> 56448 bytes
 18 files changed, 586 insertions(+), 25 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 9bca994..40460ae 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -101,7 +101,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..4be84b1
--- /dev/null
+++ b/backends/ppc64_get_symbol.c
@@ -0,0 +1,264 @@
+/* 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;
+};
+
+/* Find section containing ADDR in its address range.  */
+
+static Elf_Scn *
+scnfindaddr (Elf *elf, GElf_Addr addr)
+{
+  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)
+	  && likely ((shdr->sh_flags & SHF_ALLOC) != 0)
+	  && addr >= shdr->sh_addr
+	  && addr < shdr->sh_addr + shdr->sh_size)
+	break;
+    }
+  return scn;
+}
+
+static int
+symnames_get_compar (const void *ap, const void *bp)
+{
+  const char *const *a = ap;
+  const char *const *b = bp;
+  return strcmp (*a, *b);
+}
+
+static const char **
+symnames_get (size_t syments, ebl_getsym_t *getsym, void *arg, bool is_linux,
+	      size_t *symnames_countp)
+{
+  assert (syments > 0);
+  const char **symnames = malloc (syments * sizeof (*symnames));
+  if (symnames == NULL)
+    return NULL;
+  *symnames_countp = 0;
+  for (size_t symi = 0; symi < syments; symi++)
+    {
+      GElf_Sym sym;
+      const char *symname = getsym (arg, symi, &sym, NULL, NULL);
+      if (symname == NULL || symname[0] != '.')
+	continue;
+      if (GELF_ST_TYPE (sym.st_info) != STT_FUNC
+	  && (! is_linux || GELF_ST_TYPE (sym.st_info) != STT_GNU_IFUNC))
+	continue;
+      symnames[(*symnames_countp)++] = &symname[1];
+    }
+  qsort (symnames, *symnames_countp, sizeof (*symnames), symnames_get_compar);
+  return symnames;
+}
+
+/* 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.
+
+   .opd section contents is described in:
+   http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-DES
+   http://www.ibm.com/developerworks/library/l-ppc/
+    - see: Function descriptors -- the .opd section  */
+
+bool
+ppc64_init_symbols (Ebl *ebl, size_t syments, 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);
+  if (syments == 0)
+    return true;
+  Elf *elf = ebl->elf;
+  GElf_Ehdr ehdr_mem, *ehdr = gelf_getehdr (elf, &ehdr_mem);
+  if (ehdr == NULL)
+    return false;
+  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 || (opd_shdr->sh_flags & SHF_ALLOC) == 0)
+	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 false;
+      assert (opd_data->d_size == opd_shdr->sh_size);
+      break;
+    }
+  if (opd_data == NULL)
+    return true;
+  char *ident = elf_getident (elf, NULL);
+  bool is_linux = ident != NULL && ident[EI_OSABI] == ELFOSABI_LINUX;
+  size_t symnames_count;
+  const char **symnames = symnames_get (syments, getsym, arg, is_linux,
+					&symnames_count);
+  if (symnames == NULL)
+    return false;
+  struct sym_entry *sym_table = malloc (syments * sizeof (*sym_table));
+  if (sym_table == NULL)
+    {
+      free (symnames);
+      return false;
+    }
+  ebl->backend = sym_table;
+  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;
+      GElf_Word sym_shndx;
+      Elf *sym_elf;
+      const char *symname = getsym (arg, symi, &sym, &sym_shndx, &sym_elf);
+      if (symname == NULL || symname[0] == '.')
+	continue;
+      if (GELF_ST_TYPE (sym.st_info) != STT_FUNC
+	  && (! is_linux || GELF_ST_TYPE (sym.st_info) != STT_GNU_IFUNC))
+	continue;
+      Elf_Scn *sym_scn = elf_getscn (sym_elf, sym_shndx);
+      if (sym_scn == NULL)
+	continue;
+      GElf_Shdr sym_shdr_mem, *sym_shdr;
+      sym_shdr = gelf_getshdr (sym_scn, &sym_shdr_mem);
+      if (sym_shdr == NULL)
+	continue;
+      GElf_Ehdr sym_ehdr_mem, *sym_ehdr = gelf_getehdr (sym_elf, &sym_ehdr_mem);
+      if (sym_ehdr == NULL)
+	continue;
+      if (strcmp (elf_strptr (sym_elf, sym_ehdr->e_shstrndx, sym_shdr->sh_name),
+		  ".opd")
+	  != 0)
+	continue;
+      if (sym.st_value < opd_shdr->sh_addr + main_bias
+          || sym.st_value > (opd_shdr->sh_addr + main_bias
+			     + opd_shdr->sh_size - sizeof (uint64_t)))
+	continue;
+      if (bsearch (&symname, symnames, symnames_count, sizeof (*symnames),
+		   symnames_get_compar)
+	  != 0)
+	continue;
+      uint64_t 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));
+      Elf_Scn *entry_scn = scnfindaddr (elf, val64);
+      if (entry_scn == NULL)
+	continue;
+      if (GELF_ST_BIND (sym.st_info) == STB_LOCAL)
+	ebl_first_global++;
+      struct sym_entry *dest = &sym_table[ebl_syments];
+      dest->sym = sym;
+      dest->sym.st_value = val64 + main_bias;
+      dest->shndx = elf_ndxscn (entry_scn);
+      dest->sym.st_shndx = (dest->shndx > SHN_HIRESERVE
+			    ? SHN_XINDEX : dest->shndx);
+      dest->name = symname;
+      names_size += 1 + strlen (symname) + 1;
+      ebl_syments++;
+    }
+  free (symnames);
+  if (ebl_syments == 0)
+    {
+      free (sym_table);
+      ebl->backend = NULL;
+      return true;
+    }
+  sym_table = realloc (sym_table,
+		       ebl_syments * sizeof (*sym_table) + names_size);
+  if (sym_table == NULL)
+    return false;
+  ebl->backend = sym_table;
+  char *names = (void *) &sym_table[ebl_syments];
+  char *names_dest = names;
+  for (size_t symi = 0; symi < ebl_syments; symi++)
+    {
+      struct sym_entry *dest = &sym_table[symi];
+      const char *symname = dest->name;
+      dest->name = names_dest;
+      *names_dest++ = '.';
+      names_dest = stpcpy (names_dest, symname) + 1;
+    }
+  assert (names_dest == names + names_size);
+  *ebl_symentsp = ebl_syments;
+  *ebl_first_globalp = ebl_first_global;
+  return true;
+}
+
+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)
+{
+  free (ebl->backend);
+}
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 320d41f..b11ba75 100644
--- a/libdwfl/dwfl_module_addrsym.c
+++ b/libdwfl/dwfl_module_addrsym.c
@@ -179,16 +179,17 @@ dwfl_module_addrsym_elf (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 dd76f25..223374c 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -962,6 +962,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, Elf **elfp)
+{
+  Dwfl_Module *mod = arg;
+  return dwfl_module_getsym_elf (mod, ndx, sym, shndxp, elfp, NULL);
+}
+
 /* Try to find a symbol table in either MOD->main.elf or MOD->debug.elf.  */
 static void
 find_symtab (Dwfl_Module *mod)
@@ -1081,7 +1088,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,
@@ -1102,7 +1109,14 @@ 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->main_bias, getsym_helper, mod,
+		      &mod->ebl_syments, &mod->ebl_first_global);
 }
 
 
@@ -1259,7 +1273,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 319f975..42eb43b 100644
--- a/libdwfl/dwfl_module_getsym.c
+++ b/libdwfl/dwfl_module_getsym.c
@@ -54,8 +54,7 @@ dwfl_module_getsym_elf (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;
@@ -73,24 +72,61 @@ dwfl_module_getsym_elf (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);
       elf = mod->symfile->elf;
       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);
       elf = mod->aux_sym.elf;
       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, shndxp);
+      if (likely (name != NULL))
+	{
+	  if (elfp)
+	    *elfp = mod->main.elf;
+	  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 b73f7b1..53b524a 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..7204514 100644
--- a/libebl/ebl-hooks.h
+++ b/libebl/ebl-hooks.h
@@ -162,5 +162,14 @@ bool EBLHOOK(set_initial_registers_tid) (pid_t tid,
 					 ebl_tid_registers_t *setfunc,
 					 void *arg);
 
+/* See ebl_init_symbols.  */
+bool EBLHOOK(init_symbols) (Ebl *ebl, size_t syments, 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..ef664bf
--- /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>
+
+bool
+ebl_init_symbols (Ebl *ebl, size_t syments, GElf_Addr main_bias,
+		  ebl_getsym_t *getsym, void *arg, size_t *ebl_symentsp,
+		  int *ebl_first_globalp)
+{
+  *ebl_symentsp = 0;
+  *ebl_first_globalp = 0;
+  if (ebl == NULL)
+    return false;
+  if (ebl->init_symbols == NULL)
+    return true;
+  return ebl->init_symbols (ebl, syments, 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 || 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 045a198..d817153 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -402,6 +402,34 @@ 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_elf.  */
+typedef const char *(ebl_getsym_t) (void *arg, int ndx, GElf_Sym *symp,
+				    GElf_Word *shndxp, Elf **elfp)
+  __nonnull_attribute__ (3);
+
+/* Initialize virtual backend symbol table for EBL->elf currently containing
+   SYMENTS symbols, 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.  Function must be called exactly once
+   for new EBL.  Function returns false if there was an error; *EBL_SYMENTSP
+   and *EBL_FIRST_GLOBALP are left as zero in such case.  If function returns
+   true (success) *EBL_SYMENTSP and *EBL_FIRST_GLOBALP still can be zero,
+   if the file does not contain any matching symbols.  */
+extern bool ebl_init_symbols (Ebl *ebl, size_t syments, Dwarf_Addr symbias,
+			      ebl_getsym_t *getsym, void *arg,
+			      size_t *ebl_symentsp, int *ebl_first_globalp)
+  __nonnull_attribute__ (1, 4, 6, 7);
+
+/* 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 cedb684..faa46e3 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -218,7 +218,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
 	     testfile_entry_value.c testfile_entry_value.bz2 \
 	     testfile_implicit_value.c testfile_implicit_value.bz2 \
 	     testfile_aarch64_core.bz2 \
-	     run-funcretval.sh funcretval_test.c funcretval_test_aarch64.bz2
+	     run-funcretval.sh funcretval_test.c funcretval_test_aarch64.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/dwflsyms.c b/tests/dwflsyms.c
index 10c01f1..19f1dbe 100644
--- a/tests/dwflsyms.c
+++ b/tests/dwflsyms.c
@@ -106,13 +106,16 @@ addr_in_section (Elf *elf, GElf_Word shndx, GElf_Addr addr)
 
 static int
 list_syms (struct Dwfl_Module *mod,
-	   void **user __attribute__ ((unused)),
-	   const char *mod_name __attribute__ ((unused)),
+	   void **user __attribute__ ((unused)), const char *mod_name,
 	   Dwarf_Addr low_addr __attribute__ ((unused)),
 	   void *arg __attribute__ ((unused)))
 {
   int syms = dwfl_module_getsymtab (mod);
-  assert (syms >= 0);
+  if (syms < 0)
+    {
+      printf ("%s: %s\n", mod_name, dwfl_errmsg (-1));
+      return DWARF_CB_OK;
+    }
 
   for (int ndx = 0; ndx < syms; ndx++)
     {
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.(a)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/run-dwflsyms.sh b/tests/run-dwflsyms.sh
index 3cd7bf3..6090905 100755
--- a/tests/run-dwflsyms.sh
+++ b/tests/run-dwflsyms.sh
@@ -362,4 +362,104 @@ testrun_compare ${abs_builddir}/dwflsyms -e testfilebasmin <<\EOF
    8: FUNC	GLOBAL	bar (44) 0x40017a, rel: 0x40017a (.text)
 EOF
 
+testfiles testfile66
+testrun_compare ${abs_builddir}/dwflsyms -e testfile66 <<\EOF
+   0: NOTYPE	LOCAL	 (0) 0
+   1: SECTION	LOCAL	 (0) 0x190
+   2: SECTION	LOCAL	 (0) 0x1a4
+   3: SECTION	LOCAL	 (0) 0x1c8
+   4: SECTION	LOCAL	 (0) 0x1f8
+   5: SECTION	LOCAL	 (0) 0x288
+   6: SECTION	LOCAL	 (0) 0x2a8
+   7: SECTION	LOCAL	 (0) 0x2d8
+   8: SECTION	LOCAL	 (0) 0x102e0
+   9: SECTION	LOCAL	 (0) 0x103d0
+  10: SECTION	LOCAL	 (0) 0x103e8
+  11: SECTION	LOCAL	 (0) 0x103e8
+  12: OBJECT	LOCAL	_DYNAMIC (0) 0x102e0
+  13: FUNC	GLOBAL	_start (4) 0x103d0, rel: 0x103d0 (.opd)
+  14: NOTYPE	GLOBAL	__bss_start (0) 0x103f0
+  15: NOTYPE	GLOBAL	_edata (0) 0x103f0
+  16: NOTYPE	GLOBAL	_end (0) 0x103f0
+  17: FUNC	GLOBAL	._start (4) 0x2d8, rel: 0x2d8 (.text)
+EOF
+
+testfiles testfile66.core
+testrun_compare ${abs_builddir}/dwflsyms -e testfile66 --core=testfile66.core <<\EOF
+   0: NOTYPE	LOCAL	 (0) 0
+   1: SECTION	LOCAL	 (0) 0xfffb1af0410
+   2: NOTYPE	GLOBAL	__kernel_datapage_offset (0) 0xfffb1af05dc
+   3: OBJECT	GLOBAL	LINUX_2.6.15 (0) 0
+   4: NOTYPE	GLOBAL	__kernel_clock_getres (64) 0xfffb1af052c
+   5: NOTYPE	GLOBAL	__kernel_get_tbfreq (24) 0xfffb1af0620
+   6: NOTYPE	GLOBAL	__kernel_gettimeofday (84) 0xfffb1af0440
+   7: NOTYPE	GLOBAL	__kernel_sync_dicache (20) 0xfffb1af06c4
+   8: NOTYPE	GLOBAL	__kernel_sync_dicache_p5 (20) 0xfffb1af06c4
+   9: NOTYPE	GLOBAL	__kernel_sigtramp_rt64 (12) 0xfffb1af0418
+  10: NOTYPE	GLOBAL	__kernel_clock_gettime (152) 0xfffb1af0494
+  11: NOTYPE	GLOBAL	__kernel_get_syscall_map (44) 0xfffb1af05f4
+ld64.so.1: Callback returned failure
+   0: NOTYPE	LOCAL	 (0) 0
+   1: SECTION	LOCAL	 (0) 0x461b0190
+   2: SECTION	LOCAL	 (0) 0x461b01a4
+   3: SECTION	LOCAL	 (0) 0x461b01c8
+   4: SECTION	LOCAL	 (0) 0x461b01f8
+   5: SECTION	LOCAL	 (0) 0x461b0288
+   6: SECTION	LOCAL	 (0) 0x461b02a8
+   7: SECTION	LOCAL	 (0) 0x461b02d8
+   8: SECTION	LOCAL	 (0) 0x461c02e0
+   9: SECTION	LOCAL	 (0) 0x461c03d0
+  10: SECTION	LOCAL	 (0) 0x461c03e8
+  11: SECTION	LOCAL	 (0) 0x461c03e8
+  12: OBJECT	LOCAL	_DYNAMIC (0) 0x102e0
+  13: FUNC	GLOBAL	_start (4) 0x461c03d0, rel: 0x103d0 (.opd)
+  14: NOTYPE	GLOBAL	__bss_start (0) 0x103f0
+  15: NOTYPE	GLOBAL	_edata (0) 0x103f0
+  16: NOTYPE	GLOBAL	_end (0) 0x103f0
+  17: FUNC	GLOBAL	._start (4) 0x461b02d8, rel: 0x2d8 (.text)
+EOF
+
+# Test the already present dot-prefixed names do not get duplicated.
+testfiles hello_ppc64.ko
+testrun_compare ${abs_builddir}/dwflsyms -e hello_ppc64.ko <<\EOF
+   0: NOTYPE	LOCAL	 (0) 0
+   1: SECTION	LOCAL	 (0) 0
+   2: SECTION	LOCAL	 (0) 0x94
+   3: SECTION	LOCAL	 (0) 0xba
+   4: SECTION	LOCAL	 (0) 0xd0
+   5: SECTION	LOCAL	 (0) 0x13a
+   6: SECTION	LOCAL	 (0) 0x13a
+   7: SECTION	LOCAL	 (0) 0x150
+   8: SECTION	LOCAL	 (0) 0x170
+   9: SECTION	LOCAL	 (0) 0x188
+  10: SECTION	LOCAL	 (0) 0x410
+  11: SECTION	LOCAL	 (0) 0x434
+  12: SECTION	LOCAL	 (0) 0x438
+  13: SECTION	LOCAL	 (0) 0x438
+  14: SECTION	LOCAL	 (0) 0
+  15: SECTION	LOCAL	 (0) 0
+  16: SECTION	LOCAL	 (0) 0
+  17: SECTION	LOCAL	 (0) 0
+  18: SECTION	LOCAL	 (0) 0
+  19: SECTION	LOCAL	 (0) 0
+  20: SECTION	LOCAL	 (0) 0
+  21: SECTION	LOCAL	 (0) 0
+  22: SECTION	LOCAL	 (0) 0
+  23: SECTION	LOCAL	 (0) 0
+  24: FILE	LOCAL	init.c (0) 0
+  25: FILE	LOCAL	exit.c (0) 0
+  26: FILE	LOCAL	hello.mod.c (0) 0
+  27: OBJECT	LOCAL	__mod_srcversion23 (35) 0xd0
+  28: OBJECT	LOCAL	__module_depends (9) 0xf8
+  29: OBJECT	LOCAL	__mod_vermagic5 (50) 0x108
+  30: OBJECT	GLOBAL	__this_module (648) 0x188
+  31: FUNC	GLOBAL	.cleanup_module (72) 0x4c, rel: 0x4c (.text)
+  32: FUNC	GLOBAL	cleanup_module (24) 0x160, rel: 0x10 (.opd)
+  33: NOTYPE	GLOBAL	.printk (0) 0
+  34: FUNC	GLOBAL	init_module (24) 0x150, rel: 0 (.opd)
+  35: NOTYPE	GLOBAL	._mcount (0) 0
+  36: FUNC	GLOBAL	.init_module (76) 0, rel: 0 (.text)
+  37: NOTYPE	GLOBAL	_mcount (0) 0
+EOF
+
 exit 0
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(a)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(a)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(a)N6Jn~ZI(2-bMG^Pf5pmF8~R4o-dDG{LZ`
zzC<i>i34dQHj)9cHYUW{K-xzx2ux(a)MEXD|2##>}c8DBZ!IVtbbnCeCa+U>3cxRXpD
zGJ>$=v<T2<MJqf8a;HYxh9N=>3`(MNAe7t*6ehvBN<tTbf*}W)hGQs(%7TbG_qJ&o
ziHJ(2TN7i8?m}r(a)vKn-7(rvV)(1&(Ic+n%PI~u7XmO_(I;#txp!G2w`SZ;6U!p+Y1
zT2>u4v)+S?0R{jw2QH$CT(a)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(a)8W)|V!w!6$*QJsisrjCS-T`eLv(a)uy$Fpw3aG(a)ACLI}u}v78F=}KZ
XMJ*Sl22CbkU-5S&Q-uizt%z(a)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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]