On Tue, 26 Nov 2013 15:07:20 +0100, Mark Wielaard wrote:
For source compatibility it matters more that code outside core/src
elfutils uses the functions than those within. And these functions are
used in e.g. systemtap (they do check shndx against SHN_UNDEF).
I see there are many users (26) in Fedora:
$ rpm -qa 'elfutils*' --qf '%{name}\n'|xargs repoquery --whatrequires
--archlist=src --enablerepo='*-source' --qf '%{name}'|sort -u
aide btparser compat-gcc-34 cross-gcc ddd dwarves dwlocstat dyninst frysk gcc
glib2 glibc gridengine kernel libdwarf ltrace mesa net-snmp nut pg_top
python-elfdata python-isprelink satyr ski systemtap wireshark
+const char *
+dwfl_module_getsym_elf (Dwfl_Module *mod, int ndx,
+ GElf_Sym *sym, GElf_Word *shndxp, Elf **elfp)
+{
+ struct dwfl_file *file;
+ const char *name = __libdwfl_module_getsym (mod, ndx, sym, shndxp, &file);
+ if (elfp != NULL)
+ *elfp = file->elf;
+ return name;
+}
Maybe you had a reason for it but we could also just replace
__libdwfl_module_getsym by dwfl_module_getsym_elf now. It would just require
changing
static inline GElf_Addr
dwfl_deadjust_st_value (Dwfl_Module *mod, struct dwfl_file *symfile,
GElf_Addr addr)
so that it accepts Elf * instead of struct dwfl_file * .
Thanks,
Jan