Tweak dynamic section handling to decipher DT_SONAME + small cleanups
diff --git a/scripts/readelf.py b/scripts/readelf.py
index 8c1b0f8..91c0e75 100755
--- a/scripts/readelf.py
+++ b/scripts/readelf.py
@@ -297,7 +297,6 @@
                 section.num_tags()))
             self._emitline("  Tag        Type                         Name/Value")
 
-            hexwidth = 8 if self.elffile.elfclass == 32 else 16
             padding = 20 + (8 if self.elffile.elfclass == 32 else 0)
             for tag in section.iter_tags():
                 if tag.entry.d_tag == 'DT_NEEDED':
@@ -306,6 +305,8 @@
                     parsed = 'Library rpath: [%s]' % tag.rpath
                 elif tag.entry.d_tag == 'DT_RUNPATH':
                     parsed = 'Library runpath: [%s]' % tag.runpath
+                elif tag.entry.d_tag == 'DT_SONAME':
+                    parsed = 'Library soname: [%s]' % tag.soname
                 elif (tag.entry.d_tag.endswith('SZ') or
                       tag.entry.d_tag.endswith('ENT')):
                     parsed = '%i (bytes)' % tag['d_val']
@@ -321,7 +322,7 @@
 
                 self._emitline(" %s %-*s %s" % (
                     self._format_hex(ENUM_D_TAG.get(tag.entry.d_tag, tag.entry.d_tag),
-                        fieldsize=hexwidth, lead0x=True),
+                        fullhex=True, lead0x=True),
                     padding,
                     '(%s)' % (tag.entry.d_tag[3:],),
                     parsed))