diff --git a/elfio/elf_types.hpp b/elfio/elf_types.hpp
index deac17324acfbebd8b58b044cecacd7a5e5bd0e0..8a0a49179b39f4f2d07c5e2ba0dde3b4a1aeb273 100644
--- a/elfio/elf_types.hpp
+++ b/elfio/elf_types.hpp
@@ -359,6 +359,7 @@ constexpr unsigned char ELFOSABI_NONE    = 0;  // No extensions or unspecified
 constexpr unsigned char ELFOSABI_HPUX    = 1;  // Hewlett-Packard HP-UX
 constexpr unsigned char ELFOSABI_NETBSD  = 2;  // NetBSD
 constexpr unsigned char ELFOSABI_LINUX   = 3;  // Linux
+constexpr unsigned char ELFOSABI_HURD    = 4;  // GNU Hurd
 constexpr unsigned char ELFOSABI_SOLARIS = 6;  // Sun Solaris
 constexpr unsigned char ELFOSABI_AIX     = 7;  // AIX
 constexpr unsigned char ELFOSABI_IRIX    = 8;  // IRIX
@@ -370,6 +371,10 @@ constexpr unsigned char ELFOSABI_OPENVMS = 13; // Open VMS
 constexpr unsigned char ELFOSABI_NSK     = 14; // Hewlett-Packard Non-Stop Kernel
 constexpr unsigned char ELFOSABI_AROS    = 15; // Amiga Research OS
 constexpr unsigned char ELFOSABI_FENIXOS = 16; // The FenixOS highly scalable multi-core OS
+constexpr unsigned char ELFOSABI_NUXI    = 17; // Nuxi CloudABI
+constexpr unsigned char ELFOSABI_OPENVOS = 18; // Stratus Technologies OpenVOS
+constexpr unsigned char ELFOSABI_ARM     = 97; // ARM
+constexpr unsigned char ELFOSABI_STANDALONE	= 255; // Standalone (embedded) application
 
 // 64-255 Architecture-specific value range
 // AMDGPU OS for HSA compatible compute kernels
@@ -517,6 +522,11 @@ constexpr Elf_Word SHT_GNU_versym     = 0x6fffffff;
 constexpr Elf_Word SHT_LOOS           = 0x60000000;
 constexpr Elf_Word SHT_HIOS           = 0x6fffffff;
 constexpr Elf_Word SHT_LOPROC         = 0x70000000;
+constexpr Elf_Word SHT_ARM_EXIDX           = 0x70000001;
+constexpr Elf_Word SHT_ARM_PREEMPTMAP      = 0x70000002;
+constexpr Elf_Word SHT_ARM_ATTRIBUTES      = 0x70000003;
+constexpr Elf_Word SHT_ARM_DEBUGOVERLAY    = 0x70000004;
+constexpr Elf_Word SHT_ARM_OVERLAYSECTION  = 0x70000005;
 constexpr Elf_Word SHT_HIPROC         = 0x7FFFFFFF;
 constexpr Elf_Word SHT_LOUSER         = 0x80000000;
 constexpr Elf_Word SHT_HIUSER         = 0xFFFFFFFF;
@@ -953,6 +963,7 @@ constexpr Elf_Word PT_PAX_FLAGS    = 0X65041580;
 constexpr Elf_Word PT_OPENBSD_RANDOMIZE = 0X65A3DBE6;
 constexpr Elf_Word PT_OPENBSD_WXNEEDED  = 0X65A3DBE7;
 constexpr Elf_Word PT_OPENBSD_BOOTDATA  = 0X65A41BE6;
+constexpr Elf_Word PT_SUNWBSS           = 0X6FFFFFFA;
 constexpr Elf_Word PT_SUNWSTACK         = 0X6FFFFFFB;
 constexpr Elf_Word PT_HIOS              = 0X6FFFFFFF;
 constexpr Elf_Word PT_LOPROC            = 0X70000000;
@@ -1001,13 +1012,28 @@ constexpr Elf_Word DT_ENCODING        = 32;
 constexpr Elf_Word DT_PREINIT_ARRAY   = 32;
 constexpr Elf_Word DT_PREINIT_ARRAYSZ = 33;
 constexpr Elf_Word DT_MAXPOSTAGS      = 34;
+constexpr Elf_Word DT_LOOS            = 0x6000000D;
+constexpr Elf_Word DT_HIOS            = 0x6ffff000;
 constexpr Elf_Word DT_GNU_HASH        = 0x6ffffef5;
+constexpr Elf_Word DT_TLSDESC_PLT     = 0x6ffffef6;
+constexpr Elf_Word DT_TLSDESC_GOT     = 0x6ffffef7;
+constexpr Elf_Word DT_GNU_CONFLICT    = 0x6ffffef8;
+constexpr Elf_Word DT_GNU_LIBLIST     = 0x6ffffef9;
+constexpr Elf_Word DT_CONFIG          = 0x6ffffefa;
+constexpr Elf_Word DT_DEPAUDIT        = 0x6ffffefb;
+constexpr Elf_Word DT_AUDIT           = 0x6ffffefc;
+constexpr Elf_Word DT_PLTPAD          = 0x6ffffefd;
+constexpr Elf_Word DT_MOVETAB         = 0x6ffffefe;
+constexpr Elf_Word DT_SYMINFO         = 0x6ffffeff;
+constexpr Elf_Word DT_ADDRRNGHI       = 0x6ffffeff;
 constexpr Elf_Word DT_VERSYM          = 0x6ffffff0;
+constexpr Elf_Word DT_RELACOUNT       = 0x6ffffff9;
+constexpr Elf_Word DT_RELCOUNT        = 0x6ffffffa;
 constexpr Elf_Word DT_FLAGS_1         = 0x6ffffffb;
+constexpr Elf_Word DT_VERDEF          = 0x6ffffffc;
+constexpr Elf_Word DT_VERDEFNUM       = 0x6ffffffd;
 constexpr Elf_Word DT_VERNEED         = 0x6ffffffe;
 constexpr Elf_Word DT_VERNEEDNUM      = 0x6fffffff;
-constexpr Elf_Word DT_LOOS            = 0x6000000D;
-constexpr Elf_Word DT_HIOS            = 0x6ffff000;
 constexpr Elf_Word DT_LOPROC          = 0x70000000;
 constexpr Elf_Word DT_HIPROC          = 0x7FFFFFFF;
 
diff --git a/elfio/elfio_dump.hpp b/elfio/elfio_dump.hpp
index 6d223930103deb704241372d910d8201a2095eb7..e6525c4d3b76d57a62f26d590ba3ec614f137dda 100644
--- a/elfio/elfio_dump.hpp
+++ b/elfio/elfio_dump.hpp
@@ -51,6 +51,33 @@ static const struct endian_table_t
     { ELFDATA2MSB, "Big endian" },
 };
 
+static const struct os_abi_table_t
+{
+    const unsigned char  key;
+    const char* str;
+} os_abi_table[] = {
+    { ELFOSABI_NONE, "UNIX System V" },
+    { ELFOSABI_HPUX, "Hewlett-Packard HP-UX" },
+    { ELFOSABI_NETBSD, "NetBSD" },
+    { ELFOSABI_LINUX, "Linux" },
+    { ELFOSABI_HURD, "GNU Hurd" },
+    { ELFOSABI_SOLARIS, "Sun Solaris" },
+    { ELFOSABI_AIX, "AIX" },
+    { ELFOSABI_IRIX, "IRIX" },
+    { ELFOSABI_FREEBSD, "FreeBSD" },
+    { ELFOSABI_TRU64, "Compaq TRU64 UNIX" },
+    { ELFOSABI_MODESTO, "Novell Modesto" },
+    { ELFOSABI_OPENBSD, "Open BSD" },
+    { ELFOSABI_OPENVMS, "Open VMS" },
+    { ELFOSABI_NSK, "Hewlett-Packard Non-Stop Kernel" },
+    { ELFOSABI_AROS, "Amiga Research OS" },
+    { ELFOSABI_FENIXOS, "FenixOS" },
+    { ELFOSABI_NUXI, "Nuxi CloudABI" },
+    { ELFOSABI_OPENVOS, "OpenVOS" },
+    { ELFOSABI_ARM, "ARM" },
+    { ELFOSABI_STANDALONE, "Standalone (embedded)" },
+};
+
 static const struct version_table_t
 {
     const Elf64_Word key;
@@ -369,6 +396,11 @@ static const struct section_type_table_t
     { SHT_GNU_verdef, "GNU_verdef" },
     { SHT_GNU_verneed, "GNU_verneed" },
     { SHT_GNU_versym, "GNU_versym" },
+    { SHT_ARM_EXIDX, "ARM_EXIDX" },
+    { SHT_ARM_PREEMPTMAP, "ARM_PREEMPTMAP" },
+    { SHT_ARM_ATTRIBUTES, "ARM_ATTRIBUTES" },
+    { SHT_ARM_DEBUGOVERLAY, "ARM_DEBUGOVERLAY" },
+    { SHT_ARM_OVERLAYSECTION, "ARM_OVERLAYSECTION" },
 
 };
 
@@ -395,6 +427,7 @@ static const struct segment_type_table_t
     { PT_OPENBSD_RANDOMIZE, "OPENBSD_RANDOMIZE" },
     { PT_OPENBSD_WXNEEDED, "OPENBSD_WXNEEDED " },
     { PT_OPENBSD_BOOTDATA, "OPENBSD_BOOTDATA " },
+    { PT_SUNWBSS, "PT_SUNWBSS" },
     { PT_SUNWSTACK, "SUNWSTACK" },
 };
 
@@ -472,8 +505,23 @@ static const struct dynamic_tag_t
     { DT_PREINIT_ARRAYSZ, "PREINIT_ARRAYSZ" },
     { DT_MAXPOSTAGS, "MAXPOSTAGS" },
     { DT_GNU_HASH, "GNU_HASH" },
+    { DT_TLSDESC_PLT, "TLSDESC_PLT" },
+    { DT_TLSDESC_GOT, "TLSDESC_GOT" },
+    { DT_GNU_CONFLICT, "GNU_CONFLICT" },
+    { DT_GNU_LIBLIST, "GNU_LIBLIST" },
+    { DT_CONFIG, "CONFIG" },
+    { DT_DEPAUDIT, "DEPAUDIT" },
+    { DT_AUDIT, "AUDIT" },
+    { DT_PLTPAD, "PLTPAD" },
+    { DT_MOVETAB, "MOVETAB" },
+    { DT_SYMINFO, "SYMINFO" },
+    { DT_ADDRRNGHI, "ADDRRNGHI" },
     { DT_VERSYM, "VERSYM" },
+    { DT_RELACOUNT, "RELACOUNT"},
+    { DT_RELCOUNT, "RELCOUNT"},
     { DT_FLAGS_1, "FLAGS_1" },
+    { DT_VERDEF, "VERDEF" },
+    { DT_VERDEFNUM, "VERDEFNUM" },
     { DT_VERNEED, "VERNEED" },
     { DT_VERNEEDNUM, "VERNEEDNUM" },
 };
@@ -652,6 +700,8 @@ class dump
             << std::endl
             << "  ELFVersion: " << str_version( reader.get_elf_version() )
             << std::endl
+            << "  OS/ABI:     " << str_os_abi(reader.get_os_abi()) << std::endl
+            << "  ABI Version:" << (int)reader.get_abi_version() << std::endl
             << "  Type:       " << str_type( reader.get_type() ) << std::endl
             << "  Machine:    " << str_machine( reader.get_machine() )
             << std::endl
@@ -1193,6 +1243,7 @@ class dump
     STR_FUNC_TABLE( class )
     STR_FUNC_TABLE( endian )
     STR_FUNC_TABLE( version )
+    STR_FUNC_TABLE( os_abi )
     STR_FUNC_TABLE( type )
     STR_FUNC_TABLE( machine )
     STR_FUNC_TABLE( section_type )
diff --git a/elfio/elfio_symbols.hpp b/elfio/elfio_symbols.hpp
index 23cd4f7d6c79b76b3d464a5fce8c09f1a2a7ac02..414bb545ba410f22ccaf1e2ce6f024933ac386ed 100644
--- a/elfio/elfio_symbols.hpp
+++ b/elfio/elfio_symbols.hpp
@@ -551,8 +551,8 @@ template <class S> class symbol_section_accessor_template
   private:
     const elfio&   elf_file;
     S*             symbol_section;
-    Elf_Half       hash_section_index;
-    const section* hash_section;
+    Elf_Half       hash_section_index{ 0 };
+    const section* hash_section{ nullptr };
 };
 
 using symbol_section_accessor = symbol_section_accessor_template<section>;