Export elf_get_sym_info
Export the base implementation of arch_get_sym_info as
elf_get_sym_info() for backends to use if needed.
Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
diff --git a/ltrace-elf.c b/ltrace-elf.c
index cd88581..79feabe 100644
--- a/ltrace-elf.c
+++ b/ltrace-elf.c
@@ -511,10 +511,9 @@
close(lte->fd);
}
-#ifndef ARCH_HAVE_GET_SYMINFO
int
-arch_get_sym_info(struct ltelf *lte, const char *filename,
- size_t sym_index, GElf_Rela *rela, GElf_Sym *sym)
+elf_get_sym_info(struct ltelf *lte, const char *filename,
+ size_t sym_index, GElf_Rela *rela, GElf_Sym *sym)
{
int i = sym_index;
GElf_Rel rel;
@@ -541,6 +540,14 @@
return 0;
}
+
+#ifndef ARCH_HAVE_GET_SYMINFO
+int
+arch_get_sym_info(struct ltelf *lte, const char *filename,
+ size_t sym_index, GElf_Rela *rela, GElf_Sym *sym)
+{
+ return elf_get_sym_info(lte, filename, sym_index, rela, sym);
+}
#endif
static void
diff --git a/ltrace-elf.h b/ltrace-elf.h
index 7aba933..e8fb460 100644
--- a/ltrace-elf.h
+++ b/ltrace-elf.h
@@ -56,6 +56,11 @@
* point address is stored to *ENTRYP. */
struct library *ltelf_read_main_binary(struct Process *proc, const char *path);
+/* The base implementation of backend.h (arch_get_sym_info).
+ * See backend.h for details. */
+int elf_get_sym_info(struct ltelf *lte, const char *filename,
+ size_t sym_index, GElf_Rela *rela, GElf_Sym *sym);
+
Elf_Data *elf_loaddata(Elf_Scn *scn, GElf_Shdr *shdr);
int elf_get_section_covering(struct ltelf *lte, GElf_Addr addr,
Elf_Scn **tgt_sec, GElf_Shdr *tgt_shdr);