On Wed, 23 Jan 2013 17:48:24 +0100, Mark Wielaard wrote:
@@ -1077,6 +1085,10 @@ find_symtab (Dwfl_Module *mod)
mod->aux_symdata = elf_getdata (aux_symscn, NULL);
if (mod->aux_symdata == NULL)
goto aux_cleanup;
+
+ /* We will skip the auxiliary zero entry if there is another one. */
+ if (mod->syments > 0 && mod->aux_syments > 0)
+ mod->aux_syments--;
I have not tried to find a reproducer, if there is any.
But I find it messy a bit, You adjust AUX_SYMENTS for that initial zero
symbol but you do not adjust AUX_FIRST_GLOBAL for that initial zero symbol.
Therefore AUX_SYMENTS and AUX_FIRST_GLOBAL numbering is off-by-one.
I would prefer to not modify the member variable AUX_SYMENTS and only adjust
it if needed / when read, as you already do with AUX_FIRST_GLOBAL.
TBH FYI / no request here: I no not find this first_global + syments too clear
now when combining multiple symbol tables, which is why I have refactored it in:
[patch 1/3] ppc64 .opd: Refactor syments/first_global
https://lists.fedorahosted.org/pipermail/elfutils-devel/2012-December/002...
Regards,
Jan