diff --git a/elftools/elf/descriptions.py b/elftools/elf/descriptions.py index c52ff116..e1fa9797 100644 --- a/elftools/elf/descriptions.py +++ b/elftools/elf/descriptions.py @@ -458,10 +458,12 @@ def describe_note_gnu_properties(properties, machine): SHT_GNU_verneed='VERNEED', SHT_GNU_versym='VERSYM', SHT_GNU_LIBLIST='GNU_LIBLIST', + SHT_AMD64_UNWIND='X86_64_UNWIND', SHT_ARM_EXIDX='ARM_EXIDX', SHT_ARM_PREEMPTMAP='ARM_PREEMPTMAP', SHT_ARM_ATTRIBUTES='ARM_ATTRIBUTES', SHT_ARM_DEBUGOVERLAY='ARM_DEBUGOVERLAY', + SHT_AARCH64_ATTRIBUTES='AARCH64_ATTRIBUTES', SHT_RISCV_ATTRIBUTES='RISCV_ATTRIBUTES', SHT_MIPS_LIBLIST='MIPS_LIBLIST', SHT_MIPS_DEBUG='MIPS_DEBUG', diff --git a/elftools/elf/enums.py b/elftools/elf/enums.py index 103312d5..e99ca108 100644 --- a/elftools/elf/enums.py +++ b/elftools/elf/enums.py @@ -330,6 +330,10 @@ SHT_ARM_ATTRIBUTES=0x70000003, SHT_ARM_DEBUGOVERLAY=0x70000004)) +ENUM_SH_TYPE_AARCH64 = merge_dicts( + ENUM_SH_TYPE_BASE, + dict(SHT_AARCH64_ATTRIBUTES=0x70000003)) + ENUM_SH_TYPE_RISCV = merge_dicts( ENUM_SH_TYPE_BASE, dict(SHT_RISCV_ATTRIBUTES=0x70000003)) diff --git a/elftools/elf/structs.py b/elftools/elf/structs.py index 34088456..abdfd9e3 100644 --- a/elftools/elf/structs.py +++ b/elftools/elf/structs.py @@ -189,6 +189,8 @@ def _create_shdr(self): sh_type_dict = ENUM_SH_TYPE_BASE if self.e_machine == 'EM_ARM': sh_type_dict = ENUM_SH_TYPE_ARM + elif self.e_machine == 'EM_AARCH64': + sh_type_dict = ENUM_SH_TYPE_AARCH64 elif self.e_machine == 'EM_X86_64': sh_type_dict = ENUM_SH_TYPE_AMD64 elif self.e_machine == 'EM_MIPS':