The elf-knowledge.h contains various macros to deal with specific ELF knowledge needed to interpret some ELF constructs that can be ambigious depending on architecture ABI. Update the comment of SH_ENTSIZE_HASH to add a more technical description of why it is needed.
Signed-off-by: Mark Wielaard <m...@klomp.org> --- libelf/ChangeLog | 4 ++++ libelf/elf-knowledge.h | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index b15508f2..7a34977d 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,7 @@ +2020-11-06 Mark Wielaard <m...@klomp.org> + + * elf-knowledge.h (SH_ENTSIZE_HASH): Update comment. + 2020-10-28 Mark Wielaard <m...@klomp.org> * elf.h: Update from glibc. diff --git a/libelf/elf-knowledge.h b/libelf/elf-knowledge.h index 9d3be0ff..6e005fa5 100644 --- a/libelf/elf-knowledge.h +++ b/libelf/elf-knowledge.h @@ -69,9 +69,9 @@ Several years later the ABI for the 64-bit S390s was developed. Many things were copied from the IA-64 ABI (which uses the correct - 32-bit entry size) but what do these people do? They use 64-bit - entries. It is really shocking to see what kind of morons are out - there. And even worse: they are allowed to design ABIs. */ + 32-bit entry size) but it does get the SHT_HASH entry size wrong by + using a 64-bit entry size. So now we need this macro to special + case both the alpha and s390x ABIs. */ #define SH_ENTSIZE_HASH(Ehdr) \ ((Ehdr)->e_machine == EM_ALPHA \ || ((Ehdr)->e_machine == EM_S390 \ -- 2.18.4