Merge "Merge upstream 0.165 SHA '203f0a3'"
diff --git a/.gitignore b/.gitignore
index a944762..75043fe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,8 @@
 /config/config.sub
 /config/depcomp
 /config/install-sh
+/config/libdw.pc
+/config/libelf.pc
 /config/missing
 /config/test-driver
 /config/ylwrap
@@ -55,6 +57,7 @@
 /src/addr2line
 /src/ar
 /src/elfcmp
+/src/elfcompress
 /src/elflint
 /src/findtextrel
 /src/ld
diff --git a/ChangeLog b/ChangeLog
index bbe0b8c..637bc13 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* configure.ac: Set version to 0.165.
+	* NEWS: Add 0.164 section.
+
+2016-01-04  Mark Wielaard  <mjw@redhat.com>
+
+	* configure.ac: Add BZ2_LIBS and LIBLZMA substitutions.
+	Add config/libelf.pc and config/libdw.pc config files.
+
+2015-12-31  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (AM_MAKEFLAGS): Set --no-print-directory.
+
 2015-10-16  Mark Wielaard  <mjw@redhat.com>
 
 	* configure.ac: Make zlib mandatory.
diff --git a/Makefile.am b/Makefile.am
index 1454d04..2ff444e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to create Makefile.in
 ## Configure input file for elfutils.
 ##
-## Copyright (C) 1996-2002, 2003, 2004, 2005, 2006, 2008, 2009 Red Hat, Inc.
+## Copyright (C) 1996-2006, 2008, 2009, 2015 Red Hat, Inc.
 ##
 ## This file is part of elfutils.
 ##
@@ -20,6 +20,10 @@
 ##
 ACLOCAL_AMFLAGS = -I m4
 
+# automake already tells which subdir is being entered.
+# Don't make make repeat.
+AM_MAKEFLAGS = --no-print-directory
+
 pkginclude_HEADERS = version.h
 
 # Add doc back when we have some real content.
diff --git a/NEWS b/NEWS
index 6416a72..53fe364 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,20 @@
+Version 0.165
+
+elfcompress: New utility to compress or decompress ELF sections.
+
+readelf: Add -z,--decompress option.
+
+libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, elf64_getchdr
+        and gelf_getchdr.
+
+libdwelf: New function dwelf_scn_gnu_compressed_size.
+
+config: Add libelf and libdw pkg-config files.
+
+backends: sparc support for core and live backtraces.
+
+translations: Updated Polish translation.
+
 Version 0.164
 
 strip, unstrip: Handle ELF files with merged strtab/shstrtab tables.
diff --git a/config.h b/config.h
index 07f2ff7..f5a11b3 100644
--- a/config.h
+++ b/config.h
@@ -41,7 +41,7 @@
 #define LIBEBL_SUBDIR "elfutils"
 
 /* Identifier for modules in the build. */
-#define MODVERSION "Build for elfutils 164 x86_64-unknown-linux-gnu"
+#define MODVERSION "Build for elfutils 165 x86_64-unknown-linux-gnu"
 
 /* Define to 32 or 64 if a specific implementation is wanted. */
 /* #undef NATIVE_ELF */
@@ -56,7 +56,7 @@
 #define PACKAGE_NAME "elfutils"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "elfutils 0.164"
+#define PACKAGE_STRING "elfutils 0.165"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "elfutils"
@@ -65,7 +65,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.164"
+#define PACKAGE_VERSION "0.165"
 
 /* The size of `long', as computed by sizeof. */
 #if __LP64__
@@ -93,7 +93,7 @@
 #define USE_ZLIB 1
 
 /* Version number of package */
-#define VERSION "0.164"
+#define VERSION "0.165"
 
 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
    `char[]'. */
diff --git a/config/ChangeLog b/config/ChangeLog
index 428162f..8e20f1e 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,17 @@
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* elfutils.spec.in: Add elfcompress. Update for 0.165.
+
+2016-01-04  Mark Wielaard  <mjw@redhat.com>
+
+	* libelf.pc.in: New file.
+	* libdw.pc.in: Likewise.
+	* Makefile.am (EXTRA_DIST): Add libelf.pc.in and libdw.pc.in.
+	(pkgconfigdir): New variable.
+	(pkgconfigdir_DATA): Likewise.
+	* elfutils.spec.in (files devel): Add libdw.pc.
+	(files libelf-devel): Add libelf.pc.
+
 2015-10-15  Mark Wielaard  <mjw@redhat.com>
 
 	* elfutils.spec.in: Update for 0.164.
diff --git a/config/Makefile.am b/config/Makefile.am
index 23f7b65..66012d0 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 ## Configure input file for elfutils.
 ##
-## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015 Red Hat, Inc.
+## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015, 2016 Red Hat, Inc.
 ## This file is part of elfutils.
 ##
 ## This file is free software; you can redistribute it and/or modify
@@ -29,6 +29,10 @@
 ## not, see <http://www.gnu.org/licenses/>.
 ##
 EXTRA_DIST = elfutils.spec.in known-dwarf.awk 10-default-yama-scope.conf
+	     libelf.pc.in libdw.pc.in
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libelf.pc libdw.pc
 
 if MAINTAINER_MODE
 $(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index b718f06..693c262 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -31,13 +31,15 @@
 %define _programprefix eu-
 
 %description
-Elfutils is a collection of utilities, including ld (a linker),
-nm (for listing symbols from object files), size (for listing the
-section sizes of an object or archive file), strip (for discarding
-symbols), readelf (to see the raw ELF file structures), and elflint
-(to check for well-formed ELF files).  Also included are numerous
-helper libraries which implement DWARF, ELF, and machine-specific ELF
-handling.
+
+Elfutils is a collection of utilities, including stack (to show
+backtraces), nm (for listing symbols from object files), size
+(for listing the section sizes of an object or archive file),
+strip (for discarding symbols), readelf (to see the raw ELF file
+structures), elflint (to check for well-formed ELF files) and
+elfcompress (to compress or decompress ELF sections).
+Also included are helper libraries which implement DWARF, ELF,
+and machine-specific ELF handling and process introspection.
 
 %package devel
 Summary: Development libraries to handle compiled objects.
@@ -175,6 +177,7 @@
 %{_bindir}/eu-unstrip
 %{_bindir}/eu-make-debug-archive
 #%{_bindir}/eu-ld
+%{_bindir}/eu-elfcompress
 %{_libdir}/libasm-%{version}.so
 %{_libdir}/libdw-%{version}.so
 %{_libdir}/libasm.so.*
@@ -197,6 +200,7 @@
 %{_libdir}/libebl.a
 #%{_libdir}/libasm.so
 %{_libdir}/libdw.so
+%{_libdir}/pkgconfig/libdw.pc
 
 %files devel-static
 %{_libdir}/libdw.a
@@ -215,6 +219,7 @@
 %{_includedir}/nlist.h
 %{_includedir}/elfutils/version.h
 %{_libdir}/libelf.so
+%{_libdir}/pkgconfig/libelf.pc
 
 %files libelf-devel-static
 %{_libdir}/libelf.a
@@ -223,6 +228,16 @@
 %config(noreplace) %{_sysctldir}/10-default-yama-scope.conf
 
 %changelog
+* Fri Jan  8 2016 Mark Wielaard <mjw@redhat.com> 0.165-1
+- elfcompress: New utility to compress or decompress ELF sections.
+- readelf: Add -z,--decompress option.
+- libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr,
+  elf64_getchdr and gelf_getchdr.
+- libdwelf: New function dwelf_scn_gnu_compressed_size.
+- config: Add libelf and libdw pkg-config files.
+- backends: sparc support for core and live backtraces.
+- translations: Updated Polish translation.
+
 * Thu Oct 15 2015 Mark Wielaard <mjw@redhat.com> 0.164-1
 - strip, unstrip: Handle ELF files with merged strtab/shstrtab
   tables. Handle missing SHF_INFO_LINK section flags.
diff --git a/config/libdw.pc.in b/config/libdw.pc.in
new file mode 100644
index 0000000..b7dc002
--- /dev/null
+++ b/config/libdw.pc.in
@@ -0,0 +1,22 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libdw
+Description: elfutils library for DWARF data and ELF file or process inspection
+Version: @VERSION@
+URL: https://fedorahosted.org/elfutils/
+
+Libs: -L${libdir} -ldw
+Cflags: -I${includedir}
+
+# We need the exact matching elfutils libelf version since internal data
+# structures are used.
+Requires: libelf = @VERSION@
+
+# We support various compressed ELF images, but don't export any of the
+# data structures or functions.  zlib (gz) is always required, bzip2 (bz2)
+# and lzma (xz) are optional.  But bzip2 doesn't have a pkg-config file.
+Requires.private: zlib @LIBLZMA@
+Libs.private: @BZ2_LIB@
diff --git a/config/libelf.pc.in b/config/libelf.pc.in
new file mode 100644
index 0000000..1fc7e4c
--- /dev/null
+++ b/config/libelf.pc.in
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libelf
+Description: elfutils libelf library to read and write ELF files
+Version: @VERSION@
+URL: https://fedorahosted.org/elfutils/
+
+Libs: -L${libdir} -lelf
+Cflags: -I${includedir}
+
+Requires.private: zlib
diff --git a/configure.ac b/configure.ac
index e010754..9a3301f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl Configure input file for elfutils.                     -*-autoconf-*-
 dnl
-dnl Copyright (C) 1996-2015 Red Hat, Inc.
+dnl Copyright (C) 1996-2016 Red Hat, Inc.
 dnl
 dnl This file is part of elfutils.
 dnl
@@ -17,12 +17,12 @@
 dnl
 dnl  You should have received a copy of the GNU General Public License
 dnl  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([elfutils],[0.164],[https://bugzilla.redhat.com/],[elfutils])
+AC_INIT([elfutils],[0.165],[https://bugzilla.redhat.com/],[elfutils])
 
 AC_CONFIG_AUX_DIR([config])
 AC_CONFIG_FILES([config/Makefile])
 
-AC_COPYRIGHT([Copyright (C) 1996-2015 Red Hat, Inc.])
+AC_COPYRIGHT([Copyright (C) 1996-2016 Red Hat, Inc.])
 AC_PREREQ(2.63)			dnl Minimum Autoconf version required.
 
 dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
@@ -244,7 +244,7 @@
 save_LIBS="$LIBS"
 LIBS=
 eu_ZIPLIB(zlib,ZLIB,z,gzdirect,gzip)
-AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR("zlib not found")])
+AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR([zlib not found but is required])])
 LIBS="$save_LIBS"
 
 dnl Test for bzlib and xz/lzma, gives BZLIB/LZMALIB .am
@@ -252,7 +252,12 @@
 save_LIBS="$LIBS"
 LIBS=
 eu_ZIPLIB(bzlib,BZLIB,bz2,BZ2_bzdopen,bzip2)
+# We need this since bzip2 doesn't have a pkgconfig file.
+BZ2_LIB="$LIBS"
+AC_SUBST([BZ2_LIB])
 eu_ZIPLIB(lzma,LZMA,lzma,lzma_auto_decoder,[LZMA (xz)])
+AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""])
+AC_SUBST([LIBLZMA])
 zip_LIBS="$LIBS"
 LIBS="$save_LIBS"
 AC_SUBST([zip_LIBS])
@@ -352,6 +357,9 @@
 AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see.
 AC_CONFIG_FILES([tests/Makefile])
 
+dnl pkgconfig files
+AC_CONFIG_FILES([config/libelf.pc config/libdw.pc])
+
 # Get the definitions necessary to create the Makefiles in the po
 # subdirectories.  This is a small subset of the gettext rules.
 AC_SUBST(USE_NLS, yes)
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index d0e97f3..fc80e8d 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,20 @@
+2015-12-18  Mark Wielaard  <mjw@redhat.com>
+
+	* libdwP.h (struct Dwarf): Remove sectiondata_gzip_mask.
+	(__libdw_free_zdata): Remove.
+	* dwarf_begin_elf.c (inflate_section): Remove.
+	(check_section): Remove __libdw_free_zdata calls. Use elf_compress
+	and elf_compress_gnu to decompress if necessary.
+	(valid_p): Remove __libdw_free_zdata calls.
+	(scngrp_read): Use elf_compress if section is compressed. Remove
+	__libdw_free_zdata calls.
+	* dwarf_end.c (__libdw_free_zdata): Remove.
+	(dwarf_end): Don't call __libdw_free_zdata.
+
+2015-10-28  Mark Wielaard  <mjw@redhat.com>
+
+	* libdw.map (ELFUTILS_0.165): New. Add dwelf_scn_gnu_compressed_size.
+
 2015-12-02  Mark Wielaard  <mjw@redhat.com>
 
 	* fde.c (intern_fde): Don't leak duplicate FDEs.
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
index 63532fd..6f25e42 100644
--- a/libdw/dwarf_begin_elf.c
+++ b/libdw/dwarf_begin_elf.c
@@ -44,13 +44,6 @@
 
 #include "libdwP.h"
 
-#if USE_ZLIB
-# include <endian.h>
-# define crc32		loser_crc32
-# include <zlib.h>
-# undef crc32
-#endif
-
 
 /* Section names.  */
 static const char dwarf_scnnames[IDX_last][18] =
@@ -71,70 +64,6 @@
 };
 #define ndwarf_scnnames (sizeof (dwarf_scnnames) / sizeof (dwarf_scnnames[0]))
 
-#if USE_ZLIB
-static Elf_Data *
-inflate_section (Elf_Data * data)
-{
-  /* There is a 12-byte header of "ZLIB" followed by
-     an 8-byte big-endian size.  */
-
-  if (unlikely (data->d_size < 4 + 8)
-      || unlikely (memcmp (data->d_buf, "ZLIB", 4) != 0))
-    return NULL;
-
-  uint64_t size;
-  memcpy (&size, data->d_buf + 4, sizeof size);
-  size = be64toh (size);
-
-  /* Check for unsigned overflow so malloc always allocated
-     enough memory for both the Elf_Data header and the
-     uncompressed section data.  */
-  if (unlikely (sizeof (Elf_Data) + size < size))
-    return NULL;
-
-  Elf_Data *zdata = malloc (sizeof (Elf_Data) + size);
-  if (unlikely (zdata == NULL))
-    return NULL;
-
-  zdata->d_buf = &zdata[1];
-  zdata->d_type = ELF_T_BYTE;
-  zdata->d_version = EV_CURRENT;
-  zdata->d_size = size;
-  zdata->d_off = 0;
-  zdata->d_align = 1;
-
-  z_stream z =
-    {
-      .next_in = data->d_buf + 4 + 8,
-      .avail_in = data->d_size - 4 - 8,
-      .next_out = zdata->d_buf,
-      .avail_out = zdata->d_size
-    };
-  int zrc = inflateInit (&z);
-  while (z.avail_in > 0 && likely (zrc == Z_OK))
-    {
-      z.next_out = zdata->d_buf + (zdata->d_size - z.avail_out);
-      zrc = inflate (&z, Z_FINISH);
-      if (unlikely (zrc != Z_STREAM_END))
-	{
-	  zrc = Z_DATA_ERROR;
-	  break;
-	}
-      zrc = inflateReset (&z);
-    }
-  if (likely (zrc == Z_OK))
-    zrc = inflateEnd (&z);
-
-  if (unlikely (zrc != Z_OK) || unlikely (z.avail_out != 0))
-    {
-      free (zdata);
-      return NULL;
-    }
-
-  return zdata;
-}
-#endif
-
 static Dwarf *
 check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp)
 {
@@ -173,7 +102,6 @@
       /* The section name must be valid.  Otherwise is the ELF file
 	 invalid.  */
     err:
-      __libdw_free_zdata (result);
       Dwarf_Sig8_Hash_free (&result->sig8_hash);
       __libdw_seterrno (DWARF_E_INVALID_ELF);
       free (result);
@@ -182,14 +110,14 @@
 
   /* Recognize the various sections.  Most names start with .debug_.  */
   size_t cnt;
-  bool compressed = false;
+  bool gnu_compressed = false;
   for (cnt = 0; cnt < ndwarf_scnnames; ++cnt)
     if (strcmp (scnname, dwarf_scnnames[cnt]) == 0)
       break;
     else if (scnname[0] == '.' && scnname[1] == 'z'
 	     && strcmp (&scnname[2], &dwarf_scnnames[cnt][1]) == 0)
       {
-        compressed = true;
+        gnu_compressed = true;
         break;
       }
 
@@ -201,40 +129,41 @@
     /* A section appears twice.  That's bad.  We ignore the section.  */
     return result;
 
+  /* We cannot know whether or not a GNU compressed section has already
+     been uncompressed or not, so ignore any errors.  */
+  if (gnu_compressed)
+    elf_compress_gnu (scn, 0, 0);
+
+  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+    {
+      if (elf_compress (scn, 0, 0) < 0)
+	{
+	  /* If we failed to decompress the section and it's the
+	     debug_info section, then fail with specific error rather
+	     than the generic NO_DWARF. Without debug_info we can't do
+	     anything (see also valid_p()). */
+	  if (cnt == IDX_debug_info)
+	    {
+	      Dwarf_Sig8_Hash_free (&result->sig8_hash);
+	      __libdw_seterrno (DWARF_E_COMPRESSED_ERROR);
+	      free (result);
+	      return NULL;
+	    }
+	  return result;
+	}
+    }
+
   /* Get the section data.  */
   Elf_Data *data = elf_getdata (scn, NULL);
-  if (data == NULL || data->d_size == 0)
+  if (data == NULL)
+    goto err;
+
+  if (data->d_buf == NULL || data->d_size == 0)
     /* No data actually available, ignore it. */
     return result;
 
   /* We can now read the section data into results. */
-  if (!compressed)
-    result->sectiondata[cnt] = data;
-  else
-    {
-      /* A compressed section. */
-
-#if USE_ZLIB
-      Elf_Data *inflated = inflate_section(data);
-      if (inflated != NULL)
-        {
-          result->sectiondata[cnt] = inflated;
-          result->sectiondata_gzip_mask |= 1U << cnt;
-        }
-#endif
-
-      /* If we failed to decompress the section and it's the debug_info section,
-       * then fail with specific error rather than the generic NO_DWARF. Without
-       * debug_info we can't do anything (see also valid_p()). */
-      if (result->sectiondata[cnt] == NULL && cnt == IDX_debug_info)
-        {
-          __libdw_free_zdata (result);
-          Dwarf_Sig8_Hash_free (&result->sig8_hash);
-          __libdw_seterrno (DWARF_E_COMPRESSED_ERROR);
-          free (result);
-          return NULL;
-        }
-    }
+  result->sectiondata[cnt] = data;
 
   return result;
 }
@@ -253,7 +182,6 @@
   if (likely (result != NULL)
       && unlikely (result->sectiondata[IDX_debug_info] == NULL))
     {
-      __libdw_free_zdata (result);
       Dwarf_Sig8_Hash_free (&result->sig8_hash);
       __libdw_seterrno (DWARF_E_NO_DWARF);
       free (result);
@@ -265,7 +193,6 @@
       result->fake_loc_cu = (Dwarf_CU *) calloc (1, sizeof (Dwarf_CU));
       if (unlikely (result->fake_loc_cu == NULL))
 	{
-	  __libdw_free_zdata (result);
 	  Dwarf_Sig8_Hash_free (&result->sig8_hash);
 	  __libdw_seterrno (DWARF_E_NOMEM);
 	  free (result);
@@ -301,13 +228,31 @@
 static Dwarf *
 scngrp_read (Dwarf *result, Elf *elf, GElf_Ehdr *ehdr, Elf_Scn *scngrp)
 {
+  GElf_Shdr shdr_mem;
+  GElf_Shdr *shdr = gelf_getshdr (scngrp, &shdr_mem);
+  if (shdr == NULL)
+    {
+      Dwarf_Sig8_Hash_free (&result->sig8_hash);
+      __libdw_seterrno (DWARF_E_INVALID_ELF);
+      free (result);
+      return NULL;
+    }
+
+  if ((shdr->sh_flags & SHF_COMPRESSED) != 0
+      && elf_compress (scngrp, 0, 0) < 0)
+    {
+      Dwarf_Sig8_Hash_free (&result->sig8_hash);
+      __libdw_seterrno (DWARF_E_COMPRESSED_ERROR);
+      free (result);
+      return NULL;
+    }
+
   /* SCNGRP is the section descriptor for a section group which might
      contain debug sections.  */
   Elf_Data *data = elf_getdata (scngrp, NULL);
   if (data == NULL)
     {
       /* We cannot read the section content.  Fail!  */
-      __libdw_free_zdata (result);
       Dwarf_Sig8_Hash_free (&result->sig8_hash);
       free (result);
       return NULL;
@@ -324,7 +269,6 @@
 	{
 	  /* A section group refers to a non-existing section.  Should
 	     never happen.  */
-	  __libdw_free_zdata (result);
 	  Dwarf_Sig8_Hash_free (&result->sig8_hash);
 	  __libdw_seterrno (DWARF_E_INVALID_ELF);
 	  free (result);
diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c
index 2108063..6c6d985 100644
--- a/libdw/dwarf_end.c
+++ b/libdw/dwarf_end.c
@@ -57,24 +57,6 @@
 }
 
 
-#if USE_ZLIB
-void
-internal_function
-__libdw_free_zdata (Dwarf *dwarf)
-{
-  unsigned int gzip_mask = dwarf->sectiondata_gzip_mask;
-  while (gzip_mask != 0)
-    {
-      int i = ffs (gzip_mask);
-      assert (i > 0);
-      --i;
-      assert (i < IDX_last);
-      free (dwarf->sectiondata[i]);
-      gzip_mask &= ~(1U << i);
-    }
-}
-#endif
-
 int
 dwarf_end (Dwarf *dwarf)
 {
@@ -110,8 +92,6 @@
       /* Free the pubnames helper structure.  */
       free (dwarf->pubnames_sets);
 
-      __libdw_free_zdata (dwarf);
-
       /* Free the ELF descriptor if necessary.  */
       if (dwarf->free_elf)
 	elf_end (dwarf->elf);
diff --git a/libdw/libdw.map b/libdw/libdw.map
index 1d4cbb0..1681b6b 100644
--- a/libdw/libdw.map
+++ b/libdw/libdw.map
@@ -322,3 +322,8 @@
     dwarf_macro_getparamcnt;
     dwarf_macro_param;
 } ELFUTILS_0.160;
+
+ELFUTILS_0.165 {
+  global:
+    dwelf_scn_gnu_compressed_size;
+} ELFUTILS_0.161;
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index 2d233f6..5d095a7 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -147,11 +147,6 @@
   /* The section data.  */
   Elf_Data *sectiondata[IDX_last];
 
-#if USE_ZLIB
-  /* The 1 << N bit is set if sectiondata[N] is malloc'd decompressed data.  */
-  unsigned int sectiondata_gzip_mask:IDX_last;
-#endif
-
   /* True if the file has a byte order different from the host.  */
   bool other_byte_order;
 
@@ -440,12 +435,6 @@
 /* Default OOM handler.  */
 extern void __libdw_oom (void) __attribute ((noreturn, visibility ("hidden")));
 
-#if USE_ZLIB
-extern void __libdw_free_zdata (Dwarf *dwarf) internal_function;
-#else
-# define __libdw_free_zdata(dwarf)	((void) (dwarf))
-#endif
-
 /* Allocate the internal data for a unit not seen before.  */
 extern struct Dwarf_CU *__libdw_intern_next_unit (Dwarf *dbg, bool debug_types)
      __nonnull_attribute__ (1) internal_function;
diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog
index f182ecf..fe8af1b 100644
--- a/libdwelf/ChangeLog
+++ b/libdwelf/ChangeLog
@@ -1,3 +1,10 @@
+2015-10-28  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (libdwelf_a_SOURCES): Add
+	dwelf_scn_gnu_compressed_size.c.
+	* dwelf_scn_gnu_compressed_size.c: Likewise.
+	* libdwelf.h (dwelf_scn_gnu_compressed_size): New declaration.
+
 2015-10-14  Chih-Hung Hsieh  <chh@google.com>
 
 	* dwelf_elf_gnu_build_id.c (find_elf_build_id): Move nested function
diff --git a/libdwelf/Makefile.am b/libdwelf/Makefile.am
index cd4b7dd..4de4b2e 100644
--- a/libdwelf/Makefile.am
+++ b/libdwelf/Makefile.am
@@ -2,7 +2,7 @@
 ##
 ## Process this file with automake to create Makefile.in
 ##
-## Copyright (C) 2014 Red Hat, Inc.
+## Copyright (C) 2014, 2015 Red Hat, Inc.
 ## This file is part of elfutils.
 ##
 ## This file is free software; you can redistribute it and/or modify
@@ -40,7 +40,7 @@
 noinst_HEADERS = libdwelfP.h
 
 libdwelf_a_SOURCES = dwelf_elf_gnu_debuglink.c dwelf_dwarf_gnu_debugaltlink.c \
-	dwelf_elf_gnu_build_id.c
+		     dwelf_elf_gnu_build_id.c dwelf_scn_gnu_compressed_size.c
 
 libdwelf = $(libdw)
 
diff --git a/libdwelf/dwelf_scn_gnu_compressed_size.c b/libdwelf/dwelf_scn_gnu_compressed_size.c
new file mode 100644
index 0000000..d39b702
--- /dev/null
+++ b/libdwelf/dwelf_scn_gnu_compressed_size.c
@@ -0,0 +1,77 @@
+/* Return size of GNU compressed section.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libdwelfP.h"
+#include "libelfP.h"
+
+ssize_t
+dwelf_scn_gnu_compressed_size (Elf_Scn *scn)
+{
+  if (scn == NULL)
+    return -1;
+
+  GElf_Shdr shdr;
+  if (gelf_getshdr (scn, &shdr) == NULL)
+    return -1;
+
+  /* Allocated or no bits sections can never be compressed.  */
+  if ((shdr.sh_flags & SHF_ALLOC) != 0
+      || shdr.sh_type == SHT_NULL
+      || shdr.sh_type == SHT_NOBITS)
+    return -1;
+
+  Elf_Data *d = elf_rawdata (scn, NULL);
+  if (d == NULL)
+    return -1;
+
+  if (d->d_size >= 4 + 8
+      && memcmp (d->d_buf, "ZLIB", 4) == 0)
+    {
+      /* There is a 12-byte header of "ZLIB" followed by
+	 an 8-byte big-endian size.  There is only one type and
+	 alignment isn't preserved separately.  */
+      uint64_t size;
+      memcpy (&size, d->d_buf + 4, sizeof size);
+      size = be64toh (size);
+
+      /* One more sanity check, size should be bigger than original
+	 data size plus some overhead (4 chars ZLIB + 8 bytes size + 6
+	 bytes zlib stream overhead + 5 bytes overhead max for one 16K
+	 block) and should fit into a size_t.  */
+      if (size + 4 + 8 + 6 + 5 < d->d_size || size > SIZE_MAX)
+	return -1;
+
+      return size;
+    }
+
+  return -1;
+}
diff --git a/libdwelf/libdwelf.h b/libdwelf/libdwelf.h
index e16dc0f..7f7f679 100644
--- a/libdwelf/libdwelf.h
+++ b/libdwelf/libdwelf.h
@@ -1,5 +1,5 @@
 /* Interfaces for libdwelf. DWARF ELF Low-level Functions.
-   Copyright (C) 2014 Red Hat, Inc.
+   Copyright (C) 2014, 2015 Red Hat, Inc.
    This file is part of elfutils.
 
    This file is free software; you can redistribute it and/or modify
@@ -65,6 +65,13 @@
    note.  Returns -1 in case of malformed data or other errors.  */
 extern ssize_t dwelf_elf_gnu_build_id (Elf *elf, const void **build_idp);
 
+/* Returns the size of the uncompressed data of a GNU compressed
+   section.  The section name should start with .zdebug (but this
+   isn't checked by this function).  If the section isn't compressed
+   (the section data doesn't start with ZLIB) -1 is returned. If an
+   error occured -1 is returned and elf_errno is set.  */
+extern ssize_t dwelf_scn_gnu_compressed_size (Elf_Scn *scn);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 06b8469..94c58d9 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,22 @@
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* libdwfl_a_SOURCES: Unconditionally add gzip.c.
+	* linux-kernel-modules.c (vmlinux_suffixes): We always have at least
+	.gz support.
+	(try_kernel_name): Likewise.
+	(check_suffix): Likewise.
+	* open.c (decompress): Likewise.
+
+2015-12-18  Mark Wielaard  <mjw@redhat.com>
+
+	* dwfl_module_getdwarf.c (find_symtab): Uncompress symstr, xndx, sym
+	sections and aux_str, aux_xndx and aux_sym sections if necessary.
+	* relocate.c (relocate_getsym): Uncompress symtab and symtab_shndx
+	if necessary.
+	(resolve_symbol): Uncompress strtab section if necessary.
+	(relocate_section): Uncompress the section the relocations apply to
+	if necessary.
+
 2015-11-18  Chih-Hung Hsieh <chh@google.com>
 
 	* linux-proc-maps.c (proc_maps_report): Move nested function
diff --git a/libdwfl/Makefile.am b/libdwfl/Makefile.am
index 72c980b..89ca92e 100644
--- a/libdwfl/Makefile.am
+++ b/libdwfl/Makefile.am
@@ -68,11 +68,9 @@
 		    dwfl_segment_report_module.c \
 		    link_map.c core-file.c open.c image-header.c \
 		    dwfl_frame.c frame_unwind.c dwfl_frame_pc.c \
-		    linux-pid-attach.c linux-core-attach.c dwfl_frame_regs.c
+		    linux-pid-attach.c linux-core-attach.c dwfl_frame_regs.c \
+		    gzip.c
 
-if ZLIB
-libdwfl_a_SOURCES += gzip.c
-endif
 if BZLIB
 libdwfl_a_SOURCES += bzip2.c
 endif
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
index e9589b3..0e8810b 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -1130,10 +1130,39 @@
       goto aux_cleanup; /* This cleans up some more and tries find_dynsym.  */
     }
 
-  /* Cache the data; MOD->syments and MOD->first_global were set above.  */
+  /* Cache the data; MOD->syments and MOD->first_global were set
+     above.  If any of the sections is compressed, uncompress it
+     first.  Only the string data setion could theoretically be
+     compressed GNU style (as .zdebug_str).  Everything else only ELF
+     gabi style (SHF_COMPRESSED).  */
 
-  mod->symstrdata = elf_getdata (elf_getscn (mod->symfile->elf, strshndx),
-				 NULL);
+  Elf_Scn *symstrscn = elf_getscn (mod->symfile->elf, strshndx);
+  if (symstrscn == NULL)
+    goto elferr;
+
+  GElf_Shdr shdr_mem;
+  GElf_Shdr *shdr = gelf_getshdr (symstrscn, &shdr_mem);
+  if (shdr == NULL)
+    goto elferr;
+
+  size_t shstrndx;
+  if (elf_getshdrstrndx (mod->symfile->elf, &shstrndx) < 0)
+    goto elferr;
+
+  const char *sname = elf_strptr (mod->symfile->elf, shstrndx, shdr->sh_name);
+  if (sname == NULL)
+    goto elferr;
+
+  if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0)
+    /* Try to uncompress, but it might already have been, an error
+       might just indicate, already uncompressed.  */
+    elf_compress_gnu (symstrscn, 0, 0);
+
+  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+    if (elf_compress (symstrscn, 0, 0) < 0)
+      goto elferr;
+
+  mod->symstrdata = elf_getdata (symstrscn, NULL);
   if (mod->symstrdata == NULL || mod->symstrdata->d_buf == NULL)
     goto elferr;
 
@@ -1141,17 +1170,33 @@
     mod->symxndxdata = NULL;
   else
     {
+      shdr = gelf_getshdr (xndxscn, &shdr_mem);
+      if (shdr == NULL)
+	goto elferr;
+
+      if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	if (elf_compress (xndxscn, 0, 0) < 0)
+	  goto elferr;
+
       mod->symxndxdata = elf_getdata (xndxscn, NULL);
       if (mod->symxndxdata == NULL || mod->symxndxdata->d_buf == NULL)
 	goto elferr;
     }
 
+  shdr = gelf_getshdr (symscn, &shdr_mem);
+  if (shdr == NULL)
+    goto elferr;
+
+  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+    if (elf_compress (symscn, 0, 0) < 0)
+      goto elferr;
+
   mod->symdata = elf_getdata (symscn, NULL);
   if (mod->symdata == NULL || mod->symdata->d_buf == NULL)
     goto elferr;
 
   // Sanity check number of symbols.
-  GElf_Shdr shdr_mem, *shdr = gelf_getshdr (symscn, &shdr_mem);
+  shdr = gelf_getshdr (symscn, &shdr_mem);
   if (shdr == NULL || shdr->sh_entsize == 0
       || mod->syments > mod->symdata->d_size / shdr->sh_entsize
       || (size_t) mod->first_global > mod->syments)
@@ -1174,9 +1219,33 @@
 	  return;
 	}
 
-      mod->aux_symstrdata = elf_getdata (elf_getscn (mod->aux_sym.elf,
-						     aux_strshndx),
-					 NULL);
+      Elf_Scn *aux_strscn = elf_getscn (mod->aux_sym.elf, aux_strshndx);
+      if (aux_strscn == NULL)
+	goto elferr;
+
+      shdr = gelf_getshdr (aux_strscn, &shdr_mem);
+      if (shdr == NULL)
+	goto elferr;
+
+      size_t aux_shstrndx;
+      if (elf_getshdrstrndx (mod->aux_sym.elf, &aux_shstrndx) < 0)
+	goto elferr;
+
+      sname = elf_strptr (mod->aux_sym.elf, aux_shstrndx,
+				      shdr->sh_name);
+      if (sname == NULL)
+	goto elferr;
+
+      if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0)
+	/* Try to uncompress, but it might already have been, an error
+	   might just indicate, already uncompressed.  */
+	elf_compress_gnu (aux_strscn, 0, 0);
+
+      if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	if (elf_compress (aux_strscn, 0, 0) < 0)
+	  goto elferr;
+
+      mod->aux_symstrdata = elf_getdata (aux_strscn, NULL);
       if (mod->aux_symstrdata == NULL || mod->aux_symstrdata->d_buf == NULL)
 	goto aux_cleanup;
 
@@ -1184,12 +1253,28 @@
 	mod->aux_symxndxdata = NULL;
       else
 	{
+	  shdr = gelf_getshdr (aux_xndxscn, &shdr_mem);
+	  if (shdr == NULL)
+	    goto elferr;
+
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    if (elf_compress (aux_xndxscn, 0, 0) < 0)
+	      goto elferr;
+
 	  mod->aux_symxndxdata = elf_getdata (aux_xndxscn, NULL);
 	  if (mod->aux_symxndxdata == NULL
 	      || mod->aux_symxndxdata->d_buf == NULL)
 	    goto aux_cleanup;
 	}
 
+      shdr = gelf_getshdr (aux_symscn, &shdr_mem);
+      if (shdr == NULL)
+	goto elferr;
+
+      if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	if (elf_compress (aux_symscn, 0, 0) < 0)
+	  goto elferr;
+
       mod->aux_symdata = elf_getdata (aux_symscn, NULL);
       if (mod->aux_symdata == NULL || mod->aux_symdata->d_buf == NULL)
 	goto aux_cleanup;
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
index d8020fc..e27f74f 100644
--- a/libdwfl/linux-kernel-modules.c
+++ b/libdwfl/linux-kernel-modules.c
@@ -65,12 +65,9 @@
 #define MODULE_SECT_NAME_LEN 32	/* Minimum any linux/module.h has had.  */
 
 
-#if defined (USE_ZLIB) || defined (USE_BZLIB) || defined (USE_LZMA)
 static const char *vmlinux_suffixes[] =
   {
-#ifdef USE_ZLIB
     ".gz",
-#endif
 #ifdef USE_BZLIB
     ".bz2",
 #endif
@@ -78,7 +75,6 @@
     ".xz",
 #endif
   };
-#endif
 
 /* Try to open the given file as it is or under the debuginfo directory.  */
 static int
@@ -115,7 +111,6 @@
 	}
     }
 
-#if defined (USE_ZLIB) || defined (USE_BZLIB) || defined (USE_LZMA)
   if (fd < 0)
     for (size_t i = 0;
 	 i < sizeof vmlinux_suffixes / sizeof vmlinux_suffixes[0];
@@ -134,7 +129,6 @@
 	      }
 	  }
       }
-#endif
 
   if (fd < 0)
     {
@@ -304,9 +298,7 @@
     return sizeof sfx - 1
 
   TRY (".ko");
-#if USE_ZLIB
   TRY (".ko.gz");
-#endif
 #if USE_BZLIB
   TRY (".ko.bz2");
 #endif
diff --git a/libdwfl/open.c b/libdwfl/open.c
index c1d0ed2..92f2798 100644
--- a/libdwfl/open.c
+++ b/libdwfl/open.c
@@ -1,5 +1,5 @@
-/* Decompression support for libdwfl: zlib (gzip) and/or bzlib (bzip2).
-   Copyright (C) 2009 Red Hat, Inc.
+/* Decompression support for libdwfl: zlib (gzip), bzlib (bzip2) or lzma (xz).
+   Copyright (C) 2009, 2016 Red Hat, Inc.
    This file is part of elfutils.
 
    This file is free software; you can redistribute it and/or modify
@@ -32,10 +32,6 @@
 
 #include <unistd.h>
 
-#if !USE_ZLIB
-# define __libdw_gunzip(...)	DWFL_E_BADELF
-#endif
-
 #if !USE_BZLIB
 # define __libdw_bunzip2(...)	DWFL_E_BADELF
 #endif
@@ -52,7 +48,6 @@
   void *buffer = NULL;
   size_t size = 0;
 
-#if USE_ZLIB || USE_BZLIB || USE_LZMA
   const off_t offset = (*elf)->start_offset;
   void *const mapped = ((*elf)->map_address == NULL ? NULL
 			: (*elf)->map_address + offset);
@@ -65,7 +60,6 @@
     error = __libdw_bunzip2 (fd, offset, mapped, mapped_size, &buffer, &size);
   if (error == DWFL_E_BADELF)
     error = __libdw_unlzma (fd, offset, mapped, mapped_size, &buffer, &size);
-#endif
 
   if (error == DWFL_E_NOERROR)
     {
diff --git a/libdwfl/relocate.c b/libdwfl/relocate.c
index 2dc6737..fc88df3 100644
--- a/libdwfl/relocate.c
+++ b/libdwfl/relocate.c
@@ -123,23 +123,32 @@
 	    {
 	      GElf_Shdr shdr_mem, *shdr = gelf_getshdr (scn, &shdr_mem);
 	      if (shdr != NULL)
-		switch (shdr->sh_type)
-		  {
-		  default:
-		    continue;
-		  case SHT_SYMTAB:
-		    cache->symelf = relocated;
-		    cache->symdata = elf_getdata (scn, NULL);
-		    cache->strtabndx = shdr->sh_link;
-		    if (unlikely (cache->symdata == NULL))
+		{
+		  /* We need uncompressed data.  */
+		  if ((shdr->sh_type == SHT_SYMTAB
+		       || shdr->sh_type == SHT_SYMTAB_SHNDX)
+		      && (shdr->sh_flags & SHF_COMPRESSED) != 0)
+		    if (elf_compress (scn, 0, 0) < 0)
 		      return DWFL_E_LIBELF;
-		    break;
-		  case SHT_SYMTAB_SHNDX:
-		    cache->symxndxdata = elf_getdata (scn, NULL);
-		    if (unlikely (cache->symxndxdata == NULL))
-		      return DWFL_E_LIBELF;
-		    break;
-		  }
+
+		  switch (shdr->sh_type)
+		    {
+		    default:
+		      continue;
+		    case SHT_SYMTAB:
+		      cache->symelf = relocated;
+		      cache->symdata = elf_getdata (scn, NULL);
+		      cache->strtabndx = shdr->sh_link;
+		      if (unlikely (cache->symdata == NULL))
+			return DWFL_E_LIBELF;
+		      break;
+		    case SHT_SYMTAB_SHNDX:
+		      cache->symxndxdata = elf_getdata (scn, NULL);
+		      if (unlikely (cache->symxndxdata == NULL))
+			return DWFL_E_LIBELF;
+		      break;
+		    }
+		}
 	      if (cache->symdata != NULL && cache->symxndxdata != NULL)
 		break;
 	    }
@@ -203,9 +212,34 @@
 	  /* Cache the strtab for this symtab.  */
 	  assert (referer->symfile == NULL
 		  || referer->symfile->elf != symtab->symelf);
-	  symtab->symstrdata = elf_getdata (elf_getscn (symtab->symelf,
-							symtab->strtabndx),
-					    NULL);
+
+	  Elf_Scn *scn = elf_getscn (symtab->symelf, symtab->strtabndx);
+	  if (scn == NULL)
+	    return DWFL_E_LIBELF;
+
+	  GElf_Shdr shdr_mem;
+	  GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+	  if (shdr == NULL)
+	    return DWFL_E_LIBELF;
+
+	  if (symtab->symshstrndx == SHN_UNDEF
+	      && elf_getshdrstrndx (symtab->symelf, &symtab->symshstrndx) < 0)
+	    return DWFL_E_LIBELF;
+
+	  const char *sname = elf_strptr (symtab->symelf, symtab->symshstrndx,
+					  shdr->sh_name);
+	  if (sname == NULL)
+	    return DWFL_E_LIBELF;
+
+	  /* If the section is already decompressed, that isn't an error.  */
+	  if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0)
+	    elf_compress_gnu (scn, 0, 0);
+
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    if (elf_compress (scn, 0, 0) < 0)
+	      return DWFL_E_LIBELF;
+
+	  symtab->symstrdata = elf_getdata (scn, NULL);
 	  if (unlikely (symtab->symstrdata == NULL
 			|| symtab->symstrdata->d_buf == NULL))
 	    return DWFL_E_LIBELF;
@@ -446,22 +480,56 @@
 		  Elf_Scn *scn, GElf_Shdr *shdr,
 		  Elf_Scn *tscn, bool debugscn, bool partial)
 {
-  /* First, fetch the name of the section these relocations apply to.  */
+  /* First, fetch the name of the section these relocations apply to.
+     Then try to decompress both relocation and target section.  */
   GElf_Shdr tshdr_mem;
   GElf_Shdr *tshdr = gelf_getshdr (tscn, &tshdr_mem);
+  if (tshdr == NULL)
+    return DWFL_E_LIBELF;
+
   const char *tname = elf_strptr (relocated, shstrndx, tshdr->sh_name);
   if (tname == NULL)
     return DWFL_E_LIBELF;
 
-  if (unlikely (tshdr->sh_type == SHT_NOBITS) || unlikely (tshdr->sh_size == 0))
-    /* No contents to relocate.  */
-    return DWFL_E_NOERROR;
-
   if (debugscn && ! ebl_debugscn_p (mod->ebl, tname))
     /* This relocation section is not for a debugging section.
        Nothing to do here.  */
     return DWFL_E_NOERROR;
 
+  if (strncmp (tname, ".zdebug", strlen ("zdebug")) == 0)
+    elf_compress_gnu (tscn, 0, 0);
+
+  if ((tshdr->sh_flags & SHF_COMPRESSED) != 0)
+    if (elf_compress (tscn, 0, 0) < 0)
+      return DWFL_E_LIBELF;
+
+  /* Reload Shdr in case section was just decompressed.  */
+  tshdr = gelf_getshdr (tscn, &tshdr_mem);
+  if (tshdr == NULL)
+    return DWFL_E_LIBELF;
+
+  if (unlikely (tshdr->sh_type == SHT_NOBITS)
+      || unlikely (tshdr->sh_size == 0))
+    /* No contents to relocate.  */
+    return DWFL_E_NOERROR;
+
+  const char *sname = elf_strptr (relocated, shstrndx, shdr->sh_name);
+  if (sname == NULL)
+    return DWFL_E_LIBELF;
+
+  if (strncmp (sname, ".zdebug", strlen ("zdebug")) == 0)
+    elf_compress_gnu (scn, 0, 0);
+
+  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+    if (elf_compress (scn, 0, 0) < 0)
+      return DWFL_E_LIBELF;
+
+  /* Reload Shdr in case section was just decompressed.  */
+  GElf_Shdr shdr_mem;
+  shdr = gelf_getshdr (scn, &shdr_mem);
+  if (shdr == NULL)
+    return DWFL_E_LIBELF;
+
   /* Fetch the section data that needs the relocations applied.  */
   Elf_Data *tdata = elf_rawdata (tscn, NULL);
   if (tdata == NULL)
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index a1a1022..aa3d686 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,12 @@
+2016-01-09  Mark Wielaard  <mjw@redhat.com>
+
+	* eblobjnote.c (ebl_object_note): Add brackets around if statement
+	body.
+
+2015-12-18  Mark Wielaard  <mjw@redhat.com>
+
+	* eblopenbackend.c (default_debugscn_p): Also match .zdebug sections.
+
 2015-12-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
 	* libebl.h: Prototype for ebl_ra_offset.
diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c
index fa1eb93..f80a1a5 100644
--- a/libebl/eblobjnote.c
+++ b/libebl/eblobjnote.c
@@ -1,5 +1,5 @@
 /* Print contents of object file note.
-   Copyright (C) 2002, 2007, 2009, 2011, 2015 Red Hat, Inc.
+   Copyright (C) 2002, 2007, 2009, 2011, 2015, 2016 Red Hat, Inc.
    This file is part of elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -43,189 +43,191 @@
 		 uint32_t descsz, const char *desc)
 {
   if (! ebl->object_note (name, type, descsz, desc))
-    /* The machine specific function did not know this type.  */
+    {
+      /* The machine specific function did not know this type.  */
 
-    if (strcmp ("stapsdt", name) == 0)
-      {
-	if (type != 3)
-	  {
-	    printf (gettext ("unknown SDT version %u\n"), type);
-	    return;
-	  }
-
-	/* Descriptor starts with three addresses, pc, base ref and
-	   semaphore.  Then three zero terminated strings provider,
-	   name and arguments.  */
-
-	union
+      if (strcmp ("stapsdt", name) == 0)
 	{
-	  Elf64_Addr a64[3];
-	  Elf32_Addr a32[3];
-	} addrs;
+	  if (type != 3)
+	    {
+	      printf (gettext ("unknown SDT version %u\n"), type);
+	      return;
+	    }
 
-	size_t addrs_size = gelf_fsize (ebl->elf, ELF_T_ADDR, 3, EV_CURRENT);
-	if (descsz < addrs_size + 3)
+	  /* Descriptor starts with three addresses, pc, base ref and
+	     semaphore.  Then three zero terminated strings provider,
+	     name and arguments.  */
+
+	  union
 	  {
-	  invalid_sdt:
-	    printf (gettext ("invalid SDT probe descriptor\n"));
-	    return;
-	  }
+	    Elf64_Addr a64[3];
+	    Elf32_Addr a32[3];
+	  } addrs;
 
-	Elf_Data src =
-	  {
-	    .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
-	    .d_buf = (void *) desc, .d_size = addrs_size
-	  };
+	  size_t addrs_size = gelf_fsize (ebl->elf, ELF_T_ADDR, 3, EV_CURRENT);
+	  if (descsz < addrs_size + 3)
+	    {
+	    invalid_sdt:
+	      printf (gettext ("invalid SDT probe descriptor\n"));
+	      return;
+	    }
 
-	Elf_Data dst =
-	  {
-	    .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
-	    .d_buf = &addrs, .d_size = addrs_size
-	  };
+	  Elf_Data src =
+	    {
+	      .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
+	      .d_buf = (void *) desc, .d_size = addrs_size
+	    };
 
-	if (gelf_xlatetom (ebl->elf, &dst, &src,
-			   elf_getident (ebl->elf, NULL)[EI_DATA]) == NULL)
-	  {
-	    printf ("%s\n", elf_errmsg (-1));
-	    return;
-	  }
+	  Elf_Data dst =
+	    {
+	      .d_type = ELF_T_ADDR, .d_version = EV_CURRENT,
+	      .d_buf = &addrs, .d_size = addrs_size
+	    };
 
-	const char *provider = desc + addrs_size;
-	const char *pname = memchr (provider, '\0', desc + descsz - provider);
-	if (pname == NULL)
-	  goto invalid_sdt;
+	  if (gelf_xlatetom (ebl->elf, &dst, &src,
+			     elf_getident (ebl->elf, NULL)[EI_DATA]) == NULL)
+	    {
+	      printf ("%s\n", elf_errmsg (-1));
+	      return;
+	    }
 
-	++pname;
-	const char *args = memchr (pname, '\0', desc + descsz - pname);
-	if (args == NULL ||
-	    memchr (++args, '\0', desc + descsz - pname) != desc + descsz - 1)
-	  goto invalid_sdt;
+	  const char *provider = desc + addrs_size;
+	  const char *pname = memchr (provider, '\0', desc + descsz - provider);
+	  if (pname == NULL)
+	    goto invalid_sdt;
 
-	GElf_Addr pc;
-	GElf_Addr base;
-	GElf_Addr sem;
-	if (gelf_getclass (ebl->elf) == ELFCLASS32)
-	  {
-	    pc = addrs.a32[0];
-	    base = addrs.a32[1];
-	    sem = addrs.a32[2];
-	  }
-	else
-	  {
-	    pc = addrs.a64[0];
-	    base = addrs.a64[1];
-	    sem = addrs.a64[2];
-	  }
+	  ++pname;
+	  const char *args = memchr (pname, '\0', desc + descsz - pname);
+	  if (args == NULL ||
+	      memchr (++args, '\0', desc + descsz - pname) != desc + descsz - 1)
+	    goto invalid_sdt;
 
-	printf (gettext ("    PC: "));
-	printf ("%#" PRIx64 ",", pc);
-	printf (gettext (" Base: "));
-	printf ("%#" PRIx64 ",", base);
-	printf (gettext (" Semaphore: "));
-	printf ("%#" PRIx64 "\n", sem);
-	printf (gettext ("    Provider: "));
-	printf ("%s,", provider);
-	printf (gettext (" Name: "));
-	printf ("%s,", pname);
-	printf (gettext (" Args: "));
-	printf ("'%s'\n", args);
-	return;
-      }
+	  GElf_Addr pc;
+	  GElf_Addr base;
+	  GElf_Addr sem;
+	  if (gelf_getclass (ebl->elf) == ELFCLASS32)
+	    {
+	      pc = addrs.a32[0];
+	      base = addrs.a32[1];
+	      sem = addrs.a32[2];
+	    }
+	  else
+	    {
+	      pc = addrs.a64[0];
+	      base = addrs.a64[1];
+	      sem = addrs.a64[2];
+	    }
 
-    switch (type)
-      {
-      case NT_GNU_BUILD_ID:
-	if (strcmp (name, "GNU") == 0 && descsz > 0)
-	  {
-	    printf (gettext ("    Build ID: "));
-	    uint_fast32_t i;
-	    for (i = 0; i < descsz - 1; ++i)
-	      printf ("%02" PRIx8, (uint8_t) desc[i]);
-	    printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
-	  }
-	break;
+	  printf (gettext ("    PC: "));
+	  printf ("%#" PRIx64 ",", pc);
+	  printf (gettext (" Base: "));
+	  printf ("%#" PRIx64 ",", base);
+	  printf (gettext (" Semaphore: "));
+	  printf ("%#" PRIx64 "\n", sem);
+	  printf (gettext ("    Provider: "));
+	  printf ("%s,", provider);
+	  printf (gettext (" Name: "));
+	  printf ("%s,", pname);
+	  printf (gettext (" Args: "));
+	  printf ("'%s'\n", args);
+	  return;
+	}
 
-      case NT_GNU_GOLD_VERSION:
-	if (strcmp (name, "GNU") == 0 && descsz > 0)
-	  /* A non-null terminated version string.  */
-	  printf (gettext ("    Linker version: %.*s\n"),
-		  (int) descsz, desc);
-	break;
+      switch (type)
+	{
+	case NT_GNU_BUILD_ID:
+	  if (strcmp (name, "GNU") == 0 && descsz > 0)
+	    {
+	      printf (gettext ("    Build ID: "));
+	      uint_fast32_t i;
+	      for (i = 0; i < descsz - 1; ++i)
+		printf ("%02" PRIx8, (uint8_t) desc[i]);
+	      printf ("%02" PRIx8 "\n", (uint8_t) desc[i]);
+	    }
+	  break;
 
-      case NT_GNU_ABI_TAG:
-	if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0)
-	  {
-	    Elf_Data in =
-	      {
-		.d_version = EV_CURRENT,
-		.d_type = ELF_T_WORD,
-		.d_size = descsz,
-		.d_buf = (void *) desc
-	      };
-	    /* Normally NT_GNU_ABI_TAG is just 4 words (16 bytes).  If it
-	       is much (4*) larger dynamically allocate memory to convert.  */
+	case NT_GNU_GOLD_VERSION:
+	  if (strcmp (name, "GNU") == 0 && descsz > 0)
+	    /* A non-null terminated version string.  */
+	    printf (gettext ("    Linker version: %.*s\n"),
+		    (int) descsz, desc);
+	  break;
+
+	case NT_GNU_ABI_TAG:
+	  if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0)
+	    {
+	      Elf_Data in =
+		{
+		  .d_version = EV_CURRENT,
+		  .d_type = ELF_T_WORD,
+		  .d_size = descsz,
+		  .d_buf = (void *) desc
+		};
+	      /* Normally NT_GNU_ABI_TAG is just 4 words (16 bytes).  If it
+		 is much (4*) larger dynamically allocate memory to convert.  */
 #define FIXED_TAG_BYTES 16
-	    uint32_t sbuf[FIXED_TAG_BYTES];
-	    uint32_t *buf;
-	    if (unlikely (descsz / 4 > FIXED_TAG_BYTES))
-	      {
-	        buf = malloc (descsz);
-		if (unlikely (buf == NULL))
-		  return;
-	      }
-	    else
-	      buf = sbuf;
-	    Elf_Data out =
-	      {
-		.d_version = EV_CURRENT,
-		.d_type = ELF_T_WORD,
-		.d_size = descsz,
-		.d_buf = buf
-	      };
+	      uint32_t sbuf[FIXED_TAG_BYTES];
+	      uint32_t *buf;
+	      if (unlikely (descsz / 4 > FIXED_TAG_BYTES))
+		{
+		  buf = malloc (descsz);
+		  if (unlikely (buf == NULL))
+		    return;
+		}
+	      else
+		buf = sbuf;
+	      Elf_Data out =
+		{
+		  .d_version = EV_CURRENT,
+		  .d_type = ELF_T_WORD,
+		  .d_size = descsz,
+		  .d_buf = buf
+		};
 
-	    if (elf32_xlatetom (&out, &in, ebl->data) != NULL)
-	      {
-		const char *os;
-		switch (buf[0])
-		  {
-		  case ELF_NOTE_OS_LINUX:
-		    os = "Linux";
-		    break;
+	      if (elf32_xlatetom (&out, &in, ebl->data) != NULL)
+		{
+		  const char *os;
+		  switch (buf[0])
+		    {
+		    case ELF_NOTE_OS_LINUX:
+		      os = "Linux";
+		      break;
 
-		  case ELF_NOTE_OS_GNU:
-		    os = "GNU";
-		    break;
+		    case ELF_NOTE_OS_GNU:
+		      os = "GNU";
+		      break;
 
-		  case ELF_NOTE_OS_SOLARIS2:
-		    os = "Solaris";
-		    break;
+		    case ELF_NOTE_OS_SOLARIS2:
+		      os = "Solaris";
+		      break;
 
-		  case ELF_NOTE_OS_FREEBSD:
-		    os = "FreeBSD";
-		    break;
+		    case ELF_NOTE_OS_FREEBSD:
+		      os = "FreeBSD";
+		      break;
 
-		  default:
-		    os = "???";
-		    break;
-		  }
+		    default:
+		      os = "???";
+		      break;
+		    }
 
-		printf (gettext ("    OS: %s, ABI: "), os);
-		for (size_t cnt = 1; cnt < descsz / 4; ++cnt)
-		  {
-		    if (cnt > 1)
-		      putchar_unlocked ('.');
-		    printf ("%" PRIu32, buf[cnt]);
-		  }
-		putchar_unlocked ('\n');
-	      }
-	    if (descsz / 4 > FIXED_TAG_BYTES)
-	      free (buf);
-	    break;
-	  }
-	/* FALLTHROUGH */
+		  printf (gettext ("    OS: %s, ABI: "), os);
+		  for (size_t cnt = 1; cnt < descsz / 4; ++cnt)
+		    {
+		      if (cnt > 1)
+			putchar_unlocked ('.');
+		      printf ("%" PRIu32, buf[cnt]);
+		    }
+		  putchar_unlocked ('\n');
+		}
+	      if (descsz / 4 > FIXED_TAG_BYTES)
+		free (buf);
+	      break;
+	    }
+	  /* FALLTHROUGH */
 
-      default:
-	/* Unknown type.  */
-	break;
-      }
+	default:
+	  /* Unknown type.  */
+	  break;
+	}
+    }
 }
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index b301400..372ef2a 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -662,7 +662,9 @@
   const size_t ndwarf_scn_names = (sizeof (dwarf_scn_names)
 				   / sizeof (dwarf_scn_names[0]));
   for (size_t cnt = 0; cnt < ndwarf_scn_names; ++cnt)
-    if (strcmp (name, dwarf_scn_names[cnt]) == 0)
+    if (strcmp (name, dwarf_scn_names[cnt]) == 0
+	|| (strncmp (name, ".zdebug", strlen (".zdebug")) == 0
+	    && strcmp (&name[2], &dwarf_scn_names[cnt][1]) == 0))
       return true;
 
   return false;
diff --git a/libelf/Android.mk b/libelf/Android.mk
index 1c0195c..53d47be 100755
--- a/libelf/Android.mk
+++ b/libelf/Android.mk
@@ -17,6 +17,7 @@
 LIBELF_SRC_FILES := \
 	elf32_checksum.c \
 	elf32_fsize.c \
+	elf32_getchdr.c \
 	elf32_getehdr.c \
 	elf32_getphdr.c \
 	elf32_getshdr.c \
@@ -29,6 +30,7 @@
 	elf32_xlatetom.c \
 	elf64_checksum.c \
 	elf64_fsize.c \
+	elf64_getchdr.c \
 	elf64_getehdr.c \
 	elf64_getphdr.c \
 	elf64_getshdr.c \
@@ -42,6 +44,7 @@
 	elf_begin.c \
 	elf_clone.c \
 	elf_cntl.c \
+	elf_compress.c \
 	elf_end.c \
 	elf_error.c \
 	elf_fill.c \
@@ -82,6 +85,7 @@
 	gelf_checksum.c \
 	gelf_fsize.c \
 	gelf_getauxv.c \
+	gelf_getchdr.c \
 	gelf_getclass.c \
 	gelf_getdyn.c \
 	gelf_getehdr.c \
@@ -148,6 +152,8 @@
 
 LOCAL_MODULE := libelf
 
+LOCAL_STATIC_LIBRARIES := libz
+
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
 
 include $(BUILD_HOST_STATIC_LIBRARY)
@@ -171,6 +177,8 @@
 
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup
 
+LOCAL_STATIC_LIBRARIES := libz
+
 LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
 
 # to suppress the "pointer of type ‘void *’ used in arithmetic" warning
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index fbe8e3a..afe6a6a 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,83 @@
+2016-01-22  Chih-Hung Hsieh <chh@google.com>
+
+	* elf_compress.c (__libelf_compress): Move nested function
+	'do_deflate_cleanup' to file scope to compile with clang.
+	* elf_strptr.c (elf_strptr): Move nested function 'get_zdata'
+	to file scope to compile with clang.
+
+2016-01-13  Mark Wielaard  <mjw@redhat.com>
+
+	* libelf.h: Check SHF_COMPRESSED is defined. If not define it and the
+	associated ELF compression types/defines.
+
+2015-11-26  Mark Wielaard  <mjw@redhat.com>
+
+	* elf_compress.c (__libelf_decompress_elf): New function, extracted
+	from...
+	(elf_compress): here. Check zdata_base use __libelf_decompress_elf.
+	* elf_strptr.c (elf_strptr): If SHF_COMPRESSED check, uncompress and
+	use zdata.
+	* libelfP.h (struct Elf_Scn): Add zdata_size and zdata_align.
+	(__libelf_decompress_elf): New internal function definition.
+
+2015-10-21  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (libelf_a_SOURCES): Add elf_compress.c and
+	elf_compress_gnu.c.
+	* elf_compress.c: New file.
+	* elf_compress_gnu.c: Likewise.
+	* elf_begin.c (file_read_elf): Make a writable copy of the shdrs
+	for ELF_C_READ_MMAP.
+	* elf_end.c (elf_end): Free zdata_base.
+	* elf_error.c: Add ELF_E_ALREADY_COMPRESSED,
+	ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
+	ELF_E_DECOMPRESS_ERROR.
+	* elf_data.c (__libelf_data_type): New internal function extracted
+	from convert_data.
+	(convert_data): Handle SHF_COMPRESSED.
+	* elf32_updatenull.c (updatenull_wrlock): Check sh_entsize against
+	uncompressed section data size if SHF_COMPRESSED.
+	* elf32_getshdr.c (load_shdr_wrlock): Adjust assert to account for
+	ELF_C_READ_MMAP.
+	* libelf.h: Define elf_compress and elf_compress_gnu.
+	* libelf.map (ELFUTILS_1.7): Add elf_compress and elf_compress_gnu.
+	* libelfP.h: Add ELF_E_ALREADY_COMPRESSED,
+	ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
+	ELF_E_DECOMPRESS_ERROR. Define __libelf_data_type.
+	(__libelf_compress): New internal function definition.
+	(__libelf_decompress): Likewise.
+	(__libelf_reset_rawdata): Likewise.
+	(__libelf_data_type): Likewise.
+	(struct Elf_Scn): Add zdata_base.
+
+2015-11-19  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c,
+	elf64_getchdr.c and gelf_getchdr.c.
+	(noinst_HEADERS): Add chdr_xlate.h.
+	* abstract.h: Define Chdr32 and Chdr64.
+	* chdr_xlate.h: New file.
+	* elf32_getchdr.c: New file.
+	* elf64_getchdr.c: New file.
+	* elf_error.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
+	and ELF_E_INVALID_SECTION_FLAGS.
+	* elf_getdata.c (__libelf_set_rawdata_wrlock): Set d_type to
+	ELF_T_CHDR for SHF_COMPRESSED sections.
+	* exttypes.h: Add Chdr32 and Chdr64.
+	* gelf.h (GElf_Chdr): New typedef.
+	(gelf_getchdr): New function definition.
+	* gelf_fsize.c (__libelf_type_sizes): Add ELF_T_CHDR.
+	* gelf_getchdr.c: New file.
+	* gelf_xlate.c (__elf_xfctstom): Add ELF_T_CHDR cvt_chdr.
+	* gelf_xlate.h: Add Chdr.
+	* libelf.h (Elf_Type): Add ELF_T_CHDR.
+	(elf32_getchdr): New function definition.
+	(elf64_getchdr): Likewise.
+	* libelf.map (ELFUTILS_1.7): New sections add elf32_getchdr,
+	elf64_getchdr and gelf_getchdr.
+	* libelfP.h: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
+	and ELF_E_INVALID_SECTION_FLAGS.
+
 2015-10-16  Mark Wielaard  <mjw@redhat.com>
 
 	* Makefile.am (libelf_so_LDLIBS): Add -lz.
diff --git a/libelf/Makefile.am b/libelf/Makefile.am
index 4a4131c..167a832 100644
--- a/libelf/Makefile.am
+++ b/libelf/Makefile.am
@@ -1,6 +1,6 @@
 ## Process this file with automake to create Makefile.in
 ##
-## Copyright (C) 1996-2010 Red Hat, Inc.
+## Copyright (C) 1996-2010, 2015 Red Hat, Inc.
 ## This file is part of elfutils.
 ##
 ## This file is free software; you can redistribute it and/or modify
@@ -88,7 +88,9 @@
 		   elf32_offscn.c elf64_offscn.c gelf_offscn.c \
 		   elf_getaroff.c \
 		   elf_gnu_hash.c \
-		   elf_scnshndx.c
+		   elf_scnshndx.c \
+		   elf32_getchdr.c elf64_getchdr.c gelf_getchdr.c \
+		   elf_compress.c elf_compress_gnu.c
 
 libelf_pic_a_SOURCES =
 am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
@@ -118,7 +120,8 @@
 	rm -f $(DESTDIR)$(libdir)/libelf.so
 
 noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
-		 version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h
+		 version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \
+		 chdr_xlate.h
 EXTRA_DIST = libelf.map
 
 CLEANFILES += $(am_libelf_pic_a_OBJECTS) libelf.so.$(VERSION)
diff --git a/libelf/abstract.h b/libelf/abstract.h
index 53713ee..d4515f2 100644
--- a/libelf/abstract.h
+++ b/libelf/abstract.h
@@ -1,5 +1,5 @@
 /* Abstract description of component ELF types.
-   Copyright (C) 1998, 1999, 2000, 2002, 2004, 2007 Red Hat, Inc.
+   Copyright (C) 1998, 1999, 2000, 2002, 2004, 2007, 2015 Red Hat, Inc.
    This file is part of elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 1998.
 
@@ -310,3 +310,21 @@
   TYPE_XLATE (Elf64_cvt_Addr1 (&tdest->a_un.a_val, &tsrc->a_un.a_val);)	      \
   TYPE_EXTRA (} a_un;)							      \
 END (64, Ext##auxv_t)
+
+/* Note that there is actual compression data right after the Chdr.
+   So we also have a separate conversion function for the whole
+   section.  */
+#define Chdr32(Ext) \
+START (32, Chdr, Ext##Chdr)						\
+  TYPE_NAME (ElfW2(32, Ext##Word), ch_type)				\
+  TYPE_NAME (ElfW2(32, Ext##Word), ch_size)				\
+  TYPE_NAME (ElfW2(32, Ext##Word), ch_addralign)			\
+END (32, Ext##Chdr)
+
+#define Chdr64(Ext) \
+START (64, Chdr, Ext##Chdr)						\
+  TYPE_NAME (ElfW2(64, Ext##Word), ch_type)				\
+  TYPE_NAME (ElfW2(64, Ext##Word), ch_reserved)				\
+  TYPE_NAME (ElfW2(64, Ext##Xword), ch_size)				\
+  TYPE_NAME (ElfW2(64, Ext##Xword), ch_addralign)			\
+END (64, Ext##Chdr)
diff --git a/libelf/chdr_xlate.h b/libelf/chdr_xlate.h
new file mode 100644
index 0000000..70782b4
--- /dev/null
+++ b/libelf/chdr_xlate.h
@@ -0,0 +1,33 @@
+#include "common.h"
+
+/* These functions convert a while section, one Chdr plus compression data.  */
+
+static void
+Elf32_cvt_chdr (void *dest, const void *src, size_t len, int encode)
+{
+  if (len == 0)
+    return;
+
+  /* Move everything over, if necessary, we only need to xlate the
+     header, not the compressed data following it.  */
+  if (dest != src)
+    memmove (dest, src, len);
+
+  if (len >= sizeof (Elf32_Chdr))
+    Elf32_cvt_Chdr (dest, src, sizeof (Elf32_Chdr), encode);
+}
+
+static void
+Elf64_cvt_chdr (void *dest, const void *src, size_t len, int encode)
+{
+  if (len == 0)
+    return;
+
+  /* Move everything over, if necessary, we only need to xlate the
+     header, not the compressed data following it.  */
+  if (dest != src)
+    memmove (dest, src, len);
+
+  if (len >= sizeof (Elf64_Chdr))
+    Elf64_cvt_Chdr (dest, src, sizeof (Elf64_Chdr), encode);
+}
diff --git a/libelf/elf32_getchdr.c b/libelf/elf32_getchdr.c
new file mode 100644
index 0000000..982a614
--- /dev/null
+++ b/libelf/elf32_getchdr.c
@@ -0,0 +1,83 @@
+/* Return section compression header.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libelf.h>
+#include "libelfP.h"
+#include "common.h"
+
+#ifndef LIBELFBITS
+# define LIBELFBITS 32
+#endif
+
+
+ElfW2(LIBELFBITS,Chdr) *
+elfw2(LIBELFBITS,getchdr) (Elf_Scn *scn)
+{
+  ElfW2(LIBELFBITS,Shdr) *shdr = elfw2(LIBELFBITS,getshdr) (scn);
+  if (shdr == NULL)
+    return NULL;
+
+  /* Must have SHF_COMPRESSED flag set.  Allocated or no bits sections
+     can never be compressed.  */
+  if ((shdr->sh_flags & SHF_ALLOC) != 0)
+    {
+      __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS);
+      return NULL;
+    }
+
+  if (shdr->sh_type == SHT_NULL
+      || shdr->sh_type == SHT_NOBITS)
+    {
+      __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE);
+      return NULL;
+    }
+
+  if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
+    {
+      __libelf_seterrno (ELF_E_NOT_COMPRESSED);
+      return NULL;
+    }
+
+  /* This makes sure the data is in the correct format, so we don't
+     need to swap fields. */
+  Elf_Data *d  = elf_getdata (scn, NULL);
+  if (d == NULL)
+    return NULL;
+
+  if (d->d_size < sizeof (ElfW2(LIBELFBITS,Chdr)) || d->d_buf == NULL)
+    {
+      __libelf_seterrno (ELF_E_INVALID_DATA);
+      return NULL;
+    }
+
+  return (ElfW2(LIBELFBITS,Chdr) *) d->d_buf;
+}
diff --git a/libelf/elf32_getshdr.c b/libelf/elf32_getshdr.c
index 3a6375c..237d912 100644
--- a/libelf/elf32_getshdr.c
+++ b/libelf/elf32_getshdr.c
@@ -99,6 +99,7 @@
 
       assert ((elf->flags & ELF_F_MALLOCED)
 	      || ehdr->e_ident[EI_DATA] != MY_ELFDATA
+	      || elf->cmd == ELF_C_READ_MMAP
 	      || (! ALLOW_UNALIGNED
 		  && ((uintptr_t) file_shdr
 		      & (__alignof__ (ElfW2(LIBELFBITS,Shdr)) - 1)) != 0));
@@ -106,7 +107,9 @@
       /* Now copy the data and at the same time convert the byte order.  */
       if (ehdr->e_ident[EI_DATA] == MY_ELFDATA)
 	{
-	  assert ((elf->flags & ELF_F_MALLOCED) || ! ALLOW_UNALIGNED);
+	  assert ((elf->flags & ELF_F_MALLOCED)
+		  || elf->cmd == ELF_C_READ_MMAP
+		  || ! ALLOW_UNALIGNED);
 	  memcpy (shdr, file_shdr, size);
 	}
       else
diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c
index d3754d3..03de032 100644
--- a/libelf/elf32_updatenull.c
+++ b/libelf/elf32_updatenull.c
@@ -382,12 +382,27 @@
 
 	      /* Check that the section size is actually a multiple of
 		 the entry size.  */
-	      if (shdr->sh_entsize != 0
-		  && unlikely (shdr->sh_size % shdr->sh_entsize != 0)
+	      if (shdr->sh_entsize != 0 && shdr->sh_entsize != 1
 		  && (elf->flags & ELF_F_PERMISSIVE) == 0)
 		{
-		  __libelf_seterrno (ELF_E_INVALID_SHENTSIZE);
-		  return -1;
+		  /* For compressed sections check the uncompressed size.  */
+		  ElfW2(LIBELFBITS,Word) sh_size;
+		  if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
+		    sh_size = shdr->sh_size;
+		  else
+		    {
+		      ElfW2(LIBELFBITS,Chdr) *chdr;
+		      chdr = elfw2(LIBELFBITS,getchdr) (scn);
+		      if (unlikely (chdr == NULL))
+			return -1;
+		      sh_size = chdr->ch_size;
+		    }
+
+		  if (unlikely (sh_size % shdr->sh_entsize != 0))
+		    {
+		      __libelf_seterrno (ELF_E_INVALID_SHENTSIZE);
+		      return -1;
+		    }
 		}
 	    }
 
diff --git a/libelf/elf64_getchdr.c b/libelf/elf64_getchdr.c
new file mode 100644
index 0000000..6588b79
--- /dev/null
+++ b/libelf/elf64_getchdr.c
@@ -0,0 +1,30 @@
+/* Return section compression header.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#define LIBELFBITS 64
+#include "elf32_getchdr.c"
diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
index d2920c4..147f5f4 100644
--- a/libelf/elf_begin.c
+++ b/libelf/elf_begin.c
@@ -340,6 +340,7 @@
 
       Elf32_Off e_shoff = elf->state.elf32.ehdr->e_shoff;
       if (map_address != NULL && e_ident[EI_DATA] == MY_ELFDATA
+	  && cmd != ELF_C_READ_MMAP /* We need a copy to be able to write.  */
 	  && (ALLOW_UNALIGNED
 	      || (((uintptr_t) ((char *) ehdr + e_shoff)
 		   & (__alignof__ (Elf32_Shdr) - 1)) == 0)))
@@ -441,6 +442,7 @@
 
       Elf64_Off e_shoff = elf->state.elf64.ehdr->e_shoff;
       if (map_address != NULL && e_ident[EI_DATA] == MY_ELFDATA
+	  && cmd != ELF_C_READ_MMAP /* We need a copy to be able to write.  */
 	  && (ALLOW_UNALIGNED
 	      || (((uintptr_t) ((char *) ehdr + e_shoff)
 		   & (__alignof__ (Elf64_Shdr) - 1)) == 0)))
diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c
new file mode 100644
index 0000000..4c7c35e
--- /dev/null
+++ b/libelf/elf_compress.c
@@ -0,0 +1,516 @@
+/* Compress or decompress a section.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libelf.h>
+#include "libelfP.h"
+#include "common.h"
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+#include <unistd.h>
+#include <zlib.h>
+
+#ifndef MAX
+# define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+
+/* Cleanup and return result.  Don't leak memory.  */
+static void *
+do_deflate_cleanup (void *result, z_stream *z, void *out_buf,
+                    int ei_data, Elf_Data *cdatap)
+{
+  deflateEnd (z);
+  free (out_buf);
+  if (ei_data != MY_ELFDATA)
+    free (cdatap->d_buf);
+  return result;
+}
+
+#define deflate_cleanup(result) \
+    do_deflate_cleanup(result, &z, out_buf, ei_data, &cdata)
+
+/* Given a section, uses the (in-memory) Elf_Data to extract the
+   original data size (including the given header size) and data
+   alignment.  Returns a buffer that has at least hsize bytes (for the
+   caller to fill in with a header) plus zlib compressed date.  Also
+   returns the new buffer size in new_size (hsize + compressed data
+   size).  Returns (void *) -1 when FORCE is false and the compressed
+   data would be bigger than the original data.  */
+void *
+internal_function
+__libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
+		   size_t *orig_size, size_t *orig_addralign,
+		   size_t *new_size, bool force)
+{
+  /* The compressed data is the on-disk data.  We simplify the
+     implementation a bit by asking for the (converted) in-memory
+     data (which might be all there is if the user created it with
+     elf_newdata) and then convert back to raw if needed before
+     compressing.  Should be made a bit more clever to directly
+     use raw if that is directly available.  */
+  Elf_Data *data = elf_getdata (scn, NULL);
+  if (data == NULL)
+    return NULL;
+
+  /* When not forced and we immediately know we would use more data by
+     compressing, because of the header plus zlib overhead (five bytes
+     per 16 KB block, plus a one-time overhead of six bytes for the
+     entire stream), don't do anything.  */
+  Elf_Data *next_data = elf_getdata (scn, data);
+  if (next_data == NULL && !force
+      && data->d_size <= hsize + 5 + 6)
+    return (void *) -1;
+
+  *orig_addralign = data->d_align;
+  *orig_size = data->d_size;
+
+  /* Guess an output block size. 1/8th of the original Elf_Data plus
+     hsize.  Make the first chunk twice that size (25%), then increase
+     by a block (12.5%) when necessary.  */
+  size_t block = (data->d_size / 8) + hsize;
+  size_t out_size = 2 * block;
+  void *out_buf = malloc (out_size);
+  if (out_buf == NULL)
+    {
+      __libelf_seterrno (ELF_E_NOMEM);
+      return NULL;
+    }
+
+  /* Caller gets to fill in the header at the start.  Just skip it here.  */
+  size_t used = hsize;
+
+  z_stream z;
+  z.zalloc = Z_NULL;
+  z.zfree = Z_NULL;
+  z.opaque = Z_NULL;
+  int zrc = deflateInit (&z, Z_BEST_COMPRESSION);
+  if (zrc != Z_OK)
+    {
+      __libelf_seterrno (ELF_E_COMPRESS_ERROR);
+      return NULL;
+    }
+
+  Elf_Data cdata;
+  cdata.d_buf = NULL;
+
+  /* Loop over data buffers.  */
+  int flush = Z_NO_FLUSH;
+  do
+    {
+      /* Convert to raw if different endianess.  */
+      cdata = *data;
+      if (ei_data != MY_ELFDATA)
+	{
+	  /* Don't do this conversion in place, we might want to keep
+	     the original data around, caller decides.  */
+	  cdata.d_buf = malloc (data->d_size);
+	  if (cdata.d_buf == NULL)
+	    {
+	      __libelf_seterrno (ELF_E_NOMEM);
+	      return deflate_cleanup (NULL);
+	    }
+	  if (gelf_xlatetof (scn->elf, &cdata, data, ei_data) == NULL)
+	    return deflate_cleanup (NULL);
+	}
+
+      z.avail_in = cdata.d_size;
+      z.next_in = cdata.d_buf;
+
+      /* Get next buffer to see if this is the last one.  */
+      data = next_data;
+      if (data != NULL)
+	{
+	  *orig_addralign = MAX (*orig_addralign, data->d_align);
+	  *orig_size += data->d_size;
+	  next_data = elf_getdata (scn, data);
+	}
+      else
+	flush = Z_FINISH;
+
+      /* Flush one data buffer.  */
+      do
+	{
+	  z.avail_out = out_size - used;
+	  z.next_out = out_buf + used;
+	  zrc = deflate (&z, flush);
+	  if (zrc == Z_STREAM_ERROR)
+	    {
+	      __libelf_seterrno (ELF_E_COMPRESS_ERROR);
+	      return deflate_cleanup (NULL);
+	    }
+	  used += (out_size - used) - z.avail_out;
+
+	  /* Bail out if we are sure the user doesn't want the
+	     compression forced and we are using more compressed data
+	     than original data.  */
+	  if (!force && flush == Z_FINISH && used >= *orig_size)
+	    return deflate_cleanup ((void *) -1);
+
+	  if (z.avail_out == 0)
+	    {
+	      void *bigger = realloc (out_buf, out_size + block);
+	      if (bigger == NULL)
+		{
+		  __libelf_seterrno (ELF_E_NOMEM);
+		  return deflate_cleanup (NULL);
+		}
+	      out_buf = bigger;
+	      out_size += block;
+	    }
+	}
+      while (z.avail_out == 0); /* Need more output buffer.  */
+
+      if (ei_data != MY_ELFDATA)
+	{
+	  free (cdata.d_buf);
+	  cdata.d_buf = NULL;
+	}
+    }
+  while (flush != Z_FINISH); /* More data blocks.  */
+
+  zrc = deflateEnd (&z);
+  if (zrc != Z_OK)
+    {
+      __libelf_seterrno (ELF_E_COMPRESS_ERROR);
+      return deflate_cleanup (NULL);
+    }
+
+  *new_size = used;
+  return out_buf;
+}
+
+void *
+internal_function
+__libelf_decompress (void *buf_in, size_t size_in, size_t size_out)
+{
+  void *buf_out = malloc (size_out);
+  if (unlikely (buf_out == NULL))
+    {
+      __libelf_seterrno (ELF_E_NOMEM);
+      return NULL;
+    }
+
+  z_stream z =
+    {
+      .next_in = buf_in,
+      .avail_in = size_in,
+      .next_out = buf_out,
+      .avail_out = size_out
+    };
+  int zrc = inflateInit (&z);
+  while (z.avail_in > 0 && likely (zrc == Z_OK))
+    {
+      z.next_out = buf_out + (size_out - z.avail_out);
+      zrc = inflate (&z, Z_FINISH);
+      if (unlikely (zrc != Z_STREAM_END))
+	{
+	  zrc = Z_DATA_ERROR;
+	  break;
+	}
+      zrc = inflateReset (&z);
+    }
+  if (likely (zrc == Z_OK))
+    zrc = inflateEnd (&z);
+
+  if (unlikely (zrc != Z_OK) || unlikely (z.avail_out != 0))
+    {
+      free (buf_out);
+      __libelf_seterrno (ELF_E_DECOMPRESS_ERROR);
+      return NULL;
+    }
+
+  return buf_out;
+}
+
+void *
+internal_function
+__libelf_decompress_elf (Elf_Scn *scn, size_t *size_out, size_t *addralign)
+{
+  GElf_Chdr chdr;
+  if (gelf_getchdr (scn, &chdr) == NULL)
+    return NULL;
+
+  if (chdr.ch_type != ELFCOMPRESS_ZLIB)
+    {
+      __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE);
+      return NULL;
+    }
+
+  if (! powerof2 (chdr.ch_addralign))
+    {
+      __libelf_seterrno (ELF_E_INVALID_ALIGN);
+      return NULL;
+    }
+
+  /* Take the in-memory representation, so we can even handle a
+     section that has just been constructed (maybe it was copied
+     over from some other ELF file first with elf_newdata).  This
+     is slightly inefficient when the raw data needs to be
+     converted since then we'll be converting the whole buffer and
+     not just Chdr.  */
+  Elf_Data *data = elf_getdata (scn, NULL);
+  if (data == NULL)
+    return NULL;
+
+  int elfclass = scn->elf->class;
+  size_t hsize = (elfclass == ELFCLASS32
+		  ? sizeof (Elf32_Chdr) : sizeof (Elf64_Chdr));
+  size_t size_in = data->d_size - hsize;
+  void *buf_in = data->d_buf + hsize;
+  void *buf_out = __libelf_decompress (buf_in, size_in, chdr.ch_size);
+  *size_out = chdr.ch_size;
+  *addralign = chdr.ch_addralign;
+  return buf_out;
+}
+
+void
+internal_function
+__libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align,
+			Elf_Type type)
+{
+  /* This is the new raw data, replace and possibly free old data.  */
+  scn->rawdata.d.d_off = 0;
+  scn->rawdata.d.d_version = __libelf_version;
+  scn->rawdata.d.d_buf = buf;
+  scn->rawdata.d.d_size = size;
+  scn->rawdata.d.d_align = align;
+  scn->rawdata.d.d_type = type;
+
+  /* Existing existing data is no longer valid.  */
+  scn->data_list_rear = NULL;
+  if (scn->data_base != scn->rawdata_base)
+    free (scn->data_base);
+  scn->data_base = NULL;
+  if (scn->elf->map_address == NULL
+      || scn->rawdata_base == scn->zdata_base)
+    free (scn->rawdata_base);
+
+  scn->rawdata_base = buf;
+}
+
+int
+elf_compress (Elf_Scn *scn, int type, unsigned int flags)
+{
+  if (scn == NULL)
+    return -1;
+
+  if ((flags & ~ELF_CHF_FORCE) != 0)
+    {
+      __libelf_seterrno (ELF_E_INVALID_OPERAND);
+      return -1;
+    }
+
+  bool force = (flags & ELF_CHF_FORCE) != 0;
+
+  Elf *elf = scn->elf;
+  GElf_Ehdr ehdr;
+  if (gelf_getehdr (elf, &ehdr) == NULL)
+    return -1;
+
+  int elfclass = elf->class;
+  int elfdata = ehdr.e_ident[EI_DATA];
+
+  Elf64_Xword sh_flags;
+  Elf64_Word sh_type;
+  Elf64_Xword sh_addralign;
+  if (elfclass == ELFCLASS32)
+    {
+      Elf32_Shdr *shdr = elf32_getshdr (scn);
+      if (shdr == NULL)
+	return -1;
+
+      sh_flags = shdr->sh_flags;
+      sh_type = shdr->sh_type;
+      sh_addralign = shdr->sh_addralign;
+    }
+  else
+    {
+      Elf64_Shdr *shdr = elf64_getshdr (scn);
+      if (shdr == NULL)
+	return -1;
+
+      sh_flags = shdr->sh_flags;
+      sh_type = shdr->sh_type;
+      sh_addralign = shdr->sh_addralign;
+    }
+
+  if ((sh_flags & SHF_ALLOC) != 0)
+    {
+      __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS);
+      return -1;
+    }
+
+  if (sh_type == SHT_NULL || sh_type == SHT_NOBITS)
+    {
+      __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE);
+      return -1;
+    }
+
+  int compressed = (sh_flags & SHF_COMPRESSED);
+  if (type == ELFCOMPRESS_ZLIB)
+    {
+      /* Compress/Deflate.  */
+      if (compressed == 1)
+	{
+	  __libelf_seterrno (ELF_E_ALREADY_COMPRESSED);
+	  return -1;
+	}
+
+      size_t hsize = (elfclass == ELFCLASS32
+		      ? sizeof (Elf32_Chdr) : sizeof (Elf64_Chdr));
+      size_t orig_size, orig_addralign, new_size;
+      void *out_buf = __libelf_compress (scn, hsize, elfdata,
+					 &orig_size, &orig_addralign,
+					 &new_size, force);
+
+      /* Compression would make section larger, don't change anything.  */
+      if (out_buf == (void *) -1)
+	return 0;
+
+      /* Compression failed, return error.  */
+      if (out_buf == NULL)
+	return -1;
+
+      /* Put the header in front of the data.  */
+      if (elfclass == ELFCLASS32)
+	{
+	  Elf32_Chdr chdr;
+	  chdr.ch_type = ELFCOMPRESS_ZLIB;
+	  chdr.ch_size = orig_size;
+	  chdr.ch_addralign = orig_addralign;
+	  if (elfdata != MY_ELFDATA)
+	    {
+	      CONVERT (chdr.ch_type);
+	      CONVERT (chdr.ch_size);
+	      CONVERT (chdr.ch_addralign);
+	    }
+	  memcpy (out_buf, &chdr, sizeof (Elf32_Chdr));
+	}
+      else
+	{
+	  Elf64_Chdr chdr;
+	  chdr.ch_type = ELFCOMPRESS_ZLIB;
+	  chdr.ch_reserved = 0;
+	  chdr.ch_size = orig_size;
+	  chdr.ch_addralign = sh_addralign;
+	  if (elfdata != MY_ELFDATA)
+	    {
+	      CONVERT (chdr.ch_type);
+	      CONVERT (chdr.ch_reserved);
+	      CONVERT (chdr.ch_size);
+	      CONVERT (chdr.ch_addralign);
+	    }
+	  memcpy (out_buf, &chdr, sizeof (Elf64_Chdr));
+	}
+
+      /* Note we keep the sh_entsize as is, we assume it is setup
+	 correctly and ignored when SHF_COMPRESSED is set.  */
+      if (elfclass == ELFCLASS32)
+	{
+	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+	  shdr->sh_size = new_size;
+	  shdr->sh_addralign = 1;
+	  shdr->sh_flags |= SHF_COMPRESSED;
+	}
+      else
+	{
+	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+	  shdr->sh_size = new_size;
+	  shdr->sh_addralign = 1;
+	  shdr->sh_flags |= SHF_COMPRESSED;
+	}
+
+      __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_CHDR);
+
+      /* The section is now compressed, we could keep the uncompressed
+	 data around, but since that might have been multiple Elf_Data
+	 buffers let the user uncompress it explicitly again if they
+	 want it to simplify bookkeeping.  */
+      scn->zdata_base = NULL;
+
+      return 1;
+    }
+  else if (type == 0)
+    {
+      /* Decompress/Inflate.  */
+      if (compressed == 0)
+	{
+	  __libelf_seterrno (ELF_E_NOT_COMPRESSED);
+	  return -1;
+	}
+
+      /* If the data is already decompressed (by elf_strptr), then we
+	 only need to setup the rawdata and section header. XXX what
+	 about elf_newdata?  */
+      if (scn->zdata_base == NULL)
+	{
+	  size_t size_out, addralign;
+	  void *buf_out = __libelf_decompress_elf (scn, &size_out, &addralign);
+	  if (buf_out == NULL)
+	    return -1;
+
+	  scn->zdata_base = buf_out;
+	  scn->zdata_size = size_out;
+	  scn->zdata_align = addralign;
+	}
+
+      /* Note we keep the sh_entsize as is, we assume it is setup
+	 correctly and ignored when SHF_COMPRESSED is set.  */
+      if (elfclass == ELFCLASS32)
+	{
+	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+	  shdr->sh_size = scn->zdata_size;
+	  shdr->sh_addralign = scn->zdata_align;
+	  shdr->sh_flags &= ~SHF_COMPRESSED;
+	}
+      else
+	{
+	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+	  shdr->sh_size = scn->zdata_size;
+	  shdr->sh_addralign = scn->zdata_align;
+	  shdr->sh_flags &= ~SHF_COMPRESSED;
+	}
+
+      __libelf_reset_rawdata (scn, scn->zdata_base,
+			      scn->zdata_size, scn->zdata_align,
+			      __libelf_data_type (elf, sh_type));
+
+      return 1;
+    }
+  else
+    {
+      __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE);
+      return -1;
+    }
+}
diff --git a/libelf/elf_compress_gnu.c b/libelf/elf_compress_gnu.c
new file mode 100644
index 0000000..c35dc39
--- /dev/null
+++ b/libelf/elf_compress_gnu.c
@@ -0,0 +1,208 @@
+/* Compress or decompress a section.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libelf.h>
+#include "libelfP.h"
+#include "common.h"
+
+int
+elf_compress_gnu (Elf_Scn *scn, int inflate, unsigned int flags)
+{
+  if (scn == NULL)
+    return -1;
+
+  if ((flags & ~ELF_CHF_FORCE) != 0)
+    {
+      __libelf_seterrno (ELF_E_INVALID_OPERAND);
+      return -1;
+    }
+
+  bool force = (flags & ELF_CHF_FORCE) != 0;
+
+  Elf *elf = scn->elf;
+  GElf_Ehdr ehdr;
+  if (gelf_getehdr (elf, &ehdr) == NULL)
+    return -1;
+
+  int elfclass = elf->class;
+  int elfdata = ehdr.e_ident[EI_DATA];
+
+  Elf64_Xword sh_flags;
+  Elf64_Word sh_type;
+  Elf64_Xword sh_addralign;
+  if (elfclass == ELFCLASS32)
+    {
+      Elf32_Shdr *shdr = elf32_getshdr (scn);
+      if (shdr == NULL)
+	return -1;
+
+      sh_flags = shdr->sh_flags;
+      sh_type = shdr->sh_type;
+      sh_addralign = shdr->sh_addralign;
+    }
+  else
+    {
+      Elf64_Shdr *shdr = elf64_getshdr (scn);
+      if (shdr == NULL)
+	return -1;
+
+      sh_flags = shdr->sh_flags;
+      sh_type = shdr->sh_type;
+      sh_addralign = shdr->sh_addralign;
+    }
+
+  if ((sh_flags & SHF_ALLOC) != 0)
+    {
+      __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS);
+      return -1;
+    }
+
+  if (sh_type == SHT_NULL || sh_type == SHT_NOBITS)
+    {
+      __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE);
+      return -1;
+    }
+
+  /* For GNU compression we cannot really know whether the section is
+     already compressed or not.  Just try and see what happens...  */
+  // int compressed = (sh_flags & SHF_COMPRESSED);
+  if (inflate == 1)
+    {
+      size_t hsize = 4 + 8; /* GNU "ZLIB" + 8 byte size.  */
+      size_t orig_size, new_size, orig_addralign;
+      void *out_buf = __libelf_compress (scn, hsize, elfdata,
+					 &orig_size, &orig_addralign,
+					 &new_size, force);
+
+      /* Compression would make section larger, don't change anything.  */
+      if (out_buf == (void *) -1)
+	return 0;
+
+      /* Compression failed, return error.  */
+      if (out_buf == NULL)
+	return -1;
+
+      uint64_t be64_size = htobe64 (orig_size);
+      memmove (out_buf, "ZLIB", 4);
+      memmove (out_buf + 4, &be64_size, sizeof (be64_size));
+
+      /* We don't know anything about sh_entsize, sh_addralign and
+	 sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
+	 Just adjust the sh_size.  */
+      if (elfclass == ELFCLASS32)
+	{
+	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+	  shdr->sh_size = new_size;
+	}
+      else
+	{
+	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+	  shdr->sh_size = new_size;
+	}
+
+      __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_BYTE);
+
+      /* The section is now compressed, we could keep the uncompressed
+	 data around, but since that might have been multiple Elf_Data
+	 buffers let the user uncompress it explicitly again if they
+	 want it to simplify bookkeeping.  */
+      scn->zdata_base = NULL;
+
+      return 1;
+    }
+  else if (inflate == 0)
+    {
+      /* In theory the user could have constucted a compressed section
+	 by hand.  But we always just take the rawdata directly and
+	 decompress that.  */
+      Elf_Data *data = elf_rawdata (scn, NULL);
+      if (data == NULL)
+	return -1;
+
+      size_t hsize = 4 + 8; /* GNU "ZLIB" + 8 byte size.  */
+      if (data->d_size < hsize || memcmp (data->d_buf, "ZLIB", 4) != 0)
+	{
+          __libelf_seterrno (ELF_E_NOT_COMPRESSED);
+	  return -1;
+	}
+
+      /* There is a 12-byte header of "ZLIB" followed by
+	 an 8-byte big-endian size.  There is only one type and
+	 Alignment isn't preserved separately.  */
+      uint64_t gsize;
+      memcpy (&gsize, data->d_buf + 4, sizeof gsize);
+      gsize = be64toh (gsize);
+
+      /* One more sanity check, size should be bigger than original
+	 data size plus some overhead (4 chars ZLIB + 8 bytes size + 6
+	 bytes zlib stream overhead + 5 bytes overhead max for one 16K
+	 block) and should fit into a size_t.  */
+      if (gsize + 4 + 8 + 6 + 5 < data->d_size || gsize > SIZE_MAX)
+	{
+	  __libelf_seterrno (ELF_E_NOT_COMPRESSED);
+	  return -1;
+	}
+
+      size_t size = gsize;
+      size_t size_in = data->d_size - hsize;
+      void *buf_in = data->d_buf + hsize;
+      void *buf_out = __libelf_decompress (buf_in, size_in, size);
+      if (buf_out == NULL)
+	return -1;
+
+      /* We don't know anything about sh_entsize, sh_addralign and
+	 sh_flags won't have a SHF_COMPRESSED hint in the GNU format.
+	 Just adjust the sh_size.  */
+      if (elfclass == ELFCLASS32)
+	{
+	  Elf32_Shdr *shdr = elf32_getshdr (scn);
+	  shdr->sh_size = size;
+	}
+      else
+	{
+	  Elf64_Shdr *shdr = elf64_getshdr (scn);
+	  shdr->sh_size = size;
+	}
+
+      __libelf_reset_rawdata (scn, buf_out, size, sh_addralign,
+			      __libelf_data_type (elf, sh_type));
+
+      scn->zdata_base = buf_out;
+
+      return 1;
+    }
+  else
+    {
+      __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE);
+      return -1;
+    }
+}
diff --git a/libelf/elf_end.c b/libelf/elf_end.c
index 7ea876c..fde17b5 100644
--- a/libelf/elf_end.c
+++ b/libelf/elf_end.c
@@ -150,6 +150,12 @@
 		  /* It doesn't matter which pointer.  */
 		  free (scn->shdr.e32);
 
+		/* Free zdata if uncompressed, but not yet used as
+		   rawdata_base.  If it is already used it will be
+		   freed below.  */
+		if (scn->zdata_base != scn->rawdata_base)
+		  free (scn->zdata_base);
+
 		/* If the file has the same byte order and the
 		   architecture doesn't require overly stringent
 		   alignment the raw data buffer is the same as the
@@ -158,8 +164,9 @@
 		  free (scn->data_base);
 
 		/* The section data is allocated if we couldn't mmap
-		   the file.  */
-		if (elf->map_address == NULL)
+		   the file.  Or if we had to decompress.  */
+		if (elf->map_address == NULL
+		    || scn->rawdata_base == scn->zdata_base)
 		  free (scn->rawdata_base);
 
 		/* Free the list of data buffers for the section.
diff --git a/libelf/elf_error.c b/libelf/elf_error.c
index d6bdaab..888b389 100644
--- a/libelf/elf_error.c
+++ b/libelf/elf_error.c
@@ -230,6 +230,41 @@
   (ELF_E_NO_PHDR_IDX \
    + sizeof "file has no program header")
   N_("invalid offset")
+  "\0"
+#define ELF_E_INVALID_SECTION_TYPE_IDX \
+  (ELF_E_INVALID_OFFSET_IDX \
+   + sizeof "invalid offset")
+  N_("invalid section type")
+  "\0"
+#define ELF_E_INVALID_SECTION_FLAGS_IDX \
+  (ELF_E_INVALID_SECTION_TYPE_IDX \
+   + sizeof "invalid section type")
+  N_("invalid section flags")
+  "\0"
+#define ELF_E_NOT_COMPRESSED_IDX		\
+  (ELF_E_INVALID_SECTION_FLAGS_IDX			\
+   + sizeof "invalid section flags")
+  N_("section does not contain compressed data")
+  "\0"
+#define ELF_E_ALREADY_COMPRESSED_IDX \
+  (ELF_E_NOT_COMPRESSED_IDX \
+   + sizeof "section does not contain compressed data")
+  N_("section contains compressed data")
+  "\0"
+#define ELF_E_UNKNOWN_COMPRESSION_TYPE_IDX \
+  (ELF_E_ALREADY_COMPRESSED_IDX \
+   + sizeof "section contains compressed data")
+  N_("unknown compression type")
+  "\0"
+#define ELF_E_COMPRESS_ERROR_IDX \
+  (ELF_E_UNKNOWN_COMPRESSION_TYPE_IDX \
+   + sizeof "unknown compression type")
+  N_("cannot compress data")
+  "\0"
+#define ELF_E_DECOMPRESS_ERROR_IDX \
+  (ELF_E_COMPRESS_ERROR_IDX \
+   + sizeof "cannot compress data")
+  N_("cannot decompress data")
 };
 
 
@@ -277,7 +312,14 @@
   [ELF_E_GROUP_NOT_REL] = ELF_E_GROUP_NOT_REL_IDX,
   [ELF_E_INVALID_PHDR] = ELF_E_INVALID_PHDR_IDX,
   [ELF_E_NO_PHDR] = ELF_E_NO_PHDR_IDX,
-  [ELF_E_INVALID_OFFSET] = ELF_E_INVALID_OFFSET_IDX
+  [ELF_E_INVALID_OFFSET] = ELF_E_INVALID_OFFSET_IDX,
+  [ELF_E_INVALID_SECTION_TYPE] = ELF_E_INVALID_SECTION_TYPE_IDX,
+  [ELF_E_INVALID_SECTION_FLAGS] = ELF_E_INVALID_SECTION_FLAGS_IDX,
+  [ELF_E_NOT_COMPRESSED] = ELF_E_NOT_COMPRESSED_IDX,
+  [ELF_E_ALREADY_COMPRESSED] = ELF_E_ALREADY_COMPRESSED_IDX,
+  [ELF_E_UNKNOWN_COMPRESSION_TYPE] = ELF_E_UNKNOWN_COMPRESSION_TYPE_IDX,
+  [ELF_E_COMPRESS_ERROR] = ELF_E_COMPRESS_ERROR_IDX,
+  [ELF_E_DECOMPRESS_ERROR] = ELF_E_DECOMPRESS_ERROR_IDX
 };
 #define nmsgidx ((int) (sizeof (msgidx) / sizeof (msgidx[0])))
 
diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c
index 9a567e5..4ec94b9 100644
--- a/libelf/elf_getdata.c
+++ b/libelf/elf_getdata.c
@@ -106,6 +106,7 @@
       [ELF_T_NHDR] = __alignof__ (ElfW2(Bits,Nhdr)),			      \
       [ELF_T_GNUHASH] = __alignof__ (Elf32_Word),			      \
       [ELF_T_AUXV] = __alignof__ (ElfW2(Bits,auxv_t)),			      \
+      [ELF_T_CHDR] = __alignof__ (ElfW2(Bits,Chdr)),			      \
     }
     [EV_CURRENT - 1] =
     {
@@ -117,6 +118,22 @@
 #endif
 
 
+Elf_Type
+internal_function
+__libelf_data_type (Elf *elf, int sh_type)
+{
+  /* Some broken ELF ABI for 64-bit machines use the wrong hash table
+     entry size.  See elf-knowledge.h for more information.  */
+  if (sh_type == SHT_HASH && elf->class == ELFCLASS64)
+    {
+      GElf_Ehdr ehdr_mem;
+      GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem);
+      return (SH_ENTSIZE_HASH (ehdr) == 4 ? ELF_T_WORD : ELF_T_XWORD);
+    }
+  else
+    return shtype_map[LIBELF_EV_IDX][TYPEIDX (sh_type)];
+}
+
 /* Convert the data in the current section.  */
 static void
 convert_data (Elf_Scn *scn, int version __attribute__ ((unused)), int eclass,
@@ -204,6 +221,7 @@
   Elf64_Off offset;
   Elf64_Xword size;
   Elf64_Xword align;
+  Elf64_Xword flags;
   int type;
   Elf *elf = scn->elf;
 
@@ -220,6 +238,7 @@
       size = shdr->sh_size;
       type = shdr->sh_type;
       align = shdr->sh_addralign;
+      flags = shdr->sh_flags;
     }
   else
     {
@@ -234,6 +253,7 @@
       size = shdr->sh_size;
       type = shdr->sh_type;
       align = shdr->sh_addralign;
+      flags = shdr->sh_flags;
     }
 
   /* If the section has no data (for whatever reason), leave the `d_buf'
@@ -243,7 +263,10 @@
       /* First a test whether the section is valid at all.  */
       size_t entsize;
 
-      if (type == SHT_HASH)
+      /* Compressed data has a header, but then compressed data.  */
+      if ((flags & SHF_COMPRESSED) != 0)
+	entsize = 1;
+      else if (type == SHT_HASH)
 	{
 	  GElf_Ehdr ehdr_mem;
 	  GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem);
@@ -320,17 +343,13 @@
     }
 
   scn->rawdata.d.d_size = size;
-  /* Some broken ELF ABI for 64-bit machines use the wrong hash table
-     entry size.  See elf-knowledge.h for more information.  */
-  if (type == SHT_HASH && elf->class == ELFCLASS64)
-    {
-      GElf_Ehdr ehdr_mem;
-      GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem);
-      scn->rawdata.d.d_type
-	= (SH_ENTSIZE_HASH (ehdr) == 4 ? ELF_T_WORD : ELF_T_XWORD);
-    }
+
+  /* Compressed data always has type ELF_T_CHDR regardless of the
+     section type.  */
+  if ((flags & SHF_COMPRESSED) != 0)
+    scn->rawdata.d.d_type = ELF_T_CHDR;
   else
-    scn->rawdata.d.d_type = shtype_map[LIBELF_EV_IDX][TYPEIDX (type)];
+    scn->rawdata.d.d_type = __libelf_data_type (elf, type);
   scn->rawdata.d.d_off = 0;
 
   /* Make sure the alignment makes sense.  d_align should be aligned both
diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c
index c5138dc..ea21045 100644
--- a/libelf/elf_strptr.c
+++ b/libelf/elf_strptr.c
@@ -37,6 +37,21 @@
 #include "libelfP.h"
 
 
+static void *
+get_zdata (Elf_Scn *strscn)
+{
+  size_t zsize, zalign;
+  void *zdata = __libelf_decompress_elf (strscn, &zsize, &zalign);
+  if (zdata == NULL)
+    return NULL;
+
+  strscn->zdata_base = zdata;
+  strscn->zdata_size = zsize;
+  strscn->zdata_align = zalign;
+
+  return zdata;
+}
+
 char *
 elf_strptr (Elf *elf, size_t idx, size_t offset)
 {
@@ -94,8 +109,16 @@
 	  goto out;
 	}
 
-      sh_size = shdr->sh_size;
-      if (unlikely (offset >= shdr->sh_size))
+      if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
+	sh_size = shdr->sh_size;
+      else
+	{
+	  if (strscn->zdata_base == NULL && get_zdata (strscn) == NULL)
+	    goto out;
+	  sh_size = strscn->zdata_size;
+	}
+
+      if (unlikely (offset >= sh_size))
 	{
 	  /* The given offset is too big, it is beyond this section.  */
 	  __libelf_seterrno (ELF_E_OFFSET_RANGE);
@@ -112,8 +135,16 @@
 	  goto out;
 	}
 
-      sh_size = shdr->sh_size;
-      if (unlikely (offset >= shdr->sh_size))
+      if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
+	sh_size = shdr->sh_size;
+      else
+	{
+	  if (strscn->zdata_base == NULL && get_zdata (strscn) == NULL)
+	    goto out;
+	  sh_size = strscn->zdata_size;
+	}
+
+      if (unlikely (offset >= sh_size))
 	{
 	  /* The given offset is too big, it is beyond this section.  */
 	  __libelf_seterrno (ELF_E_OFFSET_RANGE);
@@ -131,7 +162,17 @@
 	goto out;
     }
 
-  if (likely (strscn->data_list_rear == NULL))
+  if (unlikely (strscn->zdata_base != NULL))
+    {
+      /* Make sure the string is NUL terminated.  Start from the end,
+         which very likely is a NUL char.  */
+      if (likely (memrchr (&strscn->zdata_base[offset],
+			   '\0', sh_size - offset) != NULL))
+        result = &strscn->zdata_base[offset];
+      else
+        __libelf_seterrno (ELF_E_INVALID_INDEX);
+    }
+  else if (likely (strscn->data_list_rear == NULL))
     {
       // XXX The above is currently correct since elf_newdata will
       // make sure to convert the rawdata into the datalist if
diff --git a/libelf/exttypes.h b/libelf/exttypes.h
index 8cb2aae..7bacd65 100644
--- a/libelf/exttypes.h
+++ b/libelf/exttypes.h
@@ -1,5 +1,5 @@
 /* External ELF types.
-   Copyright (C) 1998-2010 Red Hat, Inc.
+   Copyright (C) 1998-2010, 2015 Red Hat, Inc.
    This file is part of elfutils.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
 
@@ -75,6 +75,7 @@
 Move32 (Ext_);
 Lib32 (Ext_);
 auxv_t32 (Ext_);
+Chdr32 (Ext_);
 
 Ehdr64 (Ext_);
 Phdr64 (Ext_);
@@ -92,6 +93,7 @@
 Move64 (Ext_);
 Lib64 (Ext_);
 auxv_t64 (Ext_);
+Chdr64 (Ext_);
 
 #undef START
 #undef END
diff --git a/libelf/gelf.h b/libelf/gelf.h
index e3f0740..1bc7ee7 100644
--- a/libelf/gelf.h
+++ b/libelf/gelf.h
@@ -1,5 +1,5 @@
 /* This file defines generic ELF types, structures, and macros.
-   Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2007 Red Hat, Inc.
+   Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2015 Red Hat, Inc.
    This file is part of elfutils.
 
    This file is free software; you can redistribute it and/or modify
@@ -85,6 +85,9 @@
 /* Program segment header.  */
 typedef Elf64_Phdr GElf_Phdr;
 
+/* Header of a compressed section.  */
+typedef Elf64_Chdr GElf_Chdr;
+
 /* Dynamic section entry.  */
 typedef Elf64_Dyn GElf_Dyn;
 
@@ -183,6 +186,9 @@
 /* Create new program header with PHNUM entries.  */
 extern unsigned long int gelf_newphdr (Elf *__elf, size_t __phnum);
 
+/* Get compression header of section if any.  Returns NULL and sets
+   elf_errno if the section isn't compressed or an error occurred.  */
+extern GElf_Chdr *gelf_getchdr (Elf_Scn *__scn, GElf_Chdr *__dst);
 
 /* Convert data structure from the representation in the file represented
    by ELF to their memory representation.  */
diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c
index a124fa8..0c50926 100644
--- a/libelf/gelf_fsize.c
+++ b/libelf/gelf_fsize.c
@@ -68,6 +68,7 @@
       [ELF_T_MOVE]	= sizeof (ElfW2(LIBELFBITS, Ext_Move)),		      \
       [ELF_T_LIB]	= sizeof (ElfW2(LIBELFBITS, Ext_Lib)),		      \
       [ELF_T_AUXV]	= sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)),	      \
+      [ELF_T_CHDR]	= sizeof (ElfW2(LIBELFBITS, Ext_Chdr)),		      \
       [ELF_T_GNUHASH]	= ELFW2(LIBELFBITS, FSZ_WORD)
       TYPE_SIZES (32)
     },
diff --git a/libelf/gelf_getchdr.c b/libelf/gelf_getchdr.c
new file mode 100644
index 0000000..394bf4b
--- /dev/null
+++ b/libelf/gelf_getchdr.c
@@ -0,0 +1,69 @@
+/* Return section compression header.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libelfP.h"
+#include <gelf.h>
+#include <stddef.h>
+
+
+GElf_Chdr *
+gelf_getchdr (Elf_Scn *scn, GElf_Chdr *dest)
+{
+  if (scn == NULL)
+    return NULL;
+
+  if (dest == NULL)
+    {
+      __libelf_seterrno (ELF_E_INVALID_OPERAND);
+      return NULL;
+    }
+
+  if (scn->elf->class == ELFCLASS32)
+    {
+      Elf32_Chdr *chdr = elf32_getchdr (scn);
+      if (chdr == NULL)
+	return NULL;
+      dest->ch_type = chdr->ch_type;
+      dest->ch_size = chdr->ch_size;
+      dest->ch_addralign = chdr->ch_addralign;
+    }
+  else
+    {
+      Elf64_Chdr *chdr = elf64_getchdr (scn);
+      if (chdr == NULL)
+	return NULL;
+      *dest = *chdr;
+    }
+
+  return dest;
+}
+INTDEF(gelf_getchdr)
diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c
index c5805e7..f3d3b7a 100644
--- a/libelf/gelf_xlate.c
+++ b/libelf/gelf_xlate.c
@@ -166,6 +166,7 @@
 #include "version_xlate.h"
 #include "gnuhash_xlate.h"
 #include "note_xlate.h"
+#include "chdr_xlate.h"
 
 
 /* Now the externally visible table with the function pointers.  */
@@ -198,7 +199,8 @@
 	[ELF_T_SYMINFO] = ElfW2(Bits, cvt_Syminfo),			      \
 	[ELF_T_MOVE]	= ElfW2(Bits, cvt_Move),			      \
 	[ELF_T_LIB]	= ElfW2(Bits, cvt_Lib),				      \
-	[ELF_T_AUXV]	= ElfW2(Bits, cvt_auxv_t)
+	[ELF_T_AUXV]	= ElfW2(Bits, cvt_auxv_t),			      \
+	[ELF_T_CHDR]	= ElfW2(Bits, cvt_chdr)
         define_xfcts (32),
 	[ELF_T_GNUHASH] = Elf32_cvt_Word
       },
diff --git a/libelf/gelf_xlate.h b/libelf/gelf_xlate.h
index f11eb90..3c0e4bf 100644
--- a/libelf/gelf_xlate.h
+++ b/libelf/gelf_xlate.h
@@ -50,6 +50,7 @@
 TYPE (Move, LIBELFBITS)
 TYPE (Lib, LIBELFBITS)
 TYPE (auxv_t, LIBELFBITS)
+TYPE (Chdr, LIBELFBITS)
 
 
 /* Prepare for the next round.  */
diff --git a/libelf/libelf.h b/libelf/libelf.h
index 54f7c29..c0d6389 100644
--- a/libelf/libelf.h
+++ b/libelf/libelf.h
@@ -1,5 +1,5 @@
 /* Interface for libelf.
-   Copyright (C) 1998-2010 Red Hat, Inc.
+   Copyright (C) 1998-2010, 2015 Red Hat, Inc.
    This file is part of elfutils.
 
    This file is free software; you can redistribute it and/or modify
@@ -35,6 +35,34 @@
 /* Get the ELF types.  */
 #include <elf.h>
 
+#ifndef SHF_COMPRESSED
+ /* Older glibc elf.h might not yet define the ELF compression types.  */
+ #define SHF_COMPRESSED      (1 << 11)  /* Section with compressed data. */
+
+ /* Section compression header.  Used when SHF_COMPRESSED is set.  */
+
+ typedef struct
+ {
+   Elf32_Word   ch_type;        /* Compression format.  */
+   Elf32_Word   ch_size;        /* Uncompressed data size.  */
+   Elf32_Word   ch_addralign;   /* Uncompressed data alignment.  */
+ } Elf32_Chdr;
+
+ typedef struct
+ {
+   Elf64_Word   ch_type;        /* Compression format.  */
+   Elf64_Word   ch_reserved;
+   Elf64_Xword  ch_size;        /* Uncompressed data size.  */
+   Elf64_Xword  ch_addralign;   /* Uncompressed data alignment.  */
+ } Elf64_Chdr;
+
+ /* Legal values for ch_type (compression algorithm).  */
+ #define ELFCOMPRESS_ZLIB       1          /* ZLIB/DEFLATE algorithm.  */
+ #define ELFCOMPRESS_LOOS       0x60000000 /* Start of OS-specific.  */
+ #define ELFCOMPRESS_HIOS       0x6fffffff /* End of OS-specific.  */
+ #define ELFCOMPRESS_LOPROC     0x70000000 /* Start of processor-specific.  */
+ #define ELFCOMPRESS_HIPROC     0x7fffffff /* End of processor-specific.  */
+#endif
 
 /* Known translation types.  */
 typedef enum
@@ -64,6 +92,7 @@
   ELF_T_LIB,			/* Elf32_Lib, Elf64_Lib, ... */
   ELF_T_GNUHASH,		/* GNU-style hash section.  */
   ELF_T_AUXV,			/* Elf32_auxv_t, Elf64_auxv_t, ... */
+  ELF_T_CHDR,			/* Compressed, Elf32_Chdr, Elf64_Chdr, ... */
   /* Keep this the last entry.  */
   ELF_T_NUM
 } Elf_Type;
@@ -116,6 +145,12 @@
 #define ELF_F_PERMISSIVE	ELF_F_PERMISSIVE
 };
 
+/* Flags for elf_compress[_gnu].  */
+enum
+{
+  ELF_CHF_FORCE = 0x1
+#define ELF_CHF_FORCE ELF_CHF_FORCE
+};
 
 /* Identification values for recognized object files.  */
 typedef enum
@@ -267,6 +302,62 @@
 /* Similar for ELFCLASS64.  */
 extern Elf64_Shdr *elf64_getshdr (Elf_Scn *__scn);
 
+/* Returns compression header for a section if section data is
+   compressed.  Returns NULL and sets elf_errno if the section isn't
+   compressed or an error occurred.  */
+extern Elf32_Chdr *elf32_getchdr (Elf_Scn *__scn);
+extern Elf64_Chdr *elf64_getchdr (Elf_Scn *__scn);
+
+/* Compress or decompress the data of a section and adjust the section
+   header.
+
+   elf_compress works by setting or clearing the SHF_COMPRESS flag
+   from the section Shdr and will encode or decode a Elf32_Chdr or
+   Elf64_Chdr at the start of the section data.  elf_compress_gnu will
+   encode or decode any section, but is traditionally only used for
+   sections that have a name starting with ".debug" when
+   uncompressed or ".zdebug" when compressed and stores just the
+   uncompressed size.  The GNU compression method is deprecated and
+   should only be used for legacy support.
+
+   elf_compress takes a compression type that should be either zero to
+   decompress or an ELFCOMPRESS algorithm to use for compression.
+   Currently only ELFCOMPRESS_ZLIB is supported.  elf_compress_gnu
+   will compress in the traditional GNU compression format when
+   compress is one and decompress the section data when compress is
+   zero.
+
+   The FLAGS argument can be zero or ELF_CHF_FORCE.  If FLAGS contains
+   ELF_CHF_FORCE then it will always compress the section, even if
+   that would not reduce the size of the data section (including the
+   header).  Otherwise elf_compress and elf_compress_gnu will compress
+   the section only if the total data size is reduced.
+
+   On successful compression or decompression the function returns
+   one.  If (not forced) compression is requested and the data section
+   would not actually reduce in size, the section is not actually
+   compressed and zero is returned.  Otherwise -1 is returned and
+   elf_errno is set.
+
+   It is an error to request compression for a section that already
+   has SHF_COMPRESSED set, or (for elf_compress) to request
+   decompression for an section that doesn't have SHF_COMPRESSED set.
+   It is always an error to call these functions on SHT_NOBITS
+   sections or if the section has the SHF_ALLOC flag set.
+   elf_compress_gnu will not check whether the section name starts
+   with ".debug" or .zdebug".  It is the responsibilty of the caller
+   to make sure the deprecated GNU compression method is only called
+   on correctly named sections (and to change the name of the section
+   when using elf_compress_gnu).
+
+   All previous returned Shdrs and Elf_Data buffers are invalidated by
+   this call and should no longer be accessed.
+
+   Note that although this changes the header and data returned it
+   doesn't mark the section as dirty.  To keep the changes when
+   calling elf_update the section has to be flagged ELF_F_DIRTY.  */
+extern int elf_compress (Elf_Scn *scn, int type, unsigned int flags);
+extern int elf_compress_gnu (Elf_Scn *scn, int compress, unsigned int flags);
 
 /* Set or clear flags for ELF file.  */
 extern unsigned int elf_flagelf (Elf *__elf, Elf_Cmd __cmd,
@@ -288,8 +379,11 @@
 				  unsigned int __flags);
 
 
-/* Get data from section while translating from file representation
-   to memory representation.  */
+/* Get data from section while translating from file representation to
+   memory representation.  The Elf_Data d_type is set based on the
+   section type if known.  Otherwise d_type is set to ELF_T_BYTE.  If
+   the section contains compressed data then d_type is always set to
+   ELF_T_CHDR.  */
 extern Elf_Data *elf_getdata (Elf_Scn *__scn, Elf_Data *__data);
 
 /* Get uninterpreted section content.  */
diff --git a/libelf/libelf.map b/libelf/libelf.map
index de6d912..10dc505 100644
--- a/libelf/libelf.map
+++ b/libelf/libelf.map
@@ -138,3 +138,13 @@
   global:
     elf_getphdrnum;
 } ELFUTILS_1.5;
+
+ELFUTILS_1.7 {
+  global:
+    elf32_getchdr;
+    elf64_getchdr;
+    gelf_getchdr;
+
+    elf_compress;
+    elf_compress_gnu;
+} ELFUTILS_1.6;
diff --git a/libelf/libelfP.h b/libelf/libelfP.h
index 993c655..57ccbce 100644
--- a/libelf/libelfP.h
+++ b/libelf/libelfP.h
@@ -1,5 +1,5 @@
 /* Internal interfaces for libelf.
-   Copyright (C) 1998-2010 Red Hat, Inc.
+   Copyright (C) 1998-2010, 2015 Red Hat, Inc.
    This file is part of elfutils.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
 
@@ -38,6 +38,7 @@
 #include <gelf.h>
 
 #include <errno.h>
+#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
@@ -138,6 +139,13 @@
   ELF_E_INVALID_PHDR,
   ELF_E_NO_PHDR,
   ELF_E_INVALID_OFFSET,
+  ELF_E_INVALID_SECTION_TYPE,
+  ELF_E_INVALID_SECTION_FLAGS,
+  ELF_E_NOT_COMPRESSED,
+  ELF_E_ALREADY_COMPRESSED,
+  ELF_E_UNKNOWN_COMPRESSION_TYPE,
+  ELF_E_COMPRESS_ERROR,
+  ELF_E_DECOMPRESS_ERROR,
   /* Keep this as the last entry.  */
   ELF_E_NUM
 };
@@ -230,6 +238,10 @@
   char *rawdata_base;		/* The unmodified data of the section.  */
   char *data_base;		/* The converted data of the section.  */
 
+  char *zdata_base;		/* The uncompressed data of the section.  */
+  size_t zdata_size;		/* If zdata_base != NULL, the size of data.  */
+  size_t zdata_align;		/* If zdata_base != NULL, the addralign.  */
+
   struct Elf_ScnList *list;	/* Pointer to the section list element the
 				   data is in.  */
 };
@@ -438,6 +450,11 @@
 # define __libelf_type_align(class, type)	1
 #endif
 
+/* Given an Elf handle and a section type returns the Elf_Data d_type.
+   Should not be called when SHF_COMPRESSED is set, the d_type should
+   be ELF_T_BYTE.  */
+extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function;
+
 /* The libelf API does not have such a function but it is still useful.
    Get the memory size for the given type.
 
@@ -578,6 +595,22 @@
 extern uint32_t __libelf_crc32 (uint32_t crc, unsigned char *buf, size_t len)
      attribute_hidden;
 
+extern void * __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
+				 size_t *orig_size, size_t *orig_addralign,
+				 size_t *size, bool force)
+     internal_function;
+
+extern void * __libelf_decompress (void *buf_in, size_t size_in,
+				   size_t size_out) internal_function;
+extern void * __libelf_decompress_elf (Elf_Scn *scn,
+				       size_t *size_out, size_t *addralign)
+     internal_function;
+
+
+extern void __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size,
+				    size_t align, Elf_Type type)
+     internal_function;
+
 
 /* We often have to update a flag iff a value changed.  Make this
    convenient.  */
diff --git a/po/ChangeLog b/po/ChangeLog
index 1082015..0acdda6 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,11 @@
+2016-01-11  Mark Wielaard  <mjw@redhat.com>
+
+	* *.po: Regenerate.
+
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* *.po: Update for 0.165.
+
 2015-10-16  Mark Wielaard  <mjw@redhat.com>
 
 	* *.po: Regenerate.
diff --git a/po/de.po b/po/de.po
index 10feb6f..2b937ac 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: elfutils VERSION\n"
 "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2015-10-16 13:26+0200\n"
+"POT-Creation-Date: 2016-01-11 08:48+0100\n"
 "PO-Revision-Date: 2009-06-29 15:15+0200\n"
 "Last-Translator: Michael Münch <micm@fedoraproject.org>\n"
 "Language-Team: German\n"
@@ -42,8 +42,8 @@
 msgid "cannot allocate memory"
 msgstr "konnte Verzeichnis nicht erstellen: %s"
 
-#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184
-#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403
+#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282
+#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438
 #, c-format
 msgid "memory exhausted"
 msgstr "Kein Speicher mehr verfügbar"
@@ -247,7 +247,7 @@
 msgid "not a CU (unit) DIE"
 msgstr ""
 
-#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345
+#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380
 msgid "Input selection options:"
 msgstr "Eingabeauswahloptionen:"
 
@@ -302,7 +302,12 @@
 msgid "cannot read ELF core file: %s"
 msgstr "Konnte ELF Kerndatei %s nicht lesen"
 
-#: libdwfl/argp-std.c:311
+#: libdwfl/argp-std.c:313
+#, fuzzy
+msgid "Not enough memory"
+msgstr "nicht genügend Speicher"
+
+#: libdwfl/argp-std.c:323
 msgid "No modules recognized in core file"
 msgstr "Keine Module in der Kerndatei gefunden"
 
@@ -485,57 +490,57 @@
 msgid "<unknown>: %#<PRIx64>"
 msgstr "<Unbekannt>: %#<PRIx64>"
 
-#: libebl/eblobjnote.c:52
+#: libebl/eblobjnote.c:53
 #, fuzzy, c-format
 msgid "unknown SDT version %u\n"
 msgstr "unbekannte Version"
 
-#: libebl/eblobjnote.c:70
+#: libebl/eblobjnote.c:71
 #, fuzzy, c-format
 msgid "invalid SDT probe descriptor\n"
 msgstr "ungültiger Datei-Deskriptor"
 
-#: libebl/eblobjnote.c:120
+#: libebl/eblobjnote.c:121
 #, c-format
 msgid "    PC: "
 msgstr ""
 
-#: libebl/eblobjnote.c:122
+#: libebl/eblobjnote.c:123
 #, c-format
 msgid " Base: "
 msgstr ""
 
-#: libebl/eblobjnote.c:124
+#: libebl/eblobjnote.c:125
 #, c-format
 msgid " Semaphore: "
 msgstr ""
 
-#: libebl/eblobjnote.c:126
+#: libebl/eblobjnote.c:127
 #, c-format
 msgid "    Provider: "
 msgstr ""
 
-#: libebl/eblobjnote.c:128
+#: libebl/eblobjnote.c:129
 #, c-format
 msgid " Name: "
 msgstr ""
 
-#: libebl/eblobjnote.c:130
+#: libebl/eblobjnote.c:131
 #, c-format
 msgid " Args: "
 msgstr ""
 
-#: libebl/eblobjnote.c:140
+#: libebl/eblobjnote.c:141
 #, c-format
 msgid "    Build ID: "
 msgstr "    Build ID: "
 
-#: libebl/eblobjnote.c:151
+#: libebl/eblobjnote.c:152
 #, c-format
 msgid "    Linker version: %.*s\n"
 msgstr ""
 
-#: libebl/eblobjnote.c:212
+#: libebl/eblobjnote.c:213
 #, c-format
 msgid "    OS: %s, ABI: "
 msgstr "    OS: %s, ABI: "
@@ -569,7 +574,7 @@
 msgid "invalid size of destination operand"
 msgstr "ungültige Grösse des Ziel-Operanden"
 
-#: libelf/elf_error.c:87 src/readelf.c:5365
+#: libelf/elf_error.c:87 src/readelf.c:5473
 #, c-format
 msgid "invalid encoding"
 msgstr "ungültige Kodierung"
@@ -652,8 +657,8 @@
 msgid "invalid section header"
 msgstr "ungültiger Abschnitts-Header"
 
-#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682
-#: src/readelf.c:7783 src/readelf.c:7964
+#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790
+#: src/readelf.c:7891 src/readelf.c:8072
 #, c-format
 msgid "invalid data"
 msgstr "Ungültige Daten"
@@ -695,6 +700,39 @@
 msgid "file has no program header"
 msgstr "Datei hat keinen Programm-Kopf"
 
+#: libelf/elf_error.c:237
+#, fuzzy
+msgid "invalid section type"
+msgstr "ungültiger Abschnitt"
+
+#: libelf/elf_error.c:242
+#, fuzzy
+msgid "invalid section flags"
+msgstr "ungültiger Abschnitt"
+
+#: libelf/elf_error.c:247
+msgid "section does not contain compressed data"
+msgstr ""
+
+#: libelf/elf_error.c:252
+msgid "section contains compressed data"
+msgstr ""
+
+#: libelf/elf_error.c:257
+#, fuzzy
+msgid "unknown compression type"
+msgstr "unbekannter Typ"
+
+#: libelf/elf_error.c:262
+#, fuzzy
+msgid "cannot compress data"
+msgstr "konnte Abschnittsdaten nicht kopieren: %s"
+
+#: libelf/elf_error.c:267
+#, fuzzy
+msgid "cannot decompress data"
+msgstr "konnte Abschnittsdaten nicht kopieren: %s"
+
 #: src/addr2line.c:58
 #, fuzzy
 msgid "Input format options:"
@@ -751,7 +789,7 @@
 msgid "Print all information on one line, and indent inlines"
 msgstr ""
 
-#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99
+#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100
 #: src/strings.c:79
 msgid "Miscellaneous:"
 msgstr "Verschiedenes:"
@@ -765,9 +803,9 @@
 msgid "[ADDR...]"
 msgstr ""
 
-#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235
-#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177
-#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230
+#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235
+#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177
+#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230
 #: src/strip.c:218 src/unstrip.c:232
 #, c-format
 msgid ""
@@ -780,9 +818,9 @@
 "GARANTIE,\n"
 "auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n"
 
-#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240
-#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182
-#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235
+#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240
+#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182
+#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235
 #: src/strip.c:223 src/unstrip.c:237
 #, c-format
 msgid "Written by %s.\n"
@@ -1253,40 +1291,40 @@
 msgid "%s %s differ: gap"
 msgstr ""
 
-#: src/elfcmp.c:702
+#: src/elfcmp.c:704
 #, c-format
 msgid "Invalid value '%s' for --gaps parameter."
 msgstr ""
 
-#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757
-#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289
-#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994
-#: src/unstrip.c:2023
+#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757
+#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289
+#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029
+#: src/unstrip.c:2058
 #, c-format
 msgid "cannot open '%s'"
 msgstr "'%s' kann nicht geöffnet werden"
 
-#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174
+#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174
 #, c-format
 msgid "cannot create ELF descriptor for '%s': %s"
 msgstr ""
 
-#: src/elfcmp.c:739
+#: src/elfcmp.c:741
 #, c-format
 msgid "cannot create EBL descriptor for '%s'"
 msgstr ""
 
-#: src/elfcmp.c:757 src/findtextrel.c:409
+#: src/elfcmp.c:759 src/findtextrel.c:409
 #, c-format
 msgid "cannot get section header of section %zu: %s"
 msgstr ""
 
-#: src/elfcmp.c:767
+#: src/elfcmp.c:769
 #, c-format
 msgid "cannot get content of section %zu: %s"
 msgstr ""
 
-#: src/elfcmp.c:777 src/elfcmp.c:791
+#: src/elfcmp.c:779 src/elfcmp.c:793
 #, c-format
 msgid "cannot get relocation: %s"
 msgstr ""
@@ -1313,11 +1351,11 @@
 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
 msgstr ""
 
-#: src/elflint.c:78 src/readelf.c:123
+#: src/elflint.c:78 src/readelf.c:126
 msgid "FILE..."
 msgstr "DATEI..."
 
-#: src/elflint.c:155 src/readelf.c:292
+#: src/elflint.c:155 src/readelf.c:298
 #, c-format
 msgid "cannot open input file"
 msgstr "Kann Eingabedatei nicht öffnen"
@@ -1336,7 +1374,7 @@
 msgid "No errors"
 msgstr "Keine Fehler"
 
-#: src/elflint.c:219 src/readelf.c:468
+#: src/elflint.c:219 src/readelf.c:474
 msgid "Missing file name.\n"
 msgstr "Dateiname fehlt.\n"
 
@@ -1478,14 +1516,14 @@
 "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
 msgstr ""
 
-#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628
-#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056
-#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336
+#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632
+#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061
+#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366
 #, c-format
 msgid "section [%2d] '%s': cannot get section data\n"
 msgstr ""
 
-#: src/elflint.c:604 src/elflint.c:1635
+#: src/elflint.c:604 src/elflint.c:1639
 #, c-format
 msgid ""
 "section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1581,1426 +1619,1442 @@
 "section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"
 msgstr ""
 
-#: src/elflint.c:805
+#: src/elflint.c:809
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885
+#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu does not fit completely in referenced section "
 "[%2d] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:820
+#: src/elflint.c:824
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have "
 "SHF_TLS flag set\n"
 msgstr ""
 
-#: src/elflint.c:830 src/elflint.c:878
+#: src/elflint.c:834 src/elflint.c:882
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section "
 "[%2d] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:857
+#: src/elflint.c:861
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"
 msgstr ""
 
-#: src/elflint.c:863
+#: src/elflint.c:867
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program "
 "header entry\n"
 msgstr ""
 
-#: src/elflint.c:871
+#: src/elflint.c:875
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] "
 "'%s'\n"
 msgstr ""
 
-#: src/elflint.c:898
+#: src/elflint.c:902
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: local symbol outside range described in "
 "sh_info\n"
 msgstr ""
 
-#: src/elflint.c:905
+#: src/elflint.c:909
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
 "sh_info\n"
 msgstr ""
 
-#: src/elflint.c:912
+#: src/elflint.c:916
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
 msgstr ""
 
-#: src/elflint.c:962
+#: src/elflint.c:966
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
 "[%2d]\n"
 msgstr ""
 
-#: src/elflint.c:969
+#: src/elflint.c:973
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
 "'%s'\n"
 msgstr ""
 
-#: src/elflint.c:985
+#: src/elflint.c:989
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
 "match %s section address %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:992
+#: src/elflint.c:996
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
 "match %s section size %<PRIu64>\n"
 msgstr ""
 
-#: src/elflint.c:1000
+#: src/elflint.c:1004
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
 "section\n"
 msgstr ""
 
-#: src/elflint.c:1016
+#: src/elflint.c:1020
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
 "segment address %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:1023
+#: src/elflint.c:1027
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
 "segment size %<PRIu64>\n"
 msgstr ""
 
-#: src/elflint.c:1036
+#: src/elflint.c:1040
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-"
 "default visibility\n"
 msgstr ""
 
-#: src/elflint.c:1040
+#: src/elflint.c:1044
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n"
 msgstr ""
 
-#: src/elflint.c:1078
+#: src/elflint.c:1082
 #, fuzzy, c-format
 msgid "section [%2d] '%s': cannot get section data.\n"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/elflint.c:1094
+#: src/elflint.c:1098
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
 msgstr ""
 
-#: src/elflint.c:1105 src/elflint.c:1158
+#: src/elflint.c:1109 src/elflint.c:1162
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
 msgstr ""
 
-#: src/elflint.c:1130 src/elflint.c:1183
+#: src/elflint.c:1134 src/elflint.c:1187
 #, c-format
 msgid ""
 "section [%2d] '%s': relative relocations after index %d as specified by "
 "DT_RELCOUNT\n"
 msgstr ""
 
-#: src/elflint.c:1136 src/elflint.c:1189
+#: src/elflint.c:1140 src/elflint.c:1193
 #, c-format
 msgid ""
 "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
 "specified %d relative relocations\n"
 msgstr ""
 
-#: src/elflint.c:1148
+#: src/elflint.c:1152
 #, c-format
 msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
 msgstr ""
 
-#: src/elflint.c:1231
+#: src/elflint.c:1235
 #, c-format
 msgid "section [%2d] '%s': invalid destination section index\n"
 msgstr ""
 
-#: src/elflint.c:1243
+#: src/elflint.c:1247
 #, c-format
 msgid "section [%2d] '%s': invalid destination section type\n"
 msgstr ""
 
-#: src/elflint.c:1251
+#: src/elflint.c:1255
 #, c-format
 msgid "section [%2d] '%s': sh_info should be zero\n"
 msgstr ""
 
-#: src/elflint.c:1259
+#: src/elflint.c:1263
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': no relocations for merge-able string sections possible\n"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/elflint.c:1267
+#: src/elflint.c:1271
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
 msgstr ""
 
-#: src/elflint.c:1327
+#: src/elflint.c:1331
 #, c-format
 msgid "text relocation flag set but there is no read-only segment\n"
 msgstr ""
 
-#: src/elflint.c:1354
+#: src/elflint.c:1358
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid type\n"
 msgstr ""
 
-#: src/elflint.c:1362
+#: src/elflint.c:1366
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: relocation type invalid for the file "
 "type\n"
 msgstr ""
 
-#: src/elflint.c:1370
+#: src/elflint.c:1374
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
 msgstr ""
 
-#: src/elflint.c:1388
+#: src/elflint.c:1392
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
 "be used with %s\n"
 msgstr ""
 
-#: src/elflint.c:1405
+#: src/elflint.c:1409
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:1420
+#: src/elflint.c:1424
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
 "%s\n"
 msgstr ""
 
-#: src/elflint.c:1441
+#: src/elflint.c:1445
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: read-only section modified but text "
 "relocation flag not set\n"
 msgstr ""
 
-#: src/elflint.c:1456
+#: src/elflint.c:1460
 #, c-format
 msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
 msgstr ""
 
-#: src/elflint.c:1496 src/elflint.c:1547
+#: src/elflint.c:1500 src/elflint.c:1551
 #, c-format
 msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
 msgstr ""
 
-#: src/elflint.c:1623
+#: src/elflint.c:1627
 #, c-format
 msgid "more than one dynamic section present\n"
 msgstr ""
 
-#: src/elflint.c:1641
+#: src/elflint.c:1645
 #, c-format
 msgid ""
 "section [%2d]: referenced as string table for section [%2d] '%s' but section "
 "link value is invalid\n"
 msgstr ""
 
-#: src/elflint.c:1649
+#: src/elflint.c:1653
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
 msgstr ""
 
-#: src/elflint.c:1654 src/elflint.c:1943
+#: src/elflint.c:1658 src/elflint.c:1947
 #, c-format
 msgid "section [%2d] '%s': sh_info not zero\n"
 msgstr ""
 
-#: src/elflint.c:1664
+#: src/elflint.c:1668
 #, c-format
 msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
 msgstr ""
 
-#: src/elflint.c:1672
+#: src/elflint.c:1676
 #, c-format
 msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
 msgstr ""
 
-#: src/elflint.c:1679
+#: src/elflint.c:1683
 #, c-format
 msgid "section [%2d] '%s': entry %zu: unknown tag\n"
 msgstr ""
 
-#: src/elflint.c:1690
+#: src/elflint.c:1694
 #, c-format
 msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
 msgstr ""
 
-#: src/elflint.c:1700
+#: src/elflint.c:1704
 #, c-format
 msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
 msgstr ""
 
-#: src/elflint.c:1718
+#: src/elflint.c:1722
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
 msgstr ""
 
-#: src/elflint.c:1731
+#: src/elflint.c:1735
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: pointer does not match address of section "
 "[%2d] '%s' referenced by sh_link\n"
 msgstr ""
 
-#: src/elflint.c:1774
+#: src/elflint.c:1778
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
 msgstr ""
 
-#: src/elflint.c:1789
+#: src/elflint.c:1793
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must be valid offset in section "
 "[%2d] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:1809 src/elflint.c:1837
+#: src/elflint.c:1813 src/elflint.c:1841
 #, c-format
 msgid "section [%2d] '%s': contains %s entry but not %s\n"
 msgstr ""
 
-#: src/elflint.c:1821
+#: src/elflint.c:1825
 #, c-format
 msgid "section [%2d] '%s': mandatory tag %s not present\n"
 msgstr ""
 
-#: src/elflint.c:1830
+#: src/elflint.c:1834
 #, c-format
 msgid "section [%2d] '%s': no hash section present\n"
 msgstr ""
 
-#: src/elflint.c:1845 src/elflint.c:1852
+#: src/elflint.c:1849 src/elflint.c:1856
 #, c-format
 msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
 msgstr ""
 
-#: src/elflint.c:1862 src/elflint.c:1866
+#: src/elflint.c:1866 src/elflint.c:1870
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
 msgstr ""
 
-#: src/elflint.c:1872
+#: src/elflint.c:1876
 #, c-format
 msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
 msgstr ""
 
-#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895
+#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
 msgstr ""
 
-#: src/elflint.c:1907
+#: src/elflint.c:1911
 #, c-format
 msgid ""
 "section [%2d] '%s': only relocatable files can have extended section index\n"
 msgstr ""
 
-#: src/elflint.c:1917
+#: src/elflint.c:1921
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index section not for symbol table\n"
 msgstr ""
 
-#: src/elflint.c:1921
+#: src/elflint.c:1925
 #, c-format
 msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
 msgstr ""
 
-#: src/elflint.c:1926
+#: src/elflint.c:1930
 #, c-format
 msgid "cannot get data for symbol section\n"
 msgstr ""
 
-#: src/elflint.c:1929
+#: src/elflint.c:1933
 #, c-format
 msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
 msgstr ""
 
-#: src/elflint.c:1938
+#: src/elflint.c:1942
 #, c-format
 msgid "section [%2d] '%s': extended index table too small for symbol table\n"
 msgstr ""
 
-#: src/elflint.c:1953
+#: src/elflint.c:1957
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
 "same symbol table\n"
 msgstr ""
 
-#: src/elflint.c:1970
+#: src/elflint.c:1974
 #, c-format
 msgid "symbol 0 should have zero extended section index\n"
 msgstr ""
 
-#: src/elflint.c:1982
+#: src/elflint.c:1986
 #, c-format
 msgid "cannot get data for symbol %zu\n"
 msgstr ""
 
-#: src/elflint.c:1987
+#: src/elflint.c:1991
 #, c-format
 msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
 msgstr ""
 
-#: src/elflint.c:2003 src/elflint.c:2054
+#: src/elflint.c:2007 src/elflint.c:2058
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
 msgstr ""
 
-#: src/elflint.c:2015 src/elflint.c:2066
+#: src/elflint.c:2019 src/elflint.c:2070
 #, c-format
 msgid "section [%2d] '%s': chain array too large\n"
 msgstr ""
 
-#: src/elflint.c:2029 src/elflint.c:2080
+#: src/elflint.c:2033 src/elflint.c:2084
 #, c-format
 msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2039
+#: src/elflint.c:2043
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2090
+#: src/elflint.c:2094
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2103
+#: src/elflint.c:2107
 #, c-format
 msgid "section [%2d] '%s': not enough data\n"
 msgstr ""
 
-#: src/elflint.c:2115
+#: src/elflint.c:2119
 #, c-format
 msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
 msgstr ""
 
-#: src/elflint.c:2131
+#: src/elflint.c:2135
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected at "
 "least %ld)\n"
 msgstr ""
 
-#: src/elflint.c:2140
+#: src/elflint.c:2144
 #, c-format
 msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
 msgstr ""
 
-#: src/elflint.c:2174
+#: src/elflint.c:2178
 #, c-format
 msgid ""
 "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
 msgstr ""
 
-#: src/elflint.c:2195
+#: src/elflint.c:2199
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
 "undefined\n"
 msgstr ""
 
-#: src/elflint.c:2208
+#: src/elflint.c:2212
 #, c-format
 msgid ""
 "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
 msgstr ""
 
-#: src/elflint.c:2217
+#: src/elflint.c:2221
 #, c-format
 msgid ""
 "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
 msgstr ""
 
-#: src/elflint.c:2247
+#: src/elflint.c:2251
 #, c-format
 msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2252
+#: src/elflint.c:2256
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2258
+#: src/elflint.c:2262
 #, c-format
 msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
 msgstr ""
 
-#: src/elflint.c:2271
+#: src/elflint.c:2275
 #, c-format
 msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
 msgstr ""
 
-#: src/elflint.c:2289
+#: src/elflint.c:2293
 #, c-format
 msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
 msgstr ""
 
-#: src/elflint.c:2293
+#: src/elflint.c:2297
 #, c-format
 msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
 msgstr ""
 
-#: src/elflint.c:2301
+#: src/elflint.c:2305
 #, c-format
 msgid "section [%2d] '%s': hash table entry size incorrect\n"
 msgstr ""
 
-#: src/elflint.c:2306
+#: src/elflint.c:2310
 #, c-format
 msgid "section [%2d] '%s': not marked to be allocated\n"
 msgstr ""
 
-#: src/elflint.c:2311
+#: src/elflint.c:2315
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table has not even room for initial administrative "
 "entries\n"
 msgstr ""
 
-#: src/elflint.c:2360
+#: src/elflint.c:2364
 #, c-format
 msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
 msgstr ""
 
-#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484
+#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488
 #, c-format
 msgid "hash section [%2zu] '%s' does not contain enough data\n"
 msgstr ""
 
-#: src/elflint.c:2405
+#: src/elflint.c:2409
 #, c-format
 msgid "hash section [%2zu] '%s' has zero bit mask words\n"
 msgstr ""
 
-#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497
+#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501
 #, c-format
 msgid "hash section [%2zu] '%s' uses too much data\n"
 msgstr ""
 
-#: src/elflint.c:2431
+#: src/elflint.c:2435
 #, c-format
 msgid ""
 "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
 "%<PRIu32>, nentries: %<PRIu32>\n"
 msgstr ""
 
-#: src/elflint.c:2518
+#: src/elflint.c:2522
 #, c-format
 msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
 msgstr ""
 
-#: src/elflint.c:2528 src/elflint.c:2532
+#: src/elflint.c:2532 src/elflint.c:2536
 #, c-format
 msgid "section [%2zu] '%s': reference to symbol index 0\n"
 msgstr ""
 
-#: src/elflint.c:2539
+#: src/elflint.c:2543
 #, c-format
 msgid ""
 "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
 "table in [%2zu] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:2551
+#: src/elflint.c:2555
 #, c-format
 msgid ""
 "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
 "table in [%2zu] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:2567
+#: src/elflint.c:2571
 #, c-format
 msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
 msgstr ""
 
-#: src/elflint.c:2587
+#: src/elflint.c:2591
 #, c-format
 msgid ""
 "section [%2d] '%s': section groups only allowed in relocatable object files\n"
 msgstr ""
 
-#: src/elflint.c:2598
+#: src/elflint.c:2602
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol table: %s\n"
 msgstr ""
 
-#: src/elflint.c:2603
+#: src/elflint.c:2607
 #, c-format
 msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
 msgstr ""
 
-#: src/elflint.c:2609
+#: src/elflint.c:2613
 #, c-format
 msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
 msgstr ""
 
-#: src/elflint.c:2614
+#: src/elflint.c:2618
 #, c-format
 msgid "section [%2d] '%s': sh_flags not zero\n"
 msgstr ""
 
-#: src/elflint.c:2621
+#: src/elflint.c:2625
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol for signature\n"
 msgstr ""
 
-#: src/elflint.c:2625
+#: src/elflint.c:2629
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol name for signature\n"
 msgstr ""
 
-#: src/elflint.c:2630
+#: src/elflint.c:2634
 #, c-format
 msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
 msgstr ""
 
-#: src/elflint.c:2636
+#: src/elflint.c:2640
 #, c-format
 msgid "section [%2d] '%s': sh_flags not set correctly\n"
 msgstr ""
 
-#: src/elflint.c:2642
+#: src/elflint.c:2646
 #, c-format
 msgid "section [%2d] '%s': cannot get data: %s\n"
 msgstr ""
 
-#: src/elflint.c:2651
+#: src/elflint.c:2655
 #, c-format
 msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
 msgstr ""
 
-#: src/elflint.c:2656
+#: src/elflint.c:2660
 #, c-format
 msgid "section [%2d] '%s': section group without flags word\n"
 msgstr ""
 
-#: src/elflint.c:2662
+#: src/elflint.c:2666
 #, c-format
 msgid "section [%2d] '%s': section group without member\n"
 msgstr ""
 
-#: src/elflint.c:2666
+#: src/elflint.c:2670
 #, c-format
 msgid "section [%2d] '%s': section group with only one member\n"
 msgstr ""
 
-#: src/elflint.c:2677
+#: src/elflint.c:2681
 #, c-format
 msgid "section [%2d] '%s': unknown section group flags\n"
 msgstr ""
 
-#: src/elflint.c:2689
+#: src/elflint.c:2693
 #, fuzzy, c-format
 msgid "section [%2d] '%s': section index %zu out of range\n"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/elflint.c:2698
+#: src/elflint.c:2702
 #, c-format
 msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
 msgstr ""
 
-#: src/elflint.c:2705
+#: src/elflint.c:2709
 #, c-format
 msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:2711
+#: src/elflint.c:2715
 #, c-format
 msgid ""
 "section [%2d] '%s': element %zu references section [%2d] '%s' without "
 "SHF_GROUP flag set\n"
 msgstr ""
 
-#: src/elflint.c:2718
+#: src/elflint.c:2722
 #, c-format
 msgid "section [%2d] '%s' is contained in more than one section group\n"
 msgstr ""
 
-#: src/elflint.c:2907
+#: src/elflint.c:2912
 #, c-format
 msgid ""
 "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
 "dynamic symbol table\n"
 msgstr ""
 
-#: src/elflint.c:2919
+#: src/elflint.c:2924
 #, c-format
 msgid ""
 "section [%2d] '%s' has different number of entries than symbol table [%2d] "
 "'%s'\n"
 msgstr ""
 
-#: src/elflint.c:2935
+#: src/elflint.c:2940
 #, c-format
 msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
 msgstr ""
 
-#: src/elflint.c:2951
+#: src/elflint.c:2956
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
 msgstr ""
 
-#: src/elflint.c:2959
+#: src/elflint.c:2964
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
 msgstr ""
 
-#: src/elflint.c:2973
+#: src/elflint.c:2978
 #, c-format
 msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
 msgstr ""
 
-#: src/elflint.c:2978
+#: src/elflint.c:2983
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for defined version\n"
 msgstr ""
 
-#: src/elflint.c:2988
+#: src/elflint.c:2993
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for requested version\n"
 msgstr ""
 
-#: src/elflint.c:3041
+#: src/elflint.c:3046
 #, c-format
 msgid "more than one version reference section present\n"
 msgstr ""
 
-#: src/elflint.c:3049 src/elflint.c:3196
+#: src/elflint.c:3054 src/elflint.c:3201
 #, c-format
 msgid "section [%2d] '%s': sh_link does not link to string table\n"
 msgstr ""
 
-#: src/elflint.c:3074 src/elflint.c:3250
+#: src/elflint.c:3079 src/elflint.c:3255
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong version %d\n"
 msgstr ""
 
-#: src/elflint.c:3081 src/elflint.c:3257
+#: src/elflint.c:3086 src/elflint.c:3262
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
 msgstr ""
 
-#: src/elflint.c:3091
+#: src/elflint.c:3096
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid file reference\n"
 msgstr ""
 
-#: src/elflint.c:3099
+#: src/elflint.c:3104
 #, c-format
 msgid "section [%2d] '%s': entry %d references unknown dependency\n"
 msgstr ""
 
-#: src/elflint.c:3111
+#: src/elflint.c:3116
 #, c-format
 msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
 msgstr ""
 
-#: src/elflint.c:3119
+#: src/elflint.c:3124
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
 "reference\n"
 msgstr ""
 
-#: src/elflint.c:3128
+#: src/elflint.c:3133
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
 "%#x, expected %#x\n"
 msgstr ""
 
-#: src/elflint.c:3137
+#: src/elflint.c:3142
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
 "name '%s'\n"
 msgstr ""
 
-#: src/elflint.c:3148
+#: src/elflint.c:3153
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
 msgstr ""
 
-#: src/elflint.c:3165 src/elflint.c:3341
+#: src/elflint.c:3170 src/elflint.c:3346
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
 msgstr ""
 
-#: src/elflint.c:3173 src/elflint.c:3349
+#: src/elflint.c:3178 src/elflint.c:3354
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
 "there are more entries\n"
 msgstr ""
 
-#: src/elflint.c:3188
+#: src/elflint.c:3193
 #, c-format
 msgid "more than one version definition section present\n"
 msgstr ""
 
-#: src/elflint.c:3235
+#: src/elflint.c:3240
 #, c-format
 msgid "section [%2d] '%s': more than one BASE definition\n"
 msgstr ""
 
-#: src/elflint.c:3239
+#: src/elflint.c:3244
 #, c-format
 msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
 msgstr ""
 
-#: src/elflint.c:3245
+#: src/elflint.c:3250
 #, c-format
 msgid "section [%2d] '%s': entry %d has unknown flag\n"
 msgstr ""
 
-#: src/elflint.c:3272
+#: src/elflint.c:3277
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid name reference\n"
 msgstr ""
 
-#: src/elflint.c:3279
+#: src/elflint.c:3284
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
 msgstr ""
 
-#: src/elflint.c:3287
+#: src/elflint.c:3292
 #, c-format
 msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
 msgstr ""
 
-#: src/elflint.c:3307
+#: src/elflint.c:3312
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
 msgstr ""
 
-#: src/elflint.c:3324
+#: src/elflint.c:3329
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
 msgstr ""
 
-#: src/elflint.c:3357
+#: src/elflint.c:3362
 #, c-format
 msgid "section [%2d] '%s': no BASE definition\n"
 msgstr ""
 
-#: src/elflint.c:3373
+#: src/elflint.c:3378
 #, c-format
 msgid "section [%2d] '%s': unknown parent version '%s'\n"
 msgstr ""
 
-#: src/elflint.c:3386
+#: src/elflint.c:3391
 #, c-format
 msgid "section [%2d] '%s': empty object attributes section\n"
 msgstr ""
 
-#: src/elflint.c:3407
+#: src/elflint.c:3412
 #, c-format
 msgid "section [%2d] '%s': unrecognized attribute format\n"
 msgstr ""
 
-#: src/elflint.c:3423
+#: src/elflint.c:3428
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3432
+#: src/elflint.c:3437
 #, c-format
 msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3444
+#: src/elflint.c:3449
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
 msgstr ""
 
-#: src/elflint.c:3461
+#: src/elflint.c:3466
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
 msgstr ""
 
-#: src/elflint.c:3470
+#: src/elflint.c:3475
 #, c-format
 msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3479
+#: src/elflint.c:3484
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
 msgstr ""
 
-#: src/elflint.c:3494
+#: src/elflint.c:3499
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
 msgstr ""
 
-#: src/elflint.c:3505
+#: src/elflint.c:3510
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
 msgstr ""
 
-#: src/elflint.c:3523
+#: src/elflint.c:3528
 #, c-format
 msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
 msgstr ""
 
-#: src/elflint.c:3534
+#: src/elflint.c:3539
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
 msgstr ""
 
-#: src/elflint.c:3547
+#: src/elflint.c:3552
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
 msgstr ""
 
-#: src/elflint.c:3551
+#: src/elflint.c:3556
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
 msgstr ""
 
-#: src/elflint.c:3561
+#: src/elflint.c:3566
 #, c-format
 msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
 msgstr ""
 
-#: src/elflint.c:3567
+#: src/elflint.c:3572
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3656
+#: src/elflint.c:3661
 #, c-format
 msgid "cannot get section header of zeroth section\n"
 msgstr ""
 
-#: src/elflint.c:3660
+#: src/elflint.c:3665
 #, c-format
 msgid "zeroth section has nonzero name\n"
 msgstr ""
 
-#: src/elflint.c:3662
+#: src/elflint.c:3667
 #, c-format
 msgid "zeroth section has nonzero type\n"
 msgstr ""
 
-#: src/elflint.c:3664
+#: src/elflint.c:3669
 #, c-format
 msgid "zeroth section has nonzero flags\n"
 msgstr ""
 
-#: src/elflint.c:3666
+#: src/elflint.c:3671
 #, c-format
 msgid "zeroth section has nonzero address\n"
 msgstr ""
 
-#: src/elflint.c:3668
+#: src/elflint.c:3673
 #, c-format
 msgid "zeroth section has nonzero offset\n"
 msgstr ""
 
-#: src/elflint.c:3670
+#: src/elflint.c:3675
 #, c-format
 msgid "zeroth section has nonzero align value\n"
 msgstr ""
 
-#: src/elflint.c:3672
+#: src/elflint.c:3677
 #, c-format
 msgid "zeroth section has nonzero entry size value\n"
 msgstr ""
 
-#: src/elflint.c:3675
+#: src/elflint.c:3680
 #, c-format
 msgid ""
 "zeroth section has nonzero size value while ELF header has nonzero shnum "
 "value\n"
 msgstr ""
 
-#: src/elflint.c:3679
+#: src/elflint.c:3684
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
 "overflow in shstrndx\n"
 msgstr ""
 
-#: src/elflint.c:3683
+#: src/elflint.c:3688
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
 "overflow in phnum\n"
 msgstr ""
 
-#: src/elflint.c:3700
+#: src/elflint.c:3706
 #, c-format
 msgid "cannot get section header for section [%2zu] '%s': %s\n"
 msgstr ""
 
-#: src/elflint.c:3709
+#: src/elflint.c:3715
 #, c-format
 msgid "section [%2zu]: invalid name\n"
 msgstr ""
 
-#: src/elflint.c:3736
+#: src/elflint.c:3742
 #, c-format
 msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
 msgstr ""
 
-#: src/elflint.c:3752
+#: src/elflint.c:3760
 #, c-format
 msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
 msgstr ""
 
-#: src/elflint.c:3769
+#: src/elflint.c:3778
 #, c-format
 msgid ""
 "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
 msgstr ""
 
-#: src/elflint.c:3787
+#: src/elflint.c:3796
 #, c-format
 msgid "section [%2zu] '%s' present in object file\n"
 msgstr ""
 
-#: src/elflint.c:3793 src/elflint.c:3825
+#: src/elflint.c:3802 src/elflint.c:3834
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
 msgstr ""
 
-#: src/elflint.c:3798 src/elflint.c:3830
+#: src/elflint.c:3807 src/elflint.c:3839
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
 "segments\n"
 msgstr ""
 
-#: src/elflint.c:3806
+#: src/elflint.c:3815
 #, c-format
 msgid ""
 "section [%2zu] '%s' is extension section index table in non-object file\n"
 msgstr ""
 
-#: src/elflint.c:3849
+#: src/elflint.c:3858
 #, c-format
 msgid "section [%2zu] '%s': size not multiple of entry size\n"
 msgstr ""
 
-#: src/elflint.c:3854
+#: src/elflint.c:3863
 #, c-format
 msgid "cannot get section header\n"
 msgstr ""
 
-#: src/elflint.c:3864
+#: src/elflint.c:3873
 #, c-format
 msgid "section [%2zu] '%s' has unsupported type %d\n"
 msgstr ""
 
-#: src/elflint.c:3878
+#: src/elflint.c:3888
 #, c-format
 msgid ""
 "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:3885
+#: src/elflint.c:3895
 #, c-format
 msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:3893
+#: src/elflint.c:3903
 #, c-format
 msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
 msgstr ""
 
-#: src/elflint.c:3901
+#: src/elflint.c:3913
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
+msgstr "konnte Abschnittsdaten nicht holen: %s"
+
+#: src/elflint.c:3918
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
+msgstr "konnte Abschnittsdaten nicht holen: %s"
+
+#: src/elflint.c:3924
+#, c-format
+msgid ""
+"section [%2zu] '%s': compressed section with no compression header: %s\n"
+msgstr ""
+
+#: src/elflint.c:3930
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in link value\n"
 msgstr ""
 
-#: src/elflint.c:3906
+#: src/elflint.c:3935
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in info value\n"
 msgstr ""
 
-#: src/elflint.c:3913
+#: src/elflint.c:3942
 #, c-format
 msgid "section [%2zu] '%s': strings flag set without merge flag\n"
 msgstr ""
 
-#: src/elflint.c:3918
+#: src/elflint.c:3947
 #, c-format
 msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
 msgstr ""
 
-#: src/elflint.c:3936
+#: src/elflint.c:3965
 #, c-format
 msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
 msgstr ""
 
-#: src/elflint.c:3945
+#: src/elflint.c:3974
 #, c-format
 msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
 msgstr ""
 
-#: src/elflint.c:3952
+#: src/elflint.c:3981
 #, c-format
 msgid "section [%2zu] '%s' is both executable and writable\n"
 msgstr ""
 
-#: src/elflint.c:3982
+#: src/elflint.c:4012
 #, c-format
 msgid ""
 "section [%2zu] '%s' not fully contained in segment of program header entry "
 "%d\n"
 msgstr ""
 
-#: src/elflint.c:3992
+#: src/elflint.c:4022
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
 "program header entry %d\n"
 msgstr ""
 
-#: src/elflint.c:4018
+#: src/elflint.c:4048
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
 "program header entry %d and file contents is non-zero\n"
 msgstr ""
 
-#: src/elflint.c:4029
+#: src/elflint.c:4059
 #, c-format
 msgid ""
 "section [%2zu] '%s' has not type NOBITS but is not read from the file in "
 "segment of program header entry %d\n"
 msgstr ""
 
-#: src/elflint.c:4040
+#: src/elflint.c:4070
 #, c-format
 msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
 msgstr ""
 
-#: src/elflint.c:4050
+#: src/elflint.c:4080
 #, c-format
 msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
 msgstr ""
 
-#: src/elflint.c:4060
+#: src/elflint.c:4090
 #, c-format
 msgid ""
 "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
 msgstr ""
 
-#: src/elflint.c:4066
+#: src/elflint.c:4096
 #, c-format
 msgid ""
 "section [%2zu] '%s': ELF header says this is the section header string table "
 "but type is not SHT_TYPE\n"
 msgstr ""
 
-#: src/elflint.c:4074
+#: src/elflint.c:4104
 #, c-format
 msgid ""
 "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
 msgstr ""
 
-#: src/elflint.c:4125
+#: src/elflint.c:4155
 #, c-format
 msgid "more than one version symbol table present\n"
 msgstr ""
 
-#: src/elflint.c:4148
+#: src/elflint.c:4178
 #, c-format
 msgid "INTERP program header entry but no .interp section\n"
 msgstr ""
 
-#: src/elflint.c:4159
+#: src/elflint.c:4189
 #, c-format
 msgid ""
 "loadable segment [%u] is executable but contains no executable sections\n"
 msgstr ""
 
-#: src/elflint.c:4165
+#: src/elflint.c:4195
 #, c-format
 msgid "loadable segment [%u] is writable but contains no writable sections\n"
 msgstr ""
 
-#: src/elflint.c:4176
+#: src/elflint.c:4206
 #, c-format
 msgid ""
 "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
 "exist\n"
 msgstr ""
 
-#: src/elflint.c:4189
+#: src/elflint.c:4219
 #, c-format
 msgid "duplicate version index %d\n"
 msgstr ""
 
-#: src/elflint.c:4203
+#: src/elflint.c:4233
 #, c-format
 msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
 msgstr ""
 
-#: src/elflint.c:4252
+#: src/elflint.c:4282
 #, c-format
 msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
 msgstr ""
 
-#: src/elflint.c:4256
+#: src/elflint.c:4286
 #, c-format
 msgid ""
 "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 
-#: src/elflint.c:4279
+#: src/elflint.c:4309
 #, c-format
 msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 
-#: src/elflint.c:4283
+#: src/elflint.c:4313
 #, c-format
 msgid ""
 "section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 
-#: src/elflint.c:4300
+#: src/elflint.c:4330
 #, c-format
 msgid "phdr[%d]: no note entries defined for the type of file\n"
 msgstr ""
 
-#: src/elflint.c:4319
+#: src/elflint.c:4349
 #, c-format
 msgid "phdr[%d]: cannot get content of note section: %s\n"
 msgstr ""
 
-#: src/elflint.c:4322
+#: src/elflint.c:4352
 #, c-format
 msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
 msgstr ""
 
-#: src/elflint.c:4343
+#: src/elflint.c:4373
 #, c-format
 msgid "section [%2d] '%s': no note entries defined for the type of file\n"
 msgstr ""
 
-#: src/elflint.c:4350
+#: src/elflint.c:4380
 #, c-format
 msgid "section [%2d] '%s': cannot get content of note section\n"
 msgstr ""
 
-#: src/elflint.c:4353
+#: src/elflint.c:4383
 #, c-format
 msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
 msgstr ""
 
-#: src/elflint.c:4371
+#: src/elflint.c:4401
 #, c-format
 msgid ""
 "only executables, shared objects, and core files can have program headers\n"
 msgstr ""
 
-#: src/elflint.c:4386
+#: src/elflint.c:4416
 #, c-format
 msgid "cannot get program header entry %d: %s\n"
 msgstr ""
 
-#: src/elflint.c:4395
+#: src/elflint.c:4425
 #, c-format
 msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:4406
+#: src/elflint.c:4436
 #, c-format
 msgid "more than one INTERP entry in program header\n"
 msgstr ""
 
-#: src/elflint.c:4414
+#: src/elflint.c:4444
 #, c-format
 msgid "more than one TLS entry in program header\n"
 msgstr ""
 
-#: src/elflint.c:4421
+#: src/elflint.c:4451
 #, c-format
 msgid "static executable cannot have dynamic sections\n"
 msgstr ""
 
-#: src/elflint.c:4435
+#: src/elflint.c:4465
 #, c-format
 msgid "dynamic section reference in program header has wrong offset\n"
 msgstr ""
 
-#: src/elflint.c:4438
+#: src/elflint.c:4468
 #, c-format
 msgid "dynamic section size mismatch in program and section header\n"
 msgstr ""
 
-#: src/elflint.c:4448
+#: src/elflint.c:4478
 #, c-format
 msgid "more than one GNU_RELRO entry in program header\n"
 msgstr ""
 
-#: src/elflint.c:4469
+#: src/elflint.c:4499
 #, c-format
 msgid "loadable segment GNU_RELRO applies to is not writable\n"
 msgstr ""
 
-#: src/elflint.c:4480
+#: src/elflint.c:4510
 #, c-format
 msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
 msgstr ""
 
-#: src/elflint.c:4487
+#: src/elflint.c:4517
 #, c-format
 msgid ""
 "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
 msgstr ""
 
-#: src/elflint.c:4496 src/elflint.c:4519
+#: src/elflint.c:4526 src/elflint.c:4549
 #, c-format
 msgid "%s segment not contained in a loaded segment\n"
 msgstr ""
 
-#: src/elflint.c:4525
+#: src/elflint.c:4555
 #, c-format
 msgid "program header offset in ELF header and PHDR entry do not match"
 msgstr ""
 
-#: src/elflint.c:4550
+#: src/elflint.c:4580
 #, c-format
 msgid "call frame search table reference in program header has wrong offset\n"
 msgstr ""
 
-#: src/elflint.c:4553
+#: src/elflint.c:4583
 #, c-format
 msgid "call frame search table size mismatch in program and section header\n"
 msgstr ""
 
-#: src/elflint.c:4566
+#: src/elflint.c:4596
 #, c-format
 msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
 msgstr ""
 
-#: src/elflint.c:4574
+#: src/elflint.c:4604
 #, c-format
 msgid "call frame search table must be allocated\n"
 msgstr ""
 
-#: src/elflint.c:4577
+#: src/elflint.c:4607
 #, c-format
 msgid "section [%2zu] '%s' must be allocated\n"
 msgstr ""
 
-#: src/elflint.c:4581
+#: src/elflint.c:4611
 #, c-format
 msgid "call frame search table must not be writable\n"
 msgstr ""
 
-#: src/elflint.c:4584
+#: src/elflint.c:4614
 #, c-format
 msgid "section [%2zu] '%s' must not be writable\n"
 msgstr ""
 
-#: src/elflint.c:4589
+#: src/elflint.c:4619
 #, c-format
 msgid "call frame search table must not be executable\n"
 msgstr ""
 
-#: src/elflint.c:4592
+#: src/elflint.c:4622
 #, c-format
 msgid "section [%2zu] '%s' must not be executable\n"
 msgstr ""
 
-#: src/elflint.c:4603
+#: src/elflint.c:4633
 #, c-format
 msgid "program header entry %d: file size greater than memory size\n"
 msgstr ""
 
-#: src/elflint.c:4610
+#: src/elflint.c:4640
 #, c-format
 msgid "program header entry %d: alignment not a power of 2\n"
 msgstr ""
 
-#: src/elflint.c:4613
+#: src/elflint.c:4643
 #, c-format
 msgid ""
 "program header entry %d: file offset and virtual address not module of "
 "alignment\n"
 msgstr ""
 
-#: src/elflint.c:4626
+#: src/elflint.c:4656
 #, c-format
 msgid ""
 "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
 "program header entry"
 msgstr ""
 
-#: src/elflint.c:4660
+#: src/elflint.c:4690
 #, c-format
 msgid "cannot read ELF header: %s\n"
 msgstr ""
 
-#: src/elflint.c:4686
+#: src/elflint.c:4716
 #, c-format
 msgid "text relocation flag set but not needed\n"
 msgstr ""
@@ -3021,7 +3075,7 @@
 msgid "Locate source of text relocations in FILEs (a.out by default)."
 msgstr ""
 
-#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83
+#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83
 #: src/strings.c:88 src/strip.c:95
 msgid "[FILE...]"
 msgstr ""
@@ -3508,8 +3562,8 @@
 msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
 msgstr ""
 
-#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527
-#: src/readelf.c:829 src/strip.c:589
+#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852
+#: src/strip.c:589
 #, c-format
 msgid "cannot determine number of sections: %s"
 msgstr ""
@@ -3740,7 +3794,7 @@
 msgid "cannot get header of 0th section: %s"
 msgstr ""
 
-#: src/ldgeneric.c:6930 src/unstrip.c:1893
+#: src/ldgeneric.c:6930 src/unstrip.c:1929
 #, c-format
 msgid "cannot update ELF header: %s"
 msgstr ""
@@ -3806,44 +3860,44 @@
 msgid "default visibility set as local and global"
 msgstr "Standard-Sichtbarkeit auf lokal und global gesetzt"
 
-#: src/nm.c:65 src/strip.c:67
+#: src/nm.c:66 src/strip.c:67
 msgid "Output selection:"
 msgstr ""
 
-#: src/nm.c:66
+#: src/nm.c:67
 msgid "Display debugger-only symbols"
 msgstr ""
 
-#: src/nm.c:67
+#: src/nm.c:68
 msgid "Display only defined symbols"
 msgstr "Zeige nur definierte Symbole"
 
-#: src/nm.c:70
+#: src/nm.c:71
 msgid "Display dynamic symbols instead of normal symbols"
 msgstr "Zeige dynamische Symbole anstelle normaler Symbole"
 
-#: src/nm.c:71
+#: src/nm.c:72
 msgid "Display only external symbols"
 msgstr "Zeige nur externe Symbole"
 
-#: src/nm.c:72
+#: src/nm.c:73
 msgid "Display only undefined symbols"
 msgstr "Zeige nur undefinierte Symbole"
 
-#: src/nm.c:74
+#: src/nm.c:75
 msgid "Include index for symbols from archive members"
 msgstr ""
 
-#: src/nm.c:76 src/size.c:57
+#: src/nm.c:77 src/size.c:57
 msgid "Output format:"
 msgstr "Ausgabeformat:"
 
-#: src/nm.c:78
+#: src/nm.c:79
 #, fuzzy
 msgid "Print name of the input file before every symbol"
 msgstr "Zeige Name der Eingabedatei vor jedem Symbol"
 
-#: src/nm.c:81
+#: src/nm.c:82
 msgid ""
 "Use the output format FORMAT.  FORMAT can be `bsd', `sysv' or `posix'.  The "
 "default is `sysv'"
@@ -3851,74 +3905,74 @@
 "Benutze das Ausgabeformat FORMAT. FORMAT kann `bsd', `sysv' or `posix' sein. "
 "Der Standard ist `sysv'"
 
-#: src/nm.c:83
+#: src/nm.c:84
 msgid "Same as --format=bsd"
 msgstr "Genau wie --format=bsd"
 
-#: src/nm.c:84
+#: src/nm.c:85
 msgid "Same as --format=posix"
 msgstr "Genau wie --format=posix"
 
-#: src/nm.c:85 src/size.c:63
+#: src/nm.c:86 src/size.c:63
 msgid "Use RADIX for printing symbol values"
 msgstr "Benutze RADIX zur Ausgabe von Symbolwerten"
 
-#: src/nm.c:86
+#: src/nm.c:87
 #, fuzzy
 msgid "Mark special symbols"
 msgstr "Kennzeichne schwache Symbole"
 
-#: src/nm.c:88
+#: src/nm.c:89
 #, fuzzy
 msgid "Print size of defined symbols"
 msgstr "Zeige Grösse der definierten Symbole"
 
-#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72
+#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72
 msgid "Output options:"
 msgstr "Ausgabeoptionen:"
 
-#: src/nm.c:91
+#: src/nm.c:92
 msgid "Sort symbols numerically by address"
 msgstr "Symbole anhand der Adresse numerisch sortieren"
 
-#: src/nm.c:93
+#: src/nm.c:94
 msgid "Do not sort the symbols"
 msgstr "Symbole nicht sortieren"
 
-#: src/nm.c:94
+#: src/nm.c:95
 msgid "Reverse the sense of the sort"
 msgstr "Sortierreihenfolge umkehren"
 
-#: src/nm.c:97
+#: src/nm.c:98
 msgid "Decode low-level symbol names into source code names"
 msgstr ""
 
-#: src/nm.c:104
+#: src/nm.c:105
 msgid "List symbols from FILEs (a.out by default)."
 msgstr ""
 
-#: src/nm.c:115 src/objdump.c:79
+#: src/nm.c:116 src/objdump.c:79
 #, fuzzy
 msgid "Output formatting"
 msgstr "Ausgabeformat:"
 
-#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127
+#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127
 #, fuzzy, c-format
 msgid "%s: INTERNAL ERROR %d (%s): %s"
 msgstr "%s: INTERNER FEHLER %d (%s-%s): %s"
 
-#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325
+#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325
 #: src/strip.c:2280
 #, c-format
 msgid "while closing '%s'"
 msgstr "beim Schliessen von '%s'"
 
-#: src/nm.c:416 src/objdump.c:292 src/strip.c:391
+#: src/nm.c:417 src/objdump.c:292 src/strip.c:391
 #, c-format
 msgid "%s: File format not recognized"
 msgstr "%s: Dateiformat nicht erkannt"
 
-#: src/nm.c:456
+#: src/nm.c:457
 #, fuzzy
 msgid ""
 "\n"
@@ -3927,42 +3981,42 @@
 "\n"
 "Archiv-Index:"
 
-#: src/nm.c:465
+#: src/nm.c:466
 #, c-format
 msgid "invalid offset %zu for symbol %s"
 msgstr "ungültiger Offset %zu für Symbol %s"
 
-#: src/nm.c:470
+#: src/nm.c:471
 #, c-format
 msgid "%s in %s\n"
 msgstr ""
 
-#: src/nm.c:478
+#: src/nm.c:479
 #, c-format
 msgid "cannot reset archive offset to beginning"
 msgstr ""
 
-#: src/nm.c:503 src/objdump.c:340
+#: src/nm.c:504 src/objdump.c:340
 #, c-format
 msgid "%s%s%s: file format not recognized"
 msgstr "%s%s%s: Dateiformat nicht erkannt"
 
-#: src/nm.c:715
+#: src/nm.c:719
 #, c-format
 msgid "cannot create search tree"
 msgstr "Kann Suchbaum nicht erstellen"
 
-#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536
-#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579
-#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460
-#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239
-#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461
-#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520
+#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545
+#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667
+#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558
+#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347
+#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603
+#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520
 #, c-format
 msgid "cannot get section header string table index"
 msgstr ""
 
-#: src/nm.c:781
+#: src/nm.c:787
 #, c-format
 msgid ""
 "\n"
@@ -3975,29 +4029,29 @@
 "Symbole aus %s:\n"
 "\n"
 
-#: src/nm.c:784
+#: src/nm.c:790
 #, c-format
 msgid ""
 "%*s%-*s %-*s Class  Type     %-*s %*s Section\n"
 "\n"
 msgstr ""
 
-#: src/nm.c:1171
+#: src/nm.c:1232
 #, fuzzy, c-format
 msgid "%s: entry size in section %zd `%s' is not what we expect"
 msgstr "%s: entry size in section `%s' is not what we expect"
 
-#: src/nm.c:1176
+#: src/nm.c:1237
 #, fuzzy, c-format
 msgid "%s: size of section %zd `%s' is not multiple of entry size"
 msgstr "%s: entry size in section `%s' is not what we expect"
 
-#: src/nm.c:1434
+#: src/nm.c:1537
 #, c-format
 msgid "%s%s%s%s: Invalid operation"
 msgstr "%s%s%s%s: Ungültige Operation"
 
-#: src/nm.c:1491
+#: src/nm.c:1594
 #, c-format
 msgid "%s%s%s: no symbols"
 msgstr "%s%s%s: keine Symbole"
@@ -4031,7 +4085,7 @@
 msgid "Show information from FILEs (a.out by default)."
 msgstr ""
 
-#: src/objdump.c:232 src/readelf.c:473
+#: src/objdump.c:232 src/readelf.c:479
 msgid "No operation specified.\n"
 msgstr "Keine Operation angegeben.\n"
 
@@ -4040,11 +4094,11 @@
 msgid "while close `%s'"
 msgstr ""
 
-#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072
+#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160
 msgid "INVALID SYMBOL"
 msgstr ""
 
-#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108
+#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196
 msgid "INVALID SECTION"
 msgstr ""
 
@@ -4093,435 +4147,459 @@
 msgid "error while freeing sub-ELF descriptor: %s"
 msgstr ""
 
-#: src/readelf.c:71
+#: src/readelf.c:72
 #, fuzzy
 msgid "ELF input selection:"
 msgstr "Eingabeauswahloptionen:"
 
-#: src/readelf.c:73
+#: src/readelf.c:74
 msgid ""
 "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
 msgstr ""
 
-#: src/readelf.c:75
+#: src/readelf.c:76
 #, fuzzy
 msgid "ELF output selection:"
 msgstr "Eingabeauswahloptionen:"
 
-#: src/readelf.c:77
+#: src/readelf.c:78
 msgid "All these plus -p .strtab -p .dynstr -p .comment"
 msgstr ""
 
-#: src/readelf.c:78
+#: src/readelf.c:79
 msgid "Display the dynamic segment"
 msgstr ""
 
-#: src/readelf.c:79
+#: src/readelf.c:80
 msgid "Display the ELF file header"
 msgstr ""
 
-#: src/readelf.c:81
+#: src/readelf.c:82
 msgid "Display histogram of bucket list lengths"
 msgstr ""
 
-#: src/readelf.c:82
+#: src/readelf.c:83
 msgid "Display the program headers"
 msgstr "Programm-Köpfe anzeigen"
 
-#: src/readelf.c:84
+#: src/readelf.c:85
 msgid "Display relocations"
 msgstr "Relocations anzeigen"
 
-#: src/readelf.c:85
+#: src/readelf.c:86
 #, fuzzy
 msgid "Display the sections' headers"
 msgstr "Programm-Köpfe anzeigen"
 
-#: src/readelf.c:87
+#: src/readelf.c:88
 msgid "Display the symbol table"
 msgstr "Symboltabelle anzeigen"
 
-#: src/readelf.c:88
+#: src/readelf.c:89
 msgid "Display versioning information"
 msgstr "Versionierungsinformationen anzeigen"
 
-#: src/readelf.c:89
+#: src/readelf.c:90
 #, fuzzy
 msgid "Display the ELF notes"
 msgstr "Kernnotizen anzeigen"
 
-#: src/readelf.c:91
+#: src/readelf.c:92
 #, fuzzy
 msgid "Display architecture specific information, if any"
 msgstr "Architekturspezifische Informationen anzeigen (falls vorhanden)"
 
-#: src/readelf.c:93
+#: src/readelf.c:94
 msgid "Display sections for exception handling"
 msgstr "Abschnitte für Ausnahmebehandlung anzeigen"
 
-#: src/readelf.c:95
+#: src/readelf.c:96
 msgid "Additional output selection:"
 msgstr ""
 
-#: src/readelf.c:97
+#: src/readelf.c:98
 msgid ""
 "Display DWARF section content.  SECTION can be one of abbrev, aranges, "
 "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, "
 "pubnames, str, macinfo, macro or exception"
 msgstr ""
 
-#: src/readelf.c:101
+#: src/readelf.c:102
 msgid "Dump the uninterpreted contents of SECTION, by number or name"
 msgstr ""
 
-#: src/readelf.c:103
+#: src/readelf.c:104
 msgid "Print string contents of sections"
 msgstr ""
 
-#: src/readelf.c:106
+#: src/readelf.c:107
 msgid "Display the symbol index of an archive"
 msgstr "Symbolindex des Archivs anzeigen"
 
-#: src/readelf.c:108
+#: src/readelf.c:109
 msgid "Output control:"
 msgstr "Ausgabekontrolle:"
 
-#: src/readelf.c:110
+#: src/readelf.c:111
 msgid "Do not find symbol names for addresses in DWARF data"
 msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen"
 
-#: src/readelf.c:112
+#: src/readelf.c:113
 #, fuzzy
 msgid ""
 "Display just offsets instead of resolving values to addresses in DWARF data"
 msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen"
 
-#: src/readelf.c:114
+#: src/readelf.c:115
 msgid "Ignored for compatibility (lines always wide)"
 msgstr ""
 
-#: src/readelf.c:119
+#: src/readelf.c:117
+msgid ""
+"Show compression information for compressed sections (when used with -S); "
+"decompress section before dumping data (when used with -p or -x)"
+msgstr ""
+
+#: src/readelf.c:122
 msgid "Print information from ELF file in human-readable form."
 msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben."
 
-#: src/readelf.c:441
+#: src/readelf.c:447
 #, c-format
 msgid "Unknown DWARF debug section `%s'.\n"
 msgstr ""
 
-#: src/readelf.c:520 src/readelf.c:631
+#: src/readelf.c:529 src/readelf.c:640
 #, c-format
 msgid "cannot generate Elf descriptor: %s"
 msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
 
-#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269
+#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347
 #, c-format
 msgid "cannot get section: %s"
 msgstr ""
 
-#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481
-#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543
-#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083
-#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508
-#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855
+#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623
+#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577
+#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118
+#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543
+#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891
 #, c-format
 msgid "cannot get section header: %s"
 msgstr ""
 
-#: src/readelf.c:562
+#: src/readelf.c:571
 #, fuzzy, c-format
 msgid "cannot get section name"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772
-#: src/readelf.c:7949
+#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880
+#: src/readelf.c:8057
 #, c-format
 msgid "cannot get %s content: %s"
 msgstr ""
 
-#: src/readelf.c:587
+#: src/readelf.c:596
 #, fuzzy, c-format
 msgid "cannot create temp file '%s'"
 msgstr "neue Datei konnte nicht angelegt werden"
 
-#: src/readelf.c:596
+#: src/readelf.c:605
 #, fuzzy, c-format
 msgid "cannot write section data"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648
+#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657
 #, c-format
 msgid "error while closing Elf descriptor: %s"
 msgstr ""
 
-#: src/readelf.c:609
+#: src/readelf.c:618
 #, fuzzy, c-format
 msgid "error while rewinding file descriptor"
 msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
 
-#: src/readelf.c:643
+#: src/readelf.c:652
 #, c-format
 msgid "'%s' is not an archive, cannot print archive index"
 msgstr ""
 
-#: src/readelf.c:742
+#: src/readelf.c:751
 #, fuzzy, c-format
 msgid "No such section '%s' in '%s'"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/readelf.c:769
+#: src/readelf.c:778
 #, c-format
 msgid "cannot stat input file"
 msgstr ""
 
-#: src/readelf.c:771
+#: src/readelf.c:780
 #, c-format
 msgid "input file is empty"
 msgstr ""
 
-#: src/readelf.c:773
+#: src/readelf.c:782
 #, c-format
 msgid "failed reading '%s': %s"
 msgstr "Konnte '%s' nicht lesen: %s"
 
-#: src/readelf.c:814
+#: src/readelf.c:837
 #, c-format
 msgid "cannot read ELF header: %s"
 msgstr ""
 
-#: src/readelf.c:822
+#: src/readelf.c:845
 #, c-format
 msgid "cannot create EBL handle"
 msgstr ""
 
-#: src/readelf.c:835
+#: src/readelf.c:858
 #, fuzzy, c-format
 msgid "cannot determine number of program headers: %s"
 msgstr "konnte Programm-Kopf nicht erstellen: %s"
 
-#: src/readelf.c:921
+#: src/readelf.c:948
 msgid "NONE (None)"
 msgstr ""
 
-#: src/readelf.c:922
+#: src/readelf.c:949
 msgid "REL (Relocatable file)"
 msgstr ""
 
-#: src/readelf.c:923
+#: src/readelf.c:950
 msgid "EXEC (Executable file)"
 msgstr ""
 
-#: src/readelf.c:924
+#: src/readelf.c:951
 msgid "DYN (Shared object file)"
 msgstr ""
 
-#: src/readelf.c:925
+#: src/readelf.c:952
 msgid "CORE (Core file)"
 msgstr ""
 
-#: src/readelf.c:930
+#: src/readelf.c:957
 #, c-format
 msgid "OS Specific: (%x)\n"
 msgstr ""
 
-#: src/readelf.c:932
+#: src/readelf.c:959
 #, c-format
 msgid "Processor Specific: (%x)\n"
 msgstr ""
 
-#: src/readelf.c:942
+#: src/readelf.c:969
 msgid ""
 "ELF Header:\n"
 "  Magic:  "
 msgstr ""
 
-#: src/readelf.c:946
+#: src/readelf.c:973
 #, c-format
 msgid ""
 "\n"
 "  Class:                             %s\n"
 msgstr ""
 
-#: src/readelf.c:951
+#: src/readelf.c:978
 #, fuzzy, c-format
 msgid "  Data:                              %s\n"
 msgstr "  Daten:                             %s\n"
 
-#: src/readelf.c:957
+#: src/readelf.c:984
 #, c-format
 msgid "  Ident Version:                     %hhd %s\n"
 msgstr ""
 
-#: src/readelf.c:959 src/readelf.c:976
+#: src/readelf.c:986 src/readelf.c:1003
 msgid "(current)"
 msgstr "(aktuell)"
 
-#: src/readelf.c:963
+#: src/readelf.c:990
 #, c-format
 msgid "  OS/ABI:                            %s\n"
 msgstr ""
 
-#: src/readelf.c:966
+#: src/readelf.c:993
 #, c-format
 msgid "  ABI Version:                       %hhd\n"
 msgstr ""
 
-#: src/readelf.c:969
+#: src/readelf.c:996
 msgid "  Type:                              "
 msgstr "  Typ:                               "
 
-#: src/readelf.c:972
+#: src/readelf.c:999
 #, c-format
 msgid "  Machine:                           %s\n"
 msgstr ""
 
-#: src/readelf.c:974
+#: src/readelf.c:1001
 #, c-format
 msgid "  Version:                           %d %s\n"
 msgstr ""
 
-#: src/readelf.c:978
+#: src/readelf.c:1005
 #, c-format
 msgid "  Entry point address:               %#<PRIx64>\n"
 msgstr ""
 
-#: src/readelf.c:981
+#: src/readelf.c:1008
 #, c-format
 msgid "  Start of program headers:          %<PRId64> %s\n"
 msgstr ""
 
-#: src/readelf.c:982 src/readelf.c:985
+#: src/readelf.c:1009 src/readelf.c:1012
 msgid "(bytes into file)"
 msgstr ""
 
-#: src/readelf.c:984
+#: src/readelf.c:1011
 #, c-format
 msgid "  Start of section headers:          %<PRId64> %s\n"
 msgstr ""
 
-#: src/readelf.c:987
+#: src/readelf.c:1014
 #, c-format
 msgid "  Flags:                             %s\n"
 msgstr ""
 
-#: src/readelf.c:990
+#: src/readelf.c:1017
 #, c-format
 msgid "  Size of this header:               %<PRId16> %s\n"
 msgstr ""
 
-#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011
+#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038
 msgid "(bytes)"
 msgstr "(Bytes)"
 
-#: src/readelf.c:993
+#: src/readelf.c:1020
 #, c-format
 msgid "  Size of program header entries:    %<PRId16> %s\n"
 msgstr ""
 
-#: src/readelf.c:996
+#: src/readelf.c:1023
 #, c-format
 msgid "  Number of program headers entries: %<PRId16>"
 msgstr ""
 
-#: src/readelf.c:1003
+#: src/readelf.c:1030
 #, c-format
 msgid " (%<PRIu32> in [0].sh_info)"
 msgstr ""
 
-#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037
+#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064
 msgid " ([0] not available)"
 msgstr ""
 
-#: src/readelf.c:1010
+#: src/readelf.c:1037
 #, c-format
 msgid "  Size of section header entries:    %<PRId16> %s\n"
 msgstr ""
 
-#: src/readelf.c:1013
+#: src/readelf.c:1040
 #, c-format
 msgid "  Number of section headers entries: %<PRId16>"
 msgstr ""
 
-#: src/readelf.c:1020
+#: src/readelf.c:1047
 #, c-format
 msgid " (%<PRIu32> in [0].sh_size)"
 msgstr ""
 
-#: src/readelf.c:1033
+#: src/readelf.c:1060
 #, c-format
 msgid " (%<PRIu32> in [0].sh_link)"
 msgstr ""
 
-#: src/readelf.c:1041
+#: src/readelf.c:1068
 #, c-format
 msgid ""
 "  Section header string table index: XINDEX%s\n"
 "\n"
 msgstr ""
 
-#: src/readelf.c:1045
+#: src/readelf.c:1072
 #, c-format
 msgid ""
 "  Section header string table index: %<PRId16>\n"
 "\n"
 msgstr ""
 
-#: src/readelf.c:1077
+#: src/readelf.c:1115
 #, c-format
 msgid ""
 "There are %d section headers, starting at offset %#<PRIx64>:\n"
 "\n"
 msgstr ""
 
-#: src/readelf.c:1087
+#: src/readelf.c:1125
 msgid "Section Headers:"
 msgstr ""
 
-#: src/readelf.c:1090
+#: src/readelf.c:1128
 msgid ""
 "[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk "
 "Inf Al"
 msgstr ""
 
-#: src/readelf.c:1092
+#: src/readelf.c:1130
 msgid ""
 "[Nr] Name                 Type         Addr             Off      Size     ES "
 "Flags Lk Inf Al"
 msgstr ""
 
-#: src/readelf.c:1164
+#: src/readelf.c:1135
+msgid "     [Compression  Size   Al]"
+msgstr ""
+
+#: src/readelf.c:1137
+msgid "     [Compression  Size     Al]"
+msgstr ""
+
+#: src/readelf.c:1213
+#, c-format
+msgid "bad compression header for section %zd: %s"
+msgstr ""
+
+#: src/readelf.c:1224
+#, c-format
+msgid "bad gnu compressed size for section %zd: %s"
+msgstr ""
+
+#: src/readelf.c:1242
 msgid "Program Headers:"
 msgstr "Programm-Köpfe:"
 
-#: src/readelf.c:1166
+#: src/readelf.c:1244
 msgid ""
 "  Type           Offset   VirtAddr   PhysAddr   FileSiz  MemSiz   Flg Align"
 msgstr ""
 
-#: src/readelf.c:1169
+#: src/readelf.c:1247
 msgid ""
 "  Type           Offset   VirtAddr           PhysAddr           FileSiz  "
 "MemSiz   Flg Align"
 msgstr ""
 
-#: src/readelf.c:1226
+#: src/readelf.c:1304
 #, c-format
 msgid "\t[Requesting program interpreter: %s]\n"
 msgstr ""
 
-#: src/readelf.c:1247
+#: src/readelf.c:1325
 msgid ""
 "\n"
 " Section to Segment mapping:\n"
 "  Segment Sections..."
 msgstr ""
 
-#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964
+#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999
 #, c-format
 msgid "cannot get program header: %s"
 msgstr ""
 
-#: src/readelf.c:1401
+#: src/readelf.c:1479
 #, c-format
 msgid ""
 "\n"
@@ -4532,7 +4610,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:1406
+#: src/readelf.c:1484
 #, c-format
 msgid ""
 "\n"
@@ -4543,21 +4621,25 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:1414
+#: src/readelf.c:1492
 msgid "<INVALID SYMBOL>"
 msgstr ""
 
-#: src/readelf.c:1428
+#: src/readelf.c:1506
 msgid "<INVALID SECTION>"
 msgstr ""
 
-#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542
-#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608
+#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317
+msgid "Couldn't uncompress section"
+msgstr ""
+
+#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640
+#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716
 #, fuzzy, c-format
 msgid "invalid sh_link value in section %zu"
 msgstr "ungültige .debug_line Sektion"
 
-#: src/readelf.c:1588
+#: src/readelf.c:1676
 #, c-format
 msgid ""
 "\n"
@@ -4570,43 +4652,43 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:1598
+#: src/readelf.c:1686
 msgid "  Type              Value\n"
 msgstr ""
 
-#: src/readelf.c:1622
+#: src/readelf.c:1710
 #, c-format
 msgid "Shared library: [%s]\n"
 msgstr ""
 
-#: src/readelf.c:1627
+#: src/readelf.c:1715
 #, c-format
 msgid "Library soname: [%s]\n"
 msgstr ""
 
-#: src/readelf.c:1632
+#: src/readelf.c:1720
 #, c-format
 msgid "Library rpath: [%s]\n"
 msgstr ""
 
-#: src/readelf.c:1637
+#: src/readelf.c:1725
 #, c-format
 msgid "Library runpath: [%s]\n"
 msgstr ""
 
-#: src/readelf.c:1657
+#: src/readelf.c:1745
 #, c-format
 msgid "%<PRId64> (bytes)\n"
 msgstr ""
 
-#: src/readelf.c:1770 src/readelf.c:1960
+#: src/readelf.c:1858 src/readelf.c:2048
 #, c-format
 msgid ""
 "\n"
 "Invalid symbol table at offset %#0<PRIx64>\n"
 msgstr ""
 
-#: src/readelf.c:1788 src/readelf.c:1978
+#: src/readelf.c:1876 src/readelf.c:2066
 #, c-format
 msgid ""
 "\n"
@@ -4619,7 +4701,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:1803 src/readelf.c:1993
+#: src/readelf.c:1891 src/readelf.c:2081
 #, c-format
 msgid ""
 "\n"
@@ -4630,29 +4712,29 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:1813
+#: src/readelf.c:1901
 msgid "  Offset      Type                 Value       Name\n"
 msgstr ""
 
-#: src/readelf.c:1815
+#: src/readelf.c:1903
 msgid "  Offset              Type                 Value               Name\n"
 msgstr ""
 
-#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913
-#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085
-#: src/readelf.c:2107 src/readelf.c:2120
+#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001
+#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173
+#: src/readelf.c:2195 src/readelf.c:2208
 msgid "<INVALID RELOC>"
 msgstr ""
 
-#: src/readelf.c:2003
+#: src/readelf.c:2091
 msgid "  Offset      Type            Value       Addend Name\n"
 msgstr ""
 
-#: src/readelf.c:2005
+#: src/readelf.c:2093
 msgid "  Offset              Type            Value               Addend Name\n"
 msgstr ""
 
-#: src/readelf.c:2216
+#: src/readelf.c:2314
 #, c-format
 msgid ""
 "\n"
@@ -4663,40 +4745,40 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:2221
+#: src/readelf.c:2319
 #, c-format
 msgid " %lu local symbol  String table: [%2u] '%s'\n"
 msgid_plural " %lu local symbols  String table: [%2u] '%s'\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:2229
+#: src/readelf.c:2327
 msgid "  Num:    Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr ""
 
-#: src/readelf.c:2231
+#: src/readelf.c:2329
 msgid "  Num:            Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr ""
 
-#: src/readelf.c:2251
+#: src/readelf.c:2349
 #, c-format
 msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 msgstr ""
 
-#: src/readelf.c:2339
+#: src/readelf.c:2437
 #, c-format
 msgid "bad dynamic symbol"
 msgstr ""
 
-#: src/readelf.c:2421
+#: src/readelf.c:2519
 msgid "none"
 msgstr "keine"
 
-#: src/readelf.c:2438
+#: src/readelf.c:2536
 msgid "| <unknown>"
 msgstr "| <unbekannt>"
 
-#: src/readelf.c:2469
+#: src/readelf.c:2567
 #, c-format
 msgid ""
 "\n"
@@ -4709,17 +4791,17 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:2490
+#: src/readelf.c:2588
 #, fuzzy, c-format
 msgid "  %#06x: Version: %hu  File: %s  Cnt: %hu\n"
 msgstr "  %#06x: Version: %hu  Datei: %s  Cnt: %hu\n"
 
-#: src/readelf.c:2503
+#: src/readelf.c:2601
 #, c-format
 msgid "  %#06x: Name: %s  Flags: %s  Version: %hu\n"
 msgstr "  %#06x: Name: %s  Flags: %s  Version: %hu\n"
 
-#: src/readelf.c:2546
+#: src/readelf.c:2644
 #, c-format
 msgid ""
 "\n"
@@ -4732,17 +4814,17 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:2574
+#: src/readelf.c:2672
 #, c-format
 msgid "  %#06x: Version: %hd  Flags: %s  Index: %hd  Cnt: %hd  Name: %s\n"
 msgstr ""
 
-#: src/readelf.c:2589
+#: src/readelf.c:2687
 #, c-format
 msgid "  %#06x: Parent %d: %s\n"
 msgstr ""
 
-#: src/readelf.c:2850
+#: src/readelf.c:2948
 #, c-format
 msgid ""
 "\n"
@@ -4755,15 +4837,15 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:2878
+#: src/readelf.c:2976
 msgid "   0 *local*                     "
 msgstr "   0 *lokal*                     "
 
-#: src/readelf.c:2883
+#: src/readelf.c:2981
 msgid "   1 *global*                    "
 msgstr "   1 *global*                    "
 
-#: src/readelf.c:2925
+#: src/readelf.c:3023
 #, c-format
 msgid ""
 "\n"
@@ -4778,56 +4860,56 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:2947
+#: src/readelf.c:3045
 #, no-c-format
 msgid " Length  Number  % of total  Coverage\n"
 msgstr ""
 
-#: src/readelf.c:2949
+#: src/readelf.c:3047
 #, c-format
 msgid "      0  %6<PRIu32>      %5.1f%%\n"
 msgstr "      0  %6<PRIu32>      %5.1f%%\n"
 
-#: src/readelf.c:2956
+#: src/readelf.c:3054
 #, c-format
 msgid "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 msgstr "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 
-#: src/readelf.c:2969
+#: src/readelf.c:3067
 #, c-format
 msgid ""
 " Average number of tests:   successful lookup: %f\n"
 "\t\t\t  unsuccessful lookup: %f\n"
 msgstr ""
 
-#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099
+#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197
 #, c-format
 msgid "cannot get data for section %d: %s"
 msgstr ""
 
-#: src/readelf.c:2995
+#: src/readelf.c:3093
 #, fuzzy, c-format
 msgid "invalid data in sysv.hash section %d"
 msgstr "ungültige .debug_line Sektion"
 
-#: src/readelf.c:3050
+#: src/readelf.c:3148
 #, fuzzy, c-format
 msgid "invalid data in sysv.hash64 section %d"
 msgstr "ungültige .debug_line Sektion"
 
-#: src/readelf.c:3108
+#: src/readelf.c:3206
 #, fuzzy, c-format
 msgid "invalid data in gnu.hash section %d"
 msgstr "ungültige .debug_line Sektion"
 
-#: src/readelf.c:3175
+#: src/readelf.c:3273
 #, c-format
 msgid ""
 " Symbol Bias: %u\n"
 " Bitmask Size: %zu bytes  %<PRIuFAST32>%% bits set  2nd hash shift: %u\n"
 msgstr ""
 
-#: src/readelf.c:3250
+#: src/readelf.c:3358
 #, c-format
 msgid ""
 "\n"
@@ -4838,13 +4920,13 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:3264
+#: src/readelf.c:3372
 msgid ""
 "       Library                       Time Stamp          Checksum Version "
 "Flags"
 msgstr ""
 
-#: src/readelf.c:3314
+#: src/readelf.c:3422
 #, c-format
 msgid ""
 "\n"
@@ -4852,140 +4934,140 @@
 "%#0<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:3331
+#: src/readelf.c:3439
 msgid "  Owner          Size\n"
 msgstr ""
 
-#: src/readelf.c:3360
+#: src/readelf.c:3468
 #, c-format
 msgid "  %-13s  %4<PRIu32>\n"
 msgstr "  %-13s  %4<PRIu32>\n"
 
-#: src/readelf.c:3399
+#: src/readelf.c:3507
 #, c-format
 msgid "    %-4u %12<PRIu32>\n"
 msgstr "    %-4u %12<PRIu32>\n"
 
-#: src/readelf.c:3404
+#: src/readelf.c:3512
 #, c-format
 msgid "    File: %11<PRIu32>\n"
 msgstr "    File: %11<PRIu32>\n"
 
-#: src/readelf.c:3453
+#: src/readelf.c:3561
 #, c-format
 msgid "      %s: %<PRId64>, %s\n"
 msgstr "      %s: %<PRId64>, %s\n"
 
-#: src/readelf.c:3456
+#: src/readelf.c:3564
 #, c-format
 msgid "      %s: %<PRId64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:3459
+#: src/readelf.c:3567
 #, c-format
 msgid "      %s: %s\n"
 msgstr "      %s: %s\n"
 
-#: src/readelf.c:3469
+#: src/readelf.c:3577
 #, c-format
 msgid "      %u: %<PRId64>\n"
 msgstr "      %u: %<PRId64>\n"
 
-#: src/readelf.c:3472
+#: src/readelf.c:3580
 #, c-format
 msgid "      %u: %s\n"
 msgstr "      %u: %s\n"
 
-#: src/readelf.c:3517
+#: src/readelf.c:3625
 #, c-format
 msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3520
+#: src/readelf.c:3628
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3525
+#: src/readelf.c:3633
 #, c-format
 msgid "%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3528
+#: src/readelf.c:3636
 #, c-format
 msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3534
+#: src/readelf.c:3642
 #, c-format
 msgid "%s+%#<PRIx64> <%s>"
 msgstr "%s+%#<PRIx64> <%s>"
 
-#: src/readelf.c:3537
+#: src/readelf.c:3645
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s>"
 msgstr "%s+%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3541
+#: src/readelf.c:3649
 #, c-format
 msgid "%#<PRIx64> <%s>"
 msgstr "%#<PRIx64> <%s>"
 
-#: src/readelf.c:3544
+#: src/readelf.c:3652
 #, c-format
 msgid "%#0*<PRIx64> <%s>"
 msgstr "%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3549
+#: src/readelf.c:3657
 #, c-format
 msgid "%s+%#<PRIx64>"
 msgstr "%s+%#<PRIx64>"
 
-#: src/readelf.c:3552
+#: src/readelf.c:3660
 #, c-format
 msgid "%s+%#0*<PRIx64>"
 msgstr "%s+%#0*<PRIx64>"
 
-#: src/readelf.c:3930
+#: src/readelf.c:4038
 msgid "empty block"
 msgstr ""
 
-#: src/readelf.c:3933
+#: src/readelf.c:4041
 #, c-format
 msgid "%zu byte block:"
 msgstr ""
 
-#: src/readelf.c:4330
+#: src/readelf.c:4438
 #, c-format
 msgid "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 msgstr ""
 
-#: src/readelf.c:4387
+#: src/readelf.c:4495
 #, c-format
 msgid "%s %#<PRIx64> used with different address sizes"
 msgstr ""
 
-#: src/readelf.c:4394
+#: src/readelf.c:4502
 #, c-format
 msgid "%s %#<PRIx64> used with different offset sizes"
 msgstr ""
 
-#: src/readelf.c:4401
+#: src/readelf.c:4509
 #, c-format
 msgid "%s %#<PRIx64> used with different base addresses"
 msgstr ""
 
-#: src/readelf.c:4490
+#: src/readelf.c:4598
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE IN REST OF SECTION>\n"
 msgstr ""
 
-#: src/readelf.c:4498
+#: src/readelf.c:4606
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
 msgstr ""
 
-#: src/readelf.c:4524
+#: src/readelf.c:4632
 #, c-format
 msgid ""
 "\n"
@@ -4993,37 +5075,37 @@
 " [ Code]\n"
 msgstr ""
 
-#: src/readelf.c:4532
+#: src/readelf.c:4640
 #, c-format
 msgid ""
 "\n"
 "Abbreviation section at offset %<PRIu64>:\n"
 msgstr ""
 
-#: src/readelf.c:4545
+#: src/readelf.c:4653
 #, c-format
 msgid " *** error while reading abbreviation: %s\n"
 msgstr ""
 
-#: src/readelf.c:4561
+#: src/readelf.c:4669
 #, c-format
 msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
 msgstr ""
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "yes"
 msgstr "ja"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "no"
 msgstr "nein"
 
-#: src/readelf.c:4598 src/readelf.c:4671
+#: src/readelf.c:4706 src/readelf.c:4779
 #, c-format
 msgid "cannot get .debug_aranges content: %s"
 msgstr ""
 
-#: src/readelf.c:4613
+#: src/readelf.c:4721
 #, c-format
 msgid ""
 "\n"
@@ -5034,193 +5116,193 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:4644
+#: src/readelf.c:4752
 #, c-format
 msgid " [%*zu] ???\n"
 msgstr " [%*zu] ???\n"
 
-#: src/readelf.c:4646
+#: src/readelf.c:4754
 #, c-format
 msgid ""
 " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
 msgstr ""
 
-#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360
-#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601
+#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468
+#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709
 #, c-format
 msgid ""
 "\n"
 "DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:4689 src/readelf.c:6386
+#: src/readelf.c:4797 src/readelf.c:6494
 #, c-format
 msgid ""
 "\n"
 "Table at offset %zu:\n"
 msgstr ""
 
-#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397
+#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505
 #, c-format
 msgid "invalid data in section [%zu] '%s'"
 msgstr ""
 
-#: src/readelf.c:4709
+#: src/readelf.c:4817
 #, fuzzy, c-format
 msgid ""
 "\n"
 " Length:        %6<PRIu64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4721
+#: src/readelf.c:4829
 #, fuzzy, c-format
 msgid " DWARF version: %6<PRIuFAST16>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4725
+#: src/readelf.c:4833
 #, c-format
 msgid "unsupported aranges version"
 msgstr ""
 
-#: src/readelf.c:4736
+#: src/readelf.c:4844
 #, fuzzy, c-format
 msgid " CU offset:     %6<PRIx64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4742
+#: src/readelf.c:4850
 #, c-format
 msgid " Address size:  %6<PRIu64>\n"
 msgstr ""
 
-#: src/readelf.c:4746
+#: src/readelf.c:4854
 #, fuzzy, c-format
 msgid "unsupported address size"
 msgstr "Kein Adress-Wert"
 
-#: src/readelf.c:4751
+#: src/readelf.c:4859
 #, c-format
 msgid ""
 " Segment size:  %6<PRIu64>\n"
 "\n"
 msgstr ""
 
-#: src/readelf.c:4755
+#: src/readelf.c:4863
 #, c-format
 msgid "unsupported segment size"
 msgstr ""
 
-#: src/readelf.c:4795
+#: src/readelf.c:4903
 #, fuzzy, c-format
 msgid "   %s..%s (%<PRIx64>)\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4798
+#: src/readelf.c:4906
 #, fuzzy, c-format
 msgid "   %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4807
+#: src/readelf.c:4915
 #, c-format
 msgid "   %zu padding bytes\n"
 msgstr ""
 
-#: src/readelf.c:4825
+#: src/readelf.c:4933
 #, c-format
 msgid "cannot get .debug_ranges content: %s"
 msgstr ""
 
-#: src/readelf.c:4855 src/readelf.c:6919
+#: src/readelf.c:4963 src/readelf.c:7027
 #, c-format
 msgid " [%6tx]  <INVALID DATA>\n"
 msgstr ""
 
-#: src/readelf.c:4877 src/readelf.c:6941
+#: src/readelf.c:4985 src/readelf.c:7049
 #, c-format
 msgid " [%6tx]  base address %s\n"
 msgstr ""
 
-#: src/readelf.c:4884 src/readelf.c:6948
+#: src/readelf.c:4992 src/readelf.c:7056
 #, fuzzy, c-format
 msgid " [%6tx]  empty list\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4895
+#: src/readelf.c:5003
 #, c-format
 msgid " [%6tx]  %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4897
+#: src/readelf.c:5005
 #, c-format
 msgid "           %s..%s\n"
 msgstr "           %s..%s\n"
 
-#: src/readelf.c:5076
+#: src/readelf.c:5184
 msgid "         <INVALID DATA>\n"
 msgstr ""
 
-#: src/readelf.c:5385
+#: src/readelf.c:5493
 #, fuzzy, c-format
 msgid "cannot get ELF: %s"
 msgstr "ELF Kopf konnte nicht ausgelesen werden"
 
-#: src/readelf.c:5402
+#: src/readelf.c:5510
 #, c-format
 msgid ""
 "\n"
 "Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:5452
+#: src/readelf.c:5560
 #, c-format
 msgid ""
 "\n"
 " [%6tx] Zero terminator\n"
 msgstr ""
 
-#: src/readelf.c:5545 src/readelf.c:5700
+#: src/readelf.c:5653 src/readelf.c:5808
 #, fuzzy, c-format
 msgid "invalid augmentation length"
 msgstr "ungültige Abschnittsausrichtung"
 
-#: src/readelf.c:5560
+#: src/readelf.c:5668
 msgid "FDE address encoding: "
 msgstr ""
 
-#: src/readelf.c:5566
+#: src/readelf.c:5674
 msgid "LSDA pointer encoding: "
 msgstr ""
 
-#: src/readelf.c:5677
-#, c-format
-msgid " (offset: %#<PRIx64>)"
-msgstr ""
-
-#: src/readelf.c:5684
-#, c-format
-msgid " (end offset: %#<PRIx64>)"
-msgstr ""
-
-#: src/readelf.c:5721
-#, c-format
-msgid "   %-26sLSDA pointer: %#<PRIx64>\n"
-msgstr ""
-
-#: src/readelf.c:5776
-#, c-format
-msgid "cannot get attribute code: %s"
-msgstr ""
-
 #: src/readelf.c:5785
 #, c-format
+msgid " (offset: %#<PRIx64>)"
+msgstr ""
+
+#: src/readelf.c:5792
+#, c-format
+msgid " (end offset: %#<PRIx64>)"
+msgstr ""
+
+#: src/readelf.c:5829
+#, c-format
+msgid "   %-26sLSDA pointer: %#<PRIx64>\n"
+msgstr ""
+
+#: src/readelf.c:5884
+#, c-format
+msgid "cannot get attribute code: %s"
+msgstr ""
+
+#: src/readelf.c:5893
+#, c-format
 msgid "cannot get attribute form: %s"
 msgstr ""
 
-#: src/readelf.c:5800
+#: src/readelf.c:5908
 #, c-format
 msgid "cannot get attribute value: %s"
 msgstr ""
 
-#: src/readelf.c:6099
+#: src/readelf.c:6207
 #, c-format
 msgid ""
 "\n"
@@ -5228,7 +5310,7 @@
 " [Offset]\n"
 msgstr ""
 
-#: src/readelf.c:6131
+#: src/readelf.c:6239
 #, c-format
 msgid ""
 " Type unit at offset %<PRIu64>:\n"
@@ -5237,7 +5319,7 @@
 " Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n"
 msgstr ""
 
-#: src/readelf.c:6140
+#: src/readelf.c:6248
 #, c-format
 msgid ""
 " Compilation unit at offset %<PRIu64>:\n"
@@ -5245,32 +5327,32 @@
 "%<PRIu8>, Offset size: %<PRIu8>\n"
 msgstr ""
 
-#: src/readelf.c:6165
+#: src/readelf.c:6273
 #, c-format
 msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
 
-#: src/readelf.c:6179
+#: src/readelf.c:6287
 #, c-format
 msgid "cannot get DIE offset: %s"
 msgstr ""
 
-#: src/readelf.c:6188
+#: src/readelf.c:6296
 #, c-format
 msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
 
-#: src/readelf.c:6220
+#: src/readelf.c:6328
 #, c-format
 msgid "cannot get next DIE: %s\n"
 msgstr ""
 
-#: src/readelf.c:6228
+#: src/readelf.c:6336
 #, c-format
 msgid "cannot get next DIE: %s"
 msgstr ""
 
-#: src/readelf.c:6264
+#: src/readelf.c:6372
 #, c-format
 msgid ""
 "\n"
@@ -5278,12 +5360,12 @@
 "\n"
 msgstr ""
 
-#: src/readelf.c:6373
+#: src/readelf.c:6481
 #, c-format
 msgid "cannot get line data section data: %s"
 msgstr ""
 
-#: src/readelf.c:6443
+#: src/readelf.c:6551
 #, c-format
 msgid ""
 "\n"
@@ -5300,249 +5382,249 @@
 "Opcodes:\n"
 msgstr ""
 
-#: src/readelf.c:6464
+#: src/readelf.c:6572
 #, c-format
 msgid "invalid data at offset %tu in section [%zu] '%s'"
 msgstr ""
 
-#: src/readelf.c:6479
+#: src/readelf.c:6587
 #, c-format
 msgid "  [%*<PRIuFAST8>]  %hhu argument\n"
 msgid_plural "  [%*<PRIuFAST8>]  %hhu arguments\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:6487
+#: src/readelf.c:6595
 msgid ""
 "\n"
 "Directory table:"
 msgstr ""
 
-#: src/readelf.c:6503
+#: src/readelf.c:6611
 msgid ""
 "\n"
 "File name table:\n"
 " Entry Dir   Time      Size      Name"
 msgstr ""
 
-#: src/readelf.c:6538
+#: src/readelf.c:6646
 msgid ""
 "\n"
 "Line number statements:"
 msgstr ""
 
-#: src/readelf.c:6589
+#: src/readelf.c:6697
 #, c-format
 msgid "invalid maximum operations per instruction is zero"
 msgstr ""
 
-#: src/readelf.c:6625
+#: src/readelf.c:6733
 #, c-format
 msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
 msgstr ""
 
-#: src/readelf.c:6630
+#: src/readelf.c:6738
 #, c-format
 msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
 msgstr ""
 
-#: src/readelf.c:6650
+#: src/readelf.c:6758
 #, c-format
 msgid " extended opcode %u: "
 msgstr ""
 
-#: src/readelf.c:6655
+#: src/readelf.c:6763
 msgid " end of sequence"
 msgstr ""
 
-#: src/readelf.c:6674
-#, c-format
-msgid " set address to %s\n"
-msgstr ""
-
-#: src/readelf.c:6701
-#, c-format
-msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
-msgstr ""
-
-#: src/readelf.c:6714
-#, c-format
-msgid " set discriminator to %u\n"
-msgstr ""
-
-#: src/readelf.c:6719
-#, fuzzy
-msgid " unknown opcode"
-msgstr "unbekannter Typ"
-
-#: src/readelf.c:6731
-msgid " copy"
-msgstr ""
-
-#: src/readelf.c:6742
-#, c-format
-msgid " advance address by %u to %s, op_index to %u\n"
-msgstr ""
-
-#: src/readelf.c:6746
-#, c-format
-msgid " advance address by %u to %s\n"
-msgstr ""
-
-#: src/readelf.c:6757
-#, c-format
-msgid " advance line by constant %d to %<PRId64>\n"
-msgstr ""
-
-#: src/readelf.c:6765
-#, c-format
-msgid " set file to %<PRIu64>\n"
-msgstr ""
-
-#: src/readelf.c:6775
-#, c-format
-msgid " set column to %<PRIu64>\n"
-msgstr ""
-
 #: src/readelf.c:6782
 #, c-format
+msgid " set address to %s\n"
+msgstr ""
+
+#: src/readelf.c:6809
+#, c-format
+msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
+msgstr ""
+
+#: src/readelf.c:6822
+#, c-format
+msgid " set discriminator to %u\n"
+msgstr ""
+
+#: src/readelf.c:6827
+#, fuzzy
+msgid " unknown opcode"
+msgstr "unbekannter Typ"
+
+#: src/readelf.c:6839
+msgid " copy"
+msgstr ""
+
+#: src/readelf.c:6850
+#, c-format
+msgid " advance address by %u to %s, op_index to %u\n"
+msgstr ""
+
+#: src/readelf.c:6854
+#, c-format
+msgid " advance address by %u to %s\n"
+msgstr ""
+
+#: src/readelf.c:6865
+#, c-format
+msgid " advance line by constant %d to %<PRId64>\n"
+msgstr ""
+
+#: src/readelf.c:6873
+#, c-format
+msgid " set file to %<PRIu64>\n"
+msgstr ""
+
+#: src/readelf.c:6883
+#, c-format
+msgid " set column to %<PRIu64>\n"
+msgstr ""
+
+#: src/readelf.c:6890
+#, c-format
 msgid " set '%s' to %<PRIuFAST8>\n"
 msgstr ""
 
-#: src/readelf.c:6788
+#: src/readelf.c:6896
 msgid " set basic block flag"
 msgstr ""
 
-#: src/readelf.c:6801
+#: src/readelf.c:6909
 #, c-format
 msgid " advance address by constant %u to %s, op_index to %u\n"
 msgstr ""
 
-#: src/readelf.c:6805
+#: src/readelf.c:6913
 #, c-format
 msgid " advance address by constant %u to %s\n"
 msgstr ""
 
-#: src/readelf.c:6823
+#: src/readelf.c:6931
 #, c-format
 msgid " advance address by fixed value %u to %s\n"
 msgstr ""
 
-#: src/readelf.c:6832
+#: src/readelf.c:6940
 msgid " set prologue end flag"
 msgstr ""
 
-#: src/readelf.c:6837
+#: src/readelf.c:6945
 msgid " set epilogue begin flag"
 msgstr ""
 
-#: src/readelf.c:6846
+#: src/readelf.c:6954
 #, c-format
 msgid " set isa to %u\n"
 msgstr ""
 
-#: src/readelf.c:6855
+#: src/readelf.c:6963
 #, c-format
 msgid " unknown opcode with %<PRIu8> parameter:"
 msgid_plural " unknown opcode with %<PRIu8> parameters:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/readelf.c:6887
+#: src/readelf.c:6995
 #, c-format
 msgid "cannot get .debug_loc content: %s"
 msgstr ""
 
-#: src/readelf.c:6962
+#: src/readelf.c:7070
 #, c-format
 msgid " [%6tx]  %s..%s"
 msgstr " [%6tx]  %s..%s"
 
-#: src/readelf.c:6964
+#: src/readelf.c:7072
 #, c-format
 msgid "           %s..%s"
 msgstr "           %s..%s"
 
-#: src/readelf.c:6971 src/readelf.c:7859
+#: src/readelf.c:7079 src/readelf.c:7967
 msgid "   <INVALID DATA>\n"
 msgstr ""
 
-#: src/readelf.c:7023 src/readelf.c:7185
+#: src/readelf.c:7131 src/readelf.c:7293
 #, c-format
 msgid "cannot get macro information section data: %s"
 msgstr ""
 
-#: src/readelf.c:7103
+#: src/readelf.c:7211
 #, c-format
 msgid "%*s*** non-terminated string at end of section"
 msgstr ""
 
-#: src/readelf.c:7126
+#: src/readelf.c:7234
 #, c-format
 msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
 msgstr ""
 
-#: src/readelf.c:7226
+#: src/readelf.c:7334
 #, fuzzy, c-format
 msgid " Offset:             0x%<PRIx64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7238
+#: src/readelf.c:7346
 #, fuzzy, c-format
 msgid " Version:            %<PRIu16>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7244 src/readelf.c:7978
+#: src/readelf.c:7352 src/readelf.c:8086
 #, c-format
 msgid "  unknown version, cannot parse section\n"
 msgstr ""
 
-#: src/readelf.c:7251
+#: src/readelf.c:7359
 #, fuzzy, c-format
 msgid " Flag:               0x%<PRIx8>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7254
+#: src/readelf.c:7362
 #, c-format
 msgid " Offset length:      %<PRIu8>\n"
 msgstr ""
 
-#: src/readelf.c:7262
+#: src/readelf.c:7370
 #, c-format
 msgid " .debug_line offset: 0x%<PRIx64>\n"
 msgstr ""
 
-#: src/readelf.c:7275
+#: src/readelf.c:7383
 #, c-format
 msgid "  extension opcode table, %<PRIu8> items:\n"
 msgstr ""
 
-#: src/readelf.c:7282
+#: src/readelf.c:7390
 #, c-format
 msgid "    [%<PRIx8>]"
 msgstr ""
 
-#: src/readelf.c:7294
+#: src/readelf.c:7402
 #, c-format
 msgid " %<PRIu8> arguments:"
 msgstr ""
 
-#: src/readelf.c:7322
+#: src/readelf.c:7430
 #, c-format
 msgid " no arguments."
 msgstr ""
 
-#: src/readelf.c:7559
+#: src/readelf.c:7667
 #, c-format
 msgid "vendor opcode not verified?"
 msgstr ""
 
-#: src/readelf.c:7587
+#: src/readelf.c:7695
 #, c-format
 msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
 msgstr ""
 
-#: src/readelf.c:7628
+#: src/readelf.c:7736
 #, c-format
 msgid ""
 "\n"
@@ -5550,47 +5632,47 @@
 " %*s  String\n"
 msgstr ""
 
-#: src/readelf.c:7642
+#: src/readelf.c:7750
 #, c-format
 msgid " *** error while reading strings: %s\n"
 msgstr ""
 
-#: src/readelf.c:7662
+#: src/readelf.c:7770
 #, c-format
 msgid ""
 "\n"
 "Call frame search table section [%2zu] '.eh_frame_hdr':\n"
 msgstr ""
 
-#: src/readelf.c:7764
+#: src/readelf.c:7872
 #, c-format
 msgid ""
 "\n"
 "Exception handling table section [%2zu] '.gcc_except_table':\n"
 msgstr ""
 
-#: src/readelf.c:7787
+#: src/readelf.c:7895
 #, c-format
 msgid " LPStart encoding:    %#x "
 msgstr ""
 
-#: src/readelf.c:7799
+#: src/readelf.c:7907
 #, c-format
 msgid " TType encoding:      %#x "
 msgstr ""
 
-#: src/readelf.c:7814
+#: src/readelf.c:7922
 #, c-format
 msgid " Call site encoding:  %#x "
 msgstr ""
 
-#: src/readelf.c:7827
+#: src/readelf.c:7935
 msgid ""
 "\n"
 " Call site table:"
 msgstr ""
 
-#: src/readelf.c:7841
+#: src/readelf.c:7949
 #, c-format
 msgid ""
 " [%4u] Call site start:   %#<PRIx64>\n"
@@ -5599,193 +5681,209 @@
 "        Action:            %u\n"
 msgstr ""
 
-#: src/readelf.c:7914
+#: src/readelf.c:8022
 #, c-format
 msgid "invalid TType encoding"
 msgstr ""
 
-#: src/readelf.c:7940
+#: src/readelf.c:8048
 #, c-format
 msgid ""
 "\n"
 "GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
 msgstr ""
 
-#: src/readelf.c:7969
+#: src/readelf.c:8077
 #, fuzzy, c-format
 msgid " Version:         %<PRId32>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7987
+#: src/readelf.c:8095
 #, c-format
 msgid " CU offset:       %#<PRIx32>\n"
 msgstr ""
 
-#: src/readelf.c:7994
+#: src/readelf.c:8102
 #, c-format
 msgid " TU offset:       %#<PRIx32>\n"
 msgstr ""
 
-#: src/readelf.c:8001
+#: src/readelf.c:8109
 #, c-format
 msgid " address offset:  %#<PRIx32>\n"
 msgstr ""
 
-#: src/readelf.c:8008
+#: src/readelf.c:8116
 #, c-format
 msgid " symbol offset:   %#<PRIx32>\n"
 msgstr ""
 
-#: src/readelf.c:8015
+#: src/readelf.c:8123
 #, c-format
 msgid " constant offset: %#<PRIx32>\n"
 msgstr ""
 
-#: src/readelf.c:8029
+#: src/readelf.c:8137
 #, c-format
 msgid ""
 "\n"
 " CU list at offset %#<PRIx32> contains %zu entries:\n"
 msgstr ""
 
-#: src/readelf.c:8054
+#: src/readelf.c:8162
 #, c-format
 msgid ""
 "\n"
 " TU list at offset %#<PRIx32> contains %zu entries:\n"
 msgstr ""
 
-#: src/readelf.c:8083
+#: src/readelf.c:8191
 #, c-format
 msgid ""
 "\n"
 " Address list at offset %#<PRIx32> contains %zu entries:\n"
 msgstr ""
 
-#: src/readelf.c:8116
+#: src/readelf.c:8224
 #, c-format
 msgid ""
 "\n"
 " Symbol table at offset %#<PRIx32> contains %zu slots:\n"
 msgstr ""
 
-#: src/readelf.c:8203
+#: src/readelf.c:8311
 #, c-format
 msgid "cannot get debug context descriptor: %s"
 msgstr ""
 
-#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152
+#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258
 #, c-format
 msgid "cannot convert core note data: %s"
 msgstr ""
 
-#: src/readelf.c:8724
+#: src/readelf.c:8830
 #, c-format
 msgid ""
 "\n"
 "%*s... <repeats %u more times> ..."
 msgstr ""
 
-#: src/readelf.c:9231
+#: src/readelf.c:9337
 msgid "  Owner          Data size  Type\n"
 msgstr ""
 
-#: src/readelf.c:9249
+#: src/readelf.c:9355
 #, c-format
 msgid "  %-13.*s  %9<PRId32>  %s\n"
 msgstr ""
 
-#: src/readelf.c:9299
+#: src/readelf.c:9405
 #, c-format
 msgid "cannot get content of note section: %s"
 msgstr ""
 
-#: src/readelf.c:9326
+#: src/readelf.c:9432
 #, c-format
 msgid ""
 "\n"
 "Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:9349
+#: src/readelf.c:9455
 #, c-format
 msgid ""
 "\n"
 "Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:9395
+#: src/readelf.c:9501
 #, fuzzy, c-format
 msgid ""
 "\n"
 "Section [%zu] '%s' has no data to dump.\n"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/readelf.c:9401 src/readelf.c:9424
+#: src/readelf.c:9518 src/readelf.c:9559
 #, fuzzy, c-format
 msgid "cannot get data for section [%zu] '%s': %s"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/readelf.c:9405
+#: src/readelf.c:9523
 #, c-format
 msgid ""
 "\n"
 "Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:9418
+#: src/readelf.c:9528
+#, c-format
+msgid ""
+"\n"
+"Hex dump of section [%zu] '%s', %<PRIu64> bytes (%zd uncompressed) at offset "
+"%#0<PRIx64>:\n"
+msgstr ""
+
+#: src/readelf.c:9542
 #, fuzzy, c-format
 msgid ""
 "\n"
 "Section [%zu] '%s' has no strings to dump.\n"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/readelf.c:9428
+#: src/readelf.c:9564
 #, c-format
 msgid ""
 "\n"
 "String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 
-#: src/readelf.c:9476
+#: src/readelf.c:9569
+#, c-format
+msgid ""
+"\n"
+"String section [%zu] '%s' contains %<PRIu64> bytes (%zd uncompressed) at "
+"offset %#0<PRIx64>:\n"
+msgstr ""
+
+#: src/readelf.c:9618
 #, c-format
 msgid ""
 "\n"
 "section [%lu] does not exist"
 msgstr ""
 
-#: src/readelf.c:9505
+#: src/readelf.c:9647
 #, c-format
 msgid ""
 "\n"
 "section '%s' does not exist"
 msgstr ""
 
-#: src/readelf.c:9562
+#: src/readelf.c:9704
 #, c-format
 msgid "cannot get symbol index of archive '%s': %s"
 msgstr ""
 
-#: src/readelf.c:9565
+#: src/readelf.c:9707
 #, c-format
 msgid ""
 "\n"
 "Archive '%s' has no symbol index\n"
 msgstr ""
 
-#: src/readelf.c:9569
+#: src/readelf.c:9711
 #, c-format
 msgid ""
 "\n"
 "Index of archive '%s' has %zu entries:\n"
 msgstr ""
 
-#: src/readelf.c:9587
+#: src/readelf.c:9729
 #, fuzzy, c-format
 msgid "cannot extract member at offset %zu in '%s': %s"
 msgstr "konnte Programm-Kopf nicht erstellen: %s"
 
-#: src/readelf.c:9592
+#: src/readelf.c:9734
 #, c-format
 msgid "Archive member '%s' contains:\n"
 msgstr ""
@@ -6300,12 +6398,12 @@
 msgid "cannot copy ELF header: %s"
 msgstr ""
 
-#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947
+#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982
 #, fuzzy, c-format
 msgid "cannot get number of program headers: %s"
 msgstr "konnte Programm-Kopf nicht erstellen: %s"
 
-#: src/unstrip.c:266 src/unstrip.c:1907
+#: src/unstrip.c:266 src/unstrip.c:1943
 #, c-format
 msgid "cannot create program headers: %s"
 msgstr "konnte Programm-Kopf nicht erstellen: %s"
@@ -6320,12 +6418,12 @@
 msgid "cannot copy section header: %s"
 msgstr ""
 
-#: src/unstrip.c:285 src/unstrip.c:1541
+#: src/unstrip.c:285 src/unstrip.c:1576
 #, c-format
 msgid "cannot get section data: %s"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/unstrip.c:287 src/unstrip.c:1543
+#: src/unstrip.c:287 src/unstrip.c:1578
 #, c-format
 msgid "cannot copy section data: %s"
 msgstr "konnte Abschnittsdaten nicht kopieren: %s"
@@ -6335,214 +6433,214 @@
 msgid "cannot create directory '%s'"
 msgstr "konnte Verzeichnis nicht erstellen: %s"
 
-#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575
+#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610
 #, c-format
 msgid "cannot get symbol table entry: %s"
 msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
 
-#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618
-#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793
+#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653
+#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829
 #, c-format
 msgid "cannot update symbol table: %s"
 msgstr "konnte Symboltabelle nicht aktualisieren: %s"
 
-#: src/unstrip.c:377
+#: src/unstrip.c:409
 #, c-format
 msgid "cannot update section header: %s"
 msgstr ""
 
-#: src/unstrip.c:416 src/unstrip.c:427
+#: src/unstrip.c:448 src/unstrip.c:459
 #, c-format
 msgid "cannot update relocation: %s"
 msgstr ""
 
-#: src/unstrip.c:514
+#: src/unstrip.c:547
 #, c-format
 msgid "cannot get symbol version: %s"
 msgstr ""
 
-#: src/unstrip.c:526
+#: src/unstrip.c:560
 #, c-format
 msgid "unexpected section type in [%zu] with sh_link to symtab"
 msgstr ""
 
-#: src/unstrip.c:774
+#: src/unstrip.c:809
 #, fuzzy, c-format
 msgid "invalid string offset in symbol [%zu]"
 msgstr "ungültiger Offset %zu für Symbol %s"
 
-#: src/unstrip.c:932 src/unstrip.c:1278
+#: src/unstrip.c:967 src/unstrip.c:1313
 #, fuzzy, c-format
 msgid "cannot read section [%zu] name: %s"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027
+#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062
 #, c-format
 msgid "cannot read '.gnu.prelink_undo' section: %s"
 msgstr ""
 
-#: src/unstrip.c:1013
+#: src/unstrip.c:1048
 #, c-format
 msgid "invalid contents in '%s' section"
 msgstr ""
 
-#: src/unstrip.c:1019
+#: src/unstrip.c:1054
 #, c-format
 msgid "overflow with shnum = %zu in '%s' section"
 msgstr ""
 
-#: src/unstrip.c:1073 src/unstrip.c:1398
+#: src/unstrip.c:1108 src/unstrip.c:1433
 #, fuzzy, c-format
 msgid "cannot find matching section for [%zu] '%s'"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731
+#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766
 #, c-format
 msgid "cannot add section name to string table: %s"
 msgstr ""
 
-#: src/unstrip.c:1222
+#: src/unstrip.c:1257
 #, c-format
 msgid "cannot update section header string table data: %s"
 msgstr ""
 
-#: src/unstrip.c:1249 src/unstrip.c:1253
+#: src/unstrip.c:1284 src/unstrip.c:1288
 #, c-format
 msgid "cannot get section header string table section index: %s"
 msgstr ""
 
-#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494
+#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529
 #, c-format
 msgid "cannot get section count: %s"
 msgstr ""
 
-#: src/unstrip.c:1264
+#: src/unstrip.c:1299
 #, c-format
 msgid "more sections in stripped file than debug file -- arguments reversed?"
 msgstr ""
 
-#: src/unstrip.c:1323 src/unstrip.c:1413
+#: src/unstrip.c:1358 src/unstrip.c:1448
 #, c-format
 msgid "cannot read section header string table: %s"
 msgstr ""
 
-#: src/unstrip.c:1473
+#: src/unstrip.c:1508
 #, c-format
 msgid "cannot add new section: %s"
 msgstr ""
 
-#: src/unstrip.c:1583
+#: src/unstrip.c:1618
 #, fuzzy, c-format
 msgid "symbol [%zu] has invalid section index"
 msgstr "ungültiger Abschnittsindex"
 
-#: src/unstrip.c:1864
+#: src/unstrip.c:1900
 #, fuzzy, c-format
 msgid "cannot read section data: %s"
 msgstr "konnte Abschnittsdaten nicht holen: %s"
 
-#: src/unstrip.c:1885
+#: src/unstrip.c:1921
 #, c-format
 msgid "cannot get ELF header: %s"
 msgstr ""
 
-#: src/unstrip.c:1917
+#: src/unstrip.c:1953
 #, c-format
 msgid "cannot update program header: %s"
 msgstr "konnte Programm-Kopf nicht aktualisieren: %s"
 
-#: src/unstrip.c:1922 src/unstrip.c:2005
+#: src/unstrip.c:1958 src/unstrip.c:2040
 #, c-format
 msgid "cannot write output file: %s"
 msgstr ""
 
-#: src/unstrip.c:1974
+#: src/unstrip.c:2009
 #, c-format
 msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 
-#: src/unstrip.c:1977
+#: src/unstrip.c:2012
 #, c-format
 msgid ""
 "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 
-#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145
+#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180
 #, c-format
 msgid "cannot create ELF descriptor: %s"
 msgstr ""
 
-#: src/unstrip.c:2038
+#: src/unstrip.c:2073
 msgid "WARNING: "
 msgstr ""
 
-#: src/unstrip.c:2040
+#: src/unstrip.c:2075
 msgid ", use --force"
 msgstr ""
 
-#: src/unstrip.c:2063
+#: src/unstrip.c:2098
 msgid "ELF header identification (e_ident) different"
 msgstr ""
 
-#: src/unstrip.c:2066
+#: src/unstrip.c:2101
 msgid "ELF header type (e_type) different"
 msgstr ""
 
-#: src/unstrip.c:2069
+#: src/unstrip.c:2104
 msgid "ELF header machine type (e_machine) different"
 msgstr ""
 
-#: src/unstrip.c:2072
+#: src/unstrip.c:2107
 msgid "stripped program header (e_phnum) smaller than unstripped"
 msgstr ""
 
-#: src/unstrip.c:2102
+#: src/unstrip.c:2137
 #, c-format
 msgid "cannot find stripped file for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2106
+#: src/unstrip.c:2141
 #, c-format
 msgid "cannot open stripped file '%s' for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2121
+#: src/unstrip.c:2156
 #, c-format
 msgid "cannot find debug file for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2125
+#: src/unstrip.c:2160
 #, c-format
 msgid "cannot open debug file '%s' for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2138
+#: src/unstrip.c:2173
 #, c-format
 msgid "module '%s' file '%s' is not stripped"
 msgstr ""
 
-#: src/unstrip.c:2169
+#: src/unstrip.c:2204
 #, c-format
 msgid "cannot cache section addresses for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2302
+#: src/unstrip.c:2337
 #, c-format
 msgid "no matching modules found"
 msgstr "kein passendes Modul gefunden"
 
-#: src/unstrip.c:2311
+#: src/unstrip.c:2346
 #, c-format
 msgid "matched more than one module"
 msgstr "mehr als ein passendes Modul"
 
-#: src/unstrip.c:2355
+#: src/unstrip.c:2390
 msgid ""
 "STRIPPED-FILE DEBUG-FILE\n"
 "[MODULE...]"
 msgstr ""
 
-#: src/unstrip.c:2356
+#: src/unstrip.c:2391
 msgid ""
 "Combine stripped files with separate symbols and debug information.\vThe "
 "first form puts the result in DEBUG-FILE if -o was not given.\n"
diff --git a/po/es.po b/po/es.po
index 71aec39..ba58653 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: elfutils.master.es\n"
 "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2015-10-16 13:26+0200\n"
+"POT-Creation-Date: 2016-01-11 08:48+0100\n"
 "PO-Revision-Date: 2011-01-10 15:17-0300\n"
 "Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz."
 "com.ar>\n"
@@ -44,8 +44,8 @@
 msgid "cannot allocate memory"
 msgstr "No se puede asignar sección PLT: %s"
 
-#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184
-#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403
+#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282
+#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438
 #, c-format
 msgid "memory exhausted"
 msgstr "memoria agotada"
@@ -248,7 +248,7 @@
 msgid "not a CU (unit) DIE"
 msgstr ""
 
-#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345
+#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380
 msgid "Input selection options:"
 msgstr "Opciones de selección de entrada:"
 
@@ -305,7 +305,12 @@
 msgid "cannot read ELF core file: %s"
 msgstr "No se puede leer archivo core ELF: %s"
 
-#: libdwfl/argp-std.c:311
+#: libdwfl/argp-std.c:313
+#, fuzzy
+msgid "Not enough memory"
+msgstr "memoria agotada"
+
+#: libdwfl/argp-std.c:323
 msgid "No modules recognized in core file"
 msgstr "No hay módulos reconocidos en el archivo core"
 
@@ -482,57 +487,57 @@
 msgid "<unknown>: %#<PRIx64>"
 msgstr "<desconocido>: %#<PRIx64>"
 
-#: libebl/eblobjnote.c:52
+#: libebl/eblobjnote.c:53
 #, fuzzy, c-format
 msgid "unknown SDT version %u\n"
 msgstr "versión desconocida"
 
-#: libebl/eblobjnote.c:70
+#: libebl/eblobjnote.c:71
 #, fuzzy, c-format
 msgid "invalid SDT probe descriptor\n"
 msgstr "descriptor de archivo inválido"
 
-#: libebl/eblobjnote.c:120
+#: libebl/eblobjnote.c:121
 #, c-format
 msgid "    PC: "
 msgstr ""
 
-#: libebl/eblobjnote.c:122
+#: libebl/eblobjnote.c:123
 #, c-format
 msgid " Base: "
 msgstr ""
 
-#: libebl/eblobjnote.c:124
+#: libebl/eblobjnote.c:125
 #, c-format
 msgid " Semaphore: "
 msgstr ""
 
-#: libebl/eblobjnote.c:126
+#: libebl/eblobjnote.c:127
 #, c-format
 msgid "    Provider: "
 msgstr ""
 
-#: libebl/eblobjnote.c:128
+#: libebl/eblobjnote.c:129
 #, c-format
 msgid " Name: "
 msgstr ""
 
-#: libebl/eblobjnote.c:130
+#: libebl/eblobjnote.c:131
 #, c-format
 msgid " Args: "
 msgstr ""
 
-#: libebl/eblobjnote.c:140
+#: libebl/eblobjnote.c:141
 #, c-format
 msgid "    Build ID: "
 msgstr "    Build ID: "
 
-#: libebl/eblobjnote.c:151
+#: libebl/eblobjnote.c:152
 #, c-format
 msgid "    Linker version: %.*s\n"
 msgstr "    Versión del Enlazador: %.*s\n"
 
-#: libebl/eblobjnote.c:212
+#: libebl/eblobjnote.c:213
 #, c-format
 msgid "    OS: %s, ABI: "
 msgstr "    OS: %s, ABI: "
@@ -566,7 +571,7 @@
 msgid "invalid size of destination operand"
 msgstr "tamaño inválido del operando destino"
 
-#: libelf/elf_error.c:87 src/readelf.c:5365
+#: libelf/elf_error.c:87 src/readelf.c:5473
 #, c-format
 msgid "invalid encoding"
 msgstr "codificación inválida"
@@ -647,8 +652,8 @@
 msgid "invalid section header"
 msgstr "encabezamiento de sección inválida"
 
-#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682
-#: src/readelf.c:7783 src/readelf.c:7964
+#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790
+#: src/readelf.c:7891 src/readelf.c:8072
 #, c-format
 msgid "invalid data"
 msgstr "datos inválidos"
@@ -692,6 +697,40 @@
 msgid "file has no program header"
 msgstr "el archivo no tiene encabezamiento de programa"
 
+#: libelf/elf_error.c:237
+#, fuzzy
+msgid "invalid section type"
+msgstr "sección inválida"
+
+#: libelf/elf_error.c:242
+#, fuzzy
+msgid "invalid section flags"
+msgstr "sección inválida"
+
+#: libelf/elf_error.c:247
+#, fuzzy
+msgid "section does not contain compressed data"
+msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
+
+#: libelf/elf_error.c:252
+msgid "section contains compressed data"
+msgstr ""
+
+#: libelf/elf_error.c:257
+#, fuzzy
+msgid "unknown compression type"
+msgstr "tipo desconocido"
+
+#: libelf/elf_error.c:262
+#, fuzzy
+msgid "cannot compress data"
+msgstr "no pueden copiar datos de sección: %s"
+
+#: libelf/elf_error.c:267
+#, fuzzy
+msgid "cannot decompress data"
+msgstr "no pueden copiar datos de sección: %s"
+
 #: src/addr2line.c:58
 #, fuzzy
 msgid "Input format options:"
@@ -751,7 +790,7 @@
 msgid "Print all information on one line, and indent inlines"
 msgstr ""
 
-#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99
+#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100
 #: src/strings.c:79
 msgid "Miscellaneous:"
 msgstr "Misceláneos:"
@@ -767,9 +806,9 @@
 msgid "[ADDR...]"
 msgstr "[DIREC...]"
 
-#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235
-#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177
-#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230
+#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235
+#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177
+#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230
 #: src/strip.c:218 src/unstrip.c:232
 #, c-format
 msgid ""
@@ -783,9 +822,9 @@
 "garantía, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN "
 "DETERMINADO.\n"
 
-#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240
-#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182
-#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235
+#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240
+#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182
+#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235
 #: src/strip.c:223 src/unstrip.c:237
 #, c-format
 msgid "Written by %s.\n"
@@ -1259,40 +1298,40 @@
 msgid "%s %s differ: gap"
 msgstr "%s %s differ: brecha"
 
-#: src/elfcmp.c:702
+#: src/elfcmp.c:704
 #, c-format
 msgid "Invalid value '%s' for --gaps parameter."
 msgstr "Valor inválido '%s' para parámetro --gaps"
 
-#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757
-#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289
-#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994
-#: src/unstrip.c:2023
+#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757
+#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289
+#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029
+#: src/unstrip.c:2058
 #, c-format
 msgid "cannot open '%s'"
 msgstr "Imposible abrir '%s'"
 
-#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174
+#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174
 #, c-format
 msgid "cannot create ELF descriptor for '%s': %s"
 msgstr "No puede crear descriptor ELF para '%s': %s"
 
-#: src/elfcmp.c:739
+#: src/elfcmp.c:741
 #, c-format
 msgid "cannot create EBL descriptor for '%s'"
 msgstr "no se puede crear el descriptor EBL para '%s'"
 
-#: src/elfcmp.c:757 src/findtextrel.c:409
+#: src/elfcmp.c:759 src/findtextrel.c:409
 #, c-format
 msgid "cannot get section header of section %zu: %s"
 msgstr "No se puede obtener el encabezamiento de sección %zu: %s"
 
-#: src/elfcmp.c:767
+#: src/elfcmp.c:769
 #, c-format
 msgid "cannot get content of section %zu: %s"
 msgstr "No se puede obtener contenido de sección %zu: %s"
 
-#: src/elfcmp.c:777 src/elfcmp.c:791
+#: src/elfcmp.c:779 src/elfcmp.c:793
 #, c-format
 msgid "cannot get relocation: %s"
 msgstr "No se puede obtener reubicación: %s"
@@ -1321,11 +1360,11 @@
 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
 msgstr "Chequeo minucioso de ficheros ELF de acuerdo con gABI/psABI "
 
-#: src/elflint.c:78 src/readelf.c:123
+#: src/elflint.c:78 src/readelf.c:126
 msgid "FILE..."
 msgstr "FICHERO..."
 
-#: src/elflint.c:155 src/readelf.c:292
+#: src/elflint.c:155 src/readelf.c:298
 #, c-format
 msgid "cannot open input file"
 msgstr "no se puede abrir el fichero de entrada"
@@ -1344,7 +1383,7 @@
 msgid "No errors"
 msgstr "No hay errores"
 
-#: src/elflint.c:219 src/readelf.c:468
+#: src/elflint.c:219 src/readelf.c:474
 msgid "Missing file name.\n"
 msgstr "Falta el nombre de archivo.\n"
 
@@ -1494,14 +1533,14 @@
 "sección [%2d] '%s': el grupo de sección [%2zu] '%s' no precede al miembro de "
 "grupo\n"
 
-#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628
-#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056
-#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336
+#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632
+#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061
+#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366
 #, c-format
 msgid "section [%2d] '%s': cannot get section data\n"
 msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n"
 
-#: src/elflint.c:604 src/elflint.c:1635
+#: src/elflint.c:604 src/elflint.c:1639
 #, c-format
 msgid ""
 "section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1610,12 +1649,12 @@
 msgstr ""
 "Sección [%2d] '%s': símbolo %zu: función en sección COMMON no tiene sentido\n"
 
-#: src/elflint.c:805
+#: src/elflint.c:809
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n"
 msgstr "sección [%2d] '%s': símbolo %zu: st_value fuera de límites\n"
 
-#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885
+#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu does not fit completely in referenced section "
@@ -1624,7 +1663,7 @@
 "Sección [%2d] '%s': símbolo %zu no se ajusta totalmente en la sección [%2d] "
 "'%s'\n"
 
-#: src/elflint.c:820
+#: src/elflint.c:824
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have "
@@ -1633,7 +1672,7 @@
 "Sección [%2d] '%s': símbolo %zu: sección de referencia [%2d] '%s' no tiene "
 "establecida bandera SHF_TLS\n"
 
-#: src/elflint.c:830 src/elflint.c:878
+#: src/elflint.c:834 src/elflint.c:882
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section "
@@ -1642,7 +1681,7 @@
 "Sección [%2d] '%s': símbolo %zu: st_value fuera de límites de sección de "
 "referencia [%2d] '%s'\n"
 
-#: src/elflint.c:857
+#: src/elflint.c:861
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"
@@ -1650,7 +1689,7 @@
 "Sección [%2d] '%s': símbolo %zu: símbolo TLS, pero no hay entrada de "
 "programa TLS\n"
 
-#: src/elflint.c:863
+#: src/elflint.c:867
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program "
@@ -1659,7 +1698,7 @@
 "Sección [%2d] '%s': símbolo %zu: símbolo TLS, pero no hay entrada de "
 "programa TLS\n"
 
-#: src/elflint.c:871
+#: src/elflint.c:875
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] "
@@ -1668,7 +1707,7 @@
 "Sección [%2d] '%s': símbolo %zu: st_value falta sección de referencia [%2d] "
 "'%s'\n"
 
-#: src/elflint.c:898
+#: src/elflint.c:902
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: local symbol outside range described in "
@@ -1677,7 +1716,7 @@
 "Sección [%2d] '%s': símbolo %zu: símbolo local fuera del rango descrito en "
 "sh_info\n"
 
-#: src/elflint.c:905
+#: src/elflint.c:909
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
@@ -1686,12 +1725,12 @@
 "Sección [%2d] '%s': símbolo %zu: símbolo non-local fuera del rango descrito "
 "en sh_info\n"
 
-#: src/elflint.c:912
+#: src/elflint.c:916
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
 msgstr "Sección [%2d] '%s': símbolo %zu: símbolo de sección non-local\n"
 
-#: src/elflint.c:962
+#: src/elflint.c:966
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -1700,7 +1739,7 @@
 "Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ se refiere a sección "
 "errada [%2d]\n"
 
-#: src/elflint.c:969
+#: src/elflint.c:973
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -1709,7 +1748,7 @@
 "Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ se refiere a sección [%2d] "
 "'%s'\n"
 
-#: src/elflint.c:985
+#: src/elflint.c:989
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -1718,7 +1757,7 @@
 "Sección [%2d] '%s': valor del símbolo _GLOBAL_OFFSET_TABLE_ %#<PRIx64> no "
 "coincide con dirección de sección %s %#<PRIx64>\n"
 
-#: src/elflint.c:992
+#: src/elflint.c:996
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -1727,7 +1766,7 @@
 "Sección [%2d] '%s': tamaño de símbolo _GLOBAL_OFFSET_TABLE_ %<PRIu64> no "
 "coincide con tamaño de sección %s %<PRIu64>\n"
 
-#: src/elflint.c:1000
+#: src/elflint.c:1004
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -1736,7 +1775,7 @@
 "Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ presente, pero no. sección "
 "got\n"
 
-#: src/elflint.c:1016
+#: src/elflint.c:1020
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -1745,7 +1784,7 @@
 "sección [%2d] '%s': Valor de símbolo _DYNAMIC_ %#<PRIx64> no coincide con la "
 "dirección de segmento%#<PRIx64>\n"
 
-#: src/elflint.c:1023
+#: src/elflint.c:1027
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -1754,7 +1793,7 @@
 "Sección [%2d] '%s': tamaño de símbolo _DYNAMIC %<PRIu64> no coincide con "
 "tamaño de segmento %<PRIu64>\n"
 
-#: src/elflint.c:1036
+#: src/elflint.c:1040
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-"
@@ -1763,29 +1802,29 @@
 "Sección [%2d] '%s': símbolo %zu: símbolo en tabla de símbolos dinámicos sin "
 "visibilidad predeterminada\n"
 
-#: src/elflint.c:1040
+#: src/elflint.c:1044
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n"
 msgstr ""
 "Sección [%2d] '%s': símbolo %zu: bit desconocido establecido en st_other\n"
 
-#: src/elflint.c:1078
+#: src/elflint.c:1082
 #, fuzzy, c-format
 msgid "section [%2d] '%s': cannot get section data.\n"
 msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n"
 
-#: src/elflint.c:1094
+#: src/elflint.c:1098
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
 msgstr "Sección [%2d] '%s': DT_RELCOUNT utilizada para esta sección RELA\n"
 
-#: src/elflint.c:1105 src/elflint.c:1158
+#: src/elflint.c:1109 src/elflint.c:1162
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
 msgstr ""
 "Sección [%2d] '%s': valor DT_RELCOUNT %d demasiado alto para esta sección\n"
 
-#: src/elflint.c:1130 src/elflint.c:1183
+#: src/elflint.c:1134 src/elflint.c:1187
 #, c-format
 msgid ""
 "section [%2d] '%s': relative relocations after index %d as specified by "
@@ -1794,7 +1833,7 @@
 "Sección [%2d] '%s': reubicaciones relativas después de que el %d de índice "
 "haya sido especificado por DT_RELCOUNT\n"
 
-#: src/elflint.c:1136 src/elflint.c:1189
+#: src/elflint.c:1140 src/elflint.c:1193
 #, c-format
 msgid ""
 "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -1803,50 +1842,50 @@
 "Sección [%2d] '%s': reubicación no-relativa en %zu de índice; DT_RELCOUNT "
 "especificado %d reubicaciones relativas\n"
 
-#: src/elflint.c:1148
+#: src/elflint.c:1152
 #, c-format
 msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
 msgstr "sección [%2d] '%s': DT_RELACOUNT utilizado para esta sección REL\n"
 
-#: src/elflint.c:1231
+#: src/elflint.c:1235
 #, c-format
 msgid "section [%2d] '%s': invalid destination section index\n"
 msgstr "Sección [%2d] '%s': índice de sección de destino inválido\n"
 
-#: src/elflint.c:1243
+#: src/elflint.c:1247
 #, c-format
 msgid "section [%2d] '%s': invalid destination section type\n"
 msgstr "Sección [%2d] '%s': tipo de sección de destino inválido\n"
 
-#: src/elflint.c:1251
+#: src/elflint.c:1255
 #, c-format
 msgid "section [%2d] '%s': sh_info should be zero\n"
 msgstr "Sección [%2d] '%s': sh_info debe ser cero\n"
 
-#: src/elflint.c:1259
+#: src/elflint.c:1263
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': no relocations for merge-able string sections possible\n"
 msgstr ""
 "Sección [%2d] '%s': no reubicaciones para secciones de fusión posibles\n"
 
-#: src/elflint.c:1267
+#: src/elflint.c:1271
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
 msgstr ""
 "Sección [%2d] '%s': tamaño de entrada de sección no coincide con ElfXX_Rela\n"
 
-#: src/elflint.c:1327
+#: src/elflint.c:1331
 #, c-format
 msgid "text relocation flag set but there is no read-only segment\n"
 msgstr "Reubicación de bandera pero no hay segmento de sólo lectura\n"
 
-#: src/elflint.c:1354
+#: src/elflint.c:1358
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid type\n"
 msgstr "Sección [%2d] '%s': reubicación %zu: tipo inválido\n"
 
-#: src/elflint.c:1362
+#: src/elflint.c:1366
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -1855,12 +1894,12 @@
 "Sección [%2d] '%s': reubicación %zu: tipo de reubicación inválido para el "
 "tipo de archivo\n"
 
-#: src/elflint.c:1370
+#: src/elflint.c:1374
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
 msgstr "Sección [%2d] '%s': reubicación %zu: índice de símbolo inválido\n"
 
-#: src/elflint.c:1388
+#: src/elflint.c:1392
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -1869,12 +1908,12 @@
 "Sección [%2d] '%s': reubicación %zu: sólo el símbolo '_GLOBAL_OFFSET_TABLE_' "
 "puede utilizarse con %s\n"
 
-#: src/elflint.c:1405
+#: src/elflint.c:1409
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
 msgstr "Sección [%2d] '%s': reubicación %zu: compensación fuera de límites\n"
 
-#: src/elflint.c:1420
+#: src/elflint.c:1424
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -1883,7 +1922,7 @@
 "Sección [%2d] '%s': reubicación %zu: reubicación de copia con símbolo de "
 "tipo %s\n"
 
-#: src/elflint.c:1441
+#: src/elflint.c:1445
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -1892,24 +1931,24 @@
 "Sección [%2d] '%s': reubicación %zu: sección de sólo-lectura modificada, "
 "pero no se estableció bandera de reubicación\n"
 
-#: src/elflint.c:1456
+#: src/elflint.c:1460
 #, c-format
 msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
 msgstr ""
 "Sección [%2d] '%s': las reubicaciones se hacen con datos cargados y "
 "descargados\n"
 
-#: src/elflint.c:1496 src/elflint.c:1547
+#: src/elflint.c:1500 src/elflint.c:1551
 #, c-format
 msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
 msgstr "Sección [%2d] '%s': no puede obtener reubicación %zu: %s\n"
 
-#: src/elflint.c:1623
+#: src/elflint.c:1627
 #, c-format
 msgid "more than one dynamic section present\n"
 msgstr "más de una sección dinámica presente\n"
 
-#: src/elflint.c:1641
+#: src/elflint.c:1645
 #, fuzzy, c-format
 msgid ""
 "section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -1918,44 +1957,44 @@
 "sección [%2d] '%s': nombrado como una tabla de cadena para la sección [%2d] "
 "'%s' pero el tipo no es SHT_STRTAB\n"
 
-#: src/elflint.c:1649
+#: src/elflint.c:1653
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
 msgstr ""
 "Sección [%2d] '%s': tamaño de entrada de sección no coincide con ElfXX_Dyn\n"
 
-#: src/elflint.c:1654 src/elflint.c:1943
+#: src/elflint.c:1658 src/elflint.c:1947
 #, c-format
 msgid "section [%2d] '%s': sh_info not zero\n"
 msgstr "Sección [%2d] '%s': sh_info no es cero\n"
 
-#: src/elflint.c:1664
+#: src/elflint.c:1668
 #, c-format
 msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
 msgstr ""
 "Sección [%2d] '%s': no puede obtener entrada de sección dinámica %zu: %s\n"
 
-#: src/elflint.c:1672
+#: src/elflint.c:1676
 #, c-format
 msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
 msgstr "Sección [%2d] '%s': entradas non-DT_NULL siguen a la entrada DT_NULL\n"
 
-#: src/elflint.c:1679
+#: src/elflint.c:1683
 #, c-format
 msgid "section [%2d] '%s': entry %zu: unknown tag\n"
 msgstr "Sección [%2d] '%s': entrada %zu: etiqueta desconocida\n"
 
-#: src/elflint.c:1690
+#: src/elflint.c:1694
 #, c-format
 msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
 msgstr "Sección [%2d] '%s': entrada %zu: más de una entrada con etiqueta %s\n"
 
-#: src/elflint.c:1700
+#: src/elflint.c:1704
 #, c-format
 msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
 msgstr "Sección [%2d] '%s': entrada %zu: nivel 2 etiqueta %s utilizada\n"
 
-#: src/elflint.c:1718
+#: src/elflint.c:1722
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -1963,7 +2002,7 @@
 "Sección [%2d] '%s': entrada %zu: el valor DT_PLTREL debe ser DT_REL or "
 "DT_RELA\n"
 
-#: src/elflint.c:1731
+#: src/elflint.c:1735
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -1972,14 +2011,14 @@
 "Sección [%2d] '%s': entrada %zu: puntero no coincide con dirección de "
 "sección [%2d] '%s' al que hace referencia sh_link\n"
 
-#: src/elflint.c:1774
+#: src/elflint.c:1778
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
 msgstr ""
 "Sección [%2d] '%s': entrada %zu: valor %s debe apuntar en segmento cargado\n"
 
-#: src/elflint.c:1789
+#: src/elflint.c:1793
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -1988,46 +2027,46 @@
 "sección [%2d] '%s': entrada %zu: valor %s debe ser compensación válida en "
 "sección [%2d] '%s'\n"
 
-#: src/elflint.c:1809 src/elflint.c:1837
+#: src/elflint.c:1813 src/elflint.c:1841
 #, c-format
 msgid "section [%2d] '%s': contains %s entry but not %s\n"
 msgstr "Sección [%2d] '%s': contiene entrada %s pero no %s\n"
 
-#: src/elflint.c:1821
+#: src/elflint.c:1825
 #, c-format
 msgid "section [%2d] '%s': mandatory tag %s not present\n"
 msgstr "Sección [%2d] '%s': etiqueta obligatoria %s no está presente\n"
 
-#: src/elflint.c:1830
+#: src/elflint.c:1834
 #, c-format
 msgid "section [%2d] '%s': no hash section present\n"
 msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n"
 
-#: src/elflint.c:1845 src/elflint.c:1852
+#: src/elflint.c:1849 src/elflint.c:1856
 #, c-format
 msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
 msgstr "Sección [%2d] '%s': no todas las %s, %s, y %s están presentes\n"
 
-#: src/elflint.c:1862 src/elflint.c:1866
+#: src/elflint.c:1866 src/elflint.c:1870
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
 msgstr ""
 "Sección [%2d] '%s': etiqueta %s faltante en DSO marcada durante el pre-"
 "enlace\n"
 
-#: src/elflint.c:1872
+#: src/elflint.c:1876
 #, c-format
 msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
 msgstr ""
 "Sección [%2d] '%s': archivo no-DSO marcado como dependencia durante el pre-"
 "enlace\n"
 
-#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895
+#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
 msgstr "Sección [%2d] '%s': etiqueta %s faltante en pre-enlace ejecutable\n"
 
-#: src/elflint.c:1907
+#: src/elflint.c:1911
 #, c-format
 msgid ""
 "section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2035,37 +2074,37 @@
 "Sección [%2d] '%s': sólo los archivos reubicables pueden tener índice de "
 "sección extendido\n"
 
-#: src/elflint.c:1917
+#: src/elflint.c:1921
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index section not for symbol table\n"
 msgstr ""
 "Sección [%2d] '%s': índice de sección extendido no para tabla de símbolos\n"
 
-#: src/elflint.c:1921
+#: src/elflint.c:1925
 #, fuzzy, c-format
 msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
 msgstr ""
 "Sección [%2d] '%s': índice de sección extendido no para tabla de símbolos\n"
 
-#: src/elflint.c:1926
+#: src/elflint.c:1930
 #, c-format
 msgid "cannot get data for symbol section\n"
 msgstr "no se puede obtener sección para símbolos\n"
 
-#: src/elflint.c:1929
+#: src/elflint.c:1933
 #, c-format
 msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
 msgstr "Sección [%2d] '%s': tamaño de entrada no coincide con Elf32_Word\n"
 
-#: src/elflint.c:1938
+#: src/elflint.c:1942
 #, c-format
 msgid "section [%2d] '%s': extended index table too small for symbol table\n"
 msgstr ""
 "Sección [%2d] '%s': tabla de índice extendida demasiado pequeña para tabla "
 "de símbolos\n"
 
-#: src/elflint.c:1953
+#: src/elflint.c:1957
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2074,24 +2113,24 @@
 "Sección [%2d] '%s': índice de sección extendida en sección [%2zu] '%s' se "
 "refiere a la misma tabla de símbolos\n"
 
-#: src/elflint.c:1970
+#: src/elflint.c:1974
 #, c-format
 msgid "symbol 0 should have zero extended section index\n"
 msgstr "símbolo 0 debe tener índice de sección extendida cero\n"
 
-#: src/elflint.c:1982
+#: src/elflint.c:1986
 #, c-format
 msgid "cannot get data for symbol %zu\n"
 msgstr "no puede obtener datos para símbolo %zu\n"
 
-#: src/elflint.c:1987
+#: src/elflint.c:1991
 #, c-format
 msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
 msgstr ""
 "índice de sección extendida es %<PRIu32> pero índice de símbolo no es "
 "XINDEX\n"
 
-#: src/elflint.c:2003 src/elflint.c:2054
+#: src/elflint.c:2007 src/elflint.c:2058
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2099,42 +2138,42 @@
 "Sección [%2d] '%s': sección de tabla de dispersión es demasiado pequeña (es "
 "%ld, se espera %ld)\n"
 
-#: src/elflint.c:2015 src/elflint.c:2066
+#: src/elflint.c:2019 src/elflint.c:2070
 #, c-format
 msgid "section [%2d] '%s': chain array too large\n"
 msgstr "Sección [%2d] '%s': índice de la cadena es demasiado grande\n"
 
-#: src/elflint.c:2029 src/elflint.c:2080
+#: src/elflint.c:2033 src/elflint.c:2084
 #, c-format
 msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
 msgstr ""
 "Sección [%2d] '%s': referencia de cubetas de dispersión %zu fuera de "
 "límites\n"
 
-#: src/elflint.c:2039
+#: src/elflint.c:2043
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
 msgstr ""
 "Sección [%2d] '%s': referencia de cadena de dispersión %zu fuera de límites\n"
 
-#: src/elflint.c:2090
+#: src/elflint.c:2094
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
 msgstr ""
 "Sección [%2d] '%s': referencia de cadena de dispersión %<PRIu64> fuera de "
 "límites\n"
 
-#: src/elflint.c:2103
+#: src/elflint.c:2107
 #, fuzzy, c-format
 msgid "section [%2d] '%s': not enough data\n"
 msgstr "Sección [%2d] '%s': no puede obtener datos: %s\n"
 
-#: src/elflint.c:2115
+#: src/elflint.c:2119
 #, fuzzy, c-format
 msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
 msgstr "Sección [%2d] '%s': tamaño de bitmask no es potencia de 2: %u\n"
 
-#: src/elflint.c:2131
+#: src/elflint.c:2135
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2143,14 +2182,14 @@
 "Sección [%2d] '%s': sección de tabla de dispersión es demasiado pequeña (es "
 "%ld, se espera al menos least%ld)\n"
 
-#: src/elflint.c:2140
+#: src/elflint.c:2144
 #, c-format
 msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
 msgstr ""
 "Sección [%2d] '%s': segundo cambio de función de dispersión demasiado "
 "grande: %u\n"
 
-#: src/elflint.c:2174
+#: src/elflint.c:2178
 #, c-format
 msgid ""
 "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2158,7 +2197,7 @@
 "Sección [%2d] '%s': cadena de dispersión para cubetas %zu inferior a "
 "polarización de índice de símbolo\n"
 
-#: src/elflint.c:2195
+#: src/elflint.c:2199
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2167,7 +2206,7 @@
 "Sección [%2d] '%s': el símbolo %u al que se hace referencia en cadena para "
 "cubeta %zu es indefinido\n"
 
-#: src/elflint.c:2208
+#: src/elflint.c:2212
 #, c-format
 msgid ""
 "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2175,7 +2214,7 @@
 "Sección [%2d] '%s': valor de dispersión para símbolo %u en cadena para "
 "cubeta %zu está errado\n"
 
-#: src/elflint.c:2217
+#: src/elflint.c:2221
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2183,13 +2222,13 @@
 "Sección [%2d] '%s': valor de dispersión para símbolo %u en cadena para "
 "cubeta %zu está errado\n"
 
-#: src/elflint.c:2247
+#: src/elflint.c:2251
 #, c-format
 msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
 msgstr ""
 "Sección [%2d] '%s': cadena de dispersión para cubeta %zu fuera de limites\n"
 
-#: src/elflint.c:2252
+#: src/elflint.c:2256
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2197,43 +2236,43 @@
 "Sección [%2d] '%s': referencia de símbolo en cadena para cubeta %zu fuera de "
 "límites\n"
 
-#: src/elflint.c:2258
+#: src/elflint.c:2262
 #, c-format
 msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
 msgstr ""
 "Sección [%2d] '%s': bitmask no coincide con nombres en la tabla de "
 "dispersión\n"
 
-#: src/elflint.c:2271
+#: src/elflint.c:2275
 #, c-format
 msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
 msgstr ""
 "Sección [%2d] '%s': archivos reubicables no pueden tener tablas de "
 "dispersión\n"
 
-#: src/elflint.c:2289
+#: src/elflint.c:2293
 #, c-format
 msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
 msgstr ""
 "Sección [%2d] '%s': tabla de dispersión no para tabla de símbolos dinámicos\n"
 
-#: src/elflint.c:2293
+#: src/elflint.c:2297
 #, fuzzy, c-format
 msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
 msgstr "Sección [%2d] '%s': índice de sección de destino inválido\n"
 
-#: src/elflint.c:2301
+#: src/elflint.c:2305
 #, c-format
 msgid "section [%2d] '%s': hash table entry size incorrect\n"
 msgstr ""
 "Sección [%2d] '%s': tamaño incorrecto de entrada de tabla de dispersión\n"
 
-#: src/elflint.c:2306
+#: src/elflint.c:2310
 #, c-format
 msgid "section [%2d] '%s': not marked to be allocated\n"
 msgstr "Sección [%2d] '%s': no marcada para ser asignada\n"
 
-#: src/elflint.c:2311
+#: src/elflint.c:2315
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2242,46 +2281,46 @@
 "Sección [%2d] '%s': tabla de dispersión no tiene ni siquiera espacio para "
 "entradas administrativas iniciales\n"
 
-#: src/elflint.c:2360
+#: src/elflint.c:2364
 #, c-format
 msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
 msgstr ""
 "sh_link en secciones de dispersión [%2zu] '%s' y [%2zu] '%s' no son "
 "idénticas\n"
 
-#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484
+#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' does not contain enough data\n"
 msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
 
-#: src/elflint.c:2405
+#: src/elflint.c:2409
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' has zero bit mask words\n"
 msgstr "Sección [%2d] '%s': grupo de sección sin palabra de banderas\n"
 
-#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497
+#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' uses too much data\n"
 msgstr "sección [%2zu] '%s' debe ser asignada\n"
 
-#: src/elflint.c:2431
+#: src/elflint.c:2435
 #, c-format
 msgid ""
 "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
 "%<PRIu32>, nentries: %<PRIu32>\n"
 msgstr ""
 
-#: src/elflint.c:2518
+#: src/elflint.c:2522
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
 msgstr "Sección [%2zu]: nombre inválido\n"
 
-#: src/elflint.c:2528 src/elflint.c:2532
+#: src/elflint.c:2532 src/elflint.c:2536
 #, c-format
 msgid "section [%2zu] '%s': reference to symbol index 0\n"
 msgstr "Sección [%2zu] '%s': referencia al índice de símbolo 0\n"
 
-#: src/elflint.c:2539
+#: src/elflint.c:2543
 #, c-format
 msgid ""
 "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2290,7 +2329,7 @@
 "Símbolo %d nombrado en nueva tabla de dispersión en [%2zu] '%s' pero no en "
 "la tabla de dispersión anterior en [%2zu] '%s'\n"
 
-#: src/elflint.c:2551
+#: src/elflint.c:2555
 #, c-format
 msgid ""
 "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2299,12 +2338,12 @@
 "Símbolo %d nombrado en la tabla de dispersión anterior en [%2zu] '%s' pero "
 "no en la nueva tabla de dispersión en [%2zu] '%s'\n"
 
-#: src/elflint.c:2567
+#: src/elflint.c:2571
 #, c-format
 msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
 msgstr "Sección [%2d] '%s': nonzero sh_%s para sección NULL\n"
 
-#: src/elflint.c:2587
+#: src/elflint.c:2591
 #, c-format
 msgid ""
 "section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2312,99 +2351,99 @@
 "Sección [%2d] '%s': grupos de sección sólo permitidos en archivos de objeto "
 "reubicables\n"
 
-#: src/elflint.c:2598
+#: src/elflint.c:2602
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol table: %s\n"
 msgstr "Sección [%2d] '%s': no puede obtener tabla de símbolos: %s\n"
 
-#: src/elflint.c:2603
+#: src/elflint.c:2607
 #, c-format
 msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
 msgstr ""
 "Sección [%2d] '%s': referencia de sección en sh_link no es una tabla de "
 "símbolos\n"
 
-#: src/elflint.c:2609
+#: src/elflint.c:2613
 #, c-format
 msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
 msgstr "Sección [%2d] '%s': índice de símbolo inválido en sh_info\n"
 
-#: src/elflint.c:2614
+#: src/elflint.c:2618
 #, c-format
 msgid "section [%2d] '%s': sh_flags not zero\n"
 msgstr "Sección [%2d] '%s': sh_flags no cero\n"
 
-#: src/elflint.c:2621
+#: src/elflint.c:2625
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol for signature\n"
 msgstr "Sección [%2d] '%s': no puede obtener símbolo para firma\n"
 
-#: src/elflint.c:2625
+#: src/elflint.c:2629
 #, fuzzy, c-format
 msgid "section [%2d] '%s': cannot get symbol name for signature\n"
 msgstr "Sección [%2d] '%s': no puede obtener símbolo para firma\n"
 
-#: src/elflint.c:2630
+#: src/elflint.c:2634
 #, c-format
 msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
 msgstr ""
 "sección [%2d] '%s': el símbolo de firma no puede ser una cadena vacía\n"
 
-#: src/elflint.c:2636
+#: src/elflint.c:2640
 #, c-format
 msgid "section [%2d] '%s': sh_flags not set correctly\n"
 msgstr "Sección [%2d] '%s': sh_flags no establecida correctamente\n"
 
-#: src/elflint.c:2642
+#: src/elflint.c:2646
 #, c-format
 msgid "section [%2d] '%s': cannot get data: %s\n"
 msgstr "Sección [%2d] '%s': no puede obtener datos: %s\n"
 
-#: src/elflint.c:2651
+#: src/elflint.c:2655
 #, c-format
 msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
 msgstr ""
 "Sección [%2d] '%s': tamaño de sección no es múltiplo de tamaño de "
 "(Elf32_Word)\n"
 
-#: src/elflint.c:2656
+#: src/elflint.c:2660
 #, c-format
 msgid "section [%2d] '%s': section group without flags word\n"
 msgstr "Sección [%2d] '%s': grupo de sección sin palabra de banderas\n"
 
-#: src/elflint.c:2662
+#: src/elflint.c:2666
 #, c-format
 msgid "section [%2d] '%s': section group without member\n"
 msgstr "Sección [%2d] '%s': grupo de sección sin miembro\n"
 
-#: src/elflint.c:2666
+#: src/elflint.c:2670
 #, c-format
 msgid "section [%2d] '%s': section group with only one member\n"
 msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n"
 
-#: src/elflint.c:2677
+#: src/elflint.c:2681
 #, c-format
 msgid "section [%2d] '%s': unknown section group flags\n"
 msgstr "Sección [%2d] '%s': banderas de grupo de sección desconocido\n"
 
-#: src/elflint.c:2689
+#: src/elflint.c:2693
 #, fuzzy, c-format
 msgid "section [%2d] '%s': section index %zu out of range\n"
 msgstr "Sección [%2d] '%s': índice de sección %Zu fuera de rango\n"
 
-#: src/elflint.c:2698
+#: src/elflint.c:2702
 #, c-format
 msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
 msgstr ""
 "Sección [%2d] '%s': no se puede obtener encabezamiento de sección para "
 "elemento %zu: %s\n"
 
-#: src/elflint.c:2705
+#: src/elflint.c:2709
 #, c-format
 msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
 msgstr "Sección [%2d] '%s': grupo de sección contiene otro grupo [%2d] '%s'\n"
 
-#: src/elflint.c:2711
+#: src/elflint.c:2715
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2413,12 +2452,12 @@
 "Sección [%2d] '%s': elemento %Zu hace referencia a sección [%2d] '%s' sin "
 "establecer bandera SHF_GROUP\n"
 
-#: src/elflint.c:2718
+#: src/elflint.c:2722
 #, c-format
 msgid "section [%2d] '%s' is contained in more than one section group\n"
 msgstr "Sección [%2d] '%s' está contenida en más de un grupo de sección\n"
 
-#: src/elflint.c:2907
+#: src/elflint.c:2912
 #, c-format
 msgid ""
 "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2427,7 +2466,7 @@
 "Sección [%2d] '%s' se refiere en sh_link a la sección [%2d] '%s' la cual no "
 "es una tabla de símbolos dinámicos\n"
 
-#: src/elflint.c:2919
+#: src/elflint.c:2924
 #, c-format
 msgid ""
 "section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2436,29 +2475,29 @@
 "Sección [%2d] '%s' tiene un número diferente de entradas a la de la tabla de "
 "símbolos [%2d] '%s'\n"
 
-#: src/elflint.c:2935
+#: src/elflint.c:2940
 #, c-format
 msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
 msgstr ""
 "Sección [%2d] '%s': el símbolo %d: no se pueden leer datos de versión\n"
 
-#: src/elflint.c:2951
+#: src/elflint.c:2956
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
 msgstr ""
 "Sección [%2d] '%s': el símbolo %d: el símbolo local con alcance mundial\n"
 
-#: src/elflint.c:2959
+#: src/elflint.c:2964
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
 msgstr "Sección [%2d] '%s': símbolo %d: símbolo local con versión\n"
 
-#: src/elflint.c:2973
+#: src/elflint.c:2978
 #, c-format
 msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
 msgstr "Sección [%2d] '%s': símbolo %d: índice de versión inválida %d\n"
 
-#: src/elflint.c:2978
+#: src/elflint.c:2983
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for defined version\n"
@@ -2466,7 +2505,7 @@
 "Sección [%2d] '%s': símbolo %d: índice de versión %d es para versión "
 "definida\n"
 
-#: src/elflint.c:2988
+#: src/elflint.c:2993
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for requested version\n"
@@ -2474,46 +2513,46 @@
 "Sección [%2d] '%s': símbolo %d: índice de versión %d es para la versión "
 "solicitada\n"
 
-#: src/elflint.c:3041
+#: src/elflint.c:3046
 #, c-format
 msgid "more than one version reference section present\n"
 msgstr "Más de una sección de referencia de versión presente\n"
 
-#: src/elflint.c:3049 src/elflint.c:3196
+#: src/elflint.c:3054 src/elflint.c:3201
 #, c-format
 msgid "section [%2d] '%s': sh_link does not link to string table\n"
 msgstr "Sección [%2d] '%s': sh_link no se enlaza a la tabla de cadenas\n"
 
-#: src/elflint.c:3074 src/elflint.c:3250
+#: src/elflint.c:3079 src/elflint.c:3255
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong version %d\n"
 msgstr "Sección [%2d] '%s': entrada %d tiene versión %d errada\n"
 
-#: src/elflint.c:3081 src/elflint.c:3257
+#: src/elflint.c:3086 src/elflint.c:3262
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
 msgstr ""
 "Sección [%2d] '%s': entrada %d tiene compensación errada de datos "
 "auxiliares\n"
 
-#: src/elflint.c:3091
+#: src/elflint.c:3096
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid file reference\n"
 msgstr "Sección [%2d] '%s': entrada %d tiene referencia de archivo inválida\n"
 
-#: src/elflint.c:3099
+#: src/elflint.c:3104
 #, c-format
 msgid "section [%2d] '%s': entry %d references unknown dependency\n"
 msgstr "Sección [%2d] '%s': %d hace referencia a dependencia desconocida\n"
 
-#: src/elflint.c:3111
+#: src/elflint.c:3116
 #, c-format
 msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
 msgstr ""
 "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene bandera "
 "desconocida\n"
 
-#: src/elflint.c:3119
+#: src/elflint.c:3124
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2522,7 +2561,7 @@
 "Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene referencia de "
 "nombre inválida\n"
 
-#: src/elflint.c:3128
+#: src/elflint.c:3133
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -2531,7 +2570,7 @@
 "Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene valor de "
 "dispersión: %#x, esperado %#x\n"
 
-#: src/elflint.c:3137
+#: src/elflint.c:3142
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -2540,7 +2579,7 @@
 "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene nombre duplicado "
 "'%s'\n"
 
-#: src/elflint.c:3148
+#: src/elflint.c:3153
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
@@ -2548,14 +2587,14 @@
 "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene próximo campo "
 "errado\n"
 
-#: src/elflint.c:3165 src/elflint.c:3341
+#: src/elflint.c:3170 src/elflint.c:3346
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
 msgstr ""
 "sección [%2d] '%s': entrada %d tiene compensación inválida para próxima "
 "entrada\n"
 
-#: src/elflint.c:3173 src/elflint.c:3349
+#: src/elflint.c:3178 src/elflint.c:3354
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -2564,46 +2603,46 @@
 "sección [%2d] '%s': entrada %d tiene compensación inválida para próxima "
 "entrada\n"
 
-#: src/elflint.c:3188
+#: src/elflint.c:3193
 #, c-format
 msgid "more than one version definition section present\n"
 msgstr "más de una definición de versión presente de sección\n"
 
-#: src/elflint.c:3235
+#: src/elflint.c:3240
 #, c-format
 msgid "section [%2d] '%s': more than one BASE definition\n"
 msgstr "Sección [%2d] '%s': más de una definición de BASE\n"
 
-#: src/elflint.c:3239
+#: src/elflint.c:3244
 #, c-format
 msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
 msgstr ""
 "Sección [%2d] '%s': definición de BASE debe tener índice VER_NDX_GLOBAL\n"
 
-#: src/elflint.c:3245
+#: src/elflint.c:3250
 #, c-format
 msgid "section [%2d] '%s': entry %d has unknown flag\n"
 msgstr "Sección [%2d] '%s': entrada %d tiene bandera desconocida\n"
 
-#: src/elflint.c:3272
+#: src/elflint.c:3277
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid name reference\n"
 msgstr "Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida\n"
 
-#: src/elflint.c:3279
+#: src/elflint.c:3284
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
 msgstr ""
 "Sección [%2d] '%s': entrada %d tiene valor de dispersión errado: %#x, "
 "esperado %#x\n"
 
-#: src/elflint.c:3287
+#: src/elflint.c:3292
 #, c-format
 msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
 msgstr ""
 "Sección [%2d] '%s': entrada %d tiene nombre de versión duplicado '%s'\n"
 
-#: src/elflint.c:3307
+#: src/elflint.c:3312
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -2611,34 +2650,34 @@
 "Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida en datos "
 "auxiliares\n"
 
-#: src/elflint.c:3324
+#: src/elflint.c:3329
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
 msgstr ""
 "Sección [%2d] '%s': entrada %d tiene próximo campo errado en datos "
 "auxiliares\n"
 
-#: src/elflint.c:3357
+#: src/elflint.c:3362
 #, c-format
 msgid "section [%2d] '%s': no BASE definition\n"
 msgstr "Sección [%2d] '%s': no hay definición de BASE\n"
 
-#: src/elflint.c:3373
+#: src/elflint.c:3378
 #, c-format
 msgid "section [%2d] '%s': unknown parent version '%s'\n"
 msgstr "Sección [%2d] '%s': desconocida versión principal '%s'\n"
 
-#: src/elflint.c:3386
+#: src/elflint.c:3391
 #, c-format
 msgid "section [%2d] '%s': empty object attributes section\n"
 msgstr "Sección [%2d] '%s': sección de atributos de objeto vacío\n"
 
-#: src/elflint.c:3407
+#: src/elflint.c:3412
 #, c-format
 msgid "section [%2d] '%s': unrecognized attribute format\n"
 msgstr "Sección[%2d] '%s': formato de atributo no reconocido\n"
 
-#: src/elflint.c:3423
+#: src/elflint.c:3428
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute section\n"
@@ -2646,21 +2685,21 @@
 "Sección[%2d] '%s': compensación %zu: campo de longitud cero en sección de "
 "atributo\n"
 
-#: src/elflint.c:3432
+#: src/elflint.c:3437
 #, c-format
 msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
 msgstr ""
 "Sección[%2d] '%s': compensación %zu: longitud inválida en sección de "
 "atributo\n"
 
-#: src/elflint.c:3444
+#: src/elflint.c:3449
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
 msgstr ""
 "Sección[%2d] '%s': compensación %zu: cadena de nombre de proveedor sin "
 "terminar\n"
 
-#: src/elflint.c:3461
+#: src/elflint.c:3466
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -2668,12 +2707,12 @@
 "Sección [%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de sub-"
 "sección de atributo\n"
 
-#: src/elflint.c:3470
+#: src/elflint.c:3475
 #, c-format
 msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
 msgstr "Sección [%2d] '%s': compensación %zu: sección de atributo truncado\n"
 
-#: src/elflint.c:3479
+#: src/elflint.c:3484
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
@@ -2681,7 +2720,7 @@
 "Sección [%2d] '%s': compensación %zu: campo de longitud cero length en sub-"
 "sección de atributo\n"
 
-#: src/elflint.c:3494
+#: src/elflint.c:3499
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -2689,7 +2728,7 @@
 "Sección [%2d] '%s': compensación %zu: longitud inválida en sub-sección de "
 "atributo\n"
 
-#: src/elflint.c:3505
+#: src/elflint.c:3510
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -2697,26 +2736,26 @@
 "Sección[%2d] '%s': compensación %zu: sub-sección de atributo tiene etiqueta "
 "inesperada %u\n"
 
-#: src/elflint.c:3523
+#: src/elflint.c:3528
 #, c-format
 msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
 msgstr ""
 "Sección[%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de "
 "atributo\n"
 
-#: src/elflint.c:3534
+#: src/elflint.c:3539
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
 msgstr ""
 "Sección [%2d] '%s': compensación %zu: cadena sin terminar en atributo\n"
 
-#: src/elflint.c:3547
+#: src/elflint.c:3552
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
 msgstr ""
 "Sección [%2d] '%s': compensación %zu: etiqueta de atributo no reconocida %u\n"
 
-#: src/elflint.c:3551
+#: src/elflint.c:3556
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
@@ -2724,12 +2763,12 @@
 "Sección [%2d] '%s': compensación %zu: no reconocido %s valor de atributo "
 "%<PRIu64>\n"
 
-#: src/elflint.c:3561
+#: src/elflint.c:3566
 #, c-format
 msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
 msgstr "Sección [%2d] '%s': compensación %zu: proveedor '%s' desconocido\n"
 
-#: src/elflint.c:3567
+#: src/elflint.c:3572
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -2737,47 +2776,47 @@
 "Sección [%2d] '%s': compensación %zu: extra bytes después de la última "
 "sección de atributo\n"
 
-#: src/elflint.c:3656
+#: src/elflint.c:3661
 #, c-format
 msgid "cannot get section header of zeroth section\n"
 msgstr "no puede obtener encabezamiento de sección de sección zeroth\n"
 
-#: src/elflint.c:3660
+#: src/elflint.c:3665
 #, c-format
 msgid "zeroth section has nonzero name\n"
 msgstr "Sección zeroth tiene nombre nonzero\n"
 
-#: src/elflint.c:3662
+#: src/elflint.c:3667
 #, c-format
 msgid "zeroth section has nonzero type\n"
 msgstr "Sección zeroth tiene tipo nonzero\n"
 
-#: src/elflint.c:3664
+#: src/elflint.c:3669
 #, c-format
 msgid "zeroth section has nonzero flags\n"
 msgstr "Sección zeroth tiene banderas nonzero\n"
 
-#: src/elflint.c:3666
+#: src/elflint.c:3671
 #, c-format
 msgid "zeroth section has nonzero address\n"
 msgstr "Sección zeroth tiene dirección nonzero\n"
 
-#: src/elflint.c:3668
+#: src/elflint.c:3673
 #, c-format
 msgid "zeroth section has nonzero offset\n"
 msgstr "Sección zeroth tiene compensación nonzero\n"
 
-#: src/elflint.c:3670
+#: src/elflint.c:3675
 #, c-format
 msgid "zeroth section has nonzero align value\n"
 msgstr "Sección zeroth tiene valor de alineación nonzero\n"
 
-#: src/elflint.c:3672
+#: src/elflint.c:3677
 #, c-format
 msgid "zeroth section has nonzero entry size value\n"
 msgstr "Sección zeroth tiene valor de tamaño de entrada nonzero\n"
 
-#: src/elflint.c:3675
+#: src/elflint.c:3680
 #, c-format
 msgid ""
 "zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -2786,7 +2825,7 @@
 "Sección zeroth tiene valor de tamaño nonzero mientras que el encabezamiento "
 "ELF tiene valor shnum nonzero\n"
 
-#: src/elflint.c:3679
+#: src/elflint.c:3684
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
@@ -2795,7 +2834,7 @@
 "Sección zeroth tiene valor de enlace nonzero mientras que el encabezamiento "
 "ELF no señala sobreflujo en shstrndx\n"
 
-#: src/elflint.c:3683
+#: src/elflint.c:3688
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
@@ -2804,27 +2843,27 @@
 "la sección zeroth tiene un valor de enlace distinto a cero mientras que el "
 "encabezamiento ELF no señala desbordamiento en phnum\n"
 
-#: src/elflint.c:3700
+#: src/elflint.c:3706
 #, c-format
 msgid "cannot get section header for section [%2zu] '%s': %s\n"
 msgstr "No se puede obtener encabezamiento para sección [%2zu] '%s': %s\n"
 
-#: src/elflint.c:3709
+#: src/elflint.c:3715
 #, c-format
 msgid "section [%2zu]: invalid name\n"
 msgstr "Sección [%2zu]: nombre inválido\n"
 
-#: src/elflint.c:3736
+#: src/elflint.c:3742
 #, c-format
 msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
 msgstr "Sección [%2d] '%s' tiene tipo errado: %s esperado, es %s\n"
 
-#: src/elflint.c:3752
+#: src/elflint.c:3760
 #, c-format
 msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
 msgstr "Sección [%2zu] '%s' tiene banderas erradas: %s esperado, es %s\n"
 
-#: src/elflint.c:3769
+#: src/elflint.c:3778
 #, c-format
 msgid ""
 "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
@@ -2832,12 +2871,12 @@
 "Sección [%2zu] '%s' tiene banderas erradas: %s esperado y posiblemente %s, "
 "es %s\n"
 
-#: src/elflint.c:3787
+#: src/elflint.c:3796
 #, c-format
 msgid "section [%2zu] '%s' present in object file\n"
 msgstr "Sección [%2zu] '%s' presente en archivo objeto\n"
 
-#: src/elflint.c:3793 src/elflint.c:3825
+#: src/elflint.c:3802 src/elflint.c:3834
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
@@ -2845,7 +2884,7 @@
 "Sección [%2zu] '%s' tiene bandera SHF_ALLOC establecida pero no es un "
 "segmento cargable\n"
 
-#: src/elflint.c:3798 src/elflint.c:3830
+#: src/elflint.c:3807 src/elflint.c:3839
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -2854,7 +2893,7 @@
 "Sección [%2zu] '%s' no tiene bandera SHF_ALLOC establecida pero hay "
 "segmentos cargables\n"
 
-#: src/elflint.c:3806
+#: src/elflint.c:3815
 #, c-format
 msgid ""
 "section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -2862,22 +2901,22 @@
 "Sección [%2zu] '%s' es tabla de índice de sección de extensión en archivo no-"
 "objeto\n"
 
-#: src/elflint.c:3849
+#: src/elflint.c:3858
 #, c-format
 msgid "section [%2zu] '%s': size not multiple of entry size\n"
 msgstr "Sección [%2zu] '%s': tamaño no es múltiplo de tamaño de entrada\n"
 
-#: src/elflint.c:3854
+#: src/elflint.c:3863
 #, c-format
 msgid "cannot get section header\n"
 msgstr "no se puede obtener encabezamiento de sección\n"
 
-#: src/elflint.c:3864
+#: src/elflint.c:3873
 #, c-format
 msgid "section [%2zu] '%s' has unsupported type %d\n"
 msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n"
 
-#: src/elflint.c:3878
+#: src/elflint.c:3888
 #, c-format
 msgid ""
 "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -2885,59 +2924,76 @@
 "Sección [%2zu] '%s' contiene bandera(s) de procesador-específico inválidas "
 "%#<PRIx64>\n"
 
-#: src/elflint.c:3885
+#: src/elflint.c:3895
 #, c-format
 msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
 msgstr "Sección [%2zu] '%s' contiene bandera(s) desconocidas %#<PRIx64>\n"
 
-#: src/elflint.c:3893
+#: src/elflint.c:3903
 #, c-format
 msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
 msgstr ""
 "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n"
 
-#: src/elflint.c:3901
+#: src/elflint.c:3913
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
+msgstr ""
+"Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n"
+
+#: src/elflint.c:3918
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
+msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n"
+
+#: src/elflint.c:3924
+#, fuzzy, c-format
+msgid ""
+"section [%2zu] '%s': compressed section with no compression header: %s\n"
+msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n"
+
+#: src/elflint.c:3930
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in link value\n"
 msgstr ""
 "Sección [%2zu] '%s': referencia de sección inválida en valor de enlace\n"
 
-#: src/elflint.c:3906
+#: src/elflint.c:3935
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in info value\n"
 msgstr ""
 "Sección [%2zu] '%s': referencia de sección inválida en valor de información\n"
 
-#: src/elflint.c:3913
+#: src/elflint.c:3942
 #, c-format
 msgid "section [%2zu] '%s': strings flag set without merge flag\n"
 msgstr ""
 "Sección [%2zu] '%s': bandera de cadenas establecida sin bandera de fusión\n"
 
-#: src/elflint.c:3918
+#: src/elflint.c:3947
 #, c-format
 msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
 msgstr ""
 "Sección [%2zu] '%s': bandera de fusión establecida pero tamaño de entrada es "
 "cero\n"
 
-#: src/elflint.c:3936
+#: src/elflint.c:3965
 #, c-format
 msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
 msgstr ""
 "Sección [%2zu] '%s' tiene un tipo %d inesperado para una sección ejecutable\n"
 
-#: src/elflint.c:3945
+#: src/elflint.c:3974
 #, fuzzy, c-format
 msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
 msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n"
 
-#: src/elflint.c:3952
+#: src/elflint.c:3981
 #, c-format
 msgid "section [%2zu] '%s' is both executable and writable\n"
 msgstr "Sección [%2zu] '%s' es tanto de ejecución como de escritura\n"
 
-#: src/elflint.c:3982
+#: src/elflint.c:4012
 #, c-format
 msgid ""
 "section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -2946,7 +3002,7 @@
 "Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de "
 "encabezamiento de programa %d\n"
 
-#: src/elflint.c:3992
+#: src/elflint.c:4022
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -2955,7 +3011,7 @@
 "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en "
 "segmento de entrada de encabezamiento de programa %d\n"
 
-#: src/elflint.c:4018
+#: src/elflint.c:4048
 #, fuzzy, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -2964,7 +3020,7 @@
 "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en "
 "segmento de entrada de encabezamiento de programa %d\n"
 
-#: src/elflint.c:4029
+#: src/elflint.c:4059
 #, c-format
 msgid ""
 "section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -2973,18 +3029,18 @@
 "Sección [%2zu] '%s' no tiene tipo NOBITS pero no es leída desde el fichero "
 "en segmento de entrada de encabezamiento de programa %d\n"
 
-#: src/elflint.c:4040
+#: src/elflint.c:4070
 #, c-format
 msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
 msgstr "Sección [%2zu] '%s' es ejecutable en segmento no ejecutable %d\n"
 
-#: src/elflint.c:4050
+#: src/elflint.c:4080
 #, c-format
 msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
 msgstr ""
 "Sección [%2zu] '%s' es de escritura en segmento que no es de escritura %d\n"
 
-#: src/elflint.c:4060
+#: src/elflint.c:4090
 #, c-format
 msgid ""
 "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -2992,7 +3048,7 @@
 "Sección [%2zu] '%s': asignación de bandera establecida pero sección no en "
 "ningún segmento cargado\n"
 
-#: src/elflint.c:4066
+#: src/elflint.c:4096
 #, c-format
 msgid ""
 "section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3001,7 +3057,7 @@
 "Sección [%2zu] '%s': encabezamiento ELF dice esta es la tabla de cadena de "
 "encabezamiento de sección, pero el tipo no es SHT_TYPE\n"
 
-#: src/elflint.c:4074
+#: src/elflint.c:4104
 #, c-format
 msgid ""
 "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3009,32 +3065,32 @@
 "sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de símbolos "
 "dinámicos\n"
 
-#: src/elflint.c:4125
+#: src/elflint.c:4155
 #, c-format
 msgid "more than one version symbol table present\n"
 msgstr "Más de una tabla de símbolos presente\n"
 
-#: src/elflint.c:4148
+#: src/elflint.c:4178
 #, c-format
 msgid "INTERP program header entry but no .interp section\n"
 msgstr ""
 "Entrada de encabezamiento de programa INTERP pero no la sección .interp\n"
 
-#: src/elflint.c:4159
+#: src/elflint.c:4189
 #, c-format
 msgid ""
 "loadable segment [%u] is executable but contains no executable sections\n"
 msgstr ""
 "segmento cargable [%u] es ejecutable pero no contiene secciones ejecutables\n"
 
-#: src/elflint.c:4165
+#: src/elflint.c:4195
 #, c-format
 msgid "loadable segment [%u] is writable but contains no writable sections\n"
 msgstr ""
 "segmento cargable [%u] es de escritura pero contiene secciones protegidas "
 "contra escritura\n"
 
-#: src/elflint.c:4176
+#: src/elflint.c:4206
 #, c-format
 msgid ""
 "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3043,26 +3099,26 @@
 "Sección no .gnu.versym presente, pero la sección .gnu.versym_d o la sección ."
 "gnu.versym_r existen\n"
 
-#: src/elflint.c:4189
+#: src/elflint.c:4219
 #, c-format
 msgid "duplicate version index %d\n"
 msgstr "Duplicar índice de versión %d\n"
 
-#: src/elflint.c:4203
+#: src/elflint.c:4233
 #, c-format
 msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
 msgstr ""
 "Sección .gnu.versym presente sin las secciones .gnu.versym_d o .gnu."
 "versym_r\n"
 
-#: src/elflint.c:4252
+#: src/elflint.c:4282
 #, c-format
 msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
 msgstr ""
 "phdr[%d]: tipo de nota de fichero core desconocido %<PRIu32> en compensación "
 "%<PRIu64>\n"
 
-#: src/elflint.c:4256
+#: src/elflint.c:4286
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3070,14 +3126,14 @@
 "Sección [%2d] '%s': tipo de nota de fichero core desconocido %<PRIu32> en "
 "compensación %Zu\n"
 
-#: src/elflint.c:4279
+#: src/elflint.c:4309
 #, fuzzy, c-format
 msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 "phdr[%d]: tipo de nota de fichero objeto desconocido %<PRIu32> en "
 "compensación %Zu\n"
 
-#: src/elflint.c:4283
+#: src/elflint.c:4313
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n"
@@ -3085,40 +3141,40 @@
 "Sección [%2d] '%s': tipo de nota de fichero objeto desconocido %<PRIu32> en "
 "compensación %Zu\n"
 
-#: src/elflint.c:4300
+#: src/elflint.c:4330
 #, c-format
 msgid "phdr[%d]: no note entries defined for the type of file\n"
 msgstr "phdr[%d]: no hay entradas de nota definidas para el tipo de archivo\n"
 
-#: src/elflint.c:4319
+#: src/elflint.c:4349
 #, c-format
 msgid "phdr[%d]: cannot get content of note section: %s\n"
 msgstr "phdr[%d]: no puede obtener contenido de sección de nota: %s\n"
 
-#: src/elflint.c:4322
+#: src/elflint.c:4352
 #, c-format
 msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
 msgstr "phdr[%d]: extra %<PRIu64> bytes después de la última nota\n"
 
-#: src/elflint.c:4343
+#: src/elflint.c:4373
 #, c-format
 msgid "section [%2d] '%s': no note entries defined for the type of file\n"
 msgstr ""
 "Sección [%2d] '%s': no hay entradas de nota definidas para el tipo de "
 "archivo\n"
 
-#: src/elflint.c:4350
+#: src/elflint.c:4380
 #, c-format
 msgid "section [%2d] '%s': cannot get content of note section\n"
 msgstr ""
 "Sección[%2d] '%s': no se puede obtener el contenido de sección de nota\n"
 
-#: src/elflint.c:4353
+#: src/elflint.c:4383
 #, c-format
 msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
 msgstr "Sección[%2d] '%s': extra %<PRIu64> bytes después de la última nota\n"
 
-#: src/elflint.c:4371
+#: src/elflint.c:4401
 #, c-format
 msgid ""
 "only executables, shared objects, and core files can have program headers\n"
@@ -3126,145 +3182,145 @@
 "Sólo ejecutables, objetos compartidos y ficheros core pueden tener "
 "encabezamientos de programas\n"
 
-#: src/elflint.c:4386
+#: src/elflint.c:4416
 #, c-format
 msgid "cannot get program header entry %d: %s\n"
 msgstr "no se puede obtener entrada de encabezamiento %d: %s\n"
 
-#: src/elflint.c:4395
+#: src/elflint.c:4425
 #, c-format
 msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
 msgstr ""
 "entrada de encabezamiento de programa %d: tipo %#<PRIx64> de entrada de "
 "encabezamiento de programa desconocido\n"
 
-#: src/elflint.c:4406
+#: src/elflint.c:4436
 #, c-format
 msgid "more than one INTERP entry in program header\n"
 msgstr "Más de una entrada INTERP en encabezamiento de programa\n"
 
-#: src/elflint.c:4414
+#: src/elflint.c:4444
 #, c-format
 msgid "more than one TLS entry in program header\n"
 msgstr "más de una entrada TLS en encabezamiento de programa\n"
 
-#: src/elflint.c:4421
+#: src/elflint.c:4451
 #, c-format
 msgid "static executable cannot have dynamic sections\n"
 msgstr "ejecutable estático no puede tener secciones dinámicas\n"
 
-#: src/elflint.c:4435
+#: src/elflint.c:4465
 #, c-format
 msgid "dynamic section reference in program header has wrong offset\n"
 msgstr ""
 "Referencia de sección dinámica en encabezamiento de programa tiene "
 "compensación errada\n"
 
-#: src/elflint.c:4438
+#: src/elflint.c:4468
 #, c-format
 msgid "dynamic section size mismatch in program and section header\n"
 msgstr ""
 "No coinciden tamaño de sección dinámica en programa y encabezamiento de "
 "sección\n"
 
-#: src/elflint.c:4448
+#: src/elflint.c:4478
 #, c-format
 msgid "more than one GNU_RELRO entry in program header\n"
 msgstr "Más de una entrada GNU_RELRO en encabezamiento de programa\n"
 
-#: src/elflint.c:4469
+#: src/elflint.c:4499
 #, c-format
 msgid "loadable segment GNU_RELRO applies to is not writable\n"
 msgstr "Segmento cargable GNU_RELRO que se aplica no es de escritura\n"
 
-#: src/elflint.c:4480
+#: src/elflint.c:4510
 #, c-format
 msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
 msgstr ""
 "Banderas de segmento cargable [%u] no coinciden con banderas GNU_RELRO [%u]\n"
 
-#: src/elflint.c:4487
+#: src/elflint.c:4517
 #, c-format
 msgid ""
 "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
 msgstr ""
 
-#: src/elflint.c:4496 src/elflint.c:4519
+#: src/elflint.c:4526 src/elflint.c:4549
 #, c-format
 msgid "%s segment not contained in a loaded segment\n"
 msgstr "Segmento %s no contenido en un segmento cargable\n"
 
-#: src/elflint.c:4525
+#: src/elflint.c:4555
 #, c-format
 msgid "program header offset in ELF header and PHDR entry do not match"
 msgstr ""
 "Compensación de encabezamiento de programa en encabezamiento ELF y entrada "
 "PHDR no coinciden"
 
-#: src/elflint.c:4550
+#: src/elflint.c:4580
 #, c-format
 msgid "call frame search table reference in program header has wrong offset\n"
 msgstr ""
 "Referencia de tabla de búsqueda de marco de llamada en encabezamiento de "
 "programa tiene una compensación errada\n"
 
-#: src/elflint.c:4553
+#: src/elflint.c:4583
 #, c-format
 msgid "call frame search table size mismatch in program and section header\n"
 msgstr ""
 "Tamaño de tabla de búsqueda de marco de llamada no coincide con programa y "
 "encabezamiento de sección\n"
 
-#: src/elflint.c:4566
+#: src/elflint.c:4596
 #, c-format
 msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
 msgstr "PT_GNU_EH_FRAME presente pero no la sección.eh_frame_hdr\n"
 
-#: src/elflint.c:4574
+#: src/elflint.c:4604
 #, c-format
 msgid "call frame search table must be allocated\n"
 msgstr "tabla de búsqueda de marco de llamada debe ser asignada\n"
 
-#: src/elflint.c:4577
+#: src/elflint.c:4607
 #, c-format
 msgid "section [%2zu] '%s' must be allocated\n"
 msgstr "sección [%2zu] '%s' debe ser asignada\n"
 
-#: src/elflint.c:4581
+#: src/elflint.c:4611
 #, c-format
 msgid "call frame search table must not be writable\n"
 msgstr ""
 "tabla de búsqueda de marco de llamada no debe tener permiso de escritura\n"
 
-#: src/elflint.c:4584
+#: src/elflint.c:4614
 #, c-format
 msgid "section [%2zu] '%s' must not be writable\n"
 msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n"
 
-#: src/elflint.c:4589
+#: src/elflint.c:4619
 #, c-format
 msgid "call frame search table must not be executable\n"
 msgstr "tabla de búsqueda de marco de llamada no debe ser ejecutable\n"
 
-#: src/elflint.c:4592
+#: src/elflint.c:4622
 #, c-format
 msgid "section [%2zu] '%s' must not be executable\n"
 msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
 
-#: src/elflint.c:4603
+#: src/elflint.c:4633
 #, c-format
 msgid "program header entry %d: file size greater than memory size\n"
 msgstr ""
 "entrada de encabezamiento de programa %d: tamaño de fichero mayor que el "
 "tamaño de memoria\n"
 
-#: src/elflint.c:4610
+#: src/elflint.c:4640
 #, c-format
 msgid "program header entry %d: alignment not a power of 2\n"
 msgstr ""
 "entrada de encabezamiento de programa %d: alineamiento no es potencia de 2\n"
 
-#: src/elflint.c:4613
+#: src/elflint.c:4643
 #, c-format
 msgid ""
 "program header entry %d: file offset and virtual address not module of "
@@ -3273,7 +3329,7 @@
 "entrada de encabezamiento de programa %d: compensación de fichero y "
 "dirección virtual no módulo de alineación\n"
 
-#: src/elflint.c:4626
+#: src/elflint.c:4656
 #, c-format
 msgid ""
 "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3282,12 +3338,12 @@
 "ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de "
 "encabezamiento de programa PT_GNU_EH_FRAME"
 
-#: src/elflint.c:4660
+#: src/elflint.c:4690
 #, c-format
 msgid "cannot read ELF header: %s\n"
 msgstr "No se puede leer encabezamiento ELF: %s\n"
 
-#: src/elflint.c:4686
+#: src/elflint.c:4716
 #, c-format
 msgid "text relocation flag set but not needed\n"
 msgstr "Bandera de reubicación de texto establecida pero no necesaria\n"
@@ -3309,7 +3365,7 @@
 msgstr ""
 "Localizar origen de reubicaciones de texto en FICHEROS (a.out por defecto)."
 
-#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83
+#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83
 #: src/strings.c:88 src/strip.c:95
 msgid "[FILE...]"
 msgstr "[FICHERO...]"
@@ -3821,8 +3877,8 @@
 msgstr ""
 "Advertencia: el tamaño de `%s' cambió de %<PRIu64> en %s a %<PRIu64> en %s"
 
-#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527
-#: src/readelf.c:829 src/strip.c:589
+#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852
+#: src/strip.c:589
 #, c-format
 msgid "cannot determine number of sections: %s"
 msgstr "no se pudieron determinar el número de secciones: %s"
@@ -4078,7 +4134,7 @@
 msgid "cannot get header of 0th section: %s"
 msgstr "No se puede obtener encabezamiento de sección 0th: %s"
 
-#: src/ldgeneric.c:6930 src/unstrip.c:1893
+#: src/ldgeneric.c:6930 src/unstrip.c:1929
 #, c-format
 msgid "cannot update ELF header: %s"
 msgstr "No se puede actualizar encabezamiento ELF: %s"
@@ -4149,43 +4205,43 @@
 msgid "default visibility set as local and global"
 msgstr "la visibilidad establecida por defecto establecida como local y global"
 
-#: src/nm.c:65 src/strip.c:67
+#: src/nm.c:66 src/strip.c:67
 msgid "Output selection:"
 msgstr "Selección de salida:"
 
-#: src/nm.c:66
+#: src/nm.c:67
 msgid "Display debugger-only symbols"
 msgstr "Mostrar sólo símbolos del depurador"
 
-#: src/nm.c:67
+#: src/nm.c:68
 msgid "Display only defined symbols"
 msgstr "Mostrar sólo símbolos definidos"
 
-#: src/nm.c:70
+#: src/nm.c:71
 msgid "Display dynamic symbols instead of normal symbols"
 msgstr "Mostrar símbolos dinámicos en lugar de símbolos normales"
 
-#: src/nm.c:71
+#: src/nm.c:72
 msgid "Display only external symbols"
 msgstr "Mostrar sólo símbolos externos"
 
-#: src/nm.c:72
+#: src/nm.c:73
 msgid "Display only undefined symbols"
 msgstr "Mostrar sólo símbolos indefinidos"
 
-#: src/nm.c:74
+#: src/nm.c:75
 msgid "Include index for symbols from archive members"
 msgstr "Incluir índices para símbolos de miembros de archivo"
 
-#: src/nm.c:76 src/size.c:57
+#: src/nm.c:77 src/size.c:57
 msgid "Output format:"
 msgstr "Formato de salida:"
 
-#: src/nm.c:78
+#: src/nm.c:79
 msgid "Print name of the input file before every symbol"
 msgstr "Imprimir nombre de archivo de entrada antes de cada símbolo"
 
-#: src/nm.c:81
+#: src/nm.c:82
 msgid ""
 "Use the output format FORMAT.  FORMAT can be `bsd', `sysv' or `posix'.  The "
 "default is `sysv'"
@@ -4193,73 +4249,73 @@
 "Usar el formato de salida FORMATO.  FORMATO puede ser o bien `bsd', o "
 "`sysv', o `posix'. El establecido por defecto es `sysv'"
 
-#: src/nm.c:83
+#: src/nm.c:84
 msgid "Same as --format=bsd"
 msgstr "lo mismo que --format=bsd"
 
-#: src/nm.c:84
+#: src/nm.c:85
 msgid "Same as --format=posix"
 msgstr "lo mismo que --format=posix"
 
-#: src/nm.c:85 src/size.c:63
+#: src/nm.c:86 src/size.c:63
 msgid "Use RADIX for printing symbol values"
 msgstr "Utilizar RADIX para imprimir valores de símbolo"
 
-#: src/nm.c:86
+#: src/nm.c:87
 #, fuzzy
 msgid "Mark special symbols"
 msgstr "Marcar símbolos débiles"
 
-#: src/nm.c:88
+#: src/nm.c:89
 msgid "Print size of defined symbols"
 msgstr "Tamaño de impresión de símbolos definidos"
 
-#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72
+#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72
 msgid "Output options:"
 msgstr "Opciones de salida:"
 
-#: src/nm.c:91
+#: src/nm.c:92
 msgid "Sort symbols numerically by address"
 msgstr "Ordenar los símbolos numéricos por dirección"
 
-#: src/nm.c:93
+#: src/nm.c:94
 msgid "Do not sort the symbols"
 msgstr "No ordenar los símbolos"
 
-#: src/nm.c:94
+#: src/nm.c:95
 msgid "Reverse the sense of the sort"
 msgstr "Invertir el orden"
 
-#: src/nm.c:97
+#: src/nm.c:98
 msgid "Decode low-level symbol names into source code names"
 msgstr ""
 
-#: src/nm.c:104
+#: src/nm.c:105
 msgid "List symbols from FILEs (a.out by default)."
 msgstr "Listar símbolos de FICHEROS (a.out por defecto)."
 
-#: src/nm.c:115 src/objdump.c:79
+#: src/nm.c:116 src/objdump.c:79
 #, fuzzy
 msgid "Output formatting"
 msgstr "Formato de salida:"
 
-#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127
+#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127
 #, fuzzy, c-format
 msgid "%s: INTERNAL ERROR %d (%s): %s"
 msgstr "%s: ERROR INTERNO %d (%s-%s): %s"
 
-#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325
+#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325
 #: src/strip.c:2280
 #, c-format
 msgid "while closing '%s'"
 msgstr "error al cerrar '%s'"
 
-#: src/nm.c:416 src/objdump.c:292 src/strip.c:391
+#: src/nm.c:417 src/objdump.c:292 src/strip.c:391
 #, c-format
 msgid "%s: File format not recognized"
 msgstr "%s: No se reconoce el formato del fichero"
 
-#: src/nm.c:456
+#: src/nm.c:457
 #, fuzzy
 msgid ""
 "\n"
@@ -4268,42 +4324,42 @@
 "\n"
 "Índice de archivo:"
 
-#: src/nm.c:465
+#: src/nm.c:466
 #, c-format
 msgid "invalid offset %zu for symbol %s"
 msgstr "Compensación %zu inválida para símbolo %s"
 
-#: src/nm.c:470
+#: src/nm.c:471
 #, c-format
 msgid "%s in %s\n"
 msgstr "%s en %s\n"
 
-#: src/nm.c:478
+#: src/nm.c:479
 #, c-format
 msgid "cannot reset archive offset to beginning"
 msgstr "imposible restablecer compensación de archivo al inicio"
 
-#: src/nm.c:503 src/objdump.c:340
+#: src/nm.c:504 src/objdump.c:340
 #, c-format
 msgid "%s%s%s: file format not recognized"
 msgstr "%s%s%s: no se reconoció el formato de fichero"
 
-#: src/nm.c:715
+#: src/nm.c:719
 #, c-format
 msgid "cannot create search tree"
 msgstr "No se puede crear el árbol de búsqueda"
 
-#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536
-#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579
-#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460
-#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239
-#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461
-#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520
+#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545
+#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667
+#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558
+#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347
+#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603
+#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520
 #, c-format
 msgid "cannot get section header string table index"
 msgstr "no se puede obtener índice de cadena de encabezamiento de sección"
 
-#: src/nm.c:781
+#: src/nm.c:787
 #, c-format
 msgid ""
 "\n"
@@ -4316,7 +4372,7 @@
 "Símbolos de %s:\n"
 "\n"
 
-#: src/nm.c:784
+#: src/nm.c:790
 #, c-format
 msgid ""
 "%*s%-*s %-*s Class  Type     %-*s %*s Section\n"
@@ -4325,23 +4381,23 @@
 "%*s%-*s %-*s Clase  Tipo     %-*s %*s Sección\n"
 "\n"
 
-#: src/nm.c:1171
+#: src/nm.c:1232
 #, fuzzy, c-format
 msgid "%s: entry size in section %zd `%s' is not what we expect"
 msgstr ""
 "%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos "
 
-#: src/nm.c:1176
+#: src/nm.c:1237
 #, fuzzy, c-format
 msgid "%s: size of section %zd `%s' is not multiple of entry size"
 msgstr "%s: Tamaño de sección `%s' no es múltiplo de tamaño de entrada"
 
-#: src/nm.c:1434
+#: src/nm.c:1537
 #, c-format
 msgid "%s%s%s%s: Invalid operation"
 msgstr "%s%s%s%s: Operación inválida"
 
-#: src/nm.c:1491
+#: src/nm.c:1594
 #, c-format
 msgid "%s%s%s: no symbols"
 msgstr "%s%s%s: No hay símbolos"
@@ -4375,7 +4431,7 @@
 msgid "Show information from FILEs (a.out by default)."
 msgstr "Muestra información de FICHEROS (a.out por defecto)."
 
-#: src/objdump.c:232 src/readelf.c:473
+#: src/objdump.c:232 src/readelf.c:479
 msgid "No operation specified.\n"
 msgstr "No se especificó una operación.\n"
 
@@ -4384,11 +4440,11 @@
 msgid "while close `%s'"
 msgstr "mientras cierra `%s'"
 
-#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072
+#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160
 msgid "INVALID SYMBOL"
 msgstr "SÍMBOLO INVÁLIDO"
 
-#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108
+#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196
 msgid "INVALID SECTION"
 msgstr "SECCIÓN INVÁLIDA"
 
@@ -4440,73 +4496,73 @@
 msgid "error while freeing sub-ELF descriptor: %s"
 msgstr "error al liberar descriptor sub-ELF: %s"
 
-#: src/readelf.c:71
+#: src/readelf.c:72
 #, fuzzy
 msgid "ELF input selection:"
 msgstr "Selección de salida de ELF:"
 
-#: src/readelf.c:73
+#: src/readelf.c:74
 msgid ""
 "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
 msgstr ""
 
-#: src/readelf.c:75
+#: src/readelf.c:76
 msgid "ELF output selection:"
 msgstr "Selección de salida de ELF:"
 
-#: src/readelf.c:77
+#: src/readelf.c:78
 msgid "All these plus -p .strtab -p .dynstr -p .comment"
 msgstr "Todo esto mas -p .strtab -p .dynstr -p .comment"
 
-#: src/readelf.c:78
+#: src/readelf.c:79
 msgid "Display the dynamic segment"
 msgstr "Mostrar el segmento dinámico"
 
-#: src/readelf.c:79
+#: src/readelf.c:80
 msgid "Display the ELF file header"
 msgstr "Mostrar el encabezamiento del fichero ELF"
 
-#: src/readelf.c:81
+#: src/readelf.c:82
 msgid "Display histogram of bucket list lengths"
 msgstr "Mostrar histograma de las longitudes de las listas de cubetas"
 
-#: src/readelf.c:82
+#: src/readelf.c:83
 msgid "Display the program headers"
 msgstr "Mostrar encabezamientos de programa"
 
-#: src/readelf.c:84
+#: src/readelf.c:85
 msgid "Display relocations"
 msgstr "Mostrar reubicaciones"
 
-#: src/readelf.c:85
+#: src/readelf.c:86
 msgid "Display the sections' headers"
 msgstr "Mostrar los encabezados de las secciones"
 
-#: src/readelf.c:87
+#: src/readelf.c:88
 msgid "Display the symbol table"
 msgstr "Mostrar la tabla de símbolos"
 
-#: src/readelf.c:88
+#: src/readelf.c:89
 msgid "Display versioning information"
 msgstr "Mostrar información de versión"
 
-#: src/readelf.c:89
+#: src/readelf.c:90
 msgid "Display the ELF notes"
 msgstr "Mostrar las notas ELF"
 
-#: src/readelf.c:91
+#: src/readelf.c:92
 msgid "Display architecture specific information, if any"
 msgstr "Mostrar información específica de la arquitectura (si es que la hay)"
 
-#: src/readelf.c:93
+#: src/readelf.c:94
 msgid "Display sections for exception handling"
 msgstr "Muestra secciones para manejo de excepciones"
 
-#: src/readelf.c:95
+#: src/readelf.c:96
 msgid "Additional output selection:"
 msgstr "Selección de salida adicional:"
 
-#: src/readelf.c:97
+#: src/readelf.c:98
 #, fuzzy
 msgid ""
 "Display DWARF section content.  SECTION can be one of abbrev, aranges, "
@@ -4517,170 +4573,176 @@
 "siguiente: abbrev, aranges, frame, info, loc, line, ranges, pubnames, str, "
 "macinfo, o exception"
 
-#: src/readelf.c:101
+#: src/readelf.c:102
 msgid "Dump the uninterpreted contents of SECTION, by number or name"
 msgstr "Vuelca los contenidos no interpretados de SECCIÓN, por número o nombre"
 
-#: src/readelf.c:103
+#: src/readelf.c:104
 msgid "Print string contents of sections"
 msgstr "Imprime contenido de cadena de secciones"
 
-#: src/readelf.c:106
+#: src/readelf.c:107
 msgid "Display the symbol index of an archive"
 msgstr "Muestra el índice de símbolos de un archivo"
 
-#: src/readelf.c:108
+#: src/readelf.c:109
 msgid "Output control:"
 msgstr "Control de salida:"
 
-#: src/readelf.c:110
+#: src/readelf.c:111
 msgid "Do not find symbol names for addresses in DWARF data"
 msgstr ""
 "No se encuentran los nombres de símbolos para direcciones en datos DWARF"
 
-#: src/readelf.c:112
+#: src/readelf.c:113
 #, fuzzy
 msgid ""
 "Display just offsets instead of resolving values to addresses in DWARF data"
 msgstr ""
 "No se encuentran los nombres de símbolos para direcciones en datos DWARF"
 
-#: src/readelf.c:114
+#: src/readelf.c:115
 msgid "Ignored for compatibility (lines always wide)"
 msgstr ""
 
-#: src/readelf.c:119
+#: src/readelf.c:117
+msgid ""
+"Show compression information for compressed sections (when used with -S); "
+"decompress section before dumping data (when used with -p or -x)"
+msgstr ""
+
+#: src/readelf.c:122
 msgid "Print information from ELF file in human-readable form."
 msgstr ""
 "Imprimir información del fichero ELF en una forma comprensible para los "
 "seres humanos."
 
-#: src/readelf.c:441
+#: src/readelf.c:447
 #, c-format
 msgid "Unknown DWARF debug section `%s'.\n"
 msgstr "Sección de depuración DWARF desconocida `%s'.\n"
 
-#: src/readelf.c:520 src/readelf.c:631
+#: src/readelf.c:529 src/readelf.c:640
 #, c-format
 msgid "cannot generate Elf descriptor: %s"
 msgstr "no se puede crear descriptor ELF: %s"
 
-#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269
+#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347
 #, c-format
 msgid "cannot get section: %s"
 msgstr "No se puede encontrar la sección: %s"
 
-#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481
-#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543
-#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083
-#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508
-#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855
+#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623
+#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577
+#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118
+#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543
+#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891
 #, c-format
 msgid "cannot get section header: %s"
 msgstr "No se puede obtener encabezamiento de sección: %s"
 
-#: src/readelf.c:562
+#: src/readelf.c:571
 #, fuzzy, c-format
 msgid "cannot get section name"
 msgstr "no se puede obtener encabezamiento de sección\n"
 
-#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772
-#: src/readelf.c:7949
+#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880
+#: src/readelf.c:8057
 #, c-format
 msgid "cannot get %s content: %s"
 msgstr "No se puede obtener el contenido %s: %s"
 
-#: src/readelf.c:587
+#: src/readelf.c:596
 #, fuzzy, c-format
 msgid "cannot create temp file '%s'"
 msgstr "no se puede crear fichero nuevo '%s': %s"
 
-#: src/readelf.c:596
+#: src/readelf.c:605
 #, fuzzy, c-format
 msgid "cannot write section data"
 msgstr "no se puede leer la sección de datos: %s"
 
-#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648
+#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657
 #, c-format
 msgid "error while closing Elf descriptor: %s"
 msgstr "error al cerrar el descriptor ELF: %s"
 
-#: src/readelf.c:609
+#: src/readelf.c:618
 #, fuzzy, c-format
 msgid "error while rewinding file descriptor"
 msgstr "error al cerrar el descriptor ELF: %s"
 
-#: src/readelf.c:643
+#: src/readelf.c:652
 #, c-format
 msgid "'%s' is not an archive, cannot print archive index"
 msgstr "'%s' no es un archivo, no se puede imprimir índice de archivo"
 
-#: src/readelf.c:742
+#: src/readelf.c:751
 #, fuzzy, c-format
 msgid "No such section '%s' in '%s'"
 msgstr "No se puede obtener contenido de sección %zu en '%s': %s"
 
-#: src/readelf.c:769
+#: src/readelf.c:778
 #, c-format
 msgid "cannot stat input file"
 msgstr "no sepudo stat archivo de entrada"
 
-#: src/readelf.c:771
+#: src/readelf.c:780
 #, c-format
 msgid "input file is empty"
 msgstr "archivo de entrada vacío"
 
-#: src/readelf.c:773
+#: src/readelf.c:782
 #, c-format
 msgid "failed reading '%s': %s"
 msgstr "Falló lectura de '%s': %s"
 
-#: src/readelf.c:814
+#: src/readelf.c:837
 #, c-format
 msgid "cannot read ELF header: %s"
 msgstr "no se pudo leer encabezamiento ELF: %s"
 
-#: src/readelf.c:822
+#: src/readelf.c:845
 #, c-format
 msgid "cannot create EBL handle"
 msgstr "no se puede crear EBL"
 
-#: src/readelf.c:835
+#: src/readelf.c:858
 #, c-format
 msgid "cannot determine number of program headers: %s"
 msgstr "no se pudo determinar la cantidad de encabezados de programa: %s"
 
-#: src/readelf.c:921
+#: src/readelf.c:948
 msgid "NONE (None)"
 msgstr "NONE (Ninguno)"
 
-#: src/readelf.c:922
+#: src/readelf.c:949
 msgid "REL (Relocatable file)"
 msgstr "REL (Fichero reubicable)"
 
-#: src/readelf.c:923
+#: src/readelf.c:950
 msgid "EXEC (Executable file)"
 msgstr "EXEC (Fichero ejecutable)"
 
-#: src/readelf.c:924
+#: src/readelf.c:951
 msgid "DYN (Shared object file)"
 msgstr "DYN (Fichero objeto compartido)"
 
-#: src/readelf.c:925
+#: src/readelf.c:952
 msgid "CORE (Core file)"
 msgstr "CORE (Fichero núcleo)"
 
-#: src/readelf.c:930
+#: src/readelf.c:957
 #, c-format
 msgid "OS Specific: (%x)\n"
 msgstr "OS Specific: (%x)\n"
 
-#: src/readelf.c:932
+#: src/readelf.c:959
 #, c-format
 msgid "Processor Specific: (%x)\n"
 msgstr "Específico del procesador: (%x)\n"
 
-#: src/readelf.c:942
+#: src/readelf.c:969
 msgid ""
 "ELF Header:\n"
 "  Magic:  "
@@ -4688,7 +4750,7 @@
 "Encabezamiento ELF:\n"
 "  Mágico:  "
 
-#: src/readelf.c:946
+#: src/readelf.c:973
 #, c-format
 msgid ""
 "\n"
@@ -4697,119 +4759,119 @@
 "\n"
 "  Clase:                             %s\n"
 
-#: src/readelf.c:951
+#: src/readelf.c:978
 #, c-format
 msgid "  Data:                              %s\n"
 msgstr "  Datos:                             %s\n"
 
-#: src/readelf.c:957
+#: src/readelf.c:984
 #, c-format
 msgid "  Ident Version:                     %hhd %s\n"
 msgstr "  Versión ident:                     %hhd %s\n"
 
-#: src/readelf.c:959 src/readelf.c:976
+#: src/readelf.c:986 src/readelf.c:1003
 msgid "(current)"
 msgstr "(actual)"
 
-#: src/readelf.c:963
+#: src/readelf.c:990
 #, c-format
 msgid "  OS/ABI:                            %s\n"
 msgstr "  OS/ABI:                            %s\n"
 
-#: src/readelf.c:966
+#: src/readelf.c:993
 #, c-format
 msgid "  ABI Version:                       %hhd\n"
 msgstr "  Versión ABI:                       %hhd\n"
 
-#: src/readelf.c:969
+#: src/readelf.c:996
 msgid "  Type:                              "
 msgstr "  Tipo:                              "
 
-#: src/readelf.c:972
+#: src/readelf.c:999
 #, c-format
 msgid "  Machine:                           %s\n"
 msgstr "  Máquina:                           %s\n"
 
-#: src/readelf.c:974
+#: src/readelf.c:1001
 #, c-format
 msgid "  Version:                           %d %s\n"
 msgstr "  Versión:                           %d %s\n"
 
-#: src/readelf.c:978
+#: src/readelf.c:1005
 #, c-format
 msgid "  Entry point address:               %#<PRIx64>\n"
 msgstr "  Dirección de punto de entrada:               %#<PRIx64>\n"
 
-#: src/readelf.c:981
+#: src/readelf.c:1008
 #, c-format
 msgid "  Start of program headers:          %<PRId64> %s\n"
 msgstr "  Inicio de encabezamientos de programa:          %<PRId64> %s\n"
 
-#: src/readelf.c:982 src/readelf.c:985
+#: src/readelf.c:1009 src/readelf.c:1012
 msgid "(bytes into file)"
 msgstr " (bytes en el archivo)"
 
-#: src/readelf.c:984
+#: src/readelf.c:1011
 #, c-format
 msgid "  Start of section headers:          %<PRId64> %s\n"
 msgstr "  Inicio de encabezamientos de sección:          %<PRId64> %s\n"
 
-#: src/readelf.c:987
+#: src/readelf.c:1014
 #, c-format
 msgid "  Flags:                             %s\n"
 msgstr "  Indicadores:                             %s\n"
 
-#: src/readelf.c:990
+#: src/readelf.c:1017
 #, c-format
 msgid "  Size of this header:               %<PRId16> %s\n"
 msgstr "  Tamaño de este encabezamiento:               %<PRId16> %s\n"
 
-#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011
+#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038
 msgid "(bytes)"
 msgstr "(bytes)"
 
-#: src/readelf.c:993
+#: src/readelf.c:1020
 #, c-format
 msgid "  Size of program header entries:    %<PRId16> %s\n"
 msgstr ""
 "  Tamaño de las entradas en encabezamiento del programa:    %<PRId16> %s\n"
 
-#: src/readelf.c:996
+#: src/readelf.c:1023
 #, c-format
 msgid "  Number of program headers entries: %<PRId16>"
 msgstr "  Cantidad de entradas de encabezados de programa: %<PRId16>"
 
-#: src/readelf.c:1003
+#: src/readelf.c:1030
 #, c-format
 msgid " (%<PRIu32> in [0].sh_info)"
 msgstr " (%<PRIu32> in [0].sh_info)"
 
-#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037
+#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064
 msgid " ([0] not available)"
 msgstr " ([0] no disponible)"
 
-#: src/readelf.c:1010
+#: src/readelf.c:1037
 #, c-format
 msgid "  Size of section header entries:    %<PRId16> %s\n"
 msgstr ""
 "  Tamaño de las entradas en el encabezamiento de sección:    %<PRId16> %s\n"
 
-#: src/readelf.c:1013
+#: src/readelf.c:1040
 #, c-format
 msgid "  Number of section headers entries: %<PRId16>"
 msgstr "  Cantidad de entradas en los encabezamientos de sección: %<PRId16>"
 
-#: src/readelf.c:1020
+#: src/readelf.c:1047
 #, c-format
 msgid " (%<PRIu32> in [0].sh_size)"
 msgstr " (%<PRIu32> en [0].sh_size)"
 
-#: src/readelf.c:1033
+#: src/readelf.c:1060
 #, c-format
 msgid " (%<PRIu32> in [0].sh_link)"
 msgstr " (%<PRIu32> en [0].sh_link)"
 
-#: src/readelf.c:1041
+#: src/readelf.c:1068
 #, c-format
 msgid ""
 "  Section header string table index: XINDEX%s\n"
@@ -4818,14 +4880,14 @@
 "  Índice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n"
 "\n"
 
-#: src/readelf.c:1045
+#: src/readelf.c:1072
 #, c-format
 msgid ""
 "  Section header string table index: %<PRId16>\n"
 "\n"
 msgstr "  Índice de tabla de cadenas de sección de encabezamiento: %<PRId16>\n"
 
-#: src/readelf.c:1077
+#: src/readelf.c:1115
 #, c-format
 msgid ""
 "There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4834,11 +4896,11 @@
 "Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n"
 "\n"
 
-#: src/readelf.c:1087
+#: src/readelf.c:1125
 msgid "Section Headers:"
 msgstr "encabezamientos de sección:"
 
-#: src/readelf.c:1090
+#: src/readelf.c:1128
 msgid ""
 "[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk "
 "Inf Al"
@@ -4846,7 +4908,7 @@
 "[Nr] Nombre            Tipo            Dirección    Off    Tamaño    Inf Al "
 "Enlace banderas ES"
 
-#: src/readelf.c:1092
+#: src/readelf.c:1130
 msgid ""
 "[Nr] Name                 Type         Addr             Off      Size     ES "
 "Flags Lk Inf Al"
@@ -4854,18 +4916,36 @@
 "[Nr] Name                 Type         Addr             Off      Size     ES "
 "Flags Lk Inf Al"
 
-#: src/readelf.c:1164
+#: src/readelf.c:1135
+msgid "     [Compression  Size   Al]"
+msgstr ""
+
+#: src/readelf.c:1137
+msgid "     [Compression  Size     Al]"
+msgstr ""
+
+#: src/readelf.c:1213
+#, fuzzy, c-format
+msgid "bad compression header for section %zd: %s"
+msgstr "No se puede obtener el encabezamiento de sección %zu: %s"
+
+#: src/readelf.c:1224
+#, fuzzy, c-format
+msgid "bad gnu compressed size for section %zd: %s"
+msgstr "No se pueden obtener datos para la sección %d: %s"
+
+#: src/readelf.c:1242
 msgid "Program Headers:"
 msgstr "encabezamientos de programa:"
 
-#: src/readelf.c:1166
+#: src/readelf.c:1244
 msgid ""
 "  Type           Offset   VirtAddr   PhysAddr   FileSiz  MemSiz   Flg Align"
 msgstr ""
 "  Tipo           Compensación  Dirección Virtual       Dirección "
 "Física       Tamaño de Fichero  Tamaño de Memoria     Alineación de bandera"
 
-#: src/readelf.c:1169
+#: src/readelf.c:1247
 msgid ""
 "  Type           Offset   VirtAddr           PhysAddr           FileSiz  "
 "MemSiz   Flg Align"
@@ -4873,12 +4953,12 @@
 "  Tipo          Compensación  Dirección Virtual            Dirección "
 "Física          Tamaño de Fichero  Tamaño de Memoria   Alineación de bandera"
 
-#: src/readelf.c:1226
+#: src/readelf.c:1304
 #, c-format
 msgid "\t[Requesting program interpreter: %s]\n"
 msgstr "\t[Solicitando intérprete de programa: %s]\n"
 
-#: src/readelf.c:1247
+#: src/readelf.c:1325
 msgid ""
 "\n"
 " Section to Segment mapping:\n"
@@ -4888,12 +4968,12 @@
 " Sección para asignación de segmento:\n"
 "  Secciones de segmento..."
 
-#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964
+#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999
 #, c-format
 msgid "cannot get program header: %s"
 msgstr "no se puede obtener memoria para encabezamiento del programa: %s"
 
-#: src/readelf.c:1401
+#: src/readelf.c:1479
 #, c-format
 msgid ""
 "\n"
@@ -4908,7 +4988,7 @@
 "\n"
 "Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
 
-#: src/readelf.c:1406
+#: src/readelf.c:1484
 #, c-format
 msgid ""
 "\n"
@@ -4923,21 +5003,25 @@
 "\n"
 "Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
 
-#: src/readelf.c:1414
+#: src/readelf.c:1492
 msgid "<INVALID SYMBOL>"
 msgstr "<SÍMBOLO INVÁLIDO>"
 
-#: src/readelf.c:1428
+#: src/readelf.c:1506
 msgid "<INVALID SECTION>"
 msgstr "<SECCIÓN INVÁLIDA>"
 
-#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542
-#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608
+#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317
+msgid "Couldn't uncompress section"
+msgstr ""
+
+#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640
+#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716
 #, fuzzy, c-format
 msgid "invalid sh_link value in section %zu"
 msgstr ".debug_line section inválida"
 
-#: src/readelf.c:1588
+#: src/readelf.c:1676
 #, c-format
 msgid ""
 "\n"
@@ -4958,36 +5042,36 @@
 " Dirección: %#0*<PRIx64>  Compensación: %#08<PRIx64>  Enlace a sección: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:1598
+#: src/readelf.c:1686
 msgid "  Type              Value\n"
 msgstr "  Tipo              Valor\n"
 
-#: src/readelf.c:1622
+#: src/readelf.c:1710
 #, c-format
 msgid "Shared library: [%s]\n"
 msgstr "Biblioteca compartida: [%s]\n"
 
-#: src/readelf.c:1627
+#: src/readelf.c:1715
 #, c-format
 msgid "Library soname: [%s]\n"
 msgstr "Nombre-so de la biblioteca: [%s]\n"
 
-#: src/readelf.c:1632
+#: src/readelf.c:1720
 #, c-format
 msgid "Library rpath: [%s]\n"
 msgstr "Rpath de la biblioteca: [%s]\n"
 
-#: src/readelf.c:1637
+#: src/readelf.c:1725
 #, c-format
 msgid "Library runpath: [%s]\n"
 msgstr "Ruta de ejecución de la biblioteca: [%s]\n"
 
-#: src/readelf.c:1657
+#: src/readelf.c:1745
 #, c-format
 msgid "%<PRId64> (bytes)\n"
 msgstr "%<PRId64> (bytes)\n"
 
-#: src/readelf.c:1770 src/readelf.c:1960
+#: src/readelf.c:1858 src/readelf.c:2048
 #, c-format
 msgid ""
 "\n"
@@ -4996,7 +5080,7 @@
 "\n"
 "Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
 
-#: src/readelf.c:1788 src/readelf.c:1978
+#: src/readelf.c:1876 src/readelf.c:2066
 #, c-format
 msgid ""
 "\n"
@@ -5015,7 +5099,7 @@
 "Sección de reubicación [%2zu] '%s' para sección [%2u] '%s' en compensación "
 "%#0<PRIx64> contiene entradas %d:\n"
 
-#: src/readelf.c:1803 src/readelf.c:1993
+#: src/readelf.c:1891 src/readelf.c:2081
 #, c-format
 msgid ""
 "\n"
@@ -5032,29 +5116,29 @@
 "Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene "
 "entradas %d:\n"
 
-#: src/readelf.c:1813
+#: src/readelf.c:1901
 msgid "  Offset      Type                 Value       Name\n"
 msgstr "   Compensación           Tipo               Valor      Nombre\n"
 
-#: src/readelf.c:1815
+#: src/readelf.c:1903
 msgid "  Offset              Type                 Value               Name\n"
 msgstr "    Compensación           Tipo               Valor           Nombre\n"
 
-#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913
-#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085
-#: src/readelf.c:2107 src/readelf.c:2120
+#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001
+#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173
+#: src/readelf.c:2195 src/readelf.c:2208
 msgid "<INVALID RELOC>"
 msgstr "<REUBIC INVÁLIDA>"
 
-#: src/readelf.c:2003
+#: src/readelf.c:2091
 msgid "  Offset      Type            Value       Addend Name\n"
 msgstr "    Compensación            Tipo               Valor    Nombre Adend\n"
 
-#: src/readelf.c:2005
+#: src/readelf.c:2093
 msgid "  Offset              Type            Value               Addend Name\n"
 msgstr "    Compensación            Tipo               Valor   Nombre Adend\n"
 
-#: src/readelf.c:2216
+#: src/readelf.c:2314
 #, c-format
 msgid ""
 "\n"
@@ -5069,40 +5153,40 @@
 "\n"
 "La tabla de símbolos [%2u] '%s' contiene entradas %u:\n"
 
-#: src/readelf.c:2221
+#: src/readelf.c:2319
 #, c-format
 msgid " %lu local symbol  String table: [%2u] '%s'\n"
 msgid_plural " %lu local symbols  String table: [%2u] '%s'\n"
 msgstr[0] "símbolos locales %lu Tabla de cadena: [%2u] '%s'\n"
 msgstr[1] " Símbolos locales %lu Tabla de cadenas: [%2u] '%s'\n"
 
-#: src/readelf.c:2229
+#: src/readelf.c:2327
 msgid "  Num:    Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  Núm:    Valor       Tamaño Tipo    Unión  Vis          Nombre Ndx\n"
 
-#: src/readelf.c:2231
+#: src/readelf.c:2329
 msgid "  Num:            Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "   Num:    Valor          Tamaño Tipo    Unión  Vis      Nombre Ndx\n"
 
-#: src/readelf.c:2251
+#: src/readelf.c:2349
 #, c-format
 msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 
-#: src/readelf.c:2339
+#: src/readelf.c:2437
 #, c-format
 msgid "bad dynamic symbol"
 msgstr "símbolo dinámico erróneo"
 
-#: src/readelf.c:2421
+#: src/readelf.c:2519
 msgid "none"
 msgstr "nada"
 
-#: src/readelf.c:2438
+#: src/readelf.c:2536
 msgid "| <unknown>"
 msgstr "| <desconocido>"
 
-#: src/readelf.c:2469
+#: src/readelf.c:2567
 #, c-format
 msgid ""
 "\n"
@@ -5123,17 +5207,17 @@
 " Dirección: %#0*<PRIx64>  Compensación: %#08<PRIx64>  Enlace a sección: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:2490
+#: src/readelf.c:2588
 #, c-format
 msgid "  %#06x: Version: %hu  File: %s  Cnt: %hu\n"
 msgstr "  %#06x: Versión: %hu  Fichero: %s  Conteo: %hu\n"
 
-#: src/readelf.c:2503
+#: src/readelf.c:2601
 #, c-format
 msgid "  %#06x: Name: %s  Flags: %s  Version: %hu\n"
 msgstr "  %#06x: Nombre: %s  Banderas: %s  Versión: %hu\n"
 
-#: src/readelf.c:2546
+#: src/readelf.c:2644
 #, c-format
 msgid ""
 "\n"
@@ -5154,18 +5238,18 @@
 " Dirección: %#0*<PRIx64>  Compensación: %#08<PRIx64>  Enlace a sección: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:2574
+#: src/readelf.c:2672
 #, c-format
 msgid "  %#06x: Version: %hd  Flags: %s  Index: %hd  Cnt: %hd  Name: %s\n"
 msgstr ""
 "  %#06x: Versión: %hd  Banderas: %s  Índice: %hd  Conteo: %hd  Nombre: %s\n"
 
-#: src/readelf.c:2589
+#: src/readelf.c:2687
 #, c-format
 msgid "  %#06x: Parent %d: %s\n"
 msgstr "  %#06x: Principal %d: %s\n"
 
-#: src/readelf.c:2850
+#: src/readelf.c:2948
 #, c-format
 msgid ""
 "\n"
@@ -5186,15 +5270,15 @@
 " Dirección: %#0*<PRIx64>  Compensación: %#08<PRIx64>  Enlace a sección: "
 "[%2u] '%s'"
 
-#: src/readelf.c:2878
+#: src/readelf.c:2976
 msgid "   0 *local*                     "
 msgstr "   0 *local*                     "
 
-#: src/readelf.c:2883
+#: src/readelf.c:2981
 msgid "   1 *global*                    "
 msgstr "   1 *global*                    "
 
-#: src/readelf.c:2925
+#: src/readelf.c:3023
 #, c-format
 msgid ""
 "\n"
@@ -5219,22 +5303,22 @@
 " Dirección: %#0*<PRIx64>  Compensación: %#08<PRIx64>  Enlace a sección: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:2947
+#: src/readelf.c:3045
 #, no-c-format
 msgid " Length  Number  % of total  Coverage\n"
 msgstr " Longitud  Número  % of total  Cobertura\n"
 
-#: src/readelf.c:2949
+#: src/readelf.c:3047
 #, c-format
 msgid "      0  %6<PRIu32>      %5.1f%%\n"
 msgstr "      0  %6<PRIu32>      %5.1f%%\n"
 
-#: src/readelf.c:2956
+#: src/readelf.c:3054
 #, c-format
 msgid "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 msgstr "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 
-#: src/readelf.c:2969
+#: src/readelf.c:3067
 #, c-format
 msgid ""
 " Average number of tests:   successful lookup: %f\n"
@@ -5243,27 +5327,27 @@
 " Número promedio de pruebas:   búsqueda exitosa: %f\n"
 "                          búsqueda sin éxito: %f\n"
 
-#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099
+#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197
 #, c-format
 msgid "cannot get data for section %d: %s"
 msgstr "No se pueden obtener datos para la sección %d: %s"
 
-#: src/readelf.c:2995
+#: src/readelf.c:3093
 #, fuzzy, c-format
 msgid "invalid data in sysv.hash section %d"
 msgstr "Datos inválidos en sección [%zu] '%s'"
 
-#: src/readelf.c:3050
+#: src/readelf.c:3148
 #, fuzzy, c-format
 msgid "invalid data in sysv.hash64 section %d"
 msgstr "Datos inválidos en sección [%zu] '%s'"
 
-#: src/readelf.c:3108
+#: src/readelf.c:3206
 #, fuzzy, c-format
 msgid "invalid data in gnu.hash section %d"
 msgstr "Datos inválidos en sección [%zu] '%s'"
 
-#: src/readelf.c:3175
+#: src/readelf.c:3273
 #, c-format
 msgid ""
 " Symbol Bias: %u\n"
@@ -5273,7 +5357,7 @@
 " Tamaño de Bitmask: %zu bytes  %<PRIuFAST32>%% bits establecen segundo "
 "cambio de dispersión: %u\n"
 
-#: src/readelf.c:3250
+#: src/readelf.c:3358
 #, c-format
 msgid ""
 "\n"
@@ -5290,7 +5374,7 @@
 "Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> "
 "contiene entradas %d:\n"
 
-#: src/readelf.c:3264
+#: src/readelf.c:3372
 msgid ""
 "       Library                       Time Stamp          Checksum Version "
 "Flags"
@@ -5298,7 +5382,7 @@
 "       Biblioteca                       Marca de tiempo          Indicadores "
 "de versión de suma de verificación"
 
-#: src/readelf.c:3314
+#: src/readelf.c:3422
 #, c-format
 msgid ""
 "\n"
@@ -5309,140 +5393,140 @@
 "Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con "
 "desplazamiento %#0<PRIx64>:\n"
 
-#: src/readelf.c:3331
+#: src/readelf.c:3439
 msgid "  Owner          Size\n"
 msgstr "  Propietario          Tamaño\n"
 
-#: src/readelf.c:3360
+#: src/readelf.c:3468
 #, c-format
 msgid "  %-13s  %4<PRIu32>\n"
 msgstr "  %-13s  %4<PRIu32>\n"
 
-#: src/readelf.c:3399
+#: src/readelf.c:3507
 #, c-format
 msgid "    %-4u %12<PRIu32>\n"
 msgstr "    %-4u %12<PRIu32>\n"
 
-#: src/readelf.c:3404
+#: src/readelf.c:3512
 #, c-format
 msgid "    File: %11<PRIu32>\n"
 msgstr "    File: %11<PRIu32>\n"
 
-#: src/readelf.c:3453
+#: src/readelf.c:3561
 #, c-format
 msgid "      %s: %<PRId64>, %s\n"
 msgstr "      %s: %<PRId64>, %s\n"
 
-#: src/readelf.c:3456
+#: src/readelf.c:3564
 #, c-format
 msgid "      %s: %<PRId64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:3459
+#: src/readelf.c:3567
 #, c-format
 msgid "      %s: %s\n"
 msgstr "      %s: %s\n"
 
-#: src/readelf.c:3469
+#: src/readelf.c:3577
 #, c-format
 msgid "      %u: %<PRId64>\n"
 msgstr "      %u: %<PRId64>\n"
 
-#: src/readelf.c:3472
+#: src/readelf.c:3580
 #, c-format
 msgid "      %u: %s\n"
 msgstr "      %u: %s\n"
 
-#: src/readelf.c:3517
+#: src/readelf.c:3625
 #, c-format
 msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3520
+#: src/readelf.c:3628
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3525
+#: src/readelf.c:3633
 #, c-format
 msgid "%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3528
+#: src/readelf.c:3636
 #, c-format
 msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3534
+#: src/readelf.c:3642
 #, c-format
 msgid "%s+%#<PRIx64> <%s>"
 msgstr "%s+%#<PRIx64> <%s>"
 
-#: src/readelf.c:3537
+#: src/readelf.c:3645
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s>"
 msgstr "%s+%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3541
+#: src/readelf.c:3649
 #, c-format
 msgid "%#<PRIx64> <%s>"
 msgstr "%#<PRIx64> <%s>"
 
-#: src/readelf.c:3544
+#: src/readelf.c:3652
 #, c-format
 msgid "%#0*<PRIx64> <%s>"
 msgstr "%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3549
+#: src/readelf.c:3657
 #, c-format
 msgid "%s+%#<PRIx64>"
 msgstr "%s+%#<PRIx64>"
 
-#: src/readelf.c:3552
+#: src/readelf.c:3660
 #, c-format
 msgid "%s+%#0*<PRIx64>"
 msgstr "%s+%#0*<PRIx64>"
 
-#: src/readelf.c:3930
+#: src/readelf.c:4038
 msgid "empty block"
 msgstr "bloque vacío"
 
-#: src/readelf.c:3933
+#: src/readelf.c:4041
 #, c-format
 msgid "%zu byte block:"
 msgstr "bloque de byte %zu:"
 
-#: src/readelf.c:4330
+#: src/readelf.c:4438
 #, c-format
 msgid "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 msgstr "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 
-#: src/readelf.c:4387
+#: src/readelf.c:4495
 #, c-format
 msgid "%s %#<PRIx64> used with different address sizes"
 msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
 
-#: src/readelf.c:4394
+#: src/readelf.c:4502
 #, c-format
 msgid "%s %#<PRIx64> used with different offset sizes"
 msgstr "%s %#<PRIx64> utilizado con offsetr de diferente tamaño"
 
-#: src/readelf.c:4401
+#: src/readelf.c:4509
 #, fuzzy, c-format
 msgid "%s %#<PRIx64> used with different base addresses"
 msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
 
-#: src/readelf.c:4490
+#: src/readelf.c:4598
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE IN REST OF SECTION>\n"
 msgstr " [%6tx] <MATERIAL INUTIL SIN UTILIZAR EN EL RESTO DE LA SECCION>\n"
 
-#: src/readelf.c:4498
+#: src/readelf.c:4606
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
 msgstr " [%6tx]  <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n"
 
-#: src/readelf.c:4524
+#: src/readelf.c:4632
 #, c-format
 msgid ""
 "\n"
@@ -5453,7 +5537,7 @@
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
 " [ Código]\n"
 
-#: src/readelf.c:4532
+#: src/readelf.c:4640
 #, c-format
 msgid ""
 "\n"
@@ -5462,30 +5546,30 @@
 "\n"
 "Sección de abreviatura en compensación %<PRIu64>:\n"
 
-#: src/readelf.c:4545
+#: src/readelf.c:4653
 #, c-format
 msgid " *** error while reading abbreviation: %s\n"
 msgstr " *** error en lectura de abreviatura: %s\n"
 
-#: src/readelf.c:4561
+#: src/readelf.c:4669
 #, c-format
 msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
 msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "yes"
 msgstr "sí"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "no"
 msgstr "no"
 
-#: src/readelf.c:4598 src/readelf.c:4671
+#: src/readelf.c:4706 src/readelf.c:4779
 #, c-format
 msgid "cannot get .debug_aranges content: %s"
 msgstr "no se ha podido obtener contenido de .debug_aranges: %s"
 
-#: src/readelf.c:4613
+#: src/readelf.c:4721
 #, c-format
 msgid ""
 "\n"
@@ -5500,12 +5584,12 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n"
 
-#: src/readelf.c:4644
+#: src/readelf.c:4752
 #, c-format
 msgid " [%*zu] ???\n"
 msgstr " [%*zu] ???\n"
 
-#: src/readelf.c:4646
+#: src/readelf.c:4754
 #, c-format
 msgid ""
 " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5513,8 +5597,8 @@
 " Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: "
 "%6<PRId64>\n"
 
-#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360
-#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601
+#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468
+#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709
 #, c-format
 msgid ""
 "\n"
@@ -5523,7 +5607,7 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
 
-#: src/readelf.c:4689 src/readelf.c:6386
+#: src/readelf.c:4797 src/readelf.c:6494
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5532,111 +5616,111 @@
 "\n"
 "Tabla en compensación %Zu:\n"
 
-#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397
+#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505
 #, c-format
 msgid "invalid data in section [%zu] '%s'"
 msgstr "Datos inválidos en sección [%zu] '%s'"
 
-#: src/readelf.c:4709
+#: src/readelf.c:4817
 #, fuzzy, c-format
 msgid ""
 "\n"
 " Length:        %6<PRIu64>\n"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:4721
+#: src/readelf.c:4829
 #, fuzzy, c-format
 msgid " DWARF version: %6<PRIuFAST16>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4725
+#: src/readelf.c:4833
 #, c-format
 msgid "unsupported aranges version"
 msgstr ""
 
-#: src/readelf.c:4736
+#: src/readelf.c:4844
 #, fuzzy, c-format
 msgid " CU offset:     %6<PRIx64>\n"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:4742
+#: src/readelf.c:4850
 #, fuzzy, c-format
 msgid " Address size:  %6<PRIu64>\n"
 msgstr " (fin de compensación: %#<PRIx64>)"
 
-#: src/readelf.c:4746
+#: src/readelf.c:4854
 #, fuzzy, c-format
 msgid "unsupported address size"
 msgstr "no hay valor de dirección"
 
-#: src/readelf.c:4751
+#: src/readelf.c:4859
 #, fuzzy, c-format
 msgid ""
 " Segment size:  %6<PRIu64>\n"
 "\n"
 msgstr " establecer archivo a %<PRIu64>\n"
 
-#: src/readelf.c:4755
+#: src/readelf.c:4863
 #, c-format
 msgid "unsupported segment size"
 msgstr ""
 
-#: src/readelf.c:4795
+#: src/readelf.c:4903
 #, fuzzy, c-format
 msgid "   %s..%s (%<PRIx64>)\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4798
+#: src/readelf.c:4906
 #, fuzzy, c-format
 msgid "   %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4807
+#: src/readelf.c:4915
 #, c-format
 msgid "   %zu padding bytes\n"
 msgstr ""
 
-#: src/readelf.c:4825
+#: src/readelf.c:4933
 #, c-format
 msgid "cannot get .debug_ranges content: %s"
 msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
 
-#: src/readelf.c:4855 src/readelf.c:6919
+#: src/readelf.c:4963 src/readelf.c:7027
 #, c-format
 msgid " [%6tx]  <INVALID DATA>\n"
 msgstr " [%6tx]  <DATOS INVÁLIDOS>\n"
 
-#: src/readelf.c:4877 src/readelf.c:6941
+#: src/readelf.c:4985 src/readelf.c:7049
 #, c-format
 msgid " [%6tx]  base address %s\n"
 msgstr " [%6tx]   (dirección base) %s\n"
 
-#: src/readelf.c:4884 src/readelf.c:6948
+#: src/readelf.c:4992 src/readelf.c:7056
 #, c-format
 msgid " [%6tx]  empty list\n"
 msgstr " [%6tx]  lista vacía\n"
 
-#: src/readelf.c:4895
+#: src/readelf.c:5003
 #, c-format
 msgid " [%6tx]  %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4897
+#: src/readelf.c:5005
 #, c-format
 msgid "           %s..%s\n"
 msgstr "           %s..%s\n"
 
-#: src/readelf.c:5076
+#: src/readelf.c:5184
 #, fuzzy
 msgid "         <INVALID DATA>\n"
 msgstr "   <DATOS INVÁLIDOS>\n"
 
-#: src/readelf.c:5385
+#: src/readelf.c:5493
 #, fuzzy, c-format
 msgid "cannot get ELF: %s"
 msgstr "no se puede leer encabezamiento ELF: %s"
 
-#: src/readelf.c:5402
+#: src/readelf.c:5510
 #, c-format
 msgid ""
 "\n"
@@ -5646,7 +5730,7 @@
 "Sección de información de marco de llamada [%2zu] '%s' en compensación "
 "%#<PRIx64>:\n"
 
-#: src/readelf.c:5452
+#: src/readelf.c:5560
 #, c-format
 msgid ""
 "\n"
@@ -5655,50 +5739,50 @@
 "\n"
 " [%6tx] Terminator cero\n"
 
-#: src/readelf.c:5545 src/readelf.c:5700
+#: src/readelf.c:5653 src/readelf.c:5808
 #, c-format
 msgid "invalid augmentation length"
 msgstr "longitud de aumento inválida"
 
-#: src/readelf.c:5560
+#: src/readelf.c:5668
 msgid "FDE address encoding: "
 msgstr "Codificación de dirección FDE:"
 
-#: src/readelf.c:5566
+#: src/readelf.c:5674
 msgid "LSDA pointer encoding: "
 msgstr "Codificación de puntero LSDA:"
 
-#: src/readelf.c:5677
+#: src/readelf.c:5785
 #, c-format
 msgid " (offset: %#<PRIx64>)"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:5684
+#: src/readelf.c:5792
 #, c-format
 msgid " (end offset: %#<PRIx64>)"
 msgstr " (fin de compensación: %#<PRIx64>)"
 
-#: src/readelf.c:5721
+#: src/readelf.c:5829
 #, c-format
 msgid "   %-26sLSDA pointer: %#<PRIx64>\n"
 msgstr "Puntero   %-26sLSDA: %#<PRIx64>\n"
 
-#: src/readelf.c:5776
+#: src/readelf.c:5884
 #, c-format
 msgid "cannot get attribute code: %s"
 msgstr "No se puede obtener código de atributo: %s"
 
-#: src/readelf.c:5785
+#: src/readelf.c:5893
 #, c-format
 msgid "cannot get attribute form: %s"
 msgstr "No se puede obtener forma de atributo: %s"
 
-#: src/readelf.c:5800
+#: src/readelf.c:5908
 #, c-format
 msgid "cannot get attribute value: %s"
 msgstr "No se puede obtener valor: %s"
 
-#: src/readelf.c:6099
+#: src/readelf.c:6207
 #, c-format
 msgid ""
 "\n"
@@ -5709,7 +5793,7 @@
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
 " [Offset]\n"
 
-#: src/readelf.c:6131
+#: src/readelf.c:6239
 #, c-format
 msgid ""
 " Type unit at offset %<PRIu64>:\n"
@@ -5722,7 +5806,7 @@
 "Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
 " Tipo de firma: %#<PRIx64>, Tipo de compensación: %#<PRIx64>\n"
 
-#: src/readelf.c:6140
+#: src/readelf.c:6248
 #, c-format
 msgid ""
 " Compilation unit at offset %<PRIu64>:\n"
@@ -5733,34 +5817,34 @@
 " Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>,  "
 "Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
 
-#: src/readelf.c:6165
+#: src/readelf.c:6273
 #, c-format
 msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
 msgstr "no se puede obtener DIE en compensación %<PRIu64> en sección '%s': %s"
 
-#: src/readelf.c:6179
+#: src/readelf.c:6287
 #, c-format
 msgid "cannot get DIE offset: %s"
 msgstr "no se puede obtener DIE en compensación: %s"
 
-#: src/readelf.c:6188
+#: src/readelf.c:6296
 #, c-format
 msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
 "no se ha podido obtener etiqueta de DIE en compensación%<PRIu64> en sección "
 "'%s': %s"
 
-#: src/readelf.c:6220
+#: src/readelf.c:6328
 #, c-format
 msgid "cannot get next DIE: %s\n"
 msgstr "No se puede obtener próximo DIE: %s\n"
 
-#: src/readelf.c:6228
+#: src/readelf.c:6336
 #, c-format
 msgid "cannot get next DIE: %s"
 msgstr "No se puede obtener próximo DIE: %s"
 
-#: src/readelf.c:6264
+#: src/readelf.c:6372
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5770,12 +5854,12 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
 
-#: src/readelf.c:6373
+#: src/readelf.c:6481
 #, c-format
 msgid "cannot get line data section data: %s"
 msgstr "No se puede obtener sección de datos de línea: %s"
 
-#: src/readelf.c:6443
+#: src/readelf.c:6551
 #, c-format
 msgid ""
 "\n"
@@ -5804,19 +5888,19 @@
 "\n"
 "Códigos operativos:\n"
 
-#: src/readelf.c:6464
+#: src/readelf.c:6572
 #, c-format
 msgid "invalid data at offset %tu in section [%zu] '%s'"
 msgstr "datos inválidos en compensación %tu en sección [%zu] '%s'"
 
-#: src/readelf.c:6479
+#: src/readelf.c:6587
 #, c-format
 msgid "  [%*<PRIuFAST8>]  %hhu argument\n"
 msgid_plural "  [%*<PRIuFAST8>]  %hhu arguments\n"
 msgstr[0] "  [%*<PRIuFAST8>]  argumento %hhu \n"
 msgstr[1] "  [%*<PRIuFAST8>]  argumento %hhu\n"
 
-#: src/readelf.c:6487
+#: src/readelf.c:6595
 msgid ""
 "\n"
 "Directory table:"
@@ -5824,7 +5908,7 @@
 "\n"
 "Tabla de Directorio:"
 
-#: src/readelf.c:6503
+#: src/readelf.c:6611
 msgid ""
 "\n"
 "File name table:\n"
@@ -5834,7 +5918,7 @@
 "Tabla de nombre de archivo:\n"
 " Directorio de entrada   Tiempo      Tamaño      Nombre"
 
-#: src/readelf.c:6538
+#: src/readelf.c:6646
 msgid ""
 "\n"
 "Line number statements:"
@@ -5842,224 +5926,224 @@
 "\n"
 " Declaraciones de número de Línea:"
 
-#: src/readelf.c:6589
+#: src/readelf.c:6697
 #, fuzzy, c-format
 msgid "invalid maximum operations per instruction is zero"
 msgstr "longitud mínima inválida de tamaño de cadena coincidente"
 
-#: src/readelf.c:6625
+#: src/readelf.c:6733
 #, c-format
 msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
 msgstr ""
 " opcode especial %u: dirección+%u = %s,  op_index = %u, línea%+d = %zu\n"
 
-#: src/readelf.c:6630
+#: src/readelf.c:6738
 #, c-format
 msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
 msgstr " opcode especial %u: dirección+%u = %s, línea%+d = %zu\n"
 
-#: src/readelf.c:6650
+#: src/readelf.c:6758
 #, c-format
 msgid " extended opcode %u: "
 msgstr "  Código operativo extendido %u: "
 
-#: src/readelf.c:6655
+#: src/readelf.c:6763
 #, fuzzy
 msgid " end of sequence"
 msgstr "Fin de secuencia"
 
-#: src/readelf.c:6674
+#: src/readelf.c:6782
 #, fuzzy, c-format
 msgid " set address to %s\n"
 msgstr "Establecer dirección a %s\n"
 
-#: src/readelf.c:6701
+#: src/readelf.c:6809
 #, fuzzy, c-format
 msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
 msgstr ""
 "definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, nombre="
 "%s\n"
 
-#: src/readelf.c:6714
+#: src/readelf.c:6822
 #, c-format
 msgid " set discriminator to %u\n"
 msgstr " establecer discriminador a %u\n"
 
-#: src/readelf.c:6719
+#: src/readelf.c:6827
 #, fuzzy
 msgid " unknown opcode"
 msgstr "código operativo desconocido "
 
-#: src/readelf.c:6731
+#: src/readelf.c:6839
 msgid " copy"
 msgstr "Copiar"
 
-#: src/readelf.c:6742
+#: src/readelf.c:6850
 #, fuzzy, c-format
 msgid " advance address by %u to %s, op_index to %u\n"
 msgstr "dirección avanzada por %u a %s, op_index a %u\n"
 
-#: src/readelf.c:6746
+#: src/readelf.c:6854
 #, fuzzy, c-format
 msgid " advance address by %u to %s\n"
 msgstr "Dirección de avance por %u a %s\n"
 
-#: src/readelf.c:6757
+#: src/readelf.c:6865
 #, c-format
 msgid " advance line by constant %d to %<PRId64>\n"
 msgstr " línea de avance por la constante %d a %<PRId64>\n"
 
-#: src/readelf.c:6765
+#: src/readelf.c:6873
 #, c-format
 msgid " set file to %<PRIu64>\n"
 msgstr " establecer archivo a %<PRIu64>\n"
 
-#: src/readelf.c:6775
+#: src/readelf.c:6883
 #, c-format
 msgid " set column to %<PRIu64>\n"
 msgstr "  Establecer columna a %<PRIu64>\n"
 
-#: src/readelf.c:6782
+#: src/readelf.c:6890
 #, c-format
 msgid " set '%s' to %<PRIuFAST8>\n"
 msgstr "Establecer '%s' a %<PRIuFAST8>\n"
 
-#: src/readelf.c:6788
+#: src/readelf.c:6896
 msgid " set basic block flag"
 msgstr "Establecer bandera de bloque básico"
 
-#: src/readelf.c:6801
+#: src/readelf.c:6909
 #, fuzzy, c-format
 msgid " advance address by constant %u to %s, op_index to %u\n"
 msgstr "dirección avanzada por constante %u a %s, op_index a %u\n"
 
-#: src/readelf.c:6805
+#: src/readelf.c:6913
 #, fuzzy, c-format
 msgid " advance address by constant %u to %s\n"
 msgstr "Dirección de avance por constante %u a %s\n"
 
-#: src/readelf.c:6823
+#: src/readelf.c:6931
 #, fuzzy, c-format
 msgid " advance address by fixed value %u to %s\n"
 msgstr "dirección de avance por valor corregido %u a %s\n"
 
-#: src/readelf.c:6832
+#: src/readelf.c:6940
 msgid " set prologue end flag"
 msgstr " Establecer bandera prologue_end"
 
-#: src/readelf.c:6837
+#: src/readelf.c:6945
 msgid " set epilogue begin flag"
 msgstr " Establecer bandera epilogue_begin"
 
-#: src/readelf.c:6846
+#: src/readelf.c:6954
 #, c-format
 msgid " set isa to %u\n"
 msgstr " establecer isa para %u\n"
 
-#: src/readelf.c:6855
+#: src/readelf.c:6963
 #, c-format
 msgid " unknown opcode with %<PRIu8> parameter:"
 msgid_plural " unknown opcode with %<PRIu8> parameters:"
 msgstr[0] " opcódigo con parámetro %<PRIu8> desconocido:"
 msgstr[1] " opcódigo con parámetros %<PRIu8> desconocido:"
 
-#: src/readelf.c:6887
+#: src/readelf.c:6995
 #, c-format
 msgid "cannot get .debug_loc content: %s"
 msgstr "no es posible obtener contenido de .debug_loc: %s"
 
-#: src/readelf.c:6962
+#: src/readelf.c:7070
 #, c-format
 msgid " [%6tx]  %s..%s"
 msgstr " [%6tx]  %s..%s"
 
-#: src/readelf.c:6964
+#: src/readelf.c:7072
 #, c-format
 msgid "           %s..%s"
 msgstr "           %s..%s"
 
-#: src/readelf.c:6971 src/readelf.c:7859
+#: src/readelf.c:7079 src/readelf.c:7967
 msgid "   <INVALID DATA>\n"
 msgstr "   <DATOS INVÁLIDOS>\n"
 
-#: src/readelf.c:7023 src/readelf.c:7185
+#: src/readelf.c:7131 src/readelf.c:7293
 #, c-format
 msgid "cannot get macro information section data: %s"
 msgstr "no es posible obtener datos de la sección de macro información: %s"
 
-#: src/readelf.c:7103
+#: src/readelf.c:7211
 #, c-format
 msgid "%*s*** non-terminated string at end of section"
 msgstr "%*s*** cadena no finalizada al final de la sección"
 
-#: src/readelf.c:7126
+#: src/readelf.c:7234
 #, fuzzy, c-format
 msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
 msgstr "%*s*** cadena no finalizada al final de la sección"
 
-#: src/readelf.c:7226
+#: src/readelf.c:7334
 #, fuzzy, c-format
 msgid " Offset:             0x%<PRIx64>\n"
 msgstr "  Propietario          Tamaño\n"
 
-#: src/readelf.c:7238
+#: src/readelf.c:7346
 #, fuzzy, c-format
 msgid " Version:            %<PRIu16>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7244 src/readelf.c:7978
+#: src/readelf.c:7352 src/readelf.c:8086
 #, c-format
 msgid "  unknown version, cannot parse section\n"
 msgstr ""
 
-#: src/readelf.c:7251
+#: src/readelf.c:7359
 #, fuzzy, c-format
 msgid " Flag:               0x%<PRIx8>\n"
 msgstr "  Dirección de punto de entrada:               %#<PRIx64>\n"
 
-#: src/readelf.c:7254
+#: src/readelf.c:7362
 #, fuzzy, c-format
 msgid " Offset length:      %<PRIu8>\n"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:7262
+#: src/readelf.c:7370
 #, fuzzy, c-format
 msgid " .debug_line offset: 0x%<PRIx64>\n"
 msgstr " (fin de compensación: %#<PRIx64>)"
 
-#: src/readelf.c:7275
+#: src/readelf.c:7383
 #, fuzzy, c-format
 msgid "  extension opcode table, %<PRIu8> items:\n"
 msgstr " opcódigo con parámetro %<PRIu8> desconocido:"
 
-#: src/readelf.c:7282
+#: src/readelf.c:7390
 #, c-format
 msgid "    [%<PRIx8>]"
 msgstr ""
 
-#: src/readelf.c:7294
+#: src/readelf.c:7402
 #, fuzzy, c-format
 msgid " %<PRIu8> arguments:"
 msgstr "  [%*<PRIuFAST8>]  argumento %hhu \n"
 
-#: src/readelf.c:7322
+#: src/readelf.c:7430
 #, c-format
 msgid " no arguments."
 msgstr ""
 
-#: src/readelf.c:7559
+#: src/readelf.c:7667
 #, c-format
 msgid "vendor opcode not verified?"
 msgstr ""
 
-#: src/readelf.c:7587
+#: src/readelf.c:7695
 #, c-format
 msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
 msgstr ""
 " Compensación [%5d] DIE: %6<PRId64>, Compensación CU DIE: %6<PRId64>, "
 "nombre: %s\n"
 
-#: src/readelf.c:7628
+#: src/readelf.c:7736
 #, c-format
 msgid ""
 "\n"
@@ -6070,12 +6154,12 @@
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
 " %*s  String\n"
 
-#: src/readelf.c:7642
+#: src/readelf.c:7750
 #, c-format
 msgid " *** error while reading strings: %s\n"
 msgstr " *** error en lectura de cadenas: %s\n"
 
-#: src/readelf.c:7662
+#: src/readelf.c:7770
 #, c-format
 msgid ""
 "\n"
@@ -6084,7 +6168,7 @@
 "\n"
 "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n"
 
-#: src/readelf.c:7764
+#: src/readelf.c:7872
 #, c-format
 msgid ""
 "\n"
@@ -6093,22 +6177,22 @@
 "\n"
 "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n"
 
-#: src/readelf.c:7787
+#: src/readelf.c:7895
 #, c-format
 msgid " LPStart encoding:    %#x "
 msgstr "Codificación LPStart:    %#x "
 
-#: src/readelf.c:7799
+#: src/readelf.c:7907
 #, c-format
 msgid " TType encoding:      %#x "
 msgstr "Codificación TType:      %#x "
 
-#: src/readelf.c:7814
+#: src/readelf.c:7922
 #, c-format
 msgid " Call site encoding:  %#x "
 msgstr "Codificación de sitio de llamada:  %#x "
 
-#: src/readelf.c:7827
+#: src/readelf.c:7935
 msgid ""
 "\n"
 " Call site table:"
@@ -6116,7 +6200,7 @@
 "\n"
 " Tabla de sitio de llamada:"
 
-#: src/readelf.c:7841
+#: src/readelf.c:7949
 #, c-format
 msgid ""
 " [%4u] Call site start:   %#<PRIx64>\n"
@@ -6129,12 +6213,12 @@
 "        Landing pad:       %#<PRIx64>\n"
 "        Action:            %u\n"
 
-#: src/readelf.c:7914
+#: src/readelf.c:8022
 #, c-format
 msgid "invalid TType encoding"
 msgstr "Codificación TType inválida"
 
-#: src/readelf.c:7940
+#: src/readelf.c:8048
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6143,37 +6227,37 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
 
-#: src/readelf.c:7969
+#: src/readelf.c:8077
 #, fuzzy, c-format
 msgid " Version:         %<PRId32>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7987
+#: src/readelf.c:8095
 #, fuzzy, c-format
 msgid " CU offset:       %#<PRIx32>\n"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:7994
+#: src/readelf.c:8102
 #, fuzzy, c-format
 msgid " TU offset:       %#<PRIx32>\n"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:8001
+#: src/readelf.c:8109
 #, fuzzy, c-format
 msgid " address offset:  %#<PRIx32>\n"
 msgstr " (fin de compensación: %#<PRIx64>)"
 
-#: src/readelf.c:8008
+#: src/readelf.c:8116
 #, fuzzy, c-format
 msgid " symbol offset:   %#<PRIx32>\n"
 msgstr " (compensación: %#<PRIx64>)"
 
-#: src/readelf.c:8015
+#: src/readelf.c:8123
 #, fuzzy, c-format
 msgid " constant offset: %#<PRIx32>\n"
 msgstr " (fin de compensación: %#<PRIx64>)"
 
-#: src/readelf.c:8029
+#: src/readelf.c:8137
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6182,7 +6266,7 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
 
-#: src/readelf.c:8054
+#: src/readelf.c:8162
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6191,7 +6275,7 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
 
-#: src/readelf.c:8083
+#: src/readelf.c:8191
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6200,7 +6284,7 @@
 "\n"
 "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
 
-#: src/readelf.c:8116
+#: src/readelf.c:8224
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6209,17 +6293,17 @@
 "\n"
 "Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
 
-#: src/readelf.c:8203
+#: src/readelf.c:8311
 #, c-format
 msgid "cannot get debug context descriptor: %s"
 msgstr "no se puede depurar descriptor de contexto: %s"
 
-#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152
+#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258
 #, c-format
 msgid "cannot convert core note data: %s"
 msgstr "no es posible convertir datos de la nota principal: %s"
 
-#: src/readelf.c:8724
+#: src/readelf.c:8830
 #, c-format
 msgid ""
 "\n"
@@ -6228,21 +6312,21 @@
 "\n"
 "%*s... <repeats %u more times> ..."
 
-#: src/readelf.c:9231
+#: src/readelf.c:9337
 msgid "  Owner          Data size  Type\n"
 msgstr "  Owner          Data size  Type\n"
 
-#: src/readelf.c:9249
+#: src/readelf.c:9355
 #, c-format
 msgid "  %-13.*s  %9<PRId32>  %s\n"
 msgstr "  %-13.*s  %9<PRId32>  %s\n"
 
-#: src/readelf.c:9299
+#: src/readelf.c:9405
 #, c-format
 msgid "cannot get content of note section: %s"
 msgstr "no se puede obtener el contenido de sección de nota: %s"
 
-#: src/readelf.c:9326
+#: src/readelf.c:9432
 #, c-format
 msgid ""
 "\n"
@@ -6251,7 +6335,7 @@
 "\n"
 "Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
 
-#: src/readelf.c:9349
+#: src/readelf.c:9455
 #, c-format
 msgid ""
 "\n"
@@ -6260,7 +6344,7 @@
 "\n"
 "Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
 
-#: src/readelf.c:9395
+#: src/readelf.c:9501
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6269,12 +6353,12 @@
 "\n"
 "Sección [%Zu] '%s' no tiene datos para volcar.\n"
 
-#: src/readelf.c:9401 src/readelf.c:9424
+#: src/readelf.c:9518 src/readelf.c:9559
 #, fuzzy, c-format
 msgid "cannot get data for section [%zu] '%s': %s"
 msgstr "no se pueden obtener datos para sección [%Zu] '%s': %s"
 
-#: src/readelf.c:9405
+#: src/readelf.c:9523
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6284,7 +6368,18 @@
 "Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:9418
+#: src/readelf.c:9528
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Hex dump of section [%zu] '%s', %<PRIu64> bytes (%zd uncompressed) at offset "
+"%#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
+"%#0<PRIx64>:\n"
+
+#: src/readelf.c:9542
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6293,7 +6388,7 @@
 "\n"
 "Sección [%Zu] '%s' no tiene datos para volcar.\n"
 
-#: src/readelf.c:9428
+#: src/readelf.c:9564
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6303,7 +6398,18 @@
 "Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:9476
+#: src/readelf.c:9569
+#, fuzzy, c-format
+msgid ""
+"\n"
+"String section [%zu] '%s' contains %<PRIu64> bytes (%zd uncompressed) at "
+"offset %#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
+"%#0<PRIx64>:\n"
+
+#: src/readelf.c:9618
 #, c-format
 msgid ""
 "\n"
@@ -6312,7 +6418,7 @@
 "\n"
 "sección [%lu] no existe"
 
-#: src/readelf.c:9505
+#: src/readelf.c:9647
 #, c-format
 msgid ""
 "\n"
@@ -6321,12 +6427,12 @@
 "\n"
 "sección '%s' no existe"
 
-#: src/readelf.c:9562
+#: src/readelf.c:9704
 #, c-format
 msgid "cannot get symbol index of archive '%s': %s"
 msgstr "no se puede obtener el índice de símbolo de archivo '%s': %s"
 
-#: src/readelf.c:9565
+#: src/readelf.c:9707
 #, c-format
 msgid ""
 "\n"
@@ -6335,7 +6441,7 @@
 "\n"
 "Archivo '%s' no tiene índice de símbolo\n"
 
-#: src/readelf.c:9569
+#: src/readelf.c:9711
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6344,12 +6450,12 @@
 "\n"
 "Índice de archivo '%s' tiene %Zu entradas:\n"
 
-#: src/readelf.c:9587
+#: src/readelf.c:9729
 #, fuzzy, c-format
 msgid "cannot extract member at offset %zu in '%s': %s"
 msgstr "no es posible extraer miembro en compensación %Zu en '%s': %s"
 
-#: src/readelf.c:9592
+#: src/readelf.c:9734
 #, c-format
 msgid "Archive member '%s' contains:\n"
 msgstr "Miembro de archivo contiene '%s':\n"
@@ -6873,12 +6979,12 @@
 msgid "cannot copy ELF header: %s"
 msgstr "no se puede copiar encabezamiento ELF: %s"
 
-#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947
+#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982
 #, fuzzy, c-format
 msgid "cannot get number of program headers: %s"
 msgstr "no se pudo determinar la cantidad de encabezados de programa: %s"
 
-#: src/unstrip.c:266 src/unstrip.c:1907
+#: src/unstrip.c:266 src/unstrip.c:1943
 #, c-format
 msgid "cannot create program headers: %s"
 msgstr "No pueden crear encabezamientos de programa: %s"
@@ -6893,12 +6999,12 @@
 msgid "cannot copy section header: %s"
 msgstr "no se puede copiar encabezamiento de sección: %s"
 
-#: src/unstrip.c:285 src/unstrip.c:1541
+#: src/unstrip.c:285 src/unstrip.c:1576
 #, c-format
 msgid "cannot get section data: %s"
 msgstr "no se pueden obtener datos de sección: %s"
 
-#: src/unstrip.c:287 src/unstrip.c:1543
+#: src/unstrip.c:287 src/unstrip.c:1578
 #, c-format
 msgid "cannot copy section data: %s"
 msgstr "no pueden copiar datos de sección: %s"
@@ -6908,141 +7014,141 @@
 msgid "cannot create directory '%s'"
 msgstr "no se puede crear el directorio '%s'"
 
-#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575
+#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610
 #, c-format
 msgid "cannot get symbol table entry: %s"
 msgstr "no se puede obtener entrada de tabla de símbolos: %s"
 
-#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618
-#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793
+#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653
+#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829
 #, c-format
 msgid "cannot update symbol table: %s"
 msgstr "no se puede actualizar tabla de símbolos: %s"
 
-#: src/unstrip.c:377
+#: src/unstrip.c:409
 #, c-format
 msgid "cannot update section header: %s"
 msgstr "no se puede actualizar encabezamiento de sección: %s"
 
-#: src/unstrip.c:416 src/unstrip.c:427
+#: src/unstrip.c:448 src/unstrip.c:459
 #, c-format
 msgid "cannot update relocation: %s"
 msgstr "no se puede actualizar reubicación: %s"
 
-#: src/unstrip.c:514
+#: src/unstrip.c:547
 #, c-format
 msgid "cannot get symbol version: %s"
 msgstr "no se puede obtener versión de símbolo: %s"
 
-#: src/unstrip.c:526
+#: src/unstrip.c:560
 #, fuzzy, c-format
 msgid "unexpected section type in [%zu] with sh_link to symtab"
 msgstr "tipo de sección inesperado en [%Zu] con sh_link para symtab"
 
-#: src/unstrip.c:774
+#: src/unstrip.c:809
 #, fuzzy, c-format
 msgid "invalid string offset in symbol [%zu]"
 msgstr "compensación de cadena inválida en símbolo [%Zu]"
 
-#: src/unstrip.c:932 src/unstrip.c:1278
+#: src/unstrip.c:967 src/unstrip.c:1313
 #, fuzzy, c-format
 msgid "cannot read section [%zu] name: %s"
 msgstr "no se puede leer nombre [%Zu]: %s"
 
-#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027
+#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062
 #, c-format
 msgid "cannot read '.gnu.prelink_undo' section: %s"
 msgstr "no se puede leer sección '.gnu.prelink_undo': %s"
 
-#: src/unstrip.c:1013
+#: src/unstrip.c:1048
 #, c-format
 msgid "invalid contents in '%s' section"
 msgstr "contenido inválido en sección '%s'"
 
-#: src/unstrip.c:1019
+#: src/unstrip.c:1054
 #, c-format
 msgid "overflow with shnum = %zu in '%s' section"
 msgstr ""
 
-#: src/unstrip.c:1073 src/unstrip.c:1398
+#: src/unstrip.c:1108 src/unstrip.c:1433
 #, fuzzy, c-format
 msgid "cannot find matching section for [%zu] '%s'"
 msgstr "no se puede hallar sección coincidente para [%Zu] '%s'"
 
-#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731
+#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766
 #, c-format
 msgid "cannot add section name to string table: %s"
 msgstr "no se puede añadir nombre de sección a tabla de cadenas: %s"
 
-#: src/unstrip.c:1222
+#: src/unstrip.c:1257
 #, c-format
 msgid "cannot update section header string table data: %s"
 msgstr ""
 "no se pueden actualizar datos de tabla de cadenas de encabezamiento de "
 "sección: %s"
 
-#: src/unstrip.c:1249 src/unstrip.c:1253
+#: src/unstrip.c:1284 src/unstrip.c:1288
 #, c-format
 msgid "cannot get section header string table section index: %s"
 msgstr ""
 "no se puede obtener índice de sección de tabla de cadenas de encabezamiento "
 "de sección: %s"
 
-#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494
+#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529
 #, c-format
 msgid "cannot get section count: %s"
 msgstr "No se puede obtener cuenta de sección: %s"
 
-#: src/unstrip.c:1264
+#: src/unstrip.c:1299
 #, c-format
 msgid "more sections in stripped file than debug file -- arguments reversed?"
 msgstr ""
 "más secciones en el archivo despojado que en el archivo de depuración -- "
 "¿argumentos invertidos?"
 
-#: src/unstrip.c:1323 src/unstrip.c:1413
+#: src/unstrip.c:1358 src/unstrip.c:1448
 #, c-format
 msgid "cannot read section header string table: %s"
 msgstr "no se puede obtener tabla de cadenas de encabezamiento de sección: %s"
 
-#: src/unstrip.c:1473
+#: src/unstrip.c:1508
 #, c-format
 msgid "cannot add new section: %s"
 msgstr "No se puede añadir nueva sección: %s"
 
-#: src/unstrip.c:1583
+#: src/unstrip.c:1618
 #, fuzzy, c-format
 msgid "symbol [%zu] has invalid section index"
 msgstr "símbolo [%Zu] tiene índice de sección inválido"
 
-#: src/unstrip.c:1864
+#: src/unstrip.c:1900
 #, c-format
 msgid "cannot read section data: %s"
 msgstr "no se puede leer la sección de datos: %s"
 
-#: src/unstrip.c:1885
+#: src/unstrip.c:1921
 #, c-format
 msgid "cannot get ELF header: %s"
 msgstr "no se puede leer encabezamiento ELF: %s"
 
-#: src/unstrip.c:1917
+#: src/unstrip.c:1953
 #, c-format
 msgid "cannot update program header: %s"
 msgstr "no se puede actualizar encabezamiento de programa: %s"
 
-#: src/unstrip.c:1922 src/unstrip.c:2005
+#: src/unstrip.c:1958 src/unstrip.c:2040
 #, c-format
 msgid "cannot write output file: %s"
 msgstr "no se puede escribir al archivo de salida: %s"
 
-#: src/unstrip.c:1974
+#: src/unstrip.c:2009
 #, c-format
 msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 "datos DWARF no se ajustan para polarización de pre-enlace; considere prelink "
 "-u"
 
-#: src/unstrip.c:1977
+#: src/unstrip.c:2012
 #, c-format
 msgid ""
 "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -7050,77 +7156,77 @@
 "Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere "
 "prelink -u"
 
-#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145
+#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180
 #, c-format
 msgid "cannot create ELF descriptor: %s"
 msgstr "no se puede crear un descriptor ELF: %s"
 
-#: src/unstrip.c:2038
+#: src/unstrip.c:2073
 msgid "WARNING: "
 msgstr ""
 
-#: src/unstrip.c:2040
+#: src/unstrip.c:2075
 msgid ", use --force"
 msgstr ""
 
-#: src/unstrip.c:2063
+#: src/unstrip.c:2098
 msgid "ELF header identification (e_ident) different"
 msgstr ""
 
-#: src/unstrip.c:2066
+#: src/unstrip.c:2101
 msgid "ELF header type (e_type) different"
 msgstr ""
 
-#: src/unstrip.c:2069
+#: src/unstrip.c:2104
 msgid "ELF header machine type (e_machine) different"
 msgstr ""
 
-#: src/unstrip.c:2072
+#: src/unstrip.c:2107
 msgid "stripped program header (e_phnum) smaller than unstripped"
 msgstr ""
 
-#: src/unstrip.c:2102
+#: src/unstrip.c:2137
 #, c-format
 msgid "cannot find stripped file for module '%s': %s"
 msgstr "no se puede hallar archivo obtenido para módulo '%s': %s "
 
-#: src/unstrip.c:2106
+#: src/unstrip.c:2141
 #, c-format
 msgid "cannot open stripped file '%s' for module '%s': %s"
 msgstr "No se puede abrir el archivo '%s' obtenido para módulo '%s': %s"
 
-#: src/unstrip.c:2121
+#: src/unstrip.c:2156
 #, c-format
 msgid "cannot find debug file for module '%s': %s"
 msgstr "no puede hallar archivo de depuración para módulo '%s': %su"
 
-#: src/unstrip.c:2125
+#: src/unstrip.c:2160
 #, c-format
 msgid "cannot open debug file '%s' for module '%s': %s"
 msgstr "No puede abrir archivo de depuración '%s' para módulo '%s': %s"
 
-#: src/unstrip.c:2138
+#: src/unstrip.c:2173
 #, c-format
 msgid "module '%s' file '%s' is not stripped"
 msgstr "No se obtuvo el archivo '%s' de módulo '%s' "
 
-#: src/unstrip.c:2169
+#: src/unstrip.c:2204
 #, c-format
 msgid "cannot cache section addresses for module '%s': %s"
 msgstr ""
 "No puede almacenar en cache direcciones de sección para módulo '%s': %s"
 
-#: src/unstrip.c:2302
+#: src/unstrip.c:2337
 #, c-format
 msgid "no matching modules found"
 msgstr "No se encontraron módulos coincidentes"
 
-#: src/unstrip.c:2311
+#: src/unstrip.c:2346
 #, c-format
 msgid "matched more than one module"
 msgstr "coincidió con más de un módulo"
 
-#: src/unstrip.c:2355
+#: src/unstrip.c:2390
 msgid ""
 "STRIPPED-FILE DEBUG-FILE\n"
 "[MODULE...]"
@@ -7128,7 +7234,7 @@
 "STRIPPED-FILE DEBUG-FILE\n"
 "[MODULE...]"
 
-#: src/unstrip.c:2356
+#: src/unstrip.c:2391
 msgid ""
 "Combine stripped files with separate symbols and debug information.\vThe "
 "first form puts the result in DEBUG-FILE if -o was not given.\n"
diff --git a/po/ja.po b/po/ja.po
index 3c32ee1..6d99a25 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: ja\n"
 "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2015-10-16 13:26+0200\n"
+"POT-Creation-Date: 2016-01-11 08:48+0100\n"
 "PO-Revision-Date: 2009-09-20 15:32+0900\n"
 "Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n"
 "Language-Team: Japanese <jp@li.org>\n"
@@ -39,8 +39,8 @@
 msgid "cannot allocate memory"
 msgstr "PLT セクションを割り当てられません: %s"
 
-#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184
-#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403
+#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282
+#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438
 #, c-format
 msgid "memory exhausted"
 msgstr "メモリー消費済み"
@@ -243,7 +243,7 @@
 msgid "not a CU (unit) DIE"
 msgstr ""
 
-#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345
+#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380
 msgid "Input selection options:"
 msgstr "選択オプションを入力してください:"
 
@@ -300,7 +300,12 @@
 msgid "cannot read ELF core file: %s"
 msgstr "ELF コアファイルを読めません: %s"
 
-#: libdwfl/argp-std.c:311
+#: libdwfl/argp-std.c:313
+#, fuzzy
+msgid "Not enough memory"
+msgstr "メモリー不足"
+
+#: libdwfl/argp-std.c:323
 msgid "No modules recognized in core file"
 msgstr "コアファイルの中にモジュールを認識できません"
 
@@ -483,57 +488,57 @@
 msgid "<unknown>: %#<PRIx64>"
 msgstr "<不明>: %#<PRIx64>"
 
-#: libebl/eblobjnote.c:52
+#: libebl/eblobjnote.c:53
 #, fuzzy, c-format
 msgid "unknown SDT version %u\n"
 msgstr "不明なバージョン"
 
-#: libebl/eblobjnote.c:70
+#: libebl/eblobjnote.c:71
 #, fuzzy, c-format
 msgid "invalid SDT probe descriptor\n"
 msgstr "不当なファイル記述子"
 
-#: libebl/eblobjnote.c:120
+#: libebl/eblobjnote.c:121
 #, c-format
 msgid "    PC: "
 msgstr ""
 
-#: libebl/eblobjnote.c:122
+#: libebl/eblobjnote.c:123
 #, c-format
 msgid " Base: "
 msgstr ""
 
-#: libebl/eblobjnote.c:124
+#: libebl/eblobjnote.c:125
 #, c-format
 msgid " Semaphore: "
 msgstr ""
 
-#: libebl/eblobjnote.c:126
+#: libebl/eblobjnote.c:127
 #, c-format
 msgid "    Provider: "
 msgstr ""
 
-#: libebl/eblobjnote.c:128
+#: libebl/eblobjnote.c:129
 #, c-format
 msgid " Name: "
 msgstr ""
 
-#: libebl/eblobjnote.c:130
+#: libebl/eblobjnote.c:131
 #, c-format
 msgid " Args: "
 msgstr ""
 
-#: libebl/eblobjnote.c:140
+#: libebl/eblobjnote.c:141
 #, c-format
 msgid "    Build ID: "
 msgstr "   ビルト ID: "
 
-#: libebl/eblobjnote.c:151
+#: libebl/eblobjnote.c:152
 #, c-format
 msgid "    Linker version: %.*s\n"
 msgstr ""
 
-#: libebl/eblobjnote.c:212
+#: libebl/eblobjnote.c:213
 #, c-format
 msgid "    OS: %s, ABI: "
 msgstr "    OS: %s、ABI: "
@@ -567,7 +572,7 @@
 msgid "invalid size of destination operand"
 msgstr "宛先演算子の大きさが無効"
 
-#: libelf/elf_error.c:87 src/readelf.c:5365
+#: libelf/elf_error.c:87 src/readelf.c:5473
 #, c-format
 msgid "invalid encoding"
 msgstr "無効なエンコード"
@@ -649,8 +654,8 @@
 msgid "invalid section header"
 msgstr "不当なセクションヘッダー"
 
-#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682
-#: src/readelf.c:7783 src/readelf.c:7964
+#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790
+#: src/readelf.c:7891 src/readelf.c:8072
 #, c-format
 msgid "invalid data"
 msgstr "不当なデータ"
@@ -694,6 +699,40 @@
 msgid "file has no program header"
 msgstr "ファイルにプログラムヘッダーがありません"
 
+#: libelf/elf_error.c:237
+#, fuzzy
+msgid "invalid section type"
+msgstr "不当なセクション"
+
+#: libelf/elf_error.c:242
+#, fuzzy
+msgid "invalid section flags"
+msgstr "不当なセクション"
+
+#: libelf/elf_error.c:247
+#, fuzzy
+msgid "section does not contain compressed data"
+msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
+
+#: libelf/elf_error.c:252
+msgid "section contains compressed data"
+msgstr ""
+
+#: libelf/elf_error.c:257
+#, fuzzy
+msgid "unknown compression type"
+msgstr "不明なタイプ"
+
+#: libelf/elf_error.c:262
+#, fuzzy
+msgid "cannot compress data"
+msgstr "セクションデータを割り当てられません: %s"
+
+#: libelf/elf_error.c:267
+#, fuzzy
+msgid "cannot decompress data"
+msgstr "セクションデータを割り当てられません: %s"
+
 #: src/addr2line.c:58
 #, fuzzy
 msgid "Input format options:"
@@ -750,7 +789,7 @@
 msgid "Print all information on one line, and indent inlines"
 msgstr ""
 
-#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99
+#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100
 #: src/strings.c:79
 msgid "Miscellaneous:"
 msgstr "雑則:"
@@ -764,9 +803,9 @@
 msgid "[ADDR...]"
 msgstr ""
 
-#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235
-#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177
-#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230
+#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235
+#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177
+#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230
 #: src/strip.c:218 src/unstrip.c:232
 #, c-format
 msgid ""
@@ -778,9 +817,9 @@
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 
-#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240
-#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182
-#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235
+#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240
+#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182
+#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235
 #: src/strip.c:223 src/unstrip.c:237
 #, c-format
 msgid "Written by %s.\n"
@@ -1251,40 +1290,40 @@
 msgid "%s %s differ: gap"
 msgstr ""
 
-#: src/elfcmp.c:702
+#: src/elfcmp.c:704
 #, c-format
 msgid "Invalid value '%s' for --gaps parameter."
 msgstr ""
 
-#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757
-#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289
-#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994
-#: src/unstrip.c:2023
+#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757
+#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289
+#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029
+#: src/unstrip.c:2058
 #, c-format
 msgid "cannot open '%s'"
 msgstr "'%s' を開けません"
 
-#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174
+#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174
 #, c-format
 msgid "cannot create ELF descriptor for '%s': %s"
 msgstr ""
 
-#: src/elfcmp.c:739
+#: src/elfcmp.c:741
 #, c-format
 msgid "cannot create EBL descriptor for '%s'"
 msgstr ""
 
-#: src/elfcmp.c:757 src/findtextrel.c:409
+#: src/elfcmp.c:759 src/findtextrel.c:409
 #, c-format
 msgid "cannot get section header of section %zu: %s"
 msgstr ""
 
-#: src/elfcmp.c:767
+#: src/elfcmp.c:769
 #, c-format
 msgid "cannot get content of section %zu: %s"
 msgstr ""
 
-#: src/elfcmp.c:777 src/elfcmp.c:791
+#: src/elfcmp.c:779 src/elfcmp.c:793
 #, c-format
 msgid "cannot get relocation: %s"
 msgstr ""
@@ -1312,11 +1351,11 @@
 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
 msgstr "ELF ファイルが gABI/psABI 仕様へ準拠しているかの厳密なチェック。"
 
-#: src/elflint.c:78 src/readelf.c:123
+#: src/elflint.c:78 src/readelf.c:126
 msgid "FILE..."
 msgstr "ふぁいる..."
 
-#: src/elflint.c:155 src/readelf.c:292
+#: src/elflint.c:155 src/readelf.c:298
 #, c-format
 msgid "cannot open input file"
 msgstr "入力ファイルを開けません"
@@ -1335,7 +1374,7 @@
 msgid "No errors"
 msgstr "エラーはありません"
 
-#: src/elflint.c:219 src/readelf.c:468
+#: src/elflint.c:219 src/readelf.c:474
 msgid "Missing file name.\n"
 msgstr "ファイル名がありません。\n"
 
@@ -1482,14 +1521,14 @@
 "セクション [%2d] '%s': セクショングループ [%2zu] '%s' がグループメンバーを継"
 "続していません\n"
 
-#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628
-#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056
-#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336
+#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632
+#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061
+#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366
 #, c-format
 msgid "section [%2d] '%s': cannot get section data\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:604 src/elflint.c:1635
+#: src/elflint.c:604 src/elflint.c:1639
 #, c-format
 msgid ""
 "section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1601,12 +1640,12 @@
 "セクション [%2d] '%s': シンボル %zu: COMMON セクションの機能は意味がありませ"
 "ん\n"
 
-#: src/elflint.c:805
+#: src/elflint.c:809
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n"
 msgstr "セクション [%2d] '%s': シンボル %zu: st_value 境界外\n"
 
-#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885
+#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu does not fit completely in referenced section "
@@ -1615,7 +1654,7 @@
 "セクション [%2d] '%s': シンボル %zu は参照されるセクション [%2d] '%s' とは完"
 "全に一致しません\n"
 
-#: src/elflint.c:820
+#: src/elflint.c:824
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have "
@@ -1624,7 +1663,7 @@
 "セクション [%2d] '%s': シンボル %zu: 参照されるセクション [%2d] '%s' は "
 "SHF_TLS フラグが設定されていません\n"
 
-#: src/elflint.c:830 src/elflint.c:878
+#: src/elflint.c:834 src/elflint.c:882
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section "
@@ -1633,7 +1672,7 @@
 "セクション [%2d] '%s': シンボル %zu: st_value 参照されるセクション [%2d] "
 "'%s' の境界外\n"
 
-#: src/elflint.c:857
+#: src/elflint.c:861
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"
@@ -1641,7 +1680,7 @@
 "セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目がない TLS シ"
 "ンボル\n"
 
-#: src/elflint.c:863
+#: src/elflint.c:867
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program "
@@ -1650,7 +1689,7 @@
 "セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目がない TLS シ"
 "ンボル\n"
 
-#: src/elflint.c:871
+#: src/elflint.c:875
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] "
@@ -1659,7 +1698,7 @@
 "セクション [%2d] '%s': シンボル %zu: 参照されるセクション [%2d] '%s' の"
 "st_value 不足\n"
 
-#: src/elflint.c:898
+#: src/elflint.c:902
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: local symbol outside range described in "
@@ -1668,7 +1707,7 @@
 "セクション [%2d] '%s': シンボル %zu: sh_info に記述された範囲外のローカルシン"
 "ボル\n"
 
-#: src/elflint.c:905
+#: src/elflint.c:909
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
@@ -1677,12 +1716,12 @@
 "セクション [%2d] '%s': シンボル %zu: sh_info に記述された範囲外の非ローカルシ"
 "ンボル\n"
 
-#: src/elflint.c:912
+#: src/elflint.c:916
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
 msgstr "セクション [%2d] '%s': シンボル %zu: 非ローカルセクションシンボル\n"
 
-#: src/elflint.c:962
+#: src/elflint.c:966
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -1691,7 +1730,7 @@
 "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルが間違ったセクション "
 "[%2d] を参照しています\n"
 
-#: src/elflint.c:969
+#: src/elflint.c:973
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -1700,7 +1739,7 @@
 "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルはセクション [%2d] '%s' "
 "を参照しています\n"
 
-#: src/elflint.c:985
+#: src/elflint.c:989
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -1709,7 +1748,7 @@
 "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボル値 %#<PRIx64> は %s のセ"
 "クションアドレス %#<PRIx64> と一致しません\n"
 
-#: src/elflint.c:992
+#: src/elflint.c:996
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -1718,7 +1757,7 @@
 "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルサイズ %<PRIu64> は %s "
 "のセクションサイズ %<PRIu64> と一致しません\n"
 
-#: src/elflint.c:1000
+#: src/elflint.c:1004
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -1727,7 +1766,7 @@
 "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルはありますが、.got セク"
 "ションがありません\n"
 
-#: src/elflint.c:1016
+#: src/elflint.c:1020
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -1736,7 +1775,7 @@
 "セクション [%2d] '%s': _DYNAMIC_ シンボル値 %#<PRIx64> は動的セグメントアドレ"
 "ス %#<PRIx64> と一致しません\n"
 
-#: src/elflint.c:1023
+#: src/elflint.c:1027
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -1745,7 +1784,7 @@
 "セクション [%2d] '%s': _DYNAMIC シンボルサイズ %<PRIu64> は動的セグメントサイ"
 "ズ %<PRIu64> と一致しません\n"
 
-#: src/elflint.c:1036
+#: src/elflint.c:1040
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-"
@@ -1754,29 +1793,29 @@
 "セクション [%2d] '%s': シンボル %zu: 省略以外の可視性を持った動的シンボルテー"
 "ブル中のシンボル\n"
 
-#: src/elflint.c:1040
+#: src/elflint.c:1044
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n"
 msgstr ""
 "セクション [%2d] '%s': シンボル %zu: st_other 中に設定された不明なビット\n"
 
-#: src/elflint.c:1078
+#: src/elflint.c:1082
 #, fuzzy, c-format
 msgid "section [%2d] '%s': cannot get section data.\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:1094
+#: src/elflint.c:1098
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
 msgstr "セクション [%2d] '%s': この RELA セクション用に使われる DT_RELCOUNT\n"
 
-#: src/elflint.c:1105 src/elflint.c:1158
+#: src/elflint.c:1109 src/elflint.c:1162
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
 msgstr ""
 "セクション [%2d] '%s': このセクション用には高すぎる DT_RELCOUNT 値 %d\n"
 
-#: src/elflint.c:1130 src/elflint.c:1183
+#: src/elflint.c:1134 src/elflint.c:1187
 #, c-format
 msgid ""
 "section [%2d] '%s': relative relocations after index %d as specified by "
@@ -1785,7 +1824,7 @@
 "セクション [%2d] '%s': UT_RELOCOUNT で指定されたインデックス %d 後の相対リロ"
 "ケーション\n"
 
-#: src/elflint.c:1136 src/elflint.c:1189
+#: src/elflint.c:1140 src/elflint.c:1193
 #, c-format
 msgid ""
 "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -1794,52 +1833,52 @@
 "セクション [%2d] '%s': インデックス %zu での非相対リロケーション;  %d 相対リ"
 "ロケーションで指定された DT_RELCOUNT\n"
 
-#: src/elflint.c:1148
+#: src/elflint.c:1152
 #, c-format
 msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
 msgstr "セクション [%2d] '%s': この REL セクション用に使われる DT_RELACOUNT\n"
 
-#: src/elflint.c:1231
+#: src/elflint.c:1235
 #, c-format
 msgid "section [%2d] '%s': invalid destination section index\n"
 msgstr "セクション [%2d] '%s': 不当な宛先セクションインデックス\n"
 
-#: src/elflint.c:1243
+#: src/elflint.c:1247
 #, c-format
 msgid "section [%2d] '%s': invalid destination section type\n"
 msgstr "セクション [%2d] '%s': 不当な宛先セクションタイプ\n"
 
-#: src/elflint.c:1251
+#: src/elflint.c:1255
 #, c-format
 msgid "section [%2d] '%s': sh_info should be zero\n"
 msgstr "セクション [%2d] '%s': sh_info はゼロでなければなりません\n"
 
-#: src/elflint.c:1259
+#: src/elflint.c:1263
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': no relocations for merge-able string sections possible\n"
 msgstr ""
 "セクション [%2d] '%s': マージできるセクションのリロケーションは不可能です\n"
 
-#: src/elflint.c:1267
+#: src/elflint.c:1271
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
 msgstr ""
 "セクション [%2d] '%s': セクション項目サイズが ElfXX_Rela と一致しません\n"
 
-#: src/elflint.c:1327
+#: src/elflint.c:1331
 #, c-format
 msgid "text relocation flag set but there is no read-only segment\n"
 msgstr ""
 "テキストリロケーションフラグが設定されていますが、読込み専用セグメントがあり"
 "ません\n"
 
-#: src/elflint.c:1354
+#: src/elflint.c:1358
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid type\n"
 msgstr "セクション [%2d] '%s': リロケーション %zu: 不当なタイプ\n"
 
-#: src/elflint.c:1362
+#: src/elflint.c:1366
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -1848,13 +1887,13 @@
 "セクション [%2d] '%s': リロケーション %zu: このファイル用のリロケーションタイ"
 "プは不当です\n"
 
-#: src/elflint.c:1370
+#: src/elflint.c:1374
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
 msgstr ""
 "セクション [%2d] '%s': リロケーション %zu: 不当なシンボルインデックス\n"
 
-#: src/elflint.c:1388
+#: src/elflint.c:1392
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -1863,12 +1902,12 @@
 "セクション [%2d] '%s': リロケーション %zu: シンボル '_GLOBAL_OFFSET_TABLE_' "
 "のみが %s と一緒に使用できます\n"
 
-#: src/elflint.c:1405
+#: src/elflint.c:1409
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
 msgstr "セクション [%2d] '%s': リロケーション %zu: オフセット境界外\n"
 
-#: src/elflint.c:1420
+#: src/elflint.c:1424
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -1877,7 +1916,7 @@
 "セクション [%2d] '%s': リロケーション %zu: タイプ %s のシンボルに対するコピー"
 "リロケーション\n"
 
-#: src/elflint.c:1441
+#: src/elflint.c:1445
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -1886,24 +1925,24 @@
 "セクション [%2d] '%s': リロケーション %zu: 読込み専用セクションが変更されまし"
 "たが、テキストリロケーションフラグが設定されていません\n"
 
-#: src/elflint.c:1456
+#: src/elflint.c:1460
 #, c-format
 msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
 msgstr ""
 "セクション [%2d] '%s': リロケーションがロードされたデータとロードされなかった"
 "データに対してです\n"
 
-#: src/elflint.c:1496 src/elflint.c:1547
+#: src/elflint.c:1500 src/elflint.c:1551
 #, c-format
 msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
 msgstr ""
 
-#: src/elflint.c:1623
+#: src/elflint.c:1627
 #, c-format
 msgid "more than one dynamic section present\n"
 msgstr ""
 
-#: src/elflint.c:1641
+#: src/elflint.c:1645
 #, fuzzy, c-format
 msgid ""
 "section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -1912,427 +1951,427 @@
 "セクション [%2d] '%s': セクション [%2d] '%s' 用の文字列テーブルとして参照され"
 "ていますが、タイプが SHT_STRTAB ではありません\n"
 
-#: src/elflint.c:1649
+#: src/elflint.c:1653
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
 msgstr ""
 
-#: src/elflint.c:1654 src/elflint.c:1943
+#: src/elflint.c:1658 src/elflint.c:1947
 #, c-format
 msgid "section [%2d] '%s': sh_info not zero\n"
 msgstr ""
 
-#: src/elflint.c:1664
+#: src/elflint.c:1668
 #, c-format
 msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
 msgstr ""
 
-#: src/elflint.c:1672
+#: src/elflint.c:1676
 #, c-format
 msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
 msgstr ""
 
-#: src/elflint.c:1679
+#: src/elflint.c:1683
 #, c-format
 msgid "section [%2d] '%s': entry %zu: unknown tag\n"
 msgstr ""
 
-#: src/elflint.c:1690
+#: src/elflint.c:1694
 #, c-format
 msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
 msgstr ""
 
-#: src/elflint.c:1700
+#: src/elflint.c:1704
 #, c-format
 msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
 msgstr ""
 
-#: src/elflint.c:1718
+#: src/elflint.c:1722
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
 msgstr ""
 
-#: src/elflint.c:1731
+#: src/elflint.c:1735
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: pointer does not match address of section "
 "[%2d] '%s' referenced by sh_link\n"
 msgstr ""
 
-#: src/elflint.c:1774
+#: src/elflint.c:1778
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
 msgstr ""
 
-#: src/elflint.c:1789
+#: src/elflint.c:1793
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must be valid offset in section "
 "[%2d] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:1809 src/elflint.c:1837
+#: src/elflint.c:1813 src/elflint.c:1841
 #, c-format
 msgid "section [%2d] '%s': contains %s entry but not %s\n"
 msgstr ""
 
-#: src/elflint.c:1821
+#: src/elflint.c:1825
 #, c-format
 msgid "section [%2d] '%s': mandatory tag %s not present\n"
 msgstr ""
 
-#: src/elflint.c:1830
+#: src/elflint.c:1834
 #, c-format
 msgid "section [%2d] '%s': no hash section present\n"
 msgstr ""
 
-#: src/elflint.c:1845 src/elflint.c:1852
+#: src/elflint.c:1849 src/elflint.c:1856
 #, c-format
 msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
 msgstr ""
 
-#: src/elflint.c:1862 src/elflint.c:1866
+#: src/elflint.c:1866 src/elflint.c:1870
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
 msgstr ""
 
-#: src/elflint.c:1872
+#: src/elflint.c:1876
 #, c-format
 msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
 msgstr ""
 
-#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895
+#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
 msgstr ""
 
-#: src/elflint.c:1907
+#: src/elflint.c:1911
 #, c-format
 msgid ""
 "section [%2d] '%s': only relocatable files can have extended section index\n"
 msgstr ""
 
-#: src/elflint.c:1917
+#: src/elflint.c:1921
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index section not for symbol table\n"
 msgstr ""
 
-#: src/elflint.c:1921
+#: src/elflint.c:1925
 #, fuzzy, c-format
 msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
 msgstr "セクション [%2d] '%s': 不当な宛先セクションインデックス\n"
 
-#: src/elflint.c:1926
+#: src/elflint.c:1930
 #, c-format
 msgid "cannot get data for symbol section\n"
 msgstr ""
 
-#: src/elflint.c:1929
+#: src/elflint.c:1933
 #, c-format
 msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
 msgstr ""
 
-#: src/elflint.c:1938
+#: src/elflint.c:1942
 #, c-format
 msgid "section [%2d] '%s': extended index table too small for symbol table\n"
 msgstr ""
 
-#: src/elflint.c:1953
+#: src/elflint.c:1957
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
 "same symbol table\n"
 msgstr ""
 
-#: src/elflint.c:1970
+#: src/elflint.c:1974
 #, c-format
 msgid "symbol 0 should have zero extended section index\n"
 msgstr ""
 
-#: src/elflint.c:1982
+#: src/elflint.c:1986
 #, c-format
 msgid "cannot get data for symbol %zu\n"
 msgstr ""
 
-#: src/elflint.c:1987
+#: src/elflint.c:1991
 #, c-format
 msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
 msgstr ""
 
-#: src/elflint.c:2003 src/elflint.c:2054
+#: src/elflint.c:2007 src/elflint.c:2058
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
 msgstr ""
 
-#: src/elflint.c:2015 src/elflint.c:2066
+#: src/elflint.c:2019 src/elflint.c:2070
 #, c-format
 msgid "section [%2d] '%s': chain array too large\n"
 msgstr ""
 
-#: src/elflint.c:2029 src/elflint.c:2080
+#: src/elflint.c:2033 src/elflint.c:2084
 #, c-format
 msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2039
+#: src/elflint.c:2043
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2090
+#: src/elflint.c:2094
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2103
+#: src/elflint.c:2107
 #, fuzzy, c-format
 msgid "section [%2d] '%s': not enough data\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:2115
+#: src/elflint.c:2119
 #, fuzzy, c-format
 msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
 msgstr "セクション [%2d] '%s': 0番目の項目にある '%s' ゼロではありません\n"
 
-#: src/elflint.c:2131
+#: src/elflint.c:2135
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected at "
 "least %ld)\n"
 msgstr ""
 
-#: src/elflint.c:2140
+#: src/elflint.c:2144
 #, c-format
 msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
 msgstr ""
 
-#: src/elflint.c:2174
+#: src/elflint.c:2178
 #, c-format
 msgid ""
 "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
 msgstr ""
 
-#: src/elflint.c:2195
+#: src/elflint.c:2199
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
 "undefined\n"
 msgstr ""
 
-#: src/elflint.c:2208
+#: src/elflint.c:2212
 #, c-format
 msgid ""
 "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
 msgstr ""
 
-#: src/elflint.c:2217
+#: src/elflint.c:2221
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:2247
+#: src/elflint.c:2251
 #, c-format
 msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2252
+#: src/elflint.c:2256
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
 msgstr ""
 
-#: src/elflint.c:2258
+#: src/elflint.c:2262
 #, c-format
 msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
 msgstr ""
 
-#: src/elflint.c:2271
+#: src/elflint.c:2275
 #, c-format
 msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
 msgstr ""
 
-#: src/elflint.c:2289
+#: src/elflint.c:2293
 #, c-format
 msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
 msgstr ""
 
-#: src/elflint.c:2293
+#: src/elflint.c:2297
 #, fuzzy, c-format
 msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
 msgstr "セクション [%2d] '%s': 不当な宛先セクションインデックス\n"
 
-#: src/elflint.c:2301
+#: src/elflint.c:2305
 #, c-format
 msgid "section [%2d] '%s': hash table entry size incorrect\n"
 msgstr ""
 
-#: src/elflint.c:2306
+#: src/elflint.c:2310
 #, c-format
 msgid "section [%2d] '%s': not marked to be allocated\n"
 msgstr ""
 
-#: src/elflint.c:2311
+#: src/elflint.c:2315
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table has not even room for initial administrative "
 "entries\n"
 msgstr ""
 
-#: src/elflint.c:2360
+#: src/elflint.c:2364
 #, c-format
 msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
 msgstr ""
 
-#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484
+#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' does not contain enough data\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:2405
+#: src/elflint.c:2409
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' has zero bit mask words\n"
 msgstr ""
 "\n"
 "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
 
-#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497
+#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' uses too much data\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:2431
+#: src/elflint.c:2435
 #, c-format
 msgid ""
 "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
 "%<PRIu32>, nentries: %<PRIu32>\n"
 msgstr ""
 
-#: src/elflint.c:2518
+#: src/elflint.c:2522
 #, fuzzy, c-format
 msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
 msgstr "セクション [%2d] '%s': 不当な宛先セクションタイプ\n"
 
-#: src/elflint.c:2528 src/elflint.c:2532
+#: src/elflint.c:2532 src/elflint.c:2536
 #, c-format
 msgid "section [%2zu] '%s': reference to symbol index 0\n"
 msgstr ""
 
-#: src/elflint.c:2539
+#: src/elflint.c:2543
 #, c-format
 msgid ""
 "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
 "table in [%2zu] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:2551
+#: src/elflint.c:2555
 #, c-format
 msgid ""
 "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
 "table in [%2zu] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:2567
+#: src/elflint.c:2571
 #, c-format
 msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
 msgstr ""
 
-#: src/elflint.c:2587
+#: src/elflint.c:2591
 #, c-format
 msgid ""
 "section [%2d] '%s': section groups only allowed in relocatable object files\n"
 msgstr ""
 
-#: src/elflint.c:2598
+#: src/elflint.c:2602
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol table: %s\n"
 msgstr ""
 
-#: src/elflint.c:2603
+#: src/elflint.c:2607
 #, c-format
 msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
 msgstr ""
 
-#: src/elflint.c:2609
+#: src/elflint.c:2613
 #, c-format
 msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
 msgstr ""
 
-#: src/elflint.c:2614
+#: src/elflint.c:2618
 #, c-format
 msgid "section [%2d] '%s': sh_flags not zero\n"
 msgstr ""
 
-#: src/elflint.c:2621
+#: src/elflint.c:2625
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol for signature\n"
 msgstr ""
 
-#: src/elflint.c:2625
+#: src/elflint.c:2629
 #, fuzzy, c-format
 msgid "section [%2d] '%s': cannot get symbol name for signature\n"
 msgstr "セクション [%2d] '%s': シンボル %d を得られません: %s\n"
 
-#: src/elflint.c:2630
+#: src/elflint.c:2634
 #, fuzzy, c-format
 msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
 msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
 
-#: src/elflint.c:2636
+#: src/elflint.c:2640
 #, c-format
 msgid "section [%2d] '%s': sh_flags not set correctly\n"
 msgstr ""
 
-#: src/elflint.c:2642
+#: src/elflint.c:2646
 #, c-format
 msgid "section [%2d] '%s': cannot get data: %s\n"
 msgstr ""
 
-#: src/elflint.c:2651
+#: src/elflint.c:2655
 #, c-format
 msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
 msgstr ""
 
-#: src/elflint.c:2656
+#: src/elflint.c:2660
 #, c-format
 msgid "section [%2d] '%s': section group without flags word\n"
 msgstr ""
 
-#: src/elflint.c:2662
+#: src/elflint.c:2666
 #, c-format
 msgid "section [%2d] '%s': section group without member\n"
 msgstr ""
 
-#: src/elflint.c:2666
+#: src/elflint.c:2670
 #, c-format
 msgid "section [%2d] '%s': section group with only one member\n"
 msgstr ""
 
-#: src/elflint.c:2677
+#: src/elflint.c:2681
 #, c-format
 msgid "section [%2d] '%s': unknown section group flags\n"
 msgstr ""
 
-#: src/elflint.c:2689
+#: src/elflint.c:2693
 #, fuzzy, c-format
 msgid "section [%2d] '%s': section index %zu out of range\n"
 msgstr "セクション [%2d] '%s': リロケーション %zu: オフセット境界外\n"
 
-#: src/elflint.c:2698
+#: src/elflint.c:2702
 #, c-format
 msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
 msgstr ""
 
-#: src/elflint.c:2705
+#: src/elflint.c:2709
 #, c-format
 msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
 msgstr ""
 
-#: src/elflint.c:2711
+#: src/elflint.c:2715
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2341,745 +2380,761 @@
 "セクション [%2d] '%s': シンボル %zu: 参照されるセクション [%2d] '%s' は "
 "SHF_TLS フラグが設定されていません\n"
 
-#: src/elflint.c:2718
+#: src/elflint.c:2722
 #, c-format
 msgid "section [%2d] '%s' is contained in more than one section group\n"
 msgstr ""
 
-#: src/elflint.c:2907
+#: src/elflint.c:2912
 #, c-format
 msgid ""
 "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
 "dynamic symbol table\n"
 msgstr ""
 
-#: src/elflint.c:2919
+#: src/elflint.c:2924
 #, c-format
 msgid ""
 "section [%2d] '%s' has different number of entries than symbol table [%2d] "
 "'%s'\n"
 msgstr ""
 
-#: src/elflint.c:2935
+#: src/elflint.c:2940
 #, c-format
 msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
 msgstr ""
 
-#: src/elflint.c:2951
+#: src/elflint.c:2956
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
 msgstr ""
 
-#: src/elflint.c:2959
+#: src/elflint.c:2964
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
 msgstr ""
 
-#: src/elflint.c:2973
+#: src/elflint.c:2978
 #, c-format
 msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
 msgstr ""
 
-#: src/elflint.c:2978
+#: src/elflint.c:2983
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for defined version\n"
 msgstr ""
 
-#: src/elflint.c:2988
+#: src/elflint.c:2993
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for requested version\n"
 msgstr ""
 
-#: src/elflint.c:3041
+#: src/elflint.c:3046
 #, c-format
 msgid "more than one version reference section present\n"
 msgstr ""
 
-#: src/elflint.c:3049 src/elflint.c:3196
+#: src/elflint.c:3054 src/elflint.c:3201
 #, c-format
 msgid "section [%2d] '%s': sh_link does not link to string table\n"
 msgstr ""
 
-#: src/elflint.c:3074 src/elflint.c:3250
+#: src/elflint.c:3079 src/elflint.c:3255
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong version %d\n"
 msgstr ""
 
-#: src/elflint.c:3081 src/elflint.c:3257
+#: src/elflint.c:3086 src/elflint.c:3262
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
 msgstr ""
 
-#: src/elflint.c:3091
+#: src/elflint.c:3096
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid file reference\n"
 msgstr ""
 
-#: src/elflint.c:3099
+#: src/elflint.c:3104
 #, c-format
 msgid "section [%2d] '%s': entry %d references unknown dependency\n"
 msgstr ""
 
-#: src/elflint.c:3111
+#: src/elflint.c:3116
 #, c-format
 msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
 msgstr ""
 
-#: src/elflint.c:3119
+#: src/elflint.c:3124
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
 "reference\n"
 msgstr ""
 
-#: src/elflint.c:3128
+#: src/elflint.c:3133
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
 "%#x, expected %#x\n"
 msgstr ""
 
-#: src/elflint.c:3137
+#: src/elflint.c:3142
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
 "name '%s'\n"
 msgstr ""
 
-#: src/elflint.c:3148
+#: src/elflint.c:3153
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
 msgstr ""
 
-#: src/elflint.c:3165 src/elflint.c:3341
+#: src/elflint.c:3170 src/elflint.c:3346
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
 msgstr ""
 
-#: src/elflint.c:3173 src/elflint.c:3349
+#: src/elflint.c:3178 src/elflint.c:3354
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
 "there are more entries\n"
 msgstr ""
 
-#: src/elflint.c:3188
+#: src/elflint.c:3193
 #, c-format
 msgid "more than one version definition section present\n"
 msgstr ""
 
-#: src/elflint.c:3235
+#: src/elflint.c:3240
 #, c-format
 msgid "section [%2d] '%s': more than one BASE definition\n"
 msgstr ""
 
-#: src/elflint.c:3239
+#: src/elflint.c:3244
 #, c-format
 msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
 msgstr ""
 
-#: src/elflint.c:3245
+#: src/elflint.c:3250
 #, c-format
 msgid "section [%2d] '%s': entry %d has unknown flag\n"
 msgstr ""
 
-#: src/elflint.c:3272
+#: src/elflint.c:3277
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid name reference\n"
 msgstr ""
 
-#: src/elflint.c:3279
+#: src/elflint.c:3284
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
 msgstr ""
 
-#: src/elflint.c:3287
+#: src/elflint.c:3292
 #, c-format
 msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
 msgstr ""
 
-#: src/elflint.c:3307
+#: src/elflint.c:3312
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
 msgstr ""
 
-#: src/elflint.c:3324
+#: src/elflint.c:3329
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
 msgstr ""
 
-#: src/elflint.c:3357
+#: src/elflint.c:3362
 #, c-format
 msgid "section [%2d] '%s': no BASE definition\n"
 msgstr ""
 
-#: src/elflint.c:3373
+#: src/elflint.c:3378
 #, c-format
 msgid "section [%2d] '%s': unknown parent version '%s'\n"
 msgstr ""
 
-#: src/elflint.c:3386
+#: src/elflint.c:3391
 #, c-format
 msgid "section [%2d] '%s': empty object attributes section\n"
 msgstr ""
 
-#: src/elflint.c:3407
+#: src/elflint.c:3412
 #, c-format
 msgid "section [%2d] '%s': unrecognized attribute format\n"
 msgstr ""
 
-#: src/elflint.c:3423
+#: src/elflint.c:3428
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3432
+#: src/elflint.c:3437
 #, c-format
 msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3444
+#: src/elflint.c:3449
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
 msgstr ""
 
-#: src/elflint.c:3461
+#: src/elflint.c:3466
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
 msgstr ""
 
-#: src/elflint.c:3470
+#: src/elflint.c:3475
 #, c-format
 msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3479
+#: src/elflint.c:3484
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
 msgstr ""
 
-#: src/elflint.c:3494
+#: src/elflint.c:3499
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
 msgstr ""
 
-#: src/elflint.c:3505
+#: src/elflint.c:3510
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
 msgstr ""
 
-#: src/elflint.c:3523
+#: src/elflint.c:3528
 #, c-format
 msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
 msgstr ""
 
-#: src/elflint.c:3534
+#: src/elflint.c:3539
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
 msgstr ""
 
-#: src/elflint.c:3547
+#: src/elflint.c:3552
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
 msgstr ""
 
-#: src/elflint.c:3551
+#: src/elflint.c:3556
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
 msgstr ""
 
-#: src/elflint.c:3561
+#: src/elflint.c:3566
 #, c-format
 msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
 msgstr ""
 
-#: src/elflint.c:3567
+#: src/elflint.c:3572
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
 msgstr ""
 
-#: src/elflint.c:3656
+#: src/elflint.c:3661
 #, c-format
 msgid "cannot get section header of zeroth section\n"
 msgstr ""
 
-#: src/elflint.c:3660
+#: src/elflint.c:3665
 #, c-format
 msgid "zeroth section has nonzero name\n"
 msgstr ""
 
-#: src/elflint.c:3662
+#: src/elflint.c:3667
 #, c-format
 msgid "zeroth section has nonzero type\n"
 msgstr ""
 
-#: src/elflint.c:3664
+#: src/elflint.c:3669
 #, c-format
 msgid "zeroth section has nonzero flags\n"
 msgstr ""
 
-#: src/elflint.c:3666
+#: src/elflint.c:3671
 #, c-format
 msgid "zeroth section has nonzero address\n"
 msgstr ""
 
-#: src/elflint.c:3668
+#: src/elflint.c:3673
 #, c-format
 msgid "zeroth section has nonzero offset\n"
 msgstr ""
 
-#: src/elflint.c:3670
+#: src/elflint.c:3675
 #, c-format
 msgid "zeroth section has nonzero align value\n"
 msgstr ""
 
-#: src/elflint.c:3672
+#: src/elflint.c:3677
 #, c-format
 msgid "zeroth section has nonzero entry size value\n"
 msgstr ""
 
-#: src/elflint.c:3675
+#: src/elflint.c:3680
 #, c-format
 msgid ""
 "zeroth section has nonzero size value while ELF header has nonzero shnum "
 "value\n"
 msgstr ""
 
-#: src/elflint.c:3679
+#: src/elflint.c:3684
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
 "overflow in shstrndx\n"
 msgstr ""
 
-#: src/elflint.c:3683
+#: src/elflint.c:3688
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
 "overflow in phnum\n"
 msgstr ""
 
-#: src/elflint.c:3700
+#: src/elflint.c:3706
 #, c-format
 msgid "cannot get section header for section [%2zu] '%s': %s\n"
 msgstr ""
 
-#: src/elflint.c:3709
+#: src/elflint.c:3715
 #, c-format
 msgid "section [%2zu]: invalid name\n"
 msgstr ""
 
-#: src/elflint.c:3736
+#: src/elflint.c:3742
 #, c-format
 msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
 msgstr ""
 
-#: src/elflint.c:3752
+#: src/elflint.c:3760
 #, c-format
 msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
 msgstr ""
 
-#: src/elflint.c:3769
+#: src/elflint.c:3778
 #, c-format
 msgid ""
 "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
 msgstr ""
 
-#: src/elflint.c:3787
+#: src/elflint.c:3796
 #, c-format
 msgid "section [%2zu] '%s' present in object file\n"
 msgstr ""
 
-#: src/elflint.c:3793 src/elflint.c:3825
+#: src/elflint.c:3802 src/elflint.c:3834
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
 msgstr ""
 
-#: src/elflint.c:3798 src/elflint.c:3830
+#: src/elflint.c:3807 src/elflint.c:3839
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
 "segments\n"
 msgstr ""
 
-#: src/elflint.c:3806
+#: src/elflint.c:3815
 #, c-format
 msgid ""
 "section [%2zu] '%s' is extension section index table in non-object file\n"
 msgstr ""
 
-#: src/elflint.c:3849
+#: src/elflint.c:3858
 #, c-format
 msgid "section [%2zu] '%s': size not multiple of entry size\n"
 msgstr ""
 
-#: src/elflint.c:3854
+#: src/elflint.c:3863
 #, c-format
 msgid "cannot get section header\n"
 msgstr ""
 
-#: src/elflint.c:3864
+#: src/elflint.c:3873
 #, c-format
 msgid "section [%2zu] '%s' has unsupported type %d\n"
 msgstr ""
 
-#: src/elflint.c:3878
+#: src/elflint.c:3888
 #, c-format
 msgid ""
 "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:3885
+#: src/elflint.c:3895
 #, c-format
 msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:3893
+#: src/elflint.c:3903
 #, c-format
 msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
 msgstr ""
 
-#: src/elflint.c:3901
+#: src/elflint.c:3913
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
+msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
+
+#: src/elflint.c:3918
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
+msgstr "セクション [%2d] '%s': セクションデータを得られません\n"
+
+#: src/elflint.c:3924
+#, c-format
+msgid ""
+"section [%2zu] '%s': compressed section with no compression header: %s\n"
+msgstr ""
+
+#: src/elflint.c:3930
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in link value\n"
 msgstr ""
 
-#: src/elflint.c:3906
+#: src/elflint.c:3935
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in info value\n"
 msgstr ""
 
-#: src/elflint.c:3913
+#: src/elflint.c:3942
 #, c-format
 msgid "section [%2zu] '%s': strings flag set without merge flag\n"
 msgstr ""
 
-#: src/elflint.c:3918
+#: src/elflint.c:3947
 #, c-format
 msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
 msgstr ""
 
-#: src/elflint.c:3936
+#: src/elflint.c:3965
 #, c-format
 msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
 msgstr ""
 
-#: src/elflint.c:3945
+#: src/elflint.c:3974
 #, c-format
 msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
 msgstr ""
 
-#: src/elflint.c:3952
+#: src/elflint.c:3981
 #, c-format
 msgid "section [%2zu] '%s' is both executable and writable\n"
 msgstr ""
 
-#: src/elflint.c:3982
+#: src/elflint.c:4012
 #, c-format
 msgid ""
 "section [%2zu] '%s' not fully contained in segment of program header entry "
 "%d\n"
 msgstr ""
 
-#: src/elflint.c:3992
+#: src/elflint.c:4022
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
 "program header entry %d\n"
 msgstr ""
 
-#: src/elflint.c:4018
+#: src/elflint.c:4048
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
 "program header entry %d and file contents is non-zero\n"
 msgstr ""
 
-#: src/elflint.c:4029
+#: src/elflint.c:4059
 #, c-format
 msgid ""
 "section [%2zu] '%s' has not type NOBITS but is not read from the file in "
 "segment of program header entry %d\n"
 msgstr ""
 
-#: src/elflint.c:4040
+#: src/elflint.c:4070
 #, c-format
 msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
 msgstr ""
 
-#: src/elflint.c:4050
+#: src/elflint.c:4080
 #, c-format
 msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
 msgstr ""
 
-#: src/elflint.c:4060
+#: src/elflint.c:4090
 #, c-format
 msgid ""
 "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
 msgstr ""
 
-#: src/elflint.c:4066
+#: src/elflint.c:4096
 #, c-format
 msgid ""
 "section [%2zu] '%s': ELF header says this is the section header string table "
 "but type is not SHT_TYPE\n"
 msgstr ""
 
-#: src/elflint.c:4074
+#: src/elflint.c:4104
 #, c-format
 msgid ""
 "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
 msgstr ""
 
-#: src/elflint.c:4125
+#: src/elflint.c:4155
 #, c-format
 msgid "more than one version symbol table present\n"
 msgstr ""
 
-#: src/elflint.c:4148
+#: src/elflint.c:4178
 #, c-format
 msgid "INTERP program header entry but no .interp section\n"
 msgstr ""
 
-#: src/elflint.c:4159
+#: src/elflint.c:4189
 #, c-format
 msgid ""
 "loadable segment [%u] is executable but contains no executable sections\n"
 msgstr ""
 
-#: src/elflint.c:4165
+#: src/elflint.c:4195
 #, c-format
 msgid "loadable segment [%u] is writable but contains no writable sections\n"
 msgstr ""
 
-#: src/elflint.c:4176
+#: src/elflint.c:4206
 #, c-format
 msgid ""
 "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
 "exist\n"
 msgstr ""
 
-#: src/elflint.c:4189
+#: src/elflint.c:4219
 #, c-format
 msgid "duplicate version index %d\n"
 msgstr ""
 
-#: src/elflint.c:4203
+#: src/elflint.c:4233
 #, c-format
 msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
 msgstr ""
 
-#: src/elflint.c:4252
+#: src/elflint.c:4282
 #, c-format
 msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
 msgstr ""
 
-#: src/elflint.c:4256
+#: src/elflint.c:4286
 #, c-format
 msgid ""
 "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 
-#: src/elflint.c:4279
+#: src/elflint.c:4309
 #, c-format
 msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 
-#: src/elflint.c:4283
+#: src/elflint.c:4313
 #, c-format
 msgid ""
 "section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 
-#: src/elflint.c:4300
+#: src/elflint.c:4330
 #, c-format
 msgid "phdr[%d]: no note entries defined for the type of file\n"
 msgstr ""
 
-#: src/elflint.c:4319
+#: src/elflint.c:4349
 #, c-format
 msgid "phdr[%d]: cannot get content of note section: %s\n"
 msgstr ""
 
-#: src/elflint.c:4322
+#: src/elflint.c:4352
 #, c-format
 msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
 msgstr ""
 
-#: src/elflint.c:4343
+#: src/elflint.c:4373
 #, c-format
 msgid "section [%2d] '%s': no note entries defined for the type of file\n"
 msgstr ""
 
-#: src/elflint.c:4350
+#: src/elflint.c:4380
 #, c-format
 msgid "section [%2d] '%s': cannot get content of note section\n"
 msgstr ""
 
-#: src/elflint.c:4353
+#: src/elflint.c:4383
 #, c-format
 msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
 msgstr ""
 
-#: src/elflint.c:4371
+#: src/elflint.c:4401
 #, c-format
 msgid ""
 "only executables, shared objects, and core files can have program headers\n"
 msgstr ""
 
-#: src/elflint.c:4386
+#: src/elflint.c:4416
 #, c-format
 msgid "cannot get program header entry %d: %s\n"
 msgstr ""
 
-#: src/elflint.c:4395
+#: src/elflint.c:4425
 #, c-format
 msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
 msgstr ""
 
-#: src/elflint.c:4406
+#: src/elflint.c:4436
 #, c-format
 msgid "more than one INTERP entry in program header\n"
 msgstr ""
 
-#: src/elflint.c:4414
+#: src/elflint.c:4444
 #, c-format
 msgid "more than one TLS entry in program header\n"
 msgstr ""
 
-#: src/elflint.c:4421
+#: src/elflint.c:4451
 #, c-format
 msgid "static executable cannot have dynamic sections\n"
 msgstr ""
 
-#: src/elflint.c:4435
+#: src/elflint.c:4465
 #, c-format
 msgid "dynamic section reference in program header has wrong offset\n"
 msgstr ""
 
-#: src/elflint.c:4438
+#: src/elflint.c:4468
 #, c-format
 msgid "dynamic section size mismatch in program and section header\n"
 msgstr ""
 
-#: src/elflint.c:4448
+#: src/elflint.c:4478
 #, c-format
 msgid "more than one GNU_RELRO entry in program header\n"
 msgstr ""
 
-#: src/elflint.c:4469
+#: src/elflint.c:4499
 #, c-format
 msgid "loadable segment GNU_RELRO applies to is not writable\n"
 msgstr ""
 
-#: src/elflint.c:4480
+#: src/elflint.c:4510
 #, c-format
 msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
 msgstr ""
 
-#: src/elflint.c:4487
+#: src/elflint.c:4517
 #, c-format
 msgid ""
 "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
 msgstr ""
 
-#: src/elflint.c:4496 src/elflint.c:4519
+#: src/elflint.c:4526 src/elflint.c:4549
 #, c-format
 msgid "%s segment not contained in a loaded segment\n"
 msgstr ""
 
-#: src/elflint.c:4525
+#: src/elflint.c:4555
 #, c-format
 msgid "program header offset in ELF header and PHDR entry do not match"
 msgstr ""
 
-#: src/elflint.c:4550
+#: src/elflint.c:4580
 #, c-format
 msgid "call frame search table reference in program header has wrong offset\n"
 msgstr ""
 
-#: src/elflint.c:4553
+#: src/elflint.c:4583
 #, c-format
 msgid "call frame search table size mismatch in program and section header\n"
 msgstr ""
 
-#: src/elflint.c:4566
+#: src/elflint.c:4596
 #, c-format
 msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
 msgstr ""
 
-#: src/elflint.c:4574
+#: src/elflint.c:4604
 #, c-format
 msgid "call frame search table must be allocated\n"
 msgstr ""
 
-#: src/elflint.c:4577
+#: src/elflint.c:4607
 #, c-format
 msgid "section [%2zu] '%s' must be allocated\n"
 msgstr ""
 
-#: src/elflint.c:4581
+#: src/elflint.c:4611
 #, c-format
 msgid "call frame search table must not be writable\n"
 msgstr ""
 
-#: src/elflint.c:4584
+#: src/elflint.c:4614
 #, c-format
 msgid "section [%2zu] '%s' must not be writable\n"
 msgstr ""
 
-#: src/elflint.c:4589
+#: src/elflint.c:4619
 #, c-format
 msgid "call frame search table must not be executable\n"
 msgstr ""
 
-#: src/elflint.c:4592
+#: src/elflint.c:4622
 #, c-format
 msgid "section [%2zu] '%s' must not be executable\n"
 msgstr ""
 
-#: src/elflint.c:4603
+#: src/elflint.c:4633
 #, c-format
 msgid "program header entry %d: file size greater than memory size\n"
 msgstr ""
 
-#: src/elflint.c:4610
+#: src/elflint.c:4640
 #, c-format
 msgid "program header entry %d: alignment not a power of 2\n"
 msgstr ""
 
-#: src/elflint.c:4613
+#: src/elflint.c:4643
 #, c-format
 msgid ""
 "program header entry %d: file offset and virtual address not module of "
 "alignment\n"
 msgstr ""
 
-#: src/elflint.c:4626
+#: src/elflint.c:4656
 #, c-format
 msgid ""
 "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
 "program header entry"
 msgstr ""
 
-#: src/elflint.c:4660
+#: src/elflint.c:4690
 #, c-format
 msgid "cannot read ELF header: %s\n"
 msgstr ""
 
-#: src/elflint.c:4686
+#: src/elflint.c:4716
 #, c-format
 msgid "text relocation flag set but not needed\n"
 msgstr ""
@@ -3100,7 +3155,7 @@
 msgid "Locate source of text relocations in FILEs (a.out by default)."
 msgstr ""
 
-#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83
+#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83
 #: src/strings.c:88 src/strip.c:95
 msgid "[FILE...]"
 msgstr "[ふぁいる...]"
@@ -3594,8 +3649,8 @@
 "警告: `%1$s の大きさが %3$s の %2$<PRIu64> から %5$s の %4$<PRIu64> に変更さ"
 "れました"
 
-#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527
-#: src/readelf.c:829 src/strip.c:589
+#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852
+#: src/strip.c:589
 #, c-format
 msgid "cannot determine number of sections: %s"
 msgstr "セクション数を決定できません: %s"
@@ -3833,7 +3888,7 @@
 msgid "cannot get header of 0th section: %s"
 msgstr "0番目のセクションのヘッダーを得られません: %s"
 
-#: src/ldgeneric.c:6930 src/unstrip.c:1893
+#: src/ldgeneric.c:6930 src/unstrip.c:1929
 #, c-format
 msgid "cannot update ELF header: %s"
 msgstr "ELF ヘッダーを更新できません: %s"
@@ -3900,43 +3955,43 @@
 msgid "default visibility set as local and global"
 msgstr "ローカルとグローバルに設定されたデフォルトの可視性"
 
-#: src/nm.c:65 src/strip.c:67
+#: src/nm.c:66 src/strip.c:67
 msgid "Output selection:"
 msgstr "出力選択:"
 
-#: src/nm.c:66
+#: src/nm.c:67
 msgid "Display debugger-only symbols"
 msgstr "デバッガー専用シンボルを表示"
 
-#: src/nm.c:67
+#: src/nm.c:68
 msgid "Display only defined symbols"
 msgstr "定義されたシンボルのみを表示"
 
-#: src/nm.c:70
+#: src/nm.c:71
 msgid "Display dynamic symbols instead of normal symbols"
 msgstr "通常シンボルの代わりに動的シンボルを表示"
 
-#: src/nm.c:71
+#: src/nm.c:72
 msgid "Display only external symbols"
 msgstr "外部シンボルのみを表示"
 
-#: src/nm.c:72
+#: src/nm.c:73
 msgid "Display only undefined symbols"
 msgstr "未定義シンボルのみを表示"
 
-#: src/nm.c:74
+#: src/nm.c:75
 msgid "Include index for symbols from archive members"
 msgstr "アーカイブメンバーからのシンボルの索引を含める"
 
-#: src/nm.c:76 src/size.c:57
+#: src/nm.c:77 src/size.c:57
 msgid "Output format:"
 msgstr "出力形式:"
 
-#: src/nm.c:78
+#: src/nm.c:79
 msgid "Print name of the input file before every symbol"
 msgstr "全てのシンボルの前に入力ファイル名を印刷"
 
-#: src/nm.c:81
+#: src/nm.c:82
 msgid ""
 "Use the output format FORMAT.  FORMAT can be `bsd', `sysv' or `posix'.  The "
 "default is `sysv'"
@@ -3944,73 +3999,73 @@
 "出力形式として FORMATを使う。FORMAT は `bsd'か、`sysv'、`posix' のどれか。省"
 "略値は `sysv'"
 
-#: src/nm.c:83
+#: src/nm.c:84
 msgid "Same as --format=bsd"
 msgstr "--format=bsd と同じ"
 
-#: src/nm.c:84
+#: src/nm.c:85
 msgid "Same as --format=posix"
 msgstr "--format=posix と同じ"
 
-#: src/nm.c:85 src/size.c:63
+#: src/nm.c:86 src/size.c:63
 msgid "Use RADIX for printing symbol values"
 msgstr "シンボル値を印刷するために RADIX を使う"
 
-#: src/nm.c:86
+#: src/nm.c:87
 #, fuzzy
 msgid "Mark special symbols"
 msgstr "弱いシンボルに印を点ける"
 
-#: src/nm.c:88
+#: src/nm.c:89
 msgid "Print size of defined symbols"
 msgstr "定義されたシンボルの印刷サイズ"
 
-#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72
+#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72
 msgid "Output options:"
 msgstr "出力オプション:"
 
-#: src/nm.c:91
+#: src/nm.c:92
 msgid "Sort symbols numerically by address"
 msgstr "シンボルをアドレスにより数値的に並べ替える"
 
-#: src/nm.c:93
+#: src/nm.c:94
 msgid "Do not sort the symbols"
 msgstr "シンボルを並べ替えない"
 
-#: src/nm.c:94
+#: src/nm.c:95
 msgid "Reverse the sense of the sort"
 msgstr "並べ替えの意味を逆にする"
 
-#: src/nm.c:97
+#: src/nm.c:98
 msgid "Decode low-level symbol names into source code names"
 msgstr ""
 
-#: src/nm.c:104
+#: src/nm.c:105
 msgid "List symbols from FILEs (a.out by default)."
 msgstr "ふぁいる からシンボルを表示 (デフォルトではa.out)。"
 
-#: src/nm.c:115 src/objdump.c:79
+#: src/nm.c:116 src/objdump.c:79
 #, fuzzy
 msgid "Output formatting"
 msgstr "出力形式:"
 
-#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127
+#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127
 #, fuzzy, c-format
 msgid "%s: INTERNAL ERROR %d (%s): %s"
 msgstr "%s: 内部エラー %d (%s-%s): %s"
 
-#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325
+#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325
 #: src/strip.c:2280
 #, c-format
 msgid "while closing '%s'"
 msgstr "'%s' を閉じている最中"
 
-#: src/nm.c:416 src/objdump.c:292 src/strip.c:391
+#: src/nm.c:417 src/objdump.c:292 src/strip.c:391
 #, c-format
 msgid "%s: File format not recognized"
 msgstr "%s: ファイル形式を認識できませんでした"
 
-#: src/nm.c:456
+#: src/nm.c:457
 #, fuzzy
 msgid ""
 "\n"
@@ -4019,42 +4074,42 @@
 "\n"
 "アーカイブ索引:"
 
-#: src/nm.c:465
+#: src/nm.c:466
 #, c-format
 msgid "invalid offset %zu for symbol %s"
 msgstr "シンボル %2$sの不正なオフセット %1$zu "
 
-#: src/nm.c:470
+#: src/nm.c:471
 #, c-format
 msgid "%s in %s\n"
 msgstr "%2$s の中の %1$s\n"
 
-#: src/nm.c:478
+#: src/nm.c:479
 #, c-format
 msgid "cannot reset archive offset to beginning"
 msgstr "アーカイブのオフセットを最初にリセットできません"
 
-#: src/nm.c:503 src/objdump.c:340
+#: src/nm.c:504 src/objdump.c:340
 #, c-format
 msgid "%s%s%s: file format not recognized"
 msgstr "%s%s%s: ファイル形式を認識できません"
 
-#: src/nm.c:715
+#: src/nm.c:719
 #, c-format
 msgid "cannot create search tree"
 msgstr "検索ツリーを生成できません"
 
-#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536
-#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579
-#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460
-#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239
-#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461
-#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520
+#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545
+#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667
+#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558
+#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347
+#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603
+#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520
 #, c-format
 msgid "cannot get section header string table index"
 msgstr "セクションヘッダー文字列テーブル索引が得られません"
 
-#: src/nm.c:781
+#: src/nm.c:787
 #, c-format
 msgid ""
 "\n"
@@ -4067,7 +4122,7 @@
 "%s からのシンボル:\n"
 "\n"
 
-#: src/nm.c:784
+#: src/nm.c:790
 #, c-format
 msgid ""
 "%*s%-*s %-*s Class  Type     %-*s %*s Section\n"
@@ -4076,22 +4131,22 @@
 "%*s%-*s %-*s クラス タイプ   %-*s %*s セクション\n"
 "\n"
 
-#: src/nm.c:1171
+#: src/nm.c:1232
 #, fuzzy, c-format
 msgid "%s: entry size in section %zd `%s' is not what we expect"
 msgstr "%s: セクションの項目の大きさ `%s' は予期したものとは異なります"
 
-#: src/nm.c:1176
+#: src/nm.c:1237
 #, fuzzy, c-format
 msgid "%s: size of section %zd `%s' is not multiple of entry size"
 msgstr "%s: セクション `%s' の大きさは項目の大きさの整数倍ではありません"
 
-#: src/nm.c:1434
+#: src/nm.c:1537
 #, c-format
 msgid "%s%s%s%s: Invalid operation"
 msgstr "%s%s%s%s: 不当な操作"
 
-#: src/nm.c:1491
+#: src/nm.c:1594
 #, c-format
 msgid "%s%s%s: no symbols"
 msgstr "%s%s%s: シンボルがありません"
@@ -4125,7 +4180,7 @@
 msgid "Show information from FILEs (a.out by default)."
 msgstr ""
 
-#: src/objdump.c:232 src/readelf.c:473
+#: src/objdump.c:232 src/readelf.c:479
 msgid "No operation specified.\n"
 msgstr "操作が指定されていません。\n"
 
@@ -4134,11 +4189,11 @@
 msgid "while close `%s'"
 msgstr ""
 
-#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072
+#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160
 msgid "INVALID SYMBOL"
 msgstr "不当なシンボル"
 
-#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108
+#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196
 msgid "INVALID SECTION"
 msgstr "不当なセクション"
 
@@ -4187,78 +4242,78 @@
 msgid "error while freeing sub-ELF descriptor: %s"
 msgstr ""
 
-#: src/readelf.c:71
+#: src/readelf.c:72
 #, fuzzy
 msgid "ELF input selection:"
 msgstr "出力選択:"
 
-#: src/readelf.c:73
+#: src/readelf.c:74
 msgid ""
 "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
 msgstr ""
 
-#: src/readelf.c:75
+#: src/readelf.c:76
 #, fuzzy
 msgid "ELF output selection:"
 msgstr "出力選択:"
 
-#: src/readelf.c:77
+#: src/readelf.c:78
 msgid "All these plus -p .strtab -p .dynstr -p .comment"
 msgstr ""
 
-#: src/readelf.c:78
+#: src/readelf.c:79
 msgid "Display the dynamic segment"
 msgstr "動的セグメントを表示"
 
-#: src/readelf.c:79
+#: src/readelf.c:80
 msgid "Display the ELF file header"
 msgstr "ELF ファイルヘッダーを表示"
 
-#: src/readelf.c:81
+#: src/readelf.c:82
 msgid "Display histogram of bucket list lengths"
 msgstr "バケットリスト長の柱状図を表示"
 
-#: src/readelf.c:82
+#: src/readelf.c:83
 msgid "Display the program headers"
 msgstr "プログラムヘッダーを表示"
 
-#: src/readelf.c:84
+#: src/readelf.c:85
 msgid "Display relocations"
 msgstr "リロケーションを表示"
 
-#: src/readelf.c:85
+#: src/readelf.c:86
 #, fuzzy
 msgid "Display the sections' headers"
 msgstr "セクションのヘッダーを表示"
 
-#: src/readelf.c:87
+#: src/readelf.c:88
 msgid "Display the symbol table"
 msgstr "シンボルテーブルを表示"
 
-#: src/readelf.c:88
+#: src/readelf.c:89
 msgid "Display versioning information"
 msgstr "バージョニング情報の表示"
 
-#: src/readelf.c:89
+#: src/readelf.c:90
 #, fuzzy
 msgid "Display the ELF notes"
 msgstr "コアノートを表示"
 
-#: src/readelf.c:91
+#: src/readelf.c:92
 #, fuzzy
 msgid "Display architecture specific information, if any"
 msgstr "(もしあれば)アーキテクチャー固有の情報を表示"
 
-#: src/readelf.c:93
+#: src/readelf.c:94
 msgid "Display sections for exception handling"
 msgstr "例外を取り扱うためのセクションを表示"
 
-#: src/readelf.c:95
+#: src/readelf.c:96
 #, fuzzy
 msgid "Additional output selection:"
 msgstr "出力選択:"
 
-#: src/readelf.c:97
+#: src/readelf.c:98
 #, fuzzy
 msgid ""
 "Display DWARF section content.  SECTION can be one of abbrev, aranges, "
@@ -4268,166 +4323,172 @@
 "DWARF セクションの内容を表示。SECTION は addrevか、aranges、frame、info、"
 "loc、ranges、pubnames、str、macinfo、exception のいずれかです"
 
-#: src/readelf.c:101
+#: src/readelf.c:102
 msgid "Dump the uninterpreted contents of SECTION, by number or name"
 msgstr "数字か名前で解釈できないセクションの内容をダンプする"
 
-#: src/readelf.c:103
+#: src/readelf.c:104
 msgid "Print string contents of sections"
 msgstr "セクションの文字列内容を印刷する"
 
-#: src/readelf.c:106
+#: src/readelf.c:107
 msgid "Display the symbol index of an archive"
 msgstr "アーカイブのシンボル索引を表示"
 
-#: src/readelf.c:108
+#: src/readelf.c:109
 msgid "Output control:"
 msgstr "出力制御:"
 
-#: src/readelf.c:110
+#: src/readelf.c:111
 msgid "Do not find symbol names for addresses in DWARF data"
 msgstr "DWARFデータ中のアドレスのためのシンボル名を探さない"
 
-#: src/readelf.c:112
+#: src/readelf.c:113
 #, fuzzy
 msgid ""
 "Display just offsets instead of resolving values to addresses in DWARF data"
 msgstr "DWARFデータ中のアドレスのためのシンボル名を探さない"
 
-#: src/readelf.c:114
+#: src/readelf.c:115
 msgid "Ignored for compatibility (lines always wide)"
 msgstr ""
 
-#: src/readelf.c:119
+#: src/readelf.c:117
+msgid ""
+"Show compression information for compressed sections (when used with -S); "
+"decompress section before dumping data (when used with -p or -x)"
+msgstr ""
+
+#: src/readelf.c:122
 msgid "Print information from ELF file in human-readable form."
 msgstr "ELF ファイルから人間が読める形で情報を印刷する。"
 
-#: src/readelf.c:441
+#: src/readelf.c:447
 #, c-format
 msgid "Unknown DWARF debug section `%s'.\n"
 msgstr "不明な DWARF デバッグセクション `%s'.\n"
 
-#: src/readelf.c:520 src/readelf.c:631
+#: src/readelf.c:529 src/readelf.c:640
 #, c-format
 msgid "cannot generate Elf descriptor: %s"
 msgstr "Elf 記述子を生成できません: %s"
 
-#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269
+#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347
 #, c-format
 msgid "cannot get section: %s"
 msgstr "セクションを得られません: %s"
 
-#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481
-#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543
-#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083
-#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508
-#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855
+#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623
+#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577
+#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118
+#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543
+#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891
 #, c-format
 msgid "cannot get section header: %s"
 msgstr "セクションヘッダーを得られません: %s"
 
-#: src/readelf.c:562
+#: src/readelf.c:571
 #, fuzzy, c-format
 msgid "cannot get section name"
 msgstr "セクションを得られません: %s"
 
-#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772
-#: src/readelf.c:7949
+#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880
+#: src/readelf.c:8057
 #, c-format
 msgid "cannot get %s content: %s"
 msgstr "%s の内容を得られません: %s"
 
-#: src/readelf.c:587
+#: src/readelf.c:596
 #, fuzzy, c-format
 msgid "cannot create temp file '%s'"
 msgstr "新しいファイル '%s' を生成できません: %s"
 
-#: src/readelf.c:596
+#: src/readelf.c:605
 #, fuzzy, c-format
 msgid "cannot write section data"
 msgstr "セクションデータを割り当てられません: %s"
 
-#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648
+#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657
 #, c-format
 msgid "error while closing Elf descriptor: %s"
 msgstr "Elf 記述子を閉じている時にエラー: %s"
 
-#: src/readelf.c:609
+#: src/readelf.c:618
 #, fuzzy, c-format
 msgid "error while rewinding file descriptor"
 msgstr "Elf 記述子を閉じている時にエラー: %s"
 
-#: src/readelf.c:643
+#: src/readelf.c:652
 #, c-format
 msgid "'%s' is not an archive, cannot print archive index"
 msgstr "'%s' はアーカイブではなく、アーカイブ索引を印刷できません"
 
-#: src/readelf.c:742
+#: src/readelf.c:751
 #, fuzzy, c-format
 msgid "No such section '%s' in '%s'"
 msgstr "セクション [%Zu] '%s' からデータが得られません: %s"
 
-#: src/readelf.c:769
+#: src/readelf.c:778
 #, c-format
 msgid "cannot stat input file"
 msgstr "入力ファイルを stat できません"
 
-#: src/readelf.c:771
+#: src/readelf.c:780
 #, c-format
 msgid "input file is empty"
 msgstr "入力ファイルが空です"
 
-#: src/readelf.c:773
+#: src/readelf.c:782
 #, c-format
 msgid "failed reading '%s': %s"
 msgstr "'%s' の読込みに失敗: %s"
 
-#: src/readelf.c:814
+#: src/readelf.c:837
 #, c-format
 msgid "cannot read ELF header: %s"
 msgstr "ELF ヘッダーが読めません: %s"
 
-#: src/readelf.c:822
+#: src/readelf.c:845
 #, c-format
 msgid "cannot create EBL handle"
 msgstr "EBL ヘッダーを生成できません"
 
-#: src/readelf.c:835
+#: src/readelf.c:858
 #, fuzzy, c-format
 msgid "cannot determine number of program headers: %s"
 msgstr "セクション数を決定できません: %s"
 
-#: src/readelf.c:921
+#: src/readelf.c:948
 msgid "NONE (None)"
 msgstr "なし (なし)"
 
-#: src/readelf.c:922
+#: src/readelf.c:949
 msgid "REL (Relocatable file)"
 msgstr "REL (リロケータブルファイル)"
 
-#: src/readelf.c:923
+#: src/readelf.c:950
 msgid "EXEC (Executable file)"
 msgstr "(EXEC (実行ファイル)"
 
-#: src/readelf.c:924
+#: src/readelf.c:951
 msgid "DYN (Shared object file)"
 msgstr "DYN (共用オブジェクトファイル)"
 
-#: src/readelf.c:925
+#: src/readelf.c:952
 msgid "CORE (Core file)"
 msgstr "CORE (コアファイル)"
 
-#: src/readelf.c:930
+#: src/readelf.c:957
 #, c-format
 msgid "OS Specific: (%x)\n"
 msgstr "OS 固有: (%x)\n"
 
-#: src/readelf.c:932
+#: src/readelf.c:959
 #, c-format
 msgid "Processor Specific: (%x)\n"
 msgstr "プロセッサー固有: (%x)\n"
 
-#: src/readelf.c:942
+#: src/readelf.c:969
 msgid ""
 "ELF Header:\n"
 "  Magic:  "
@@ -4435,7 +4496,7 @@
 "ELF ヘッダー:\n"
 " マジック: "
 
-#: src/readelf.c:946
+#: src/readelf.c:973
 #, c-format
 msgid ""
 "\n"
@@ -4444,117 +4505,117 @@
 "\n"
 "  クラス:                            %s\n"
 
-#: src/readelf.c:951
+#: src/readelf.c:978
 #, c-format
 msgid "  Data:                              %s\n"
 msgstr "  データ:                            %s\n"
 
-#: src/readelf.c:957
+#: src/readelf.c:984
 #, c-format
 msgid "  Ident Version:                     %hhd %s\n"
 msgstr "  識別バージョン:                    %hhd %s\n"
 
-#: src/readelf.c:959 src/readelf.c:976
+#: src/readelf.c:986 src/readelf.c:1003
 msgid "(current)"
 msgstr "(現在)"
 
-#: src/readelf.c:963
+#: src/readelf.c:990
 #, c-format
 msgid "  OS/ABI:                            %s\n"
 msgstr "  OS/ABI:                            %s\n"
 
-#: src/readelf.c:966
+#: src/readelf.c:993
 #, c-format
 msgid "  ABI Version:                       %hhd\n"
 msgstr "  ABI バージョン:                    %hhd\n"
 
-#: src/readelf.c:969
+#: src/readelf.c:996
 msgid "  Type:                              "
 msgstr "  タイプ:                            "
 
-#: src/readelf.c:972
+#: src/readelf.c:999
 #, c-format
 msgid "  Machine:                           %s\n"
 msgstr "  マシン :                           %s\n"
 
-#: src/readelf.c:974
+#: src/readelf.c:1001
 #, c-format
 msgid "  Version:                           %d %s\n"
 msgstr "  バージョン:                        %d %s\n"
 
-#: src/readelf.c:978
+#: src/readelf.c:1005
 #, c-format
 msgid "  Entry point address:               %#<PRIx64>\n"
 msgstr "  入口点アドレス     :               %#<PRIx64>\n"
 
-#: src/readelf.c:981
+#: src/readelf.c:1008
 #, c-format
 msgid "  Start of program headers:          %<PRId64> %s\n"
 msgstr "  プログラムヘッダーの開始:          %<PRId64> %s\n"
 
-#: src/readelf.c:982 src/readelf.c:985
+#: src/readelf.c:1009 src/readelf.c:1012
 msgid "(bytes into file)"
 msgstr "(ファイルへのバイト数)"
 
-#: src/readelf.c:984
+#: src/readelf.c:1011
 #, c-format
 msgid "  Start of section headers:          %<PRId64> %s\n"
 msgstr "  セクションヘッダーの開始:          %<PRId64> %s\n"
 
-#: src/readelf.c:987
+#: src/readelf.c:1014
 #, c-format
 msgid "  Flags:                             %s\n"
 msgstr "  フラグ:                            %s\n"
 
-#: src/readelf.c:990
+#: src/readelf.c:1017
 #, c-format
 msgid "  Size of this header:               %<PRId16> %s\n"
 msgstr "  このヘッダーの大きさ:              %<PRId16> %s\n"
 
-#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011
+#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038
 msgid "(bytes)"
 msgstr "(バイト)"
 
-#: src/readelf.c:993
+#: src/readelf.c:1020
 #, c-format
 msgid "  Size of program header entries:    %<PRId16> %s\n"
 msgstr "  プログラムヘッダー項目の大きさ:%<PRId16> %s\n"
 
-#: src/readelf.c:996
+#: src/readelf.c:1023
 #, fuzzy, c-format
 msgid "  Number of program headers entries: %<PRId16>"
 msgstr "  プログラムヘッダー項目の数 : %<PRId16>\n"
 
-#: src/readelf.c:1003
+#: src/readelf.c:1030
 #, fuzzy, c-format
 msgid " (%<PRIu32> in [0].sh_info)"
 msgstr "([0].sh_link の %<PRIu32>)"
 
-#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037
+#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064
 msgid " ([0] not available)"
 msgstr "([0]は使えません)"
 
-#: src/readelf.c:1010
+#: src/readelf.c:1037
 #, c-format
 msgid "  Size of section header entries:    %<PRId16> %s\n"
 msgstr "  セクションヘッダー項目の大きさ:%<PRId16> %s\n"
 
-#: src/readelf.c:1013
+#: src/readelf.c:1040
 #, c-format
 msgid "  Number of section headers entries: %<PRId16>"
 msgstr "  セクションヘッダー項目の数 : %<PRId16>"
 
-#: src/readelf.c:1020
+#: src/readelf.c:1047
 #, c-format
 msgid " (%<PRIu32> in [0].sh_size)"
 msgstr " ([0].sh_size の %<PRIu32>)"
 
-#: src/readelf.c:1033
+#: src/readelf.c:1060
 #, c-format
 msgid " (%<PRIu32> in [0].sh_link)"
 msgstr "([0].sh_link の %<PRIu32>)"
 
-#: src/readelf.c:1041
+#: src/readelf.c:1068
 #, c-format
 msgid ""
 "  Section header string table index: XINDEX%s\n"
@@ -4563,7 +4624,7 @@
 "  セクションヘッダー文字列テーブル索引: XINDEX%s\n"
 "\n"
 
-#: src/readelf.c:1045
+#: src/readelf.c:1072
 #, c-format
 msgid ""
 "  Section header string table index: %<PRId16>\n"
@@ -4572,7 +4633,7 @@
 "  セクションヘッダー文字列テーブル索引: %<PRId16>\n"
 "\n"
 
-#: src/readelf.c:1077
+#: src/readelf.c:1115
 #, c-format
 msgid ""
 "There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4581,11 +4642,11 @@
 "オフセット %2$#<PRIx64> から始まる %1$d 個のセクションヘッダーがあります:\n"
 "\n"
 
-#: src/readelf.c:1087
+#: src/readelf.c:1125
 msgid "Section Headers:"
 msgstr "セクションヘッダー:"
 
-#: src/readelf.c:1090
+#: src/readelf.c:1128
 msgid ""
 "[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk "
 "Inf Al"
@@ -4593,7 +4654,7 @@
 "[番] 名前                 タイプ       アドレス オフセ 大きさ ES フラグLk "
 "Inf Al"
 
-#: src/readelf.c:1092
+#: src/readelf.c:1130
 msgid ""
 "[Nr] Name                 Type         Addr             Off      Size     ES "
 "Flags Lk Inf Al"
@@ -4601,17 +4662,35 @@
 "[番] 名前                 タイプ       アドレス         オフセ   大きさ   ES "
 "フラグLk Inf Al"
 
-#: src/readelf.c:1164
+#: src/readelf.c:1135
+msgid "     [Compression  Size   Al]"
+msgstr ""
+
+#: src/readelf.c:1137
+msgid "     [Compression  Size     Al]"
+msgstr ""
+
+#: src/readelf.c:1213
+#, fuzzy, c-format
+msgid "bad compression header for section %zd: %s"
+msgstr "セクションヘッダー文字列セクションを生成できません: %s"
+
+#: src/readelf.c:1224
+#, fuzzy, c-format
+msgid "bad gnu compressed size for section %zd: %s"
+msgstr "セクションからデータを得られません %d: %s"
+
+#: src/readelf.c:1242
 msgid "Program Headers:"
 msgstr "プログラムヘッダー:"
 
-#: src/readelf.c:1166
+#: src/readelf.c:1244
 msgid ""
 "  Type           Offset   VirtAddr   PhysAddr   FileSiz  MemSiz   Flg Align"
 msgstr ""
 "  タイプ         オフセ   仮アドレス 物アドレス ファイ量 メモ量   Flg 調整 "
 
-#: src/readelf.c:1169
+#: src/readelf.c:1247
 msgid ""
 "  Type           Offset   VirtAddr           PhysAddr           FileSiz  "
 "MemSiz   Flg Align"
@@ -4619,12 +4698,12 @@
 "  タイプ         オフセ   仮想アドレス       物理アドレス      ファイル量メモ"
 "量   Flg 調整 "
 
-#: src/readelf.c:1226
+#: src/readelf.c:1304
 #, c-format
 msgid "\t[Requesting program interpreter: %s]\n"
 msgstr "\t[プログラム割込みを要求: %s]\n"
 
-#: src/readelf.c:1247
+#: src/readelf.c:1325
 msgid ""
 "\n"
 " Section to Segment mapping:\n"
@@ -4634,12 +4713,12 @@
 " セクションからセグメントへのマッビング:\n"
 "  セグメント セクション..."
 
-#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964
+#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999
 #, c-format
 msgid "cannot get program header: %s"
 msgstr "プログラムヘッダーを得られません: %s"
 
-#: src/readelf.c:1401
+#: src/readelf.c:1479
 #, c-format
 msgid ""
 "\n"
@@ -4652,7 +4731,7 @@
 "署名 '%3$s' を持つ COMDAT セクショングループ [%1$2zu] '%2$s' には %4$zu 個の"
 "項目があります:\n"
 
-#: src/readelf.c:1406
+#: src/readelf.c:1484
 #, c-format
 msgid ""
 "\n"
@@ -4665,21 +4744,25 @@
 "署名 '%3$s' を持つセクショングループ [%1$2zu] '%2$s' には %4$zu 個の項目があ"
 "ります:\n"
 
-#: src/readelf.c:1414
+#: src/readelf.c:1492
 msgid "<INVALID SYMBOL>"
 msgstr "<不当なシンボル>"
 
-#: src/readelf.c:1428
+#: src/readelf.c:1506
 msgid "<INVALID SECTION>"
 msgstr "<不当なセクション>"
 
-#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542
-#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608
+#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317
+msgid "Couldn't uncompress section"
+msgstr ""
+
+#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640
+#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716
 #, fuzzy, c-format
 msgid "invalid sh_link value in section %zu"
 msgstr "不当な .debug_line セクション"
 
-#: src/readelf.c:1588
+#: src/readelf.c:1676
 #, c-format
 msgid ""
 "\n"
@@ -4695,36 +4778,36 @@
 " アドレス: %#0*<PRIx64>  オフセット: %#08<PRIx64>  セクションへのリンク: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:1598
+#: src/readelf.c:1686
 msgid "  Type              Value\n"
 msgstr "  タイプ            値\n"
 
-#: src/readelf.c:1622
+#: src/readelf.c:1710
 #, c-format
 msgid "Shared library: [%s]\n"
 msgstr "共用ライブラリー: [%s]\n"
 
-#: src/readelf.c:1627
+#: src/readelf.c:1715
 #, c-format
 msgid "Library soname: [%s]\n"
 msgstr "ライブラリー so 名: [%s]\n"
 
-#: src/readelf.c:1632
+#: src/readelf.c:1720
 #, c-format
 msgid "Library rpath: [%s]\n"
 msgstr "ライブラリー rパス: [%s]\n"
 
-#: src/readelf.c:1637
+#: src/readelf.c:1725
 #, c-format
 msgid "Library runpath: [%s]\n"
 msgstr "ライブラリー run パス: [%s]\n"
 
-#: src/readelf.c:1657
+#: src/readelf.c:1745
 #, c-format
 msgid "%<PRId64> (bytes)\n"
 msgstr "%<PRId64> (バイト)\n"
 
-#: src/readelf.c:1770 src/readelf.c:1960
+#: src/readelf.c:1858 src/readelf.c:2048
 #, c-format
 msgid ""
 "\n"
@@ -4733,7 +4816,7 @@
 "\n"
 "オフセット %#0<PRIx64> に不当なシンボルテーブル\n"
 
-#: src/readelf.c:1788 src/readelf.c:1978
+#: src/readelf.c:1876 src/readelf.c:2066
 #, c-format
 msgid ""
 "\n"
@@ -4748,7 +4831,7 @@
 "オフセット %5$#0<PRIx64> のセクション [%3$2u] '%4$s' 用のリロケーションセク"
 "ション [%1$2zu] '%2$s' には %6$d 個の項目があります:\n"
 
-#: src/readelf.c:1803 src/readelf.c:1993
+#: src/readelf.c:1891 src/readelf.c:2081
 #, c-format
 msgid ""
 "\n"
@@ -4761,29 +4844,29 @@
 "オフセット %3$#0<PRIx64> のリロケーションセクション [%1$2u] '%2$s' には %4$d "
 "個の項目があります:\n"
 
-#: src/readelf.c:1813
+#: src/readelf.c:1901
 msgid "  Offset      Type                 Value       Name\n"
 msgstr "  オフセット  タイプ               値          名前\n"
 
-#: src/readelf.c:1815
+#: src/readelf.c:1903
 msgid "  Offset              Type                 Value               Name\n"
 msgstr "  オフセット          タイプ               値                  名前\n"
 
-#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913
-#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085
-#: src/readelf.c:2107 src/readelf.c:2120
+#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001
+#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173
+#: src/readelf.c:2195 src/readelf.c:2208
 msgid "<INVALID RELOC>"
 msgstr "<不当なRELOC>"
 
-#: src/readelf.c:2003
+#: src/readelf.c:2091
 msgid "  Offset      Type            Value       Addend Name\n"
 msgstr "  オフセット  タイプ          値          付加名\n"
 
-#: src/readelf.c:2005
+#: src/readelf.c:2093
 msgid "  Offset              Type            Value               Addend Name\n"
 msgstr "  オフセット          タイプ          値                  付加名\n"
 
-#: src/readelf.c:2216
+#: src/readelf.c:2314
 #, c-format
 msgid ""
 "\n"
@@ -4795,39 +4878,39 @@
 "\n"
 "シンボルテーブル [%2u] '%s' には %u 個の項目があります:\n"
 
-#: src/readelf.c:2221
+#: src/readelf.c:2319
 #, c-format
 msgid " %lu local symbol  String table: [%2u] '%s'\n"
 msgid_plural " %lu local symbols  String table: [%2u] '%s'\n"
 msgstr[0] " %lu ローカルシンボル文字列テーブル: [%2u] '%s'\n"
 
-#: src/readelf.c:2229
+#: src/readelf.c:2327
 msgid "  Num:    Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  数 :    値      大き タイプ  Bind   Vis          Ndx 名前\n"
 
-#: src/readelf.c:2231
+#: src/readelf.c:2329
 msgid "  Num:            Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  数 :            値      大き タイプ  Bind   Vis          Ndx 名前\n"
 
-#: src/readelf.c:2251
+#: src/readelf.c:2349
 #, c-format
 msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 
-#: src/readelf.c:2339
+#: src/readelf.c:2437
 #, c-format
 msgid "bad dynamic symbol"
 msgstr "不正な動的シンボル"
 
-#: src/readelf.c:2421
+#: src/readelf.c:2519
 msgid "none"
 msgstr "なし"
 
-#: src/readelf.c:2438
+#: src/readelf.c:2536
 msgid "| <unknown>"
 msgstr "| <不明>"
 
-#: src/readelf.c:2469
+#: src/readelf.c:2567
 #, c-format
 msgid ""
 "\n"
@@ -4843,17 +4926,17 @@
 " アドレス: %#0*<PRIx64>  オフセット: %#08<PRIx64>  セクションへのリンク: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:2490
+#: src/readelf.c:2588
 #, c-format
 msgid "  %#06x: Version: %hu  File: %s  Cnt: %hu\n"
 msgstr "  %#06x: バージョン: %hu  ファイル: %s  数: %hu\n"
 
-#: src/readelf.c:2503
+#: src/readelf.c:2601
 #, c-format
 msgid "  %#06x: Name: %s  Flags: %s  Version: %hu\n"
 msgstr "  %#06x: 名前: %s  フラグ: %s  バージョン: %hu\n"
 
-#: src/readelf.c:2546
+#: src/readelf.c:2644
 #, c-format
 msgid ""
 "\n"
@@ -4869,17 +4952,17 @@
 " アドレス: %#0*<PRIx64>  オフセット: %#08<PRIx64>  セクションへのリンク: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:2574
+#: src/readelf.c:2672
 #, c-format
 msgid "  %#06x: Version: %hd  Flags: %s  Index: %hd  Cnt: %hd  Name: %s\n"
 msgstr "  %#06x: バージョン: %hd  フラグ: %s  索引: %hd  数: %hd  名前: %s\n"
 
-#: src/readelf.c:2589
+#: src/readelf.c:2687
 #, c-format
 msgid "  %#06x: Parent %d: %s\n"
 msgstr "  %#06x: 親 %d: %s\n"
 
-#: src/readelf.c:2850
+#: src/readelf.c:2948
 #, c-format
 msgid ""
 "\n"
@@ -4895,15 +4978,15 @@
 " アドレス: %#0*<PRIx64>  オフセット: %#08<PRIx64>  セクションへのリンク: "
 "[%2u] '%s'"
 
-#: src/readelf.c:2878
+#: src/readelf.c:2976
 msgid "   0 *local*                     "
 msgstr "   0 *ローカル*                  "
 
-#: src/readelf.c:2883
+#: src/readelf.c:2981
 msgid "   1 *global*                    "
 msgstr "   1 *グローバル*                "
 
-#: src/readelf.c:2925
+#: src/readelf.c:3023
 #, c-format
 msgid ""
 "\n"
@@ -4921,22 +5004,22 @@
 " アドレス: %#0*<PRIx64>  オフセット: %#08<PRIx64>  セクションへのリンク: "
 "[%2u] '%s'\n"
 
-#: src/readelf.c:2947
+#: src/readelf.c:3045
 #, fuzzy, no-c-format
 msgid " Length  Number  % of total  Coverage\n"
 msgstr " 長さ    数      全体の%     範囲    \n"
 
-#: src/readelf.c:2949
+#: src/readelf.c:3047
 #, c-format
 msgid "      0  %6<PRIu32>      %5.1f%%\n"
 msgstr "      0  %6<PRIu32>      %5.1f%%\n"
 
-#: src/readelf.c:2956
+#: src/readelf.c:3054
 #, c-format
 msgid "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 msgstr "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 
-#: src/readelf.c:2969
+#: src/readelf.c:3067
 #, fuzzy, c-format
 msgid ""
 " Average number of tests:   successful lookup: %f\n"
@@ -4945,27 +5028,27 @@
 " テストの平均数: 検索成功: %f\n"
 "                 検索失敗: %f\n"
 
-#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099
+#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197
 #, c-format
 msgid "cannot get data for section %d: %s"
 msgstr "セクションからデータを得られません %d: %s"
 
-#: src/readelf.c:2995
+#: src/readelf.c:3093
 #, fuzzy, c-format
 msgid "invalid data in sysv.hash section %d"
 msgstr "セクション [%zu] '%s' の不当なデータ"
 
-#: src/readelf.c:3050
+#: src/readelf.c:3148
 #, fuzzy, c-format
 msgid "invalid data in sysv.hash64 section %d"
 msgstr "セクション [%zu] '%s' の不当なデータ"
 
-#: src/readelf.c:3108
+#: src/readelf.c:3206
 #, fuzzy, c-format
 msgid "invalid data in gnu.hash section %d"
 msgstr "セクション [%zu] '%s' の不当なデータ"
 
-#: src/readelf.c:3175
+#: src/readelf.c:3273
 #, c-format
 msgid ""
 " Symbol Bias: %u\n"
@@ -4975,7 +5058,7 @@
 " ビットマスクの大きさ: %zu バイト  %<PRIuFAST32>%% ビット設定 第2ハッシュシフ"
 "ト: %u\n"
 
-#: src/readelf.c:3250
+#: src/readelf.c:3358
 #, c-format
 msgid ""
 "\n"
@@ -4988,7 +5071,7 @@
 "オフセット %3$#0<PRIx64> のライブラリー一覧セクション [%1$2zu] '%2$s' には "
 "%4$d 個の項目があります:\n"
 
-#: src/readelf.c:3264
+#: src/readelf.c:3372
 msgid ""
 "       Library                       Time Stamp          Checksum Version "
 "Flags"
@@ -4996,7 +5079,7 @@
 "       ライブラリー                  タイムスタンプ      チェックサム バー"
 "ジョン フラグ"
 
-#: src/readelf.c:3314
+#: src/readelf.c:3422
 #, c-format
 msgid ""
 "\n"
@@ -5007,140 +5090,140 @@
 "オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのオブジェクト属性セクション "
 "[%1$2zu] '%2$s':\n"
 
-#: src/readelf.c:3331
+#: src/readelf.c:3439
 msgid "  Owner          Size\n"
 msgstr "  所有者         大きさ\n"
 
-#: src/readelf.c:3360
+#: src/readelf.c:3468
 #, c-format
 msgid "  %-13s  %4<PRIu32>\n"
 msgstr "  %-13s  %4<PRIu32>\n"
 
-#: src/readelf.c:3399
+#: src/readelf.c:3507
 #, c-format
 msgid "    %-4u %12<PRIu32>\n"
 msgstr "    %-4u %12<PRIu32>\n"
 
-#: src/readelf.c:3404
+#: src/readelf.c:3512
 #, c-format
 msgid "    File: %11<PRIu32>\n"
 msgstr "    ファイル: %11<PRIu32>\n"
 
-#: src/readelf.c:3453
+#: src/readelf.c:3561
 #, c-format
 msgid "      %s: %<PRId64>, %s\n"
 msgstr "      %s: %<PRId64>、%s\n"
 
-#: src/readelf.c:3456
+#: src/readelf.c:3564
 #, c-format
 msgid "      %s: %<PRId64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:3459
+#: src/readelf.c:3567
 #, c-format
 msgid "      %s: %s\n"
 msgstr "      %s: %s\n"
 
-#: src/readelf.c:3469
+#: src/readelf.c:3577
 #, c-format
 msgid "      %u: %<PRId64>\n"
 msgstr "      %u: %<PRId64>\n"
 
-#: src/readelf.c:3472
+#: src/readelf.c:3580
 #, c-format
 msgid "      %u: %s\n"
 msgstr "      %u: %s\n"
 
-#: src/readelf.c:3517
+#: src/readelf.c:3625
 #, c-format
 msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3520
+#: src/readelf.c:3628
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3525
+#: src/readelf.c:3633
 #, c-format
 msgid "%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3528
+#: src/readelf.c:3636
 #, c-format
 msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3534
+#: src/readelf.c:3642
 #, c-format
 msgid "%s+%#<PRIx64> <%s>"
 msgstr "%s+%#<PRIx64> <%s>"
 
-#: src/readelf.c:3537
+#: src/readelf.c:3645
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s>"
 msgstr "%s+%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3541
+#: src/readelf.c:3649
 #, c-format
 msgid "%#<PRIx64> <%s>"
 msgstr "%#<PRIx64> <%s>"
 
-#: src/readelf.c:3544
+#: src/readelf.c:3652
 #, c-format
 msgid "%#0*<PRIx64> <%s>"
 msgstr "%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3549
+#: src/readelf.c:3657
 #, c-format
 msgid "%s+%#<PRIx64>"
 msgstr "%s+%#<PRIx64>"
 
-#: src/readelf.c:3552
+#: src/readelf.c:3660
 #, c-format
 msgid "%s+%#0*<PRIx64>"
 msgstr "%s+%#0*<PRIx64>"
 
-#: src/readelf.c:3930
+#: src/readelf.c:4038
 msgid "empty block"
 msgstr "空ブロック"
 
-#: src/readelf.c:3933
+#: src/readelf.c:4041
 #, c-format
 msgid "%zu byte block:"
 msgstr "%zu バイトのブロック:"
 
-#: src/readelf.c:4330
+#: src/readelf.c:4438
 #, c-format
 msgid "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 msgstr "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 
-#: src/readelf.c:4387
+#: src/readelf.c:4495
 #, c-format
 msgid "%s %#<PRIx64> used with different address sizes"
 msgstr ""
 
-#: src/readelf.c:4394
+#: src/readelf.c:4502
 #, c-format
 msgid "%s %#<PRIx64> used with different offset sizes"
 msgstr ""
 
-#: src/readelf.c:4401
+#: src/readelf.c:4509
 #, c-format
 msgid "%s %#<PRIx64> used with different base addresses"
 msgstr ""
 
-#: src/readelf.c:4490
+#: src/readelf.c:4598
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE IN REST OF SECTION>\n"
 msgstr ""
 
-#: src/readelf.c:4498
+#: src/readelf.c:4606
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
 msgstr ""
 
-#: src/readelf.c:4524
+#: src/readelf.c:4632
 #, c-format
 msgid ""
 "\n"
@@ -5151,7 +5234,7 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
 " [ コード]\n"
 
-#: src/readelf.c:4532
+#: src/readelf.c:4640
 #, c-format
 msgid ""
 "\n"
@@ -5160,30 +5243,30 @@
 "\n"
 "オフセット %<PRIu64> の略語セクション:\n"
 
-#: src/readelf.c:4545
+#: src/readelf.c:4653
 #, c-format
 msgid " *** error while reading abbreviation: %s\n"
 msgstr " *** 略語を読んでいる間にエラー: %s\n"
 
-#: src/readelf.c:4561
+#: src/readelf.c:4669
 #, c-format
 msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
 msgstr " [%5u] オフセット: %<PRId64>、子: %s、タグ: %s\n"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "yes"
 msgstr "はい"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "no"
 msgstr "いいえ"
 
-#: src/readelf.c:4598 src/readelf.c:4671
+#: src/readelf.c:4706 src/readelf.c:4779
 #, c-format
 msgid "cannot get .debug_aranges content: %s"
 msgstr ".debug_aragnes の内容を得られません: %s"
 
-#: src/readelf.c:4613
+#: src/readelf.c:4721
 #, c-format
 msgid ""
 "\n"
@@ -5196,20 +5279,20 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
 "目があります:\n"
 
-#: src/readelf.c:4644
+#: src/readelf.c:4752
 #, c-format
 msgid " [%*zu] ???\n"
 msgstr " [%*zu] ???\n"
 
-#: src/readelf.c:4646
+#: src/readelf.c:4754
 #, c-format
 msgid ""
 " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
 msgstr ""
 " [%*zu] 開始: %0#*<PRIx64>、長さ: %5<PRIu64>、CU DIE オフセット: %6<PRId64>\n"
 
-#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360
-#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601
+#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468
+#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709
 #, c-format
 msgid ""
 "\n"
@@ -5218,7 +5301,7 @@
 "\n"
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
 
-#: src/readelf.c:4689 src/readelf.c:6386
+#: src/readelf.c:4797 src/readelf.c:6494
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5227,113 +5310,113 @@
 "\n"
 "オフセット %Zu のテーブル:\n"
 
-#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397
+#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505
 #, c-format
 msgid "invalid data in section [%zu] '%s'"
 msgstr "セクション [%zu] '%s' の不当なデータ"
 
-#: src/readelf.c:4709
+#: src/readelf.c:4817
 #, fuzzy, c-format
 msgid ""
 "\n"
 " Length:        %6<PRIu64>\n"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:4721
+#: src/readelf.c:4829
 #, fuzzy, c-format
 msgid " DWARF version: %6<PRIuFAST16>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4725
+#: src/readelf.c:4833
 #, c-format
 msgid "unsupported aranges version"
 msgstr ""
 
-#: src/readelf.c:4736
+#: src/readelf.c:4844
 #, fuzzy, c-format
 msgid " CU offset:     %6<PRIx64>\n"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:4742
+#: src/readelf.c:4850
 #, fuzzy, c-format
 msgid " Address size:  %6<PRIu64>\n"
 msgstr " (終了オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:4746
+#: src/readelf.c:4854
 #, fuzzy, c-format
 msgid "unsupported address size"
 msgstr "アドレス値ではありません"
 
-#: src/readelf.c:4751
+#: src/readelf.c:4859
 #, fuzzy, c-format
 msgid ""
 " Segment size:  %6<PRIu64>\n"
 "\n"
 msgstr " ファイルを %<PRIu64> に設定する\n"
 
-#: src/readelf.c:4755
+#: src/readelf.c:4863
 #, c-format
 msgid "unsupported segment size"
 msgstr ""
 
-#: src/readelf.c:4795
+#: src/readelf.c:4903
 #, fuzzy, c-format
 msgid "   %s..%s (%<PRIx64>)\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:4798
+#: src/readelf.c:4906
 #, fuzzy, c-format
 msgid "   %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4807
+#: src/readelf.c:4915
 #, c-format
 msgid "   %zu padding bytes\n"
 msgstr ""
 
-#: src/readelf.c:4825
+#: src/readelf.c:4933
 #, c-format
 msgid "cannot get .debug_ranges content: %s"
 msgstr ".degub_ranges の内容を得られません: %s"
 
-#: src/readelf.c:4855 src/readelf.c:6919
+#: src/readelf.c:4963 src/readelf.c:7027
 #, c-format
 msgid " [%6tx]  <INVALID DATA>\n"
 msgstr " [%6tx]  <不当なデータ>\n"
 
-#: src/readelf.c:4877 src/readelf.c:6941
+#: src/readelf.c:4985 src/readelf.c:7049
 #, c-format
 msgid " [%6tx]  base address %s\n"
 msgstr " [%6tx]  ベースアドレス %s\n"
 
-#: src/readelf.c:4884 src/readelf.c:6948
+#: src/readelf.c:4992 src/readelf.c:7056
 #, fuzzy, c-format
 msgid " [%6tx]  empty list\n"
 msgstr ""
 "\n"
 " [%6tx] ゼロ終端\n"
 
-#: src/readelf.c:4895
+#: src/readelf.c:5003
 #, c-format
 msgid " [%6tx]  %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4897
+#: src/readelf.c:5005
 #, c-format
 msgid "           %s..%s\n"
 msgstr "           %s..%s\n"
 
-#: src/readelf.c:5076
+#: src/readelf.c:5184
 #, fuzzy
 msgid "         <INVALID DATA>\n"
 msgstr " [%6tx]  <不当なデータ>\n"
 
-#: src/readelf.c:5385
+#: src/readelf.c:5493
 #, fuzzy, c-format
 msgid "cannot get ELF: %s"
 msgstr "次の DIE を得られません: %s"
 
-#: src/readelf.c:5402
+#: src/readelf.c:5510
 #, c-format
 msgid ""
 "\n"
@@ -5342,7 +5425,7 @@
 "\n"
 "オフセット %3$#<PRIx64> の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n"
 
-#: src/readelf.c:5452
+#: src/readelf.c:5560
 #, c-format
 msgid ""
 "\n"
@@ -5351,50 +5434,50 @@
 "\n"
 " [%6tx] ゼロ終端\n"
 
-#: src/readelf.c:5545 src/readelf.c:5700
+#: src/readelf.c:5653 src/readelf.c:5808
 #, fuzzy, c-format
 msgid "invalid augmentation length"
 msgstr "不当な拡大エンコード"
 
-#: src/readelf.c:5560
+#: src/readelf.c:5668
 msgid "FDE address encoding: "
 msgstr "FDE アドレスエンコード"
 
-#: src/readelf.c:5566
+#: src/readelf.c:5674
 msgid "LSDA pointer encoding: "
 msgstr "LSDA ポインターエンコード:"
 
-#: src/readelf.c:5677
+#: src/readelf.c:5785
 #, c-format
 msgid " (offset: %#<PRIx64>)"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:5684
+#: src/readelf.c:5792
 #, c-format
 msgid " (end offset: %#<PRIx64>)"
 msgstr " (終了オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:5721
+#: src/readelf.c:5829
 #, c-format
 msgid "   %-26sLSDA pointer: %#<PRIx64>\n"
 msgstr "   %-26sLSDA ポインター: %#<PRIx64>\n"
 
-#: src/readelf.c:5776
+#: src/readelf.c:5884
 #, c-format
 msgid "cannot get attribute code: %s"
 msgstr "属性コードを得られません: %s"
 
-#: src/readelf.c:5785
+#: src/readelf.c:5893
 #, c-format
 msgid "cannot get attribute form: %s"
 msgstr "属性様式を得られません: %s"
 
-#: src/readelf.c:5800
+#: src/readelf.c:5908
 #, c-format
 msgid "cannot get attribute value: %s"
 msgstr "属性値を得られません: %s"
 
-#: src/readelf.c:6099
+#: src/readelf.c:6207
 #, c-format
 msgid ""
 "\n"
@@ -5405,7 +5488,7 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
 " [オフセット]\n"
 
-#: src/readelf.c:6131
+#: src/readelf.c:6239
 #, fuzzy, c-format
 msgid ""
 " Type unit at offset %<PRIu64>:\n"
@@ -5417,7 +5500,7 @@
 " バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
 "きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
 
-#: src/readelf.c:6140
+#: src/readelf.c:6248
 #, c-format
 msgid ""
 " Compilation unit at offset %<PRIu64>:\n"
@@ -5428,35 +5511,35 @@
 " バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
 "きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
 
-#: src/readelf.c:6165
+#: src/readelf.c:6273
 #, c-format
 msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
 "セクション '%2$s' の オフセット %1$<PRIu64> の DIE を得られません: %3$s"
 
-#: src/readelf.c:6179
+#: src/readelf.c:6287
 #, c-format
 msgid "cannot get DIE offset: %s"
 msgstr "DIE オフセットを得られません: %s"
 
-#: src/readelf.c:6188
+#: src/readelf.c:6296
 #, c-format
 msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
 "セクション '%2$s' 中のオフセット %1$<PRIu64> の DIE のタグを得られません: "
 "%3$s"
 
-#: src/readelf.c:6220
+#: src/readelf.c:6328
 #, c-format
 msgid "cannot get next DIE: %s\n"
 msgstr "次の DIE を得られません: %s\n"
 
-#: src/readelf.c:6228
+#: src/readelf.c:6336
 #, c-format
 msgid "cannot get next DIE: %s"
 msgstr "次の DIE を得られません: %s"
 
-#: src/readelf.c:6264
+#: src/readelf.c:6372
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5466,12 +5549,12 @@
 "\n"
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
 
-#: src/readelf.c:6373
+#: src/readelf.c:6481
 #, c-format
 msgid "cannot get line data section data: %s"
 msgstr "ラインデータセクションデータを得られません: %s"
 
-#: src/readelf.c:6443
+#: src/readelf.c:6551
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5499,18 +5582,18 @@
 "\n"
 "命令コード:\n"
 
-#: src/readelf.c:6464
+#: src/readelf.c:6572
 #, c-format
 msgid "invalid data at offset %tu in section [%zu] '%s'"
 msgstr "セクション [%2$zu] '%3$s' 中のオフセット %1$tu に不当なデータ"
 
-#: src/readelf.c:6479
+#: src/readelf.c:6587
 #, c-format
 msgid "  [%*<PRIuFAST8>]  %hhu argument\n"
 msgid_plural "  [%*<PRIuFAST8>]  %hhu arguments\n"
 msgstr[0] "  [%*<PRIuFAST8>]  %hhu パラメーター\n"
 
-#: src/readelf.c:6487
+#: src/readelf.c:6595
 msgid ""
 "\n"
 "Directory table:"
@@ -5518,7 +5601,7 @@
 "\n"
 "ディレクトリーテーブル:"
 
-#: src/readelf.c:6503
+#: src/readelf.c:6611
 msgid ""
 "\n"
 "File name table:\n"
@@ -5528,7 +5611,7 @@
 "ファイル名テーブル:\n"
 " Entry Dir   時刻     大きさ    名前"
 
-#: src/readelf.c:6538
+#: src/readelf.c:6646
 msgid ""
 "\n"
 "Line number statements:"
@@ -5536,215 +5619,215 @@
 "\n"
 "行   番号   文:"
 
-#: src/readelf.c:6589
+#: src/readelf.c:6697
 #, c-format
 msgid "invalid maximum operations per instruction is zero"
 msgstr ""
 
-#: src/readelf.c:6625
+#: src/readelf.c:6733
 #, fuzzy, c-format
 msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
 msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
 
-#: src/readelf.c:6630
+#: src/readelf.c:6738
 #, c-format
 msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
 msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
 
-#: src/readelf.c:6650
+#: src/readelf.c:6758
 #, c-format
 msgid " extended opcode %u: "
 msgstr " 拡張命令コード %u: "
 
-#: src/readelf.c:6655
+#: src/readelf.c:6763
 #, fuzzy
 msgid " end of sequence"
 msgstr "列の終わり"
 
-#: src/readelf.c:6674
+#: src/readelf.c:6782
 #, fuzzy, c-format
 msgid " set address to %s\n"
 msgstr "アドレスを %s に設定する\n"
 
-#: src/readelf.c:6701
+#: src/readelf.c:6809
 #, fuzzy, c-format
 msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
 msgstr ""
 "新ファイルを定義する: dir=%u、mtime=%<PRIu64>、長さh=%<PRIu64>、名前=%s\n"
 
-#: src/readelf.c:6714
+#: src/readelf.c:6822
 #, fuzzy, c-format
 msgid " set discriminator to %u\n"
 msgstr "カラムを %<PRIu64> に設定する\n"
 
-#: src/readelf.c:6719
+#: src/readelf.c:6827
 #, fuzzy
 msgid " unknown opcode"
 msgstr "不明な命令コード"
 
-#: src/readelf.c:6731
+#: src/readelf.c:6839
 msgid " copy"
 msgstr "複写"
 
-#: src/readelf.c:6742
+#: src/readelf.c:6850
 #, fuzzy, c-format
 msgid " advance address by %u to %s, op_index to %u\n"
 msgstr "アドレスを %u だけ進めて %s にする\n"
 
-#: src/readelf.c:6746
+#: src/readelf.c:6854
 #, fuzzy, c-format
 msgid " advance address by %u to %s\n"
 msgstr "アドレスを %u だけ進めて %s にする\n"
 
-#: src/readelf.c:6757
+#: src/readelf.c:6865
 #, c-format
 msgid " advance line by constant %d to %<PRId64>\n"
 msgstr "行を定数 %d だけ進めて %<PRId64> にする\n"
 
-#: src/readelf.c:6765
+#: src/readelf.c:6873
 #, c-format
 msgid " set file to %<PRIu64>\n"
 msgstr " ファイルを %<PRIu64> に設定する\n"
 
-#: src/readelf.c:6775
+#: src/readelf.c:6883
 #, c-format
 msgid " set column to %<PRIu64>\n"
 msgstr "カラムを %<PRIu64> に設定する\n"
 
-#: src/readelf.c:6782
+#: src/readelf.c:6890
 #, c-format
 msgid " set '%s' to %<PRIuFAST8>\n"
 msgstr " '%s' を %<PRIuFAST8> に設定する\n"
 
-#: src/readelf.c:6788
+#: src/readelf.c:6896
 msgid " set basic block flag"
 msgstr "基本ブロックフラグを設定する"
 
-#: src/readelf.c:6801
+#: src/readelf.c:6909
 #, fuzzy, c-format
 msgid " advance address by constant %u to %s, op_index to %u\n"
 msgstr "アドレスを定数 %u だけ済めて %s にする\n"
 
-#: src/readelf.c:6805
+#: src/readelf.c:6913
 #, fuzzy, c-format
 msgid " advance address by constant %u to %s\n"
 msgstr "アドレスを定数 %u だけ済めて %s にする\n"
 
-#: src/readelf.c:6823
+#: src/readelf.c:6931
 #, fuzzy, c-format
 msgid " advance address by fixed value %u to %s\n"
 msgstr "アドレスを固定値 %u だけ進めて %s にする\n"
 
-#: src/readelf.c:6832
+#: src/readelf.c:6940
 msgid " set prologue end flag"
 msgstr "プロローグ終了フラグを設定する"
 
-#: src/readelf.c:6837
+#: src/readelf.c:6945
 msgid " set epilogue begin flag"
 msgstr "エピローグ開始フラグを設定する"
 
-#: src/readelf.c:6846
+#: src/readelf.c:6954
 #, fuzzy, c-format
 msgid " set isa to %u\n"
 msgstr " ファイルを %<PRIu64> に設定する\n"
 
-#: src/readelf.c:6855
+#: src/readelf.c:6963
 #, c-format
 msgid " unknown opcode with %<PRIu8> parameter:"
 msgid_plural " unknown opcode with %<PRIu8> parameters:"
 msgstr[0] " %<PRIu8> 個のパラメーターのある不明な命令コード:"
 
-#: src/readelf.c:6887
+#: src/readelf.c:6995
 #, c-format
 msgid "cannot get .debug_loc content: %s"
 msgstr ".debug_loc の内容を得られません: %s"
 
-#: src/readelf.c:6962
+#: src/readelf.c:7070
 #, c-format
 msgid " [%6tx]  %s..%s"
 msgstr " [%6tx]  %s..%s"
 
-#: src/readelf.c:6964
+#: src/readelf.c:7072
 #, c-format
 msgid "           %s..%s"
 msgstr "           %s..%s"
 
-#: src/readelf.c:6971 src/readelf.c:7859
+#: src/readelf.c:7079 src/readelf.c:7967
 #, fuzzy
 msgid "   <INVALID DATA>\n"
 msgstr " [%6tx]  <不当なデータ>\n"
 
-#: src/readelf.c:7023 src/readelf.c:7185
+#: src/readelf.c:7131 src/readelf.c:7293
 #, c-format
 msgid "cannot get macro information section data: %s"
 msgstr "マクロ情報セクションのデータを得られません: %s"
 
-#: src/readelf.c:7103
+#: src/readelf.c:7211
 #, c-format
 msgid "%*s*** non-terminated string at end of section"
 msgstr "%*s*** 最後のセクションの終端していない文字列"
 
-#: src/readelf.c:7126
+#: src/readelf.c:7234
 #, fuzzy, c-format
 msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
 msgstr "%*s*** 最後のセクションの終端していない文字列"
 
-#: src/readelf.c:7226
+#: src/readelf.c:7334
 #, fuzzy, c-format
 msgid " Offset:             0x%<PRIx64>\n"
 msgstr "  所有者         大きさ\n"
 
-#: src/readelf.c:7238
+#: src/readelf.c:7346
 #, fuzzy, c-format
 msgid " Version:            %<PRIu16>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7244 src/readelf.c:7978
+#: src/readelf.c:7352 src/readelf.c:8086
 #, c-format
 msgid "  unknown version, cannot parse section\n"
 msgstr ""
 
-#: src/readelf.c:7251
+#: src/readelf.c:7359
 #, fuzzy, c-format
 msgid " Flag:               0x%<PRIx8>\n"
 msgstr "  入口点アドレス     :               %#<PRIx64>\n"
 
-#: src/readelf.c:7254
+#: src/readelf.c:7362
 #, fuzzy, c-format
 msgid " Offset length:      %<PRIu8>\n"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:7262
+#: src/readelf.c:7370
 #, fuzzy, c-format
 msgid " .debug_line offset: 0x%<PRIx64>\n"
 msgstr " (終了オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:7275
+#: src/readelf.c:7383
 #, fuzzy, c-format
 msgid "  extension opcode table, %<PRIu8> items:\n"
 msgstr " %<PRIu8> 個のパラメーターのある不明な命令コード:"
 
-#: src/readelf.c:7282
+#: src/readelf.c:7390
 #, c-format
 msgid "    [%<PRIx8>]"
 msgstr ""
 
-#: src/readelf.c:7294
+#: src/readelf.c:7402
 #, fuzzy, c-format
 msgid " %<PRIu8> arguments:"
 msgstr "  [%*<PRIuFAST8>]  %hhu パラメーター\n"
 
-#: src/readelf.c:7322
+#: src/readelf.c:7430
 #, c-format
 msgid " no arguments."
 msgstr ""
 
-#: src/readelf.c:7559
+#: src/readelf.c:7667
 #, c-format
 msgid "vendor opcode not verified?"
 msgstr ""
 
-#: src/readelf.c:7587
+#: src/readelf.c:7695
 #, c-format
 msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
 msgstr ""
@@ -5752,7 +5835,7 @@
 
 # # "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
 # # " %4$*s  文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い
-#: src/readelf.c:7628
+#: src/readelf.c:7736
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5763,12 +5846,12 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
 " %4$*s  文字列\n"
 
-#: src/readelf.c:7642
+#: src/readelf.c:7750
 #, c-format
 msgid " *** error while reading strings: %s\n"
 msgstr " *** 文字列の読込み中にエラー: %s\n"
 
-#: src/readelf.c:7662
+#: src/readelf.c:7770
 #, c-format
 msgid ""
 "\n"
@@ -5777,7 +5860,7 @@
 "\n"
 "呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
 
-#: src/readelf.c:7764
+#: src/readelf.c:7872
 #, c-format
 msgid ""
 "\n"
@@ -5786,22 +5869,22 @@
 "\n"
 "例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n"
 
-#: src/readelf.c:7787
+#: src/readelf.c:7895
 #, c-format
 msgid " LPStart encoding:    %#x "
 msgstr " LPStart コード化:    %#x "
 
-#: src/readelf.c:7799
+#: src/readelf.c:7907
 #, c-format
 msgid " TType encoding:      %#x "
 msgstr "TType コード化:       %#x "
 
-#: src/readelf.c:7814
+#: src/readelf.c:7922
 #, c-format
 msgid " Call site encoding:  %#x "
 msgstr "呼出しサイトコード化: %#x "
 
-#: src/readelf.c:7827
+#: src/readelf.c:7935
 msgid ""
 "\n"
 " Call site table:"
@@ -5809,7 +5892,7 @@
 "\n"
 " 呼出しサイトテーブル:"
 
-#: src/readelf.c:7841
+#: src/readelf.c:7949
 #, c-format
 msgid ""
 " [%4u] Call site start:   %#<PRIx64>\n"
@@ -5822,12 +5905,12 @@
 "        離着陸場:           %#<PRIx64>\n"
 "        行動:               %u\n"
 
-#: src/readelf.c:7914
+#: src/readelf.c:8022
 #, c-format
 msgid "invalid TType encoding"
 msgstr "不当な TType コード化"
 
-#: src/readelf.c:7940
+#: src/readelf.c:8048
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5837,37 +5920,37 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
 "目があります:\n"
 
-#: src/readelf.c:7969
+#: src/readelf.c:8077
 #, fuzzy, c-format
 msgid " Version:         %<PRId32>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:7987
+#: src/readelf.c:8095
 #, fuzzy, c-format
 msgid " CU offset:       %#<PRIx32>\n"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:7994
+#: src/readelf.c:8102
 #, fuzzy, c-format
 msgid " TU offset:       %#<PRIx32>\n"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:8001
+#: src/readelf.c:8109
 #, fuzzy, c-format
 msgid " address offset:  %#<PRIx32>\n"
 msgstr " (終了オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:8008
+#: src/readelf.c:8116
 #, fuzzy, c-format
 msgid " symbol offset:   %#<PRIx32>\n"
 msgstr " (オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:8015
+#: src/readelf.c:8123
 #, fuzzy, c-format
 msgid " constant offset: %#<PRIx32>\n"
 msgstr " (終了オフセット: %#<PRIx64>)"
 
-#: src/readelf.c:8029
+#: src/readelf.c:8137
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5877,7 +5960,7 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
 "目があります:\n"
 
-#: src/readelf.c:8054
+#: src/readelf.c:8162
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5887,7 +5970,7 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
 "目があります:\n"
 
-#: src/readelf.c:8083
+#: src/readelf.c:8191
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5897,7 +5980,7 @@
 "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
 "目があります:\n"
 
-#: src/readelf.c:8116
+#: src/readelf.c:8224
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5906,17 +5989,17 @@
 "\n"
 "オフセット %#0<PRIx64> に不当なシンボルテーブル\n"
 
-#: src/readelf.c:8203
+#: src/readelf.c:8311
 #, c-format
 msgid "cannot get debug context descriptor: %s"
 msgstr "デバッグ内容記述子を得られません: %s"
 
-#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152
+#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258
 #, c-format
 msgid "cannot convert core note data: %s"
 msgstr "コアノートデータの変換ができません: %s"
 
-#: src/readelf.c:8724
+#: src/readelf.c:8830
 #, c-format
 msgid ""
 "\n"
@@ -5925,21 +6008,21 @@
 "\n"
 "%*s... < %u 回の繰返し> ..."
 
-#: src/readelf.c:9231
+#: src/readelf.c:9337
 msgid "  Owner          Data size  Type\n"
 msgstr "  所有者         データ大きさタイプ\n"
 
-#: src/readelf.c:9249
+#: src/readelf.c:9355
 #, c-format
 msgid "  %-13.*s  %9<PRId32>  %s\n"
 msgstr "  %-13.*s  %9<PRId32>  %s\n"
 
-#: src/readelf.c:9299
+#: src/readelf.c:9405
 #, c-format
 msgid "cannot get content of note section: %s"
 msgstr "ノートセクションの内容を得られません: %s"
 
-#: src/readelf.c:9326
+#: src/readelf.c:9432
 #, c-format
 msgid ""
 "\n"
@@ -5949,7 +6032,7 @@
 "オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのノートセクション [%1$2zu] "
 "'%2$s':\n"
 
-#: src/readelf.c:9349
+#: src/readelf.c:9455
 #, c-format
 msgid ""
 "\n"
@@ -5958,7 +6041,7 @@
 "\n"
 "オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n"
 
-#: src/readelf.c:9395
+#: src/readelf.c:9501
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5967,12 +6050,12 @@
 "\n"
 "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
 
-#: src/readelf.c:9401 src/readelf.c:9424
+#: src/readelf.c:9518 src/readelf.c:9559
 #, fuzzy, c-format
 msgid "cannot get data for section [%zu] '%s': %s"
 msgstr "セクション [%Zu] '%s' からデータが得られません: %s"
 
-#: src/readelf.c:9405
+#: src/readelf.c:9523
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5982,7 +6065,18 @@
 "オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
 "プ、%3$<PRIu64> バイト:\n"
 
-#: src/readelf.c:9418
+#: src/readelf.c:9528
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Hex dump of section [%zu] '%s', %<PRIu64> bytes (%zd uncompressed) at offset "
+"%#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダン"
+"プ、%3$<PRIu64> バイト:\n"
+
+#: src/readelf.c:9542
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -5991,7 +6085,7 @@
 "\n"
 "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
 
-#: src/readelf.c:9428
+#: src/readelf.c:9564
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6001,7 +6095,18 @@
 "オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
 "イトあります:\n"
 
-#: src/readelf.c:9476
+#: src/readelf.c:9569
+#, fuzzy, c-format
+msgid ""
+"\n"
+"String section [%zu] '%s' contains %<PRIu64> bytes (%zd uncompressed) at "
+"offset %#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
+"イトあります:\n"
+
+#: src/readelf.c:9618
 #, c-format
 msgid ""
 "\n"
@@ -6010,7 +6115,7 @@
 "\n"
 "セクション [%lu] がありません"
 
-#: src/readelf.c:9505
+#: src/readelf.c:9647
 #, c-format
 msgid ""
 "\n"
@@ -6019,12 +6124,12 @@
 "\n"
 "セクション '%s' がありません"
 
-#: src/readelf.c:9562
+#: src/readelf.c:9704
 #, c-format
 msgid "cannot get symbol index of archive '%s': %s"
 msgstr "アーカイブのシンボル索引 '%s' を得られません: %s"
 
-#: src/readelf.c:9565
+#: src/readelf.c:9707
 #, c-format
 msgid ""
 "\n"
@@ -6033,7 +6138,7 @@
 "\n"
 "アーカイブ '%s' にはシンボル索引がありません\n"
 
-#: src/readelf.c:9569
+#: src/readelf.c:9711
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -6042,12 +6147,12 @@
 "\n"
 "アーカイブ '%s' の索引には %Zu 項目あります:\n"
 
-#: src/readelf.c:9587
+#: src/readelf.c:9729
 #, fuzzy, c-format
 msgid "cannot extract member at offset %zu in '%s': %s"
 msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s"
 
-#: src/readelf.c:9592
+#: src/readelf.c:9734
 #, c-format
 msgid "Archive member '%s' contains:\n"
 msgstr "アーカイブメンバー '%s' には以下があります:\n"
@@ -6566,12 +6671,12 @@
 msgid "cannot copy ELF header: %s"
 msgstr ""
 
-#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947
+#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982
 #, fuzzy, c-format
 msgid "cannot get number of program headers: %s"
 msgstr "セクション数を決定できません: %s"
 
-#: src/unstrip.c:266 src/unstrip.c:1907
+#: src/unstrip.c:266 src/unstrip.c:1943
 #, c-format
 msgid "cannot create program headers: %s"
 msgstr ""
@@ -6586,12 +6691,12 @@
 msgid "cannot copy section header: %s"
 msgstr ""
 
-#: src/unstrip.c:285 src/unstrip.c:1541
+#: src/unstrip.c:285 src/unstrip.c:1576
 #, c-format
 msgid "cannot get section data: %s"
 msgstr ""
 
-#: src/unstrip.c:287 src/unstrip.c:1543
+#: src/unstrip.c:287 src/unstrip.c:1578
 #, c-format
 msgid "cannot copy section data: %s"
 msgstr ""
@@ -6601,214 +6706,214 @@
 msgid "cannot create directory '%s'"
 msgstr ""
 
-#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575
+#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610
 #, c-format
 msgid "cannot get symbol table entry: %s"
 msgstr ""
 
-#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618
-#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793
+#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653
+#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829
 #, c-format
 msgid "cannot update symbol table: %s"
 msgstr ""
 
-#: src/unstrip.c:377
+#: src/unstrip.c:409
 #, c-format
 msgid "cannot update section header: %s"
 msgstr ""
 
-#: src/unstrip.c:416 src/unstrip.c:427
+#: src/unstrip.c:448 src/unstrip.c:459
 #, c-format
 msgid "cannot update relocation: %s"
 msgstr ""
 
-#: src/unstrip.c:514
+#: src/unstrip.c:547
 #, c-format
 msgid "cannot get symbol version: %s"
 msgstr ""
 
-#: src/unstrip.c:526
+#: src/unstrip.c:560
 #, c-format
 msgid "unexpected section type in [%zu] with sh_link to symtab"
 msgstr ""
 
-#: src/unstrip.c:774
+#: src/unstrip.c:809
 #, fuzzy, c-format
 msgid "invalid string offset in symbol [%zu]"
 msgstr "シンボル %2$sの不正なオフセット %1$zu "
 
-#: src/unstrip.c:932 src/unstrip.c:1278
+#: src/unstrip.c:967 src/unstrip.c:1313
 #, fuzzy, c-format
 msgid "cannot read section [%zu] name: %s"
 msgstr "セクションデータを割り当てられません: %s"
 
-#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027
+#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062
 #, c-format
 msgid "cannot read '.gnu.prelink_undo' section: %s"
 msgstr ""
 
-#: src/unstrip.c:1013
+#: src/unstrip.c:1048
 #, c-format
 msgid "invalid contents in '%s' section"
 msgstr ""
 
-#: src/unstrip.c:1019
+#: src/unstrip.c:1054
 #, c-format
 msgid "overflow with shnum = %zu in '%s' section"
 msgstr ""
 
-#: src/unstrip.c:1073 src/unstrip.c:1398
+#: src/unstrip.c:1108 src/unstrip.c:1433
 #, fuzzy, c-format
 msgid "cannot find matching section for [%zu] '%s'"
 msgstr "セクション [%zu] '%s' の不当なデータ"
 
-#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731
+#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766
 #, c-format
 msgid "cannot add section name to string table: %s"
 msgstr ""
 
-#: src/unstrip.c:1222
+#: src/unstrip.c:1257
 #, c-format
 msgid "cannot update section header string table data: %s"
 msgstr ""
 
-#: src/unstrip.c:1249 src/unstrip.c:1253
+#: src/unstrip.c:1284 src/unstrip.c:1288
 #, c-format
 msgid "cannot get section header string table section index: %s"
 msgstr ""
 
-#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494
+#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529
 #, c-format
 msgid "cannot get section count: %s"
 msgstr ""
 
-#: src/unstrip.c:1264
+#: src/unstrip.c:1299
 #, c-format
 msgid "more sections in stripped file than debug file -- arguments reversed?"
 msgstr ""
 
-#: src/unstrip.c:1323 src/unstrip.c:1413
+#: src/unstrip.c:1358 src/unstrip.c:1448
 #, c-format
 msgid "cannot read section header string table: %s"
 msgstr ""
 
-#: src/unstrip.c:1473
+#: src/unstrip.c:1508
 #, c-format
 msgid "cannot add new section: %s"
 msgstr ""
 
-#: src/unstrip.c:1583
+#: src/unstrip.c:1618
 #, fuzzy, c-format
 msgid "symbol [%zu] has invalid section index"
 msgstr "不当なセクション索引"
 
-#: src/unstrip.c:1864
+#: src/unstrip.c:1900
 #, fuzzy, c-format
 msgid "cannot read section data: %s"
 msgstr "セクションデータを割り当てられません: %s"
 
-#: src/unstrip.c:1885
+#: src/unstrip.c:1921
 #, c-format
 msgid "cannot get ELF header: %s"
 msgstr ""
 
-#: src/unstrip.c:1917
+#: src/unstrip.c:1953
 #, c-format
 msgid "cannot update program header: %s"
 msgstr ""
 
-#: src/unstrip.c:1922 src/unstrip.c:2005
+#: src/unstrip.c:1958 src/unstrip.c:2040
 #, c-format
 msgid "cannot write output file: %s"
 msgstr ""
 
-#: src/unstrip.c:1974
+#: src/unstrip.c:2009
 #, c-format
 msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 
-#: src/unstrip.c:1977
+#: src/unstrip.c:2012
 #, c-format
 msgid ""
 "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 
-#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145
+#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180
 #, c-format
 msgid "cannot create ELF descriptor: %s"
 msgstr ""
 
-#: src/unstrip.c:2038
+#: src/unstrip.c:2073
 msgid "WARNING: "
 msgstr ""
 
-#: src/unstrip.c:2040
+#: src/unstrip.c:2075
 msgid ", use --force"
 msgstr ""
 
-#: src/unstrip.c:2063
+#: src/unstrip.c:2098
 msgid "ELF header identification (e_ident) different"
 msgstr ""
 
-#: src/unstrip.c:2066
+#: src/unstrip.c:2101
 msgid "ELF header type (e_type) different"
 msgstr ""
 
-#: src/unstrip.c:2069
+#: src/unstrip.c:2104
 msgid "ELF header machine type (e_machine) different"
 msgstr ""
 
-#: src/unstrip.c:2072
+#: src/unstrip.c:2107
 msgid "stripped program header (e_phnum) smaller than unstripped"
 msgstr ""
 
-#: src/unstrip.c:2102
+#: src/unstrip.c:2137
 #, c-format
 msgid "cannot find stripped file for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2106
+#: src/unstrip.c:2141
 #, c-format
 msgid "cannot open stripped file '%s' for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2121
+#: src/unstrip.c:2156
 #, c-format
 msgid "cannot find debug file for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2125
+#: src/unstrip.c:2160
 #, c-format
 msgid "cannot open debug file '%s' for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2138
+#: src/unstrip.c:2173
 #, c-format
 msgid "module '%s' file '%s' is not stripped"
 msgstr ""
 
-#: src/unstrip.c:2169
+#: src/unstrip.c:2204
 #, c-format
 msgid "cannot cache section addresses for module '%s': %s"
 msgstr ""
 
-#: src/unstrip.c:2302
+#: src/unstrip.c:2337
 #, c-format
 msgid "no matching modules found"
 msgstr ""
 
-#: src/unstrip.c:2311
+#: src/unstrip.c:2346
 #, c-format
 msgid "matched more than one module"
 msgstr ""
 
-#: src/unstrip.c:2355
+#: src/unstrip.c:2390
 msgid ""
 "STRIPPED-FILE DEBUG-FILE\n"
 "[MODULE...]"
 msgstr ""
 
-#: src/unstrip.c:2356
+#: src/unstrip.c:2391
 msgid ""
 "Combine stripped files with separate symbols and debug information.\vThe "
 "first form puts the result in DEBUG-FILE if -o was not given.\n"
diff --git a/po/pl.po b/po/pl.po
index 50eff02..66c4f59 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,13 +1,13 @@
 # translation of pl.po to Polish
 # Jakub Bogusz <qboosh@pld-linux.org>, 2003-2007.
-# Piotr Drąg <piotrdrag@gmail.com>, 2010-2015.
+# Piotr Drąg <piotrdrag@gmail.com>, 2010-2016.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: elfutils\n"
 "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2015-10-16 13:26+0200\n"
-"PO-Revision-Date: 2015-06-13 15:32+0200\n"
+"POT-Creation-Date: 2016-01-11 08:48+0100\n"
+"PO-Revision-Date: 2016-01-07 15:44+0100\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
 "Language: pl\n"
@@ -21,8 +21,8 @@
 msgid ""
 "colorize the output.  WHEN defaults to 'always' or can be 'auto' or 'never'"
 msgstr ""
-"koloruje wyjście. WHEN domyślnie wynosi \"always\" lub może wynosić \"auto\" "
-"lub \"never\""
+"koloruje wyjście. WHEN domyślnie wynosi „always” lub może wynosić „auto” lub "
+"„never”"
 
 #: lib/color.c:127
 #, c-format
@@ -33,19 +33,19 @@
 "  - 'never', 'no', 'none'\n"
 "  - 'auto', 'tty', 'if-tty'\n"
 msgstr ""
-"%s: nieprawidłowy parametr \"%s\" dla \"--color\"\n"
+"%s: nieprawidłowy parametr „%s” dla „--color”\n"
 "prawidłowe parametry:\n"
-"  - \"always\", \"yes\", \"force\"\n"
-"  - \"never\", \"no\", \"none\"\n"
-"  - \"auto\", \"tty\", \"if-tty\"\n"
+"  • „always”, „yes”, „force”\n"
+"  • „never”, „no”, „none”\n"
+"  • „auto”, „tty”, „if-tty”\n"
 
 #: lib/color.c:190 src/objdump.c:738
 #, c-format
 msgid "cannot allocate memory"
 msgstr "nie można przydzielić pamięci"
 
-#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184
-#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403
+#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282
+#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438
 #, c-format
 msgid "memory exhausted"
 msgstr "pamięć wyczerpana"
@@ -121,7 +121,7 @@
 
 #: libdw/dwarf_error.c:65
 msgid "cannot decompress DWARF"
-msgstr "nie można zdekompresować DWARF"
+msgstr "nie można dekompresować DWARF"
 
 #: libdw/dwarf_error.c:66
 msgid "no ELF file"
@@ -247,7 +247,7 @@
 msgid "not a CU (unit) DIE"
 msgstr "nie jest CU (jednostką) DIE"
 
-#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345
+#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380
 msgid "Input selection options:"
 msgstr "Opcje wyboru wejścia:"
 
@@ -304,7 +304,11 @@
 msgid "cannot read ELF core file: %s"
 msgstr "nie można odczytać pliku core ELF: %s"
 
-#: libdwfl/argp-std.c:311
+#: libdwfl/argp-std.c:313
+msgid "Not enough memory"
+msgstr "Za mało pamięci"
+
+#: libdwfl/argp-std.c:323
 msgid "No modules recognized in core file"
 msgstr "Nie rozpoznano żadnych modułów w pliku core"
 
@@ -476,57 +480,57 @@
 msgid "<unknown>: %#<PRIx64>"
 msgstr "<nieznany>: %#<PRIx64>"
 
-#: libebl/eblobjnote.c:52
+#: libebl/eblobjnote.c:53
 #, c-format
 msgid "unknown SDT version %u\n"
 msgstr "nieznana wersja SDT %u\n"
 
-#: libebl/eblobjnote.c:70
+#: libebl/eblobjnote.c:71
 #, c-format
 msgid "invalid SDT probe descriptor\n"
 msgstr "nieprawidłowy deskryptor sondy SDT\n"
 
-#: libebl/eblobjnote.c:120
+#: libebl/eblobjnote.c:121
 #, c-format
 msgid "    PC: "
 msgstr "    PC: "
 
-#: libebl/eblobjnote.c:122
+#: libebl/eblobjnote.c:123
 #, c-format
 msgid " Base: "
 msgstr " Podstawa: "
 
-#: libebl/eblobjnote.c:124
+#: libebl/eblobjnote.c:125
 #, c-format
 msgid " Semaphore: "
 msgstr " Semafor: "
 
-#: libebl/eblobjnote.c:126
+#: libebl/eblobjnote.c:127
 #, c-format
 msgid "    Provider: "
 msgstr "    Dostawca: "
 
-#: libebl/eblobjnote.c:128
+#: libebl/eblobjnote.c:129
 #, c-format
 msgid " Name: "
 msgstr " Nazwa: "
 
-#: libebl/eblobjnote.c:130
+#: libebl/eblobjnote.c:131
 #, c-format
 msgid " Args: "
 msgstr " Parametry: "
 
-#: libebl/eblobjnote.c:140
+#: libebl/eblobjnote.c:141
 #, c-format
 msgid "    Build ID: "
 msgstr "    Identyfikator kopii: "
 
-#: libebl/eblobjnote.c:151
+#: libebl/eblobjnote.c:152
 #, c-format
 msgid "    Linker version: %.*s\n"
 msgstr "    Wersja konsolidatora: %.*s\n"
 
-#: libebl/eblobjnote.c:212
+#: libebl/eblobjnote.c:213
 #, c-format
 msgid "    OS: %s, ABI: "
 msgstr "    System operacyjny: %s, ABI: "
@@ -550,7 +554,7 @@
 
 #: libelf/elf_error.c:75
 msgid "invalid `Elf' handle"
-msgstr "nieprawidłowa obsługa \"Elf\""
+msgstr "nieprawidłowa obsługa „Elf”"
 
 #: libelf/elf_error.c:79
 msgid "invalid size of source operand"
@@ -560,7 +564,7 @@
 msgid "invalid size of destination operand"
 msgstr "nieprawidłowy rozmiar operanda docelowego"
 
-#: libelf/elf_error.c:87 src/readelf.c:5365
+#: libelf/elf_error.c:87 src/readelf.c:5473
 #, c-format
 msgid "invalid encoding"
 msgstr "nieprawidłowe kodowanie"
@@ -641,8 +645,8 @@
 msgid "invalid section header"
 msgstr "nieprawidłowy nagłówek sekcji"
 
-#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682
-#: src/readelf.c:7783 src/readelf.c:7964
+#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790
+#: src/readelf.c:7891 src/readelf.c:8072
 #, c-format
 msgid "invalid data"
 msgstr "nieprawidłowe dane"
@@ -653,7 +657,7 @@
 
 #: libelf/elf_error.c:195
 msgid "section `sh_size' too small for data"
-msgstr "sekcja \"sh_size\" jest za mała dla danych"
+msgstr "sekcja „sh_size” jest za mała dla danych"
 
 #: libelf/elf_error.c:199
 msgid "invalid section alignment"
@@ -686,6 +690,34 @@
 msgid "file has no program header"
 msgstr "plik nie posiada nagłówków programu"
 
+#: libelf/elf_error.c:237
+msgid "invalid section type"
+msgstr "nieprawidłowy typ sekcji"
+
+#: libelf/elf_error.c:242
+msgid "invalid section flags"
+msgstr "nieprawidłowe flagi sekcji"
+
+#: libelf/elf_error.c:247
+msgid "section does not contain compressed data"
+msgstr "sekcja nie zawiera skompresowanych danych"
+
+#: libelf/elf_error.c:252
+msgid "section contains compressed data"
+msgstr "sekcja zawiera skompresowane dane"
+
+#: libelf/elf_error.c:257
+msgid "unknown compression type"
+msgstr "nieznany typ kompresji"
+
+#: libelf/elf_error.c:262
+msgid "cannot compress data"
+msgstr "nie można kompresować danych"
+
+#: libelf/elf_error.c:267
+msgid "cannot decompress data"
+msgstr "nie można dekompresować danych"
+
 #: src/addr2line.c:58
 msgid "Input format options:"
 msgstr "Opcje formatowania wejścia:"
@@ -743,7 +775,7 @@
 msgid "Print all information on one line, and indent inlines"
 msgstr "Wyświetla wszystkie informacje w jednym wierszy i wyrównuje wstawki"
 
-#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99
+#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100
 #: src/strings.c:79
 msgid "Miscellaneous:"
 msgstr "Różne:"
@@ -757,11 +789,11 @@
 
 #: src/addr2line.c:91
 msgid "[ADDR...]"
-msgstr "[ADRES...]"
+msgstr "[ADRES…]"
 
-#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235
-#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177
-#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230
+#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235
+#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177
+#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230
 #: src/strip.c:218 src/unstrip.c:232
 #, c-format
 msgid ""
@@ -769,15 +801,15 @@
 "This is free software; see the source for copying conditions.  There is NO\n"
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
-"Copyright (C) %s Red Hat, Inc.\n"
+"Copyright © %s Red Hat, Inc.\n"
 "Niniejszy program jest wolnym oprogramowaniem; proszę zobaczyć kod źródłowy\n"
 "w celu poznania warunków kopiowania. Niniejszy program rozprowadzany jest\n"
 "BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n"
 "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n"
 
-#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240
-#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182
-#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235
+#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240
+#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182
+#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235
 #: src/strip.c:223 src/unstrip.c:237
 #, c-format
 msgid "Written by %s.\n"
@@ -791,17 +823,17 @@
 #: src/addr2line.c:556
 #, c-format
 msgid "offset %#<PRIxMAX> lies outside section '%s'"
-msgstr "offset %#<PRIxMAX> leży poza sekcją \"%s\""
+msgstr "offset %#<PRIxMAX> leży poza sekcją „%s”"
 
 #: src/addr2line.c:645
 #, c-format
 msgid "cannot find symbol '%s'"
-msgstr "nie można odnaleźć symbolu \"%s\""
+msgstr "nie można odnaleźć symbolu „%s”"
 
 #: src/addr2line.c:650
 #, c-format
 msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
-msgstr "offset %#<PRIxMAX> leży poza zawartością \"%s\""
+msgstr "offset %#<PRIxMAX> leży poza zawartością „%s”"
 
 #: src/ar.c:68
 msgid "Commands:"
@@ -893,22 +925,22 @@
 
 #: src/ar.c:102
 msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
-msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK...]"
+msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK…]"
 
 #: src/ar.c:181
 #, c-format
 msgid "'a', 'b', and 'i' are only allowed with the 'm' and 'r' options"
-msgstr "\"a\", \"b\" i \"i\" są dozwolone tylko z opcjami \"m\" i \"r\""
+msgstr "„a”, „b” i „i” są dozwolone tylko z opcjami „m” i „r”"
 
 #: src/ar.c:186
 #, c-format
 msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers"
-msgstr "parametr ELEMENT jest wymagany dla modyfikatorów \"a\", \"b\" i \"i\""
+msgstr "parametr ELEMENT jest wymagany dla modyfikatorów „a”, „b” i „i”"
 
 #: src/ar.c:202
 #, c-format
 msgid "'N' is only meaningful with the 'x' and 'd' options"
-msgstr "\"N\" ma znaczenie tylko z opcjami \"x\" i \"d\""
+msgstr "„N” ma znaczenie tylko z opcjami „x” i „d”"
 
 #: src/ar.c:207
 #, c-format
@@ -923,7 +955,7 @@
 #: src/ar.c:226
 #, c-format
 msgid "'%c' is only meaningful with the 'x' option"
-msgstr "\"%c\" ma znaczenie tylko z opcją \"x\""
+msgstr "„%c” ma znaczenie tylko z opcją „x”"
 
 #: src/ar.c:232
 #, c-format
@@ -943,12 +975,12 @@
 #: src/ar.c:404
 #, c-format
 msgid "cannot open archive '%s'"
-msgstr "nie można otworzyć archiwum \"%s\""
+msgstr "nie można otworzyć archiwum „%s”"
 
 #: src/ar.c:414
 #, c-format
 msgid "cannot open archive '%s': %s"
-msgstr "nie można otworzyć archiwum \"%s\": %s"
+msgstr "nie można otworzyć archiwum „%s”: %s"
 
 #: src/ar.c:418
 #, c-format
@@ -958,7 +990,7 @@
 #: src/ar.c:422
 #, c-format
 msgid "cannot stat archive '%s'"
-msgstr "nie można wykonać stat na archiwum \"%s\""
+msgstr "nie można wykonać stat na archiwum „%s”"
 
 #: src/ar.c:434
 #, c-format
@@ -978,7 +1010,7 @@
 #: src/ar.c:502 src/ranlib.c:164
 #, c-format
 msgid "cannot stat '%s'"
-msgstr "nie można wykonać stat na \"%s\""
+msgstr "nie można wykonać stat na „%s”"
 
 #: src/ar.c:598
 #, c-format
@@ -1066,7 +1098,7 @@
 #: src/arlib.c:209
 #, c-format
 msgid "the archive '%s' is too large"
-msgstr "archiwum \"%s\" jest za duże"
+msgstr "archiwum „%s” jest za duże"
 
 #: src/arlib.c:222
 #, c-format
@@ -1116,7 +1148,7 @@
 #: src/elfcmp.c:174 src/elfcmp.c:179
 #, c-format
 msgid "cannot get ELF header of '%s': %s"
-msgstr "nie można uzyskać nagłówka ELF \"%s\": %s"
+msgstr "nie można uzyskać nagłówka ELF „%s”: %s"
 
 #: src/elfcmp.c:205
 #, c-format
@@ -1126,7 +1158,7 @@
 #: src/elfcmp.c:212 src/elfcmp.c:215
 #, c-format
 msgid "cannot get section count of '%s': %s"
-msgstr "nie można uzyskać licznika sekcji \"%s\": %s"
+msgstr "nie można uzyskać licznika sekcji „%s”: %s"
 
 #: src/elfcmp.c:220
 #, c-format
@@ -1136,7 +1168,7 @@
 #: src/elfcmp.c:227 src/elfcmp.c:230
 #, c-format
 msgid "cannot get program header count of '%s': %s"
-msgstr "nie można uzyskać licznika nagłówka programu \"%s\": %s"
+msgstr "nie można uzyskać licznika nagłówka programu „%s”: %s"
 
 #: src/elfcmp.c:235
 #, c-format
@@ -1151,22 +1183,22 @@
 #: src/elfcmp.c:316
 #, c-format
 msgid "%s %s differ: section [%zu] '%s' header"
-msgstr "%s %s różnią się: nagłówek sekcji [%zu] \"%s\""
+msgstr "%s %s różnią się: nagłówek sekcji [%zu] „%s”"
 
 #: src/elfcmp.c:324 src/elfcmp.c:330
 #, c-format
 msgid "cannot get content of section %zu in '%s': %s"
-msgstr "nie można uzyskać zawartości sekcji %zu w \"%s\": %s"
+msgstr "nie można uzyskać zawartości sekcji %zu w „%s”: %s"
 
 #: src/elfcmp.c:339
 #, c-format
 msgid "symbol table [%zu] in '%s' has zero sh_entsize"
-msgstr "tabela symboli [%zu] w \"%s\" posiada zerowe sh_entsize"
+msgstr "tabela symboli [%zu] w „%s” posiada zerowe sh_entsize"
 
 #: src/elfcmp.c:351 src/elfcmp.c:357
 #, c-format
 msgid "cannot get symbol in '%s': %s"
-msgstr "nie można uzyskać symbolu w \"%s\": %s"
+msgstr "nie można uzyskać symbolu w „%s”: %s"
 
 #: src/elfcmp.c:379
 #, c-format
@@ -1181,22 +1213,22 @@
 #: src/elfcmp.c:428 src/elfcmp.c:497
 #, c-format
 msgid "%s %s differ: section [%zu] '%s' number of notes"
-msgstr "%s %s różnią się: liczba notatek sekcji [%zu] \"%s\""
+msgstr "%s %s różnią się: liczba notatek sekcji [%zu] „%s”"
 
 #: src/elfcmp.c:436
 #, c-format
 msgid "cannot read note section [%zu] '%s' in '%s': %s"
-msgstr "nie można odczytać notatki sekcji [%zu] \"%s\" w \"%s\": %s"
+msgstr "nie można odczytać notatki sekcji [%zu] „%s” w „%s”: %s"
 
 #: src/elfcmp.c:446
 #, c-format
 msgid "%s %s differ: section [%zu] '%s' note name"
-msgstr "%s %s różnią się: nazwa notatki sekcji [%zu] \"%s\""
+msgstr "%s %s różnią się: nazwa notatki sekcji [%zu] „%s”"
 
 #: src/elfcmp.c:454
 #, c-format
 msgid "%s %s differ: section [%zu] '%s' note '%s' type"
-msgstr "%s %s różnią się: sekcja [%zu] \"%s\" notatka \"%s\" typ"
+msgstr "%s %s różnią się: sekcja [%zu] „%s” notatka „%s” typ"
 
 #: src/elfcmp.c:469
 #, c-format
@@ -1211,17 +1243,17 @@
 #: src/elfcmp.c:486
 #, c-format
 msgid "%s %s differ: section [%zu] '%s' note '%s' content"
-msgstr "%s %s różnią się: sekcja [%zu] \"%s\" notatka \"%s\" zawartość"
+msgstr "%s %s różnią się: sekcja [%zu] „%s” notatka „%s” zawartość"
 
 #: src/elfcmp.c:527
 #, c-format
 msgid "%s %s differ: section [%zu] '%s' content"
-msgstr "%s %s różnią się: zawartość sekcji [%zu] \"%s\""
+msgstr "%s %s różnią się: zawartość sekcji [%zu] „%s”"
 
 #: src/elfcmp.c:531
 #, c-format
 msgid "%s %s differ: section [%zu,%zu] '%s' content"
-msgstr "%s %s różnią się: zawartość sekcji [%zu,%zu] \"%s\""
+msgstr "%s %s różnią się: zawartość sekcji [%zu,%zu] „%s”"
 
 #: src/elfcmp.c:546
 #, c-format
@@ -1231,12 +1263,12 @@
 #: src/elfcmp.c:579 src/elfcmp.c:584
 #, c-format
 msgid "cannot load data of '%s': %s"
-msgstr "nie można wczytać danych z \"%s\": %s"
+msgstr "nie można wczytać danych z „%s”: %s"
 
 #: src/elfcmp.c:603 src/elfcmp.c:609
 #, c-format
 msgid "cannot get program header entry %d of '%s': %s"
-msgstr "nie można uzyskać wpisu nagłówka programu %d z \"%s\": %s"
+msgstr "nie można uzyskać wpisu nagłówka programu %d z „%s”: %s"
 
 #: src/elfcmp.c:615
 #, c-format
@@ -1248,40 +1280,40 @@
 msgid "%s %s differ: gap"
 msgstr "%s %s różnią się: luka"
 
-#: src/elfcmp.c:702
+#: src/elfcmp.c:704
 #, c-format
 msgid "Invalid value '%s' for --gaps parameter."
-msgstr "Nieprawidłowa wartość \"%s\" dla parametru --gaps."
+msgstr "Nieprawidłowa wartość „%s” dla parametru --gaps."
 
-#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757
-#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289
-#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994
-#: src/unstrip.c:2023
+#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757
+#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289
+#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029
+#: src/unstrip.c:2058
 #, c-format
 msgid "cannot open '%s'"
-msgstr "nie można otworzyć \"%s\""
+msgstr "nie można otworzyć „%s”"
 
-#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174
+#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174
 #, c-format
 msgid "cannot create ELF descriptor for '%s': %s"
-msgstr "nie można utworzyć deskryptora ELF dla \"%s\": %s"
+msgstr "nie można utworzyć deskryptora ELF dla „%s”: %s"
 
-#: src/elfcmp.c:739
+#: src/elfcmp.c:741
 #, c-format
 msgid "cannot create EBL descriptor for '%s'"
-msgstr "nie można utworzyć deskryptora EBL dla \"%s\""
+msgstr "nie można utworzyć deskryptora EBL dla „%s”"
 
-#: src/elfcmp.c:757 src/findtextrel.c:409
+#: src/elfcmp.c:759 src/findtextrel.c:409
 #, c-format
 msgid "cannot get section header of section %zu: %s"
 msgstr "nie można uzyskać nagłówka sekcji dla sekcji %zu: %s"
 
-#: src/elfcmp.c:767
+#: src/elfcmp.c:769
 #, c-format
 msgid "cannot get content of section %zu: %s"
 msgstr "nie można uzyskać zawartości sekcji %zu: %s"
 
-#: src/elfcmp.c:777 src/elfcmp.c:791
+#: src/elfcmp.c:779 src/elfcmp.c:793
 #, c-format
 msgid "cannot get relocation: %s"
 msgstr "nie można uzyskać relokacji: %s"
@@ -1311,11 +1343,11 @@
 msgstr ""
 "Szczegółowe sprawdzanie zgodności plików ELF ze specyfikacją gABI/psABI."
 
-#: src/elflint.c:78 src/readelf.c:123
+#: src/elflint.c:78 src/readelf.c:126
 msgid "FILE..."
-msgstr "PLIK..."
+msgstr "PLIK…"
 
-#: src/elflint.c:155 src/readelf.c:292
+#: src/elflint.c:155 src/readelf.c:298
 #, c-format
 msgid "cannot open input file"
 msgstr "nie można otworzyć pliku wejściowego"
@@ -1334,7 +1366,7 @@
 msgid "No errors"
 msgstr "Brak błędów"
 
-#: src/elflint.c:219 src/readelf.c:468
+#: src/elflint.c:219 src/readelf.c:474
 msgid "Missing file name.\n"
 msgstr "Brak nazwy pliku.\n"
 
@@ -1346,7 +1378,7 @@
 #: src/elflint.c:306
 #, c-format
 msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "To nie jest plik ELF - posiada błędne bajty magiczne na początku\n"
+msgstr "To nie jest plik ELF — posiada błędne bajty magiczne na początku\n"
 
 #: src/elflint.c:371
 #, c-format
@@ -1366,7 +1398,7 @@
 #: src/elflint.c:386
 #, c-format
 msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
-msgstr "nieobsługiwane ABI systemu operacyjnego e_ident[%d] == \"%s\"\n"
+msgstr "nieobsługiwane ABI systemu operacyjnego e_ident[%d] == „%s”\n"
 
 #: src/elflint.c:392
 #, c-format
@@ -1470,31 +1502,30 @@
 "section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
 "group\n"
 msgstr ""
-"sekcja [%2d] \"%s\": sekcja z flagą SHF_GROUP nie jest częścią grupy sekcji\n"
+"sekcja [%2d] „%s”: sekcja z flagą SHF_GROUP nie jest częścią grupy sekcji\n"
 
 #: src/elflint.c:575
 #, c-format
 msgid ""
 "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
 msgstr ""
-"sekcja [%2d] \"%s\": grupa sekcji [%2zu] \"%s\" nie poprzedza elementu "
-"grupy\n"
+"sekcja [%2d] „%s”: grupa sekcji [%2zu] „%s” nie poprzedza elementu grupy\n"
 
-#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628
-#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056
-#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336
+#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632
+#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061
+#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366
 #, c-format
 msgid "section [%2d] '%s': cannot get section data\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać danych sekcji\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji\n"
 
-#: src/elflint.c:604 src/elflint.c:1635
+#: src/elflint.c:604 src/elflint.c:1639
 #, c-format
 msgid ""
 "section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
 "type is not SHT_STRTAB\n"
 msgstr ""
-"sekcja [%2d] \"%s\": użyta jako tabela ciągów dla sekcji [%2d] \"%s\", ale "
-"nie jest typu SHT_STRTAB\n"
+"sekcja [%2d] „%s”: użyta jako tabela ciągów dla sekcji [%2d] „%s”, ale nie "
+"jest typu SHT_STRTAB\n"
 
 #: src/elflint.c:627
 #, c-format
@@ -1502,39 +1533,39 @@
 "section [%2d] '%s': symbol table cannot have more than one extended index "
 "section\n"
 msgstr ""
-"sekcja [%2d] \"%s\": tabela symboli nie może mieć więcej niż jednej "
+"sekcja [%2d] „%s”: tabela symboli nie może mieć więcej niż jednej "
 "rozszerzonej sekcji indeksów\n"
 
 #: src/elflint.c:639
 #, c-format
 msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
-msgstr "sekcja [%2u] \"%s\": rozmiar wpisu nie zgadza się z ElfXX_Sym\n"
+msgstr "sekcja [%2u] „%s”: rozmiar wpisu nie zgadza się z ElfXX_Sym\n"
 
 #: src/elflint.c:648
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać symbolu %d: %s\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu %d: %s\n"
 
 #: src/elflint.c:653 src/elflint.c:656 src/elflint.c:659 src/elflint.c:662
 #: src/elflint.c:665 src/elflint.c:668
 #, c-format
 msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
-msgstr "sekcja [%2d] \"%s\": \"%s\" w zerowym wpisie nie jest zerem\n"
+msgstr "sekcja [%2d] „%s”: „%s” w zerowym wpisie nie jest zerem\n"
 
 #: src/elflint.c:671
 #, c-format
 msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
-msgstr "sekcja [%2d] \"%s\": XINDEX dla zerowego wpisu nie jest zerem\n"
+msgstr "sekcja [%2d] „%s”: XINDEX dla zerowego wpisu nie jest zerem\n"
 
 #: src/elflint.c:681
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać symbolu %zu: %s\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu %zu: %s\n"
 
 #: src/elflint.c:690
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: nieprawidłowa wartość nazwy\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: nieprawidłowa wartość nazwy\n"
 
 #: src/elflint.c:705
 #, c-format
@@ -1542,8 +1573,8 @@
 "section [%2d] '%s': symbol %zu: too large section index but no extended "
 "section index section\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: za duży indeks sekcji, ale nie posiada "
-"sekcji rozszerzonych indeksów sekcji\n"
+"sekcja [%2d] „%s”: symbol %zu: za duży indeks sekcji, ale nie posiada sekcji "
+"rozszerzonych indeksów sekcji\n"
 
 #: src/elflint.c:711
 #, c-format
@@ -1551,1208 +1582,1194 @@
 "section [%2d] '%s': symbol %zu: XINDEX used for index which would fit in "
 "st_shndx (%<PRIu32>)\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: XINDEX użyty dla indeksu, który zmieściłby "
+"sekcja [%2d] „%s”: symbol %zu: XINDEX użyty dla indeksu, który zmieściłby "
 "się w st_shndx (%<PRIu32>)\n"
 
 #: src/elflint.c:723
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: invalid section index\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: nieprawidłowy indeks sekcji\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: nieprawidłowy indeks sekcji\n"
 
 #: src/elflint.c:731
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown type\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: nieznany typ\n"
 
 #: src/elflint.c:737
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown symbol binding\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznane dowiązanie symbolu\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: nieznane dowiązanie symbolu\n"
 
 #: src/elflint.c:742
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unique symbol not of object type\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: unikalny symbol nie jest typem obiektu\n"
+"sekcja [%2d] „%s”: symbol %zu: unikalny symbol nie jest typem obiektu\n"
 
 #: src/elflint.c:750
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: COMMON only allowed in relocatable files\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: COMMON jest dozwolone tylko w plikach "
+"sekcja [%2d] „%s”: symbol %zu: COMMON jest dozwolone tylko w plikach "
 "relokowalnych\n"
 
 #: src/elflint.c:754
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: local COMMON symbols are nonsense\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: lokalne symbole COMMON to nonsens\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: lokalne symbole COMMON to nonsens\n"
 
 #: src/elflint.c:758
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: funkcja w sekcji COMMON to nonsens\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: funkcja w sekcji COMMON to nonsens\n"
 
-#: src/elflint.c:805
+#: src/elflint.c:809
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: st_value spoza zakresu\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: st_value spoza zakresu\n"
 
-#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885
+#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu does not fit completely in referenced section "
 "[%2d] '%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu nie mieści się w całości we wskazywanej "
-"sekcji [%2d] \"%s\"\n"
+"sekcja [%2d] „%s”: symbol %zu nie mieści się w całości we wskazywanej sekcji "
+"[%2d] „%s”\n"
 
-#: src/elflint.c:820
+#: src/elflint.c:824
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have "
 "SHF_TLS flag set\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: wskazywana sekcja [%2d] \"%s\" nie posiada "
+"sekcja [%2d] „%s”: symbol %zu: wskazywana sekcja [%2d] „%s” nie posiada "
 "ustawionej flagi SHF_TLS\n"
 
-#: src/elflint.c:830 src/elflint.c:878
+#: src/elflint.c:834 src/elflint.c:882
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section "
 "[%2d] '%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: st_value spoza zakresu wskazywanej sekcji "
-"[%2d] \"%s\"\n"
+"sekcja [%2d] „%s”: symbol %zu: st_value spoza zakresu wskazywanej sekcji "
+"[%2d] „%s”\n"
 
-#: src/elflint.c:857
+#: src/elflint.c:861
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka "
+"sekcja [%2d] „%s”: symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka "
 "programu\n"
 
-#: src/elflint.c:863
-#, fuzzy, c-format
+#: src/elflint.c:867
+#, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program "
 "header entry\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka "
-"programu\n"
+"sekcja [%2d] „%s”: symbol %zu: symbol TLS, ale nie można uzyskać wpisu TLS "
+"nagłówka programu\n"
 
-#: src/elflint.c:871
+#: src/elflint.c:875
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] "
 "'%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: st_value pomija wskazywaną sekcję [%2d] \"%s"
-"\"\n"
+"sekcja [%2d] „%s”: symbol %zu: st_value pomija wskazywaną sekcję [%2d] „%s”\n"
 
-#: src/elflint.c:898
+#: src/elflint.c:902
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: local symbol outside range described in "
 "sh_info\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: lokalny symbol spoza zakresu określonego w "
+"sekcja [%2d] „%s”: symbol %zu: lokalny symbol spoza zakresu określonego w "
 "sh_info\n"
 
-#: src/elflint.c:905
+#: src/elflint.c:909
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
 "sh_info\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: nielokalny symbol spoza zakresu określonego "
-"w sh_info\n"
+"sekcja [%2d] „%s”: symbol %zu: nielokalny symbol spoza zakresu określonego w "
+"sh_info\n"
 
-#: src/elflint.c:912
+#: src/elflint.c:916
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: nielokalny symbol sekcji\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: nielokalny symbol sekcji\n"
 
-#: src/elflint.c:962
+#: src/elflint.c:966
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
 "[%2d]\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do błędnej "
-"sekcji [%2d]\n"
+"sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ odnosi się do błędnej sekcji "
+"[%2d]\n"
 
-#: src/elflint.c:969
+#: src/elflint.c:973
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
 "'%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do sekcji [%2d] "
-"\"%s\"\n"
+"sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ odnosi się do sekcji [%2d] "
+"„%s”\n"
 
-#: src/elflint.c:985
+#: src/elflint.c:989
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
 "match %s section address %#<PRIx64>\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wartość symbolu _GLOBAL_OFFSET_TABLE_ %#<PRIx64> nie "
+"sekcja [%2d] „%s”: wartość symbolu _GLOBAL_OFFSET_TABLE_ %#<PRIx64> nie "
 "pasuje do adresu sekcji %s %#<PRIx64>\n"
 
-#: src/elflint.c:992
+#: src/elflint.c:996
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
 "match %s section size %<PRIu64>\n"
 msgstr ""
-"sekcja [%2d] \"%s\": rozmiar symbolu _GLOBAL_OFFSET_TABLE_ %<PRIu64> nie "
+"sekcja [%2d] „%s”: rozmiar symbolu _GLOBAL_OFFSET_TABLE_ %<PRIu64> nie "
 "pasuje do rozmiaru sekcji %s %<PRIu64>\n"
 
-#: src/elflint.c:1000
+#: src/elflint.c:1004
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
 "section\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ."
+"sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ."
 "got\n"
 
-#: src/elflint.c:1016
+#: src/elflint.c:1020
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
 "segment address %#<PRIx64>\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do "
-"adresu segmentu dynamicznego %#<PRIx64>\n"
+"sekcja [%2d] „%s”: wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do adresu "
+"segmentu dynamicznego %#<PRIx64>\n"
 
-#: src/elflint.c:1023
+#: src/elflint.c:1027
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
 "segment size %<PRIu64>\n"
 msgstr ""
-"sekcja [%2d] \"%s\": rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do "
+"sekcja [%2d] „%s”: rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do "
 "rozmiaru segmentu dynamicznego %<PRIu64>\n"
 
-#: src/elflint.c:1036
+#: src/elflint.c:1040
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-"
 "default visibility\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %zu: symbol w dynamicznej tabeli symboli z "
+"sekcja [%2d] „%s”: symbol %zu: symbol w dynamicznej tabeli symboli z "
 "niedomyślną widocznością\n"
 
-#: src/elflint.c:1040
+#: src/elflint.c:1044
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n"
-msgstr "sekcja [%2d] \"%s\": symbol %zu: ustawiono nieznany bit w st_other\n"
+msgstr "sekcja [%2d] „%s”: symbol %zu: ustawiono nieznany bit w st_other\n"
 
-#: src/elflint.c:1078
+#: src/elflint.c:1082
 #, c-format
 msgid "section [%2d] '%s': cannot get section data.\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać danych sekcji.\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji.\n"
 
-#: src/elflint.c:1094
+#: src/elflint.c:1098
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
-msgstr "sekcja [%2d] \"%s\": DT_RELCOUNT użyte dla tej sekcji RELA\n"
+msgstr "sekcja [%2d] „%s”: DT_RELCOUNT użyte dla tej sekcji RELA\n"
 
-#: src/elflint.c:1105 src/elflint.c:1158
+#: src/elflint.c:1109 src/elflint.c:1162
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
-msgstr "sekcja [%2d] \"%s\": DT_RELCOUNT %d za duże dla tej sekcji\n"
+msgstr "sekcja [%2d] „%s”: DT_RELCOUNT %d za duże dla tej sekcji\n"
 
-#: src/elflint.c:1130 src/elflint.c:1183
+#: src/elflint.c:1134 src/elflint.c:1187
 #, c-format
 msgid ""
 "section [%2d] '%s': relative relocations after index %d as specified by "
 "DT_RELCOUNT\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacje względne po indeksie %d podanym przez "
+"sekcja [%2d] „%s”: relokacje względne po indeksie %d podanym przez "
 "DT_RELCOUNT\n"
 
-#: src/elflint.c:1136 src/elflint.c:1189
+#: src/elflint.c:1140 src/elflint.c:1193
 #, c-format
 msgid ""
 "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
 "specified %d relative relocations\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT "
-"podał %d relokacji względnych\n"
+"sekcja [%2d] „%s”: relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT podał "
+"%d relokacji względnych\n"
 
-#: src/elflint.c:1148
+#: src/elflint.c:1152
 #, c-format
 msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
-msgstr "sekcja [%2d] \"%s\": DT_RELACOUNT użyte dla tej sekcji REL\n"
+msgstr "sekcja [%2d] „%s”: DT_RELACOUNT użyte dla tej sekcji REL\n"
 
-#: src/elflint.c:1231
+#: src/elflint.c:1235
 #, c-format
 msgid "section [%2d] '%s': invalid destination section index\n"
-msgstr "sekcja [%2d] \"%s\": nieprawidłowy indeks sekcji docelowej\n"
+msgstr "sekcja [%2d] „%s”: nieprawidłowy indeks sekcji docelowej\n"
 
-#: src/elflint.c:1243
+#: src/elflint.c:1247
 #, c-format
 msgid "section [%2d] '%s': invalid destination section type\n"
-msgstr "sekcja [%2d] \"%s\": nieprawidłowy typ sekcji docelowej\n"
+msgstr "sekcja [%2d] „%s”: nieprawidłowy typ sekcji docelowej\n"
 
-#: src/elflint.c:1251
+#: src/elflint.c:1255
 #, c-format
 msgid "section [%2d] '%s': sh_info should be zero\n"
-msgstr "sekcja [%2d] \"%s\": sh_info powinno wynosić zero\n"
+msgstr "sekcja [%2d] „%s”: sh_info powinno wynosić zero\n"
 
-#: src/elflint.c:1259
-#, fuzzy, c-format
+#: src/elflint.c:1263
+#, c-format
 msgid ""
 "section [%2d] '%s': no relocations for merge-able string sections possible\n"
-msgstr "sekcja [%2d] \"%s\": relokacje dla sekcji złączalnych są niemożliwe\n"
+msgstr ""
+"sekcja [%2d] „%s”: relokacje dla sekcji złączalnych ciągów są niemożliwe\n"
 
-#: src/elflint.c:1267
+#: src/elflint.c:1271
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
-msgstr ""
-"sekcja [%2d] \"%s\": rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n"
+msgstr "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n"
 
-#: src/elflint.c:1327
+#: src/elflint.c:1331
 #, c-format
 msgid "text relocation flag set but there is no read-only segment\n"
 msgstr ""
 "flaga relokacji tekstu jest ustawiona, ale nie posiada segmentu tylko do "
 "odczytu\n"
 
-#: src/elflint.c:1354
+#: src/elflint.c:1358
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid type\n"
-msgstr "sekcja [%2d] \"%s\": relokacja %zu: nieprawidłowy typ\n"
+msgstr "sekcja [%2d] „%s”: relokacja %zu: nieprawidłowy typ\n"
 
-#: src/elflint.c:1362
+#: src/elflint.c:1366
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: relocation type invalid for the file "
 "type\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacja %zu: typ relokacji nieprawidłowy dla tego "
-"typu pliku\n"
+"sekcja [%2d] „%s”: relokacja %zu: typ relokacji nieprawidłowy dla tego typu "
+"pliku\n"
 
-#: src/elflint.c:1370
+#: src/elflint.c:1374
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
-msgstr "sekcja [%2d] \"%s\": relokacja %zu: nieprawidłowy indeks symbolu\n"
+msgstr "sekcja [%2d] „%s”: relokacja %zu: nieprawidłowy indeks symbolu\n"
 
-#: src/elflint.c:1388
+#: src/elflint.c:1392
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
 "be used with %s\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacja %zu: z %s można użyć tylko symbolu "
-"\"_GLOBAL_OFFSET_TABLE_\"\n"
+"sekcja [%2d] „%s”: relokacja %zu: z %s można użyć tylko symbolu "
+"„_GLOBAL_OFFSET_TABLE_”\n"
 
-#: src/elflint.c:1405
+#: src/elflint.c:1409
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
-msgstr "sekcja [%2d] \"%s\": relokacja %zu: offset spoza zakresu\n"
+msgstr "sekcja [%2d] „%s”: relokacja %zu: offset spoza zakresu\n"
 
-#: src/elflint.c:1420
+#: src/elflint.c:1424
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
 "%s\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacja %zu: relokacja kopii względem symbolu typu "
-"%s\n"
+"sekcja [%2d] „%s”: relokacja %zu: relokacja kopii względem symbolu typu %s\n"
 
-#: src/elflint.c:1441
+#: src/elflint.c:1445
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: read-only section modified but text "
 "relocation flag not set\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacja %zu: sekcja tylko do odczytu została "
+"sekcja [%2d] „%s”: relokacja %zu: sekcja tylko do odczytu została "
 "zmodyfikowana, ale nie ustawiono flagi relokacji tekstu\n"
 
-#: src/elflint.c:1456
+#: src/elflint.c:1460
 #, c-format
 msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
 msgstr ""
-"sekcja [%2d] \"%s\": relokacje względem wczytanych i niewczytanych danych\n"
+"sekcja [%2d] „%s”: relokacje względem wczytanych i niewczytanych danych\n"
 
-#: src/elflint.c:1496 src/elflint.c:1547
+#: src/elflint.c:1500 src/elflint.c:1551
 #, c-format
 msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać relokacji %zu: %s\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać relokacji %zu: %s\n"
 
-#: src/elflint.c:1623
+#: src/elflint.c:1627
 #, c-format
 msgid "more than one dynamic section present\n"
 msgstr "obecna jest więcej niż jedna sekcja dynamiczna\n"
 
-#: src/elflint.c:1641
+#: src/elflint.c:1645
 #, c-format
 msgid ""
 "section [%2d]: referenced as string table for section [%2d] '%s' but section "
 "link value is invalid\n"
 msgstr ""
-"sekcja [%2d]: wskazane jako tabela ciągów dla sekcji [%2d] \"%s\", ale "
-"wartość dowiązania sekcji jest nieprawidłowa\n"
+"sekcja [%2d]: wskazane jako tabela ciągów dla sekcji [%2d] „%s”, ale wartość "
+"dowiązania sekcji jest nieprawidłowa\n"
 
-#: src/elflint.c:1649
+#: src/elflint.c:1653
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
-msgstr "sekcja [%2d] \"%s\": rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n"
+msgstr "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n"
 
-#: src/elflint.c:1654 src/elflint.c:1943
+#: src/elflint.c:1658 src/elflint.c:1947
 #, c-format
 msgid "section [%2d] '%s': sh_info not zero\n"
-msgstr "sekcja [%2d] \"%s\": sh_info nie wynosi zero\n"
+msgstr "sekcja [%2d] „%s”: sh_info nie wynosi zero\n"
 
-#: src/elflint.c:1664
+#: src/elflint.c:1668
 #, c-format
 msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
 msgstr ""
-"sekcja [%2d] \"%s\": nie można uzyskać wpisu %zu sekcji dynamicznej: %s\n"
+"sekcja [%2d] „%s”: nie można uzyskać wpisu %zu sekcji dynamicznej: %s\n"
 
-#: src/elflint.c:1672
+#: src/elflint.c:1676
 #, c-format
 msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
-msgstr "sekcja [%2d] \"%s\": wpisy nie-DT_NULL występują po wpisie DT_NULL\n"
+msgstr "sekcja [%2d] „%s”: wpisy nie-DT_NULL występują po wpisie DT_NULL\n"
 
-#: src/elflint.c:1679
+#: src/elflint.c:1683
 #, c-format
 msgid "section [%2d] '%s': entry %zu: unknown tag\n"
-msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n"
+msgstr "sekcja [%2d] „%s”: wpis %zu: nieznany znacznik\n"
 
-#: src/elflint.c:1690
+#: src/elflint.c:1694
 #, c-format
 msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
-msgstr ""
-"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n"
+msgstr "sekcja [%2d] „%s”: wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n"
 
-#: src/elflint.c:1700
+#: src/elflint.c:1704
 #, c-format
 msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
-msgstr "sekcja [%2d] \"%s\": wpis %zu: użyto znacznika %s poziomu 2\n"
+msgstr "sekcja [%2d] „%s”: wpis %zu: użyto znacznika %s poziomu 2\n"
 
-#: src/elflint.c:1718
+#: src/elflint.c:1722
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub "
+"sekcja [%2d] „%s”: wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub "
 "DT_RELA\n"
 
-#: src/elflint.c:1731
+#: src/elflint.c:1735
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: pointer does not match address of section "
 "[%2d] '%s' referenced by sh_link\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] "
-"\"%s\" wskazywanej przez sh_link\n"
+"sekcja [%2d] „%s”: wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] „%s” "
+"wskazywanej przez sh_link\n"
 
-#: src/elflint.c:1774
+#: src/elflint.c:1778
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi wskazywać na wczytany "
-"segment\n"
+"sekcja [%2d] „%s”: wpis %zu: wartość %s musi wskazywać na wczytany segment\n"
 
-#: src/elflint.c:1789
+#: src/elflint.c:1793
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must be valid offset in section "
 "[%2d] '%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi być prawidłowym offsetem w "
-"sekcji [%2d] \"%s\"\n"
+"sekcja [%2d] „%s”: wpis %zu: wartość %s musi być prawidłowym offsetem w "
+"sekcji [%2d] „%s”\n"
 
-#: src/elflint.c:1809 src/elflint.c:1837
+#: src/elflint.c:1813 src/elflint.c:1841
 #, c-format
 msgid "section [%2d] '%s': contains %s entry but not %s\n"
-msgstr "sekcja [%2d] \"%s\": zawiera wpis %s, ale nie %s\n"
+msgstr "sekcja [%2d] „%s”: zawiera wpis %s, ale nie %s\n"
 
-#: src/elflint.c:1821
+#: src/elflint.c:1825
 #, c-format
 msgid "section [%2d] '%s': mandatory tag %s not present\n"
-msgstr "sekcja [%2d] \"%s\": brak obowiązkowego znacznika %s\n"
+msgstr "sekcja [%2d] „%s”: brak obowiązkowego znacznika %s\n"
 
-#: src/elflint.c:1830
+#: src/elflint.c:1834
 #, c-format
 msgid "section [%2d] '%s': no hash section present\n"
-msgstr "sekcja [%2d] \"%s\": brak sekcji skrótów\n"
+msgstr "sekcja [%2d] „%s”: brak sekcji skrótów\n"
 
-#: src/elflint.c:1845 src/elflint.c:1852
+#: src/elflint.c:1849 src/elflint.c:1856
 #, c-format
 msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
-msgstr "sekcja [%2d] \"%s\": nie wszystkie z %s, %s i %s są obecne\n"
+msgstr "sekcja [%2d] „%s”: nie wszystkie z %s, %s i %s są obecne\n"
 
-#: src/elflint.c:1862 src/elflint.c:1866
+#: src/elflint.c:1866 src/elflint.c:1870
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
 msgstr ""
-"sekcja [%2d] \"%s\": brak znacznika %s w DSO oznaczonym podczas wstępnej "
+"sekcja [%2d] „%s”: brak znacznika %s w DSO oznaczonym podczas wstępnej "
 "konsolidacji\n"
 
-#: src/elflint.c:1872
+#: src/elflint.c:1876
 #, c-format
 msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
 msgstr ""
-"sekcja [%2d] \"%s\": plik nie-DSO oznaczony jako zależność podczas wstępnej "
+"sekcja [%2d] „%s”: plik nie-DSO oznaczony jako zależność podczas wstępnej "
 "konsolidacji\n"
 
-#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895
+#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
 msgstr ""
-"sekcja [%2d] \"%s\": brak znacznika %s we wstępnie konsolidowanym pliku "
+"sekcja [%2d] „%s”: brak znacznika %s we wstępnie konsolidowanym pliku "
 "wykonywalnym\n"
 
-#: src/elflint.c:1907
+#: src/elflint.c:1911
 #, c-format
 msgid ""
 "section [%2d] '%s': only relocatable files can have extended section index\n"
 msgstr ""
-"sekcja [%2d] \"%s\": tylko pliki relokowalne mogą mieć rozszerzoną sekcję "
+"sekcja [%2d] „%s”: tylko pliki relokowalne mogą mieć rozszerzoną sekcję "
 "indeksów\n"
 
-#: src/elflint.c:1917
+#: src/elflint.c:1921
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index section not for symbol table\n"
 msgstr ""
-"sekcja [%2d] \"%s\": sekcja rozszerzonych indeksów sekcji nie dla tabeli "
+"sekcja [%2d] „%s”: sekcja rozszerzonych indeksów sekcji nie dla tabeli "
 "symboli\n"
 
-#: src/elflint.c:1921
+#: src/elflint.c:1925
 #, c-format
 msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
 msgstr ""
-"sekcja [%2d] \"%s\": rozszerzony indeks sekcji sh_link [%2d] jest "
+"sekcja [%2d] „%s”: rozszerzony indeks sekcji sh_link [%2d] jest "
 "nieprawidłowy\n"
 
-#: src/elflint.c:1926
+#: src/elflint.c:1930
 #, c-format
 msgid "cannot get data for symbol section\n"
 msgstr "nie można uzyskać danych dla sekcji symboli\n"
 
-#: src/elflint.c:1929
+#: src/elflint.c:1933
 #, c-format
 msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
-msgstr "sekcja [%2d] \"%s\": rozmiar wpisu nie zgadza się z Elf32_Word\n"
+msgstr "sekcja [%2d] „%s”: rozmiar wpisu nie zgadza się z Elf32_Word\n"
 
-#: src/elflint.c:1938
+#: src/elflint.c:1942
 #, c-format
 msgid "section [%2d] '%s': extended index table too small for symbol table\n"
 msgstr ""
-"sekcja [%2d] \"%s\": tabela rozszerzonych indeksów jest za mała dla tabeli "
+"sekcja [%2d] „%s”: tabela rozszerzonych indeksów jest za mała dla tabeli "
 "symboli\n"
 
-#: src/elflint.c:1953
+#: src/elflint.c:1957
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
 "same symbol table\n"
 msgstr ""
-"sekcja [%2d] \"%s\": rozszerzony indeks sekcji w sekcji [%2zu] \"%s\" "
-"odwołuje się do tej samej tabeli symboli\n"
+"sekcja [%2d] „%s”: rozszerzony indeks sekcji w sekcji [%2zu] „%s” odwołuje "
+"się do tej samej tabeli symboli\n"
 
-#: src/elflint.c:1970
+#: src/elflint.c:1974
 #, c-format
 msgid "symbol 0 should have zero extended section index\n"
 msgstr "symbol 0 powinien mieć zerowy rozszerzony indeks sekcji\n"
 
-#: src/elflint.c:1982
+#: src/elflint.c:1986
 #, c-format
 msgid "cannot get data for symbol %zu\n"
 msgstr "nie można uzyskać danych dla symbolu %zu\n"
 
-#: src/elflint.c:1987
+#: src/elflint.c:1991
 #, c-format
 msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
 msgstr ""
 "rozszerzony indeks sekcji wynosi %<PRIu32>, ale indeks symbolu nie wynosi "
 "XINDEX\n"
 
-#: src/elflint.c:2003 src/elflint.c:2054
+#: src/elflint.c:2007 src/elflint.c:2058
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
 msgstr ""
-"sekcja [%2d] \"%s\": sekcja tabeli mieszającej jest za mała (%ld, oczekiwano "
+"sekcja [%2d] „%s”: sekcja tabeli mieszającej jest za mała (%ld, oczekiwano "
 "%ld)\n"
 
-#: src/elflint.c:2015 src/elflint.c:2066
+#: src/elflint.c:2019 src/elflint.c:2070
 #, c-format
 msgid "section [%2d] '%s': chain array too large\n"
-msgstr "sekcja [%2d] \"%s\": tabela łańcuchowa jest za duża\n"
+msgstr "sekcja [%2d] „%s”: tabela łańcuchowa jest za duża\n"
 
-#: src/elflint.c:2029 src/elflint.c:2080
+#: src/elflint.c:2033 src/elflint.c:2084
 #, c-format
 msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
 msgstr ""
-"sekcja [%2d] \"%s\": odwołanie do kubełka skrótu %zu jest spoza zakresu\n"
+"sekcja [%2d] „%s”: odwołanie do kubełka skrótu %zu jest spoza zakresu\n"
 
-#: src/elflint.c:2039
+#: src/elflint.c:2043
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
 msgstr ""
-"sekcja [%2d] \"%s\": odwołanie do łańcucha skrótu %zu jest spoza zakresu\n"
+"sekcja [%2d] „%s”: odwołanie do łańcucha skrótu %zu jest spoza zakresu\n"
 
-#: src/elflint.c:2090
+#: src/elflint.c:2094
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
 msgstr ""
-"sekcja [%2d] \"%s\": odwołanie do łańcucha skrótu %<PRIu64> jest spoza "
+"sekcja [%2d] „%s”: odwołanie do łańcucha skrótu %<PRIu64> jest spoza "
 "zakresu\n"
 
-#: src/elflint.c:2103
+#: src/elflint.c:2107
 #, c-format
 msgid "section [%2d] '%s': not enough data\n"
-msgstr "sekcja [%2d] \"%s\": brak wystarczającej ilości danych\n"
+msgstr "sekcja [%2d] „%s”: brak wystarczającej ilości danych\n"
 
-#: src/elflint.c:2115
+#: src/elflint.c:2119
 #, c-format
 msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
 msgstr ""
-"sekcja [%2d] \"%s\": rozmiar maski bitowej wynosi zero lub nie jest potęgą "
-"2: %u\n"
+"sekcja [%2d] „%s”: rozmiar maski bitowej wynosi zero lub nie jest potęgą 2: "
+"%u\n"
 
-#: src/elflint.c:2131
+#: src/elflint.c:2135
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected at "
 "least %ld)\n"
 msgstr ""
-"sekcja [%2d] \"%s\": sekcja tabeli mieszającej jest za mała (wynosi %ld, "
+"sekcja [%2d] „%s”: sekcja tabeli mieszającej jest za mała (wynosi %ld, "
 "oczekiwano co najmniej %ld)\n"
 
-#: src/elflint.c:2140
+#: src/elflint.c:2144
 #, c-format
 msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
 msgstr ""
-"sekcja [%2d] \"%s\": drugie przesunięcie funkcji mieszającej jest za duże: "
-"%u\n"
+"sekcja [%2d] „%s”: drugie przesunięcie funkcji mieszającej jest za duże: %u\n"
 
-#: src/elflint.c:2174
+#: src/elflint.c:2178
 #, c-format
 msgid ""
 "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
 msgstr ""
-"sekcja [%2d] \"%s\": łańcuch mieszający dla kubełka %zu jest mniejszy niż "
+"sekcja [%2d] „%s”: łańcuch mieszający dla kubełka %zu jest mniejszy niż "
 "przesunięcie indeksu symboli\n"
 
-#: src/elflint.c:2195
+#: src/elflint.c:2199
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
 "undefined\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %u wskazywany w łańcuchu dla kubełka %zu jest "
+"sekcja [%2d] „%s”: symbol %u wskazywany w łańcuchu dla kubełka %zu jest "
 "nieokreślony\n"
 
-#: src/elflint.c:2208
+#: src/elflint.c:2212
 #, c-format
 msgid ""
 "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wartość skrótu dla symbolu %u w łańcuchu dla kubełka "
-"%zu jest błędna\n"
+"sekcja [%2d] „%s”: wartość skrótu dla symbolu %u w łańcuchu dla kubełka %zu "
+"jest błędna\n"
 
-#: src/elflint.c:2217
+#: src/elflint.c:2221
 #, c-format
 msgid ""
 "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
 msgstr ""
-"sekcja [%2d] \"%s\": indeks maski dla symbolu %u w łańcuchu dla kubełka %zu "
+"sekcja [%2d] „%s”: indeks maski dla symbolu %u w łańcuchu dla kubełka %zu "
 "jest błędny\n"
 
-#: src/elflint.c:2247
+#: src/elflint.c:2251
 #, c-format
 msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
-msgstr ""
-"sekcja [%2d] \"%s\": łańcuch skrótu dla kubełka %zu jest spoza zakresu\n"
+msgstr "sekcja [%2d] „%s”: łańcuch skrótu dla kubełka %zu jest spoza zakresu\n"
 
-#: src/elflint.c:2252
+#: src/elflint.c:2256
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
 msgstr ""
-"sekcja [%2d] \"%s\": odwołanie do symbolu w łańcuchu dla kubełka %zu jest "
+"sekcja [%2d] „%s”: odwołanie do symbolu w łańcuchu dla kubełka %zu jest "
 "spoza zakresu\n"
 
-#: src/elflint.c:2258
+#: src/elflint.c:2262
 #, c-format
 msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
 msgstr ""
-"sekcja [%2d] \"%s\": maska bitowa nie pasuje do nazw w tabeli mieszającej\n"
+"sekcja [%2d] „%s”: maska bitowa nie pasuje do nazw w tabeli mieszającej\n"
 
-#: src/elflint.c:2271
+#: src/elflint.c:2275
 #, c-format
 msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
 msgstr ""
-"sekcja [%2d] \"%s\": pliki relokowalne nie mogą posiadać tabeli "
-"mieszających\n"
-
-#: src/elflint.c:2289
-#, c-format
-msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
-msgstr ""
-"sekcja [%2d] \"%s\": tabela mieszająca nie dla tabeli dynamicznych symboli\n"
+"sekcja [%2d] „%s”: pliki relokowalne nie mogą posiadać tabeli mieszających\n"
 
 #: src/elflint.c:2293
 #, c-format
+msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
+msgstr ""
+"sekcja [%2d] „%s”: tabela mieszająca nie dla tabeli dynamicznych symboli\n"
+
+#: src/elflint.c:2297
+#, c-format
 msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
 msgstr ""
-"sekcja [%2d] \"%s\": nieprawidłowy indeks sekcji tabeli symboli sh_link "
-"[%2d]\n"
+"sekcja [%2d] „%s”: nieprawidłowy indeks sekcji tabeli symboli sh_link [%2d]\n"
 
-#: src/elflint.c:2301
+#: src/elflint.c:2305
 #, c-format
 msgid "section [%2d] '%s': hash table entry size incorrect\n"
-msgstr "sekcja [%2d] \"%s\": niepoprawny rozmiar wpisu tabeli mieszającej\n"
+msgstr "sekcja [%2d] „%s”: niepoprawny rozmiar wpisu tabeli mieszającej\n"
 
-#: src/elflint.c:2306
+#: src/elflint.c:2310
 #, c-format
 msgid "section [%2d] '%s': not marked to be allocated\n"
-msgstr "sekcja [%2d] \"%s\": nieoznaczona do przydzielenia\n"
+msgstr "sekcja [%2d] „%s”: nieoznaczona do przydzielenia\n"
 
-#: src/elflint.c:2311
+#: src/elflint.c:2315
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table has not even room for initial administrative "
 "entries\n"
 msgstr ""
-"sekcja [%2d] \"%s\": tabela mieszająca nie posiada miejsca nawet na "
-"początkowe wpisy administracyjne\n"
+"sekcja [%2d] „%s”: tabela mieszająca nie posiada miejsca nawet na początkowe "
+"wpisy administracyjne\n"
 
-#: src/elflint.c:2360
+#: src/elflint.c:2364
 #, c-format
 msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
 msgstr ""
-"sh_link w sekcjach skrótu [%2zu] \"%s\" i [%2zu] \"%s\" nie są identyczne\n"
+"sh_link w sekcjach skrótu [%2zu] „%s” i [%2zu] „%s” nie są identyczne\n"
 
-#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484
+#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488
 #, c-format
 msgid "hash section [%2zu] '%s' does not contain enough data\n"
 msgstr ""
-"sekcja mieszania [%2zu] \"%s\" nie zawiera wystarczającej ilości danych\n"
+"sekcja mieszania [%2zu] „%s” nie zawiera wystarczającej ilości danych\n"
 
-#: src/elflint.c:2405
+#: src/elflint.c:2409
 #, c-format
 msgid "hash section [%2zu] '%s' has zero bit mask words\n"
-msgstr "sekcja mieszania [%2zu] \"%s\" posiada zerowe słowa maski bitów\n"
+msgstr "sekcja mieszania [%2zu] „%s” posiada zerowe słowa maski bitów\n"
 
-#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497
+#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501
 #, c-format
 msgid "hash section [%2zu] '%s' uses too much data\n"
-msgstr "sekcja mieszania [%2zu] \"%s\" używa za dużo danych\n"
+msgstr "sekcja mieszania [%2zu] „%s” używa za dużo danych\n"
 
-#: src/elflint.c:2431
+#: src/elflint.c:2435
 #, c-format
 msgid ""
 "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
 "%<PRIu32>, nentries: %<PRIu32>\n"
 msgstr ""
-"sekcja mieszająca [%2zu] \"%s\" nieprawidłowy indeks symboli %<PRIu32> "
+"sekcja mieszająca [%2zu] „%s” nieprawidłowy indeks symboli %<PRIu32> "
 "(max_nsyms: %<PRIu32>, nentries: %<PRIu32>\n"
 
-#: src/elflint.c:2518
+#: src/elflint.c:2522
 #, c-format
 msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
-msgstr "sekcja mieszania [%2zu] \"%s\" nieprawidłowe sh_entsize\n"
+msgstr "sekcja mieszania [%2zu] „%s” nieprawidłowe sh_entsize\n"
 
-#: src/elflint.c:2528 src/elflint.c:2532
+#: src/elflint.c:2532 src/elflint.c:2536
 #, c-format
 msgid "section [%2zu] '%s': reference to symbol index 0\n"
-msgstr "sekcja [%2zu] \"%s\": odwołanie do symbolu o indeksie 0\n"
+msgstr "sekcja [%2zu] „%s”: odwołanie do symbolu o indeksie 0\n"
 
-#: src/elflint.c:2539
+#: src/elflint.c:2543
 #, c-format
 msgid ""
 "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
 "table in [%2zu] '%s'\n"
 msgstr ""
-"symbol %d wymieniony w nowej tabeli mieszającej w [%2zu] \"%s\", ale nie w "
-"poprzedniej tabeli mieszającej [%2zu] \"%s\"\n"
+"symbol %d wymieniony w nowej tabeli mieszającej w [%2zu] „%s”, ale nie w "
+"poprzedniej tabeli mieszającej [%2zu] „%s”\n"
 
-#: src/elflint.c:2551
+#: src/elflint.c:2555
 #, c-format
 msgid ""
 "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
 "table in [%2zu] '%s'\n"
 msgstr ""
-"symbol %d wymieniony w poprzedniej tabeli mieszającej w [%2zu] \"%s\", ale "
-"nie w nowej tabeli mieszającej w [%2zu] \"%s\"\n"
+"symbol %d wymieniony w poprzedniej tabeli mieszającej w [%2zu] „%s”, ale nie "
+"w nowej tabeli mieszającej w [%2zu] „%s”\n"
 
-#: src/elflint.c:2567
+#: src/elflint.c:2571
 #, c-format
 msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
-msgstr "sekcja [%2d] \"%s\": niezerowe sh_%s dla sekcji NULL\n"
+msgstr "sekcja [%2d] „%s”: niezerowe sh_%s dla sekcji NULL\n"
 
-#: src/elflint.c:2587
+#: src/elflint.c:2591
 #, c-format
 msgid ""
 "section [%2d] '%s': section groups only allowed in relocatable object files\n"
 msgstr ""
-"sekcja [%2d] \"%s\": w plikach obiektów relokowalnych dozwolone są tylko "
-"grupy sekcji\n"
+"sekcja [%2d] „%s”: w plikach obiektów relokowalnych dozwolone są tylko grupy "
+"sekcji\n"
 
-#: src/elflint.c:2598
+#: src/elflint.c:2602
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol table: %s\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać tabeli symboli: %s\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać tabeli symboli: %s\n"
 
-#: src/elflint.c:2603
+#: src/elflint.c:2607
 #, c-format
 msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
 msgstr ""
-"sekcja [%2d] \"%s\": odwołanie do sekcji w sh_link nie posiada tabeli "
-"symboli\n"
+"sekcja [%2d] „%s”: odwołanie do sekcji w sh_link nie posiada tabeli symboli\n"
 
-#: src/elflint.c:2609
+#: src/elflint.c:2613
 #, c-format
 msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
-msgstr "sekcja [%2d] \"%s\": nieprawidłowy indeks symbolu w sh_info\n"
+msgstr "sekcja [%2d] „%s”: nieprawidłowy indeks symbolu w sh_info\n"
 
-#: src/elflint.c:2614
+#: src/elflint.c:2618
 #, c-format
 msgid "section [%2d] '%s': sh_flags not zero\n"
-msgstr "sekcja [%2d] \"%s\": niezerowe sh_flags\n"
-
-#: src/elflint.c:2621
-#, c-format
-msgid "section [%2d] '%s': cannot get symbol for signature\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać symbolu dla podpisu\n"
+msgstr "sekcja [%2d] „%s”: niezerowe sh_flags\n"
 
 #: src/elflint.c:2625
 #, c-format
-msgid "section [%2d] '%s': cannot get symbol name for signature\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać nazwy symbolu dla podpisu\n"
+msgid "section [%2d] '%s': cannot get symbol for signature\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu dla podpisu\n"
 
-#: src/elflint.c:2630
+#: src/elflint.c:2629
+#, c-format
+msgid "section [%2d] '%s': cannot get symbol name for signature\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać nazwy symbolu dla podpisu\n"
+
+#: src/elflint.c:2634
 #, c-format
 msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
-msgstr "sekcja [%2d] \"%s\": symbol podpisu nie można być pustym ciągiem\n"
+msgstr "sekcja [%2d] „%s”: symbol podpisu nie można być pustym ciągiem\n"
 
-#: src/elflint.c:2636
+#: src/elflint.c:2640
 #, c-format
 msgid "section [%2d] '%s': sh_flags not set correctly\n"
-msgstr "sekcja [%2d] \"%s\": sh_flags nie ustawione poprawnie\n"
+msgstr "sekcja [%2d] „%s”: sh_flags nie ustawione poprawnie\n"
 
-#: src/elflint.c:2642
+#: src/elflint.c:2646
 #, c-format
 msgid "section [%2d] '%s': cannot get data: %s\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać danych: %s\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać danych: %s\n"
 
-#: src/elflint.c:2651
+#: src/elflint.c:2655
 #, c-format
 msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
 msgstr ""
-"sekcja [%2d] \"%s\": rozmiar sekcji nie jest wielokrotnością "
+"sekcja [%2d] „%s”: rozmiar sekcji nie jest wielokrotnością "
 "sizeof(Elf32_Word)\n"
 
-#: src/elflint.c:2656
+#: src/elflint.c:2660
 #, c-format
 msgid "section [%2d] '%s': section group without flags word\n"
-msgstr "sekcja [%2d] \"%s\": grupa sekcji bez słowa flag\n"
-
-#: src/elflint.c:2662
-#, c-format
-msgid "section [%2d] '%s': section group without member\n"
-msgstr "sekcja [%2d] \"%s\": grupa sekcji bez elementów\n"
+msgstr "sekcja [%2d] „%s”: grupa sekcji bez słowa flag\n"
 
 #: src/elflint.c:2666
 #, c-format
-msgid "section [%2d] '%s': section group with only one member\n"
-msgstr "sekcja [%2d] \"%s\": grupa sekcji z tylko jednym elementem\n"
+msgid "section [%2d] '%s': section group without member\n"
+msgstr "sekcja [%2d] „%s”: grupa sekcji bez elementów\n"
 
-#: src/elflint.c:2677
+#: src/elflint.c:2670
+#, c-format
+msgid "section [%2d] '%s': section group with only one member\n"
+msgstr "sekcja [%2d] „%s”: grupa sekcji z tylko jednym elementem\n"
+
+#: src/elflint.c:2681
 #, c-format
 msgid "section [%2d] '%s': unknown section group flags\n"
-msgstr "sekcja [%2d] \"%s\": nieznane flagi grupy sekcji\n"
+msgstr "sekcja [%2d] „%s”: nieznane flagi grupy sekcji\n"
 
-#: src/elflint.c:2689
-#, fuzzy, c-format
+#: src/elflint.c:2693
+#, c-format
 msgid "section [%2d] '%s': section index %zu out of range\n"
-msgstr "sekcja [%2d] \"%s\": indeks sekcji %Zu jest spoza zakresu\n"
+msgstr "sekcja [%2d] „%s”: indeks sekcji %zu jest spoza zakresu\n"
 
-#: src/elflint.c:2698
+#: src/elflint.c:2702
 #, c-format
 msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
 msgstr ""
-"sekcja [%2d] \"%s\": nie można uzyskać nagłówka sekcji dla elementu %zu: %s\n"
+"sekcja [%2d] „%s”: nie można uzyskać nagłówka sekcji dla elementu %zu: %s\n"
 
-#: src/elflint.c:2705
+#: src/elflint.c:2709
 #, c-format
 msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
-msgstr "sekcja [%2d] \"%s\": grupa sekcji zawiera inną grupę [%2d] \"%s\"\n"
+msgstr "sekcja [%2d] „%s”: grupa sekcji zawiera inną grupę [%2d] „%s”\n"
 
-#: src/elflint.c:2711
-#, fuzzy, c-format
+#: src/elflint.c:2715
+#, c-format
 msgid ""
 "section [%2d] '%s': element %zu references section [%2d] '%s' without "
 "SHF_GROUP flag set\n"
 msgstr ""
-"sekcja [%2d] \"%s\": element %Zu odwołuje się do sekcji [%2d] \"%s\" bez "
-"flagi SHF_GROUP\n"
+"sekcja [%2d] „%s”: element %zu odwołuje się do sekcji [%2d] „%s” bez flagi "
+"SHF_GROUP\n"
 
-#: src/elflint.c:2718
+#: src/elflint.c:2722
 #, c-format
 msgid "section [%2d] '%s' is contained in more than one section group\n"
-msgstr "sekcja [%2d] \"%s\" jest zawarta w więcej niż jednej grupie sekcji\n"
+msgstr "sekcja [%2d] „%s” jest zawarta w więcej niż jednej grupie sekcji\n"
 
-#: src/elflint.c:2907
+#: src/elflint.c:2912
 #, c-format
 msgid ""
 "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
 "dynamic symbol table\n"
 msgstr ""
-"sekcja [%2d] \"%s\" odwołuje się w sh_link do sekcji [%2d] \"%s\", która nie "
+"sekcja [%2d] „%s” odwołuje się w sh_link do sekcji [%2d] „%s”, która nie "
 "jest tabelą symboli dynamicznych\n"
 
-#: src/elflint.c:2919
+#: src/elflint.c:2924
 #, c-format
 msgid ""
 "section [%2d] '%s' has different number of entries than symbol table [%2d] "
 "'%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\" posiada inną liczbę wpisów niż tabela symboli [%2d] \"%s"
-"\"\n"
+"sekcja [%2d] „%s” posiada inną liczbę wpisów niż tabela symboli [%2d] „%s”\n"
 
-#: src/elflint.c:2935
+#: src/elflint.c:2940
 #, c-format
 msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
-msgstr "sekcja [%2d] \"%s\": symbol %d: nie można odczytać danych wersji\n"
+msgstr "sekcja [%2d] „%s”: symbol %d: nie można odczytać danych wersji\n"
 
-#: src/elflint.c:2951
+#: src/elflint.c:2956
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
-msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z zakresem globalnym\n"
+msgstr "sekcja [%2d] „%s”: symbol %d: symbol lokalny z zakresem globalnym\n"
 
-#: src/elflint.c:2959
+#: src/elflint.c:2964
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
-msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z wersją\n"
-
-#: src/elflint.c:2973
-#, c-format
-msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
-msgstr "sekcja [%2d] \"%s\": symbol %d: nieprawidłowy indeks wersji %d\n"
+msgstr "sekcja [%2d] „%s”: symbol %d: symbol lokalny z wersją\n"
 
 #: src/elflint.c:2978
 #, c-format
+msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
+msgstr "sekcja [%2d] „%s”: symbol %d: nieprawidłowy indeks wersji %d\n"
+
+#: src/elflint.c:2983
+#, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for defined version\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji określonej\n"
+"sekcja [%2d] „%s”: symbol %d: indeks wersji %d jest dla wersji określonej\n"
 
-#: src/elflint.c:2988
+#: src/elflint.c:2993
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for requested version\n"
 msgstr ""
-"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji żądanej\n"
+"sekcja [%2d] „%s”: symbol %d: indeks wersji %d jest dla wersji żądanej\n"
 
-#: src/elflint.c:3041
+#: src/elflint.c:3046
 #, c-format
 msgid "more than one version reference section present\n"
 msgstr "obecna jest więcej niż jedna sekcja odniesienia wersji\n"
 
-#: src/elflint.c:3049 src/elflint.c:3196
+#: src/elflint.c:3054 src/elflint.c:3201
 #, c-format
 msgid "section [%2d] '%s': sh_link does not link to string table\n"
-msgstr "sekcja [%2d] \"%s\": sh_link nie łączy się z tabelą ciągów\n"
+msgstr "sekcja [%2d] „%s”: sh_link nie łączy się z tabelą ciągów\n"
 
-#: src/elflint.c:3074 src/elflint.c:3250
+#: src/elflint.c:3079 src/elflint.c:3255
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong version %d\n"
-msgstr "sekcja [%2d] \"%s\": wpis %d posiada błędną wersję %d\n"
+msgstr "sekcja [%2d] „%s”: wpis %d posiada błędną wersję %d\n"
 
-#: src/elflint.c:3081 src/elflint.c:3257
+#: src/elflint.c:3086 src/elflint.c:3262
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada błędny offset dla danych dodatkowych\n"
+"sekcja [%2d] „%s”: wpis %d posiada błędny offset dla danych dodatkowych\n"
 
-#: src/elflint.c:3091
+#: src/elflint.c:3096
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid file reference\n"
-msgstr "sekcja [%2d] \"%s\": symbol %d posiada błędne odniesienie do pliku\n"
+msgstr "sekcja [%2d] „%s”: symbol %d posiada błędne odniesienie do pliku\n"
 
-#: src/elflint.c:3099
+#: src/elflint.c:3104
 #, c-format
 msgid "section [%2d] '%s': entry %d references unknown dependency\n"
-msgstr "sekcja [%2d] \"%s\": wpis %d odnosi się do nieznanej zależności\n"
+msgstr "sekcja [%2d] „%s”: wpis %d odnosi się do nieznanej zależności\n"
 
-#: src/elflint.c:3111
+#: src/elflint.c:3116
 #, c-format
 msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada nieznaną flagę\n"
+"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada nieznaną flagę\n"
 
-#: src/elflint.c:3119
+#: src/elflint.c:3124
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
 "reference\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada nieprawidłowe "
+"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada nieprawidłowe "
 "odniesienie do nazwy\n"
 
-#: src/elflint.c:3128
+#: src/elflint.c:3133
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
 "%#x, expected %#x\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada błędną wartość "
+"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada błędną wartość "
 "skrótu: %#x, oczekiwano %#x\n"
 
-#: src/elflint.c:3137
+#: src/elflint.c:3142
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
 "name '%s'\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada powtórzoną nazwę "
-"wersji \"%s\"\n"
+"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada powtórzoną nazwę "
+"wersji „%s”\n"
 
-#: src/elflint.c:3148
+#: src/elflint.c:3153
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada błędne następne "
+"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada błędne następne "
 "pole\n"
 
-#: src/elflint.c:3165 src/elflint.c:3341
+#: src/elflint.c:3170 src/elflint.c:3346
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
-msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada błędny offset do następnego wpisu\n"
+msgstr "sekcja [%2d] „%s”: wpis %d posiada błędny offset do następnego wpisu\n"
 
-#: src/elflint.c:3173 src/elflint.c:3349
+#: src/elflint.c:3178 src/elflint.c:3354
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
 "there are more entries\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada zerowy offset do następnego wpisu, ale "
+"sekcja [%2d] „%s”: wpis %d posiada zerowy offset do następnego wpisu, ale "
 "sh_info zawiera informacje o więcej wpisów\n"
 
-#: src/elflint.c:3188
+#: src/elflint.c:3193
 #, c-format
 msgid "more than one version definition section present\n"
 msgstr "obecna jest więcej niż jedna sekcja definicji wersji\n"
 
-#: src/elflint.c:3235
+#: src/elflint.c:3240
 #, c-format
 msgid "section [%2d] '%s': more than one BASE definition\n"
-msgstr "sekcja [%2d] \"%s\": jest więcej niż jedna definicja BASE\n"
+msgstr "sekcja [%2d] „%s”: jest więcej niż jedna definicja BASE\n"
 
-#: src/elflint.c:3239
+#: src/elflint.c:3244
 #, c-format
 msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
 msgstr ""
-"sekcja [%2d] \"%s\": definicja BASE musi posiadać indeks VER_NDX_GLOBAL\n"
+"sekcja [%2d] „%s”: definicja BASE musi posiadać indeks VER_NDX_GLOBAL\n"
 
-#: src/elflint.c:3245
+#: src/elflint.c:3250
 #, c-format
 msgid "section [%2d] '%s': entry %d has unknown flag\n"
-msgstr "sekcja [%2d] \"%s\": wpis %d posiada nieznaną flagę\n"
+msgstr "sekcja [%2d] „%s”: wpis %d posiada nieznaną flagę\n"
 
-#: src/elflint.c:3272
+#: src/elflint.c:3277
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid name reference\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada nieprawidłowe odniesienie do nazwy\n"
+"sekcja [%2d] „%s”: wpis %d posiada nieprawidłowe odniesienie do nazwy\n"
 
-#: src/elflint.c:3279
+#: src/elflint.c:3284
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada błędną wartość skrótu: %#x, oczekiwano "
+"sekcja [%2d] „%s”: wpis %d posiada błędną wartość skrótu: %#x, oczekiwano "
 "%#x\n"
 
-#: src/elflint.c:3287
+#: src/elflint.c:3292
 #, c-format
 msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
-msgstr "sekcja [%2d] \"%s\": wpis %d posiada powtórzoną nazwę wersji \"%s\"\n"
+msgstr "sekcja [%2d] „%s”: wpis %d posiada powtórzoną nazwę wersji „%s”\n"
 
-#: src/elflint.c:3307
+#: src/elflint.c:3312
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada nieprawidłowe odniesienie do nazwy w "
+"sekcja [%2d] „%s”: wpis %d posiada nieprawidłowe odniesienie do nazwy w "
 "danych dodatkowych\n"
 
-#: src/elflint.c:3324
+#: src/elflint.c:3329
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
 msgstr ""
-"sekcja [%2d] \"%s\": wpis %d posiada błędne następne pole w danych "
+"sekcja [%2d] „%s”: wpis %d posiada błędne następne pole w danych "
 "dodatkowych\n"
 
-#: src/elflint.c:3357
+#: src/elflint.c:3362
 #, c-format
 msgid "section [%2d] '%s': no BASE definition\n"
-msgstr "sekcja [%2d] \"%s\": brak definicji BASE\n"
+msgstr "sekcja [%2d] „%s”: brak definicji BASE\n"
 
-#: src/elflint.c:3373
+#: src/elflint.c:3378
 #, c-format
 msgid "section [%2d] '%s': unknown parent version '%s'\n"
-msgstr "sekcja [%2d] \"%s\": nieznana wersja rodzica \"%s\"\n"
+msgstr "sekcja [%2d] „%s”: nieznana wersja rodzica „%s”\n"
 
-#: src/elflint.c:3386
+#: src/elflint.c:3391
 #, c-format
 msgid "section [%2d] '%s': empty object attributes section\n"
-msgstr "sekcja [%2d] \"%s\": pusta sekcja atrybutów obiektu\n"
+msgstr "sekcja [%2d] „%s”: pusta sekcja atrybutów obiektu\n"
 
-#: src/elflint.c:3407
+#: src/elflint.c:3412
 #, c-format
 msgid "section [%2d] '%s': unrecognized attribute format\n"
-msgstr "sekcja [%2d] \"%s\": nierozpoznany format atrybutu\n"
+msgstr "sekcja [%2d] „%s”: nierozpoznany format atrybutu\n"
 
-#: src/elflint.c:3423
+#: src/elflint.c:3428
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute section\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: pole o zerowej długości w sekcji atrybutów\n"
+"sekcja [%2d] „%s”: offset %zu: pole o zerowej długości w sekcji atrybutów\n"
 
-#: src/elflint.c:3432
+#: src/elflint.c:3437
 #, c-format
 msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: nieprawidłowa długość w sekcji atrybutów\n"
+"sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w sekcji atrybutów\n"
 
-#: src/elflint.c:3444
+#: src/elflint.c:3449
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
-msgstr "sekcja [%2d] \"%s\": offset %zu: niezakończony ciąg nazwy producenta\n"
+msgstr "sekcja [%2d] „%s”: offset %zu: niezakończony ciąg nazwy producenta\n"
 
-#: src/elflint.c:3461
+#: src/elflint.c:3466
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: niekończące się ULEB128 w znaczniku "
-"podsekcji atrybutów\n"
+"sekcja [%2d] „%s”: offset %zu: niekończące się ULEB128 w znaczniku podsekcji "
+"atrybutów\n"
 
-#: src/elflint.c:3470
+#: src/elflint.c:3475
 #, c-format
 msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
-msgstr "sekcja [%2d] \"%s\": offset %zu: skrócona sekcja atrybutów\n"
+msgstr "sekcja [%2d] „%s”: offset %zu: skrócona sekcja atrybutów\n"
 
-#: src/elflint.c:3479
+#: src/elflint.c:3484
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: zerowej długości pole w podsekcji "
-"atrybutów\n"
+"sekcja [%2d] „%s”: offset %zu: zerowej długości pole w podsekcji atrybutów\n"
 
-#: src/elflint.c:3494
+#: src/elflint.c:3499
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: nieprawidłowa długość w podsekcji "
-"atrybutów\n"
+"sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w podsekcji atrybutów\n"
 
-#: src/elflint.c:3505
+#: src/elflint.c:3510
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: podsekcja atrybutów posiada nieoczekiwany "
+"sekcja [%2d] „%s”: offset %zu: podsekcja atrybutów posiada nieoczekiwany "
 "znacznik %u\n"
 
-#: src/elflint.c:3523
+#: src/elflint.c:3528
 #, c-format
 msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: niekończące się ULEB128 w znaczniku "
-"atrybutu\n"
+"sekcja [%2d] „%s”: offset %zu: niekończące się ULEB128 w znaczniku atrybutu\n"
 
-#: src/elflint.c:3534
+#: src/elflint.c:3539
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
-msgstr "sekcja [%2d] \"%s\": offset %zu: niezakończony ciąg w atrybucie\n"
+msgstr "sekcja [%2d] „%s”: offset %zu: niezakończony ciąg w atrybucie\n"
 
-#: src/elflint.c:3547
+#: src/elflint.c:3552
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
-msgstr "sekcja [%2d] \"%s\": offset %zu: nierozpoznany znacznik atrybutu %u\n"
+msgstr "sekcja [%2d] „%s”: offset %zu: nierozpoznany znacznik atrybutu %u\n"
 
-#: src/elflint.c:3551
+#: src/elflint.c:3556
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: atrybut %s posiada nierozpoznaną wartość "
+"sekcja [%2d] „%s”: offset %zu: atrybut %s posiada nierozpoznaną wartość "
 "%<PRIu64>\n"
 
-#: src/elflint.c:3561
+#: src/elflint.c:3566
 #, c-format
 msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
-msgstr "sekcja [%2d] \"%s\": offset %zu: producent \"%s\" jest nieznany\n"
+msgstr "sekcja [%2d] „%s”: offset %zu: producent „%s” jest nieznany\n"
 
-#: src/elflint.c:3567
+#: src/elflint.c:3572
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
 msgstr ""
-"sekcja [%2d] \"%s\": offset %zu: dodatkowe bajty po ostatniej sekcji "
+"sekcja [%2d] „%s”: offset %zu: dodatkowe bajty po ostatniej sekcji "
 "atrybutów\n"
 
-#: src/elflint.c:3656
+#: src/elflint.c:3661
 #, c-format
 msgid "cannot get section header of zeroth section\n"
 msgstr "nie można uzyskać nagłówka sekcji zerowej\n"
 
-#: src/elflint.c:3660
+#: src/elflint.c:3665
 #, c-format
 msgid "zeroth section has nonzero name\n"
 msgstr "sekcja zerowa posiada niezerową nazwę\n"
 
-#: src/elflint.c:3662
+#: src/elflint.c:3667
 #, c-format
 msgid "zeroth section has nonzero type\n"
 msgstr "sekcja zerowa posiada niezerowy typ\n"
 
-#: src/elflint.c:3664
+#: src/elflint.c:3669
 #, c-format
 msgid "zeroth section has nonzero flags\n"
 msgstr "sekcja zerowa posiada niezerowe flagi\n"
 
-#: src/elflint.c:3666
+#: src/elflint.c:3671
 #, c-format
 msgid "zeroth section has nonzero address\n"
 msgstr "sekcja zerowa posiada niezerowy adres\n"
 
-#: src/elflint.c:3668
+#: src/elflint.c:3673
 #, c-format
 msgid "zeroth section has nonzero offset\n"
 msgstr "sekcja zerowa posiada niezerowy offset\n"
 
-#: src/elflint.c:3670
+#: src/elflint.c:3675
 #, c-format
 msgid "zeroth section has nonzero align value\n"
 msgstr "sekcja zerowa posiada niezerową wartość wyrównania\n"
 
-#: src/elflint.c:3672
+#: src/elflint.c:3677
 #, c-format
 msgid "zeroth section has nonzero entry size value\n"
 msgstr "sekcja zerowa posiada niezerową wartość rozmiaru wpisu\n"
 
-#: src/elflint.c:3675
+#: src/elflint.c:3680
 #, c-format
 msgid ""
 "zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -2761,7 +2778,7 @@
 "sekcja zerowa posiada niezerową wartość rozmiaru, a nagłówek ELF posiada "
 "niezerową wartość shnum\n"
 
-#: src/elflint.c:3679
+#: src/elflint.c:3684
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
@@ -2770,7 +2787,7 @@
 "sekcja zerowa posiada niezerową wartość dowiązań, a nagłówek ELF nie "
 "wskazuje przepełnienia w shstrndx\n"
 
-#: src/elflint.c:3683
+#: src/elflint.c:3688
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
@@ -2779,224 +2796,236 @@
 "sekcja zerowa posiada niezerową wartość dowiązań, a nagłówek ELF nie "
 "wskazuje przepełnienia w phnum\n"
 
-#: src/elflint.c:3700
+#: src/elflint.c:3706
 #, c-format
 msgid "cannot get section header for section [%2zu] '%s': %s\n"
-msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] \"%s\": %s\n"
+msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] „%s”: %s\n"
 
-#: src/elflint.c:3709
+#: src/elflint.c:3715
 #, c-format
 msgid "section [%2zu]: invalid name\n"
 msgstr "sekcja [%2zu]: nieprawidłowa nazwa\n"
 
-#: src/elflint.c:3736
+#: src/elflint.c:3742
 #, c-format
 msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
-msgstr "sekcja [%2d] \"%s\" posiada błędny typ: oczekiwano %s, jest %s\n"
+msgstr "sekcja [%2d] „%s” posiada błędny typ: oczekiwano %s, jest %s\n"
 
-#: src/elflint.c:3752
+#: src/elflint.c:3760
 #, c-format
 msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
-msgstr "sekcja [%2zu] \"%s\" posiada błędne flagi: oczekiwano %s, jest %s\n"
+msgstr "sekcja [%2zu] „%s” posiada błędne flagi: oczekiwano %s, jest %s\n"
 
-#: src/elflint.c:3769
+#: src/elflint.c:3778
 #, c-format
 msgid ""
 "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" posiada błędne flagi: oczekiwano %s i być może %s, jest "
+"sekcja [%2zu] „%s” posiada błędne flagi: oczekiwano %s i być może %s, jest "
 "%s\n"
 
-#: src/elflint.c:3787
+#: src/elflint.c:3796
 #, c-format
 msgid "section [%2zu] '%s' present in object file\n"
-msgstr "sekcja [%2zu] \"%s\" jest obecna w pliku obiektu\n"
+msgstr "sekcja [%2zu] „%s” jest obecna w pliku obiektu\n"
 
-#: src/elflint.c:3793 src/elflint.c:3825
+#: src/elflint.c:3802 src/elflint.c:3834
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" posiada flagę SHF_ALLOC, ale nie posiada segmentu "
+"sekcja [%2zu] „%s” posiada flagę SHF_ALLOC, ale nie posiada segmentu "
 "wczytywalnego\n"
 
-#: src/elflint.c:3798 src/elflint.c:3830
+#: src/elflint.c:3807 src/elflint.c:3839
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
 "segments\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" nie posiada flagi SHF_ALLOC, ale są segmenty "
-"wczytywalne\n"
+"sekcja [%2zu] „%s” nie posiada flagi SHF_ALLOC, ale są segmenty wczytywalne\n"
 
-#: src/elflint.c:3806
+#: src/elflint.c:3815
 #, c-format
 msgid ""
 "section [%2zu] '%s' is extension section index table in non-object file\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" jest tabelą indeksów sekcji rozszerzeń w pliku "
+"sekcja [%2zu] „%s” jest tabelą indeksów sekcji rozszerzeń w pliku "
 "nieobiektowym\n"
 
-#: src/elflint.c:3849
+#: src/elflint.c:3858
 #, c-format
 msgid "section [%2zu] '%s': size not multiple of entry size\n"
-msgstr ""
-"sekcja [%2zu] \"%s\": rozmiar nie jest wielokrotnością rozmiaru wpisu\n"
+msgstr "sekcja [%2zu] „%s”: rozmiar nie jest wielokrotnością rozmiaru wpisu\n"
 
-#: src/elflint.c:3854
+#: src/elflint.c:3863
 #, c-format
 msgid "cannot get section header\n"
 msgstr "nie można uzyskać nagłówka sekcji\n"
 
-#: src/elflint.c:3864
+#: src/elflint.c:3873
 #, c-format
 msgid "section [%2zu] '%s' has unsupported type %d\n"
-msgstr "sekcja [%2zu] \"%s\" posiada nieobsługiwany typ %d\n"
+msgstr "sekcja [%2zu] „%s” posiada nieobsługiwany typ %d\n"
 
-#: src/elflint.c:3878
+#: src/elflint.c:3888
 #, c-format
 msgid ""
 "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" zawiera nieprawidłowe flagi specyficzne dla procesora "
+"sekcja [%2zu] „%s” zawiera nieprawidłowe flagi specyficzne dla procesora "
 "%#<PRIx64>\n"
 
-#: src/elflint.c:3885
+#: src/elflint.c:3895
 #, c-format
 msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
-msgstr "sekcja [%2zu] \"%s\" zawiera nieznane flagi %#<PRIx64>\n"
+msgstr "sekcja [%2zu] „%s” zawiera nieznane flagi %#<PRIx64>\n"
 
-#: src/elflint.c:3893
+#: src/elflint.c:3903
 #, c-format
 msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
 msgstr ""
-"sekcja [%2zu] \"%s\": adres sekcji danych lokalnych dla wątków nie jest "
-"zerem\n"
-
-#: src/elflint.c:3901
-#, c-format
-msgid "section [%2zu] '%s': invalid section reference in link value\n"
-msgstr ""
-"sekcja [%2zu] \"%s\": nieprawidłowe odwołanie do sekcji w wartości "
-"dowiązania\n"
-
-#: src/elflint.c:3906
-#, c-format
-msgid "section [%2zu] '%s': invalid section reference in info value\n"
-msgstr ""
-"sekcja [%2zu] \"%s\": nieprawidłowe odwołanie do sekcji w wartości "
-"informacyjnej\n"
+"sekcja [%2zu] „%s”: adres sekcji danych lokalnych dla wątków nie jest zerem\n"
 
 #: src/elflint.c:3913
 #, c-format
-msgid "section [%2zu] '%s': strings flag set without merge flag\n"
-msgstr "sekcja [%2zu] \"%s\": flaga ciągów jest ustawiona bez flagi merge\n"
+msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
+msgstr "sekcja [%2zu] „%s”: nie można skompresować przydzielonej sekcji\n"
 
 #: src/elflint.c:3918
 #, c-format
+msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
+msgstr "sekcja [%2zu] „%s”: nie można skompresować sekcji „nobits”\n"
+
+#: src/elflint.c:3924
+#, c-format
+msgid ""
+"section [%2zu] '%s': compressed section with no compression header: %s\n"
+msgstr "sekcja [%2zu] „%s”: skompresowana sekcja bez nagłówka kompresji: %s\n"
+
+#: src/elflint.c:3930
+#, c-format
+msgid "section [%2zu] '%s': invalid section reference in link value\n"
+msgstr ""
+"sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości dowiązania\n"
+
+#: src/elflint.c:3935
+#, c-format
+msgid "section [%2zu] '%s': invalid section reference in info value\n"
+msgstr ""
+"sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości "
+"informacyjnej\n"
+
+#: src/elflint.c:3942
+#, c-format
+msgid "section [%2zu] '%s': strings flag set without merge flag\n"
+msgstr "sekcja [%2zu] „%s”: flaga ciągów jest ustawiona bez flagi merge\n"
+
+#: src/elflint.c:3947
+#, c-format
 msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
 msgstr ""
-"sekcja [%2zu] \"%s\": flaga merge jest ustawiona, ale rozmiar wpisu jest "
+"sekcja [%2zu] „%s”: flaga merge jest ustawiona, ale rozmiar wpisu jest "
 "zerowy\n"
 
-#: src/elflint.c:3936
+#: src/elflint.c:3965
 #, c-format
 msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" posiada nieoczekiwany typ %d dla sekcji wykonywalnej\n"
+"sekcja [%2zu] „%s” posiada nieoczekiwany typ %d dla sekcji wykonywalnej\n"
 
-#: src/elflint.c:3945
-#, fuzzy, c-format
+#: src/elflint.c:3974
+#, c-format
 msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
-msgstr "sekcja [%2zu] \"%s\" nie może być zapisywalna\n"
+msgstr "sekcja [%2zu] „%s” musi być typu NOBITS w plikach debuginfo\n"
 
-#: src/elflint.c:3952
+#: src/elflint.c:3981
 #, c-format
 msgid "section [%2zu] '%s' is both executable and writable\n"
-msgstr "sekcja [%2zu] \"%s\" jest wykonywalne i zapisywalne\n"
+msgstr "sekcja [%2zu] „%s” jest wykonywalne i zapisywalne\n"
 
-#: src/elflint.c:3982
+#: src/elflint.c:4012
 #, c-format
 msgid ""
 "section [%2zu] '%s' not fully contained in segment of program header entry "
 "%d\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" nie jest w całości zawarta w segmencie wpisu %d "
-"nagłówka programu\n"
+"sekcja [%2zu] „%s” nie jest w całości zawarta w segmencie wpisu %d nagłówka "
+"programu\n"
 
-#: src/elflint.c:3992
+#: src/elflint.c:4022
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
 "program header entry %d\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" posiada typ NOBITS, a jest odczytywana z pliku w "
+"sekcja [%2zu] „%s” posiada typ NOBITS, a jest odczytywana z pliku w "
 "segmencie wpisu %d nagłówka programu\n"
 
-#: src/elflint.c:4018
-#, fuzzy, c-format
+#: src/elflint.c:4048
+#, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
 "program header entry %d and file contents is non-zero\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" posiada typ NOBITS, a jest odczytywana z pliku w "
-"segmencie wpisu %d nagłówka programu\n"
+"sekcja [%2zu] „%s” posiada typ NOBITS, ale jest odczytywana z pliku w "
+"segmencie wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n"
 
-#: src/elflint.c:4029
+#: src/elflint.c:4059
 #, c-format
 msgid ""
 "section [%2zu] '%s' has not type NOBITS but is not read from the file in "
 "segment of program header entry %d\n"
 msgstr ""
-"sekcja [%2zu] \"%s\" nie posiada typu NOBITS, a nie jest odczytywana z pliku "
-"w segmencie wpisu %d nagłówka programu\n"
+"sekcja [%2zu] „%s” nie posiada typu NOBITS, a nie jest odczytywana z pliku w "
+"segmencie wpisu %d nagłówka programu\n"
 
-#: src/elflint.c:4040
+#: src/elflint.c:4070
 #, c-format
 msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
-msgstr "sekcja [%2zu] \"%s\" jest wykonywalne w segmencie niewykonywalnym %d\n"
+msgstr "sekcja [%2zu] „%s” jest wykonywalne w segmencie niewykonywalnym %d\n"
 
-#: src/elflint.c:4050
+#: src/elflint.c:4080
 #, c-format
 msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
-msgstr "sekcja [%2zu] \"%s\" jest zapisywalne w niezapisywalnym segmencie %d\n"
+msgstr "sekcja [%2zu] „%s” jest zapisywalne w niezapisywalnym segmencie %d\n"
 
-#: src/elflint.c:4060
+#: src/elflint.c:4090
 #, c-format
 msgid ""
 "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
 msgstr ""
-"sekcja [%2zu] \"%s\": posiada flagę alloc, ale sekcja nie jest w żadnym "
+"sekcja [%2zu] „%s”: posiada flagę alloc, ale sekcja nie jest w żadnym "
 "segmencie wczytywalnym\n"
 
-#: src/elflint.c:4066
+#: src/elflint.c:4096
 #, c-format
 msgid ""
 "section [%2zu] '%s': ELF header says this is the section header string table "
 "but type is not SHT_TYPE\n"
 msgstr ""
-"sekcja [%2zu] \"%s\": według nagłówka ELF to jest tabela ciągów nagłówków "
+"sekcja [%2zu] „%s”: według nagłówka ELF to jest tabela ciągów nagłówków "
 "sekcji, ale typ nie jest SHT_TYPE\n"
 
-#: src/elflint.c:4074
+#: src/elflint.c:4104
 #, c-format
 msgid ""
 "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
 msgstr ""
-"sekcja [%2zu] \"%s\": pliki relokowalne nie mogą posiadać tabeli symboli "
+"sekcja [%2zu] „%s”: pliki relokowalne nie mogą posiadać tabeli symboli "
 "dynamicznych\n"
 
-#: src/elflint.c:4125
+#: src/elflint.c:4155
 #, c-format
 msgid "more than one version symbol table present\n"
 msgstr "obecna jest więcej niż jedna tabela symboli wersji\n"
 
-#: src/elflint.c:4148
+#: src/elflint.c:4178
 #, c-format
 msgid "INTERP program header entry but no .interp section\n"
 msgstr "jest wpis nagłówka programu INTERP, ale nie posiada sekcji .interp\n"
 
-#: src/elflint.c:4159
+#: src/elflint.c:4189
 #, c-format
 msgid ""
 "loadable segment [%u] is executable but contains no executable sections\n"
@@ -3004,14 +3033,14 @@
 "wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych "
 "sekcji\n"
 
-#: src/elflint.c:4165
+#: src/elflint.c:4195
 #, c-format
 msgid "loadable segment [%u] is writable but contains no writable sections\n"
 msgstr ""
 "wczytywalny segment [%u] jest zapisywalny, ale nie zawiera zapisywalnych "
 "sekcji\n"
 
-#: src/elflint.c:4176
+#: src/elflint.c:4206
 #, c-format
 msgid ""
 "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3020,75 +3049,75 @@
 "brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu."
 "versym_r\n"
 
-#: src/elflint.c:4189
+#: src/elflint.c:4219
 #, c-format
 msgid "duplicate version index %d\n"
 msgstr "powtórzony indeks wersji %d\n"
 
-#: src/elflint.c:4203
+#: src/elflint.c:4233
 #, c-format
 msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
 msgstr "sekcja .gnu.versym istnieje bez .gnu.versym_d lub .gnu.versym_r\n"
 
-#: src/elflint.c:4252
+#: src/elflint.c:4282
 #, c-format
 msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
 msgstr ""
 "phdr[%d]: nieznany typ notatki pliku core %<PRIu32> pod offsetem %<PRIu64>\n"
 
-#: src/elflint.c:4256
-#, fuzzy, c-format
+#: src/elflint.c:4286
+#, c-format
 msgid ""
 "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
 msgstr ""
-"phdr[%2d]: \"%s\": nieznany typ notatki pliku core %<PRIu32> pod offsetem "
-"%Zu\n"
+"sekcja [%2d]: „%s”: nieznany typ notatki pliku core %<PRIu32> pod offsetem "
+"%zu\n"
 
-#: src/elflint.c:4279
-#, fuzzy, c-format
+#: src/elflint.c:4309
+#, c-format
 msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
-"phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem %Zu\n"
+"phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem %zu\n"
 
-#: src/elflint.c:4283
-#, fuzzy, c-format
+#: src/elflint.c:4313
+#, c-format
 msgid ""
 "section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
-"sekcja [%2d] \"%s\": nieznany typ notatki pliku obiektu %<PRIu32> pod "
-"offsetem %Zu\n"
+"sekcja [%2d] „%s”: nieznany typ notatki pliku obiektu %<PRIu32> pod offsetem "
+"%zu\n"
 
-#: src/elflint.c:4300
+#: src/elflint.c:4330
 #, c-format
 msgid "phdr[%d]: no note entries defined for the type of file\n"
 msgstr "phdr[%d]: brak określonych wpisów notatek dla typu pliku\n"
 
-#: src/elflint.c:4319
+#: src/elflint.c:4349
 #, c-format
 msgid "phdr[%d]: cannot get content of note section: %s\n"
 msgstr "phdr[%d]: nie można uzyskać zawartości sekcji notatki: %s\n"
 
-#: src/elflint.c:4322
+#: src/elflint.c:4352
 #, c-format
 msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
 msgstr "phdr[%d]: dodatkowe %<PRIu64> bajtów po ostatniej notatce\n"
 
-#: src/elflint.c:4343
+#: src/elflint.c:4373
 #, c-format
 msgid "section [%2d] '%s': no note entries defined for the type of file\n"
-msgstr "sekcja [%2d] \"%s\": brak określonych wpisów notatek dla typu pliku\n"
+msgstr "sekcja [%2d] „%s”: brak określonych wpisów notatek dla typu pliku\n"
 
-#: src/elflint.c:4350
+#: src/elflint.c:4380
 #, c-format
 msgid "section [%2d] '%s': cannot get content of note section\n"
-msgstr "sekcja [%2d] \"%s\": nie można uzyskać zawartości sekcji notatek\n"
+msgstr "sekcja [%2d] „%s”: nie można uzyskać zawartości sekcji notatek\n"
 
-#: src/elflint.c:4353
+#: src/elflint.c:4383
 #, c-format
 msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
-msgstr "sekcja [%2d] \"%s\": dodatkowe %<PRIu64> bajtów po ostatniej notatce\n"
+msgstr "sekcja [%2d] „%s”: dodatkowe %<PRIu64> bajtów po ostatniej notatce\n"
 
-#: src/elflint.c:4371
+#: src/elflint.c:4401
 #, c-format
 msgid ""
 "only executables, shared objects, and core files can have program headers\n"
@@ -3096,135 +3125,136 @@
 "tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą posiadać "
 "nagłówki programu\n"
 
-#: src/elflint.c:4386
+#: src/elflint.c:4416
 #, c-format
 msgid "cannot get program header entry %d: %s\n"
 msgstr "nie można uzyskać wpisu nagłówka programu %d: %s\n"
 
-#: src/elflint.c:4395
+#: src/elflint.c:4425
 #, c-format
 msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
 msgstr ""
 "wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#<PRIx64>\n"
 
-#: src/elflint.c:4406
+#: src/elflint.c:4436
 #, c-format
 msgid "more than one INTERP entry in program header\n"
 msgstr "więcej niż jeden wpis INTERP w nagłówku programu\n"
 
-#: src/elflint.c:4414
+#: src/elflint.c:4444
 #, c-format
 msgid "more than one TLS entry in program header\n"
 msgstr "więcej niż jeden wpis TLS w nagłówku programu\n"
 
-#: src/elflint.c:4421
+#: src/elflint.c:4451
 #, c-format
 msgid "static executable cannot have dynamic sections\n"
 msgstr "statyczny plik wykonywalny nie może posiadać sekcji dynamicznych\n"
 
-#: src/elflint.c:4435
+#: src/elflint.c:4465
 #, c-format
 msgid "dynamic section reference in program header has wrong offset\n"
 msgstr ""
 "odniesienie sekcji dynamicznej w nagłówku programu posiada błędny offset\n"
 
-#: src/elflint.c:4438
+#: src/elflint.c:4468
 #, c-format
 msgid "dynamic section size mismatch in program and section header\n"
 msgstr "różne rozmiary sekcji dynamicznej w nagłówku programu i sekcji\n"
 
-#: src/elflint.c:4448
+#: src/elflint.c:4478
 #, c-format
 msgid "more than one GNU_RELRO entry in program header\n"
 msgstr "więcej niż jeden wpis GNU_RELRO w nagłówku programu\n"
 
-#: src/elflint.c:4469
+#: src/elflint.c:4499
 #, c-format
 msgid "loadable segment GNU_RELRO applies to is not writable\n"
 msgstr "wczytywalny segment wskazywany przez GNU_RELRO nie jest zapisywalny\n"
 
-#: src/elflint.c:4480
+#: src/elflint.c:4510
 #, c-format
 msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
 msgstr "flagi wczytywalnego segmentu [%u] nie pasują do flag GNU_RELRO [%u]\n"
 
-#: src/elflint.c:4487
+#: src/elflint.c:4517
 #, c-format
 msgid ""
 "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
 msgstr ""
+"flagi GNU_RELRO [%u] nie są podzbiorem flag wczytywalnego segmentu [%u]\n"
 
-#: src/elflint.c:4496 src/elflint.c:4519
+#: src/elflint.c:4526 src/elflint.c:4549
 #, c-format
 msgid "%s segment not contained in a loaded segment\n"
 msgstr "segment %s nie zawiera się we wczytywalnym segmencie\n"
 
-#: src/elflint.c:4525
+#: src/elflint.c:4555
 #, c-format
 msgid "program header offset in ELF header and PHDR entry do not match"
 msgstr ""
 "offsety nagłówka programu w nagłówku ELF i wpisie PHDR nie zgadzają się"
 
-#: src/elflint.c:4550
+#: src/elflint.c:4580
 #, c-format
 msgid "call frame search table reference in program header has wrong offset\n"
 msgstr ""
 "odniesienie tabeli wyszukiwania ramki wywołania w nagłówku programu posiada "
 "błędny offset\n"
 
-#: src/elflint.c:4553
+#: src/elflint.c:4583
 #, c-format
 msgid "call frame search table size mismatch in program and section header\n"
 msgstr ""
 "różne rozmiary tabel wyszukiwania ramki wywołania w nagłówku programu i "
 "sekcji\n"
 
-#: src/elflint.c:4566
+#: src/elflint.c:4596
 #, c-format
 msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
 msgstr "PT_GNU_EH_FRAME jest obecne, ale brak sekcji .eh_frame_hdr\n"
 
-#: src/elflint.c:4574
+#: src/elflint.c:4604
 #, c-format
 msgid "call frame search table must be allocated\n"
 msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n"
 
-#: src/elflint.c:4577
+#: src/elflint.c:4607
 #, c-format
 msgid "section [%2zu] '%s' must be allocated\n"
-msgstr "sekcja [%2zu] \"%s\": musi być przydzielona\n"
+msgstr "sekcja [%2zu] „%s”: musi być przydzielona\n"
 
-#: src/elflint.c:4581
+#: src/elflint.c:4611
 #, c-format
 msgid "call frame search table must not be writable\n"
 msgstr "tabela wyszukiwania ramki wywołania nie może być zapisywalna\n"
 
-#: src/elflint.c:4584
+#: src/elflint.c:4614
 #, c-format
 msgid "section [%2zu] '%s' must not be writable\n"
-msgstr "sekcja [%2zu] \"%s\" nie może być zapisywalna\n"
+msgstr "sekcja [%2zu] „%s” nie może być zapisywalna\n"
 
-#: src/elflint.c:4589
+#: src/elflint.c:4619
 #, c-format
 msgid "call frame search table must not be executable\n"
 msgstr "tabela wyszukiwania ramki wywołania nie może być wykonywalna\n"
 
-#: src/elflint.c:4592
+#: src/elflint.c:4622
 #, c-format
 msgid "section [%2zu] '%s' must not be executable\n"
-msgstr "sekcja [%2zu] \"%s\" nie może być wykonywalna\n"
+msgstr "sekcja [%2zu] „%s” nie może być wykonywalna\n"
 
-#: src/elflint.c:4603
+#: src/elflint.c:4633
 #, c-format
 msgid "program header entry %d: file size greater than memory size\n"
 msgstr "wpis nagłówka programu %d: rozmiar pliku większy niż rozmiar pamięci\n"
 
-#: src/elflint.c:4610
+#: src/elflint.c:4640
 #, c-format
 msgid "program header entry %d: alignment not a power of 2\n"
 msgstr "wpis nagłówka programu %d: wyrównanie nie jest potęgą 2\n"
 
-#: src/elflint.c:4613
+#: src/elflint.c:4643
 #, c-format
 msgid ""
 "program header entry %d: file offset and virtual address not module of "
@@ -3233,7 +3263,7 @@
 "wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są "
 "wielokrotnością wyrównania\n"
 
-#: src/elflint.c:4626
+#: src/elflint.c:4656
 #, c-format
 msgid ""
 "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3242,12 +3272,12 @@
 "plik wykonywalny/DSO z sekcją .eh_frame_hdr nie posiada wpisu nagłówka "
 "programu PT_GNU_EH_FRAME"
 
-#: src/elflint.c:4660
+#: src/elflint.c:4690
 #, c-format
 msgid "cannot read ELF header: %s\n"
 msgstr "nie można odczytać nagłówka ELF: %s\n"
 
-#: src/elflint.c:4686
+#: src/elflint.c:4716
 #, c-format
 msgid "text relocation flag set but not needed\n"
 msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n"
@@ -3268,20 +3298,20 @@
 msgid "Locate source of text relocations in FILEs (a.out by default)."
 msgstr "Odnajduje źródło relokacji tekstu w PLIKACH (domyślnie a.out)."
 
-#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83
+#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83
 #: src/strings.c:88 src/strip.c:95
 msgid "[FILE...]"
-msgstr "[PLIK...]"
+msgstr "[PLIK…]"
 
 #: src/findtextrel.c:238
 #, c-format
 msgid "cannot get ELF header '%s': %s"
-msgstr "nie można uzyskać nagłówka ELF \"%s\": %s"
+msgstr "nie można uzyskać nagłówka ELF „%s”: %s"
 
 #: src/findtextrel.c:249
 #, c-format
 msgid "'%s' is not a DSO or PIE"
-msgstr "\"%s\" nie jest DSO ani PIE"
+msgstr "„%s” nie jest DSO ani PIE"
 
 #: src/findtextrel.c:269
 #, c-format
@@ -3296,7 +3326,7 @@
 #: src/findtextrel.c:313
 #, c-format
 msgid "no text relocations reported in '%s'"
-msgstr "brak relokacji tekstu w \"%s\""
+msgstr "brak relokacji tekstu w „%s”"
 
 #: src/findtextrel.c:325
 #, c-format
@@ -3316,12 +3346,12 @@
 #: src/findtextrel.c:421
 #, c-format
 msgid "cannot get symbol table section %zu in '%s': %s"
-msgstr "nie można uzyskać sekcji tabeli symboli %zu w \"%s\": %s"
+msgstr "nie można uzyskać sekcji tabeli symboli %zu w „%s”: %s"
 
 #: src/findtextrel.c:441 src/findtextrel.c:464
 #, c-format
 msgid "cannot get relocation at index %d in section %zu in '%s': %s"
-msgstr "nie można uzyskać relokacji pod indeksem %d w sekcji %zu w \"%s\": %s"
+msgstr "nie można uzyskać relokacji pod indeksem %d w sekcji %zu w „%s”: %s"
 
 #: src/findtextrel.c:530
 #, c-format
@@ -3332,8 +3362,7 @@
 #, c-format
 msgid ""
 "the file containing the function '%s' is not compiled with -fpic/-fPIC\n"
-msgstr ""
-"plik zawierający funkcję \"%s\" nie został skompilowany z -fpic/-fPIC\n"
+msgstr "plik zawierający funkcję „%s” nie został skompilowany z -fpic/-fPIC\n"
 
 #: src/findtextrel.c:590 src/findtextrel.c:610
 #, c-format
@@ -3341,7 +3370,7 @@
 "the file containing the function '%s' might not be compiled with -fpic/-"
 "fPIC\n"
 msgstr ""
-"plik zawierający funkcję \"%s\" mógł nie zostać skompilowany z -fpic/-fPIC\n"
+"plik zawierający funkcję „%s” mógł nie zostać skompilowany z -fpic/-fPIC\n"
 
 #: src/findtextrel.c:598
 #, c-format
@@ -3349,8 +3378,8 @@
 "either the file containing the function '%s' or the file containing the "
 "function '%s' is not compiled with -fpic/-fPIC\n"
 msgstr ""
-"plik zawierający funkcję \"%s\" lub plik zawierający funkcję \"%s\" nie "
-"został skompilowany z -fpic/-fPIC\n"
+"plik zawierający funkcję „%s” lub plik zawierający funkcję „%s” nie został "
+"skompilowany z -fpic/-fPIC\n"
 
 #: src/findtextrel.c:618
 #, c-format
@@ -3487,7 +3516,7 @@
 
 #: src/ld.c:124
 msgid "Mark object as not loadable with 'dlopen'."
-msgstr "Oznacza obiekt jako niewczytywalnego przez \"dlopen\"."
+msgstr "Oznacza obiekt jako niewczytywalnego przez „dlopen”."
 
 #: src/ld.c:126
 msgid "Ignore/record dependencies on unused DSOs."
@@ -3628,7 +3657,7 @@
 
 #: src/ld.c:191
 msgid "[FILE]..."
-msgstr "[PLIK]..."
+msgstr "[PLIK]…"
 
 #: src/ld.c:319
 #, c-format
@@ -3643,7 +3672,7 @@
 #: src/ld.c:342
 #, c-format
 msgid "cannot open linker script '%s'"
-msgstr "nie można otworzyć skryptu konsolidatora \"%s\""
+msgstr "nie można otworzyć skryptu konsolidatora „%s”"
 
 #: src/ld.c:383
 #, c-format
@@ -3658,27 +3687,27 @@
 #: src/ld.c:580
 #, c-format
 msgid "more than one '-m' parameter"
-msgstr "podano więcej niż jeden parametr \"-m\""
+msgstr "podano więcej niż jeden parametr „-m”"
 
 #: src/ld.c:590 src/ld.c:999
 #, c-format
 msgid "unknown option `-%c %s'"
-msgstr "nieznana opcja \"-%c %s\""
+msgstr "nieznana opcja „-%c %s”"
 
 #: src/ld.c:632
 #, c-format
 msgid "invalid page size value '%s': ignored"
-msgstr "nieprawidłowa wartość rozmiaru strony \"%s\": zignorowano"
+msgstr "nieprawidłowa wartość rozmiaru strony „%s”: zignorowano"
 
 #: src/ld.c:673
 #, c-format
 msgid "invalid hash style '%s'"
-msgstr "nieprawidłowy styl sum kontrolnych \"%s\""
+msgstr "nieprawidłowy styl sum kontrolnych „%s”"
 
 #: src/ld.c:683
 #, c-format
 msgid "invalid build-ID style '%s'"
-msgstr "nieprawidłowy styl identyfikatora kopii \"%s\""
+msgstr "nieprawidłowy styl identyfikatora kopii „%s”"
 
 #: src/ld.c:771
 #, c-format
@@ -3688,7 +3717,7 @@
 #: src/ld.c:788
 #, c-format
 msgid "Invalid optimization level `%s'"
-msgstr "Nieprawidłowy poziom optymalizacji \"%s\""
+msgstr "Nieprawidłowy poziom optymalizacji „%s”"
 
 #: src/ld.c:836
 #, c-format
@@ -3703,7 +3732,7 @@
 #: src/ld.c:1032
 #, c-format
 msgid "unknown option '-%c %s'"
-msgstr "nieznana opcja \"-%c %s\""
+msgstr "nieznana opcja „-%c %s”"
 
 #: src/ld.c:1138
 #, c-format
@@ -3714,17 +3743,17 @@
 #: src/ld.c:1140
 #, c-format
 msgid "try again with an appropriate '-m' parameter"
-msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem \"-m\""
+msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem „-m”"
 
 #: src/ld.c:1434
 #, c-format
 msgid "cannot read version script '%s'"
-msgstr "nie można odczytać skryptu wersji \"%s\""
+msgstr "nie można odczytać skryptu wersji „%s”"
 
 #: src/ld.c:1500 src/ld.c:1539
 #, c-format
 msgid "duplicate definition of '%s' in linker script"
-msgstr "powtórzona definicja \"%s\" w skrypcie konsolidatora"
+msgstr "powtórzona definicja „%s” w skrypcie konsolidatora"
 
 #: src/ldgeneric.c:201 src/ldgeneric.c:5141
 #, c-format
@@ -3734,12 +3763,12 @@
 #: src/ldgeneric.c:247
 #, c-format
 msgid "cannot load ld backend library '%s': %s"
-msgstr "nie można odczytać biblioteki zaplecza ld \"%s\": %s"
+msgstr "nie można odczytać biblioteki zaplecza ld „%s”: %s"
 
 #: src/ldgeneric.c:257
 #, c-format
 msgid "cannot find init function in ld backend library '%s': %s"
-msgstr "nie można odnaleźć funkcji init w bibliotece zaplecza ld \"%s\": %s"
+msgstr "nie można odnaleźć funkcji init w bibliotece zaplecza ld „%s”: %s"
 
 #: src/ldgeneric.c:300
 #, c-format
@@ -3759,16 +3788,16 @@
 #: src/ldgeneric.c:563
 #, c-format
 msgid "Warning: type of `%s' changed from %s in %s to %s in %s"
-msgstr "Ostrzeżenie: typ \"%s\" zmienił się z %s w %s na %s w %s"
+msgstr "Ostrzeżenie: typ „%s” zmienił się z %s w %s na %s w %s"
 
 #: src/ldgeneric.c:576
 #, c-format
 msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
 msgstr ""
-"Ostrzeżenie: rozmiar \"%s\" zmienił się z %<PRIu64> w %s na %<PRIu64> w %s"
+"Ostrzeżenie: rozmiar „%s” zmienił się z %<PRIu64> w %s na %<PRIu64> w %s"
 
-#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527
-#: src/readelf.c:829 src/strip.c:589
+#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852
+#: src/strip.c:589
 #, c-format
 msgid "cannot determine number of sections: %s"
 msgstr "nie można określić liczby sekcji: %s"
@@ -3791,12 +3820,12 @@
 #: src/ldgeneric.c:830
 #, c-format
 msgid "%s: section '%s' with group flag set does not belong to any group"
-msgstr "%s: sekcja \"%s\" z ustawioną flagą grupy nie należy do żadnej grupy"
+msgstr "%s: sekcja „%s” z ustawioną flagą grupy nie należy do żadnej grupy"
 
 #: src/ldgeneric.c:875
 #, c-format
 msgid "%s: section [%2d] '%s' is not in the correct section group"
-msgstr "%s: sekcja [%2d] \"%s\" nie jest w poprawnej grupie sekcji"
+msgstr "%s: sekcja [%2d] „%s” nie jest w poprawnej grupie sekcji"
 
 #: src/ldgeneric.c:1146 src/ldgeneric.c:1403 src/ldgeneric.c:1412
 #: src/ldgeneric.c:1471 src/ldgeneric.c:1480 src/ldgeneric.c:1743
@@ -3813,12 +3842,12 @@
 #: src/ldgeneric.c:1292
 #, c-format
 msgid "%s: cannot determine signature of section group [%2zd] '%s': %s"
-msgstr "%s: nie można określić podpisu grupy sekcji [%2zd] \"%s\": %s"
+msgstr "%s: nie można określić podpisu grupy sekcji [%2zd] „%s”: %s"
 
 #: src/ldgeneric.c:1304
 #, c-format
 msgid "%s: cannot get content of section group [%2zd] '%s': %s'"
-msgstr "%s: nie można uzyskać zawartości grupy sekcji [%2zd] \"%s\": %s"
+msgstr "%s: nie można uzyskać zawartości grupy sekcji [%2zd] „%s”: %s"
 
 #: src/ldgeneric.c:1318
 #, c-format
@@ -3826,13 +3855,13 @@
 "%s: group member %zu of section group [%2zd] '%s' has too high index: "
 "%<PRIu32>"
 msgstr ""
-"%s: element grupy %zu grupy sekcji [%2zd] \"%s\" posiada za wysoki indeks: "
+"%s: element grupy %zu grupy sekcji [%2zd] „%s” posiada za wysoki indeks: "
 "%<PRIu32>"
 
 #: src/ldgeneric.c:1340
 #, c-format
 msgid "%s: section '%s' has unknown type: %d"
-msgstr "%s: sekcja \"%s\" posiada nieznany typ: %d"
+msgstr "%s: sekcja „%s” posiada nieznany typ: %d"
 
 #: src/ldgeneric.c:1719
 #, c-format
@@ -3842,7 +3871,7 @@
 #: src/ldgeneric.c:1889
 #, c-format
 msgid "cannot read archive `%s': %s"
-msgstr "nie można odczytać archiwum \"%s\": %s"
+msgstr "nie można odczytać archiwum „%s”: %s"
 
 #: src/ldgeneric.c:2010
 #, c-format
@@ -3862,18 +3891,17 @@
 #: src/ldgeneric.c:2063
 #, c-format
 msgid "cannot use DSO '%s' when generating relocatable object file"
-msgstr ""
-"nie można użyć DSO \"%s\" podczas tworzenia relokowalnego pliku obiektu"
+msgstr "nie można użyć DSO „%s” podczas tworzenia relokowalnego pliku obiektu"
 
 #: src/ldgeneric.c:2148
 #, c-format
 msgid "input file '%s' ignored"
-msgstr "plik wejściowy \"%s\" został zignorowany"
+msgstr "plik wejściowy „%s” został zignorowany"
 
 #: src/ldgeneric.c:2362
 #, c-format
 msgid "undefined symbol `%s' in %s"
-msgstr "nieokreślony symbol \"%s\" w %s"
+msgstr "nieokreślony symbol „%s” w %s"
 
 #: src/ldgeneric.c:2692
 #, c-format
@@ -3896,7 +3924,7 @@
 #: src/ldgeneric.c:3434
 #, c-format
 msgid "address computation expression contains variable '%s'"
-msgstr "wyrażenie obliczenia adresu zawiera zmienną \"%s\""
+msgstr "wyrażenie obliczenia adresu zawiera zmienną „%s”"
 
 #: src/ldgeneric.c:3479
 #, c-format
@@ -3904,14 +3932,14 @@
 "argument '%<PRIuMAX>' of ALIGN in address computation expression is no power "
 "of two"
 msgstr ""
-"parametr \"%<PRIuMAX>\" ALIGN w wyrażeniu obliczenia adresu nie jest potęgą "
+"parametr „%<PRIuMAX>” ALIGN w wyrażeniu obliczenia adresu nie jest potęgą "
 "dwójki"
 
 #: src/ldgeneric.c:3674
 #, c-format
 msgid "cannot find entry symbol '%s': defaulting to %#0*<PRIx64>"
 msgstr ""
-"nie można odnaleźć symbolu wejściowego \"%s\": użycie domyślnego %#0*<PRIx64>"
+"nie można odnaleźć symbolu wejściowego „%s”: użycie domyślnego %#0*<PRIx64>"
 
 #: src/ldgeneric.c:3680
 #, c-format
@@ -3937,12 +3965,12 @@
 #: src/ldgeneric.c:4181
 #, c-format
 msgid "cannot convert section data to file format: %s"
-msgstr "nie można przekonwertować danych sekcji na format pliku: %s"
+msgstr "nie można konwertować danych sekcji na format pliku: %s"
 
 #: src/ldgeneric.c:4190
 #, c-format
 msgid "cannot convert section data to memory format: %s"
-msgstr "nie można przekonwertować danych sekcji na format pamięci: %s"
+msgstr "nie można konwertować danych sekcji na format pamięci: %s"
 
 #: src/ldgeneric.c:4251
 #, c-format
@@ -4007,7 +4035,7 @@
 msgid "cannot get header of 0th section: %s"
 msgstr "nie można uzyskać nagłówka zerowej sekcji: %s"
 
-#: src/ldgeneric.c:6930 src/unstrip.c:1893
+#: src/ldgeneric.c:6930 src/unstrip.c:1929
 #, c-format
 msgid "cannot update ELF header: %s"
 msgstr "nie można zaktualizować nagłówka ELF: %s"
@@ -4044,7 +4072,7 @@
 #: src/ldgeneric.c:7130
 #, c-format
 msgid "no machine specific '%s' implementation"
-msgstr "brak implementacji \"%s\" specyficznej dla maszyny"
+msgstr "brak implementacji „%s” specyficznej dla maszyny"
 
 #: src/ldscript.y:170
 msgid "mode for segment invalid\n"
@@ -4053,141 +4081,141 @@
 #: src/ldscript.y:457
 #, c-format
 msgid "while reading version script '%s': %s at line %d"
-msgstr "podczas odczytywania skryptu wersji \"%s\": %s w wierszu %d"
+msgstr "podczas odczytywania skryptu wersji „%s”: %s w wierszu %d"
 
 #: src/ldscript.y:458
 #, c-format
 msgid "while reading linker script '%s': %s at line %d"
-msgstr "podczas odczytywania skryptu konsolidatora \"%s\": %s w wierszu %d"
+msgstr "podczas odczytywania skryptu konsolidatora „%s”: %s w wierszu %d"
 
 #: src/ldscript.y:737
-#, fuzzy, c-format
+#, c-format
 msgid "symbol '%s' is declared both local and global for unnamed version '%s'"
 msgstr ""
-"symbol \"%s\" jest zadeklarowany jednocześnie lokalny i globalny dla "
-"nienazwanej wersji"
+"symbol „%s” jest zadeklarowany jednocześnie lokalny i globalny dla "
+"nienazwanej wersji „%s”"
 
 #: src/ldscript.y:739
 #, c-format
 msgid "symbol '%s' is declared both local and global for version '%s'"
 msgstr ""
-"symbol \"%s\" jest zadeklarowany jednocześnie lokalny i globalny dla wersji "
-"\"%s\""
+"symbol „%s” jest zadeklarowany jednocześnie lokalny i globalny dla wersji "
+"„%s”"
 
 #: src/ldscript.y:759 src/ldscript.y:766
 #, c-format
 msgid "default visibility set as local and global"
 msgstr "domyślna widoczność ustawiona jako lokalna i globalna"
 
-#: src/nm.c:65 src/strip.c:67
+#: src/nm.c:66 src/strip.c:67
 msgid "Output selection:"
 msgstr "Wybór wyjścia:"
 
-#: src/nm.c:66
+#: src/nm.c:67
 msgid "Display debugger-only symbols"
 msgstr "Wyświetla symbole wyłącznie debugowowania"
 
-#: src/nm.c:67
+#: src/nm.c:68
 msgid "Display only defined symbols"
 msgstr "Wyświetla tylko określone symbole"
 
-#: src/nm.c:70
+#: src/nm.c:71
 msgid "Display dynamic symbols instead of normal symbols"
 msgstr "Wyświetla symbole dynamiczne zamiast zwykłych"
 
-#: src/nm.c:71
+#: src/nm.c:72
 msgid "Display only external symbols"
 msgstr "Wyświetla tylko symbole zewnętrzne"
 
-#: src/nm.c:72
+#: src/nm.c:73
 msgid "Display only undefined symbols"
 msgstr "Wyświetla tylko nieokreślone symbole"
 
-#: src/nm.c:74
+#: src/nm.c:75
 msgid "Include index for symbols from archive members"
 msgstr "Dołącza indeks dla symboli z elementów archiwum"
 
-#: src/nm.c:76 src/size.c:57
+#: src/nm.c:77 src/size.c:57
 msgid "Output format:"
 msgstr "Format wyjścia:"
 
-#: src/nm.c:78
+#: src/nm.c:79
 msgid "Print name of the input file before every symbol"
 msgstr "Wyświetla nazwę pliku wejściowego przed każdym symbolem"
 
-#: src/nm.c:81
+#: src/nm.c:82
 msgid ""
 "Use the output format FORMAT.  FORMAT can be `bsd', `sysv' or `posix'.  The "
 "default is `sysv'"
 msgstr ""
-"Używa FORMATU wyjściowego. Może to być \"bsd\", \"sysv\" lub \"posix\". "
-"Domyślny jest format \"sysv\""
+"Używa FORMATU wyjściowego. Może to być „bsd”, „sysv” lub „posix”. Domyślny "
+"jest format „sysv”"
 
-#: src/nm.c:83
+#: src/nm.c:84
 msgid "Same as --format=bsd"
 msgstr "To samo, co --format=bsd"
 
-#: src/nm.c:84
+#: src/nm.c:85
 msgid "Same as --format=posix"
 msgstr "To samo co, --format=posix"
 
-#: src/nm.c:85 src/size.c:63
+#: src/nm.c:86 src/size.c:63
 msgid "Use RADIX for printing symbol values"
 msgstr "Używa BAZY do wypisywania wartości symboli"
 
-#: src/nm.c:86
+#: src/nm.c:87
 msgid "Mark special symbols"
 msgstr "Oznacza specjalne symbole"
 
-#: src/nm.c:88
+#: src/nm.c:89
 msgid "Print size of defined symbols"
 msgstr "Wyświetla rozmiar określonych symboli"
 
-#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72
+#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72
 msgid "Output options:"
 msgstr "Opcje wyjścia:"
 
-#: src/nm.c:91
+#: src/nm.c:92
 msgid "Sort symbols numerically by address"
 msgstr "Porządkuje symbole numerycznie według adresu"
 
-#: src/nm.c:93
+#: src/nm.c:94
 msgid "Do not sort the symbols"
 msgstr "Bez porządkowania symboli"
 
-#: src/nm.c:94
+#: src/nm.c:95
 msgid "Reverse the sense of the sort"
 msgstr "Odwraca kierunek porządkowania"
 
-#: src/nm.c:97
+#: src/nm.c:98
 msgid "Decode low-level symbol names into source code names"
 msgstr "Dekoduje niskopoziomowe nazwy symboli na nazwy kodu źródłowego"
 
-#: src/nm.c:104
+#: src/nm.c:105
 msgid "List symbols from FILEs (a.out by default)."
 msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)."
 
-#: src/nm.c:115 src/objdump.c:79
+#: src/nm.c:116 src/objdump.c:79
 msgid "Output formatting"
 msgstr "Formatowanie wyjścia"
 
-#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127
+#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127
 #, c-format
 msgid "%s: INTERNAL ERROR %d (%s): %s"
 msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s): %s"
 
-#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325
+#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325
 #: src/strip.c:2280
 #, c-format
 msgid "while closing '%s'"
-msgstr "podczas zamykania \"%s\""
+msgstr "podczas zamykania „%s”"
 
-#: src/nm.c:416 src/objdump.c:292 src/strip.c:391
+#: src/nm.c:417 src/objdump.c:292 src/strip.c:391
 #, c-format
 msgid "%s: File format not recognized"
 msgstr "%s: nie rozpoznano formatu pliku"
 
-#: src/nm.c:456
+#: src/nm.c:457
 msgid ""
 "\n"
 "Archive index:\n"
@@ -4195,42 +4223,42 @@
 "\n"
 "Indeks archiwum:\n"
 
-#: src/nm.c:465
+#: src/nm.c:466
 #, c-format
 msgid "invalid offset %zu for symbol %s"
 msgstr "nieprawidłowy offset %zu dla symbolu %s"
 
-#: src/nm.c:470
+#: src/nm.c:471
 #, c-format
 msgid "%s in %s\n"
 msgstr "%s w %s\n"
 
-#: src/nm.c:478
+#: src/nm.c:479
 #, c-format
 msgid "cannot reset archive offset to beginning"
 msgstr "nie można przywrócić offsetu w archiwum na początek"
 
-#: src/nm.c:503 src/objdump.c:340
+#: src/nm.c:504 src/objdump.c:340
 #, c-format
 msgid "%s%s%s: file format not recognized"
 msgstr "%s%s%s: nie rozpoznano formatu pliku"
 
-#: src/nm.c:715
+#: src/nm.c:719
 #, c-format
 msgid "cannot create search tree"
 msgstr "nie można utworzyć drzewa wyszukiwania"
 
-#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536
-#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579
-#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460
-#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239
-#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461
-#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520
+#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545
+#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667
+#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558
+#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347
+#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603
+#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520
 #, c-format
 msgid "cannot get section header string table index"
 msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji"
 
-#: src/nm.c:781
+#: src/nm.c:787
 #, c-format
 msgid ""
 "\n"
@@ -4243,7 +4271,7 @@
 "Symbole z %s:\n"
 "\n"
 
-#: src/nm.c:784
+#: src/nm.c:790
 #, c-format
 msgid ""
 "%*s%-*s %-*s Class  Type     %-*s %*s Section\n"
@@ -4252,22 +4280,22 @@
 "%*s%-*s %-*s Klasa  Typ      %-*s %*s Sekcja\n"
 "\n"
 
-#: src/nm.c:1171
+#: src/nm.c:1232
 #, c-format
 msgid "%s: entry size in section %zd `%s' is not what we expect"
-msgstr "%s: rozmiar wpisu w sekcji %zd \"%s\" nie jest tym, czego oczekiwano"
+msgstr "%s: rozmiar wpisu w sekcji %zd „%s” nie jest tym, czego oczekiwano"
 
-#: src/nm.c:1176
+#: src/nm.c:1237
 #, c-format
 msgid "%s: size of section %zd `%s' is not multiple of entry size"
-msgstr "%s: rozmiar sekcji %zd \"%s\" nie jest wielokrotnością rozmiaru wpisu"
+msgstr "%s: rozmiar sekcji %zd „%s” nie jest wielokrotnością rozmiaru wpisu"
 
-#: src/nm.c:1434
+#: src/nm.c:1537
 #, c-format
 msgid "%s%s%s%s: Invalid operation"
 msgstr "%s%s%s%s: nieprawidłowe działanie"
 
-#: src/nm.c:1491
+#: src/nm.c:1594
 #, c-format
 msgid "%s%s%s: no symbols"
 msgstr "%s%s%s: brak symboli"
@@ -4300,20 +4328,20 @@
 msgid "Show information from FILEs (a.out by default)."
 msgstr "Wyświetla informacje z PLIKÓW (domyślnie a.out)."
 
-#: src/objdump.c:232 src/readelf.c:473
+#: src/objdump.c:232 src/readelf.c:479
 msgid "No operation specified.\n"
 msgstr "Nie podano działania.\n"
 
 #: src/objdump.c:270 src/objdump.c:282
 #, c-format
 msgid "while close `%s'"
-msgstr "podczas zamykania \"%s\""
+msgstr "podczas zamykania „%s”"
 
-#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072
+#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160
 msgid "INVALID SYMBOL"
 msgstr "NIEPRAWIDŁOWY SYMBOL"
 
-#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108
+#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196
 msgid "INVALID SECTION"
 msgstr "NIEPRAWIDŁOWA SEKCJA"
 
@@ -4358,81 +4386,81 @@
 #: src/ranlib.c:182
 #, c-format
 msgid "'%s' is no archive"
-msgstr "\"%s\" nie jest archiwum"
+msgstr "„%s” nie jest archiwum"
 
 #: src/ranlib.c:217
 #, c-format
 msgid "error while freeing sub-ELF descriptor: %s"
 msgstr "błąd podczas zwalniania deskryptora pod-ELF: %s"
 
-#: src/readelf.c:71
+#: src/readelf.c:72
 msgid "ELF input selection:"
 msgstr "Wybór wyjścia ELF:"
 
-#: src/readelf.c:73
+#: src/readelf.c:74
 msgid ""
 "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
 msgstr ""
 "Używa podanej SEKCJI (domyślnie .gnu_debugdata) jako (skompresowanych) "
 "danych wejściowych ELF"
 
-#: src/readelf.c:75
+#: src/readelf.c:76
 msgid "ELF output selection:"
 msgstr "Wybór wyjścia ELF:"
 
-#: src/readelf.c:77
+#: src/readelf.c:78
 msgid "All these plus -p .strtab -p .dynstr -p .comment"
 msgstr "Wszystkie te plus -p .strtab -p .dynstr -p .comment"
 
-#: src/readelf.c:78
+#: src/readelf.c:79
 msgid "Display the dynamic segment"
 msgstr "Wyświetla segment dynamiczny"
 
-#: src/readelf.c:79
+#: src/readelf.c:80
 msgid "Display the ELF file header"
 msgstr "Wyświetla nagłówek pliku ELF"
 
-#: src/readelf.c:81
+#: src/readelf.c:82
 msgid "Display histogram of bucket list lengths"
 msgstr "Wyświetla histogram długości list kubełków"
 
-#: src/readelf.c:82
+#: src/readelf.c:83
 msgid "Display the program headers"
 msgstr "Wyświetla nagłówki programu"
 
-#: src/readelf.c:84
+#: src/readelf.c:85
 msgid "Display relocations"
 msgstr "Wyświetla relokacje"
 
-#: src/readelf.c:85
+#: src/readelf.c:86
 msgid "Display the sections' headers"
 msgstr "Wyświetla nagłówków sekcji"
 
-#: src/readelf.c:87
+#: src/readelf.c:88
 msgid "Display the symbol table"
 msgstr "Wyświetla tabelę symboli"
 
-#: src/readelf.c:88
+#: src/readelf.c:89
 msgid "Display versioning information"
 msgstr "Wyświetla informacje o wersjonowaniu"
 
-#: src/readelf.c:89
+#: src/readelf.c:90
 msgid "Display the ELF notes"
 msgstr "Wyświetla notatki ELF"
 
-#: src/readelf.c:91
+#: src/readelf.c:92
 msgid "Display architecture specific information, if any"
 msgstr "Wyświetla informacje specyficzne dla architektury, jeśli są"
 
-#: src/readelf.c:93
+#: src/readelf.c:94
 msgid "Display sections for exception handling"
 msgstr "Wyświetla sekcje do obsługi wyjątków"
 
-#: src/readelf.c:95
+#: src/readelf.c:96
 msgid "Additional output selection:"
 msgstr "Dodatkowy wybór wyjścia:"
 
-#: src/readelf.c:97
+#: src/readelf.c:98
 msgid ""
 "Display DWARF section content.  SECTION can be one of abbrev, aranges, "
 "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, "
@@ -4442,167 +4470,176 @@
 "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, "
 "pubnames, str, macinfo, macro lub exception"
 
-#: src/readelf.c:101
+#: src/readelf.c:102
 msgid "Dump the uninterpreted contents of SECTION, by number or name"
 msgstr "Zrzuca niezinterpretowaną zawartość SEKCJI, według liczny lub nazwy"
 
-#: src/readelf.c:103
+#: src/readelf.c:104
 msgid "Print string contents of sections"
 msgstr "Wyświetla zawartość ciągów sekcji"
 
-#: src/readelf.c:106
+#: src/readelf.c:107
 msgid "Display the symbol index of an archive"
 msgstr "Wyświetla indeks symboli archiwum"
 
-#: src/readelf.c:108
+#: src/readelf.c:109
 msgid "Output control:"
 msgstr "Kontrola wyjścia:"
 
-#: src/readelf.c:110
+#: src/readelf.c:111
 msgid "Do not find symbol names for addresses in DWARF data"
 msgstr "Bez odnajdywania nazw symboli dla adresów w danych DWARF"
 
-#: src/readelf.c:112
+#: src/readelf.c:113
 msgid ""
 "Display just offsets instead of resolving values to addresses in DWARF data"
 msgstr ""
 "Wyświetla tylko offsety zamiast rozwiązywania wartości na adresy w danych "
 "DWARF"
 
-#: src/readelf.c:114
+#: src/readelf.c:115
 msgid "Ignored for compatibility (lines always wide)"
 msgstr "Ignorowane dla zgodności (wiersze są zawsze szerokie)"
 
-#: src/readelf.c:119
+#: src/readelf.c:117
+msgid ""
+"Show compression information for compressed sections (when used with -S); "
+"decompress section before dumping data (when used with -p or -x)"
+msgstr ""
+"Wyświetla informacje o kompresji dla skompresowanych sekcji (kiedy jest "
+"używane z opcją -S); dekompresuje sekcję przed zrzuceniem danych (kiedy jest "
+"używane z opcją -p lub -x)"
+
+#: src/readelf.c:122
 msgid "Print information from ELF file in human-readable form."
 msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka."
 
-#: src/readelf.c:441
+#: src/readelf.c:447
 #, c-format
 msgid "Unknown DWARF debug section `%s'.\n"
-msgstr "Nieznana sekcja debugowania DWARF \"%s\".\n"
+msgstr "Nieznana sekcja debugowania DWARF „%s”.\n"
 
-#: src/readelf.c:520 src/readelf.c:631
+#: src/readelf.c:529 src/readelf.c:640
 #, c-format
 msgid "cannot generate Elf descriptor: %s"
 msgstr "nie można utworzyć deskryptora ELF: %s"
 
-#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269
+#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347
 #, c-format
 msgid "cannot get section: %s"
 msgstr "nie można uzyskać sekcji: %s"
 
-#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481
-#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543
-#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083
-#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508
-#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855
+#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623
+#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577
+#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118
+#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543
+#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891
 #, c-format
 msgid "cannot get section header: %s"
 msgstr "nie można uzyskać nagłówka sekcji: %s"
 
-#: src/readelf.c:562
+#: src/readelf.c:571
 #, c-format
 msgid "cannot get section name"
 msgstr "nie można uzyskać nazwy sekcji"
 
-#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772
-#: src/readelf.c:7949
+#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880
+#: src/readelf.c:8057
 #, c-format
 msgid "cannot get %s content: %s"
 msgstr "nie można uzyskać zwartości %s: %s"
 
-#: src/readelf.c:587
+#: src/readelf.c:596
 #, c-format
 msgid "cannot create temp file '%s'"
-msgstr "nie można utworzyć pliku tymczasowego \"%s\""
+msgstr "nie można utworzyć pliku tymczasowego „%s”"
 
-#: src/readelf.c:596
+#: src/readelf.c:605
 #, c-format
 msgid "cannot write section data"
 msgstr "nie można zapisać danych sekcji"
 
-#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648
+#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657
 #, c-format
 msgid "error while closing Elf descriptor: %s"
 msgstr "błąd podczas zamykania deskryptora ELF: %s"
 
-#: src/readelf.c:609
+#: src/readelf.c:618
 #, c-format
 msgid "error while rewinding file descriptor"
 msgstr "błąd podczas przewijania deskryptora pliku"
 
-#: src/readelf.c:643
+#: src/readelf.c:652
 #, c-format
 msgid "'%s' is not an archive, cannot print archive index"
-msgstr "\"%s\" nie jest archiwum, nie można wyświetlić indeksu archiwum"
+msgstr "„%s” nie jest archiwum, nie można wyświetlić indeksu archiwum"
 
-#: src/readelf.c:742
+#: src/readelf.c:751
 #, c-format
 msgid "No such section '%s' in '%s'"
-msgstr "Brak sekcji \"%s\" w \"%s\""
+msgstr "Brak sekcji „%s” w „%s”"
 
-#: src/readelf.c:769
+#: src/readelf.c:778
 #, c-format
 msgid "cannot stat input file"
 msgstr "nie można wykonać stat na pliku wejściowym"
 
-#: src/readelf.c:771
+#: src/readelf.c:780
 #, c-format
 msgid "input file is empty"
 msgstr "plik wejściowy jest pusty"
 
-#: src/readelf.c:773
+#: src/readelf.c:782
 #, c-format
 msgid "failed reading '%s': %s"
-msgstr "odczytanie \"%s\" się nie powiodło: %s"
+msgstr "odczytanie „%s” się nie powiodło: %s"
 
-#: src/readelf.c:814
+#: src/readelf.c:837
 #, c-format
 msgid "cannot read ELF header: %s"
 msgstr "nie można odczytać nagłówka ELF: %s"
 
-#: src/readelf.c:822
+#: src/readelf.c:845
 #, c-format
 msgid "cannot create EBL handle"
 msgstr "nie można utworzyć uchwytu EBL"
 
-#: src/readelf.c:835
+#: src/readelf.c:858
 #, c-format
 msgid "cannot determine number of program headers: %s"
 msgstr "nie można określić liczby nagłówków programu: %s"
 
-#: src/readelf.c:921
+#: src/readelf.c:948
 msgid "NONE (None)"
 msgstr "NONE (żaden)"
 
-#: src/readelf.c:922
+#: src/readelf.c:949
 msgid "REL (Relocatable file)"
 msgstr "REL (plik relokowalny)"
 
-#: src/readelf.c:923
+#: src/readelf.c:950
 msgid "EXEC (Executable file)"
 msgstr "EXEC (plik wykonywalny)"
 
-#: src/readelf.c:924
+#: src/readelf.c:951
 msgid "DYN (Shared object file)"
 msgstr "DYN (plik obiektu współdzielonego)"
 
-#: src/readelf.c:925
+#: src/readelf.c:952
 msgid "CORE (Core file)"
 msgstr "CORE (plik core)"
 
-#: src/readelf.c:930
+#: src/readelf.c:957
 #, c-format
 msgid "OS Specific: (%x)\n"
 msgstr "Zależny od systemu: (%x)\n"
 
-#: src/readelf.c:932
+#: src/readelf.c:959
 #, c-format
 msgid "Processor Specific: (%x)\n"
 msgstr "Zależny od procesora: (%x)\n"
 
-#: src/readelf.c:942
+#: src/readelf.c:969
 msgid ""
 "ELF Header:\n"
 "  Magic:  "
@@ -4610,7 +4647,7 @@
 "Nagłówek ELF:\n"
 "  Magic:  "
 
-#: src/readelf.c:946
+#: src/readelf.c:973
 #, c-format
 msgid ""
 "\n"
@@ -4619,117 +4656,117 @@
 "\n"
 "  Klasa:                             %s\n"
 
-#: src/readelf.c:951
+#: src/readelf.c:978
 #, c-format
 msgid "  Data:                              %s\n"
 msgstr "  Dane:                              %s\n"
 
-#: src/readelf.c:957
+#: src/readelf.c:984
 #, c-format
 msgid "  Ident Version:                     %hhd %s\n"
 msgstr "  Wersja Ident:                      %hhd %s\n"
 
-#: src/readelf.c:959 src/readelf.c:976
+#: src/readelf.c:986 src/readelf.c:1003
 msgid "(current)"
 msgstr "(bieżąca)"
 
-#: src/readelf.c:963
+#: src/readelf.c:990
 #, c-format
 msgid "  OS/ABI:                            %s\n"
 msgstr "  System operacyjny/ABI:             %s\n"
 
-#: src/readelf.c:966
+#: src/readelf.c:993
 #, c-format
 msgid "  ABI Version:                       %hhd\n"
 msgstr "  Wersja ABI:                        %hhd\n"
 
-#: src/readelf.c:969
+#: src/readelf.c:996
 msgid "  Type:                              "
 msgstr "  Typ:                               "
 
-#: src/readelf.c:972
+#: src/readelf.c:999
 #, c-format
 msgid "  Machine:                           %s\n"
 msgstr "  Komputer:                          %s\n"
 
-#: src/readelf.c:974
+#: src/readelf.c:1001
 #, c-format
 msgid "  Version:                           %d %s\n"
 msgstr "  Wersja:                            %d %s\n"
 
-#: src/readelf.c:978
+#: src/readelf.c:1005
 #, c-format
 msgid "  Entry point address:               %#<PRIx64>\n"
 msgstr "  Adres punktu wejściowego:          %#<PRIx64>\n"
 
-#: src/readelf.c:981
+#: src/readelf.c:1008
 #, c-format
 msgid "  Start of program headers:          %<PRId64> %s\n"
 msgstr "  Początek nagłówków programu:       %<PRId64> %s\n"
 
-#: src/readelf.c:982 src/readelf.c:985
+#: src/readelf.c:1009 src/readelf.c:1012
 msgid "(bytes into file)"
 msgstr "(bajtów w pliku)"
 
-#: src/readelf.c:984
+#: src/readelf.c:1011
 #, c-format
 msgid "  Start of section headers:          %<PRId64> %s\n"
 msgstr "  Początek nagłówków sekcji:         %<PRId64> %s\n"
 
-#: src/readelf.c:987
+#: src/readelf.c:1014
 #, c-format
 msgid "  Flags:                             %s\n"
 msgstr "  Flagi:                             %s\n"
 
-#: src/readelf.c:990
+#: src/readelf.c:1017
 #, c-format
 msgid "  Size of this header:               %<PRId16> %s\n"
 msgstr "  Rozmiar tego nagłówka:             %<PRId16> %s\n"
 
-#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011
+#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038
 msgid "(bytes)"
 msgstr "(bajtów)"
 
-#: src/readelf.c:993
+#: src/readelf.c:1020
 #, c-format
 msgid "  Size of program header entries:    %<PRId16> %s\n"
 msgstr "  Rozmiar wpisów nagłówka programu:  %<PRId16> %s\n"
 
-#: src/readelf.c:996
+#: src/readelf.c:1023
 #, c-format
 msgid "  Number of program headers entries: %<PRId16>"
 msgstr "  Liczba wpisów nagłówków programu: %<PRId16>"
 
-#: src/readelf.c:1003
+#: src/readelf.c:1030
 #, c-format
 msgid " (%<PRIu32> in [0].sh_info)"
 msgstr " (%<PRIu32> w [0].sh_info)"
 
-#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037
+#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064
 msgid " ([0] not available)"
 msgstr " ([0] niedostępny)"
 
-#: src/readelf.c:1010
+#: src/readelf.c:1037
 #, c-format
 msgid "  Size of section header entries:    %<PRId16> %s\n"
 msgstr "  Rozmiar wpisów nagłówka sekcji:    %<PRId16> %s\n"
 
-#: src/readelf.c:1013
+#: src/readelf.c:1040
 #, c-format
 msgid "  Number of section headers entries: %<PRId16>"
 msgstr "  Liczba wpisów nagłówków sekcji:    %<PRId16>"
 
-#: src/readelf.c:1020
+#: src/readelf.c:1047
 #, c-format
 msgid " (%<PRIu32> in [0].sh_size)"
 msgstr " (%<PRIu32> w [0].sh_size)"
 
-#: src/readelf.c:1033
+#: src/readelf.c:1060
 #, c-format
 msgid " (%<PRIu32> in [0].sh_link)"
 msgstr " (%<PRIu32> w [0].sh_link)"
 
-#: src/readelf.c:1041
+#: src/readelf.c:1068
 #, c-format
 msgid ""
 "  Section header string table index: XINDEX%s\n"
@@ -4738,7 +4775,7 @@
 "  Indeks tabeli ciągów nagłówków sekcji: XINDEX%s\n"
 "\n"
 
-#: src/readelf.c:1045
+#: src/readelf.c:1072
 #, c-format
 msgid ""
 "  Section header string table index: %<PRId16>\n"
@@ -4747,7 +4784,7 @@
 "  Indeks tabeli ciągów nagłówków sekcji: %<PRId16>\n"
 "\n"
 
-#: src/readelf.c:1077
+#: src/readelf.c:1115
 #, c-format
 msgid ""
 "There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4756,19 +4793,19 @@
 "Jest %d nagłówków sekcji, rozpoczynających się od offsetu %#<PRIx64>:\n"
 "\n"
 
-#: src/readelf.c:1087
+#: src/readelf.c:1125
 msgid "Section Headers:"
 msgstr "Nagłówki sekcji:"
 
-#: src/readelf.c:1090
+#: src/readelf.c:1128
 msgid ""
 "[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk "
 "Inf Al"
 msgstr ""
-"[Nr] Nazwa                Typ          Adres    Offset Rozm   ES Flagi Lk "
+"[Nr] Nazwa                Typ          Adres    Offset Rozm.  ES Flagi Lk "
 "Inf Al"
 
-#: src/readelf.c:1092
+#: src/readelf.c:1130
 msgid ""
 "[Nr] Name                 Type         Addr             Off      Size     ES "
 "Flags Lk Inf Al"
@@ -4776,18 +4813,36 @@
 "[Nr] Nazwa                Typ          Adres            Offset   Rozmiar  ES "
 "Flagi Lk Inf Al"
 
-#: src/readelf.c:1164
+#: src/readelf.c:1135
+msgid "     [Compression  Size   Al]"
+msgstr "     [Kompresja  Rozmiar   Al]"
+
+#: src/readelf.c:1137
+msgid "     [Compression  Size     Al]"
+msgstr "     [Kompresja  Rozmiar     Al]"
+
+#: src/readelf.c:1213
+#, c-format
+msgid "bad compression header for section %zd: %s"
+msgstr "błędny nagłówek kompresji dla sekcji %zd: %s"
+
+#: src/readelf.c:1224
+#, c-format
+msgid "bad gnu compressed size for section %zd: %s"
+msgstr "błędny rozmiar kompresji gnu dla sekcji %zd: %s"
+
+#: src/readelf.c:1242
 msgid "Program Headers:"
 msgstr "Nagłówki programu:"
 
-#: src/readelf.c:1166
+#: src/readelf.c:1244
 msgid ""
 "  Type           Offset   VirtAddr   PhysAddr   FileSiz  MemSiz   Flg Align"
 msgstr ""
 "  Typ            Offset   AdresWirt  AdresFiz   RozmPlik RozmPam  Flg "
 "Wyrównanie"
 
-#: src/readelf.c:1169
+#: src/readelf.c:1247
 msgid ""
 "  Type           Offset   VirtAddr           PhysAddr           FileSiz  "
 "MemSiz   Flg Align"
@@ -4795,12 +4850,12 @@
 "  Typ            Offset   AdresWirtualny     AdresFizyczny      RozmPlik "
 "RozmPam  Flg Wyrównanie"
 
-#: src/readelf.c:1226
+#: src/readelf.c:1304
 #, c-format
 msgid "\t[Requesting program interpreter: %s]\n"
 msgstr "\t[Wywołanie interpretera programu: %s]\n"
 
-#: src/readelf.c:1247
+#: src/readelf.c:1325
 msgid ""
 "\n"
 " Section to Segment mapping:\n"
@@ -4808,14 +4863,14 @@
 msgstr ""
 "\n"
 " Mapowanie sekcji do segmentów:\n"
-"  Segment sekcji..."
+"  Segment sekcji…"
 
-#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964
+#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999
 #, c-format
 msgid "cannot get program header: %s"
 msgstr "nie można uzyskać nagłówka programu: %s"
 
-#: src/readelf.c:1401
+#: src/readelf.c:1479
 #, c-format
 msgid ""
 "\n"
@@ -4825,15 +4880,15 @@
 "COMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n"
 msgstr[0] ""
 "\n"
-"Grupa sekcji COMDAT [%2zu] \"%s\" z podspiem \"%s\" zawiera %zu wpis:\n"
+"Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpis:\n"
 msgstr[1] ""
 "\n"
-"Grupa sekcji COMDAT [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisy:\n"
+"Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpisy:\n"
 msgstr[2] ""
 "\n"
-"Grupa sekcji COMDAT [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisów:\n"
+"Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpisów:\n"
 
-#: src/readelf.c:1406
+#: src/readelf.c:1484
 #, c-format
 msgid ""
 "\n"
@@ -4843,29 +4898,33 @@
 "Section group [%2zu] '%s' with signature '%s' contains %zu entries:\n"
 msgstr[0] ""
 "\n"
-"Grupa sekcji [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpis:\n"
+"Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpis:\n"
 msgstr[1] ""
 "\n"
-"Grupa sekcji [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisy:\n"
+"Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpisy:\n"
 msgstr[2] ""
 "\n"
-"Grupa sekcji [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisów:\n"
+"Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpisów:\n"
 
-#: src/readelf.c:1414
+#: src/readelf.c:1492
 msgid "<INVALID SYMBOL>"
 msgstr "<NIEPRAWIDŁOWY SYMBOL>"
 
-#: src/readelf.c:1428
+#: src/readelf.c:1506
 msgid "<INVALID SECTION>"
 msgstr "<NIEPRAWIDŁOWY SEKCJA>"
 
-#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542
-#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608
-#, fuzzy, c-format
-msgid "invalid sh_link value in section %zu"
-msgstr "nieprawidłowa wartość sh_link w sekcji %Zu"
+#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317
+msgid "Couldn't uncompress section"
+msgstr "Nie można dekompresować sekcji"
 
-#: src/readelf.c:1588
+#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640
+#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716
+#, c-format
+msgid "invalid sh_link value in section %zu"
+msgstr "nieprawidłowa wartość sh_link w sekcji %zu"
+
+#: src/readelf.c:1676
 #, c-format
 msgid ""
 "\n"
@@ -4891,36 +4950,36 @@
 " Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
 "'%s'\n"
 
-#: src/readelf.c:1598
+#: src/readelf.c:1686
 msgid "  Type              Value\n"
 msgstr "  Typ               Wartość\n"
 
-#: src/readelf.c:1622
+#: src/readelf.c:1710
 #, c-format
 msgid "Shared library: [%s]\n"
 msgstr "Biblioteka współdzielona: [%s]\n"
 
-#: src/readelf.c:1627
+#: src/readelf.c:1715
 #, c-format
 msgid "Library soname: [%s]\n"
 msgstr "soname biblioteki: [%s]\n"
 
-#: src/readelf.c:1632
+#: src/readelf.c:1720
 #, c-format
 msgid "Library rpath: [%s]\n"
 msgstr "rpath biblioteki: [%s]\n"
 
-#: src/readelf.c:1637
+#: src/readelf.c:1725
 #, c-format
 msgid "Library runpath: [%s]\n"
 msgstr "runpath biblioteki: [%s]\n"
 
-#: src/readelf.c:1657
+#: src/readelf.c:1745
 #, c-format
 msgid "%<PRId64> (bytes)\n"
 msgstr "%<PRId64> (bajtów)\n"
 
-#: src/readelf.c:1770 src/readelf.c:1960
+#: src/readelf.c:1858 src/readelf.c:2048
 #, c-format
 msgid ""
 "\n"
@@ -4929,7 +4988,7 @@
 "\n"
 "Nieprawidłowa tabela symboli pod offsetem %#0<PRIx64>\n"
 
-#: src/readelf.c:1788 src/readelf.c:1978
+#: src/readelf.c:1876 src/readelf.c:2066
 #, c-format
 msgid ""
 "\n"
@@ -4941,18 +5000,18 @@
 "contains %d entries:\n"
 msgstr[0] ""
 "\n"
-"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem "
-"%#0<PRIx64> zawiera %d wpis:\n"
+"Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0<PRIx64> "
+"zawiera %d wpis:\n"
 msgstr[1] ""
 "\n"
-"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem "
-"%#0<PRIx64> zawiera %d wpisy:\n"
+"Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0<PRIx64> "
+"zawiera %d wpisy:\n"
 msgstr[2] ""
 "\n"
-"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem "
-"%#0<PRIx64> zawiera %d wpisów:\n"
+"Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0<PRIx64> "
+"zawiera %d wpisów:\n"
 
-#: src/readelf.c:1803 src/readelf.c:1993
+#: src/readelf.c:1891 src/readelf.c:2081
 #, c-format
 msgid ""
 "\n"
@@ -4962,38 +5021,38 @@
 "Relocation section [%2u] '%s' at offset %#0<PRIx64> contains %d entries:\n"
 msgstr[0] ""
 "\n"
-"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpis:\n"
+"Sekcja relokacji [%2u] „%s” pod offsetem %#0<PRIx64> zawiera %d wpis:\n"
 msgstr[1] ""
 "\n"
-"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpisy:\n"
+"Sekcja relokacji [%2u] „%s” pod offsetem %#0<PRIx64> zawiera %d wpisy:\n"
 msgstr[2] ""
 "\n"
-"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpisów:\n"
+"Sekcja relokacji [%2u] „%s” pod offsetem %#0<PRIx64> zawiera %d wpisów:\n"
 
-#: src/readelf.c:1813
+#: src/readelf.c:1901
 msgid "  Offset      Type                 Value       Name\n"
 msgstr "  Offset      Typ                  Wartość     Nazwa\n"
 
-#: src/readelf.c:1815
+#: src/readelf.c:1903
 msgid "  Offset              Type                 Value               Name\n"
 msgstr "  Offset              Typ                  Wartość             Nazwa\n"
 
-#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913
-#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085
-#: src/readelf.c:2107 src/readelf.c:2120
+#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001
+#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173
+#: src/readelf.c:2195 src/readelf.c:2208
 msgid "<INVALID RELOC>"
 msgstr "<NIEPRAWIDŁOWA RELOKACJA>"
 
-#: src/readelf.c:2003
+#: src/readelf.c:2091
 msgid "  Offset      Type            Value       Addend Name\n"
 msgstr "  Offset      Typ             Wartość     Koniec Nazwa\n"
 
-#: src/readelf.c:2005
+#: src/readelf.c:2093
 msgid "  Offset              Type            Value               Addend Name\n"
 msgstr ""
 "  Offset              Typ             Wartość             Koniec Nazwa\n"
 
-#: src/readelf.c:2216
+#: src/readelf.c:2314
 #, c-format
 msgid ""
 "\n"
@@ -5003,49 +5062,49 @@
 "Symbol table [%2u] '%s' contains %u entries:\n"
 msgstr[0] ""
 "\n"
-"Tabela symboli [%2u] \"%s\" zawiera %u wpis:\n"
+"Tabela symboli [%2u] „%s” zawiera %u wpis:\n"
 msgstr[1] ""
 "\n"
-"Tabela symboli [%2u] \"%s\" zawiera %u wpisy:\n"
+"Tabela symboli [%2u] „%s” zawiera %u wpisy:\n"
 msgstr[2] ""
 "\n"
-"Tabela symboli [%2u] \"%s\" zawiera %u wpisów:\n"
+"Tabela symboli [%2u] „%s” zawiera %u wpisów:\n"
 
-#: src/readelf.c:2221
+#: src/readelf.c:2319
 #, c-format
 msgid " %lu local symbol  String table: [%2u] '%s'\n"
 msgid_plural " %lu local symbols  String table: [%2u] '%s'\n"
-msgstr[0] " %lu symbol lokalny     Tabela ciągów: [%2u] \"%s\"\n"
-msgstr[1] " %lu symbole lokalne    Tabela ciągów: [%2u] \"%s\"\n"
-msgstr[2] " %lu symboli lokalnych  Tabela ciągów: [%2u] \"%s\"\n"
+msgstr[0] " %lu symbol lokalny     Tabela ciągów: [%2u] „%s”\n"
+msgstr[1] " %lu symbole lokalne    Tabela ciągów: [%2u] „%s”\n"
+msgstr[2] " %lu symboli lokalnych  Tabela ciągów: [%2u] „%s”\n"
 
-#: src/readelf.c:2229
+#: src/readelf.c:2327
 msgid "  Num:    Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  Numer:  Wartość Rozm Typ     Bind   Widoczność   Ndx Nazwa\n"
 
-#: src/readelf.c:2231
+#: src/readelf.c:2329
 msgid "  Num:            Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  Numer:          Wartość Rozm Typ     Bind   Widoczność   Ndx Nazwa\n"
 
-#: src/readelf.c:2251
+#: src/readelf.c:2349
 #, c-format
 msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 
-#: src/readelf.c:2339
+#: src/readelf.c:2437
 #, c-format
 msgid "bad dynamic symbol"
 msgstr "błędny symbol dynamiczny"
 
-#: src/readelf.c:2421
+#: src/readelf.c:2519
 msgid "none"
 msgstr "brak"
 
-#: src/readelf.c:2438
+#: src/readelf.c:2536
 msgid "| <unknown>"
 msgstr "| <nieznany>"
 
-#: src/readelf.c:2469
+#: src/readelf.c:2567
 #, c-format
 msgid ""
 "\n"
@@ -5057,31 +5116,31 @@
 " Addr: %#0*<PRIx64>  Offset: %#08<PRIx64>  Link to section: [%2u] '%s'\n"
 msgstr[0] ""
 "\n"
-"Sekcja wymaganych wersji [%2u] \"%s\" zawiera %d wpis:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+"Sekcja wymaganych wersji [%2u] „%s” zawiera %d wpis:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 msgstr[1] ""
 "\n"
-"Sekcja wymaganych wersji [%2u] \"%s\" zawiera %d wpisy:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+"Sekcja wymaganych wersji [%2u] „%s” zawiera %d wpisy:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 msgstr[2] ""
 "\n"
-"Sekcja wymaganych wersji [%2u] \"%s\" zawiera %d wpisów:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+"Sekcja wymaganych wersji [%2u] „%s” zawiera %d wpisów:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 
-#: src/readelf.c:2490
+#: src/readelf.c:2588
 #, c-format
 msgid "  %#06x: Version: %hu  File: %s  Cnt: %hu\n"
 msgstr "  %#06x: Wersja: %hu  Plik: %s  Licznik: %hu\n"
 
-#: src/readelf.c:2503
+#: src/readelf.c:2601
 #, c-format
 msgid "  %#06x: Name: %s  Flags: %s  Version: %hu\n"
 msgstr "  %#06x: Nazwa: %s  Flagi: %s  Wersja: %hu\n"
 
-#: src/readelf.c:2546
+#: src/readelf.c:2644
 #, c-format
 msgid ""
 "\n"
@@ -5093,32 +5152,32 @@
 " Addr: %#0*<PRIx64>  Offset: %#08<PRIx64>  Link to section: [%2u] '%s'\n"
 msgstr[0] ""
 "\n"
-"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpis:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+"Sekcja definicji wersji [%2u] „%s” zawiera %d wpis:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 msgstr[1] ""
 "\n"
-"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpisy:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+"Sekcja definicji wersji [%2u] „%s” zawiera %d wpisy:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 msgstr[2] ""
 "\n"
-"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpisów:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+"Sekcja definicji wersji [%2u] „%s” zawiera %d wpisów:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 
-#: src/readelf.c:2574
+#: src/readelf.c:2672
 #, c-format
 msgid "  %#06x: Version: %hd  Flags: %s  Index: %hd  Cnt: %hd  Name: %s\n"
 msgstr ""
 "  %#06x: Wersja: %hd  Flagi: %s  Indeks: %hd  Licznik: %hd  Nazwa: %s\n"
 
-#: src/readelf.c:2589
+#: src/readelf.c:2687
 #, c-format
 msgid "  %#06x: Parent %d: %s\n"
 msgstr "  %#06x: Rodzic %d: %s\n"
 
-#: src/readelf.c:2850
+#: src/readelf.c:2948
 #, c-format
 msgid ""
 "\n"
@@ -5130,29 +5189,26 @@
 " Addr: %#0*<PRIx64>  Offset: %#08<PRIx64>  Link to section: [%2u] '%s'"
 msgstr[0] ""
 "\n"
-"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpis:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\""
+"Sekcja symboli wersji [%2u] „%s” zawiera %d wpis:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] „%s”"
 msgstr[1] ""
 "\n"
-"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpisy:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\""
+"Sekcja symboli wersji [%2u] „%s” zawiera %d wpisy:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] „%s”"
 msgstr[2] ""
 "\n"
-"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpisów:\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\""
+"Sekcja symboli wersji [%2u] „%s” zawiera %d wpisów:\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] „%s”"
 
-#: src/readelf.c:2878
+#: src/readelf.c:2976
 msgid "   0 *local*                     "
 msgstr "   0 *lokalny*                   "
 
-#: src/readelf.c:2883
+#: src/readelf.c:2981
 msgid "   1 *global*                    "
 msgstr "   1 *globalny*                  "
 
-#: src/readelf.c:2925
+#: src/readelf.c:3023
 #, c-format
 msgid ""
 "\n"
@@ -5166,39 +5222,39 @@
 " Addr: %#0*<PRIx64>  Offset: %#08<PRIx64>  Link to section: [%2u] '%s'\n"
 msgstr[0] ""
 "\n"
-"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d "
+"Histogram dla długości listy kubełków w sekcji [%2u] „%s” (w sumie %d "
 "kubełek):\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 msgstr[1] ""
 "\n"
-"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d "
+"Histogram dla długości listy kubełków w sekcji [%2u] „%s” (w sumie %d "
 "kubełki):\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 msgstr[2] ""
 "\n"
-"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d "
+"Histogram dla długości listy kubełków w sekcji [%2u] „%s” (w sumie %d "
 "kubełków):\n"
-" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] \"%s"
-"\"\n"
+" Adres: %#0*<PRIx64>  Offset: %#08<PRIx64>  Dowiązanie do sekcji: [%2u] "
+"„%s”\n"
 
-#: src/readelf.c:2947
+#: src/readelf.c:3045
 #, no-c-format
 msgid " Length  Number  % of total  Coverage\n"
 msgstr " Długość Liczba  % całości   Pokrycie\n"
 
-#: src/readelf.c:2949
+#: src/readelf.c:3047
 #, c-format
 msgid "      0  %6<PRIu32>      %5.1f%%\n"
 msgstr "      0  %6<PRIu32>      %5.1f%%\n"
 
-#: src/readelf.c:2956
+#: src/readelf.c:3054
 #, c-format
 msgid "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 msgstr "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 
-#: src/readelf.c:2969
+#: src/readelf.c:3067
 #, c-format
 msgid ""
 " Average number of tests:   successful lookup: %f\n"
@@ -5207,27 +5263,27 @@
 " Średnia liczba testów:   udane wyszukania: %f\n"
 "\t\t\t  nieudane wyszukania: %f\n"
 
-#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099
+#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197
 #, c-format
 msgid "cannot get data for section %d: %s"
 msgstr "nie można uzyskać danych dla sekcji %d: %s"
 
-#: src/readelf.c:2995
+#: src/readelf.c:3093
 #, c-format
 msgid "invalid data in sysv.hash section %d"
 msgstr "nieprawidłowe dane w sekcji sysv.hash %d"
 
-#: src/readelf.c:3050
+#: src/readelf.c:3148
 #, c-format
 msgid "invalid data in sysv.hash64 section %d"
 msgstr "nieprawidłowe dane w sekcji sysv.hash64 %d"
 
-#: src/readelf.c:3108
+#: src/readelf.c:3206
 #, c-format
 msgid "invalid data in gnu.hash section %d"
 msgstr "nieprawidłowe dane w sekcji gnu.hash %d"
 
-#: src/readelf.c:3175
+#: src/readelf.c:3273
 #, c-format
 msgid ""
 " Symbol Bias: %u\n"
@@ -5237,7 +5293,7 @@
 " Rozmiar maski bitowej: %zu bajtów  %<PRIuFAST32>%% bitów ustawionych  "
 "drugie przesunięcie skrótu: %u\n"
 
-#: src/readelf.c:3250
+#: src/readelf.c:3358
 #, c-format
 msgid ""
 "\n"
@@ -5247,18 +5303,18 @@
 "Library list section [%2zu] '%s' at offset %#0<PRIx64> contains %d entries:\n"
 msgstr[0] ""
 "\n"
-"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0<PRIx64> zawiera %d "
+"Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0<PRIx64> zawiera %d "
 "wpis:\n"
 msgstr[1] ""
 "\n"
-"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0<PRIx64> zawiera %d "
+"Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0<PRIx64> zawiera %d "
 "wpisy:\n"
 msgstr[2] ""
 "\n"
-"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0<PRIx64> zawiera %d "
+"Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0<PRIx64> zawiera %d "
 "wpisów:\n"
 
-#: src/readelf.c:3264
+#: src/readelf.c:3372
 msgid ""
 "       Library                       Time Stamp          Checksum Version "
 "Flags"
@@ -5266,7 +5322,7 @@
 "       Biblioteka                    Oznaczenie czasu    Suma k.  Wersja  "
 "Flagi"
 
-#: src/readelf.c:3314
+#: src/readelf.c:3422
 #, c-format
 msgid ""
 "\n"
@@ -5274,143 +5330,143 @@
 "%#0<PRIx64>:\n"
 msgstr ""
 "\n"
-"Sekcja atrybutów obiektu [%2zu] \"%s\" %<PRIu64> bajtów pod offsetem "
+"Sekcja atrybutów obiektu [%2zu] „%s” %<PRIu64> bajtów pod offsetem "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:3331
+#: src/readelf.c:3439
 msgid "  Owner          Size\n"
 msgstr "  Właściciel          Rozmiar\n"
 
-#: src/readelf.c:3360
+#: src/readelf.c:3468
 #, c-format
 msgid "  %-13s  %4<PRIu32>\n"
 msgstr "  %-13s  %4<PRIu32>\n"
 
-#: src/readelf.c:3399
+#: src/readelf.c:3507
 #, c-format
 msgid "    %-4u %12<PRIu32>\n"
 msgstr "    %-4u %12<PRIu32>\n"
 
-#: src/readelf.c:3404
+#: src/readelf.c:3512
 #, c-format
 msgid "    File: %11<PRIu32>\n"
 msgstr "    Plik: %11<PRIu32>\n"
 
-#: src/readelf.c:3453
+#: src/readelf.c:3561
 #, c-format
 msgid "      %s: %<PRId64>, %s\n"
 msgstr "      %s: %<PRId64>, %s\n"
 
-#: src/readelf.c:3456
+#: src/readelf.c:3564
 #, c-format
 msgid "      %s: %<PRId64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:3459
+#: src/readelf.c:3567
 #, c-format
 msgid "      %s: %s\n"
 msgstr "      %s: %s\n"
 
-#: src/readelf.c:3469
+#: src/readelf.c:3577
 #, c-format
 msgid "      %u: %<PRId64>\n"
 msgstr "      %u: %<PRId64>\n"
 
-#: src/readelf.c:3472
+#: src/readelf.c:3580
 #, c-format
 msgid "      %u: %s\n"
 msgstr "      %u: %s\n"
 
-#: src/readelf.c:3517
+#: src/readelf.c:3625
 #, c-format
 msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3520
+#: src/readelf.c:3628
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3525
+#: src/readelf.c:3633
 #, c-format
 msgid "%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3528
+#: src/readelf.c:3636
 #, c-format
 msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3534
+#: src/readelf.c:3642
 #, c-format
 msgid "%s+%#<PRIx64> <%s>"
 msgstr "%s+%#<PRIx64> <%s>"
 
-#: src/readelf.c:3537
+#: src/readelf.c:3645
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s>"
 msgstr "%s+%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3541
+#: src/readelf.c:3649
 #, c-format
 msgid "%#<PRIx64> <%s>"
 msgstr "%#<PRIx64> <%s>"
 
-#: src/readelf.c:3544
+#: src/readelf.c:3652
 #, c-format
 msgid "%#0*<PRIx64> <%s>"
 msgstr "%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3549
+#: src/readelf.c:3657
 #, c-format
 msgid "%s+%#<PRIx64>"
 msgstr "%s+%#<PRIx64>"
 
-#: src/readelf.c:3552
+#: src/readelf.c:3660
 #, c-format
 msgid "%s+%#0*<PRIx64>"
 msgstr "%s+%#0*<PRIx64>"
 
-#: src/readelf.c:3930
+#: src/readelf.c:4038
 msgid "empty block"
 msgstr "pusty blok"
 
-#: src/readelf.c:3933
+#: src/readelf.c:4041
 #, c-format
 msgid "%zu byte block:"
 msgstr "%zu bajtowy blok:"
 
-#: src/readelf.c:4330
+#: src/readelf.c:4438
 #, c-format
 msgid "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 msgstr "%*s[%4<PRIuMAX>] %s  <SKRÓCONE>\n"
 
-#: src/readelf.c:4387
+#: src/readelf.c:4495
 #, c-format
 msgid "%s %#<PRIx64> used with different address sizes"
 msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami adresu"
 
-#: src/readelf.c:4394
+#: src/readelf.c:4502
 #, c-format
 msgid "%s %#<PRIx64> used with different offset sizes"
 msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami offsetu"
 
-#: src/readelf.c:4401
+#: src/readelf.c:4509
 #, c-format
 msgid "%s %#<PRIx64> used with different base addresses"
 msgstr "%s %#<PRIx64> zostało użyte z różnymi adresami podstawowymi"
 
-#: src/readelf.c:4490
+#: src/readelf.c:4598
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE IN REST OF SECTION>\n"
 msgstr " [%6tx]  <NIEUŻYWANE ŚMIECIE W RESZCIE SEKCJI>\n"
 
-#: src/readelf.c:4498
+#: src/readelf.c:4606
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
-msgstr " [%6tx]  <NIEUŻYWANE ŚMIECIE>... %<PRIu64> bajtów...\n"
+msgstr " [%6tx]  <NIEUŻYWANE ŚMIECIE>… %<PRIu64> bajtów…\n"
 
-#: src/readelf.c:4524
+#: src/readelf.c:4632
 #, c-format
 msgid ""
 "\n"
@@ -5418,10 +5474,10 @@
 " [ Code]\n"
 msgstr ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
 " [ Kod]\n"
 
-#: src/readelf.c:4532
+#: src/readelf.c:4640
 #, c-format
 msgid ""
 "\n"
@@ -5430,30 +5486,30 @@
 "\n"
 "Sekcja skrótów pod offsetem %<PRIu64>:\n"
 
-#: src/readelf.c:4545
+#: src/readelf.c:4653
 #, c-format
 msgid " *** error while reading abbreviation: %s\n"
 msgstr " *** błąd podczas odczytywania skrótu: %s\n"
 
-#: src/readelf.c:4561
+#: src/readelf.c:4669
 #, c-format
 msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
 msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "yes"
 msgstr "tak"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "no"
 msgstr "nie"
 
-#: src/readelf.c:4598 src/readelf.c:4671
+#: src/readelf.c:4706 src/readelf.c:4779
 #, c-format
 msgid "cannot get .debug_aranges content: %s"
 msgstr "nie można uzyskać zawartości .debug_aranges: %s"
 
-#: src/readelf.c:4613
+#: src/readelf.c:4721
 #, c-format
 msgid ""
 "\n"
@@ -5463,20 +5519,20 @@
 "DWARF section [%2zu] '%s' at offset %#<PRIx64> contains %zu entries:\n"
 msgstr[0] ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpis:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64> zawiera %zu wpis:\n"
 msgstr[1] ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpisy:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64> zawiera %zu wpisy:\n"
 msgstr[2] ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
 
-#: src/readelf.c:4644
+#: src/readelf.c:4752
 #, c-format
 msgid " [%*zu] ???\n"
 msgstr " [%*zu] ???\n"
 
-#: src/readelf.c:4646
+#: src/readelf.c:4754
 #, c-format
 msgid ""
 " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5484,31 +5540,31 @@
 " [%*zu] początek: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: "
 "%6<PRId64>\n"
 
-#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360
-#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601
+#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468
+#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709
 #, c-format
 msgid ""
 "\n"
 "DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
 msgstr ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
 
-#: src/readelf.c:4689 src/readelf.c:6386
-#, fuzzy, c-format
+#: src/readelf.c:4797 src/readelf.c:6494
+#, c-format
 msgid ""
 "\n"
 "Table at offset %zu:\n"
 msgstr ""
 "\n"
-"Tabela pod offsetem %Zu:\n"
+"Tabela pod offsetem %zu:\n"
 
-#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397
+#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505
 #, c-format
 msgid "invalid data in section [%zu] '%s'"
-msgstr "nieprawidłowe dane w sekcji [%zu] \"%s\""
+msgstr "nieprawidłowe dane w sekcji [%zu] „%s”"
 
-#: src/readelf.c:4709
+#: src/readelf.c:4817
 #, c-format
 msgid ""
 "\n"
@@ -5517,32 +5573,32 @@
 "\n"
 " Długość:        %6<PRIu64>\n"
 
-#: src/readelf.c:4721
+#: src/readelf.c:4829
 #, c-format
 msgid " DWARF version: %6<PRIuFAST16>\n"
 msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
 
-#: src/readelf.c:4725
+#: src/readelf.c:4833
 #, c-format
 msgid "unsupported aranges version"
 msgstr "nieobsługiwana wersja aranges"
 
-#: src/readelf.c:4736
+#: src/readelf.c:4844
 #, c-format
 msgid " CU offset:     %6<PRIx64>\n"
 msgstr " Offset CU:     %6<PRIx64>\n"
 
-#: src/readelf.c:4742
+#: src/readelf.c:4850
 #, c-format
 msgid " Address size:  %6<PRIu64>\n"
 msgstr " Offset adresu:  %6<PRIu64>\n"
 
-#: src/readelf.c:4746
+#: src/readelf.c:4854
 #, c-format
 msgid "unsupported address size"
 msgstr "nieobsługiwany rozmiar adresu"
 
-#: src/readelf.c:4751
+#: src/readelf.c:4859
 #, c-format
 msgid ""
 " Segment size:  %6<PRIu64>\n"
@@ -5551,75 +5607,75 @@
 " Rozmiar segmentu:  %6<PRIu64>\n"
 "\n"
 
-#: src/readelf.c:4755
+#: src/readelf.c:4863
 #, c-format
 msgid "unsupported segment size"
 msgstr "nieobsługiwany rozmiar segmentu"
 
-#: src/readelf.c:4795
+#: src/readelf.c:4903
 #, c-format
 msgid "   %s..%s (%<PRIx64>)\n"
 msgstr "   %s..%s (%<PRIx64>)\n"
 
-#: src/readelf.c:4798
+#: src/readelf.c:4906
 #, c-format
 msgid "   %s..%s\n"
 msgstr "   %s..%s\n"
 
-#: src/readelf.c:4807
-#, fuzzy, c-format
+#: src/readelf.c:4915
+#, c-format
 msgid "   %zu padding bytes\n"
-msgstr "   bajty wypełnienia: %Zu\n"
+msgstr "   bajty wypełnienia: %zu\n"
 
-#: src/readelf.c:4825
+#: src/readelf.c:4933
 #, c-format
 msgid "cannot get .debug_ranges content: %s"
 msgstr "nie można uzyskać zawartości .debug_ranges: %s"
 
-#: src/readelf.c:4855 src/readelf.c:6919
+#: src/readelf.c:4963 src/readelf.c:7027
 #, c-format
 msgid " [%6tx]  <INVALID DATA>\n"
 msgstr " [%6tx]  <NIEPRAWIDŁOWE DANE>\n"
 
-#: src/readelf.c:4877 src/readelf.c:6941
+#: src/readelf.c:4985 src/readelf.c:7049
 #, c-format
 msgid " [%6tx]  base address %s\n"
 msgstr " [%6tx]  adres podstawowy %s\n"
 
-#: src/readelf.c:4884 src/readelf.c:6948
+#: src/readelf.c:4992 src/readelf.c:7056
 #, c-format
 msgid " [%6tx]  empty list\n"
 msgstr " [%6tx]  pusta lista\n"
 
-#: src/readelf.c:4895
+#: src/readelf.c:5003
 #, c-format
 msgid " [%6tx]  %s..%s\n"
-msgstr " [%6tx]  %s...%s\n"
+msgstr " [%6tx]  %s…%s\n"
 
-#: src/readelf.c:4897
+#: src/readelf.c:5005
 #, c-format
 msgid "           %s..%s\n"
-msgstr "           %s...%s\n"
+msgstr "           %s…%s\n"
 
-#: src/readelf.c:5076
+#: src/readelf.c:5184
 msgid "         <INVALID DATA>\n"
 msgstr "         <NIEPRAWIDŁOWE DANE>\n"
 
-#: src/readelf.c:5385
+#: src/readelf.c:5493
 #, c-format
 msgid "cannot get ELF: %s"
 msgstr "nie można uzyskać ELF: %s"
 
-#: src/readelf.c:5402
+#: src/readelf.c:5510
 #, c-format
 msgid ""
 "\n"
 "Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
 msgstr ""
 "\n"
-"Sekcja informacji o ramce wywołania [%2zu] \"%s\" pod offsetem %#<PRIx64>:\n"
+"Sekcja informacji o ramce wywołania [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
 
-#: src/readelf.c:5452
+#: src/readelf.c:5560
 #, c-format
 msgid ""
 "\n"
@@ -5628,50 +5684,50 @@
 "\n"
 " [%6tx] Zerowy koniec\n"
 
-#: src/readelf.c:5545 src/readelf.c:5700
+#: src/readelf.c:5653 src/readelf.c:5808
 #, c-format
 msgid "invalid augmentation length"
 msgstr "nieprawidłowa długość powiększenia"
 
-#: src/readelf.c:5560
+#: src/readelf.c:5668
 msgid "FDE address encoding: "
 msgstr "Kodowanie adresu FDE: "
 
-#: src/readelf.c:5566
+#: src/readelf.c:5674
 msgid "LSDA pointer encoding: "
 msgstr "Kodowanie wskaźnika LSDA: "
 
-#: src/readelf.c:5677
+#: src/readelf.c:5785
 #, c-format
 msgid " (offset: %#<PRIx64>)"
 msgstr " (offset: %#<PRIx64>)"
 
-#: src/readelf.c:5684
+#: src/readelf.c:5792
 #, c-format
 msgid " (end offset: %#<PRIx64>)"
 msgstr " (kończący offset: %#<PRIx64>)"
 
-#: src/readelf.c:5721
+#: src/readelf.c:5829
 #, c-format
 msgid "   %-26sLSDA pointer: %#<PRIx64>\n"
 msgstr "   %-26sWskaźnik LSDA: %#<PRIx64>\n"
 
-#: src/readelf.c:5776
+#: src/readelf.c:5884
 #, c-format
 msgid "cannot get attribute code: %s"
 msgstr "nie można uzyskać kodu atrybutu: %s"
 
-#: src/readelf.c:5785
+#: src/readelf.c:5893
 #, c-format
 msgid "cannot get attribute form: %s"
 msgstr "nie można uzyskać formy atrybutu: %s"
 
-#: src/readelf.c:5800
+#: src/readelf.c:5908
 #, c-format
 msgid "cannot get attribute value: %s"
 msgstr "nie można uzyskać wartości atrybutu: %s"
 
-#: src/readelf.c:6099
+#: src/readelf.c:6207
 #, c-format
 msgid ""
 "\n"
@@ -5679,10 +5735,10 @@
 " [Offset]\n"
 msgstr ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
 " [Offset]\n"
 
-#: src/readelf.c:6131
+#: src/readelf.c:6239
 #, c-format
 msgid ""
 " Type unit at offset %<PRIu64>:\n"
@@ -5695,7 +5751,7 @@
 "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
 " Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64>\n"
 
-#: src/readelf.c:6140
+#: src/readelf.c:6248
 #, c-format
 msgid ""
 " Compilation unit at offset %<PRIu64>:\n"
@@ -5706,33 +5762,33 @@
 " Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
 "%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
 
-#: src/readelf.c:6165
+#: src/readelf.c:6273
 #, c-format
 msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
-msgstr "nie można uzyskać DIE pod offsetem %<PRIu64> w sekcji \"%s\": %s"
+msgstr "nie można uzyskać DIE pod offsetem %<PRIu64> w sekcji „%s”: %s"
 
-#: src/readelf.c:6179
+#: src/readelf.c:6287
 #, c-format
 msgid "cannot get DIE offset: %s"
 msgstr "nie można uzyskać offsetu DIE: %s"
 
-#: src/readelf.c:6188
+#: src/readelf.c:6296
 #, c-format
 msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
-"nie można uzyskać znacznika DIE pod offsetem %<PRIu64> w sekcji \"%s\": %s"
+"nie można uzyskać znacznika DIE pod offsetem %<PRIu64> w sekcji „%s”: %s"
 
-#: src/readelf.c:6220
+#: src/readelf.c:6328
 #, c-format
 msgid "cannot get next DIE: %s\n"
 msgstr "nie można uzyskać następnego DIE: %s\n"
 
-#: src/readelf.c:6228
+#: src/readelf.c:6336
 #, c-format
 msgid "cannot get next DIE: %s"
 msgstr "nie można uzyskać następnego DIE: %s"
 
-#: src/readelf.c:6264
+#: src/readelf.c:6372
 #, c-format
 msgid ""
 "\n"
@@ -5740,15 +5796,15 @@
 "\n"
 msgstr ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
 "\n"
 
-#: src/readelf.c:6373
+#: src/readelf.c:6481
 #, c-format
 msgid "cannot get line data section data: %s"
 msgstr "nie można uzyskać danych sekcji danych wiersza: %s"
 
-#: src/readelf.c:6443
+#: src/readelf.c:6551
 #, c-format
 msgid ""
 "\n"
@@ -5770,19 +5826,19 @@
 " Długość prologu:              %<PRIu64>\n"
 " Minimalna długość instrukcji: %<PRIuFAST8>\n"
 " Maksymalna liczba działań na instrukcję: %<PRIuFAST8>\n"
-" Początkowa wartość \"%s\":    %<PRIuFAST8>\n"
+" Początkowa wartość „%s”:      %<PRIuFAST8>\n"
 " Początek wiersza:             %<PRIdFAST8>\n"
 " Przedział wiersza:            %<PRIuFAST8>\n"
 " Początek instrukcji:          %<PRIuFAST8>\n"
 "\n"
 "Instrukcje:\n"
 
-#: src/readelf.c:6464
+#: src/readelf.c:6572
 #, c-format
 msgid "invalid data at offset %tu in section [%zu] '%s'"
-msgstr "nieprawidłowe dane pod offsetem %tu w sekcji [%zu] \"%s\""
+msgstr "nieprawidłowe dane pod offsetem %tu w sekcji [%zu] „%s”"
 
-#: src/readelf.c:6479
+#: src/readelf.c:6587
 #, c-format
 msgid "  [%*<PRIuFAST8>]  %hhu argument\n"
 msgid_plural "  [%*<PRIuFAST8>]  %hhu arguments\n"
@@ -5790,7 +5846,7 @@
 msgstr[1] "  [%*<PRIuFAST8>]  %hhu parametry\n"
 msgstr[2] "  [%*<PRIuFAST8>]  %hhu parametrów\n"
 
-#: src/readelf.c:6487
+#: src/readelf.c:6595
 msgid ""
 "\n"
 "Directory table:"
@@ -5798,7 +5854,7 @@
 "\n"
 "Tabela katalogu:"
 
-#: src/readelf.c:6503
+#: src/readelf.c:6611
 msgid ""
 "\n"
 "File name table:\n"
@@ -5808,7 +5864,7 @@
 "Tabela nazw plików:\n"
 " Wpis Kat    Czas      Rozmiar   Nazwa"
 
-#: src/readelf.c:6538
+#: src/readelf.c:6646
 msgid ""
 "\n"
 "Line number statements:"
@@ -5816,119 +5872,119 @@
 "\n"
 "Instrukcje numerów wierszy:"
 
-#: src/readelf.c:6589
+#: src/readelf.c:6697
 #, c-format
 msgid "invalid maximum operations per instruction is zero"
 msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero"
 
-#: src/readelf.c:6625
+#: src/readelf.c:6733
 #, c-format
 msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
 msgstr ""
 " instrukcja specjalna %u: adres+%u = %s, op_index = %u, wiersz%+d = %zu\n"
 
-#: src/readelf.c:6630
+#: src/readelf.c:6738
 #, c-format
 msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
 msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n"
 
-#: src/readelf.c:6650
+#: src/readelf.c:6758
 #, c-format
 msgid " extended opcode %u: "
 msgstr " instrukcja rozszerzona %u: "
 
-#: src/readelf.c:6655
+#: src/readelf.c:6763
 msgid " end of sequence"
 msgstr " koniec sekwencji"
 
-#: src/readelf.c:6674
+#: src/readelf.c:6782
 #, c-format
 msgid " set address to %s\n"
 msgstr " ustawienie adresu na %s\n"
 
-#: src/readelf.c:6701
+#: src/readelf.c:6809
 #, c-format
 msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
 msgstr ""
 " definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, nazwa="
 "%s\n"
 
-#: src/readelf.c:6714
+#: src/readelf.c:6822
 #, c-format
 msgid " set discriminator to %u\n"
 msgstr " ustawienie dyskryminatora na %u\n"
 
-#: src/readelf.c:6719
+#: src/readelf.c:6827
 msgid " unknown opcode"
 msgstr " nieznana instrukcja"
 
-#: src/readelf.c:6731
+#: src/readelf.c:6839
 msgid " copy"
 msgstr " kopiowanie"
 
-#: src/readelf.c:6742
+#: src/readelf.c:6850
 #, c-format
 msgid " advance address by %u to %s, op_index to %u\n"
 msgstr " zwiększenie adresu o %u do %s, op_index do %u\n"
 
-#: src/readelf.c:6746
+#: src/readelf.c:6854
 #, c-format
 msgid " advance address by %u to %s\n"
 msgstr " zwiększenie adresu o %u do %s\n"
 
-#: src/readelf.c:6757
+#: src/readelf.c:6865
 #, c-format
 msgid " advance line by constant %d to %<PRId64>\n"
 msgstr " zwiększenie wiersza o stałą %d do %<PRId64>\n"
 
-#: src/readelf.c:6765
+#: src/readelf.c:6873
 #, c-format
 msgid " set file to %<PRIu64>\n"
 msgstr " ustawienie pliku na %<PRIu64>\n"
 
-#: src/readelf.c:6775
+#: src/readelf.c:6883
 #, c-format
 msgid " set column to %<PRIu64>\n"
 msgstr " ustawienie kolumny na %<PRIu64>\n"
 
-#: src/readelf.c:6782
+#: src/readelf.c:6890
 #, c-format
 msgid " set '%s' to %<PRIuFAST8>\n"
-msgstr " ustawienie \"%s\" na %<PRIuFAST8>\n"
+msgstr " ustawienie „%s” na %<PRIuFAST8>\n"
 
-#: src/readelf.c:6788
+#: src/readelf.c:6896
 msgid " set basic block flag"
 msgstr " ustawienie podstawowej flagi bloku"
 
-#: src/readelf.c:6801
+#: src/readelf.c:6909
 #, c-format
 msgid " advance address by constant %u to %s, op_index to %u\n"
 msgstr " zwiększenie adresu o stałą %u do %s, op_index do %u\n"
 
-#: src/readelf.c:6805
+#: src/readelf.c:6913
 #, c-format
 msgid " advance address by constant %u to %s\n"
 msgstr " zwiększenie adresu o stałą %u do %s\n"
 
-#: src/readelf.c:6823
+#: src/readelf.c:6931
 #, c-format
 msgid " advance address by fixed value %u to %s\n"
 msgstr " zwiększenie adresu o stałą wartość %u do %s\n"
 
-#: src/readelf.c:6832
+#: src/readelf.c:6940
 msgid " set prologue end flag"
 msgstr " ustawienie flagi końca prologu"
 
-#: src/readelf.c:6837
+#: src/readelf.c:6945
 msgid " set epilogue begin flag"
 msgstr " ustawienie flagi początku epilogu"
 
-#: src/readelf.c:6846
+#: src/readelf.c:6954
 #, c-format
 msgid " set isa to %u\n"
 msgstr " ustawienie isa na %u\n"
 
-#: src/readelf.c:6855
+#: src/readelf.c:6963
 #, c-format
 msgid " unknown opcode with %<PRIu8> parameter:"
 msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5936,101 +5992,101 @@
 msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
 msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:"
 
-#: src/readelf.c:6887
+#: src/readelf.c:6995
 #, c-format
 msgid "cannot get .debug_loc content: %s"
 msgstr "nie można uzyskać zawartości .debug_log: %s"
 
-#: src/readelf.c:6962
+#: src/readelf.c:7070
 #, c-format
 msgid " [%6tx]  %s..%s"
-msgstr " [%6tx]  %s...%s"
+msgstr " [%6tx]  %s…%s"
 
-#: src/readelf.c:6964
+#: src/readelf.c:7072
 #, c-format
 msgid "           %s..%s"
-msgstr "           %s...%s"
+msgstr "           %s…%s"
 
-#: src/readelf.c:6971 src/readelf.c:7859
+#: src/readelf.c:7079 src/readelf.c:7967
 msgid "   <INVALID DATA>\n"
 msgstr "   <NIEPRAWIDŁOWE DANE>\n"
 
-#: src/readelf.c:7023 src/readelf.c:7185
+#: src/readelf.c:7131 src/readelf.c:7293
 #, c-format
 msgid "cannot get macro information section data: %s"
 msgstr "nie można uzyskać danych sekcji informacji o makrach: %s"
 
-#: src/readelf.c:7103
+#: src/readelf.c:7211
 #, c-format
 msgid "%*s*** non-terminated string at end of section"
 msgstr "%*s*** niezakończony ciąg na końcu sekcji"
 
-#: src/readelf.c:7126
+#: src/readelf.c:7234
 #, c-format
 msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
 msgstr "%*s*** brak parametru DW_MACINFO_start_file na końcu sekcji"
 
-#: src/readelf.c:7226
+#: src/readelf.c:7334
 #, c-format
 msgid " Offset:             0x%<PRIx64>\n"
 msgstr " Offset:             0x%<PRIx64>\n"
 
-#: src/readelf.c:7238
+#: src/readelf.c:7346
 #, c-format
 msgid " Version:            %<PRIu16>\n"
 msgstr " Wersja:             %<PRIu16>\n"
 
-#: src/readelf.c:7244 src/readelf.c:7978
+#: src/readelf.c:7352 src/readelf.c:8086
 #, c-format
 msgid "  unknown version, cannot parse section\n"
 msgstr "  nieznana wersja, nie można przetworzyć sekcji\n"
 
-#: src/readelf.c:7251
+#: src/readelf.c:7359
 #, c-format
 msgid " Flag:               0x%<PRIx8>\n"
 msgstr " Flaga:              0x%<PRIx8>\n"
 
-#: src/readelf.c:7254
+#: src/readelf.c:7362
 #, c-format
 msgid " Offset length:      %<PRIu8>\n"
 msgstr " Długość offsetu:    %<PRIu8>\n"
 
-#: src/readelf.c:7262
+#: src/readelf.c:7370
 #, c-format
 msgid " .debug_line offset: 0x%<PRIx64>\n"
 msgstr " Offset .debug_line: 0x%<PRIx64>\n"
 
-#: src/readelf.c:7275
+#: src/readelf.c:7383
 #, c-format
 msgid "  extension opcode table, %<PRIu8> items:\n"
 msgstr "  tablica instrukcji rozszerzenia, %<PRIu8> elementów:\n"
 
-#: src/readelf.c:7282
+#: src/readelf.c:7390
 #, c-format
 msgid "    [%<PRIx8>]"
 msgstr "    [%<PRIx8>]"
 
-#: src/readelf.c:7294
+#: src/readelf.c:7402
 #, c-format
 msgid " %<PRIu8> arguments:"
 msgstr " Parametry %<PRIu8>:"
 
-#: src/readelf.c:7322
+#: src/readelf.c:7430
 #, c-format
 msgid " no arguments."
 msgstr " brak parametrów."
 
-#: src/readelf.c:7559
+#: src/readelf.c:7667
 #, c-format
 msgid "vendor opcode not verified?"
 msgstr "instrukcja producenta nie została sprawdzona?"
 
-#: src/readelf.c:7587
+#: src/readelf.c:7695
 #, c-format
 msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
 msgstr " [%5d] offset DIE: %6<PRId64>, offset CU DIE: %6<PRId64>, nazwa: %s\n"
 
-#: src/readelf.c:7628
+#: src/readelf.c:7736
 #, c-format
 msgid ""
 "\n"
@@ -6038,48 +6094,48 @@
 " %*s  String\n"
 msgstr ""
 "\n"
-"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF [%2zu] „%s” pod offsetem %#<PRIx64>:\n"
 " %*s  Ciąg\n"
 
-#: src/readelf.c:7642
+#: src/readelf.c:7750
 #, c-format
 msgid " *** error while reading strings: %s\n"
 msgstr " *** błąd podczas odczytywania ciągów: %s\n"
 
-#: src/readelf.c:7662
+#: src/readelf.c:7770
 #, c-format
 msgid ""
 "\n"
 "Call frame search table section [%2zu] '.eh_frame_hdr':\n"
 msgstr ""
 "\n"
-"Sekcja tabeli wyszukiwania ramki wywołania [%2zu] \".eh_frame_hdr\":\n"
+"Sekcja tabeli wyszukiwania ramki wywołania [%2zu] „.eh_frame_hdr”:\n"
 
-#: src/readelf.c:7764
+#: src/readelf.c:7872
 #, c-format
 msgid ""
 "\n"
 "Exception handling table section [%2zu] '.gcc_except_table':\n"
 msgstr ""
 "\n"
-"Sekcja tabeli obsługiwania wyjątków [%2zu] \".gcc_except_table\":\n"
+"Sekcja tabeli obsługiwania wyjątków [%2zu] „.gcc_except_table”:\n"
 
-#: src/readelf.c:7787
+#: src/readelf.c:7895
 #, c-format
 msgid " LPStart encoding:    %#x "
 msgstr " Kodowanie LPStart:    %#x "
 
-#: src/readelf.c:7799
+#: src/readelf.c:7907
 #, c-format
 msgid " TType encoding:      %#x "
 msgstr " Kodowanie TType:      %#x "
 
-#: src/readelf.c:7814
+#: src/readelf.c:7922
 #, c-format
 msgid " Call site encoding:  %#x "
 msgstr " Kodowanie strony wywołania:  %#x "
 
-#: src/readelf.c:7827
+#: src/readelf.c:7935
 msgid ""
 "\n"
 " Call site table:"
@@ -6087,7 +6143,7 @@
 "\n"
 " Tabela strony wywołania:"
 
-#: src/readelf.c:7841
+#: src/readelf.c:7949
 #, c-format
 msgid ""
 " [%4u] Call site start:   %#<PRIx64>\n"
@@ -6100,51 +6156,51 @@
 "        Lądowisko:                 %#<PRIx64>\n"
 "        Działanie:                 %u\n"
 
-#: src/readelf.c:7914
+#: src/readelf.c:8022
 #, c-format
 msgid "invalid TType encoding"
 msgstr "nieprawidłowe kodowanie TType"
 
-#: src/readelf.c:7940
+#: src/readelf.c:8048
 #, c-format
 msgid ""
 "\n"
 "GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
 msgstr ""
 "\n"
-"Sekcja GDB [%2zu] \"%s\" pod offsetem %#<PRIx64> zawiera %<PRId64> bajtów:\n"
+"Sekcja GDB [%2zu] „%s” pod offsetem %#<PRIx64> zawiera %<PRId64> bajtów:\n"
 
-#: src/readelf.c:7969
+#: src/readelf.c:8077
 #, c-format
 msgid " Version:         %<PRId32>\n"
 msgstr " Wersja:         %<PRId32>\n"
 
-#: src/readelf.c:7987
+#: src/readelf.c:8095
 #, c-format
 msgid " CU offset:       %#<PRIx32>\n"
 msgstr " offset CU:       %#<PRIx32>\n"
 
-#: src/readelf.c:7994
+#: src/readelf.c:8102
 #, c-format
 msgid " TU offset:       %#<PRIx32>\n"
 msgstr " offset TU:       %#<PRIx32>\n"
 
-#: src/readelf.c:8001
+#: src/readelf.c:8109
 #, c-format
 msgid " address offset:  %#<PRIx32>\n"
 msgstr " offset adresu:  %#<PRIx32>\n"
 
-#: src/readelf.c:8008
+#: src/readelf.c:8116
 #, c-format
 msgid " symbol offset:   %#<PRIx32>\n"
 msgstr " offset symbolu:   %#<PRIx32>\n"
 
-#: src/readelf.c:8015
+#: src/readelf.c:8123
 #, c-format
 msgid " constant offset: %#<PRIx32>\n"
 msgstr " offset stałej: %#<PRIx32>\n"
 
-#: src/readelf.c:8029
+#: src/readelf.c:8137
 #, c-format
 msgid ""
 "\n"
@@ -6153,7 +6209,7 @@
 "\n"
 " Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
 
-#: src/readelf.c:8054
+#: src/readelf.c:8162
 #, c-format
 msgid ""
 "\n"
@@ -6162,7 +6218,7 @@
 "\n"
 " Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
 
-#: src/readelf.c:8083
+#: src/readelf.c:8191
 #, c-format
 msgid ""
 "\n"
@@ -6171,7 +6227,7 @@
 "\n"
 " Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
 
-#: src/readelf.c:8116
+#: src/readelf.c:8224
 #, c-format
 msgid ""
 "\n"
@@ -6180,50 +6236,50 @@
 "\n"
 " Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n"
 
-#: src/readelf.c:8203
+#: src/readelf.c:8311
 #, c-format
 msgid "cannot get debug context descriptor: %s"
 msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s"
 
-#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152
+#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258
 #, c-format
 msgid "cannot convert core note data: %s"
-msgstr "nie można przekonwertować danych notatki core: %s"
+msgstr "nie można konwertować danych notatki core: %s"
 
-#: src/readelf.c:8724
+#: src/readelf.c:8830
 #, c-format
 msgid ""
 "\n"
 "%*s... <repeats %u more times> ..."
 msgstr ""
 "\n"
-"%*s... <powtarza się jeszcze %u razy>..."
+"%*s… <powtarza się jeszcze %u razy>…"
 
-#: src/readelf.c:9231
+#: src/readelf.c:9337
 msgid "  Owner          Data size  Type\n"
 msgstr "  Właściciel     Rozmiar danych  Typ\n"
 
-#: src/readelf.c:9249
+#: src/readelf.c:9355
 #, c-format
 msgid "  %-13.*s  %9<PRId32>  %s\n"
 msgstr "  %-13.*s  %9<PRId32>  %s\n"
 
-#: src/readelf.c:9299
+#: src/readelf.c:9405
 #, c-format
 msgid "cannot get content of note section: %s"
 msgstr "nie można uzyskać zawartości sekcji notatki: %s"
 
-#: src/readelf.c:9326
+#: src/readelf.c:9432
 #, c-format
 msgid ""
 "\n"
 "Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 "\n"
-"Segment notatki [%2zu] \"%s\" o długości %<PRIu64> bajtów pod offsetem "
+"Segment notatki [%2zu] „%s” o długości %<PRIu64> bajtów pod offsetem "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:9349
+#: src/readelf.c:9455
 #, c-format
 msgid ""
 "\n"
@@ -6232,50 +6288,71 @@
 "\n"
 "Segment notatki o długości %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
 
-#: src/readelf.c:9395
-#, fuzzy, c-format
+#: src/readelf.c:9501
+#, c-format
 msgid ""
 "\n"
 "Section [%zu] '%s' has no data to dump.\n"
 msgstr ""
 "\n"
-"Sekcja [%Zu] \"%s\" nie posiada danych do zrzucenia.\n"
+"Sekcja [%zu] „%s” nie posiada danych do zrzucenia.\n"
 
-#: src/readelf.c:9401 src/readelf.c:9424
-#, fuzzy, c-format
+#: src/readelf.c:9518 src/readelf.c:9559
+#, c-format
 msgid "cannot get data for section [%zu] '%s': %s"
-msgstr "nie można uzyskać danych dla sekcji [%Zu] \"%s\": %s"
+msgstr "nie można uzyskać danych dla sekcji [%zu] „%s”: %s"
 
-#: src/readelf.c:9405
-#, fuzzy, c-format
+#: src/readelf.c:9523
+#, c-format
 msgid ""
 "\n"
 "Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 "\n"
-"Segment zrzutu szesnastkowego [%Zu] \"%s\", %<PRIu64> bajtów pod offsetem "
+"Segment zrzutu szesnastkowego [%zu] „%s”, %<PRIu64> bajtów pod offsetem "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:9418
-#, fuzzy, c-format
+#: src/readelf.c:9528
+#, c-format
+msgid ""
+"\n"
+"Hex dump of section [%zu] '%s', %<PRIu64> bytes (%zd uncompressed) at offset "
+"%#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"Zrzut szesnastkowy sekcji [%zu] „%s”, %<PRIu64> bajtów (%zd "
+"nieskompresowanych) pod offsetem %#0<PRIx64>:\n"
+
+#: src/readelf.c:9542
+#, c-format
 msgid ""
 "\n"
 "Section [%zu] '%s' has no strings to dump.\n"
 msgstr ""
 "\n"
-"Sekcja [%Zu] \"%s\" nie posiada ciągów do zrzucenia.\n"
+"Sekcja [%zu] „%s” nie posiada ciągów do zrzucenia.\n"
 
-#: src/readelf.c:9428
-#, fuzzy, c-format
+#: src/readelf.c:9564
+#, c-format
 msgid ""
 "\n"
 "String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
 msgstr ""
 "\n"
-"Sekcja ciągów [%Zu] \"%s\" zawiera %<PRIu64> bajtów pod offsetem "
-"%#0<PRIx64>:\n"
+"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
 
-#: src/readelf.c:9476
+#: src/readelf.c:9569
+#, c-format
+msgid ""
+"\n"
+"String section [%zu] '%s' contains %<PRIu64> bytes (%zd uncompressed) at "
+"offset %#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"Sekcja ciągów [%zu] „%s” zawiera %<PRIu64> bajtów (%zd nieskompresowanych) "
+"pod offsetem %#0<PRIx64>:\n"
+
+#: src/readelf.c:9618
 #, c-format
 msgid ""
 "\n"
@@ -6284,79 +6361,78 @@
 "\n"
 "sekcja [%lu] nie istnieje"
 
-#: src/readelf.c:9505
+#: src/readelf.c:9647
 #, c-format
 msgid ""
 "\n"
 "section '%s' does not exist"
 msgstr ""
 "\n"
-"sekcja \"%s\" nie istnieje"
+"sekcja „%s” nie istnieje"
 
-#: src/readelf.c:9562
+#: src/readelf.c:9704
 #, c-format
 msgid "cannot get symbol index of archive '%s': %s"
-msgstr "nie można uzyskać indeksu symboli archiwum \"%s\": %s"
+msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s"
 
-#: src/readelf.c:9565
+#: src/readelf.c:9707
 #, c-format
 msgid ""
 "\n"
 "Archive '%s' has no symbol index\n"
 msgstr ""
 "\n"
-"Archiwum \"%s\" nie posiada indeksu symboli\n"
+"Archiwum „%s” nie posiada indeksu symboli\n"
 
-#: src/readelf.c:9569
-#, fuzzy, c-format
+#: src/readelf.c:9711
+#, c-format
 msgid ""
 "\n"
 "Index of archive '%s' has %zu entries:\n"
 msgstr ""
 "\n"
-"Indeks archiwum \"%s\" posiada %Zu wpisów:\n"
+"Indeks archiwum „%s” posiada %zu wpisów:\n"
 
-#: src/readelf.c:9587
-#, fuzzy, c-format
+#: src/readelf.c:9729
+#, c-format
 msgid "cannot extract member at offset %zu in '%s': %s"
-msgstr "nie można wydobyć elementów pod offsetem %Zu w \"%s\": %s"
+msgstr "nie można wydobyć elementów pod offsetem %zu w „%s”: %s"
 
-#: src/readelf.c:9592
+#: src/readelf.c:9734
 #, c-format
 msgid "Archive member '%s' contains:\n"
-msgstr "Element archiwum \"%s\" zawiera:\n"
+msgstr "Element archiwum „%s” zawiera:\n"
 
 #: src/size.c:59
 msgid ""
 "Use the output format FORMAT.  FORMAT can be `bsd' or `sysv'.  The default "
 "is `bsd'"
 msgstr ""
-"Używa FORMATU wyjścia. Może to być \"bsd\" lub \"sysv\". Domyślny jest \"bsd"
-"\""
+"Używa FORMATU wyjścia. Może to być „bsd” lub „sysv”. Domyślny jest „bsd”"
 
 #: src/size.c:61
 msgid "Same as `--format=sysv'"
-msgstr "To samo, co \"--format=sysv\""
+msgstr "To samo, co „--format=sysv”"
 
 #: src/size.c:62
 msgid "Same as `--format=bsd'"
-msgstr "To samo, co \"--format=bsd\""
+msgstr "To samo, co „--format=bsd”"
 
 #: src/size.c:65
 msgid "Same as `--radix=10'"
-msgstr "To samo, co \"--radix=10\""
+msgstr "To samo, co „--radix=10”"
 
 #: src/size.c:66
 msgid "Same as `--radix=8'"
-msgstr "To samo, co \"--radix=8\""
+msgstr "To samo, co „--radix=8”"
 
 #: src/size.c:67
 msgid "Same as `--radix=16'"
-msgstr "To samo, co \"--radix=16\""
+msgstr "To samo, co „--radix=16”"
 
 #: src/size.c:69
 msgid "Similar to `--format=sysv' output but in one line"
-msgstr "Podobne do wyjścia \"--format=sysv\", ale w jednym wierszu"
+msgstr "Podobne do wyjścia „--format=sysv”, ale w jednym wierszu"
 
 #: src/size.c:73
 msgid "Print size and permission flags for loadable segments"
@@ -6402,7 +6478,7 @@
 #: src/stack.c:494
 #, c-format
 msgid "Cannot open core file '%s'"
-msgstr "Nie można otworzyć pliku core \"%s\""
+msgstr "Nie można otworzyć pliku core „%s”"
 
 #: src/stack.c:554
 #, c-format
@@ -6565,7 +6641,7 @@
 #: src/strings.c:271 src/strings.c:306
 #, c-format
 msgid "invalid value '%s' for %s parameter"
-msgstr "nieprawidłowa wartość \"%s\" dla parametru %s"
+msgstr "nieprawidłowa wartość „%s” dla parametru %s"
 
 #: src/strings.c:317
 #, c-format
@@ -6573,9 +6649,9 @@
 msgstr "nieprawidłowa minimalna długość dopasowanego rozmiaru ciągu"
 
 #: src/strings.c:600
-#, fuzzy, c-format
+#, c-format
 msgid "lseek failed"
-msgstr "lseek64 się nie powiodło"
+msgstr "lseek się nie powiodło"
 
 #: src/strings.c:617 src/strings.c:681
 #, c-format
@@ -6590,7 +6666,7 @@
 #: src/strings.c:743
 #, c-format
 msgid "Skipping section %zd '%s' data outside file"
-msgstr "Pomijanie sekcji %zd \"%s\" dane poza plikiem"
+msgstr "Pomijanie sekcji %zd „%s” dane poza plikiem"
 
 #: src/strip.c:68
 msgid "Place stripped output into FILE"
@@ -6646,7 +6722,7 @@
 #: src/strip.c:200
 #, c-format
 msgid "Only one input file allowed together with '-o' and '-f'"
-msgstr "Tylko jeden plik wejściowy jest dozwolony z \"-o\" i \"-f\""
+msgstr "Tylko jeden plik wejściowy jest dozwolony z „-o” i „-f”"
 
 #: src/strip.c:236
 #, c-format
@@ -6671,12 +6747,12 @@
 #: src/strip.c:320 src/strip.c:344
 #, c-format
 msgid "cannot stat input file '%s'"
-msgstr "nie można wykonać stat na pliku wejściowym \"%s\""
+msgstr "nie można wykonać stat na pliku wejściowym „%s”"
 
 #: src/strip.c:334
 #, c-format
 msgid "while opening '%s'"
-msgstr "podczas otwierania \"%s\""
+msgstr "podczas otwierania „%s”"
 
 #: src/strip.c:372
 #, c-format
@@ -6701,12 +6777,12 @@
 #: src/strip.c:544 src/strip.c:568
 #, c-format
 msgid "cannot create new file '%s': %s"
-msgstr "nie można utworzyć nowego pliku \"%s\": %s"
+msgstr "nie można utworzyć nowego pliku „%s”: %s"
 
 #: src/strip.c:634
 #, c-format
 msgid "illformed file '%s'"
-msgstr "plik \"%s\" posiada błędny format"
+msgstr "plik „%s” posiada błędny format"
 
 #: src/strip.c:968 src/strip.c:1067
 #, c-format
@@ -6721,7 +6797,7 @@
 #: src/strip.c:1050
 #, c-format
 msgid "while preparing output for '%s'"
-msgstr "podczas przygotowywania wyjścia dla \"%s\""
+msgstr "podczas przygotowywania wyjścia dla „%s”"
 
 #: src/strip.c:1108 src/strip.c:1171
 #, c-format
@@ -6746,12 +6822,12 @@
 #: src/strip.c:1982 src/strip.c:2095
 #, c-format
 msgid "while writing '%s': %s"
-msgstr "podczas zapisywania \"%s\": %s"
+msgstr "podczas zapisywania „%s”: %s"
 
 #: src/strip.c:1993
 #, c-format
 msgid "while creating '%s'"
-msgstr "podczas tworzenia \"%s\""
+msgstr "podczas tworzenia „%s”"
 
 #: src/strip.c:2016
 #, c-format
@@ -6766,17 +6842,17 @@
 #: src/strip.c:2120 src/strip.c:2140
 #, c-format
 msgid "while writing '%s'"
-msgstr "podczas zapisywania \"%s\""
+msgstr "podczas zapisywania „%s”"
 
 #: src/strip.c:2177 src/strip.c:2184
 #, c-format
 msgid "error while finishing '%s': %s"
-msgstr "błąd podczas kończenia \"%s\": %s"
+msgstr "błąd podczas kończenia „%s”: %s"
 
 #: src/strip.c:2201 src/strip.c:2273
 #, c-format
 msgid "cannot set access and modification date of '%s'"
-msgstr "nie można ustawić czasu dostępu i modyfikacji \"%s\""
+msgstr "nie można ustawić czasu dostępu i modyfikacji „%s”"
 
 #: src/unstrip.c:69
 msgid "Match MODULE against file names, not module names"
@@ -6835,7 +6911,7 @@
 #: src/unstrip.c:188
 #, c-format
 msgid "output directory '%s'"
-msgstr "katalog wyjściowy \"%s\""
+msgstr "katalog wyjściowy „%s”"
 
 #: src/unstrip.c:197
 #, c-format
@@ -6862,12 +6938,12 @@
 msgid "cannot copy ELF header: %s"
 msgstr "nie można skopiować nagłówka ELF: %s"
 
-#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947
+#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982
 #, c-format
 msgid "cannot get number of program headers: %s"
 msgstr "nie można uzyskać liczby nagłówków programu: %s"
 
-#: src/unstrip.c:266 src/unstrip.c:1907
+#: src/unstrip.c:266 src/unstrip.c:1943
 #, c-format
 msgid "cannot create program headers: %s"
 msgstr "nie można utworzyć nagłówków programu: %s"
@@ -6882,12 +6958,12 @@
 msgid "cannot copy section header: %s"
 msgstr "nie można skopiować nagłówka sekcji: %s"
 
-#: src/unstrip.c:285 src/unstrip.c:1541
+#: src/unstrip.c:285 src/unstrip.c:1576
 #, c-format
 msgid "cannot get section data: %s"
 msgstr "nie można uzyskać danych sekcji: %s"
 
-#: src/unstrip.c:287 src/unstrip.c:1543
+#: src/unstrip.c:287 src/unstrip.c:1578
 #, c-format
 msgid "cannot copy section data: %s"
 msgstr "nie można skopiować danych sekcji: %s"
@@ -6895,225 +6971,225 @@
 #: src/unstrip.c:311
 #, c-format
 msgid "cannot create directory '%s'"
-msgstr "nie można utworzyć katalogu \"%s\""
+msgstr "nie można utworzyć katalogu „%s”"
 
-#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575
+#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610
 #, c-format
 msgid "cannot get symbol table entry: %s"
 msgstr "nie można uzyskać wpisu tabeli symboli: %s"
 
-#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618
-#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793
+#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653
+#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829
 #, c-format
 msgid "cannot update symbol table: %s"
 msgstr "nie można zaktualizować tabeli symboli: %s"
 
-#: src/unstrip.c:377
+#: src/unstrip.c:409
 #, c-format
 msgid "cannot update section header: %s"
 msgstr "nie można zaktualizować nagłówka sekcji: %s"
 
-#: src/unstrip.c:416 src/unstrip.c:427
+#: src/unstrip.c:448 src/unstrip.c:459
 #, c-format
 msgid "cannot update relocation: %s"
 msgstr "nie można zaktualizować relokacji: %s"
 
-#: src/unstrip.c:514
+#: src/unstrip.c:547
 #, c-format
 msgid "cannot get symbol version: %s"
 msgstr "nie można uzyskać wersji symbolu: %s"
 
-#: src/unstrip.c:526
-#, fuzzy, c-format
+#: src/unstrip.c:560
+#, c-format
 msgid "unexpected section type in [%zu] with sh_link to symtab"
-msgstr "nieoczekiwany typ sekcji w [%Zu] z sh_link do tabeli symboli"
+msgstr "nieoczekiwany typ sekcji w [%zu] z sh_link do tabeli symboli"
 
-#: src/unstrip.c:774
-#, fuzzy, c-format
+#: src/unstrip.c:809
+#, c-format
 msgid "invalid string offset in symbol [%zu]"
-msgstr "nieprawidłowy offset ciągu w symbolu [%Zu]"
+msgstr "nieprawidłowy offset ciągu w symbolu [%zu]"
 
-#: src/unstrip.c:932 src/unstrip.c:1278
-#, fuzzy, c-format
+#: src/unstrip.c:967 src/unstrip.c:1313
+#, c-format
 msgid "cannot read section [%zu] name: %s"
-msgstr "nie można odczytać nazwy sekcji [%Zu]: %s"
+msgstr "nie można odczytać nazwy sekcji [%zu]: %s"
 
-#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027
+#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062
 #, c-format
 msgid "cannot read '.gnu.prelink_undo' section: %s"
-msgstr "nie można odczytać sekcji \".gnu.prelink_undo\": %s"
+msgstr "nie można odczytać sekcji „.gnu.prelink_undo”: %s"
 
-#: src/unstrip.c:1013
+#: src/unstrip.c:1048
 #, c-format
 msgid "invalid contents in '%s' section"
-msgstr "nieprawidłowa zawartość w sekcji \"%s\""
+msgstr "nieprawidłowa zawartość w sekcji „%s”"
 
-#: src/unstrip.c:1019
+#: src/unstrip.c:1054
 #, c-format
 msgid "overflow with shnum = %zu in '%s' section"
-msgstr ""
+msgstr "przepełnienie z shnum = %zu w sekcji „%s”"
 
-#: src/unstrip.c:1073 src/unstrip.c:1398
-#, fuzzy, c-format
+#: src/unstrip.c:1108 src/unstrip.c:1433
+#, c-format
 msgid "cannot find matching section for [%zu] '%s'"
-msgstr "nie można odnaleźć pasującej sekcji dla [%Zu] \"%s\""
+msgstr "nie można odnaleźć pasującej sekcji dla [%zu] „%s”"
 
-#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731
+#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766
 #, c-format
 msgid "cannot add section name to string table: %s"
 msgstr "nie można nazwy sekcji do tabeli ciągów: %s"
 
-#: src/unstrip.c:1222
+#: src/unstrip.c:1257
 #, c-format
 msgid "cannot update section header string table data: %s"
 msgstr "nie można zaktualizować danych tabeli ciągów nagłówków sekcji: %s"
 
-#: src/unstrip.c:1249 src/unstrip.c:1253
+#: src/unstrip.c:1284 src/unstrip.c:1288
 #, c-format
 msgid "cannot get section header string table section index: %s"
 msgstr "nie można uzyskać indeksu sekcji tabeli ciągów nagłówków sekcji: %s"
 
-#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494
+#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529
 #, c-format
 msgid "cannot get section count: %s"
 msgstr "nie można uzyskać licznika sekcji: %s"
 
-#: src/unstrip.c:1264
+#: src/unstrip.c:1299
 #, c-format
 msgid "more sections in stripped file than debug file -- arguments reversed?"
 msgstr ""
-"więcej sekcji w okrojonym pliku niż w pliku debugowania - odwrócono "
+"więcej sekcji w okrojonym pliku niż w pliku debugowania — odwrócono "
 "parametry?"
 
-#: src/unstrip.c:1323 src/unstrip.c:1413
+#: src/unstrip.c:1358 src/unstrip.c:1448
 #, c-format
 msgid "cannot read section header string table: %s"
 msgstr "nie można odczytać tabeli ciągów nagłówków sekcji: %s"
 
-#: src/unstrip.c:1473
+#: src/unstrip.c:1508
 #, c-format
 msgid "cannot add new section: %s"
 msgstr "nie można dodać nowej sekcji: %s"
 
-#: src/unstrip.c:1583
-#, fuzzy, c-format
+#: src/unstrip.c:1618
+#, c-format
 msgid "symbol [%zu] has invalid section index"
-msgstr "symbol [%Zu] posiada nieprawidłowy indeks sekcji"
+msgstr "symbol [%zu] posiada nieprawidłowy indeks sekcji"
 
-#: src/unstrip.c:1864
+#: src/unstrip.c:1900
 #, c-format
 msgid "cannot read section data: %s"
 msgstr "nie można odczytać danych sekcji: %s"
 
-#: src/unstrip.c:1885
+#: src/unstrip.c:1921
 #, c-format
 msgid "cannot get ELF header: %s"
 msgstr "nie można uzyskać nagłówka ELF: %s"
 
-#: src/unstrip.c:1917
+#: src/unstrip.c:1953
 #, c-format
 msgid "cannot update program header: %s"
 msgstr "nie można zaktualizować nagłówka programu: %s"
 
-#: src/unstrip.c:1922 src/unstrip.c:2005
+#: src/unstrip.c:1958 src/unstrip.c:2040
 #, c-format
 msgid "cannot write output file: %s"
 msgstr "nie można zapisać pliku wyjściowego: %s"
 
-#: src/unstrip.c:1974
+#: src/unstrip.c:2009
 #, c-format
 msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 "Dane DWARF nie zostały dostosowane do przesunięcia wczesnego konsolidowania; "
 "proszę rozważyć polecenie prelink -u"
 
-#: src/unstrip.c:1977
+#: src/unstrip.c:2012
 #, c-format
 msgid ""
 "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
-"Dane DWARF w \"%s\" nie zostały dostosowane do przesunięcia wczesnego "
+"Dane DWARF w „%s” nie zostały dostosowane do przesunięcia wczesnego "
 "konsolidowania; proszę rozważyć polecenie prelink -u"
 
-#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145
+#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180
 #, c-format
 msgid "cannot create ELF descriptor: %s"
 msgstr "nie można utworzyć deskryptora ELF: %s"
 
-#: src/unstrip.c:2038
+#: src/unstrip.c:2073
 msgid "WARNING: "
 msgstr "OSTRZEŻENIE: "
 
-#: src/unstrip.c:2040
+#: src/unstrip.c:2075
 msgid ", use --force"
 msgstr ", należy użyć opcji --force"
 
-#: src/unstrip.c:2063
+#: src/unstrip.c:2098
 msgid "ELF header identification (e_ident) different"
 msgstr "Różna identyfikacja nagłówka ELF (e_ident)"
 
-#: src/unstrip.c:2066
+#: src/unstrip.c:2101
 msgid "ELF header type (e_type) different"
 msgstr "Różne typy nagłówka ELF (e_type)"
 
-#: src/unstrip.c:2069
+#: src/unstrip.c:2104
 msgid "ELF header machine type (e_machine) different"
 msgstr "Różne typy maszyny nagłówka ELF (e_machine)"
 
-#: src/unstrip.c:2072
+#: src/unstrip.c:2107
 msgid "stripped program header (e_phnum) smaller than unstripped"
 msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony"
 
-#: src/unstrip.c:2102
+#: src/unstrip.c:2137
 #, c-format
 msgid "cannot find stripped file for module '%s': %s"
-msgstr "nie można odnaleźć okrojonego pliku dla modułu \"%s\": %s"
+msgstr "nie można odnaleźć okrojonego pliku dla modułu „%s”: %s"
 
-#: src/unstrip.c:2106
+#: src/unstrip.c:2141
 #, c-format
 msgid "cannot open stripped file '%s' for module '%s': %s"
-msgstr "nie można otworzyć okrojonego pliku \"%s\" dla modułu \"%s\": %s"
+msgstr "nie można otworzyć okrojonego pliku „%s” dla modułu „%s”: %s"
 
-#: src/unstrip.c:2121
+#: src/unstrip.c:2156
 #, c-format
 msgid "cannot find debug file for module '%s': %s"
-msgstr "nie można odnaleźć pliku debugowania dla modułu \"%s\": %s"
+msgstr "nie można odnaleźć pliku debugowania dla modułu „%s”: %s"
 
-#: src/unstrip.c:2125
+#: src/unstrip.c:2160
 #, c-format
 msgid "cannot open debug file '%s' for module '%s': %s"
-msgstr "nie można otworzyć pliku debugowania \"%s\" dla modułu \"%s\": %s"
+msgstr "nie można otworzyć pliku debugowania „%s” dla modułu „%s”: %s"
 
-#: src/unstrip.c:2138
+#: src/unstrip.c:2173
 #, c-format
 msgid "module '%s' file '%s' is not stripped"
-msgstr "moduł \"%s\" pliku \"%s\" nie został okrojony"
+msgstr "moduł „%s” pliku „%s” nie został okrojony"
 
-#: src/unstrip.c:2169
+#: src/unstrip.c:2204
 #, c-format
 msgid "cannot cache section addresses for module '%s': %s"
 msgstr ""
-"nie można utworzyć pamięci podręcznej adresów sekcji dla modułu \"%s\": %s"
+"nie można utworzyć pamięci podręcznej adresów sekcji dla modułu „%s”: %s"
 
-#: src/unstrip.c:2302
+#: src/unstrip.c:2337
 #, c-format
 msgid "no matching modules found"
 msgstr "nie odnaleziono pasujących modułów"
 
-#: src/unstrip.c:2311
+#: src/unstrip.c:2346
 #, c-format
 msgid "matched more than one module"
 msgstr "pasuje więcej niż jeden moduł"
 
-#: src/unstrip.c:2355
+#: src/unstrip.c:2390
 msgid ""
 "STRIPPED-FILE DEBUG-FILE\n"
 "[MODULE...]"
 msgstr ""
 "OKROJONY-PLIK PLIK-DEBUGOWANIA\n"
-"[MODUŁ...]"
+"[MODUŁ…]"
 
-#: src/unstrip.c:2356
+#: src/unstrip.c:2391
 msgid ""
 "Combine stripped files with separate symbols and debug information.\vThe "
 "first form puts the result in DEBUG-FILE if -o was not given.\n"
@@ -7158,13 +7234,13 @@
 "\tPOCZĄTEK+ROZMIAR IDENTYFIKATOR-KOPII PLIK PLIK-DEBUGOWANIA NAZWA-MODUŁU\n"
 "POCZĄTEK i ROZMIAR są liczbami szesnastkowymi podającymi zakres adresów "
 "modułu. IDENTYFIKATOR-KOPII jest liczbą szesnastkową dla bitów "
-"identyfikatora kopii lub \"-\", jeśli identyfikator jest nieznany; liczba "
+"identyfikatora kopii lub „-”, jeśli identyfikator jest nieznany; liczba "
 "szesnastkowa może być uzupełniona @0xADRES podającym adres, gdzie znajduje "
 "się identyfikator, jeśli jest to wiadome. PLIK jest nazwą pliku "
-"odnalezionego dla modułu lub \"-\", jeśli go nie odnaleziono lub \".\", "
-"jeśli obraz ELF jest dostępny, ale nie z żadnego nazwanego pliku. PLIK-"
-"DEBUGOWANIA jest nazwą oddzielnego pliku debuginfo lub \"-\", jeśli nie "
-"odnaleziono debuginfo lub \".\", jeśli PLIK zawiera informacje debugowania."
+"odnalezionego dla modułu lub „-”, jeśli go nie odnaleziono lub „.”, jeśli "
+"obraz ELF jest dostępny, ale nie z żadnego nazwanego pliku. PLIK-DEBUGOWANIA "
+"jest nazwą oddzielnego pliku debuginfo lub „-”, jeśli nie odnaleziono "
+"debuginfo lub „.”, jeśli PLIK zawiera informacje debugowania."
 
 #: tests/backtrace.c:427
 msgid "Run executable"
@@ -7177,6 +7253,3 @@
 #: tests/dwflmodtest.c:214
 msgid "Show instances of inlined functions"
 msgstr "Wyświetla wystąpienia wstawionych funkcji"
-
-#~ msgid "cannot get section header of section %Zu: %s"
-#~ msgstr "nie można uzyskać nagłówka sekcji dla sekcji %Zu: %s"
diff --git a/po/uk.po b/po/uk.po
index 4cf554b..7e875e2 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2015-10-16 13:26+0200\n"
+"POT-Creation-Date: 2016-01-11 08:48+0100\n"
 "PO-Revision-Date: 2015-09-26 16:41+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
@@ -46,8 +46,8 @@
 msgid "cannot allocate memory"
 msgstr "не вдалося розподілити пам’ять"
 
-#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184
-#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403
+#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282
+#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438
 #, c-format
 msgid "memory exhausted"
 msgstr "пам’ять вичерпано"
@@ -249,7 +249,7 @@
 msgid "not a CU (unit) DIE"
 msgstr "не є DIE CU (модуля)"
 
-#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345
+#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380
 msgid "Input selection options:"
 msgstr "Вибір параметрів виведення даних:"
 
@@ -307,7 +307,12 @@
 msgid "cannot read ELF core file: %s"
 msgstr "не вдалося прочитати файл core ELF: %s"
 
-#: libdwfl/argp-std.c:311
+#: libdwfl/argp-std.c:313
+#, fuzzy
+msgid "Not enough memory"
+msgstr "нестача пам'яті"
+
+#: libdwfl/argp-std.c:323
 msgid "No modules recognized in core file"
 msgstr "Не вдалося виявити модулі у файлі core"
 
@@ -479,57 +484,57 @@
 msgid "<unknown>: %#<PRIx64>"
 msgstr "<невідомо>: %#<PRIx64>"
 
-#: libebl/eblobjnote.c:52
+#: libebl/eblobjnote.c:53
 #, c-format
 msgid "unknown SDT version %u\n"
 msgstr "невідома версія SDT, %u\n"
 
-#: libebl/eblobjnote.c:70
+#: libebl/eblobjnote.c:71
 #, c-format
 msgid "invalid SDT probe descriptor\n"
 msgstr "некоректний дескриптор зондування SDT\n"
 
-#: libebl/eblobjnote.c:120
+#: libebl/eblobjnote.c:121
 #, c-format
 msgid "    PC: "
 msgstr "    PC: "
 
-#: libebl/eblobjnote.c:122
+#: libebl/eblobjnote.c:123
 #, c-format
 msgid " Base: "
 msgstr "Основа: "
 
-#: libebl/eblobjnote.c:124
+#: libebl/eblobjnote.c:125
 #, c-format
 msgid " Semaphore: "
 msgstr " Семафор:   "
 
-#: libebl/eblobjnote.c:126
+#: libebl/eblobjnote.c:127
 #, c-format
 msgid "    Provider: "
 msgstr " Постачальник: "
 
-#: libebl/eblobjnote.c:128
+#: libebl/eblobjnote.c:129
 #, c-format
 msgid " Name: "
 msgstr "Назва: "
 
-#: libebl/eblobjnote.c:130
+#: libebl/eblobjnote.c:131
 #, c-format
 msgid " Args: "
 msgstr " Арг.: "
 
-#: libebl/eblobjnote.c:140
+#: libebl/eblobjnote.c:141
 #, c-format
 msgid "    Build ID: "
 msgstr "    Ід. збирання: "
 
-#: libebl/eblobjnote.c:151
+#: libebl/eblobjnote.c:152
 #, c-format
 msgid "    Linker version: %.*s\n"
 msgstr "    Версія компонувальника: %.*s\n"
 
-#: libebl/eblobjnote.c:212
+#: libebl/eblobjnote.c:213
 #, c-format
 msgid "    OS: %s, ABI: "
 msgstr "    ОС: %s, ABI: "
@@ -563,7 +568,7 @@
 msgid "invalid size of destination operand"
 msgstr "некоректна розмірність вихідного параметра"
 
-#: libelf/elf_error.c:87 src/readelf.c:5365
+#: libelf/elf_error.c:87 src/readelf.c:5473
 #, c-format
 msgid "invalid encoding"
 msgstr "некоректне кодування"
@@ -644,8 +649,8 @@
 msgid "invalid section header"
 msgstr "некоректний заголовок розділу"
 
-#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682
-#: src/readelf.c:7783 src/readelf.c:7964
+#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790
+#: src/readelf.c:7891 src/readelf.c:8072
 #, c-format
 msgid "invalid data"
 msgstr "некоректні дані"
@@ -689,6 +694,40 @@
 msgid "file has no program header"
 msgstr "у файлі немає заголовка програми"
 
+#: libelf/elf_error.c:237
+#, fuzzy
+msgid "invalid section type"
+msgstr "некоректний розділ"
+
+#: libelf/elf_error.c:242
+#, fuzzy
+msgid "invalid section flags"
+msgstr "некоректний розділ"
+
+#: libelf/elf_error.c:247
+#, fuzzy
+msgid "section does not contain compressed data"
+msgstr "розділ хешу [%2zu] «%s» містить недостатньо даних\n"
+
+#: libelf/elf_error.c:252
+msgid "section contains compressed data"
+msgstr ""
+
+#: libelf/elf_error.c:257
+#, fuzzy
+msgid "unknown compression type"
+msgstr "невизначений тип"
+
+#: libelf/elf_error.c:262
+#, fuzzy
+msgid "cannot compress data"
+msgstr "не вдалося розпакувати DWARF"
+
+#: libelf/elf_error.c:267
+#, fuzzy
+msgid "cannot decompress data"
+msgstr "не вдалося розпакувати DWARF"
+
 #: src/addr2line.c:58
 msgid "Input format options:"
 msgstr "Параметри форматування вхідних даних:"
@@ -745,7 +784,7 @@
 msgid "Print all information on one line, and indent inlines"
 msgstr "Вивести усі дані у один рядок і додати відступи до перенесених рядків"
 
-#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99
+#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100
 #: src/strings.c:79
 msgid "Miscellaneous:"
 msgstr "Інше:"
@@ -759,9 +798,9 @@
 msgid "[ADDR...]"
 msgstr "[АДРЕСА...]"
 
-#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235
-#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177
-#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230
+#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235
+#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177
+#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230
 #: src/strip.c:218 src/unstrip.c:232
 #, c-format
 msgid ""
@@ -774,9 +813,9 @@
 "початкових кодах. Умовами ліцензування програми НЕ передбачено жодних "
 "гарантій, зокрема гарантій працездатності або придатності для певної мети.\n"
 
-#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240
-#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182
-#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235
+#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240
+#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182
+#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235
 #: src/strip.c:223 src/unstrip.c:237
 #, c-format
 msgid "Written by %s.\n"
@@ -1253,40 +1292,40 @@
 msgid "%s %s differ: gap"
 msgstr "%s %s diff: проміжок"
 
-#: src/elfcmp.c:702
+#: src/elfcmp.c:704
 #, c-format
 msgid "Invalid value '%s' for --gaps parameter."
 msgstr "Некоректне значення «%s» параметра --gaps."
 
-#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757
-#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289
-#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994
-#: src/unstrip.c:2023
+#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757
+#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289
+#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029
+#: src/unstrip.c:2058
 #, c-format
 msgid "cannot open '%s'"
 msgstr "не вдалося відкрити «%s»"
 
-#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174
+#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174
 #, c-format
 msgid "cannot create ELF descriptor for '%s': %s"
 msgstr "не вдалося створити дескриптор ELF для «%s»: %s"
 
-#: src/elfcmp.c:739
+#: src/elfcmp.c:741
 #, c-format
 msgid "cannot create EBL descriptor for '%s'"
 msgstr "не вдалося створити дескриптор EBL для «%s»"
 
-#: src/elfcmp.c:757 src/findtextrel.c:409
+#: src/elfcmp.c:759 src/findtextrel.c:409
 #, c-format
 msgid "cannot get section header of section %zu: %s"
 msgstr "не вдалося отримати заголовок розділу %zu: %s"
 
-#: src/elfcmp.c:767
+#: src/elfcmp.c:769
 #, c-format
 msgid "cannot get content of section %zu: %s"
 msgstr "не вдалося отримати вміст розділу %zu: %s"
 
-#: src/elfcmp.c:777 src/elfcmp.c:791
+#: src/elfcmp.c:779 src/elfcmp.c:793
 #, c-format
 msgid "cannot get relocation: %s"
 msgstr "не вдалося отримати пересування: %s"
@@ -1316,11 +1355,11 @@
 msgstr ""
 "Педантична перевірка файлів ELF на сумісність зі специфікаціями gABI/psABI."
 
-#: src/elflint.c:78 src/readelf.c:123
+#: src/elflint.c:78 src/readelf.c:126
 msgid "FILE..."
 msgstr "ФАЙЛ..."
 
-#: src/elflint.c:155 src/readelf.c:292
+#: src/elflint.c:155 src/readelf.c:298
 #, c-format
 msgid "cannot open input file"
 msgstr "не вдалося відкрити вхідний файл."
@@ -1339,7 +1378,7 @@
 msgid "No errors"
 msgstr "Без помилок"
 
-#: src/elflint.c:219 src/readelf.c:468
+#: src/elflint.c:219 src/readelf.c:474
 msgid "Missing file name.\n"
 msgstr "Не вказано назви файла.\n"
 
@@ -1487,14 +1526,14 @@
 "розділ [%2d] «%s»: групу розділів [%2zu] «%s» мало бути визначено до розділу-"
 "елемента цієї групи\n"
 
-#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628
-#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056
-#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336
+#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632
+#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061
+#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366
 #, c-format
 msgid "section [%2d] '%s': cannot get section data\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати дані розділу\n"
 
-#: src/elflint.c:604 src/elflint.c:1635
+#: src/elflint.c:604 src/elflint.c:1639
 #, c-format
 msgid ""
 "section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1606,13 +1645,13 @@
 "розділ [%2d] «%s»: символ %zu: використання функції у розділі COMMON "
 "позбавлене сенсу\n"
 
-#: src/elflint.c:805
+#: src/elflint.c:809
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n"
 msgstr ""
 "розділ [%2d] «%s»: символ %zu: значення st_value поза можливим діапазоном\n"
 
-#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885
+#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu does not fit completely in referenced section "
@@ -1621,7 +1660,7 @@
 "розділ [%2d] «%s»: символ %zu не повністю відповідає розділу, на який "
 "посилається, [%2d] «%s»\n"
 
-#: src/elflint.c:820
+#: src/elflint.c:824
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have "
@@ -1630,7 +1669,7 @@
 "розділ [%2d] «%s»: символ %zu: для розділу посилання [%2d] «%s» не "
 "встановлено прапорець SHF_TLS\n"
 
-#: src/elflint.c:830 src/elflint.c:878
+#: src/elflint.c:834 src/elflint.c:882
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section "
@@ -1639,14 +1678,14 @@
 "розділ [%2d] «%s»: символ %zu: значення st_value поза межами розділу "
 "посилання, [%2d] «%s»\n"
 
-#: src/elflint.c:857
+#: src/elflint.c:861
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n"
 msgstr ""
 "розділ [%2d] «%s»: символ %zu: символ TLS без запису заголовка програми TLS\n"
 
-#: src/elflint.c:863
+#: src/elflint.c:867
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program "
@@ -1655,7 +1694,7 @@
 "розділ [%2d] «%s»: символ %zu: маємо символ TLS, але не вдалося отримати "
 "запис заголовка програми TLS\n"
 
-#: src/elflint.c:871
+#: src/elflint.c:875
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] "
@@ -1664,7 +1703,7 @@
 "розділ [%2d] «%s»: символ %zu: значення st_value перед розділом посилання, "
 "[%2d] «%s»\n"
 
-#: src/elflint.c:898
+#: src/elflint.c:902
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: local symbol outside range described in "
@@ -1673,7 +1712,7 @@
 "розділ [%2d] «%s»: символ %zu: у sh_info описано локальний символ поза "
 "діапазоном\n"
 
-#: src/elflint.c:905
+#: src/elflint.c:909
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
@@ -1682,12 +1721,12 @@
 "розділ [%2d] «%s»: символ %zu: у sh_info описано нелокальний символ поза "
 "діапазоном\n"
 
-#: src/elflint.c:912
+#: src/elflint.c:916
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
 msgstr "розділ [%2d] «%s»: символ %zu: нелокальний символ розділу\n"
 
-#: src/elflint.c:962
+#: src/elflint.c:966
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -1696,7 +1735,7 @@
 "розділ [%2d] «%s»: символ _GLOBAL_OFFSET_TABLE_  посилається на помилковий "
 "розділ, [%2d]\n"
 
-#: src/elflint.c:969
+#: src/elflint.c:973
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -1705,7 +1744,7 @@
 "розділ [%2d] «%s»: символ _GLOBAL_OFFSET_TABLE_  посилається на розділ [%2d] "
 "'%s'\n"
 
-#: src/elflint.c:985
+#: src/elflint.c:989
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -1714,7 +1753,7 @@
 "розділ [%2d] «%s»: значення символу _GLOBAL_OFFSET_TABLE_ %#<PRIx64> не "
 "відповідає адресі розділу %s %#<PRIx64>\n"
 
-#: src/elflint.c:992
+#: src/elflint.c:996
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -1723,7 +1762,7 @@
 "розділ [%2d] «%s»: розмір символу _GLOBAL_OFFSET_TABLE_ %<PRIu64> не "
 "відповідає розміру розділу %s %<PRIu64>\n"
 
-#: src/elflint.c:1000
+#: src/elflint.c:1004
 #, c-format
 msgid ""
 "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -1732,7 +1771,7 @@
 "розділ [%2d] «%s»: виявлено символ _GLOBAL_OFFSET_TABLE_, але не виявлено "
 "розділу .got\n"
 
-#: src/elflint.c:1016
+#: src/elflint.c:1020
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -1741,7 +1780,7 @@
 "розділ [%2d] «%s»: значення символу _DYNAMIC_ %#<PRIx64> не відповідає "
 "адресі динамічного сегмента %#<PRIx64>\n"
 
-#: src/elflint.c:1023
+#: src/elflint.c:1027
 #, c-format
 msgid ""
 "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -1750,7 +1789,7 @@
 "розділ [%2d] «%s»: розмір символу _DYNAMIC %<PRIu64> не відповідає розміру "
 "динамічного сегмента %<PRIu64>\n"
 
-#: src/elflint.c:1036
+#: src/elflint.c:1040
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-"
@@ -1759,29 +1798,29 @@
 "розділ [%2d] «%s»: символ %zu: символ у динамічній таблиці символів з "
 "нетиповою видимістю\n"
 
-#: src/elflint.c:1040
+#: src/elflint.c:1044
 #, c-format
 msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n"
 msgstr "розділ [%2d] «%s»: символ %zu: невідомий набір бітів у st_other\n"
 
-#: src/elflint.c:1078
+#: src/elflint.c:1082
 #, c-format
 msgid "section [%2d] '%s': cannot get section data.\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати дані розділу.\n"
 
-#: src/elflint.c:1094
+#: src/elflint.c:1098
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
 msgstr "розділ [%2d] «%s»: для цього розділу RELA використано DT_RELCOUNT\n"
 
-#: src/elflint.c:1105 src/elflint.c:1158
+#: src/elflint.c:1109 src/elflint.c:1162
 #, c-format
 msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
 msgstr ""
 "розділ [%2d] «%s»: значення DT_RELCOUNT %d є занадто високим для цього "
 "розділу\n"
 
-#: src/elflint.c:1130 src/elflint.c:1183
+#: src/elflint.c:1134 src/elflint.c:1187
 #, c-format
 msgid ""
 "section [%2d] '%s': relative relocations after index %d as specified by "
@@ -1790,7 +1829,7 @@
 "розділ [%2d] «%s»: відносні пересування після позиції %d, вказаної за "
 "допомогою DT_RELCOUNT\n"
 
-#: src/elflint.c:1136 src/elflint.c:1189
+#: src/elflint.c:1140 src/elflint.c:1193
 #, c-format
 msgid ""
 "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -1799,52 +1838,52 @@
 "розділ [%2d] «%s»: безвідносне пересування на позиції %zu; DT_RELCOUNT "
 "визначено %d відносних пересування\n"
 
-#: src/elflint.c:1148
+#: src/elflint.c:1152
 #, c-format
 msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
 msgstr "розділ [%2d] «%s»: для цього розділу REL використано DT_RELACOUNT\n"
 
-#: src/elflint.c:1231
+#: src/elflint.c:1235
 #, c-format
 msgid "section [%2d] '%s': invalid destination section index\n"
 msgstr "розділ [%2d] «%s»: некоректний індекс розділу призначення\n"
 
-#: src/elflint.c:1243
+#: src/elflint.c:1247
 #, c-format
 msgid "section [%2d] '%s': invalid destination section type\n"
 msgstr "розділ [%2d] «%s»: некоректний тип розділу призначення\n"
 
-#: src/elflint.c:1251
+#: src/elflint.c:1255
 #, c-format
 msgid "section [%2d] '%s': sh_info should be zero\n"
 msgstr "розділ [%2d] «%s»: sh_info має бути нульовим\n"
 
-#: src/elflint.c:1259
+#: src/elflint.c:1263
 #, fuzzy, c-format
 msgid ""
 "section [%2d] '%s': no relocations for merge-able string sections possible\n"
 msgstr ""
 "розділ [%2d] «%s»: пересування у придатних до об’єднання розділах неможливе\n"
 
-#: src/elflint.c:1267
+#: src/elflint.c:1271
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
 msgstr ""
 "розділ [%2d] «%s»: розмірність запису розділу не відповідає ElfXX_Rela\n"
 
-#: src/elflint.c:1327
+#: src/elflint.c:1331
 #, c-format
 msgid "text relocation flag set but there is no read-only segment\n"
 msgstr ""
 "встановлено прапорець пересування тексту, але сегмент придатний лише до "
 "читання\n"
 
-#: src/elflint.c:1354
+#: src/elflint.c:1358
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid type\n"
 msgstr "розділ [%2d] «%s»: пересування %zu: некоректний тип\n"
 
-#: src/elflint.c:1362
+#: src/elflint.c:1366
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -1853,12 +1892,12 @@
 "розділ [%2d] «%s»: пересування %zu: некоректний тип пересування для типу "
 "файла\n"
 
-#: src/elflint.c:1370
+#: src/elflint.c:1374
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
 msgstr "розділ [%2d] «%s»: пересування %zu: некоректний індекс символу\n"
 
-#: src/elflint.c:1388
+#: src/elflint.c:1392
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -1867,12 +1906,12 @@
 "розділ [%2d] «%s»: пересування %zu: з %s можна використовувати лише символ "
 "«_GLOBAL_OFFSET_TABLE_»\n"
 
-#: src/elflint.c:1405
+#: src/elflint.c:1409
 #, c-format
 msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
 msgstr "розділ [%2d] «%s»: пересування %zu: зміщення за межі діапазону\n"
 
-#: src/elflint.c:1420
+#: src/elflint.c:1424
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -1881,7 +1920,7 @@
 "розділ [%2d] «%s»: пересування %zu: пересування копіювання для символу типу "
 "%s\n"
 
-#: src/elflint.c:1441
+#: src/elflint.c:1445
 #, c-format
 msgid ""
 "section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -1890,22 +1929,22 @@
 "розділ [%2d] «%s»: пересування %zu: змінено придатний лише для читання "
 "розділ, але не встановлено прапорець пересування тексту\n"
 
-#: src/elflint.c:1456
+#: src/elflint.c:1460
 #, c-format
 msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
 msgstr "розділ [%2d] «%s»: пересування завантажених і незавантажених даних\n"
 
-#: src/elflint.c:1496 src/elflint.c:1547
+#: src/elflint.c:1500 src/elflint.c:1551
 #, c-format
 msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати зміщення %zu: %s\n"
 
-#: src/elflint.c:1623
+#: src/elflint.c:1627
 #, c-format
 msgid "more than one dynamic section present\n"
 msgstr "вказано більше одного динамічного розділу\n"
 
-#: src/elflint.c:1641
+#: src/elflint.c:1645
 #, c-format
 msgid ""
 "section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -1914,46 +1953,46 @@
 "розділ [%2d]: надано посилання на таблицю рядків розділу [%2d] «%s», але "
 "значення посилання на розділ є некоректним\n"
 
-#: src/elflint.c:1649
+#: src/elflint.c:1653
 #, c-format
 msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
 msgstr ""
 "розділ [%2d] «%s»: розмірність запису розділу не відповідає ElfXX_Dyn\n"
 
-#: src/elflint.c:1654 src/elflint.c:1943
+#: src/elflint.c:1658 src/elflint.c:1947
 #, c-format
 msgid "section [%2d] '%s': sh_info not zero\n"
 msgstr "розділ [%2d] «%s»: sh_info не є нульовим\n"
 
-#: src/elflint.c:1664
+#: src/elflint.c:1668
 #, c-format
 msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
 msgstr ""
 "розділ [%2d] «%s»: не вдалося отримати запис динамічного розділу %zu: %s\n"
 
-#: src/elflint.c:1672
+#: src/elflint.c:1676
 #, c-format
 msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
 msgstr ""
 "розділ [%2d] «%s»: за записом DT_NULL вказано записи, що не належать до "
 "DT_NULL\n"
 
-#: src/elflint.c:1679
+#: src/elflint.c:1683
 #, c-format
 msgid "section [%2d] '%s': entry %zu: unknown tag\n"
 msgstr "розділ [%2d] «%s»: запис %zu: невідома мітка\n"
 
-#: src/elflint.c:1690
+#: src/elflint.c:1694
 #, c-format
 msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
 msgstr "розділ [%2d] «%s»: запис %zu: декілька записів з міткою %s\n"
 
-#: src/elflint.c:1700
+#: src/elflint.c:1704
 #, c-format
 msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
 msgstr "розділ [%2d] «%s»: запис %zu: використано мітку рівня 2 %s\n"
 
-#: src/elflint.c:1718
+#: src/elflint.c:1722
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -1961,7 +2000,7 @@
 "розділ [%2d] «%s»: запис %zu: значенням DT_PLTREL має бути DT_REL або "
 "DT_RELA\n"
 
-#: src/elflint.c:1731
+#: src/elflint.c:1735
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -1970,7 +2009,7 @@
 "розділ [%2d] «%s»: розділ %zu: вказівник не відповідає адресі розділу [%2d] "
 "«%s», на яку посилається sh_link\n"
 
-#: src/elflint.c:1774
+#: src/elflint.c:1778
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
@@ -1978,7 +2017,7 @@
 "розділ [%2d] «%s»: запис %zu: значення %s має вказувати на завантажений "
 "сегмент\n"
 
-#: src/elflint.c:1789
+#: src/elflint.c:1793
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -1987,48 +2026,48 @@
 "розділ [%2d] «%s»: запис %zu: значенням %s має бути коректне зміщення у "
 "розділі [%2d] «%s»\n"
 
-#: src/elflint.c:1809 src/elflint.c:1837
+#: src/elflint.c:1813 src/elflint.c:1841
 #, c-format
 msgid "section [%2d] '%s': contains %s entry but not %s\n"
 msgstr "розділ [%2d] «%s»: містить запис %s, але не %s\n"
 
-#: src/elflint.c:1821
+#: src/elflint.c:1825
 #, c-format
 msgid "section [%2d] '%s': mandatory tag %s not present\n"
 msgstr "розділ [%2d] «%s»: немає обов’язкової мітки %s\n"
 
-#: src/elflint.c:1830
+#: src/elflint.c:1834
 #, c-format
 msgid "section [%2d] '%s': no hash section present\n"
 msgstr "розділ [%2d] «%s»: не виявлено розділу хешів\n"
 
-#: src/elflint.c:1845 src/elflint.c:1852
+#: src/elflint.c:1849 src/elflint.c:1856
 #, c-format
 msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
 msgstr "розділ [%2d] «%s»: вказано не всі зі значень %s, %s і %s\n"
 
-#: src/elflint.c:1862 src/elflint.c:1866
+#: src/elflint.c:1866 src/elflint.c:1870
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
 msgstr ""
 "розділ [%2d] «%s»: у DSO, позначеному на кроці попереднього компонування, "
 "немає мітки %s\n"
 
-#: src/elflint.c:1872
+#: src/elflint.c:1876
 #, c-format
 msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
 msgstr ""
 "розділ [%2d] «%s»: під час попереднього компонування як залежність позначено "
 "файл, який не є файлом DSO\n"
 
-#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895
+#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899
 #, c-format
 msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
 msgstr ""
 "розділ [%2d] «%s»: у попередньо скомпонованому виконуваному файлі не "
 "міститься мітки %s\n"
 
-#: src/elflint.c:1907
+#: src/elflint.c:1911
 #, c-format
 msgid ""
 "section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2036,7 +2075,7 @@
 "розділ [%2d] «%s»: розширений розділ покажчика можуть мати лише файли, "
 "придатні до пересування\n"
 
-#: src/elflint.c:1917
+#: src/elflint.c:1921
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index section not for symbol table\n"
@@ -2044,29 +2083,29 @@
 "розділ [%2d] «%s»: розділ розширеного покажчика розділів не призначено для "
 "таблиць символів\n"
 
-#: src/elflint.c:1921
+#: src/elflint.c:1925
 #, c-format
 msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
 msgstr ""
 "розділ [%2d] «%s»: індекс розширеного розділу sh_link [%2d] є некоректним\n"
 
-#: src/elflint.c:1926
+#: src/elflint.c:1930
 #, c-format
 msgid "cannot get data for symbol section\n"
 msgstr "не вдалося отримати дані для розділу символів\n"
 
-#: src/elflint.c:1929
+#: src/elflint.c:1933
 #, c-format
 msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
 msgstr "розділ [%2d] «%s»: розмірність запису не відповідає Elf32_Word\n"
 
-#: src/elflint.c:1938
+#: src/elflint.c:1942
 #, c-format
 msgid "section [%2d] '%s': extended index table too small for symbol table\n"
 msgstr ""
 "розділ [%2d] «%s»: розширена таблиця покажчика замала для таблиці символів\n"
 
-#: src/elflint.c:1953
+#: src/elflint.c:1957
 #, c-format
 msgid ""
 "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2075,24 +2114,24 @@
 "розділ [%2d] «%s»: розширений покажчик розділів у розділі [%2zu] «%s» "
 "посилається на ту саму таблицю розділів\n"
 
-#: src/elflint.c:1970
+#: src/elflint.c:1974
 #, c-format
 msgid "symbol 0 should have zero extended section index\n"
 msgstr "символу 0 має відповідати нульовий індекс розширеного розділу\n"
 
-#: src/elflint.c:1982
+#: src/elflint.c:1986
 #, c-format
 msgid "cannot get data for symbol %zu\n"
 msgstr "не вдалося отримати дані для символу %zu\n"
 
-#: src/elflint.c:1987
+#: src/elflint.c:1991
 #, c-format
 msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
 msgstr ""
 "індекс розширеного розділу дорівнює %<PRIu32>, але індекс символу не є "
 "XINDEX\n"
 
-#: src/elflint.c:2003 src/elflint.c:2054
+#: src/elflint.c:2007 src/elflint.c:2058
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2100,43 +2139,43 @@
 "розділ [%2d] «%s»: розділ таблиці хешів занадто малий (розмір %ld, мало бути "
 "— %ld)\n"
 
-#: src/elflint.c:2015 src/elflint.c:2066
+#: src/elflint.c:2019 src/elflint.c:2070
 #, c-format
 msgid "section [%2d] '%s': chain array too large\n"
 msgstr "розділ [%2d] «%s»: масив ланцюжка занадто великий\n"
 
-#: src/elflint.c:2029 src/elflint.c:2080
+#: src/elflint.c:2033 src/elflint.c:2084
 #, c-format
 msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
 msgstr ""
 "розділ [%2d] «%s»: посилання на хеш блоку %zu лежить поза межами діапазону\n"
 
-#: src/elflint.c:2039
+#: src/elflint.c:2043
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
 msgstr ""
 "розділ [%2d] «%s»: посилання ланцюжка хешів %zu лежить поза межами "
 "діапазону\n"
 
-#: src/elflint.c:2090
+#: src/elflint.c:2094
 #, c-format
 msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
 msgstr ""
 "розділ [%2d] «%s»: посилання ланцюжка хешів %<PRIu64> лежить поза межами "
 "діапазону\n"
 
-#: src/elflint.c:2103
+#: src/elflint.c:2107
 #, c-format
 msgid "section [%2d] '%s': not enough data\n"
 msgstr "розділ [%2d] «%s»: недостатньо даних\n"
 
-#: src/elflint.c:2115
+#: src/elflint.c:2119
 #, c-format
 msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
 msgstr ""
 "розділ [%2d] «%s»: розмір бітової маски є нульовим або не є степенем 2: %u\n"
 
-#: src/elflint.c:2131
+#: src/elflint.c:2135
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2145,12 +2184,12 @@
 "розділ [%2d] «%s»: розділ таблиці хешів є надто малим (маємо %ld, мало бути "
 "принаймні %ld)\n"
 
-#: src/elflint.c:2140
+#: src/elflint.c:2144
 #, c-format
 msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
 msgstr "розділ [%2d] «%s»: зсув 2-ої функції хешування занадто великий: %u\n"
 
-#: src/elflint.c:2174
+#: src/elflint.c:2178
 #, c-format
 msgid ""
 "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2158,7 +2197,7 @@
 "розділ [%2d] '%s': ланцюжок хешів для блоку %zu розташовано нижче за позицію "
 "відхилення індексу символу\n"
 
-#: src/elflint.c:2195
+#: src/elflint.c:2199
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2167,7 +2206,7 @@
 "розділ [%2d] «%s»: символ %u, на який посилається ланцюжок у блоці %zu не "
 "визначено\n"
 
-#: src/elflint.c:2208
+#: src/elflint.c:2212
 #, c-format
 msgid ""
 "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2175,7 +2214,7 @@
 "розділ [%2d] «%s»: значення хешу для символу %u у ланцюжку для блоку %zu є "
 "помилковим\n"
 
-#: src/elflint.c:2217
+#: src/elflint.c:2221
 #, c-format
 msgid ""
 "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2183,14 +2222,14 @@
 "розділ [%2d] «%s»: індекс маски для символу %u у ланцюжку для блоку %zu є "
 "помилковим\n"
 
-#: src/elflint.c:2247
+#: src/elflint.c:2251
 #, c-format
 msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
 msgstr ""
 "розділ [%2d] «%s»: ланцюжок хешів для блоку %zu лежить поза межами "
 "діапазону\n"
 
-#: src/elflint.c:2252
+#: src/elflint.c:2256
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2198,43 +2237,43 @@
 "розділ [%2d] «%s»: посилання на символ у ланцюжку для блоку %zu лежить поза "
 "межами діапазону\n"
 
-#: src/elflint.c:2258
+#: src/elflint.c:2262
 #, c-format
 msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
 msgstr "розділ [%2d] «%s»: бітова маска не відповідає назвам у таблиці хешів\n"
 
-#: src/elflint.c:2271
+#: src/elflint.c:2275
 #, c-format
 msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
 msgstr ""
 "розділ [%2d] «%s»: придатні до пересування файли не можуть містити таблиць "
 "хешів\n"
 
-#: src/elflint.c:2289
+#: src/elflint.c:2293
 #, c-format
 msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
 msgstr ""
 "розділ [%2d] «%s»: таблицю хешів не призначено для зберігання таблиці "
 "динамічних символів\n"
 
-#: src/elflint.c:2293
+#: src/elflint.c:2297
 #, c-format
 msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
 msgstr ""
 "розділ [%2d] «%s»: некоректний індекс розділу таблиці символів sh_link "
 "[%2d]\n"
 
-#: src/elflint.c:2301
+#: src/elflint.c:2305
 #, c-format
 msgid "section [%2d] '%s': hash table entry size incorrect\n"
 msgstr "розділ [%2d] «%s»: розмірність запису таблиці хешів є некоректною\n"
 
-#: src/elflint.c:2306
+#: src/elflint.c:2310
 #, c-format
 msgid "section [%2d] '%s': not marked to be allocated\n"
 msgstr "розділ [%2d] «%s»: не позначено для пересування\n"
 
-#: src/elflint.c:2311
+#: src/elflint.c:2315
 #, c-format
 msgid ""
 "section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2243,27 +2282,27 @@
 "розділ [%2d] «%s»: у таблиці хешів виявлено незвичайне розташування "
 "початкових адміністративних записів\n"
 
-#: src/elflint.c:2360
+#: src/elflint.c:2364
 #, c-format
 msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
 msgstr "sh_link у розділах хешів [%2zu] «%s» і [%2zu] «%s» не збігаються\n"
 
-#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484
+#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488
 #, c-format
 msgid "hash section [%2zu] '%s' does not contain enough data\n"
 msgstr "розділ хешу [%2zu] «%s» містить недостатньо даних\n"
 
-#: src/elflint.c:2405
+#: src/elflint.c:2409
 #, c-format
 msgid "hash section [%2zu] '%s' has zero bit mask words\n"
 msgstr "розділ хешу [%2zu] «%s» містить нульові слова бітової маски\n"
 
-#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497
+#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501
 #, c-format
 msgid "hash section [%2zu] '%s' uses too much data\n"
 msgstr "розділ хешу [%2zu] «%s» використовує надто багато даних\n"
 
-#: src/elflint.c:2431
+#: src/elflint.c:2435
 #, c-format
 msgid ""
 "hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
@@ -2272,17 +2311,17 @@
 "розділ хешу [%2zu] «%s» некоректний індекс символу %<PRIu32> (макс. к-ть "
 "символів: %<PRIu32>, кількість записів: %<PRIu32>\n"
 
-#: src/elflint.c:2518
+#: src/elflint.c:2522
 #, c-format
 msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
 msgstr "розділ хешу [%2zu] «%s» некоректне значення sh_entsize\n"
 
-#: src/elflint.c:2528 src/elflint.c:2532
+#: src/elflint.c:2532 src/elflint.c:2536
 #, c-format
 msgid "section [%2zu] '%s': reference to symbol index 0\n"
 msgstr "розділ [%2zu] «%s»: посилання на індекс символів 0\n"
 
-#: src/elflint.c:2539
+#: src/elflint.c:2543
 #, c-format
 msgid ""
 "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2291,7 +2330,7 @@
 "виявлено посилання на символ %d у новій таблиці хешів у [%2zu] «%s», але "
 "його немає у старій таблиці хешів у [%2zu] «%s»\n"
 
-#: src/elflint.c:2551
+#: src/elflint.c:2555
 #, c-format
 msgid ""
 "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2300,12 +2339,12 @@
 "виявлено посилання на символ %d у старій таблиці хешів у [%2zu] «%s», але "
 "його немає у новій таблиці хешів у [%2zu] «%s»\n"
 
-#: src/elflint.c:2567
+#: src/elflint.c:2571
 #, c-format
 msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
 msgstr "розділ [%2d] «%s»: ненульове значення sh_%s для розділу NULL\n"
 
-#: src/elflint.c:2587
+#: src/elflint.c:2591
 #, c-format
 msgid ""
 "section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2313,95 +2352,95 @@
 "розділ [%2d] «%s»: групи розділів передбачено лише для придатних до "
 "пересування об’єктних файлах\n"
 
-#: src/elflint.c:2598
+#: src/elflint.c:2602
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol table: %s\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати таблицю символів: %s\n"
 
-#: src/elflint.c:2603
+#: src/elflint.c:2607
 #, c-format
 msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
 msgstr ""
 "розділ [%2d] «%s»: посилання на розділ у sh_link не має таблиці символів\n"
 
-#: src/elflint.c:2609
+#: src/elflint.c:2613
 #, c-format
 msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
 msgstr "розділ [%2d] «%s»: некоректний індекс символу у sh_info\n"
 
-#: src/elflint.c:2614
+#: src/elflint.c:2618
 #, c-format
 msgid "section [%2d] '%s': sh_flags not zero\n"
 msgstr "розділ [%2d] «%s»: sh_flags не є нульовим\n"
 
-#: src/elflint.c:2621
+#: src/elflint.c:2625
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol for signature\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати символ для підпису\n"
 
-#: src/elflint.c:2625
+#: src/elflint.c:2629
 #, c-format
 msgid "section [%2d] '%s': cannot get symbol name for signature\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати назву символу для підпису\n"
 
-#: src/elflint.c:2630
+#: src/elflint.c:2634
 #, c-format
 msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
 msgstr "розділ [%2d] «%s»: символ підпису не може бути порожнім рядком\n"
 
-#: src/elflint.c:2636
+#: src/elflint.c:2640
 #, c-format
 msgid "section [%2d] '%s': sh_flags not set correctly\n"
 msgstr "розділ [%2d] «%s»: для sh_flags встановлено помилкове значення\n"
 
-#: src/elflint.c:2642
+#: src/elflint.c:2646
 #, c-format
 msgid "section [%2d] '%s': cannot get data: %s\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати дані: %s\n"
 
-#: src/elflint.c:2651
+#: src/elflint.c:2655
 #, c-format
 msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
 msgstr "розділ [%2d] «%s»: розмір розділу не є кратним до sizeof(Elf32_Word)\n"
 
-#: src/elflint.c:2656
+#: src/elflint.c:2660
 #, c-format
 msgid "section [%2d] '%s': section group without flags word\n"
 msgstr "розділ [%2d] «%s»: група розділів без значення типу word прапорців\n"
 
-#: src/elflint.c:2662
+#: src/elflint.c:2666
 #, c-format
 msgid "section [%2d] '%s': section group without member\n"
 msgstr "розділ [%2d] «%s»: група розділів без елементів\n"
 
-#: src/elflint.c:2666
+#: src/elflint.c:2670
 #, c-format
 msgid "section [%2d] '%s': section group with only one member\n"
 msgstr "розділ [%2d] «%s»: група розділів, що містить лише один елемент\n"
 
-#: src/elflint.c:2677
+#: src/elflint.c:2681
 #, c-format
 msgid "section [%2d] '%s': unknown section group flags\n"
 msgstr "розділ [%2d] «%s»: невідомі прапорці групи розділів\n"
 
-#: src/elflint.c:2689
+#: src/elflint.c:2693
 #, c-format
 msgid "section [%2d] '%s': section index %zu out of range\n"
 msgstr "розділ [%2d] «%s»: індекс розділу %zu поза межами діапазону\n"
 
-#: src/elflint.c:2698
+#: src/elflint.c:2702
 #, c-format
 msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
 msgstr ""
 "розділ [%2d] «%s»: не вдалося отримати заголовок розділу для елемента %zu: "
 "%s\n"
 
-#: src/elflint.c:2705
+#: src/elflint.c:2709
 #, c-format
 msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
 msgstr "розділ [%2d] «%s»: група розділів містить іншу групу [%2d] «%s»\n"
 
-#: src/elflint.c:2711
+#: src/elflint.c:2715
 #, c-format
 msgid ""
 "section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2410,12 +2449,12 @@
 "розділ [%2d] «%s»: елемент %zu посилається на розділ [%2d] «%s» без "
 "встановленого прапорця SHF_GROUP\n"
 
-#: src/elflint.c:2718
+#: src/elflint.c:2722
 #, c-format
 msgid "section [%2d] '%s' is contained in more than one section group\n"
 msgstr "розділ [%2d] «%s» міститься у більше ніж одній групі розділів\n"
 
-#: src/elflint.c:2907
+#: src/elflint.c:2912
 #, c-format
 msgid ""
 "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2424,7 +2463,7 @@
 "розділ [%2d] «%s» посилається у sh_link на розділ [%2d] «%s», який не має "
 "динамічної таблиці символів\n"
 
-#: src/elflint.c:2919
+#: src/elflint.c:2924
 #, c-format
 msgid ""
 "section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2433,28 +2472,28 @@
 "кількість записів у розділі [%2d] «%s» відрізняється від кількості у таблиці "
 "символів [%2d] «%s»\n"
 
-#: src/elflint.c:2935
+#: src/elflint.c:2940
 #, c-format
 msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
 msgstr "розділ [%2d] «%s»: символ %d: не вдалося прочитати дані щодо версії\n"
 
-#: src/elflint.c:2951
+#: src/elflint.c:2956
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
 msgstr ""
 "розділ [%2d] «%s»: символ %d: локальний символ у загальному контексті\n"
 
-#: src/elflint.c:2959
+#: src/elflint.c:2964
 #, c-format
 msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
 msgstr "розділ [%2d] «%s»: символ %d: локальний символ з версією\n"
 
-#: src/elflint.c:2973
+#: src/elflint.c:2978
 #, c-format
 msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
 msgstr "розділ [%2d] «%s»: символ %d: некоректний індекс версії %d\n"
 
-#: src/elflint.c:2978
+#: src/elflint.c:2983
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for defined version\n"
@@ -2462,7 +2501,7 @@
 "розділ [%2d] «%s»: символ %d: індекси версії %d призначено до визначеної "
 "версії\n"
 
-#: src/elflint.c:2988
+#: src/elflint.c:2993
 #, c-format
 msgid ""
 "section [%2d] '%s': symbol %d: version index %d is for requested version\n"
@@ -2470,45 +2509,45 @@
 "розділ [%2d] «%s»: символ %d: індекс версії %d призначено для версії, на яку "
 "надійшов запит\n"
 
-#: src/elflint.c:3041
+#: src/elflint.c:3046
 #, c-format
 msgid "more than one version reference section present\n"
 msgstr "виявлено більше за один розділ посилань на версії\n"
 
-#: src/elflint.c:3049 src/elflint.c:3196
+#: src/elflint.c:3054 src/elflint.c:3201
 #, c-format
 msgid "section [%2d] '%s': sh_link does not link to string table\n"
 msgstr "розділ [%2d] «%s»: sh_link не посилається на таблицю рядків\n"
 
-#: src/elflint.c:3074 src/elflint.c:3250
+#: src/elflint.c:3079 src/elflint.c:3255
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong version %d\n"
 msgstr "розділ [%2d] «%s»: запис %d має помилкову версію %d\n"
 
-#: src/elflint.c:3081 src/elflint.c:3257
+#: src/elflint.c:3086 src/elflint.c:3262
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
 msgstr ""
 "розділ [%2d] «%s»: запис %d містить помилкове зміщення у допоміжних даних\n"
 
-#: src/elflint.c:3091
+#: src/elflint.c:3096
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid file reference\n"
 msgstr "розділ [%2d] «%s»: запис %d містить некоректне посилання на файл\n"
 
-#: src/elflint.c:3099
+#: src/elflint.c:3104
 #, c-format
 msgid "section [%2d] '%s': entry %d references unknown dependency\n"
 msgstr "розділ [%2d] «%s»: запис %d посилається на невідому залежність\n"
 
-#: src/elflint.c:3111
+#: src/elflint.c:3116
 #, c-format
 msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
 msgstr ""
 "розділ [%2d] «%s»: допоміжний запис %d запису %d позначено невідомим "
 "прапорцем\n"
 
-#: src/elflint.c:3119
+#: src/elflint.c:3124
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2517,7 +2556,7 @@
 "розділ [%2d] «%s»: допоміжний запис %d запису %d містить некоректне "
 "посилання на назву\n"
 
-#: src/elflint.c:3128
+#: src/elflint.c:3133
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -2526,7 +2565,7 @@
 "розділ [%2d] «%s»: допоміжний запис %d запису %d має помилкове значення "
 "хешу: %#x, мало бути %#x\n"
 
-#: src/elflint.c:3137
+#: src/elflint.c:3142
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -2535,7 +2574,7 @@
 "розділ [%2d] «%s»: допоміжний запис %d запису %d містить дублікати назви "
 "версії «%s»\n"
 
-#: src/elflint.c:3148
+#: src/elflint.c:3153
 #, c-format
 msgid ""
 "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
@@ -2543,13 +2582,13 @@
 "розділ [%2d] «%s»: допоміжний запис %d запису %d має помилкове наступне "
 "поле\n"
 
-#: src/elflint.c:3165 src/elflint.c:3341
+#: src/elflint.c:3170 src/elflint.c:3346
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
 msgstr ""
 "розділ [%2d] «%s»: запис %d має некоректне зміщення щодо наступного запису\n"
 
-#: src/elflint.c:3173 src/elflint.c:3349
+#: src/elflint.c:3178 src/elflint.c:3354
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -2558,44 +2597,44 @@
 "розділ [%2d] «%s»: запис %d має нульове зміщення щодо наступного запису, але "
 "за sh_info можна зрозуміти, що записів більше\n"
 
-#: src/elflint.c:3188
+#: src/elflint.c:3193
 #, c-format
 msgid "more than one version definition section present\n"
 msgstr "виявлено більше за один розділ визначення версій\n"
 
-#: src/elflint.c:3235
+#: src/elflint.c:3240
 #, c-format
 msgid "section [%2d] '%s': more than one BASE definition\n"
 msgstr "розділ [%2d] «%s»: повторне визначення BASE\n"
 
-#: src/elflint.c:3239
+#: src/elflint.c:3244
 #, c-format
 msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
 msgstr ""
 "розділ [%2d] «%s»: визначення BASE повинно мати індекс VER_NDX_GLOBAL\n"
 
-#: src/elflint.c:3245
+#: src/elflint.c:3250
 #, c-format
 msgid "section [%2d] '%s': entry %d has unknown flag\n"
 msgstr "розділ [%2d] «%s»: невідомий прапорець запису %d\n"
 
-#: src/elflint.c:3272
+#: src/elflint.c:3277
 #, c-format
 msgid "section [%2d] '%s': entry %d has invalid name reference\n"
 msgstr "розділ [%2d] «%s»: запис %d містить некоректне посилання на назву\n"
 
-#: src/elflint.c:3279
+#: src/elflint.c:3284
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
 msgstr ""
 "розділ [%2d] «%s»: запис %d має помилкове значення хешу: %#x, мало бути %#x\n"
 
-#: src/elflint.c:3287
+#: src/elflint.c:3292
 #, c-format
 msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
 msgstr "розділ [%2d] «%s»: запис %d містить дублікати назви версії «%s»\n"
 
-#: src/elflint.c:3307
+#: src/elflint.c:3312
 #, c-format
 msgid ""
 "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -2603,53 +2642,53 @@
 "розділ [%2d] «%s»: запис %d містить некоректне посилання на назву у "
 "допоміжних даних\n"
 
-#: src/elflint.c:3324
+#: src/elflint.c:3329
 #, c-format
 msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
 msgstr ""
 "розділ [%2d] «%s»: у допоміжних даних запису %d міститься помилкове поле "
 "наступного запису\n"
 
-#: src/elflint.c:3357
+#: src/elflint.c:3362
 #, c-format
 msgid "section [%2d] '%s': no BASE definition\n"
 msgstr "розділ [%2d] «%s»: немає визначення BASE\n"
 
-#: src/elflint.c:3373
+#: src/elflint.c:3378
 #, c-format
 msgid "section [%2d] '%s': unknown parent version '%s'\n"
 msgstr "розділ [%2d] «%s»: невідома основна версія «%s»\n"
 
-#: src/elflint.c:3386
+#: src/elflint.c:3391
 #, c-format
 msgid "section [%2d] '%s': empty object attributes section\n"
 msgstr "розділ [%2d] «%s»: порожній розділ атрибутів об’єкта\n"
 
-#: src/elflint.c:3407
+#: src/elflint.c:3412
 #, c-format
 msgid "section [%2d] '%s': unrecognized attribute format\n"
 msgstr "розділ [%2d] «%s»: не вдалося визначити формат атрибутів\n"
 
-#: src/elflint.c:3423
+#: src/elflint.c:3428
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute section\n"
 msgstr ""
 "розділ [%2d] «%s»: зміщення %zu: поле нульового розміру у розділі атрибутів\n"
 
-#: src/elflint.c:3432
+#: src/elflint.c:3437
 #, c-format
 msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
 msgstr ""
 "розділ [%2d] «%s»: зміщення %zu: некоректна довжина у розділі атрибутів\n"
 
-#: src/elflint.c:3444
+#: src/elflint.c:3449
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
 msgstr ""
 "розділ [%2d] «%s»: зміщення %zu: незавершений рядок назви постачальника\n"
 
-#: src/elflint.c:3461
+#: src/elflint.c:3466
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -2657,12 +2696,12 @@
 "розділ [%2d] «%s»: зміщення %zu: незавершене поле ULEB128 у тезі підрозділу "
 "атрибутів\n"
 
-#: src/elflint.c:3470
+#: src/elflint.c:3475
 #, c-format
 msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
 msgstr "розділ [%2d] «%s»: зміщення %zu: обрізаний розділ атрибутів\n"
 
-#: src/elflint.c:3479
+#: src/elflint.c:3484
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
@@ -2670,14 +2709,14 @@
 "розділ [%2d] «%s»: зміщення %zu: поле нульового розміру у підрозділі "
 "атрибутів\n"
 
-#: src/elflint.c:3494
+#: src/elflint.c:3499
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
 msgstr ""
 "розділ [%2d] «%s»: зміщення %zu: некоректна довжина у підрозділі атрибутів\n"
 
-#: src/elflint.c:3505
+#: src/elflint.c:3510
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -2685,35 +2724,35 @@
 "розділ [%2d] «%s»: зміщення %zu: підрозділ атрибутів містить неочікуваний "
 "теґ %u\n"
 
-#: src/elflint.c:3523
+#: src/elflint.c:3528
 #, c-format
 msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
 msgstr ""
 "розділ [%2d] «%s»: зміщення %zu: незавершене поле ULEB128 у тезі атрибуту\n"
 
-#: src/elflint.c:3534
+#: src/elflint.c:3539
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
 msgstr "розділ [%2d] «%s»: зміщення %zu: незавершений рядок у атрибуті\n"
 
-#: src/elflint.c:3547
+#: src/elflint.c:3552
 #, c-format
 msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
 msgstr "розділ [%2d] «%s»: зміщення %zu: незавершений теґ атрибуту %u\n"
 
-#: src/elflint.c:3551
+#: src/elflint.c:3556
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
 msgstr ""
 "розділ [%2d] «%s»: зміщення %zu: невідоме значення %s атрибуту %<PRIu64>\n"
 
-#: src/elflint.c:3561
+#: src/elflint.c:3566
 #, c-format
 msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
 msgstr "розділ [%2d] «%s»: зміщення %zu: невідомий постачальник «%s»\n"
 
-#: src/elflint.c:3567
+#: src/elflint.c:3572
 #, c-format
 msgid ""
 "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -2721,47 +2760,47 @@
 "розділ [%2d] «%s»: зміщення %zu: зайві байти після останнього розділу "
 "атрибутів\n"
 
-#: src/elflint.c:3656
+#: src/elflint.c:3661
 #, c-format
 msgid "cannot get section header of zeroth section\n"
 msgstr "не вдалося отримати заголовок нульового розділу\n"
 
-#: src/elflint.c:3660
+#: src/elflint.c:3665
 #, c-format
 msgid "zeroth section has nonzero name\n"
 msgstr "нульовий розділ має ненульову назву\n"
 
-#: src/elflint.c:3662
+#: src/elflint.c:3667
 #, c-format
 msgid "zeroth section has nonzero type\n"
 msgstr "нульовий розділ має ненульовий тип\n"
 
-#: src/elflint.c:3664
+#: src/elflint.c:3669
 #, c-format
 msgid "zeroth section has nonzero flags\n"
 msgstr "нульовий розділ має ненульові прапорці\n"
 
-#: src/elflint.c:3666
+#: src/elflint.c:3671
 #, c-format
 msgid "zeroth section has nonzero address\n"
 msgstr "нульовий розділ має ненульову адресу\n"
 
-#: src/elflint.c:3668
+#: src/elflint.c:3673
 #, c-format
 msgid "zeroth section has nonzero offset\n"
 msgstr "нульовий розділ має ненульове зміщення\n"
 
-#: src/elflint.c:3670
+#: src/elflint.c:3675
 #, c-format
 msgid "zeroth section has nonzero align value\n"
 msgstr "нульовий розділ має ненульове значення вирівнювання\n"
 
-#: src/elflint.c:3672
+#: src/elflint.c:3677
 #, c-format
 msgid "zeroth section has nonzero entry size value\n"
 msgstr "нульовий розділ має ненульове значення розміру запису\n"
 
-#: src/elflint.c:3675
+#: src/elflint.c:3680
 #, c-format
 msgid ""
 "zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -2770,7 +2809,7 @@
 "нульовий розділ має ненульове значення розміру, хоча заголовок ELF ман "
 "ненульове значення shnum\n"
 
-#: src/elflint.c:3679
+#: src/elflint.c:3684
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
@@ -2779,7 +2818,7 @@
 "нульовий розділ має ненульове значення компонування, хоча у заголовку ELF "
 "немає сигналу переповнення у shstrndx\n"
 
-#: src/elflint.c:3683
+#: src/elflint.c:3688
 #, c-format
 msgid ""
 "zeroth section has nonzero link value while ELF header does not signal "
@@ -2788,28 +2827,28 @@
 "нульовий розділ має ненульове значення компонування, хоча у заголовку ELF "
 "немає сигналу переповнення у phnum\n"
 
-#: src/elflint.c:3700
+#: src/elflint.c:3706
 #, c-format
 msgid "cannot get section header for section [%2zu] '%s': %s\n"
 msgstr "не вдалося отримати заголовок розділу [%2zu] «%s»: %s\n"
 
-#: src/elflint.c:3709
+#: src/elflint.c:3715
 #, c-format
 msgid "section [%2zu]: invalid name\n"
 msgstr "розділ [%2zu]: некоректна назва\n"
 
-#: src/elflint.c:3736
+#: src/elflint.c:3742
 #, c-format
 msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
 msgstr ""
 "розділ [%2d] «%s» належить до помилкового типу: мав бути %s, маємо %s\n"
 
-#: src/elflint.c:3752
+#: src/elflint.c:3760
 #, c-format
 msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
 msgstr "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, маємо %s\n"
 
-#: src/elflint.c:3769
+#: src/elflint.c:3778
 #, c-format
 msgid ""
 "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
@@ -2817,12 +2856,12 @@
 "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, можливо, %s, але "
 "маємо %s\n"
 
-#: src/elflint.c:3787
+#: src/elflint.c:3796
 #, c-format
 msgid "section [%2zu] '%s' present in object file\n"
 msgstr "у об’єктному файлі виявлено розділ [%2zu] «%s»\n"
 
-#: src/elflint.c:3793 src/elflint.c:3825
+#: src/elflint.c:3802 src/elflint.c:3834
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
@@ -2830,7 +2869,7 @@
 "у розділ [%2zu] «%s» встановлено прапорець SHF_ALLOC, але немає придатного "
 "до завантаження сегмента\n"
 
-#: src/elflint.c:3798 src/elflint.c:3830
+#: src/elflint.c:3807 src/elflint.c:3839
 #, c-format
 msgid ""
 "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -2839,7 +2878,7 @@
 "у розділі [%2zu] «%s» не встановлено прапорець SHF_ALLOC, але є придатні до "
 "завантаження сегменти\n"
 
-#: src/elflint.c:3806
+#: src/elflint.c:3815
 #, c-format
 msgid ""
 "section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -2847,22 +2886,22 @@
 "розділ [%2zu] «%s» є таблицею-покажчиком розділу розширень у файлі, який не "
 "є об’єктним\n"
 
-#: src/elflint.c:3849
+#: src/elflint.c:3858
 #, c-format
 msgid "section [%2zu] '%s': size not multiple of entry size\n"
 msgstr "розділ [%2zu] «%s»: розмір не є кратним до розміру запису\n"
 
-#: src/elflint.c:3854
+#: src/elflint.c:3863
 #, c-format
 msgid "cannot get section header\n"
 msgstr "не вдалося отримати заголовок розділу\n"
 
-#: src/elflint.c:3864
+#: src/elflint.c:3873
 #, c-format
 msgid "section [%2zu] '%s' has unsupported type %d\n"
 msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n"
 
-#: src/elflint.c:3878
+#: src/elflint.c:3888
 #, c-format
 msgid ""
 "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -2870,57 +2909,74 @@
 "розділ [%2zu] «%s» містить некоректні специфічні для процесора прапорці "
 "%#<PRIx64>\n"
 
-#: src/elflint.c:3885
+#: src/elflint.c:3895
 #, c-format
 msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
 msgstr "розділ [%2zu] «%s» містить невідомі прапорці %#<PRIx64>\n"
 
-#: src/elflint.c:3893
+#: src/elflint.c:3903
 #, c-format
 msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
 msgstr ""
 "розділ [%2zu] «%s»: адреса розділів локальних даних потоків не є нульовою\n"
 
-#: src/elflint.c:3901
+#: src/elflint.c:3913
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
+msgstr ""
+"розділ [%2zu] «%s»: адреса розділів локальних даних потоків не є нульовою\n"
+
+#: src/elflint.c:3918
+#, fuzzy, c-format
+msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
+msgstr "розділ [%2d] «%s»: не виявлено розділу хешів\n"
+
+#: src/elflint.c:3924
+#, fuzzy, c-format
+msgid ""
+"section [%2zu] '%s': compressed section with no compression header: %s\n"
+msgstr "розділ [%2d] «%s»: група розділів, що містить лише один елемент\n"
+
+#: src/elflint.c:3930
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in link value\n"
 msgstr ""
 "розділ [%2zu] «%s»: некоректне посилання на розділ у значенні компонування\n"
 
-#: src/elflint.c:3906
+#: src/elflint.c:3935
 #, c-format
 msgid "section [%2zu] '%s': invalid section reference in info value\n"
 msgstr ""
 "розділ [%2zu] «%s»: некоректне посилання на розділ у значенні відомостей\n"
 
-#: src/elflint.c:3913
+#: src/elflint.c:3942
 #, c-format
 msgid "section [%2zu] '%s': strings flag set without merge flag\n"
 msgstr "розділ [%2zu] «%s»: встановлено прапорець strings без прапорця merge\n"
 
-#: src/elflint.c:3918
+#: src/elflint.c:3947
 #, c-format
 msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
 msgstr ""
 "розділ [%2zu] «%s»: встановлено прапорець merge, але розмір запису є "
 "нульовим\n"
 
-#: src/elflint.c:3936
+#: src/elflint.c:3965
 #, c-format
 msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
 msgstr "розділ [%2zu] «%s» має неочікуваний тип %d для виконуваного розділу\n"
 
-#: src/elflint.c:3945
+#: src/elflint.c:3974
 #, fuzzy, c-format
 msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
 msgstr "розділ [%2zu] «%s» не повинен бути придатним до запису\n"
 
-#: src/elflint.c:3952
+#: src/elflint.c:3981
 #, c-format
 msgid "section [%2zu] '%s' is both executable and writable\n"
 msgstr "розділ [%2zu] «%s» є одночасно виконуваним і придатним до запису\n"
 
-#: src/elflint.c:3982
+#: src/elflint.c:4012
 #, c-format
 msgid ""
 "section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -2929,7 +2985,7 @@
 "розділ [%2zu] «%s» не повністю міститься у сегменті запису заголовка "
 "програми %d\n"
 
-#: src/elflint.c:3992
+#: src/elflint.c:4022
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -2938,7 +2994,7 @@
 "розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з "
 "файла у сегментів запису заголовка програми %d\n"
 
-#: src/elflint.c:4018
+#: src/elflint.c:4048
 #, c-format
 msgid ""
 "section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -2947,7 +3003,7 @@
 "розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з "
 "файла у сегментів запису заголовка програми %d, а вміст файла є ненульовим\n"
 
-#: src/elflint.c:4029
+#: src/elflint.c:4059
 #, c-format
 msgid ""
 "section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -2956,19 +3012,19 @@
 "розділ [%2zu] «%s» не належить до типу NOBITS, але його читання не "
 "виконується з файла у сегментів запису заголовка програми %d\n"
 
-#: src/elflint.c:4040
+#: src/elflint.c:4070
 #, c-format
 msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
 msgstr "розділ [%2zu] «%s» є виконуваним у невиконуваному сегменті %d\n"
 
-#: src/elflint.c:4050
+#: src/elflint.c:4080
 #, c-format
 msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
 msgstr ""
 "розділ [%2zu] «%s» є придатним до запису у непридатному до запису сегменті "
 "%d\n"
 
-#: src/elflint.c:4060
+#: src/elflint.c:4090
 #, c-format
 msgid ""
 "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -2976,7 +3032,7 @@
 "розділ [%2zu] «%s»: встановлено прапорець alloc, але розділ не перебуває у "
 "жодному завантаженому сегменті\n"
 
-#: src/elflint.c:4066
+#: src/elflint.c:4096
 #, c-format
 msgid ""
 "section [%2zu] '%s': ELF header says this is the section header string table "
@@ -2985,7 +3041,7 @@
 "розділ [%2zu] «%s»: заголовок ELF повідомляє про те, що це таблиця рядків "
 "заголовка розділу, але ця таблиця не належить до типу SHT_TYPE\n"
 
-#: src/elflint.c:4074
+#: src/elflint.c:4104
 #, c-format
 msgid ""
 "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -2993,17 +3049,17 @@
 "розділ [%2zu] «%s»: придатні до пересування файли не можуть містити "
 "динамічних таблиць символів\n"
 
-#: src/elflint.c:4125
+#: src/elflint.c:4155
 #, c-format
 msgid "more than one version symbol table present\n"
 msgstr "виявлено більше за одну таблицю символів версій\n"
 
-#: src/elflint.c:4148
+#: src/elflint.c:4178
 #, c-format
 msgid "INTERP program header entry but no .interp section\n"
 msgstr "існує запис заголовка програми INTERP, але не розділ .interp\n"
 
-#: src/elflint.c:4159
+#: src/elflint.c:4189
 #, c-format
 msgid ""
 "loadable segment [%u] is executable but contains no executable sections\n"
@@ -3011,14 +3067,14 @@
 "придатний до завантаження сегмент [%u] є виконуваним, але не містить "
 "виконуваних розділів\n"
 
-#: src/elflint.c:4165
+#: src/elflint.c:4195
 #, c-format
 msgid "loadable segment [%u] is writable but contains no writable sections\n"
 msgstr ""
 "придатний до завантаження розділ [%u] є придатним до запису, але не містить "
 "придатних до запису розділів\n"
 
-#: src/elflint.c:4176
+#: src/elflint.c:4206
 #, c-format
 msgid ""
 "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3027,24 +3083,24 @@
 "немає розділу .gnu.versym, хоча існує розділ .gnu.versym_d або .gnu."
 "versym_r\n"
 
-#: src/elflint.c:4189
+#: src/elflint.c:4219
 #, c-format
 msgid "duplicate version index %d\n"
 msgstr "дублікат індексу версії %d\n"
 
-#: src/elflint.c:4203
+#: src/elflint.c:4233
 #, c-format
 msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
 msgstr ""
 "існує розділ .gnu.versym, але немає розділу .gnu.versym_d або .gnu.versym_r\n"
 
-#: src/elflint.c:4252
+#: src/elflint.c:4282
 #, c-format
 msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
 msgstr ""
 "phdr[%d]: невідомий тип нотатки файла core %<PRIu32> за зміщенням %<PRIu64>\n"
 
-#: src/elflint.c:4256
+#: src/elflint.c:4286
 #, c-format
 msgid ""
 "section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3052,13 +3108,13 @@
 "розділ [%2d] «%s»: невідомий тип нотатки файла core %<PRIu32> за зміщенням "
 "%zu\n"
 
-#: src/elflint.c:4279
+#: src/elflint.c:4309
 #, c-format
 msgid "phdr[%d]: unknown object file note type %<PRIu32> at offset %zu\n"
 msgstr ""
 "phdr[%d]: невідомий тип нотатки об’єктного файла %<PRIu32> за зміщенням %zu\n"
 
-#: src/elflint.c:4283
+#: src/elflint.c:4313
 #, c-format
 msgid ""
 "section [%2d] '%s': unknown object file note type %<PRIu32> at offset %zu\n"
@@ -3066,39 +3122,39 @@
 "розділ [%2d] «%s»: невідомий тип нотатки об’єктного файла %<PRIu32> за "
 "зміщенням %zu\n"
 
-#: src/elflint.c:4300
+#: src/elflint.c:4330
 #, c-format
 msgid "phdr[%d]: no note entries defined for the type of file\n"
 msgstr "phdr[%d]: для цього типу файлів не визначено записів нотаток\n"
 
-#: src/elflint.c:4319
+#: src/elflint.c:4349
 #, c-format
 msgid "phdr[%d]: cannot get content of note section: %s\n"
 msgstr "phdr[%d]: не вдалося отримати вміст розділу нотаток: %s\n"
 
-#: src/elflint.c:4322
+#: src/elflint.c:4352
 #, c-format
 msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
 msgstr "phdr[%d]: зайві %<PRIu64> байтів після останнього запису нотатки\n"
 
-#: src/elflint.c:4343
+#: src/elflint.c:4373
 #, c-format
 msgid "section [%2d] '%s': no note entries defined for the type of file\n"
 msgstr ""
 "розділ [%2d] «%s»: для цього типу файлів не визначено записів нотаток\n"
 
-#: src/elflint.c:4350
+#: src/elflint.c:4380
 #, c-format
 msgid "section [%2d] '%s': cannot get content of note section\n"
 msgstr "розділ [%2d] «%s»: не вдалося отримати вміст розділу нотаток\n"
 
-#: src/elflint.c:4353
+#: src/elflint.c:4383
 #, c-format
 msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
 msgstr ""
 "розділ [%2d] «%s»: додаткові %<PRIu64> байтів після останньої нотатки\n"
 
-#: src/elflint.c:4371
+#: src/elflint.c:4401
 #, c-format
 msgid ""
 "only executables, shared objects, and core files can have program headers\n"
@@ -3106,141 +3162,141 @@
 "заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів "
 "спільного використання або файлів core\n"
 
-#: src/elflint.c:4386
+#: src/elflint.c:4416
 #, c-format
 msgid "cannot get program header entry %d: %s\n"
 msgstr "не вдалося отримати запис заголовка програми %d: %s\n"
 
-#: src/elflint.c:4395
+#: src/elflint.c:4425
 #, c-format
 msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
 msgstr ""
 "запис заголовка програми %d: невідомий тип запису заголовка програми "
 "%#<PRIx64>\n"
 
-#: src/elflint.c:4406
+#: src/elflint.c:4436
 #, c-format
 msgid "more than one INTERP entry in program header\n"
 msgstr "більше за один запис INTERP у заголовку програми\n"
 
-#: src/elflint.c:4414
+#: src/elflint.c:4444
 #, c-format
 msgid "more than one TLS entry in program header\n"
 msgstr "більше за один запис TLS у заголовку програми\n"
 
-#: src/elflint.c:4421
+#: src/elflint.c:4451
 #, c-format
 msgid "static executable cannot have dynamic sections\n"
 msgstr "у статичному виконуваному файлі не може бути динамічних розділів\n"
 
-#: src/elflint.c:4435
+#: src/elflint.c:4465
 #, c-format
 msgid "dynamic section reference in program header has wrong offset\n"
 msgstr ""
 "посилання на динамічний розділ у заголовку програми має помилкове зміщення\n"
 
-#: src/elflint.c:4438
+#: src/elflint.c:4468
 #, c-format
 msgid "dynamic section size mismatch in program and section header\n"
 msgstr ""
 "розміри динамічного розділу у заголовку програми та у заголовку розділу не "
 "збігаються\n"
 
-#: src/elflint.c:4448
+#: src/elflint.c:4478
 #, c-format
 msgid "more than one GNU_RELRO entry in program header\n"
 msgstr "більше за один запис GNU_RELRO у заголовку програми\n"
 
-#: src/elflint.c:4469
+#: src/elflint.c:4499
 #, c-format
 msgid "loadable segment GNU_RELRO applies to is not writable\n"
 msgstr ""
 "придатний до завантаження сегмент, до якого звертається GNU_RELRO, "
 "непридатний до запису\n"
 
-#: src/elflint.c:4480
+#: src/elflint.c:4510
 #, c-format
 msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
 msgstr ""
 "прапорці придатного до завантаження сегмента [%u] не відповідають прапорцям "
 "GNU_RELRO [%u]\n"
 
-#: src/elflint.c:4487
+#: src/elflint.c:4517
 #, c-format
 msgid ""
 "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
 msgstr ""
 
-#: src/elflint.c:4496 src/elflint.c:4519
+#: src/elflint.c:4526 src/elflint.c:4549
 #, c-format
 msgid "%s segment not contained in a loaded segment\n"
 msgstr "сегмент %s не міститься у завантаженому сегменті\n"
 
-#: src/elflint.c:4525
+#: src/elflint.c:4555
 #, c-format
 msgid "program header offset in ELF header and PHDR entry do not match"
 msgstr "зміщення заголовка програми у заголовку ELF і запис PHDR не збігаються"
 
-#: src/elflint.c:4550
+#: src/elflint.c:4580
 #, c-format
 msgid "call frame search table reference in program header has wrong offset\n"
 msgstr ""
 "посилання на таблицю вікон викликів у заголовку програми має помилкове "
 "зміщення\n"
 
-#: src/elflint.c:4553
+#: src/elflint.c:4583
 #, c-format
 msgid "call frame search table size mismatch in program and section header\n"
 msgstr ""
 "розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку "
 "розділу не збігаються\n"
 
-#: src/elflint.c:4566
+#: src/elflint.c:4596
 #, c-format
 msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
 msgstr "існує PT_GNU_EH_FRAME, хоча немає розділу .eh_frame_hdr\n"
 
-#: src/elflint.c:4574
+#: src/elflint.c:4604
 #, c-format
 msgid "call frame search table must be allocated\n"
 msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’яті\n"
 
-#: src/elflint.c:4577
+#: src/elflint.c:4607
 #, c-format
 msgid "section [%2zu] '%s' must be allocated\n"
 msgstr "розділ [%2zu] «%s» має бути розміщено у пам’яті\n"
 
-#: src/elflint.c:4581
+#: src/elflint.c:4611
 #, c-format
 msgid "call frame search table must not be writable\n"
 msgstr "таблиця пошуку вікон викликів не повинна бути придатною до запису\n"
 
-#: src/elflint.c:4584
+#: src/elflint.c:4614
 #, c-format
 msgid "section [%2zu] '%s' must not be writable\n"
 msgstr "розділ [%2zu] «%s» не повинен бути придатним до запису\n"
 
-#: src/elflint.c:4589
+#: src/elflint.c:4619
 #, c-format
 msgid "call frame search table must not be executable\n"
 msgstr "таблиця пошуку вікон викликів не повинна бути придатною до виконання\n"
 
-#: src/elflint.c:4592
+#: src/elflint.c:4622
 #, c-format
 msgid "section [%2zu] '%s' must not be executable\n"
 msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконання\n"
 
-#: src/elflint.c:4603
+#: src/elflint.c:4633
 #, c-format
 msgid "program header entry %d: file size greater than memory size\n"
 msgstr "запис заголовка програми %d: розмір файла перевищує об’єм пам’яті\n"
 
-#: src/elflint.c:4610
+#: src/elflint.c:4640
 #, c-format
 msgid "program header entry %d: alignment not a power of 2\n"
 msgstr "запис заголовка програми %d: значення вирівнювання не є степенем 2\n"
 
-#: src/elflint.c:4613
+#: src/elflint.c:4643
 #, c-format
 msgid ""
 "program header entry %d: file offset and virtual address not module of "
@@ -3249,7 +3305,7 @@
 "запис заголовка програми %d: зміщення у файлі і віртуальна адреса не "
 "співвідносяться з вирівнюванням\n"
 
-#: src/elflint.c:4626
+#: src/elflint.c:4656
 #, c-format
 msgid ""
 "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3258,12 +3314,12 @@
 "виконуваний модуль/DSO з розділом .eh_frame_hdr не містить запису заголовка "
 "програми PT_GNU_EH_FRAME"
 
-#: src/elflint.c:4660
+#: src/elflint.c:4690
 #, c-format
 msgid "cannot read ELF header: %s\n"
 msgstr "не вдалося прочитати заголовок ELF: %s\n"
 
-#: src/elflint.c:4686
+#: src/elflint.c:4716
 #, c-format
 msgid "text relocation flag set but not needed\n"
 msgstr ""
@@ -3285,7 +3341,7 @@
 msgid "Locate source of text relocations in FILEs (a.out by default)."
 msgstr "Шукає джерело пересуваного тексту у ФАЙЛАХ (типово, a.out)."
 
-#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83
+#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83
 #: src/strings.c:88 src/strip.c:95
 msgid "[FILE...]"
 msgstr "[ФАЙЛ...]"
@@ -3794,8 +3850,8 @@
 msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
 msgstr "Попередження: розмір «%s» змінено з %<PRIu64> у %s на %<PRIu64> у %s"
 
-#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527
-#: src/readelf.c:829 src/strip.c:589
+#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852
+#: src/strip.c:589
 #, c-format
 msgid "cannot determine number of sections: %s"
 msgstr "не вдалося визначити кількість розділів: %s"
@@ -4037,7 +4093,7 @@
 msgid "cannot get header of 0th section: %s"
 msgstr "не вдалося отримати заголовок 0-го розділу: %s"
 
-#: src/ldgeneric.c:6930 src/unstrip.c:1893
+#: src/ldgeneric.c:6930 src/unstrip.c:1929
 #, c-format
 msgid "cannot update ELF header: %s"
 msgstr "не вдалося оновити заголовок ELF: %s"
@@ -4107,43 +4163,43 @@
 msgid "default visibility set as local and global"
 msgstr "типову видимість визначено як локальну і загальну"
 
-#: src/nm.c:65 src/strip.c:67
+#: src/nm.c:66 src/strip.c:67
 msgid "Output selection:"
 msgstr "Вибір виводу:"
 
-#: src/nm.c:66
+#: src/nm.c:67
 msgid "Display debugger-only symbols"
 msgstr "Показувати лише діагностичні символи"
 
-#: src/nm.c:67
+#: src/nm.c:68
 msgid "Display only defined symbols"
 msgstr "Показувати лише визначені символи"
 
-#: src/nm.c:70
+#: src/nm.c:71
 msgid "Display dynamic symbols instead of normal symbols"
 msgstr "Показувати динамічні символи замість звичайних символів"
 
-#: src/nm.c:71
+#: src/nm.c:72
 msgid "Display only external symbols"
 msgstr "Показувати лише зовнішні символи"
 
-#: src/nm.c:72
+#: src/nm.c:73
 msgid "Display only undefined symbols"
 msgstr "Показувати лише невизначені символи"
 
-#: src/nm.c:74
+#: src/nm.c:75
 msgid "Include index for symbols from archive members"
 msgstr "Включити покажчик для символів з елементів архіву"
 
-#: src/nm.c:76 src/size.c:57
+#: src/nm.c:77 src/size.c:57
 msgid "Output format:"
 msgstr "Формат виводу:"
 
-#: src/nm.c:78
+#: src/nm.c:79
 msgid "Print name of the input file before every symbol"
 msgstr "Виводити перед кожним символом назву вхідного файла"
 
-#: src/nm.c:81
+#: src/nm.c:82
 msgid ""
 "Use the output format FORMAT.  FORMAT can be `bsd', `sysv' or `posix'.  The "
 "default is `sysv'"
@@ -4151,71 +4207,71 @@
 "Використовувати формат виводу ФОРМАТ. ФОРМАТом може бути «bsd», «sysv» або "
 "«posix». Типовим форматом є «sysv»"
 
-#: src/nm.c:83
+#: src/nm.c:84
 msgid "Same as --format=bsd"
 msgstr "Те саме, що і --format=bsd"
 
-#: src/nm.c:84
+#: src/nm.c:85
 msgid "Same as --format=posix"
 msgstr "Те саме, що і --format=posix"
 
-#: src/nm.c:85 src/size.c:63
+#: src/nm.c:86 src/size.c:63
 msgid "Use RADIX for printing symbol values"
 msgstr "Використовувати ОСНОВУ числення для виводу символьних значень"
 
-#: src/nm.c:86
+#: src/nm.c:87
 msgid "Mark special symbols"
 msgstr "Позначати спеціальні символи"
 
-#: src/nm.c:88
+#: src/nm.c:89
 msgid "Print size of defined symbols"
 msgstr "Вивести розмір визначених символів"
 
-#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72
+#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72
 msgid "Output options:"
 msgstr "Параметри виводу:"
 
-#: src/nm.c:91
+#: src/nm.c:92
 msgid "Sort symbols numerically by address"
 msgstr "Числове впорядкування символів за адресою"
 
-#: src/nm.c:93
+#: src/nm.c:94
 msgid "Do not sort the symbols"
 msgstr "Не впорядковувати символи"
 
-#: src/nm.c:94
+#: src/nm.c:95
 msgid "Reverse the sense of the sort"
 msgstr "Змінити порядок на протилежний"
 
-#: src/nm.c:97
+#: src/nm.c:98
 msgid "Decode low-level symbol names into source code names"
 msgstr "Визначати за низькорівневими назвами символів назви у початковому коді"
 
-#: src/nm.c:104
+#: src/nm.c:105
 msgid "List symbols from FILEs (a.out by default)."
 msgstr "Показати список символів з ФАЙЛів (типово з a.out)."
 
-#: src/nm.c:115 src/objdump.c:79
+#: src/nm.c:116 src/objdump.c:79
 msgid "Output formatting"
 msgstr "Форматування виводу"
 
-#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127
+#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127
 #, c-format
 msgid "%s: INTERNAL ERROR %d (%s): %s"
 msgstr "%s: ВНУТРІШНЯ ПОМИЛКА %d (%s): %s"
 
-#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325
+#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325
 #: src/strip.c:2280
 #, c-format
 msgid "while closing '%s'"
 msgstr "під час закриття «%s»"
 
-#: src/nm.c:416 src/objdump.c:292 src/strip.c:391
+#: src/nm.c:417 src/objdump.c:292 src/strip.c:391
 #, c-format
 msgid "%s: File format not recognized"
 msgstr "%s: не вдалося розпізнати формат файла"
 
-#: src/nm.c:456
+#: src/nm.c:457
 msgid ""
 "\n"
 "Archive index:\n"
@@ -4223,42 +4279,42 @@
 "\n"
 "Покажчик архіву:\n"
 
-#: src/nm.c:465
+#: src/nm.c:466
 #, c-format
 msgid "invalid offset %zu for symbol %s"
 msgstr "некоректне зміщення %zu для символу %s"
 
-#: src/nm.c:470
+#: src/nm.c:471
 #, c-format
 msgid "%s in %s\n"
 msgstr "%s у %s\n"
 
-#: src/nm.c:478
+#: src/nm.c:479
 #, c-format
 msgid "cannot reset archive offset to beginning"
 msgstr "не вдалося відновити зміщення початку архіву"
 
-#: src/nm.c:503 src/objdump.c:340
+#: src/nm.c:504 src/objdump.c:340
 #, c-format
 msgid "%s%s%s: file format not recognized"
 msgstr "%s%s%s: не вдалося розпізнати формат файла"
 
-#: src/nm.c:715
+#: src/nm.c:719
 #, c-format
 msgid "cannot create search tree"
 msgstr "не вдалося створити дерево пошуку"
 
-#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536
-#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579
-#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460
-#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239
-#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461
-#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520
+#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545
+#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667
+#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558
+#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347
+#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603
+#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520
 #, c-format
 msgid "cannot get section header string table index"
 msgstr "не вдалося визначити індекс заголовка розділу у таблиці рядків"
 
-#: src/nm.c:781
+#: src/nm.c:787
 #, c-format
 msgid ""
 "\n"
@@ -4271,7 +4327,7 @@
 "Символи з %s:\n"
 "\n"
 
-#: src/nm.c:784
+#: src/nm.c:790
 #, c-format
 msgid ""
 "%*s%-*s %-*s Class  Type     %-*s %*s Section\n"
@@ -4280,22 +4336,22 @@
 "%*s%-*s %-*s Клас   Тип      %-*s %*s Розділ\n"
 "\n"
 
-#: src/nm.c:1171
+#: src/nm.c:1232
 #, c-format
 msgid "%s: entry size in section %zd `%s' is not what we expect"
 msgstr "%s: розмір запису у розділі %zd «%s» не є очікуваним"
 
-#: src/nm.c:1176
+#: src/nm.c:1237
 #, c-format
 msgid "%s: size of section %zd `%s' is not multiple of entry size"
 msgstr "%s: розмір розділу %zd «%s» не є кратним до розміру запису"
 
-#: src/nm.c:1434
+#: src/nm.c:1537
 #, c-format
 msgid "%s%s%s%s: Invalid operation"
 msgstr "%s%s%s%s: некоректна дія"
 
-#: src/nm.c:1491
+#: src/nm.c:1594
 #, c-format
 msgid "%s%s%s: no symbols"
 msgstr "%s%s%s: немає символів"
@@ -4328,7 +4384,7 @@
 msgid "Show information from FILEs (a.out by default)."
 msgstr "Показати інформацію з ФАЙЛів (типово a.out)."
 
-#: src/objdump.c:232 src/readelf.c:473
+#: src/objdump.c:232 src/readelf.c:479
 msgid "No operation specified.\n"
 msgstr "Не вказано дії.\n"
 
@@ -4337,11 +4393,11 @@
 msgid "while close `%s'"
 msgstr "під час закриття «%s»"
 
-#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072
+#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160
 msgid "INVALID SYMBOL"
 msgstr "НЕКОРЕКТНИЙ СИМВОЛ"
 
-#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108
+#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196
 msgid "INVALID SECTION"
 msgstr "НЕКОРЕКТНИЙ РОЗДІЛ"
 
@@ -4393,74 +4449,74 @@
 msgid "error while freeing sub-ELF descriptor: %s"
 msgstr "помилка під час спроби вивільнення дескриптора під-ELF: %s"
 
-#: src/readelf.c:71
+#: src/readelf.c:72
 msgid "ELF input selection:"
 msgstr "Вибір вихідних даних ELF:"
 
-#: src/readelf.c:73
+#: src/readelf.c:74
 msgid ""
 "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
 msgstr ""
 "Використовувати вказаний за іменем РОЗДІЛ (типово .gnu_debugdata) як "
 "(стиснені) вхідні дані ELF"
 
-#: src/readelf.c:75
+#: src/readelf.c:76
 msgid "ELF output selection:"
 msgstr "Вибір виводу ELF:"
 
-#: src/readelf.c:77
+#: src/readelf.c:78
 msgid "All these plus -p .strtab -p .dynstr -p .comment"
 msgstr "Все це плюс -p .strtab -p .dynstr -p .comment"
 
-#: src/readelf.c:78
+#: src/readelf.c:79
 msgid "Display the dynamic segment"
 msgstr "Показувати динамічний сегмент"
 
-#: src/readelf.c:79
+#: src/readelf.c:80
 msgid "Display the ELF file header"
 msgstr "Показувати заголовок файла ELF"
 
-#: src/readelf.c:81
+#: src/readelf.c:82
 msgid "Display histogram of bucket list lengths"
 msgstr "Показати гістограму довжин списку блоків"
 
-#: src/readelf.c:82
+#: src/readelf.c:83
 msgid "Display the program headers"
 msgstr "Показувати заголовки програми"
 
-#: src/readelf.c:84
+#: src/readelf.c:85
 msgid "Display relocations"
 msgstr "Показувати пересування"
 
-#: src/readelf.c:85
+#: src/readelf.c:86
 msgid "Display the sections' headers"
 msgstr "Показувати заголовки розділів"
 
-#: src/readelf.c:87
+#: src/readelf.c:88
 msgid "Display the symbol table"
 msgstr "Показувати таблицю символів"
 
-#: src/readelf.c:88
+#: src/readelf.c:89
 msgid "Display versioning information"
 msgstr "Показувати відомості щодо версії"
 
-#: src/readelf.c:89
+#: src/readelf.c:90
 msgid "Display the ELF notes"
 msgstr "Показувати нотатки ELF"
 
-#: src/readelf.c:91
+#: src/readelf.c:92
 msgid "Display architecture specific information, if any"
 msgstr "Показувати специфічні для архітектури дані, якщо такі буде виявлено"
 
-#: src/readelf.c:93
+#: src/readelf.c:94
 msgid "Display sections for exception handling"
 msgstr "Показувати розділи для обробки виключень"
 
-#: src/readelf.c:95
+#: src/readelf.c:96
 msgid "Additional output selection:"
 msgstr "Додатковий вибір виводу:"
 
-#: src/readelf.c:97
+#: src/readelf.c:98
 msgid ""
 "Display DWARF section content.  SECTION can be one of abbrev, aranges, "
 "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, "
@@ -4470,167 +4526,173 @@
 "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, "
 "pubnames, str, macinfo, macro або exception"
 
-#: src/readelf.c:101
+#: src/readelf.c:102
 msgid "Dump the uninterpreted contents of SECTION, by number or name"
 msgstr ""
 "Створити дамп даних РОЗДІЛ, які не вдалося інтерпретувати, за номером або "
 "назвами"
 
-#: src/readelf.c:103
+#: src/readelf.c:104
 msgid "Print string contents of sections"
 msgstr "Виводити вміст рядків розділів"
 
-#: src/readelf.c:106
+#: src/readelf.c:107
 msgid "Display the symbol index of an archive"
 msgstr "Показувати покажчик символів архіву"
 
-#: src/readelf.c:108
+#: src/readelf.c:109
 msgid "Output control:"
 msgstr "Керування виводом:"
 
-#: src/readelf.c:110
+#: src/readelf.c:111
 msgid "Do not find symbol names for addresses in DWARF data"
 msgstr "Не шукати назви символів для адрес у даних DWARF"
 
-#: src/readelf.c:112
+#: src/readelf.c:113
 msgid ""
 "Display just offsets instead of resolving values to addresses in DWARF data"
 msgstr "Показати лише зміщення, а не визначені значення адреси у даних DWARF"
 
-#: src/readelf.c:114
+#: src/readelf.c:115
 msgid "Ignored for compatibility (lines always wide)"
 msgstr "Ігнорується з міркувань сумісності (рядки завжди широкі)"
 
-#: src/readelf.c:119
+#: src/readelf.c:117
+msgid ""
+"Show compression information for compressed sections (when used with -S); "
+"decompress section before dumping data (when used with -p or -x)"
+msgstr ""
+
+#: src/readelf.c:122
 msgid "Print information from ELF file in human-readable form."
 msgstr "Виводити відомості з файла ELF у придатному для читання форматі."
 
-#: src/readelf.c:441
+#: src/readelf.c:447
 #, c-format
 msgid "Unknown DWARF debug section `%s'.\n"
 msgstr "Невідомий діагностичний розділ DWARF «%s».\n"
 
-#: src/readelf.c:520 src/readelf.c:631
+#: src/readelf.c:529 src/readelf.c:640
 #, c-format
 msgid "cannot generate Elf descriptor: %s"
 msgstr "не вдалося створити дескриптор Elf: %s"
 
-#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269
+#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347
 #, c-format
 msgid "cannot get section: %s"
 msgstr "не вдалося отримати розділ: %s"
 
-#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481
-#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543
-#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083
-#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508
-#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855
+#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623
+#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577
+#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118
+#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543
+#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891
 #, c-format
 msgid "cannot get section header: %s"
 msgstr "не вдалося отримати заголовок розділу: %s"
 
-#: src/readelf.c:562
+#: src/readelf.c:571
 #, c-format
 msgid "cannot get section name"
 msgstr "не вдалося отримати назву розділу"
 
-#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772
-#: src/readelf.c:7949
+#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880
+#: src/readelf.c:8057
 #, c-format
 msgid "cannot get %s content: %s"
 msgstr "не вдалося отримати дані %s: %s"
 
-#: src/readelf.c:587
+#: src/readelf.c:596
 #, c-format
 msgid "cannot create temp file '%s'"
 msgstr "не вдалося створити файл тимчасових даних «%s»"
 
-#: src/readelf.c:596
+#: src/readelf.c:605
 #, c-format
 msgid "cannot write section data"
 msgstr "не вдалося записати дані розділу"
 
-#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648
+#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657
 #, c-format
 msgid "error while closing Elf descriptor: %s"
 msgstr "помилка під час спроби закриття дескриптора Elf: %s"
 
-#: src/readelf.c:609
+#: src/readelf.c:618
 #, c-format
 msgid "error while rewinding file descriptor"
 msgstr "помилка під час повернення до початкового значення дескриптора файла"
 
-#: src/readelf.c:643
+#: src/readelf.c:652
 #, c-format
 msgid "'%s' is not an archive, cannot print archive index"
 msgstr "«%s» не є архівом, виведення покажчика архіву неможливе"
 
-#: src/readelf.c:742
+#: src/readelf.c:751
 #, c-format
 msgid "No such section '%s' in '%s'"
 msgstr "У «%2$s» немає розділу «%1$s»"
 
-#: src/readelf.c:769
+#: src/readelf.c:778
 #, c-format
 msgid "cannot stat input file"
 msgstr "не вдалося отримати дані з вхідного файла за допомогою stat"
 
-#: src/readelf.c:771
+#: src/readelf.c:780
 #, c-format
 msgid "input file is empty"
 msgstr "вхідний файл є порожнім"
 
-#: src/readelf.c:773
+#: src/readelf.c:782
 #, c-format
 msgid "failed reading '%s': %s"
 msgstr "не вдалося прочитати «%s»: %s"
 
-#: src/readelf.c:814
+#: src/readelf.c:837
 #, c-format
 msgid "cannot read ELF header: %s"
 msgstr "не вдалося прочитати заголовок ELF: %s"
 
-#: src/readelf.c:822
+#: src/readelf.c:845
 #, c-format
 msgid "cannot create EBL handle"
 msgstr "не вдалося створити дескриптор EBL"
 
-#: src/readelf.c:835
+#: src/readelf.c:858
 #, c-format
 msgid "cannot determine number of program headers: %s"
 msgstr "не вдалося визначити кількість заголовків програми: %s"
 
-#: src/readelf.c:921
+#: src/readelf.c:948
 msgid "NONE (None)"
 msgstr "NONE (Немає)"
 
-#: src/readelf.c:922
+#: src/readelf.c:949
 msgid "REL (Relocatable file)"
 msgstr "REL (Придатний до пересування файл)"
 
-#: src/readelf.c:923
+#: src/readelf.c:950
 msgid "EXEC (Executable file)"
 msgstr "EXEC (Виконуваний файл)"
 
-#: src/readelf.c:924
+#: src/readelf.c:951
 msgid "DYN (Shared object file)"
 msgstr "DYN (Файл об’єктів спільного використання)"
 
-#: src/readelf.c:925
+#: src/readelf.c:952
 msgid "CORE (Core file)"
 msgstr "CORE (Файл ядра)"
 
-#: src/readelf.c:930
+#: src/readelf.c:957
 #, c-format
 msgid "OS Specific: (%x)\n"
 msgstr "ОС-специфічне: (%x)\n"
 
-#: src/readelf.c:932
+#: src/readelf.c:959
 #, c-format
 msgid "Processor Specific: (%x)\n"
 msgstr "Специфічне для процесора: (%x)\n"
 
-#: src/readelf.c:942
+#: src/readelf.c:969
 msgid ""
 "ELF Header:\n"
 "  Magic:  "
@@ -4638,7 +4700,7 @@
 "Заголовок ELF:\n"
 "  Magic:  "
 
-#: src/readelf.c:946
+#: src/readelf.c:973
 #, c-format
 msgid ""
 "\n"
@@ -4647,117 +4709,117 @@
 "\n"
 "  Клас:                              %s\n"
 
-#: src/readelf.c:951
+#: src/readelf.c:978
 #, c-format
 msgid "  Data:                              %s\n"
 msgstr "  Дані:                              %s\n"
 
-#: src/readelf.c:957
+#: src/readelf.c:984
 #, c-format
 msgid "  Ident Version:                     %hhd %s\n"
 msgstr "   Версія Ident:                     %hhd %s\n"
 
-#: src/readelf.c:959 src/readelf.c:976
+#: src/readelf.c:986 src/readelf.c:1003
 msgid "(current)"
 msgstr "(поточний)"
 
-#: src/readelf.c:963
+#: src/readelf.c:990
 #, c-format
 msgid "  OS/ABI:                            %s\n"
 msgstr "  ОС/ABI:                            %s\n"
 
-#: src/readelf.c:966
+#: src/readelf.c:993
 #, c-format
 msgid "  ABI Version:                       %hhd\n"
 msgstr "  Версія ABI:                       %hhd\n"
 
-#: src/readelf.c:969
+#: src/readelf.c:996
 msgid "  Type:                              "
 msgstr "  Тип:                                "
 
-#: src/readelf.c:972
+#: src/readelf.c:999
 #, c-format
 msgid "  Machine:                           %s\n"
 msgstr "  Архітектура:                       %s\n"
 
-#: src/readelf.c:974
+#: src/readelf.c:1001
 #, c-format
 msgid "  Version:                           %d %s\n"
 msgstr "  Версія:                            %d %s\n"
 
-#: src/readelf.c:978
+#: src/readelf.c:1005
 #, c-format
 msgid "  Entry point address:               %#<PRIx64>\n"
 msgstr "  Адреса вхідної точки:              %#<PRIx64>\n"
 
-#: src/readelf.c:981
+#: src/readelf.c:1008
 #, c-format
 msgid "  Start of program headers:          %<PRId64> %s\n"
 msgstr "  Початок заголовків програм:      %<PRId64> %s\n"
 
-#: src/readelf.c:982 src/readelf.c:985
+#: src/readelf.c:1009 src/readelf.c:1012
 msgid "(bytes into file)"
 msgstr "(байтів у файл)"
 
-#: src/readelf.c:984
+#: src/readelf.c:1011
 #, c-format
 msgid "  Start of section headers:          %<PRId64> %s\n"
 msgstr "  Початок заголовків розділів:     %<PRId64> %s\n"
 
-#: src/readelf.c:987
+#: src/readelf.c:1014
 #, c-format
 msgid "  Flags:                             %s\n"
 msgstr "  Прапорці:                          %s\n"
 
-#: src/readelf.c:990
+#: src/readelf.c:1017
 #, c-format
 msgid "  Size of this header:               %<PRId16> %s\n"
 msgstr "  Розмір цього заголовка:            %<PRId16> %s\n"
 
-#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011
+#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038
 msgid "(bytes)"
 msgstr "(байтів)"
 
-#: src/readelf.c:993
+#: src/readelf.c:1020
 #, c-format
 msgid "  Size of program header entries:    %<PRId16> %s\n"
 msgstr "  Розмір записів заголовка програми:  %<PRId16> %s\n"
 
-#: src/readelf.c:996
+#: src/readelf.c:1023
 #, c-format
 msgid "  Number of program headers entries: %<PRId16>"
 msgstr "  Кількість записів заголовків програми: %<PRId16>"
 
-#: src/readelf.c:1003
+#: src/readelf.c:1030
 #, c-format
 msgid " (%<PRIu32> in [0].sh_info)"
 msgstr " (%<PRIu32> у [0].sh_info)"
 
-#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037
+#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064
 msgid " ([0] not available)"
 msgstr " ([0] недоступний)"
 
-#: src/readelf.c:1010
+#: src/readelf.c:1037
 #, c-format
 msgid "  Size of section header entries:    %<PRId16> %s\n"
 msgstr "  Розмір записів заголовків розділів:  %<PRId16> %s\n"
 
-#: src/readelf.c:1013
+#: src/readelf.c:1040
 #, c-format
 msgid "  Number of section headers entries: %<PRId16>"
 msgstr "  Кількість записів заголовків розділів: %<PRId16>"
 
-#: src/readelf.c:1020
+#: src/readelf.c:1047
 #, c-format
 msgid " (%<PRIu32> in [0].sh_size)"
 msgstr " (%<PRIu32> у [0].sh_size)"
 
-#: src/readelf.c:1033
+#: src/readelf.c:1060
 #, c-format
 msgid " (%<PRIu32> in [0].sh_link)"
 msgstr " (%<PRIu32> у [0].sh_link)"
 
-#: src/readelf.c:1041
+#: src/readelf.c:1068
 #, c-format
 msgid ""
 "  Section header string table index: XINDEX%s\n"
@@ -4766,7 +4828,7 @@
 "  Індекс заголовка розділу у таблиці рядків: XINDEX%s\n"
 "\n"
 
-#: src/readelf.c:1045
+#: src/readelf.c:1072
 #, c-format
 msgid ""
 "  Section header string table index: %<PRId16>\n"
@@ -4775,7 +4837,7 @@
 "  Індекс заголовка розділу у таблиці рядків: %<PRId16>\n"
 "\n"
 
-#: src/readelf.c:1077
+#: src/readelf.c:1115
 #, c-format
 msgid ""
 "There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4784,11 +4846,11 @@
 "Виявлено %d заголовків розділів, зміщення початку — %#<PRIx64>:\n"
 "\n"
 
-#: src/readelf.c:1087
+#: src/readelf.c:1125
 msgid "Section Headers:"
 msgstr "Заголовки розділів:"
 
-#: src/readelf.c:1090
+#: src/readelf.c:1128
 msgid ""
 "[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk "
 "Inf Al"
@@ -4796,7 +4858,7 @@
 "[№ ] Назва                Тип          Адр      Змі    Розмір ES Прап  Lk "
 "Інф Al"
 
-#: src/readelf.c:1092
+#: src/readelf.c:1130
 msgid ""
 "[Nr] Name                 Type         Addr             Off      Size     ES "
 "Flags Lk Inf Al"
@@ -4804,17 +4866,35 @@
 "[№ ] Назва                Тип          Адр              Змі      Розмір   ES "
 "Прап  Lk Інф Al"
 
-#: src/readelf.c:1164
+#: src/readelf.c:1135
+msgid "     [Compression  Size   Al]"
+msgstr ""
+
+#: src/readelf.c:1137
+msgid "     [Compression  Size     Al]"
+msgstr ""
+
+#: src/readelf.c:1213
+#, fuzzy, c-format
+msgid "bad compression header for section %zd: %s"
+msgstr "не вдалося отримати заголовок розділу %zu: %s"
+
+#: src/readelf.c:1224
+#, fuzzy, c-format
+msgid "bad gnu compressed size for section %zd: %s"
+msgstr "не вдалося отримати дані для розділу %d: %s"
+
+#: src/readelf.c:1242
 msgid "Program Headers:"
 msgstr "Заголовки програми:"
 
-#: src/readelf.c:1166
+#: src/readelf.c:1244
 msgid ""
 "  Type           Offset   VirtAddr   PhysAddr   FileSiz  MemSiz   Flg Align"
 msgstr ""
 "  Тип            Зміщен   ВіртАдр    ФізАдр     РозмФайл РозмПам  Пра Вирів"
 
-#: src/readelf.c:1169
+#: src/readelf.c:1247
 msgid ""
 "  Type           Offset   VirtAddr           PhysAddr           FileSiz  "
 "MemSiz   Flg Align"
@@ -4822,12 +4902,12 @@
 "  Тип           Зміщен   ВіртАдр            ФізАдр             "
 "РозмФайлРозмПам  Пра Вирів"
 
-#: src/readelf.c:1226
+#: src/readelf.c:1304
 #, c-format
 msgid "\t[Requesting program interpreter: %s]\n"
 msgstr "\t[Запит щодо інтерпретатора програми: %s]\n"
 
-#: src/readelf.c:1247
+#: src/readelf.c:1325
 msgid ""
 "\n"
 " Section to Segment mapping:\n"
@@ -4837,12 +4917,12 @@
 " Відображення розділів на сегмент:\n"
 "  Розділи сегмента..."
 
-#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964
+#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999
 #, c-format
 msgid "cannot get program header: %s"
 msgstr "не вдалося отримати заголовок програми: %s"
 
-#: src/readelf.c:1401
+#: src/readelf.c:1479
 #, c-format
 msgid ""
 "\n"
@@ -4860,7 +4940,7 @@
 "\n"
 "Група розділів COMDAT [%2zu] «%s» з підписом «%s» містить %zu записів:\n"
 
-#: src/readelf.c:1406
+#: src/readelf.c:1484
 #, c-format
 msgid ""
 "\n"
@@ -4878,21 +4958,25 @@
 "\n"
 "Група розділів [%2zu] «%s» з підписом «%s» містить %zu записів:\n"
 
-#: src/readelf.c:1414
+#: src/readelf.c:1492
 msgid "<INVALID SYMBOL>"
 msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>"
 
-#: src/readelf.c:1428
+#: src/readelf.c:1506
 msgid "<INVALID SECTION>"
 msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>"
 
-#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542
-#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608
+#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317
+msgid "Couldn't uncompress section"
+msgstr ""
+
+#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640
+#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716
 #, c-format
 msgid "invalid sh_link value in section %zu"
 msgstr "некоректне значення sh_link у розділі %zu"
 
-#: src/readelf.c:1588
+#: src/readelf.c:1676
 #, c-format
 msgid ""
 "\n"
@@ -4915,36 +4999,36 @@
 "Динамічний сегмент містить %lu записів:\n"
 " Адр: %#0*<PRIx64>  Зміщення: %#08<PRIx64>  Пос. на розділ: [%2u] '%s'\n"
 
-#: src/readelf.c:1598
+#: src/readelf.c:1686
 msgid "  Type              Value\n"
 msgstr "  Тип              Значення\n"
 
-#: src/readelf.c:1622
+#: src/readelf.c:1710
 #, c-format
 msgid "Shared library: [%s]\n"
 msgstr "Спільна бібліотека: [%s]\n"
 
-#: src/readelf.c:1627
+#: src/readelf.c:1715
 #, c-format
 msgid "Library soname: [%s]\n"
 msgstr "Назва so бібліотеки: [%s]\n"
 
-#: src/readelf.c:1632
+#: src/readelf.c:1720
 #, c-format
 msgid "Library rpath: [%s]\n"
 msgstr "Rpath бібліотеки: [%s]\n"
 
-#: src/readelf.c:1637
+#: src/readelf.c:1725
 #, c-format
 msgid "Library runpath: [%s]\n"
 msgstr "Runpath бібліотеки: [%s]\n"
 
-#: src/readelf.c:1657
+#: src/readelf.c:1745
 #, c-format
 msgid "%<PRId64> (bytes)\n"
 msgstr "%<PRId64> (байт)\n"
 
-#: src/readelf.c:1770 src/readelf.c:1960
+#: src/readelf.c:1858 src/readelf.c:2048
 #, c-format
 msgid ""
 "\n"
@@ -4953,7 +5037,7 @@
 "\n"
 "Некоректна таблиця символів за зміщенням %#0<PRIx64>\n"
 
-#: src/readelf.c:1788 src/readelf.c:1978
+#: src/readelf.c:1876 src/readelf.c:2066
 #, c-format
 msgid ""
 "\n"
@@ -4976,7 +5060,7 @@
 "Розділ пересування [%2zu] «%s» для розділу [%2u] «%s» за зміщенням "
 "%#0<PRIx64> містить %d записів:\n"
 
-#: src/readelf.c:1803 src/readelf.c:1993
+#: src/readelf.c:1891 src/readelf.c:2081
 #, c-format
 msgid ""
 "\n"
@@ -4994,30 +5078,30 @@
 "\n"
 "Розділ пересування [%2u] «%s» за зміщенням %#0<PRIx64> містить %d записів:\n"
 
-#: src/readelf.c:1813
+#: src/readelf.c:1901
 msgid "  Offset      Type                 Value       Name\n"
 msgstr "  Зміщення     Тип                  Значення    Назва\n"
 
-#: src/readelf.c:1815
+#: src/readelf.c:1903
 msgid "  Offset              Type                 Value               Name\n"
 msgstr "  Зміщення            Тип                  Значення            Назва\n"
 
-#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913
-#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085
-#: src/readelf.c:2107 src/readelf.c:2120
+#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001
+#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173
+#: src/readelf.c:2195 src/readelf.c:2208
 msgid "<INVALID RELOC>"
 msgstr "<НЕКОРЕКТНЕ ПЕРЕМІЩЕННЯ>"
 
-#: src/readelf.c:2003
+#: src/readelf.c:2091
 msgid "  Offset      Type            Value       Addend Name\n"
 msgstr "  Зміщення    Тип             Значення    Назва додатка\n"
 
-#: src/readelf.c:2005
+#: src/readelf.c:2093
 msgid "  Offset              Type            Value               Addend Name\n"
 msgstr ""
 "  Зміщення            Тип             Значення            Назва додатка\n"
 
-#: src/readelf.c:2216
+#: src/readelf.c:2314
 #, c-format
 msgid ""
 "\n"
@@ -5035,7 +5119,7 @@
 "\n"
 "Таблиця символів [%2u] «%s» містить %u записів:\n"
 
-#: src/readelf.c:2221
+#: src/readelf.c:2319
 #, c-format
 msgid " %lu local symbol  String table: [%2u] '%s'\n"
 msgid_plural " %lu local symbols  String table: [%2u] '%s'\n"
@@ -5043,33 +5127,33 @@
 msgstr[1] " %lu лок. символи  Таблиця символів: [%2u] «%s»\n"
 msgstr[2] " %lu лок. символів Таблиця символів: [%2u] «%s»\n"
 
-#: src/readelf.c:2229
+#: src/readelf.c:2327
 msgid "  Num:    Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  №№      Знач.   Роз. Тип     Зв’яз  Вид.         Інд Назва\n"
 
-#: src/readelf.c:2231
+#: src/readelf.c:2329
 msgid "  Num:            Value   Size Type    Bind   Vis          Ndx Name\n"
 msgstr "  №№              Знач.   Роз. Тип     Зв’яз  Вид.         Інд Назва\n"
 
-#: src/readelf.c:2251
+#: src/readelf.c:2349
 #, c-format
 msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
 
-#: src/readelf.c:2339
+#: src/readelf.c:2437
 #, c-format
 msgid "bad dynamic symbol"
 msgstr "помилковий динамічний символ"
 
-#: src/readelf.c:2421
+#: src/readelf.c:2519
 msgid "none"
 msgstr "немає"
 
-#: src/readelf.c:2438
+#: src/readelf.c:2536
 msgid "| <unknown>"
 msgstr "| <невідомо>"
 
-#: src/readelf.c:2469
+#: src/readelf.c:2567
 #, c-format
 msgid ""
 "\n"
@@ -5092,17 +5176,17 @@
 "Розділ потреби у версіях [%2u] «%s», що містить %d записів:\n"
 " Адр.: %#0*<PRIx64>  Зміщ.:  %#08<PRIx64>  Посилання на розділ: [%2u] «%s»\n"
 
-#: src/readelf.c:2490
+#: src/readelf.c:2588
 #, c-format
 msgid "  %#06x: Version: %hu  File: %s  Cnt: %hu\n"
 msgstr "  %#06x: Версія: %hu  Файл: %s  Кть: %hu\n"
 
-#: src/readelf.c:2503
+#: src/readelf.c:2601
 #, c-format
 msgid "  %#06x: Name: %s  Flags: %s  Version: %hu\n"
 msgstr "  %#06x: Назва: %s  Прап: %s  Версія: %hu\n"
 
-#: src/readelf.c:2546
+#: src/readelf.c:2644
 #, c-format
 msgid ""
 "\n"
@@ -5125,17 +5209,17 @@
 "Розділ визначення версії [%2u] «%s», що містить %d записів:\n"
 " Адр.: %#0*<PRIx64>  Зміщ.:  %#08<PRIx64>  Посилання на розділ: [%2u] «%s»\n"
 
-#: src/readelf.c:2574
+#: src/readelf.c:2672
 #, c-format
 msgid "  %#06x: Version: %hd  Flags: %s  Index: %hd  Cnt: %hd  Name: %s\n"
 msgstr "  %#06x: Версія:  %hd  Прап.: %s  Індекс: %hd К-ть: %hd Назва: %s\n"
 
-#: src/readelf.c:2589
+#: src/readelf.c:2687
 #, c-format
 msgid "  %#06x: Parent %d: %s\n"
 msgstr "  %#06x: батьківський %d: %s\n"
 
-#: src/readelf.c:2850
+#: src/readelf.c:2948
 #, c-format
 msgid ""
 "\n"
@@ -5158,15 +5242,15 @@
 "Розділ символів версій [%2u] «%s», що містить %d записів:\n"
 " Адр.: %#0*<PRIx64>  Зміщ.:  %#08<PRIx64>  Посилання на розділ: [%2u] «%s»"
 
-#: src/readelf.c:2878
+#: src/readelf.c:2976
 msgid "   0 *local*                     "
 msgstr "   0 *локальний*                 "
 
-#: src/readelf.c:2883
+#: src/readelf.c:2981
 msgid "   1 *global*                    "
 msgstr "   1 *загальний*                 "
 
-#: src/readelf.c:2925
+#: src/readelf.c:3023
 #, c-format
 msgid ""
 "\n"
@@ -5194,22 +5278,22 @@
 "блоками):\n"
 " Адр.: %#0*<PRIx64>  Зміщ.: %#08<PRIx64>  Посилання на розділ: [%2u] «%s»\n"
 
-#: src/readelf.c:2947
+#: src/readelf.c:3045
 #, no-c-format
 msgid " Length  Number  % of total  Coverage\n"
 msgstr " Довжина Номер   % від загал. Покриття\n"
 
-#: src/readelf.c:2949
+#: src/readelf.c:3047
 #, c-format
 msgid "      0  %6<PRIu32>      %5.1f%%\n"
 msgstr "      0  %6<PRIu32>      %5.1f%%\n"
 
-#: src/readelf.c:2956
+#: src/readelf.c:3054
 #, c-format
 msgid "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 msgstr "%7d  %6<PRIu32>      %5.1f%%    %5.1f%%\n"
 
-#: src/readelf.c:2969
+#: src/readelf.c:3067
 #, c-format
 msgid ""
 " Average number of tests:   successful lookup: %f\n"
@@ -5218,27 +5302,27 @@
 " Середня кількість тестів:   успішний пошук: %f\n"
 "\t\t\t  неуспішний пошук: %f\n"
 
-#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099
+#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197
 #, c-format
 msgid "cannot get data for section %d: %s"
 msgstr "не вдалося отримати дані для розділу %d: %s"
 
-#: src/readelf.c:2995
+#: src/readelf.c:3093
 #, c-format
 msgid "invalid data in sysv.hash section %d"
 msgstr "некоректні дані у розділі sysv.hash %d"
 
-#: src/readelf.c:3050
+#: src/readelf.c:3148
 #, c-format
 msgid "invalid data in sysv.hash64 section %d"
 msgstr "некоректні дані у розділі sysv.hash64 %d"
 
-#: src/readelf.c:3108
+#: src/readelf.c:3206
 #, c-format
 msgid "invalid data in gnu.hash section %d"
 msgstr "некоректні дані у розділі gnu.hash %d"
 
-#: src/readelf.c:3175
+#: src/readelf.c:3273
 #, c-format
 msgid ""
 " Symbol Bias: %u\n"
@@ -5248,7 +5332,7 @@
 " Розмір бітової маски: %zu байтів  %<PRIuFAST32>%% встановлених бітів  зсув "
 "2-го хешу: %u\n"
 
-#: src/readelf.c:3250
+#: src/readelf.c:3358
 #, c-format
 msgid ""
 "\n"
@@ -5269,7 +5353,7 @@
 "Розділ списку бібліотек [%2zu] «%s» за зміщенням %#0<PRIx64> містить %d "
 "записів:\n"
 
-#: src/readelf.c:3264
+#: src/readelf.c:3372
 msgid ""
 "       Library                       Time Stamp          Checksum Version "
 "Flags"
@@ -5277,7 +5361,7 @@
 "       Бібліотека                    Часовий штамп       Версія суми      "
 "Прапорці"
 
-#: src/readelf.c:3314
+#: src/readelf.c:3422
 #, c-format
 msgid ""
 "\n"
@@ -5288,140 +5372,140 @@
 "Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщенням "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:3331
+#: src/readelf.c:3439
 msgid "  Owner          Size\n"
 msgstr "  Власник        Розмір\n"
 
-#: src/readelf.c:3360
+#: src/readelf.c:3468
 #, c-format
 msgid "  %-13s  %4<PRIu32>\n"
 msgstr "  %-13s  %4<PRIu32>\n"
 
-#: src/readelf.c:3399
+#: src/readelf.c:3507
 #, c-format
 msgid "    %-4u %12<PRIu32>\n"
 msgstr "    %-4u %12<PRIu32>\n"
 
-#: src/readelf.c:3404
+#: src/readelf.c:3512
 #, c-format
 msgid "    File: %11<PRIu32>\n"
 msgstr "    Файл: %11<PRIu32>\n"
 
-#: src/readelf.c:3453
+#: src/readelf.c:3561
 #, c-format
 msgid "      %s: %<PRId64>, %s\n"
 msgstr "      %s: %<PRId64>, %s\n"
 
-#: src/readelf.c:3456
+#: src/readelf.c:3564
 #, c-format
 msgid "      %s: %<PRId64>\n"
 msgstr "      %s: %<PRId64>\n"
 
-#: src/readelf.c:3459
+#: src/readelf.c:3567
 #, c-format
 msgid "      %s: %s\n"
 msgstr "      %s: %s\n"
 
-#: src/readelf.c:3469
+#: src/readelf.c:3577
 #, c-format
 msgid "      %u: %<PRId64>\n"
 msgstr "      %u: %<PRId64>\n"
 
-#: src/readelf.c:3472
+#: src/readelf.c:3580
 #, c-format
 msgid "      %u: %s\n"
 msgstr "      %u: %s\n"
 
-#: src/readelf.c:3517
+#: src/readelf.c:3625
 #, c-format
 msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3520
+#: src/readelf.c:3628
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3525
+#: src/readelf.c:3633
 #, c-format
 msgid "%#<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3528
+#: src/readelf.c:3636
 #, c-format
 msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
 msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
 
-#: src/readelf.c:3534
+#: src/readelf.c:3642
 #, c-format
 msgid "%s+%#<PRIx64> <%s>"
 msgstr "%s+%#<PRIx64> <%s>"
 
-#: src/readelf.c:3537
+#: src/readelf.c:3645
 #, c-format
 msgid "%s+%#0*<PRIx64> <%s>"
 msgstr "%s+%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3541
+#: src/readelf.c:3649
 #, c-format
 msgid "%#<PRIx64> <%s>"
 msgstr "%#<PRIx64> <%s>"
 
-#: src/readelf.c:3544
+#: src/readelf.c:3652
 #, c-format
 msgid "%#0*<PRIx64> <%s>"
 msgstr "%#0*<PRIx64> <%s>"
 
-#: src/readelf.c:3549
+#: src/readelf.c:3657
 #, c-format
 msgid "%s+%#<PRIx64>"
 msgstr "%s+%#<PRIx64>"
 
-#: src/readelf.c:3552
+#: src/readelf.c:3660
 #, c-format
 msgid "%s+%#0*<PRIx64>"
 msgstr "%s+%#0*<PRIx64>"
 
-#: src/readelf.c:3930
+#: src/readelf.c:4038
 msgid "empty block"
 msgstr "порожній блок"
 
-#: src/readelf.c:3933
+#: src/readelf.c:4041
 #, c-format
 msgid "%zu byte block:"
 msgstr "%zu-байтовий блок:"
 
-#: src/readelf.c:4330
+#: src/readelf.c:4438
 #, c-format
 msgid "%*s[%4<PRIuMAX>] %s  <TRUNCATED>\n"
 msgstr "%*s[%4<PRIuMAX>] %s  <ОБРІЗАНО>\n"
 
-#: src/readelf.c:4387
+#: src/readelf.c:4495
 #, c-format
 msgid "%s %#<PRIx64> used with different address sizes"
 msgstr "%s %#<PRIx64> використано з різними розмірами адрес"
 
-#: src/readelf.c:4394
+#: src/readelf.c:4502
 #, c-format
 msgid "%s %#<PRIx64> used with different offset sizes"
 msgstr "%s %#<PRIx64> використано з різними розмірами зміщень"
 
-#: src/readelf.c:4401
+#: src/readelf.c:4509
 #, c-format
 msgid "%s %#<PRIx64> used with different base addresses"
 msgstr "%s %#<PRIx64> використано з різними базовими адресами"
 
-#: src/readelf.c:4490
+#: src/readelf.c:4598
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE IN REST OF SECTION>\n"
 msgstr " [%6tx]  <НЕВИКОРИСТОВУВАНІ ДАНІ У РЕШТІ РОЗДІЛУ>\n"
 
-#: src/readelf.c:4498
+#: src/readelf.c:4606
 #, c-format
 msgid " [%6tx]  <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
 msgstr " [%6tx]  <НЕВИКОРИСТОВУВАНІ ДАНІ> ... %<PRIu64> байтів ...\n"
 
-#: src/readelf.c:4524
+#: src/readelf.c:4632
 #, c-format
 msgid ""
 "\n"
@@ -5432,7 +5516,7 @@
 "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
 " [ Код]\n"
 
-#: src/readelf.c:4532
+#: src/readelf.c:4640
 #, c-format
 msgid ""
 "\n"
@@ -5441,30 +5525,30 @@
 "\n"
 "Розділ скорочень за зміщенням %<PRIu64>:\n"
 
-#: src/readelf.c:4545
+#: src/readelf.c:4653
 #, c-format
 msgid " *** error while reading abbreviation: %s\n"
 msgstr " *** помилка під час читання скорочення: %s\n"
 
-#: src/readelf.c:4561
+#: src/readelf.c:4669
 #, c-format
 msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
 msgstr " [%5u] зміщення: %<PRId64>, дочірній: %s, мітка: %s\n"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "yes"
 msgstr "так"
 
-#: src/readelf.c:4564
+#: src/readelf.c:4672
 msgid "no"
 msgstr "ні"
 
-#: src/readelf.c:4598 src/readelf.c:4671
+#: src/readelf.c:4706 src/readelf.c:4779
 #, c-format
 msgid "cannot get .debug_aranges content: %s"
 msgstr "не вдалося отримати дані get .debug_aranges: %s"
 
-#: src/readelf.c:4613
+#: src/readelf.c:4721
 #, c-format
 msgid ""
 "\n"
@@ -5482,12 +5566,12 @@
 "\n"
 "Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64> містить %zu записів:\n"
 
-#: src/readelf.c:4644
+#: src/readelf.c:4752
 #, c-format
 msgid " [%*zu] ???\n"
 msgstr " [%*zu] ???\n"
 
-#: src/readelf.c:4646
+#: src/readelf.c:4754
 #, c-format
 msgid ""
 " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5495,8 +5579,8 @@
 " [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, зміщення CU DIE: "
 "%6<PRId64>\n"
 
-#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360
-#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601
+#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468
+#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709
 #, c-format
 msgid ""
 "\n"
@@ -5505,7 +5589,7 @@
 "\n"
 "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
 
-#: src/readelf.c:4689 src/readelf.c:6386
+#: src/readelf.c:4797 src/readelf.c:6494
 #, c-format
 msgid ""
 "\n"
@@ -5514,12 +5598,12 @@
 "\n"
 "Таблиця за зміщенням %zu:\n"
 
-#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397
+#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505
 #, c-format
 msgid "invalid data in section [%zu] '%s'"
 msgstr "некоректні дані у розділі [%zu] «%s»"
 
-#: src/readelf.c:4709
+#: src/readelf.c:4817
 #, c-format
 msgid ""
 "\n"
@@ -5528,32 +5612,32 @@
 "\n"
 " Довжина:       %6<PRIu64>\n"
 
-#: src/readelf.c:4721
+#: src/readelf.c:4829
 #, c-format
 msgid " DWARF version: %6<PRIuFAST16>\n"
 msgstr " версія DWARF:  %6<PRIuFAST16>\n"
 
-#: src/readelf.c:4725
+#: src/readelf.c:4833
 #, c-format
 msgid "unsupported aranges version"
 msgstr "непідтримувана версія aranges"
 
-#: src/readelf.c:4736
+#: src/readelf.c:4844
 #, c-format
 msgid " CU offset:     %6<PRIx64>\n"
 msgstr " зміщення CU:     %6<PRIx64>\n"
 
-#: src/readelf.c:4742
+#: src/readelf.c:4850
 #, c-format
 msgid " Address size:  %6<PRIu64>\n"
 msgstr " Розмір адреси:  %6<PRIu64>\n"
 
-#: src/readelf.c:4746
+#: src/readelf.c:4854
 #, c-format
 msgid "unsupported address size"
 msgstr "непідтримуваний розмір адреси"
 
-#: src/readelf.c:4751
+#: src/readelf.c:4859
 #, c-format
 msgid ""
 " Segment size:  %6<PRIu64>\n"
@@ -5562,66 +5646,66 @@
 " Розмір сегмента:  %6<PRIu64>\n"
 "\n"
 
-#: src/readelf.c:4755
+#: src/readelf.c:4863
 #, c-format
 msgid "unsupported segment size"
 msgstr "непідтримуваний розмір сегмента"
 
-#: src/readelf.c:4795
+#: src/readelf.c:4903
 #, c-format
 msgid "   %s..%s (%<PRIx64>)\n"
 msgstr "   %s..%s (%<PRIx64>)\n"
 
-#: src/readelf.c:4798
+#: src/readelf.c:4906
 #, c-format
 msgid "   %s..%s\n"
 msgstr "   %s..%s\n"
 
-#: src/readelf.c:4807
+#: src/readelf.c:4915
 #, c-format
 msgid "   %zu padding bytes\n"
 msgstr "   %zu байтів доповнення\n"
 
-#: src/readelf.c:4825
+#: src/readelf.c:4933
 #, c-format
 msgid "cannot get .debug_ranges content: %s"
 msgstr "не вдалося отримати дані .debug_ranges: %s"
 
-#: src/readelf.c:4855 src/readelf.c:6919
+#: src/readelf.c:4963 src/readelf.c:7027
 #, c-format
 msgid " [%6tx]  <INVALID DATA>\n"
 msgstr " [%6tx]  <НЕКОРЕКТНІ ДАНІ>\n"
 
-#: src/readelf.c:4877 src/readelf.c:6941
+#: src/readelf.c:4985 src/readelf.c:7049
 #, c-format
 msgid " [%6tx]  base address %s\n"
 msgstr " [%6tx]  базова адреса %s\n"
 
-#: src/readelf.c:4884 src/readelf.c:6948
+#: src/readelf.c:4992 src/readelf.c:7056
 #, c-format
 msgid " [%6tx]  empty list\n"
 msgstr " [%6tx]  порожній список\n"
 
-#: src/readelf.c:4895
+#: src/readelf.c:5003
 #, c-format
 msgid " [%6tx]  %s..%s\n"
 msgstr " [%6tx]  %s..%s\n"
 
-#: src/readelf.c:4897
+#: src/readelf.c:5005
 #, c-format
 msgid "           %s..%s\n"
 msgstr "           %s..%s\n"
 
-#: src/readelf.c:5076
+#: src/readelf.c:5184
 msgid "         <INVALID DATA>\n"
 msgstr "         <НЕКОРЕКТНІ ДАНІ>\n"
 
-#: src/readelf.c:5385
+#: src/readelf.c:5493
 #, c-format
 msgid "cannot get ELF: %s"
 msgstr "не вдалося отримати ELF: %s"
 
-#: src/readelf.c:5402
+#: src/readelf.c:5510
 #, c-format
 msgid ""
 "\n"
@@ -5630,7 +5714,7 @@
 "\n"
 "Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#<PRIx64>:\n"
 
-#: src/readelf.c:5452
+#: src/readelf.c:5560
 #, c-format
 msgid ""
 "\n"
@@ -5639,50 +5723,50 @@
 "\n"
 " [%6tx] нульовий переривач\n"
 
-#: src/readelf.c:5545 src/readelf.c:5700
+#: src/readelf.c:5653 src/readelf.c:5808
 #, c-format
 msgid "invalid augmentation length"
 msgstr "некоректна довжина збільшення"
 
-#: src/readelf.c:5560
+#: src/readelf.c:5668
 msgid "FDE address encoding: "
 msgstr "Кодування адреси FDE: "
 
-#: src/readelf.c:5566
+#: src/readelf.c:5674
 msgid "LSDA pointer encoding: "
 msgstr "Кодування вказівника LSDA: "
 
-#: src/readelf.c:5677
+#: src/readelf.c:5785
 #, c-format
 msgid " (offset: %#<PRIx64>)"
 msgstr " (зміщення: %#<PRIx64>)"
 
-#: src/readelf.c:5684
+#: src/readelf.c:5792
 #, c-format
 msgid " (end offset: %#<PRIx64>)"
 msgstr " (зміщення від кінця: %#<PRIx64>)"
 
-#: src/readelf.c:5721
+#: src/readelf.c:5829
 #, c-format
 msgid "   %-26sLSDA pointer: %#<PRIx64>\n"
 msgstr "   %-26sвказівник LSDA: %#<PRIx64>\n"
 
-#: src/readelf.c:5776
+#: src/readelf.c:5884
 #, c-format
 msgid "cannot get attribute code: %s"
 msgstr "не вдалося отримати код атрибута: %s"
 
-#: src/readelf.c:5785
+#: src/readelf.c:5893
 #, c-format
 msgid "cannot get attribute form: %s"
 msgstr "не вдалося отримати форму атрибута: %s"
 
-#: src/readelf.c:5800
+#: src/readelf.c:5908
 #, c-format
 msgid "cannot get attribute value: %s"
 msgstr "не вдалося отримати значення атрибута: %s"
 
-#: src/readelf.c:6099
+#: src/readelf.c:6207
 #, c-format
 msgid ""
 "\n"
@@ -5693,7 +5777,7 @@
 "Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64>:\n"
 " [Зміщення]\n"
 
-#: src/readelf.c:6131
+#: src/readelf.c:6239
 #, c-format
 msgid ""
 " Type unit at offset %<PRIu64>:\n"
@@ -5706,7 +5790,7 @@
 "Зміщення: %<PRIu8>\n"
 " Підпис типу: %#<PRIx64>, Зміщення типу: %#<PRIx64>\n"
 
-#: src/readelf.c:6140
+#: src/readelf.c:6248
 #, c-format
 msgid ""
 " Compilation unit at offset %<PRIu64>:\n"
@@ -5717,33 +5801,33 @@
 " Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, "
 "Зміщення: %<PRIu8>\n"
 
-#: src/readelf.c:6165
+#: src/readelf.c:6273
 #, c-format
 msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
 msgstr "не вдалося отримати DIE за зміщенням %<PRIu64> у розділі «%s»: %s"
 
-#: src/readelf.c:6179
+#: src/readelf.c:6287
 #, c-format
 msgid "cannot get DIE offset: %s"
 msgstr "не вдалося отримати зміщення DIE: %s"
 
-#: src/readelf.c:6188
+#: src/readelf.c:6296
 #, c-format
 msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
 msgstr ""
 "не вдалося отримати мітку DIE за зміщенням %<PRIu64> у розділі «%s»: %s"
 
-#: src/readelf.c:6220
+#: src/readelf.c:6328
 #, c-format
 msgid "cannot get next DIE: %s\n"
 msgstr "не вдалося визначити наступний DIE: %s\n"
 
-#: src/readelf.c:6228
+#: src/readelf.c:6336
 #, c-format
 msgid "cannot get next DIE: %s"
 msgstr "не вдалося визначити наступний DIE: %s"
 
-#: src/readelf.c:6264
+#: src/readelf.c:6372
 #, c-format
 msgid ""
 "\n"
@@ -5754,12 +5838,12 @@
 "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
 "\n"
 
-#: src/readelf.c:6373
+#: src/readelf.c:6481
 #, c-format
 msgid "cannot get line data section data: %s"
 msgstr "не вдалося отримати дані розділу лінійних даних: %s"
 
-#: src/readelf.c:6443
+#: src/readelf.c:6551
 #, c-format
 msgid ""
 "\n"
@@ -5788,12 +5872,12 @@
 "\n"
 "Коди операцій:\n"
 
-#: src/readelf.c:6464
+#: src/readelf.c:6572
 #, c-format
 msgid "invalid data at offset %tu in section [%zu] '%s'"
 msgstr "некоректні дані зі зміщенням %tu у розділі [%zu] «%s»"
 
-#: src/readelf.c:6479
+#: src/readelf.c:6587
 #, c-format
 msgid "  [%*<PRIuFAST8>]  %hhu argument\n"
 msgid_plural "  [%*<PRIuFAST8>]  %hhu arguments\n"
@@ -5801,7 +5885,7 @@
 msgstr[1] "  [%*<PRIuFAST8>]  %hhu аргументи\n"
 msgstr[2] "  [%*<PRIuFAST8>]  %hhu аргументів\n"
 
-#: src/readelf.c:6487
+#: src/readelf.c:6595
 msgid ""
 "\n"
 "Directory table:"
@@ -5809,7 +5893,7 @@
 "\n"
 "Таблиця каталогу:"
 
-#: src/readelf.c:6503
+#: src/readelf.c:6611
 msgid ""
 "\n"
 "File name table:\n"
@@ -5819,7 +5903,7 @@
 "Таблиця назв файлів:\n"
 " Запис Кат   Час       Розмір    Назва"
 
-#: src/readelf.c:6538
+#: src/readelf.c:6646
 msgid ""
 "\n"
 "Line number statements:"
@@ -5827,120 +5911,120 @@
 "\n"
 "Оператори номерів рядків:"
 
-#: src/readelf.c:6589
+#: src/readelf.c:6697
 #, c-format
 msgid "invalid maximum operations per instruction is zero"
 msgstr "некоректну кількість операцій на інструкцію прирівняно до нуля"
 
-#: src/readelf.c:6625
+#: src/readelf.c:6733
 #, c-format
 msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
 msgstr ""
 " спеціальний код операції %u: адреса+%u = %s, індекс_оп = %u, рядок%+d = "
 "%zu\n"
 
-#: src/readelf.c:6630
+#: src/readelf.c:6738
 #, c-format
 msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
 msgstr " спеціальний код операції %u: адреса+%u = %s, рядок%+d = %zu\n"
 
-#: src/readelf.c:6650
+#: src/readelf.c:6758
 #, c-format
 msgid " extended opcode %u: "
 msgstr " розширений код операції %u: "
 
-#: src/readelf.c:6655
+#: src/readelf.c:6763
 msgid " end of sequence"
 msgstr " кінець послідовності"
 
-#: src/readelf.c:6674
+#: src/readelf.c:6782
 #, c-format
 msgid " set address to %s\n"
 msgstr " встановити адресу у значення %s\n"
 
-#: src/readelf.c:6701
+#: src/readelf.c:6809
 #, c-format
 msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
 msgstr ""
 " визначення нового файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, назва="
 "%s\n"
 
-#: src/readelf.c:6714
+#: src/readelf.c:6822
 #, c-format
 msgid " set discriminator to %u\n"
 msgstr " встановити розрізнення для %u\n"
 
-#: src/readelf.c:6719
+#: src/readelf.c:6827
 msgid " unknown opcode"
 msgstr " невідомий код операції"
 
-#: src/readelf.c:6731
+#: src/readelf.c:6839
 msgid " copy"
 msgstr " копія"
 
-#: src/readelf.c:6742
+#: src/readelf.c:6850
 #, c-format
 msgid " advance address by %u to %s, op_index to %u\n"
 msgstr " збільшення адреси на %u до %s, індекс_оп до %u\n"
 
-#: src/readelf.c:6746
+#: src/readelf.c:6854
 #, c-format
 msgid " advance address by %u to %s\n"
 msgstr " збільшення адреси на %u до %s\n"
 
-#: src/readelf.c:6757
+#: src/readelf.c:6865
 #, c-format
 msgid " advance line by constant %d to %<PRId64>\n"
 msgstr " просувати рядок на сталу %d до %<PRId64>\n"
 
-#: src/readelf.c:6765
+#: src/readelf.c:6873
 #, c-format
 msgid " set file to %<PRIu64>\n"
 msgstr " встановити файл у %<PRIu64>\n"
 
-#: src/readelf.c:6775
+#: src/readelf.c:6883
 #, c-format
 msgid " set column to %<PRIu64>\n"
 msgstr " встановити значення стовпчика %<PRIu64>\n"
 
-#: src/readelf.c:6782
+#: src/readelf.c:6890
 #, c-format
 msgid " set '%s' to %<PRIuFAST8>\n"
 msgstr " встановити «%s» у %<PRIuFAST8>\n"
 
-#: src/readelf.c:6788
+#: src/readelf.c:6896
 msgid " set basic block flag"
 msgstr " встановити прапорець базового блоку"
 
-#: src/readelf.c:6801
+#: src/readelf.c:6909
 #, c-format
 msgid " advance address by constant %u to %s, op_index to %u\n"
 msgstr " збільшити адресу на сталу величину %u до %s, індекс_оп до %u\n"
 
-#: src/readelf.c:6805
+#: src/readelf.c:6913
 #, c-format
 msgid " advance address by constant %u to %s\n"
 msgstr " збільшити адресу на сталу величину %u до %s\n"
 
-#: src/readelf.c:6823
+#: src/readelf.c:6931
 #, c-format
 msgid " advance address by fixed value %u to %s\n"
 msgstr " збільшити адресу на фіксовану величину %u до %s\n"
 
-#: src/readelf.c:6832
+#: src/readelf.c:6940
 msgid " set prologue end flag"
 msgstr " встановити прапорець кінця вступу"
 
-#: src/readelf.c:6837
+#: src/readelf.c:6945
 msgid " set epilogue begin flag"
 msgstr " встановити прапорець початку епілогу"
 
-#: src/readelf.c:6846
+#: src/readelf.c:6954
 #, c-format
 msgid " set isa to %u\n"
 msgstr " встановити isa у %u\n"
 
-#: src/readelf.c:6855
+#: src/readelf.c:6963
 #, c-format
 msgid " unknown opcode with %<PRIu8> parameter:"
 msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5948,102 +6032,102 @@
 msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
 msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
 
-#: src/readelf.c:6887
+#: src/readelf.c:6995
 #, c-format
 msgid "cannot get .debug_loc content: %s"
 msgstr "не вдалося отримати вміст .debug_loc: %s"
 
-#: src/readelf.c:6962
+#: src/readelf.c:7070
 #, c-format
 msgid " [%6tx]  %s..%s"
 msgstr " [%6tx]  %s..%s"
 
-#: src/readelf.c:6964
+#: src/readelf.c:7072
 #, c-format
 msgid "           %s..%s"
 msgstr "           %s..%s"
 
-#: src/readelf.c:6971 src/readelf.c:7859
+#: src/readelf.c:7079 src/readelf.c:7967
 msgid "   <INVALID DATA>\n"
 msgstr "   <НЕКОРЕКТНІ ДАНІ>\n"
 
-#: src/readelf.c:7023 src/readelf.c:7185
+#: src/readelf.c:7131 src/readelf.c:7293
 #, c-format
 msgid "cannot get macro information section data: %s"
 msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s"
 
-#: src/readelf.c:7103
+#: src/readelf.c:7211
 #, c-format
 msgid "%*s*** non-terminated string at end of section"
 msgstr "%*s*** незавершений рядок наприкінці розділу"
 
-#: src/readelf.c:7126
+#: src/readelf.c:7234
 #, c-format
 msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
 msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу"
 
-#: src/readelf.c:7226
+#: src/readelf.c:7334
 #, c-format
 msgid " Offset:             0x%<PRIx64>\n"
 msgstr " Зміщення:           0x%<PRIx64>\n"
 
-#: src/readelf.c:7238
+#: src/readelf.c:7346
 #, c-format
 msgid " Version:            %<PRIu16>\n"
 msgstr " Версія:             %<PRIu16>\n"
 
-#: src/readelf.c:7244 src/readelf.c:7978
+#: src/readelf.c:7352 src/readelf.c:8086
 #, c-format
 msgid "  unknown version, cannot parse section\n"
 msgstr "  невідома версія, не вдалося обробити розділ\n"
 
-#: src/readelf.c:7251
+#: src/readelf.c:7359
 #, c-format
 msgid " Flag:               0x%<PRIx8>\n"
 msgstr " Прапорець:          0x%<PRIx8>\n"
 
-#: src/readelf.c:7254
+#: src/readelf.c:7362
 #, c-format
 msgid " Offset length:      %<PRIu8>\n"
 msgstr " Довжина зміщення:   %<PRIu8>\n"
 
-#: src/readelf.c:7262
+#: src/readelf.c:7370
 #, c-format
 msgid " .debug_line offset: 0x%<PRIx64>\n"
 msgstr " зміщення .debug_line: 0x%<PRIx64>\n"
 
-#: src/readelf.c:7275
+#: src/readelf.c:7383
 #, c-format
 msgid "  extension opcode table, %<PRIu8> items:\n"
 msgstr "  таблиця кодів операцій розширень, записів — %<PRIu8>:\n"
 
-#: src/readelf.c:7282
+#: src/readelf.c:7390
 #, c-format
 msgid "    [%<PRIx8>]"
 msgstr "    [%<PRIx8>]"
 
-#: src/readelf.c:7294
+#: src/readelf.c:7402
 #, c-format
 msgid " %<PRIu8> arguments:"
 msgstr " %<PRIu8> аргументів:"
 
-#: src/readelf.c:7322
+#: src/readelf.c:7430
 #, c-format
 msgid " no arguments."
 msgstr " немає аргументів."
 
-#: src/readelf.c:7559
+#: src/readelf.c:7667
 #, c-format
 msgid "vendor opcode not verified?"
 msgstr "код операції постачальника не перевірено?"
 
-#: src/readelf.c:7587
+#: src/readelf.c:7695
 #, c-format
 msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
 msgstr ""
 " [%5d] зміщення DIE: %6<PRId64>, зміщення CU DIE: %6<PRId64>, назва: %s\n"
 
-#: src/readelf.c:7628
+#: src/readelf.c:7736
 #, c-format
 msgid ""
 "\n"
@@ -6054,12 +6138,12 @@
 "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
 " %*s  Рядок\n"
 
-#: src/readelf.c:7642
+#: src/readelf.c:7750
 #, c-format
 msgid " *** error while reading strings: %s\n"
 msgstr " *** помилка під час читання рядків: %s\n"
 
-#: src/readelf.c:7662
+#: src/readelf.c:7770
 #, c-format
 msgid ""
 "\n"
@@ -6068,7 +6152,7 @@
 "\n"
 "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
 
-#: src/readelf.c:7764
+#: src/readelf.c:7872
 #, c-format
 msgid ""
 "\n"
@@ -6077,22 +6161,22 @@
 "\n"
 "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
 
-#: src/readelf.c:7787
+#: src/readelf.c:7895
 #, c-format
 msgid " LPStart encoding:    %#x "
 msgstr " Кодування LPStart:   %#x "
 
-#: src/readelf.c:7799
+#: src/readelf.c:7907
 #, c-format
 msgid " TType encoding:      %#x "
 msgstr " Кодування TType:     %#x "
 
-#: src/readelf.c:7814
+#: src/readelf.c:7922
 #, c-format
 msgid " Call site encoding:  %#x "
 msgstr " Кодування місця виклику:%#x "
 
-#: src/readelf.c:7827
+#: src/readelf.c:7935
 msgid ""
 "\n"
 " Call site table:"
@@ -6100,7 +6184,7 @@
 "\n"
 " Таблиця місця виклику:"
 
-#: src/readelf.c:7841
+#: src/readelf.c:7949
 #, c-format
 msgid ""
 " [%4u] Call site start:   %#<PRIx64>\n"
@@ -6113,12 +6197,12 @@
 "        Місце застосування:   %#<PRIx64>\n"
 "        Дія:                  %u\n"
 
-#: src/readelf.c:7914
+#: src/readelf.c:8022
 #, c-format
 msgid "invalid TType encoding"
 msgstr "некоректне кодування TType"
 
-#: src/readelf.c:7940
+#: src/readelf.c:8048
 #, c-format
 msgid ""
 "\n"
@@ -6127,37 +6211,37 @@
 "\n"
 "Розділ GDB [%2zu] «%s» за зміщенням %#<PRIx64> містить %<PRId64> байтів:\n"
 
-#: src/readelf.c:7969
+#: src/readelf.c:8077
 #, c-format
 msgid " Version:         %<PRId32>\n"
 msgstr " Версія:          %<PRId32>\n"
 
-#: src/readelf.c:7987
+#: src/readelf.c:8095
 #, c-format
 msgid " CU offset:       %#<PRIx32>\n"
 msgstr " зміщення CU:     %#<PRIx32>\n"
 
-#: src/readelf.c:7994
+#: src/readelf.c:8102
 #, c-format
 msgid " TU offset:       %#<PRIx32>\n"
 msgstr " зміщення TU:      %#<PRIx32>\n"
 
-#: src/readelf.c:8001
+#: src/readelf.c:8109
 #, c-format
 msgid " address offset:  %#<PRIx32>\n"
 msgstr " зміщення адреси: %#<PRIx32>\n"
 
-#: src/readelf.c:8008
+#: src/readelf.c:8116
 #, c-format
 msgid " symbol offset:   %#<PRIx32>\n"
 msgstr " зміщення символу: %#<PRIx32>\n"
 
-#: src/readelf.c:8015
+#: src/readelf.c:8123
 #, c-format
 msgid " constant offset: %#<PRIx32>\n"
 msgstr " стале зміщення:  %#<PRIx32>\n"
 
-#: src/readelf.c:8029
+#: src/readelf.c:8137
 #, c-format
 msgid ""
 "\n"
@@ -6166,7 +6250,7 @@
 "\n"
 " Список CU зі зміщенням %#<PRIx32> містить %zu записів:\n"
 
-#: src/readelf.c:8054
+#: src/readelf.c:8162
 #, c-format
 msgid ""
 "\n"
@@ -6175,7 +6259,7 @@
 "\n"
 " Список TU зі зміщенням %#<PRIx32> містить %zu записів:\n"
 
-#: src/readelf.c:8083
+#: src/readelf.c:8191
 #, c-format
 msgid ""
 "\n"
@@ -6184,7 +6268,7 @@
 "\n"
 " Список адрес зі зміщенням %#<PRIx32> містить %zu записів:\n"
 
-#: src/readelf.c:8116
+#: src/readelf.c:8224
 #, c-format
 msgid ""
 "\n"
@@ -6193,17 +6277,17 @@
 "\n"
 " Таблиця символів за зміщенням %#<PRIx32> містить %zu позицій:\n"
 
-#: src/readelf.c:8203
+#: src/readelf.c:8311
 #, c-format
 msgid "cannot get debug context descriptor: %s"
 msgstr "не вдалося отримати дескриптор контексту зневаджування: %s"
 
-#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152
+#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258
 #, c-format
 msgid "cannot convert core note data: %s"
 msgstr "не вдалося перетворити дані запису ядра: %s"
 
-#: src/readelf.c:8724
+#: src/readelf.c:8830
 #, c-format
 msgid ""
 "\n"
@@ -6212,21 +6296,21 @@
 "\n"
 "%*s... <повторюється %u разів> ..."
 
-#: src/readelf.c:9231
+#: src/readelf.c:9337
 msgid "  Owner          Data size  Type\n"
 msgstr "  Власник        Розм. даних Тип\n"
 
-#: src/readelf.c:9249
+#: src/readelf.c:9355
 #, c-format
 msgid "  %-13.*s  %9<PRId32>  %s\n"
 msgstr "  %-13.*s  %9<PRId32>  %s\n"
 
-#: src/readelf.c:9299
+#: src/readelf.c:9405
 #, c-format
 msgid "cannot get content of note section: %s"
 msgstr "не вдалося отримати вміст розділу записів: %s"
 
-#: src/readelf.c:9326
+#: src/readelf.c:9432
 #, c-format
 msgid ""
 "\n"
@@ -6236,7 +6320,7 @@
 "Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням "
 "%#0<PRIx64>:\n"
 
-#: src/readelf.c:9349
+#: src/readelf.c:9455
 #, c-format
 msgid ""
 "\n"
@@ -6245,7 +6329,7 @@
 "\n"
 "Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
 
-#: src/readelf.c:9395
+#: src/readelf.c:9501
 #, c-format
 msgid ""
 "\n"
@@ -6254,12 +6338,12 @@
 "\n"
 "У розділі [%zu] «%s» не міститься даних для створення дампу.\n"
 
-#: src/readelf.c:9401 src/readelf.c:9424
+#: src/readelf.c:9518 src/readelf.c:9559
 #, c-format
 msgid "cannot get data for section [%zu] '%s': %s"
 msgstr "не вдалося отримати дані для розділу [%zu] «%s»: %s"
 
-#: src/readelf.c:9405
+#: src/readelf.c:9523
 #, c-format
 msgid ""
 "\n"
@@ -6268,7 +6352,17 @@
 "\n"
 "Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
 
-#: src/readelf.c:9418
+#: src/readelf.c:9528
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Hex dump of section [%zu] '%s', %<PRIu64> bytes (%zd uncompressed) at offset "
+"%#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
+
+#: src/readelf.c:9542
 #, c-format
 msgid ""
 "\n"
@@ -6277,7 +6371,7 @@
 "\n"
 "У розділі [%zu] «%s» не міститься рядків для створення дампу.\n"
 
-#: src/readelf.c:9428
+#: src/readelf.c:9564
 #, c-format
 msgid ""
 "\n"
@@ -6286,7 +6380,17 @@
 "\n"
 "Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
 
-#: src/readelf.c:9476
+#: src/readelf.c:9569
+#, fuzzy, c-format
+msgid ""
+"\n"
+"String section [%zu] '%s' contains %<PRIu64> bytes (%zd uncompressed) at "
+"offset %#0<PRIx64>:\n"
+msgstr ""
+"\n"
+"Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
+
+#: src/readelf.c:9618
 #, c-format
 msgid ""
 "\n"
@@ -6295,7 +6399,7 @@
 "\n"
 "розділу [%lu] не існує"
 
-#: src/readelf.c:9505
+#: src/readelf.c:9647
 #, c-format
 msgid ""
 "\n"
@@ -6304,12 +6408,12 @@
 "\n"
 "розділу «%s» не існує"
 
-#: src/readelf.c:9562
+#: src/readelf.c:9704
 #, c-format
 msgid "cannot get symbol index of archive '%s': %s"
 msgstr "не вдалося отримати покажчик символів архіву «%s»: %s"
 
-#: src/readelf.c:9565
+#: src/readelf.c:9707
 #, c-format
 msgid ""
 "\n"
@@ -6318,7 +6422,7 @@
 "\n"
 "У архіві «%s» немає покажчика символів\n"
 
-#: src/readelf.c:9569
+#: src/readelf.c:9711
 #, c-format
 msgid ""
 "\n"
@@ -6327,12 +6431,12 @@
 "\n"
 "Покажчик архіву «%s» містить %zu записів:\n"
 
-#: src/readelf.c:9587
+#: src/readelf.c:9729
 #, c-format
 msgid "cannot extract member at offset %zu in '%s': %s"
 msgstr "не вдалося видобути елемент за зміщенням %zu у «%s»: %s"
 
-#: src/readelf.c:9592
+#: src/readelf.c:9734
 #, c-format
 msgid "Archive member '%s' contains:\n"
 msgstr "Елемент архіву «%s» містить:\n"
@@ -6886,12 +6990,12 @@
 msgid "cannot copy ELF header: %s"
 msgstr "не вдалося скопіювати заголовок ELF: %s"
 
-#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947
+#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982
 #, c-format
 msgid "cannot get number of program headers: %s"
 msgstr "не вдалося отримати кількість заголовків програми: %s"
 
-#: src/unstrip.c:266 src/unstrip.c:1907
+#: src/unstrip.c:266 src/unstrip.c:1943
 #, c-format
 msgid "cannot create program headers: %s"
 msgstr "не вдалося створити заголовки програми: %s"
@@ -6906,12 +7010,12 @@
 msgid "cannot copy section header: %s"
 msgstr "не вдалося скопіювати заголовок розділу: %s"
 
-#: src/unstrip.c:285 src/unstrip.c:1541
+#: src/unstrip.c:285 src/unstrip.c:1576
 #, c-format
 msgid "cannot get section data: %s"
 msgstr "не вдалося отримати дані розділу: %s"
 
-#: src/unstrip.c:287 src/unstrip.c:1543
+#: src/unstrip.c:287 src/unstrip.c:1578
 #, c-format
 msgid "cannot copy section data: %s"
 msgstr "не вдалося скопіювати дані розділу: %s"
@@ -6921,138 +7025,138 @@
 msgid "cannot create directory '%s'"
 msgstr "не вдалося створити каталог «%s»"
 
-#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575
+#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610
 #, c-format
 msgid "cannot get symbol table entry: %s"
 msgstr "не вдалося отримати запис таблиці символів: %s"
 
-#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618
-#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793
+#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653
+#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829
 #, c-format
 msgid "cannot update symbol table: %s"
 msgstr "не вдалося оновити таблицю символів: %s"
 
-#: src/unstrip.c:377
+#: src/unstrip.c:409
 #, c-format
 msgid "cannot update section header: %s"
 msgstr "не вдалося оновити заголовок розділу: %s"
 
-#: src/unstrip.c:416 src/unstrip.c:427
+#: src/unstrip.c:448 src/unstrip.c:459
 #, c-format
 msgid "cannot update relocation: %s"
 msgstr "не вдалося оновити пересування: %s"
 
-#: src/unstrip.c:514
+#: src/unstrip.c:547
 #, c-format
 msgid "cannot get symbol version: %s"
 msgstr "не вдалося отримати версію символу: %s"
 
-#: src/unstrip.c:526
+#: src/unstrip.c:560
 #, c-format
 msgid "unexpected section type in [%zu] with sh_link to symtab"
 msgstr "неочікуваний тип розділу у [%zu] з посиланням sh_link на symtab"
 
-#: src/unstrip.c:774
+#: src/unstrip.c:809
 #, c-format
 msgid "invalid string offset in symbol [%zu]"
 msgstr "некоректне зміщення рядка у символі [%zu]"
 
-#: src/unstrip.c:932 src/unstrip.c:1278
+#: src/unstrip.c:967 src/unstrip.c:1313
 #, c-format
 msgid "cannot read section [%zu] name: %s"
 msgstr "не вдалося прочитати назву розділу [%zu]: %s"
 
-#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027
+#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062
 #, c-format
 msgid "cannot read '.gnu.prelink_undo' section: %s"
 msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s"
 
-#: src/unstrip.c:1013
+#: src/unstrip.c:1048
 #, c-format
 msgid "invalid contents in '%s' section"
 msgstr "некоректний вміст розділу «%s»"
 
-#: src/unstrip.c:1019
+#: src/unstrip.c:1054
 #, c-format
 msgid "overflow with shnum = %zu in '%s' section"
 msgstr ""
 
-#: src/unstrip.c:1073 src/unstrip.c:1398
+#: src/unstrip.c:1108 src/unstrip.c:1433
 #, c-format
 msgid "cannot find matching section for [%zu] '%s'"
 msgstr "не вдалося знайти відповідний розділ для [%zu] «%s»"
 
-#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731
+#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766
 #, c-format
 msgid "cannot add section name to string table: %s"
 msgstr "не вдалося додати назву розділу до таблиці рядків: %s"
 
-#: src/unstrip.c:1222
+#: src/unstrip.c:1257
 #, c-format
 msgid "cannot update section header string table data: %s"
 msgstr "не вдалося оновити дані заголовка розділу у таблиці рядків: %s"
 
-#: src/unstrip.c:1249 src/unstrip.c:1253
+#: src/unstrip.c:1284 src/unstrip.c:1288
 #, c-format
 msgid "cannot get section header string table section index: %s"
 msgstr ""
 "не вдалося визначити індекс розділу заголовка розділу у таблиці рядків: %s"
 
-#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494
+#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529
 #, c-format
 msgid "cannot get section count: %s"
 msgstr "не вдалося отримати кількість розділів: %s"
 
-#: src/unstrip.c:1264
+#: src/unstrip.c:1299
 #, c-format
 msgid "more sections in stripped file than debug file -- arguments reversed?"
 msgstr ""
 "у очищеному файлі більше розділів ніж у файлі з даними для зневаджування — "
 "помилковий порядок параметрів?"
 
-#: src/unstrip.c:1323 src/unstrip.c:1413
+#: src/unstrip.c:1358 src/unstrip.c:1448
 #, c-format
 msgid "cannot read section header string table: %s"
 msgstr "не вдалося прочитати таблицю рядків заголовка розділу: %s"
 
-#: src/unstrip.c:1473
+#: src/unstrip.c:1508
 #, c-format
 msgid "cannot add new section: %s"
 msgstr "не вдалося додати новий розділ: %s"
 
-#: src/unstrip.c:1583
+#: src/unstrip.c:1618
 #, c-format
 msgid "symbol [%zu] has invalid section index"
 msgstr "символ [%zu] має некоректний індекс розділу"
 
-#: src/unstrip.c:1864
+#: src/unstrip.c:1900
 #, c-format
 msgid "cannot read section data: %s"
 msgstr "не вдалося прочитати дані розділу: %s"
 
-#: src/unstrip.c:1885
+#: src/unstrip.c:1921
 #, c-format
 msgid "cannot get ELF header: %s"
 msgstr "не вдалося отримати заголовок ELF: %s"
 
-#: src/unstrip.c:1917
+#: src/unstrip.c:1953
 #, c-format
 msgid "cannot update program header: %s"
 msgstr "не вдалося оновити заголовок програми: %s"
 
-#: src/unstrip.c:1922 src/unstrip.c:2005
+#: src/unstrip.c:1958 src/unstrip.c:2040
 #, c-format
 msgid "cannot write output file: %s"
 msgstr "не вдалося записати файл виведених даних: %s"
 
-#: src/unstrip.c:1974
+#: src/unstrip.c:2009
 #, c-format
 msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
 msgstr ""
 "Дані DWARF не скориговано відповідно до відхилення перед компонуванням; "
 "спробуйте виправити це командою prelink -u"
 
-#: src/unstrip.c:1977
+#: src/unstrip.c:2012
 #, c-format
 msgid ""
 "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -7060,76 +7164,76 @@
 "Дані DWARF у «%s» не скориговано відповідно до відхилення перед "
 "компонуванням; спробуйте виправити це командою prelink -u"
 
-#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145
+#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180
 #, c-format
 msgid "cannot create ELF descriptor: %s"
 msgstr "не вдалося створити дескриптор ELF: %s"
 
-#: src/unstrip.c:2038
+#: src/unstrip.c:2073
 msgid "WARNING: "
 msgstr "УВАГА: "
 
-#: src/unstrip.c:2040
+#: src/unstrip.c:2075
 msgid ", use --force"
 msgstr ", скористайтеся --force"
 
-#: src/unstrip.c:2063
+#: src/unstrip.c:2098
 msgid "ELF header identification (e_ident) different"
 msgstr "Різні ідентифікатори заголовків ELF (e_ident)"
 
-#: src/unstrip.c:2066
+#: src/unstrip.c:2101
 msgid "ELF header type (e_type) different"
 msgstr "Різні типи заголовків ELF (e_type)"
 
-#: src/unstrip.c:2069
+#: src/unstrip.c:2104
 msgid "ELF header machine type (e_machine) different"
 msgstr "Різні типи архітектур заголовків ELF (e_machine)"
 
-#: src/unstrip.c:2072
+#: src/unstrip.c:2107
 msgid "stripped program header (e_phnum) smaller than unstripped"
 msgstr "очищений заголовок програми (e_phnum) є меншим за неочищений"
 
-#: src/unstrip.c:2102
+#: src/unstrip.c:2137
 #, c-format
 msgid "cannot find stripped file for module '%s': %s"
 msgstr "не вдалося знайти очищений файл для модуля «%s»: %s"
 
-#: src/unstrip.c:2106
+#: src/unstrip.c:2141
 #, c-format
 msgid "cannot open stripped file '%s' for module '%s': %s"
 msgstr "не вдалося відкрити очищений файл «%s» для модуля «%s»: %s"
 
-#: src/unstrip.c:2121
+#: src/unstrip.c:2156
 #, c-format
 msgid "cannot find debug file for module '%s': %s"
 msgstr "не вдалося знайти файл діагностичних даних для модуля «%s»: %s"
 
-#: src/unstrip.c:2125
+#: src/unstrip.c:2160
 #, c-format
 msgid "cannot open debug file '%s' for module '%s': %s"
 msgstr "не вдалося відкрити файл діагностичних даних «%s» для модуля «%s»: %s"
 
-#: src/unstrip.c:2138
+#: src/unstrip.c:2173
 #, c-format
 msgid "module '%s' file '%s' is not stripped"
 msgstr "у модулі «%s» файл «%s» не очищено strip"
 
-#: src/unstrip.c:2169
+#: src/unstrip.c:2204
 #, c-format
 msgid "cannot cache section addresses for module '%s': %s"
 msgstr "не вдалося кешувати адреси розділів для модуля «%s»: %s"
 
-#: src/unstrip.c:2302
+#: src/unstrip.c:2337
 #, c-format
 msgid "no matching modules found"
 msgstr "відповідних модулів не виявлено"
 
-#: src/unstrip.c:2311
+#: src/unstrip.c:2346
 #, c-format
 msgid "matched more than one module"
 msgstr "встановлено відповідність декількох модулів"
 
-#: src/unstrip.c:2355
+#: src/unstrip.c:2390
 msgid ""
 "STRIPPED-FILE DEBUG-FILE\n"
 "[MODULE...]"
@@ -7137,7 +7241,7 @@
 "ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n"
 "[МОДУЛЬ...]"
 
-#: src/unstrip.c:2356
+#: src/unstrip.c:2391
 msgid ""
 "Combine stripped files with separate symbols and debug information.\vThe "
 "first form puts the result in DEBUG-FILE if -o was not given.\n"
diff --git a/src/ChangeLog b/src/ChangeLog
index b5b5e4a..707c271 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,52 @@
+2016-01-13  Mark Wielaard  <mjw@redhat.com>
+
+	* elflint.c (check_elf_header): Recognize ELFOSABI_FREEBSD.
+
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* elfcompress.c (compress_section): Use %zu to print size_t.
+	* readelf.c (print_shdr): Use %zx to print size_t.
+
+2015-12-16  Mark Wielaard  <mjw@redhat.com>
+
+	* elfcompress.c: New file.
+	* Makefile.am (bin_PROGRAMS): Add elfcompress.
+	(elfcompress_LDADD): New variable.
+
+2015-12-18  Mark Wielaard  <mjw@redhat.com>
+
+	* elflint.c (section_flags_string): Add NEWFLAG COMPRESSED.
+	(check_sections): SHF_COMPRESSED can be on any special section.
+	SHF_COMPRESSED is a valid section flag. SHF_COMPRESSED cannot
+	be used together with SHF_ALLOC or with SHT_NOBITS. Should have
+	a valid Chdr.
+
+2015-10-20  Mark Wielaard  <mjw@redhat.com>
+
+	* readelf.c (options): Expand -z help text.
+	(dump_data_section): Check whether we need and can decompress section
+	data and call elf_rawzdata if so,
+	(print_string_section): Likewise.
+	(elf_contains_chdrs): New function.
+	(process_elf_file): Rename print_unrelocated to print_unchanged,
+	use elf_contains_chdrs.
+	(print_scngrp): Check whether section is compressed before use.
+	(print_symtab): Likewise.
+	(handle_hash): Likewise.
+
+2015-10-16  Mark Wielaard  <mjw@redhat.com>
+
+	* readelf.c (argp_option): Describe --decompress,-z.
+	(print_decompress): New bool.
+	(parse_opt): Handle -z.
+	(elf_ch_type_name): New function.
+	(print_shdr): Print section compress information.
+
+2015-12-31  Mark Wielaard  <mjw@redhat.com>
+
+	* elflint.c (check_symtab): Add _edata and _end (plus extra underscore
+	variants) to to the list of possibly dangling symbols.
+
 2015-12-02  Mark Wielaard  <mjw@redhat.com>
 
 	* nm.c (process_file): Accept fd and pass it on.
diff --git a/src/Makefile.am b/src/Makefile.am
index e2c494c..a39df27 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,7 +35,7 @@
 base_cpu = @base_cpu@
 
 bin_PROGRAMS = readelf nm size strip ld elflint findtextrel addr2line \
-	       elfcmp objdump ranlib strings ar unstrip stack
+	       elfcmp objdump ranlib strings ar unstrip stack elfcompress
 
 
 ld_dsos = libld_elf_i386_pic.a
@@ -125,6 +125,7 @@
 ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
 unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
 stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl $(demanglelib)
+elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
 
 ldlex.o: ldscript.c
 ldlex_no_Werror = yes
diff --git a/src/elfcompress.c b/src/elfcompress.c
new file mode 100644
index 0000000..23939db
--- /dev/null
+++ b/src/elfcompress.c
@@ -0,0 +1,1321 @@
+/* Compress or decompress an ELF file.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+#include <assert.h>
+#include <argp.h>
+#include <error.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <locale.h>
+#include <fcntl.h>
+#include <fnmatch.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include ELFUTILS_HEADER(elf)
+#include ELFUTILS_HEADER(ebl)
+#include <gelf.h>
+#include "system.h"
+
+/* Name and version of program.  */
+static void print_version (FILE *stream, struct argp_state *state);
+ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
+
+/* Bug report address.  */
+ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
+
+static int verbose = 0; /* < 0, no warnings, > 0 extra verbosity.  */
+static bool force = false;
+static bool permissive = false;
+static const char *foutput = NULL;
+
+#define T_UNSET 0
+#define T_DECOMPRESS 1    /* none */
+#define T_COMPRESS_ZLIB 2 /* zlib */
+#define T_COMPRESS_GNU  3 /* zlib-gnu */
+static int type = T_UNSET;
+
+static void
+print_version (FILE *stream, struct argp_state *state __attribute__ ((unused)))
+{
+  fprintf (stream, "elfcompress (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
+}
+
+struct section_pattern
+{
+  char *pattern;
+  struct section_pattern *next;
+};
+
+static struct section_pattern *patterns = NULL;
+
+static void
+add_pattern (const char *pattern)
+{
+  struct section_pattern *p = xmalloc (sizeof *p);
+  p->pattern = xstrdup (pattern);
+  p->next = patterns;
+  patterns = p;
+}
+
+static void
+free_patterns (void)
+{
+  struct section_pattern *pattern = patterns;
+  while (pattern != NULL)
+    {
+      struct section_pattern *p = pattern;
+      pattern = p->next;
+      free (p->pattern);
+      free (p);
+    }
+}
+
+static error_t
+parse_opt (int key, char *arg __attribute__ ((unused)),
+	   struct argp_state *state __attribute__ ((unused)))
+{
+  switch (key)
+    {
+    case 'v':
+      verbose++;
+      break;
+
+    case 'q':
+      verbose--;
+
+    case 'f':
+      force = true;
+      break;
+
+    case 'p':
+      permissive = true;
+      break;
+
+    case 'n':
+      add_pattern (arg);
+      break;
+
+    case 'o':
+      if (foutput != NULL)
+	argp_error (state, N_("-o option specified twice"));
+      else
+	foutput = arg;
+      break;
+
+    case 't':
+      if (type != T_UNSET)
+	argp_error (state, N_("-t option specified twice"));
+
+      if (strcmp ("none", arg) == 0)
+	type = T_DECOMPRESS;
+      else if (strcmp ("zlib", arg) == 0 || strcmp ("zlib-gabi", arg) == 0)
+	type = T_COMPRESS_ZLIB;
+      else if (strcmp ("zlib-gnu", arg) == 0 || strcmp ("gnu", arg) == 0)
+	type = T_COMPRESS_GNU;
+      else
+	argp_error (state, N_("unknown compression type '%s'"), arg);
+      break;
+
+    case ARGP_KEY_SUCCESS:
+      if (type == T_UNSET)
+	type = T_COMPRESS_ZLIB;
+      if (patterns == NULL)
+	add_pattern (".?(z)debug*");
+      break;
+
+    case ARGP_KEY_NO_ARGS:
+      /* We need at least one input file.  */
+      argp_error (state, N_("No input file given"));
+      break;
+
+    case ARGP_KEY_ARGS:
+      if (foutput != NULL && state->argc - state->next > 1)
+	argp_error (state,
+		    N_("Only one input file allowed together with '-o'"));
+      /* We only use this for checking the number of arguments, we don't
+	 actually want to consume them, so fallthrough.  */
+    default:
+      return ARGP_ERR_UNKNOWN;
+    }
+  return 0;
+}
+
+static bool
+section_name_matches (const char *name)
+{
+  struct section_pattern *pattern = patterns;
+  while (pattern != NULL)
+    {
+      if (fnmatch (pattern->pattern, name, FNM_EXTMATCH) == 0)
+	return true;
+      pattern = pattern->next;
+    }
+  return false;
+}
+
+static int
+setshdrstrndx (Elf *elf, GElf_Ehdr *ehdr, size_t ndx)
+{
+  if (ndx < SHN_LORESERVE)
+    ehdr->e_shstrndx = ndx;
+  else
+    {
+      ehdr->e_shstrndx = SHN_XINDEX;
+      Elf_Scn *zscn = elf_getscn (elf, 0);
+      GElf_Shdr zshdr_mem;
+      GElf_Shdr *zshdr = gelf_getshdr (zscn, &zshdr_mem);
+      if (zshdr == NULL)
+	return -1;
+      zshdr->sh_link = ndx;
+      if (gelf_update_shdr (zscn, zshdr) == 0)
+	return -1;
+    }
+
+  if (gelf_update_ehdr (elf, ehdr) == 0)
+    return -1;
+
+  return 0;
+}
+
+static int
+compress_section (Elf_Scn *scn, size_t orig_size, const char *name,
+		  const char *newname, size_t ndx,
+		  bool gnu, bool compress, bool report_verbose)
+{
+  int res;
+  unsigned int flags = compress && force ? ELF_CHF_FORCE : 0;
+  if (gnu)
+    res = elf_compress_gnu (scn, compress ? 1 : 0, flags);
+  else
+    res = elf_compress (scn, compress ? ELFCOMPRESS_ZLIB : 0, flags);
+
+  if (res < 0)
+    error (0, 0, "Couldn't decompress section [%zd] %s: %s",
+	   ndx, name, elf_errmsg (-1));
+  else
+    {
+      if (compress && res == 0)
+	{
+	  if (verbose >= 0)
+	    printf ("[%zd] %s NOT compressed, wouldn't be smaller\n",
+		    ndx, name);
+	}
+
+      if (report_verbose && res > 0)
+	{
+	  printf ("[%zd] %s %s", ndx, name,
+		  compress ? "compressed" : "decompressed");
+	  if (newname != NULL)
+	    printf (" -> %s", newname);
+
+	  /* Reload shdr, it has changed.  */
+	  GElf_Shdr shdr_mem;
+	  GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+	  if (shdr == NULL)
+	    {
+	      error (0, 0, "Couldn't get shdr for section [%zd]", ndx);
+	      return -1;
+	    }
+	  float new = shdr->sh_size;
+	  float orig = orig_size ?: 1;
+	  printf (" (%zu => %" PRIu64 " %.2f%%)\n",
+		  orig_size, shdr->sh_size, (new / orig) * 100);
+	}
+    }
+
+  return res;
+}
+
+static int
+process_file (const char *fname)
+{
+  if (verbose > 0)
+    printf ("processing: %s\n", fname);
+
+  /* The input ELF.  */
+  int fd = -1;
+  Elf *elf = NULL;
+
+  /* The output ELF.  */
+  char *fnew = NULL;
+  int fdnew = -1;
+  Elf *elfnew = NULL;
+
+  /* Buffer for (one) new section name if necessary.  */
+  char *snamebuf = NULL;
+
+  /* String table (and symbol table), if section names need adjusting.  */
+  struct Ebl_Strtab *names = NULL;
+  struct Ebl_Strent **scnstrents = NULL;
+  struct Ebl_Strent **symstrents = NULL;
+  char **scnnames = NULL;
+
+  /* Section data from names.  */
+  void *namesbuf = NULL;
+
+  /* Which sections match and need to be (un)compressed.  */
+  unsigned int *sections = NULL;
+
+  /* How many sections are we talking about?  */
+  size_t shnum = 0;
+
+#define WORD_BITS (8U * sizeof (unsigned int))
+  void set_section (size_t ndx)
+  {
+    sections[ndx / WORD_BITS] |= (1U << (ndx % WORD_BITS));
+  }
+
+  bool get_section (size_t ndx)
+  {
+    return (sections[ndx / WORD_BITS] & (1U << (ndx % WORD_BITS))) != 0;
+  }
+
+  int cleanup (int res)
+  {
+    elf_end (elf);
+    close (fd);
+
+    elf_end (elfnew);
+    close (fdnew);
+
+    if (fnew != NULL)
+      {
+	unlink (fnew);
+	free (fnew);
+	fnew = NULL;
+      }
+
+    free (snamebuf);
+    if (names != NULL)
+      {
+	ebl_strtabfree (names);
+	free (scnstrents);
+	free (symstrents);
+	free (namesbuf);
+	if (scnnames != NULL)
+	  {
+	    for (size_t n = 0; n < shnum; n++)
+	      free (scnnames[n]);
+	    free (scnnames);
+	  }
+      }
+
+    free (sections);
+
+    return res;
+  }
+
+  fd = open (fname, O_RDONLY);
+  if (fd < 0)
+    {
+      error (0, errno, "Couldn't open %s\n", fname);
+      return cleanup (-1);
+    }
+
+  elf = elf_begin (fd, ELF_C_READ, NULL);
+  if (elf == NULL)
+    {
+      error (0, 0, "Couldn't open ELF file %s for reading: %s",
+	     fname, elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* We dont' handle ar files (or anything else), we probably should.  */
+  Elf_Kind kind = elf_kind (elf);
+  if (kind != ELF_K_ELF)
+    {
+      if (kind == ELF_K_AR)
+	error (0, 0, "Cannot handle ar files: %s", fname);
+      else
+	error (0, 0, "Unknown file type: %s", fname);
+      return cleanup (-1);
+    }
+
+  struct stat st;
+  if (fstat (fd, &st) != 0)
+    {
+      error (0, errno, "Couldn't fstat %s", fname);
+      return cleanup (-1);
+    }
+
+  GElf_Ehdr ehdr;
+  if (gelf_getehdr (elf, &ehdr) == NULL)
+    {
+      error (0, 0, "Couldn't get ehdr for %s: %s", fname, elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* Get the section header string table.  */
+  size_t shdrstrndx;
+  if (elf_getshdrstrndx (elf, &shdrstrndx) != 0)
+    {
+      error (0, 0, "Couldn't get section header string table index in %s: %s",
+	     fname, elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* How many sections are we talking about?  */
+  if (elf_getshdrnum (elf, &shnum) != 0)
+    {
+      error (0, 0, "Couldn't get number of sections in %s: %s",
+	     fname, elf_errmsg (1));
+      return cleanup (-1);
+    }
+
+  if (shnum == 0)
+    {
+      error (0, 0, "ELF file %s has no sections", fname);
+      return cleanup (-1);
+    }
+
+  sections = xcalloc (shnum / 8 + 1, sizeof (unsigned int));
+
+  size_t phnum;
+  if (elf_getphdrnum (elf, &phnum) != 0)
+    {
+      error (0, 0, "Couldn't get phdrnum: %s", elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* Whether we need to adjust any section names (going to/from GNU
+     naming).  If so we'll need to build a new section header string
+     table.  */
+  bool adjust_names = false;
+
+  /* If there are phdrs we want to maintain the layout of the
+     allocated sections in the file.  */
+  bool layout = phnum != 0;
+
+  /* While going through all sections keep track of last section data
+     offset if needed to keep the layout.  We are responsible for
+     adding the section offsets and headers (e_shoff) in that case
+     (which we will place after the last section).  */
+  GElf_Off last_offset = 0;
+  if (layout)
+    last_offset = (ehdr.e_phoff
+		   + gelf_fsize (elf, ELF_T_PHDR, phnum, EV_CURRENT));
+
+  /* Which section, if any, is a symbol table that shares a string
+     table with the section header string table?  */
+  size_t symtabndx = 0;
+
+  /* We do three passes over all sections.
+
+     First an inspection pass over the old Elf to see which section
+     data needs to be copied and/or transformed, which sections need a
+     names change and whether there is a symbol table that might need
+     to be adjusted be if the section header name table is changed.
+
+     Second a collection pass that creates the Elf sections and copies
+     the data.  This pass will compress/decompress section data when
+     needed.  And it will collect all data needed if we'll need to
+     construct a new string table. Afterwards the new string table is
+     constructed.
+
+     Third a fixup/adjustment pass over the new Elf that will adjust
+     any section references (names) and adjust the layout based on the
+     new sizes of the sections if necessary.  This pass is optional if
+     we aren't responsible for the layout and the section header
+     string table hasn't been changed.  */
+
+  /* Inspection pass.  */
+  size_t maxnamelen = 0;
+  Elf_Scn *scn = NULL;
+  while ((scn = elf_nextscn (elf, scn)) != NULL)
+    {
+      size_t ndx = elf_ndxscn (scn);
+      if (ndx > shnum)
+	{
+	  error (0, 0, "Unexpected section number %zd, expected only %zd",
+		 ndx, shnum);
+	  cleanup (-1);
+	}
+
+      GElf_Shdr shdr_mem;
+      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+      if (shdr == NULL)
+	{
+	  error (0, 0, "Couldn't get shdr for section %zd", ndx);
+	  return cleanup (-1);
+	}
+
+      const char *sname = elf_strptr (elf, shdrstrndx, shdr->sh_name);
+      if (sname == NULL)
+	{
+	  error (0, 0, "Couldn't get name for section %zd", ndx);
+	  return cleanup (-1);
+	}
+
+      if (section_name_matches (sname))
+	{
+	  if (shdr->sh_type != SHT_NOBITS
+	      && (shdr->sh_flags & SHF_ALLOC) == 0)
+	    {
+	      set_section (ndx);
+	      /* Check if we might want to change this section name.  */
+	      if (! adjust_names
+		  && ((type != T_COMPRESS_GNU
+		       && strncmp (sname, ".zdebug",
+				   strlen (".zdebug")) == 0)
+		      || (type == T_COMPRESS_GNU
+			  && strncmp (sname, ".debug",
+				      strlen (".debug")) == 0)))
+		adjust_names = true;
+
+	      /* We need a buffer this large if we change the names.  */
+	      if (adjust_names)
+		{
+		  size_t slen = strlen (sname);
+		  if (slen > maxnamelen)
+		    maxnamelen = slen;
+		}
+	    }
+	  else
+	    if (verbose >= 0)
+	      printf ("[%zd] %s ignoring %s section\n", ndx, sname,
+		      (shdr->sh_type == SHT_NOBITS ? "no bits" : "allocated"));
+	}
+
+      if (shdr->sh_type == SHT_SYMTAB)
+	{
+	  /* Check if we might have to adjust the symbol name indexes.  */
+	  if (shdr->sh_link == shdrstrndx)
+	    {
+	      if (symtabndx != 0)
+		{
+		  error (0, 0,
+			 "Multiple symbol tables (%zd, %zd) using the same string table unsupported", symtabndx, ndx);
+		  return cleanup (-1);
+		}
+	      symtabndx = ndx;
+	    }
+	}
+
+      /* Keep track of last allocated data offset.  */
+      if (layout)
+	if ((shdr->sh_flags & SHF_ALLOC) != 0)
+	  {
+	    GElf_Off off = shdr->sh_offset + (shdr->sh_type != SHT_NOBITS
+					      ? shdr->sh_size : 0);
+	    if (last_offset < off)
+	      last_offset = off;
+	  }
+    }
+
+  if (adjust_names)
+    {
+      names = ebl_strtabinit (true);
+      if (names == NULL)
+	{
+	  error (0, 0, "Not enough memory for new strtab");
+	  return cleanup (-1);
+	}
+      scnstrents = xmalloc (shnum
+			    * sizeof (struct Ebl_Strent *));
+      scnnames = xcalloc (shnum, sizeof (char *));
+    }
+
+  /* Create a new (temporary) ELF file for the result.  */
+  if (foutput == NULL)
+    {
+      size_t fname_len = strlen (fname);
+      fnew = xmalloc (fname_len + sizeof (".XXXXXX"));
+      strcpy (mempcpy (fnew, fname, fname_len), ".XXXXXX");
+      fdnew = mkstemp (fnew);
+    }
+  else
+    {
+      fnew = xstrdup (foutput);
+      fdnew = open (fnew, O_WRONLY | O_CREAT, st.st_mode & ALLPERMS);
+    }
+
+  if (fdnew < 0)
+    {
+      error (0, errno, "Couldn't create output file %s", fnew);
+      /* Since we didn't create it we don't want to try to unlink it.  */
+      free (fnew);
+      fnew = NULL;
+      return cleanup (-1);
+    }
+
+  elfnew = elf_begin (fdnew, ELF_C_WRITE, NULL);
+  if (elfnew == NULL)
+    {
+      error (0, 0, "Couldn't open new ELF %s for writing: %s",
+	     fnew, elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* Create the new ELF header and copy over all the data.  */
+  if (gelf_newehdr (elfnew, gelf_getclass (elf)) == 0)
+    {
+      error (0, 0, "Couldn't create new ehdr: %s", elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  GElf_Ehdr newehdr;
+  if (gelf_getehdr (elfnew, &newehdr) == NULL)
+    {
+      error (0, 0, "Couldn't get new ehdr: %s", elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  newehdr.e_ident[EI_DATA] = ehdr.e_ident[EI_DATA];
+  newehdr.e_type = ehdr.e_type;
+  newehdr.e_machine = ehdr.e_machine;
+  newehdr.e_version = ehdr.e_version;
+  newehdr.e_entry = ehdr.e_entry;
+  newehdr.e_flags = ehdr.e_flags;
+
+  if (gelf_update_ehdr (elfnew, &newehdr) == 0)
+    {
+      error (0, 0, "Couldn't update ehdr: %s", elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* Copy over the phdrs as is.  */
+  if (phnum != 0)
+    {
+      if (gelf_newphdr (elfnew, phnum) == 0)
+	{
+	  error (0, 0, "Couldn't create phdrs: %s", elf_errmsg (-1));
+	  return cleanup (-1);
+	}
+
+      for (size_t cnt = 0; cnt < phnum; ++cnt)
+	{
+	  GElf_Phdr phdr_mem;
+	  GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &phdr_mem);
+	  if (phdr == NULL)
+	    {
+	      error (0, 0, "Couldn't get phdr %zd: %s", cnt, elf_errmsg (-1));
+	      return cleanup (-1);
+	    }
+	  if (gelf_update_phdr (elfnew, cnt, phdr) == 0)
+	    {
+	      error (0, 0, "Couldn't create phdr %zd: %s", cnt,
+		     elf_errmsg (-1));
+	      return cleanup (-1);
+	    }
+	}
+    }
+
+  /* Possibly add a 'z' and zero terminator.  */
+  if (maxnamelen > 0)
+    snamebuf = xmalloc (maxnamelen + 2);
+
+  /* We might want to read/adjust the section header strings and
+     symbol tables.  If so, and those sections are to be compressed
+     then we will have to decompress it during the collection pass and
+     compress it again in the fixup pass.  Don't compress unnecessary
+     and keep track of whether or not to compress them (later in the
+     fixup pass).  Also record the original size, so we can report the
+     difference later when we do compress.  */
+  int shstrtab_compressed = T_UNSET;
+  size_t shstrtab_size = 0;
+  char *shstrtab_name = NULL;
+  char *shstrtab_newname = NULL;
+  int symtab_compressed = T_UNSET;
+  size_t symtab_size = 0;
+  char *symtab_name = NULL;
+  char *symtab_newname = NULL;
+
+  /* Collection pass.  Copy over the sections, (de)compresses matching
+     sections, collect names of sections and symbol table if
+     necessary.  */
+  scn = NULL;
+  while ((scn = elf_nextscn (elf, scn)) != NULL)
+    {
+      size_t ndx = elf_ndxscn (scn);
+      assert (ndx < shnum);
+
+      /* (de)compress if section matched.  */
+      char *sname = NULL;
+      char *newname = NULL;
+      if (get_section (ndx))
+	{
+	  GElf_Shdr shdr_mem;
+	  GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+	  if (shdr == NULL)
+	    {
+	      error (0, 0, "Couldn't get shdr for section %zd", ndx);
+	      return cleanup (-1);
+	    }
+
+	  uint64_t size = shdr->sh_size;
+	  sname = elf_strptr (elf, shdrstrndx, shdr->sh_name);
+	  if (sname == NULL)
+	    {
+	      error (0, 0, "Couldn't get name for section %zd", ndx);
+	      return cleanup (-1);
+	    }
+
+	  /* strdup sname, the shdrstrndx section itself might be
+	     (de)compressed, invalidating the string pointers.  */
+	  sname = xstrdup (sname);
+
+	  /* We might want to decompress (and rename), but not
+	     compress during this pass since we might need the section
+	     data in later passes.  Skip those sections for now and
+	     compress them in the fixup pass.  */
+	  bool skip_compress_section = (adjust_names
+					&& (ndx == shdrstrndx
+					    || ndx == symtabndx));
+
+	  switch (type)
+	    {
+	    case T_DECOMPRESS:
+	      if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+		{
+		  if (compress_section (scn, size, sname, NULL, ndx,
+					false, false, verbose > 0) < 0)
+		    return cleanup (-1);
+		}
+	      else if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0)
+		{
+		  snamebuf[0] = '.';
+		  strcpy (&snamebuf[1], &sname[2]);
+		  newname = snamebuf;
+		  if (compress_section (scn, size, sname, newname, ndx,
+					true, false, verbose > 0) < 0)
+		    return cleanup (-1);
+		}
+	      else if (verbose > 0)
+		printf ("[%zd] %s already decompressed\n", ndx, sname);
+	      break;
+
+	    case T_COMPRESS_GNU:
+	      if (strncmp (sname, ".debug", strlen (".debug")) == 0)
+		{
+		  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+		    {
+		      /* First decompress to recompress GNU style.
+			 Don't report even when verbose.  */
+		      if (compress_section (scn, size, sname, NULL, ndx,
+					    false, false, false) < 0)
+			return cleanup (-1);
+		    }
+
+		  snamebuf[0] = '.';
+		  snamebuf[1] = 'z';
+		  strcpy (&snamebuf[2], &sname[1]);
+		  newname = snamebuf;
+
+		  if (skip_compress_section)
+		    {
+		      if (ndx == shdrstrndx)
+			{
+			  shstrtab_size = size;
+			  shstrtab_compressed = T_COMPRESS_GNU;
+			  shstrtab_name = xstrdup (sname);
+			  shstrtab_newname = xstrdup (newname);
+			}
+		      else
+			{
+			  symtab_size = size;
+			  symtab_compressed = T_COMPRESS_GNU;
+			  symtab_name = xstrdup (sname);
+			  symtab_newname = xstrdup (newname);
+			}
+		    }
+		  else
+		    {
+		      int res = compress_section (scn, size, sname, newname,
+						  ndx, true, true,
+						  verbose > 0);
+		      if (res < 0)
+			return cleanup (-1);
+
+		      if (res == 0)
+			newname = NULL;
+		    }
+		}
+	      else if (verbose >= 0)
+		{
+		  if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0)
+		    printf ("[%zd] %s unchanged, already GNU compressed",
+			    ndx, sname);
+		  else
+		    printf ("[%zd] %s cannot GNU compress section not starting with .debug\n",
+			    ndx, sname);
+		}
+	      break;
+
+	    case T_COMPRESS_ZLIB:
+	      if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
+		{
+		  if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0)
+		    {
+		      /* First decompress to recompress zlib style.
+			 Don't report even when verbose.  */
+		      if (compress_section (scn, size, sname, NULL, ndx,
+					    true, false, false) < 0)
+			return cleanup (-1);
+
+		      snamebuf[0] = '.';
+		      strcpy (&snamebuf[1], &sname[2]);
+		      newname = snamebuf;
+		    }
+
+		  if (skip_compress_section)
+		    {
+		      if (ndx == shdrstrndx)
+			{
+			  shstrtab_size = size;
+			  shstrtab_compressed = T_COMPRESS_ZLIB;
+			  shstrtab_name = xstrdup (sname);
+			  shstrtab_newname = (newname == NULL
+					      ? NULL : xstrdup (newname));
+			}
+		      else
+			{
+			  symtab_size = size;
+			  symtab_compressed = T_COMPRESS_ZLIB;
+			  symtab_name = xstrdup (sname);
+			  symtab_newname = (newname == NULL
+					    ? NULL : xstrdup (newname));
+			}
+		    }
+		  else if (compress_section (scn, size, sname, newname, ndx,
+					     false, true, verbose > 0) < 0)
+		    return cleanup (-1);
+		}
+	      else if (verbose > 0)
+		printf ("[%zd] %s already compressed\n", ndx, sname);
+	      break;
+	    }
+
+	  free (sname);
+	}
+
+      Elf_Scn *newscn = elf_newscn (elfnew);
+      if (newscn == NULL)
+	{
+	  error (0, 0, "Couldn't create new section %zd", ndx);
+	  return cleanup (-1);
+	}
+
+      GElf_Shdr shdr_mem;
+      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+      if (shdr == NULL)
+	{
+	  error (0, 0, "Couldn't get shdr for section %zd", ndx);
+	  return cleanup (-1);
+	}
+
+      if (gelf_update_shdr (newscn, shdr) == 0)
+        {
+	  error (0, 0, "Couldn't update section header %zd", ndx);
+	  return cleanup (-1);
+	}
+
+      /* Except for the section header string table all data can be
+	 copied as is.  The section header string table will be
+	 created later and the symbol table might be fixed up if
+	 necessary.  */
+      if (! adjust_names || ndx != shdrstrndx)
+	{
+	  Elf_Data *data = elf_getdata (scn, NULL);
+	  if (data == NULL)
+	    {
+	      error (0, 0, "Couldn't get data from section %zd", ndx);
+	      return cleanup (-1);
+	    }
+
+	  Elf_Data *newdata = elf_newdata (newscn);
+	  if (newdata == NULL)
+	    {
+	      error (0, 0, "Couldn't create new data for section %zd", ndx);
+	      return cleanup (-1);
+	    }
+
+	  *newdata = *data;
+	}
+
+      /* Keep track of the (new) section names.  */
+      if (adjust_names)
+	{
+	  char *name;
+	  if (newname != NULL)
+	    name = newname;
+	  else
+	    {
+	      name = elf_strptr (elf, shdrstrndx, shdr->sh_name);
+	      if (name == NULL)
+		{
+		  error (0, 0, "Couldn't get name for section [%zd]", ndx);
+		  return cleanup (-1);
+		}
+	    }
+
+	  /* We need to keep a copy of the name till the strtab is done.  */
+	  name = scnnames[ndx] = xstrdup (name);
+	  if ((scnstrents[ndx] = ebl_strtabadd (names, name, 0)) == NULL)
+	    {
+	      error (0, 0, "No memory to add section name string table");
+	      return cleanup (-1);
+	    }
+
+	  /* If the symtab shares strings then add those too.  */
+	  if (ndx == symtabndx)
+	    {
+	      /* If the section is (still) compressed we'll need to
+		 uncompress it first to adjust the data, then
+		 recompress it in the fixup pass.  */
+	      if (symtab_compressed == T_UNSET)
+		{
+		  size_t size = shdr->sh_size;
+		  if ((shdr->sh_flags == SHF_COMPRESSED) != 0)
+		    {
+		      /* Don't report the (internal) uncompression.  */
+		      if (compress_section (newscn, size, sname, NULL, ndx,
+					    false, false, false) < 0)
+			return cleanup (-1);
+
+		      symtab_size = size;
+		      symtab_compressed = T_COMPRESS_ZLIB;
+		    }
+		  else if (strncmp (name, ".zdebug", strlen (".zdebug")) == 0)
+		    {
+		      /* Don't report the (internal) uncompression.  */
+		      if (compress_section (newscn, size, sname, NULL, ndx,
+					    true, false, false) < 0)
+			return cleanup (-1);
+
+		      symtab_size = size;
+		      symtab_compressed = T_COMPRESS_GNU;
+		    }
+		}
+
+	      Elf_Data *symd = elf_getdata (newscn, NULL);
+	      if (symd == NULL)
+		{
+		  error (0, 0, "Couldn't get symtab data for section [%zd] %s",
+			 ndx, name);
+		  return cleanup (-1);
+		}
+	      size_t elsize = gelf_fsize (elfnew, ELF_T_SYM, 1, EV_CURRENT);
+	      size_t syms = symd->d_size / elsize;
+	      symstrents = xmalloc (syms * sizeof (struct Ebl_Strent *));
+	      for (size_t i = 0; i < syms; i++)
+		{
+		  GElf_Sym sym_mem;
+		  GElf_Sym *sym = gelf_getsym (symd, i, &sym_mem);
+		  if (sym == NULL)
+		    {
+		      error (0, 0, "Couldn't get symbol %zd", i);
+		      return cleanup (-1);
+		    }
+		  if (sym->st_name != 0)
+		    {
+		      /* Note we take the name from the original ELF,
+			 since the new one will not have setup the
+			 strtab yet.  */
+		      const char *symname = elf_strptr (elf, shdrstrndx,
+							sym->st_name);
+		      if (symname == NULL)
+			{
+			  error (0, 0, "Couldn't get symbol %zd name", i);
+			  return cleanup (-1);
+			}
+		      symstrents[i] = ebl_strtabadd (names, symname, 0);
+		      if (symstrents[i] == NULL)
+			{
+			  error (0, 0, "No memory to add to symbol name");
+			  return cleanup (-1);
+			}
+		    }
+		}
+	    }
+	}
+    }
+
+  if (adjust_names)
+    {
+      /* We got all needed strings, put the new data in the shstrtab.  */
+      if (verbose > 0)
+	printf ("[%zd] Updating section string table\n", shdrstrndx);
+
+      scn = elf_getscn (elfnew, shdrstrndx);
+      if (scn == NULL)
+	{
+	  error (0, 0, "Couldn't get new section header string table [%zd]",
+		 shdrstrndx);
+	  return cleanup (-1);
+	}
+
+      Elf_Data *data = elf_newdata (scn);
+      if (data == NULL)
+	{
+	  error (0, 0, "Couldn't create new section header string table data");
+	  return cleanup (-1);
+	}
+      ebl_strtabfinalize (names, data);
+      namesbuf = data->d_buf;
+
+      GElf_Shdr shdr_mem;
+      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+      if (shdr == NULL)
+	{
+	  error (0, 0, "Couldn't get shdr for new section strings %zd",
+		 shdrstrndx);
+	  return cleanup (-1);
+	}
+
+      /* Note that we also might have to compress and possibly set
+	 sh_off below */
+      shdr->sh_name = ebl_strtaboffset (scnstrents[shdrstrndx]);
+      shdr->sh_type = SHT_STRTAB;
+      shdr->sh_flags = 0;
+      shdr->sh_addr = 0;
+      shdr->sh_offset = 0;
+      shdr->sh_size = data->d_size;
+      shdr->sh_link = SHN_UNDEF;
+      shdr->sh_info = SHN_UNDEF;
+      shdr->sh_addralign = 1;
+      shdr->sh_entsize = 0;
+
+      if (gelf_update_shdr (scn, shdr) == 0)
+	{
+	  error (0, 0, "Couldn't update new section strings [%zd]",
+		 shdrstrndx);
+	  return cleanup (-1);
+	}
+
+      /* We might have to compress the data if the user asked us to,
+	 or if the section was already compressed (and the user didn't
+	 ask for decompression).  Note somewhat identical code for
+	 symtab below.  */
+      if (shstrtab_compressed == T_UNSET)
+	{
+	  /* The user didn't ask for compression, but maybe it was
+	     compressed in the original ELF file.  */
+	  Elf_Scn *oldscn = elf_getscn (elf, shdrstrndx);
+	  if (oldscn == NULL)
+	    {
+	      error (0, 0, "Couldn't get section header string table [%zd]",
+		     shdrstrndx);
+	      return cleanup (-1);
+	    }
+
+	  shdr = gelf_getshdr (oldscn, &shdr_mem);
+	  if (shdr == NULL)
+	    {
+	      error (0, 0, "Couldn't get shdr for old section strings [%zd]",
+		     shdrstrndx);
+	      return cleanup (-1);
+	    }
+
+	  shstrtab_name = elf_strptr (elf, shdrstrndx, shdr->sh_name);
+	  if (shstrtab_name == NULL)
+	    {
+	      error (0, 0, "Couldn't get name for old section strings [%zd]",
+		     shdrstrndx);
+	      return cleanup (-1);
+	    }
+
+	  shstrtab_size = shdr->sh_size;
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    shstrtab_compressed = T_COMPRESS_ZLIB;
+	  else if (strncmp (shstrtab_name, ".zdebug", strlen (".zdebug")) == 0)
+	    shstrtab_compressed = T_COMPRESS_GNU;
+	}
+
+      /* Should we (re)compress?  */
+      if (shstrtab_compressed != T_UNSET)
+	{
+	  if (compress_section (scn, shstrtab_size, shstrtab_name,
+				shstrtab_newname, shdrstrndx,
+				shstrtab_compressed == T_COMPRESS_GNU,
+				true, verbose > 0) < 0)
+	    return cleanup (-1);
+	}
+    }
+
+  /* Make sure to re-get the new ehdr.  Adding phdrs and shdrs will
+     have changed it.  */
+  if (gelf_getehdr (elfnew, &newehdr) == NULL)
+    {
+      error (0, 0, "Couldn't re-get new ehdr: %s", elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* Set this after the sections have been created, otherwise section
+     zero might not exist yet.  */
+  if (setshdrstrndx (elfnew, &newehdr, shdrstrndx) != 0)
+    {
+      error (0, 0, "Couldn't set new shdrstrndx: %s", elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  /* Fixup pass.  Adjust string table references, symbol table and
+     layout if necessary.  */
+  if (layout || adjust_names)
+    {
+      scn = NULL;
+      while ((scn = elf_nextscn (elfnew, scn)) != NULL)
+	{
+	  size_t ndx = elf_ndxscn (scn);
+
+	  GElf_Shdr shdr_mem;
+	  GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+	  if (shdr == NULL)
+	    {
+	      error (0, 0, "Couldn't get shdr for section %zd", ndx);
+	      return cleanup (-1);
+	    }
+
+	  /* Keep the offset of allocated sections so they are at the
+	     same place in the file. Add (possibly changed)
+	     unallocated ones after the allocated ones.  */
+	  if ((shdr->sh_flags & SHF_ALLOC) == 0)
+	    {
+	      /* Zero means one.  No alignment constraints.  */
+	      size_t addralign = shdr->sh_addralign ?: 1;
+	      last_offset = (last_offset + addralign - 1) & ~(addralign - 1);
+	      shdr->sh_offset = last_offset;
+	      if (shdr->sh_type != SHT_NOBITS)
+		last_offset += shdr->sh_size;
+	    }
+
+	  if (adjust_names)
+	    shdr->sh_name = ebl_strtaboffset (scnstrents[ndx]);
+
+	  if (gelf_update_shdr (scn, shdr) == 0)
+	    {
+	      error (0, 0, "Couldn't update section header %zd", ndx);
+	      return cleanup (-1);
+	    }
+
+	  if (adjust_names && ndx == symtabndx)
+	    {
+	      if (verbose > 0)
+		printf ("[%zd] Updating symbol table\n", symtabndx);
+
+	      Elf_Data *symd = elf_getdata (scn, NULL);
+	      if (symd == NULL)
+		{
+		  error (0, 0, "Couldn't get new symtab data section [%zd]",
+			 ndx);
+		  return cleanup (-1);
+		}
+	      size_t elsize = gelf_fsize (elfnew, ELF_T_SYM, 1, EV_CURRENT);
+	      size_t syms = symd->d_size / elsize;
+	      for (size_t i = 0; i < syms; i++)
+		{
+		  GElf_Sym sym_mem;
+		  GElf_Sym *sym = gelf_getsym (symd, i, &sym_mem);
+		  if (sym == NULL)
+		    {
+		      error (0, 0, "2 Couldn't get symbol %zd", i);
+		      return cleanup (-1);
+		    }
+
+		  if (sym->st_name != 0)
+		    {
+		      sym->st_name = ebl_strtaboffset (symstrents[i]);
+
+		      if (gelf_update_sym (symd, i, sym) == 0)
+			{
+			  error (0, 0, "Couldn't update symbol %zd", i);
+			  return cleanup (-1);
+			}
+		    }
+		}
+
+	      /* We might have to compress the data if the user asked
+		 us to, or if the section was already compressed (and
+		 the user didn't ask for decompression).  Note
+		 somewhat identical code for shstrtab above.  */
+	      if (symtab_compressed == T_UNSET)
+		{
+		  /* The user didn't ask for compression, but maybe it was
+		     compressed in the original ELF file.  */
+		  Elf_Scn *oldscn = elf_getscn (elf, symtabndx);
+		  if (oldscn == NULL)
+		    {
+		      error (0, 0, "Couldn't get symbol table [%zd]",
+			     symtabndx);
+		      return cleanup (-1);
+		    }
+
+		  shdr = gelf_getshdr (oldscn, &shdr_mem);
+		  if (shdr == NULL)
+		    {
+		      error (0, 0, "Couldn't get old symbol table shdr [%zd]",
+			     symtabndx);
+		      return cleanup (-1);
+		    }
+
+		  symtab_name = elf_strptr (elf, shdrstrndx, shdr->sh_name);
+		  if (symtab_name == NULL)
+		    {
+		      error (0, 0, "Couldn't get old symbol table name [%zd]",
+			     symtabndx);
+		      return cleanup (-1);
+		    }
+
+		  symtab_size = shdr->sh_size;
+		  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+		    symtab_compressed = T_COMPRESS_ZLIB;
+		  else if (strncmp (symtab_name, ".zdebug",
+				    strlen (".zdebug")) == 0)
+		    symtab_compressed = T_COMPRESS_GNU;
+		}
+
+	      /* Should we (re)compress?  */
+	      if (symtab_compressed != T_UNSET)
+		{
+		  if (compress_section (scn, symtab_size, symtab_name,
+					symtab_newname, symtabndx,
+					symtab_compressed == T_COMPRESS_GNU,
+					true, verbose > 0) < 0)
+		    return cleanup (-1);
+		}
+	    }
+	}
+    }
+
+  /* If we have phdrs we want elf_update to layout the SHF_ALLOC
+     sections precisely as in the original file.  In that case we are
+     also responsible for setting phoff and shoff */
+  if (layout)
+    {
+      if (gelf_getehdr (elfnew, &newehdr) == NULL)
+	{
+	  error (0, 0, "Couldn't get ehdr: %s", elf_errmsg (-1));
+	  return cleanup (-1);
+	}
+
+      /* Position the shdrs after the last (unallocated) section.  */
+      const size_t offsize = gelf_fsize (elfnew, ELF_T_OFF, 1, EV_CURRENT);
+      newehdr.e_shoff = ((last_offset + offsize - 1)
+			 & ~((GElf_Off) (offsize - 1)));
+
+      /* The phdrs go in the same place as in the original file.
+	 Normally right after the ELF header.  */
+      newehdr.e_phoff = ehdr.e_phoff;
+
+      if (gelf_update_ehdr (elfnew, &newehdr) == 0)
+	{
+	  error (0, 0, "Couldn't update ehdr: %s", elf_errmsg (-1));
+	  return cleanup (-1);
+	}
+    }
+
+  elf_flagelf (elfnew, ELF_C_SET, ((layout ? ELF_F_LAYOUT : 0)
+				   | (permissive ? ELF_F_PERMISSIVE : 0)));
+
+  if (elf_update (elfnew, ELF_C_WRITE) < 0)
+    {
+      error (0, 0, "Couldn't write %s: %s", fnew, elf_errmsg (-1));
+      return cleanup (-1);
+    }
+
+  elf_end (elfnew);
+  elfnew = NULL;
+
+  /* Try to match mode and owner.group of the original file.  */
+  if (fchmod (fdnew, st.st_mode & ALLPERMS) != 0)
+    if (verbose >= 0)
+      error (0, errno, "Couldn't fchmod %s", fnew);
+  if (fchown (fdnew, st.st_uid, st.st_gid) != 0)
+    if (verbose >= 0)
+      error (0, errno, "Couldn't fchown %s", fnew);
+
+  /* Finally replace the old file with the new file.  */
+  if (foutput == NULL)
+    if (rename (fnew, fname) != 0)
+      {
+	error (0, errno, "Couldn't rename %s to %s", fnew, fname);
+	return cleanup (-1);
+      }
+
+  /* We are finally done with the new file, don't unlink it now.  */
+  free (fnew);
+  fnew = NULL;
+
+  return cleanup (0);
+}
+
+int
+main (int argc, char **argv)
+{
+  const struct argp_option options[] =
+    {
+      { "output", 'o', "FILE", 0,
+	N_("Place (de)compressed output into FILE"),
+	0 },
+      { "type", 't', "TYPE", 0,
+	N_("What type of compression to apply. TYPE can be 'none' (decompress), 'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias) or 'zlib-gnu' (.zdebug GNU style compression, 'gnu' is an alias)"),
+	0 },
+      { "name", 'n', "SECTION", 0,
+	N_("SECTION name to (de)compress, SECTION is an extended wildcard pattern (defaults to '.?(z)debug*')"),
+	0 },
+      { "verbose", 'v', NULL, 0,
+	N_("Print a message for each section being (de)compressed"),
+	0 },
+      { "force", 'f', NULL, 0,
+	N_("Force compression of section even if it would become larger"),
+	0 },
+      { "permissive", 'p', NULL, 0,
+	N_("Relax a few rules to handle slightly broken ELF files"),
+	0 },
+      { "quiet", 'q', NULL, 0,
+	N_("Be silent when a section cannot be compressed"),
+	0 },
+      { NULL, 0, NULL, 0, NULL, 0 }
+    };
+
+  const struct argp argp =
+    {
+      .options = options,
+      .parser = parse_opt,
+      .args_doc = N_("FILE..."),
+      .doc = N_("Compress or decompress sections in an ELF file.")
+    };
+
+  int remaining;
+  if (argp_parse (&argp, argc, argv, 0, &remaining, NULL) != 0)
+    return EXIT_FAILURE;
+
+  /* Should already be handled by ARGP_KEY_NO_ARGS case above,
+     just sanity check.  */
+  if (remaining >= argc)
+    error (EXIT_FAILURE, 0, N_("No input file given"));
+
+  /* Likewise for the ARGP_KEY_ARGS case above, an extra sanity check.  */
+  if (foutput != NULL && remaining + 1 < argc)
+    error (EXIT_FAILURE, 0,
+	   N_("Only one input file allowed together with '-o'"));
+
+  elf_version (EV_CURRENT);
+
+  /* Process all the remaining files.  */
+  int result = 0;
+  do
+    result |= process_file (argv[remaining]);
+  while (++remaining < argc);
+
+  free_patterns ();
+  return result;
+}
diff --git a/src/elflint.c b/src/elflint.c
index 7d72a1f..eae7761 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -1,5 +1,5 @@
 /* Pedantic checking of ELF files compliance with gABI/psABI spec.
-   Copyright (C) 2001-2014 Red Hat, Inc.
+   Copyright (C) 2001-2015 Red Hat, Inc.
    This file is part of elfutils.
    Written by Ulrich Drepper <drepper@redhat.com>, 2001.
 
@@ -380,9 +380,11 @@
     ERROR (gettext ("unknown ELF header version number e_ident[%d] == %d\n"),
 	   EI_VERSION, ehdr->e_ident[EI_VERSION]);
 
-  /* We currently don't handle any OS ABIs other than Linux.  */
+  /* We currently don't handle any OS ABIs other than Linux and the
+     kFreeBSD variant of Debian.  */
   if (ehdr->e_ident[EI_OSABI] != ELFOSABI_NONE
-      && ehdr->e_ident[EI_OSABI] != ELFOSABI_LINUX)
+      && ehdr->e_ident[EI_OSABI] != ELFOSABI_LINUX
+      && ehdr->e_ident[EI_OSABI] != ELFOSABI_FREEBSD)
     ERROR (gettext ("unsupported OS ABI e_ident[%d] == '%s'\n"),
 	   EI_OSABI,
 	   ebl_osabi_name (ebl, ehdr->e_ident[EI_OSABI], buf, sizeof (buf)));
@@ -801,7 +803,11 @@
 				  && strcmp (name, "__bss_start") != 0
 				  && strcmp (name, "__bss_start__") != 0
 				  && strcmp (name, "__TMC_END__") != 0
-				  && strcmp (name, ".TOC.") != 0))
+				  && strcmp (name, ".TOC.") != 0
+				  && strcmp (name, "_edata") != 0
+				  && strcmp (name, "__edata") != 0
+				  && strcmp (name, "_end") != 0
+				  && strcmp (name, "__end") != 0))
 			    ERROR (gettext ("\
 section [%2d] '%s': symbol %zu: st_value out of bounds\n"),
 				   idx, section_name (ebl, idx), cnt);
@@ -2746,7 +2752,8 @@
       NEWFLAG (LINK_ORDER),
       NEWFLAG (OS_NONCONFORMING),
       NEWFLAG (GROUP),
-      NEWFLAG (TLS)
+      NEWFLAG (TLS),
+      NEWFLAG (COMPRESSED)
     };
 #undef NEWFLAG
   const size_t nknown_flags = sizeof (known_flags) / sizeof (known_flags[0]);
@@ -3694,7 +3701,8 @@
   size_t versym_scnndx = 0;
   for (size_t cnt = 1; cnt < shnum; ++cnt)
     {
-      shdr = gelf_getshdr (elf_getscn (ebl->elf, cnt), &shdr_mem);
+      Elf_Scn *scn = elf_getscn (ebl->elf, cnt);
+      shdr = gelf_getshdr (scn, &shdr_mem);
       if (shdr == NULL)
 	{
 	  ERROR (gettext ("\
@@ -3744,9 +3752,11 @@
 		if (special_sections[s].attrflag == exact
 		    || special_sections[s].attrflag == exact_or_gnuld)
 		  {
-		    /* Except for the link order and group bit all the
-		       other bits should match exactly.  */
-		    if ((shdr->sh_flags & ~(SHF_LINK_ORDER | SHF_GROUP))
+		    /* Except for the link order, group bit and
+		       compression flag all the other bits should
+		       match exactly.  */
+		    if ((shdr->sh_flags
+			 & ~(SHF_LINK_ORDER | SHF_GROUP | SHF_COMPRESSED))
 			!= special_sections[s].attr
 			&& (special_sections[s].attrflag == exact || !gnuld))
 		      ERROR (gettext ("\
@@ -3762,9 +3772,10 @@
 		  {
 		    if ((shdr->sh_flags & special_sections[s].attr)
 			!= special_sections[s].attr
-			|| ((shdr->sh_flags & ~(SHF_LINK_ORDER | SHF_GROUP
-						| special_sections[s].attr
-						| special_sections[s].attr2))
+			|| ((shdr->sh_flags
+			     & ~(SHF_LINK_ORDER | SHF_GROUP | SHF_COMPRESSED
+				 | special_sections[s].attr
+				 | special_sections[s].attr2))
 			    != 0))
 		      ERROR (gettext ("\
 section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"),
@@ -3867,7 +3878,8 @@
 
 #define ALL_SH_FLAGS (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_MERGE \
 		      | SHF_STRINGS | SHF_INFO_LINK | SHF_LINK_ORDER \
-		      | SHF_OS_NONCONFORMING | SHF_GROUP | SHF_TLS)
+		      | SHF_OS_NONCONFORMING | SHF_GROUP | SHF_TLS \
+		      | SHF_COMPRESSED)
       if (shdr->sh_flags & ~(GElf_Xword) ALL_SH_FLAGS)
 	{
 	  GElf_Xword sh_flags = shdr->sh_flags & ~(GElf_Xword) ALL_SH_FLAGS;
@@ -3897,6 +3909,25 @@
 	  // XXX TODO more tests!?
 	}
 
+      if (shdr->sh_flags & SHF_COMPRESSED)
+	{
+	  if (shdr->sh_flags & SHF_ALLOC)
+	    ERROR (gettext ("\
+section [%2zu] '%s': allocated section cannot be compressed\n"),
+		   cnt, section_name (ebl, cnt));
+
+	  if (shdr->sh_type == SHT_NOBITS)
+	    ERROR (gettext ("\
+section [%2zu] '%s': nobits section cannot be compressed\n"),
+		   cnt, section_name (ebl, cnt));
+
+	  GElf_Chdr chdr;
+	  if (gelf_getchdr (scn, &chdr) == NULL)
+	    ERROR (gettext ("\
+section [%2zu] '%s': compressed section with no compression header: %s\n"),
+		   cnt, section_name (ebl, cnt), elf_errmsg (-1));
+	}
+
       if (shdr->sh_link >= shnum)
 	ERROR (gettext ("\
 section [%2zu] '%s': invalid section reference in link value\n"),
diff --git a/src/readelf.c b/src/readelf.c
index 5f6e4ed..0db192e 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -48,6 +48,7 @@
 #include "../libelf/libelfP.h"
 #include "../libelf/common.h"
 #include "../libebl/libeblP.h"
+#include "../libdwelf/libdwelf.h"
 #include "../libdw/libdwP.h"
 #include "../libdwfl/libdwflP.h"
 #include "../libdw/memory-access.h"
@@ -112,6 +113,8 @@
     N_("Display just offsets instead of resolving values to addresses in DWARF data"), 0 },
   { "wide", 'W', NULL, 0,
     N_("Ignored for compatibility (lines always wide)"), 0 },
+  { "decompress", 'z', NULL, 0,
+    N_("Show compression information for compressed sections (when used with -S); decompress section before dumping data (when used with -p or -x)"), 0 },
   { NULL, 0, NULL, 0, NULL, 0 }
 };
 
@@ -190,6 +193,9 @@
 /* True if we should print the .debug_aranges section using libdw.  */
 static bool decodedline = false;
 
+/* True if we want to show more information about compressed sections.  */
+static bool print_decompress = false;
+
 /* Select printing of debugging sections.  */
 static enum section_e
 {
@@ -479,6 +485,9 @@
       break;
     case 'W':			/* Ignored.  */
       break;
+    case 'z':
+      print_decompress = true;
+      break;
     case ELF_INPUT_SECTION:
       if (arg == NULL)
 	elf_input_section = ".gnu_debugdata";
@@ -797,6 +806,20 @@
     close (fd);
 }
 
+/* Check whether there are any compressed sections in the ELF file.  */
+static bool
+elf_contains_chdrs (Elf *elf)
+{
+  Elf_Scn *scn = NULL;
+  while ((scn = elf_nextscn (elf, scn)) != NULL)
+    {
+      GElf_Shdr shdr_mem;
+      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+      if (shdr != NULL && (shdr->sh_flags & SHF_COMPRESSED) != 0)
+	return true;
+    }
+  return false;
+}
 
 /* Process one ELF file.  */
 static void
@@ -835,17 +858,21 @@
 	   gettext ("cannot determine number of program headers: %s"),
 	   elf_errmsg (-1));
 
-  /* For an ET_REL file, libdwfl has adjusted the in-core shdrs
-     and may have applied relocation to some sections.
-     So we need to get a fresh Elf handle on the file to display those.  */
-  bool print_unrelocated = (print_section_header
-			    || print_relocations
-			    || dump_data_sections != NULL
-			    || print_notes);
+  /* For an ET_REL file, libdwfl has adjusted the in-core shdrs and
+     may have applied relocation to some sections.  If there are any
+     compressed sections, any pass (or libdw/libdwfl) might have
+     uncompressed them.  So we need to get a fresh Elf handle on the
+     file to display those.  */
+  bool print_unchanged = ((print_section_header
+			   || print_relocations
+			   || dump_data_sections != NULL
+			   || print_notes)
+			  && (ehdr->e_type == ET_REL
+			      || elf_contains_chdrs (ebl->elf)));
 
   Elf *pure_elf = NULL;
   Ebl *pure_ebl = ebl;
-  if (ehdr->e_type == ET_REL && print_unrelocated)
+  if (print_unchanged)
     {
       /* Read the file afresh.  */
       off_t aroff = elf_getaroff (elf);
@@ -1065,6 +1092,17 @@
     }
 }
 
+static const char *
+elf_ch_type_name (unsigned int code)
+{
+  if (code == 0)
+    return "NONE";
+
+  if (code == ELFCOMPRESS_ZLIB)
+    return "ZLIB";
+
+  return "UNKNOWN";
+}
 
 /* Print the section headers.  */
 static void
@@ -1091,6 +1129,14 @@
   else
     puts (gettext ("[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al"));
 
+  if (print_decompress)
+    {
+      if (ehdr->e_ident[EI_CLASS] == ELFCLASS32)
+	puts (gettext ("     [Compression  Size   Al]"));
+      else
+	puts (gettext ("     [Compression  Size     Al]"));
+    }
+
   for (cnt = 0; cnt < shnum; ++cnt)
     {
       Elf_Scn *scn = elf_getscn (ebl->elf, cnt);
@@ -1128,25 +1174,57 @@
 	*cp++ = 'G';
       if (shdr->sh_flags & SHF_TLS)
 	*cp++ = 'T';
+      if (shdr->sh_flags & SHF_COMPRESSED)
+	*cp++ = 'C';
       if (shdr->sh_flags & SHF_ORDERED)
 	*cp++ = 'O';
       if (shdr->sh_flags & SHF_EXCLUDE)
 	*cp++ = 'E';
       *cp = '\0';
 
+      const char *sname;
       char buf[128];
+      sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "<corrupt>";
       printf ("[%2zu] %-20s %-12s %0*" PRIx64 " %0*" PRIx64 " %0*" PRIx64
 	      " %2" PRId64 " %-5s %2" PRId32 " %3" PRId32
 	      " %2" PRId64 "\n",
-	      cnt,
-	      elf_strptr (ebl->elf, shstrndx, shdr->sh_name)
-	      ?: "<corrupt>",
+	      cnt, sname,
 	      ebl_section_type_name (ebl, shdr->sh_type, buf, sizeof (buf)),
 	      ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 8 : 16, shdr->sh_addr,
 	      ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, shdr->sh_offset,
 	      ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, shdr->sh_size,
 	      shdr->sh_entsize, flagbuf, shdr->sh_link, shdr->sh_info,
 	      shdr->sh_addralign);
+
+      if (print_decompress)
+	{
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    {
+	      GElf_Chdr chdr;
+	      if (gelf_getchdr (scn, &chdr) != NULL)
+		printf ("     [ELF %s (%" PRId32 ") %0*" PRIx64
+			" %2" PRId64 "]\n",
+			elf_ch_type_name (chdr.ch_type),
+			chdr.ch_type,
+			ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8,
+			chdr.ch_size, chdr.ch_addralign);
+	      else
+		error (0, 0,
+		       gettext ("bad compression header for section %zd: %s"),
+		       elf_ndxscn (scn), elf_errmsg (-1));
+	    }
+	  else if (strncmp(".zdebug", sname, strlen (".zdebug")) == 0)
+	    {
+	      ssize_t size;
+	      if ((size = dwelf_scn_gnu_compressed_size (scn)) >= 0)
+		printf ("     [GNU ZLIB     %0*zx   ]\n",
+			ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, size);
+	      else
+		error (0, 0,
+		       gettext ("bad gnu compressed size for section %zd: %s"),
+		       elf_ndxscn (scn), elf_errmsg (-1));
+	    }
+	}
     }
 
   fputc_unlocked ('\n', stdout);
@@ -1443,7 +1521,17 @@
       GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
 
       if (shdr != NULL && shdr->sh_type == SHT_GROUP)
-	handle_scngrp (ebl, scn, shdr);
+	{
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    {
+	      if (elf_compress (scn, 0, 0) < 0)
+		printf ("WARNING: %s [%zd]\n",
+			gettext ("Couldn't uncompress section"),
+			elf_ndxscn (scn));
+	      shdr = gelf_getshdr (scn, &shdr_mem);
+	    }
+	  handle_scngrp (ebl, scn, shdr);
+	}
     }
 }
 
@@ -2142,7 +2230,17 @@
       GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
 
       if (shdr != NULL && shdr->sh_type == (GElf_Word) type)
-	handle_symtab (ebl, scn, shdr);
+	{
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    {
+	      if (elf_compress (scn, 0, 0) < 0)
+		printf ("WARNING: %s [%zd]\n",
+			gettext ("Couldn't uncompress section"),
+			elf_ndxscn (scn));
+	      shdr = gelf_getshdr (scn, &shdr_mem);
+	    }
+	  handle_symtab (ebl, scn, shdr);
+	}
     }
 }
 
@@ -3211,6 +3309,16 @@
 
       if (likely (shdr != NULL))
 	{
+	  if ((shdr->sh_type == SHT_HASH || shdr->sh_type == SHT_GNU_HASH)
+	      && (shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    {
+	      if (elf_compress (scn, 0, 0) < 0)
+		printf ("WARNING: %s [%zd]\n",
+			gettext ("Couldn't uncompress section"),
+			elf_ndxscn (scn));
+	      shdr = gelf_getshdr (scn, &shdr_mem);
+	    }
+
 	  if (shdr->sh_type == SHT_HASH)
 	    {
 	      if (ebl_sysvhash_entrysize (ebl) == sizeof (Elf64_Xword))
@@ -8260,11 +8368,9 @@
 	  int n;
 	  for (n = 0; n < ndebug_sections; ++n)
 	    if (strcmp (name, debug_sections[n].name) == 0
-#if USE_ZLIB
 		|| (name[0] == '.' && name[1] == 'z'
 		    && debug_sections[n].name[1] == 'd'
 		    && strcmp (&name[2], &debug_sections[n].name[1]) == 0)
-#endif
 		)
 	      {
 		if ((print_debug_sections | implicit_debug_sections)
@@ -9396,16 +9502,34 @@
 	    elf_ndxscn (scn), name);
   else
     {
+      if (print_decompress)
+	{
+	  /* We try to decompress the section, but keep the old shdr around
+	     so we can show both the original shdr size and the uncompressed
+	     data size.   */
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    elf_compress (scn, 0, 0);
+	  else if (strncmp (name, ".zdebug", strlen (".zdebug")) == 0)
+	    elf_compress_gnu (scn, 0, 0);
+	}
+
       Elf_Data *data = elf_rawdata (scn, NULL);
       if (data == NULL)
 	error (0, 0, gettext ("cannot get data for section [%zu] '%s': %s"),
 	       elf_ndxscn (scn), name, elf_errmsg (-1));
       else
 	{
-	  printf (gettext ("\nHex dump of section [%zu] '%s', %" PRIu64
-			   " bytes at offset %#0" PRIx64 ":\n"),
-		  elf_ndxscn (scn), name,
-		  shdr->sh_size, shdr->sh_offset);
+	  if (data->d_size == shdr->sh_size)
+	    printf (gettext ("\nHex dump of section [%zu] '%s', %" PRIu64
+			     " bytes at offset %#0" PRIx64 ":\n"),
+		    elf_ndxscn (scn), name,
+		    shdr->sh_size, shdr->sh_offset);
+	  else
+	    printf (gettext ("\nHex dump of section [%zu] '%s', %" PRIu64
+			     " bytes (%zd uncompressed) at offset %#0"
+			     PRIx64 ":\n"),
+		    elf_ndxscn (scn), name,
+		    shdr->sh_size, data->d_size, shdr->sh_offset);
 	  hex_dump (data->d_buf, data->d_size);
 	}
     }
@@ -9419,16 +9543,34 @@
 	    elf_ndxscn (scn), name);
   else
     {
+      if (print_decompress)
+	{
+	  /* We try to decompress the section, but keep the old shdr around
+	     so we can show both the original shdr size and the uncompressed
+	     data size.  */
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    elf_compress (scn, 0, 0);
+	  else if (strncmp (name, ".zdebug", strlen (".zdebug")) == 0)
+	    elf_compress_gnu (scn, 0, 0);
+	}
+
       Elf_Data *data = elf_rawdata (scn, NULL);
       if (data == NULL)
 	error (0, 0, gettext ("cannot get data for section [%zu] '%s': %s"),
 	       elf_ndxscn (scn), name, elf_errmsg (-1));
       else
 	{
-	  printf (gettext ("\nString section [%zu] '%s' contains %" PRIu64
-			   " bytes at offset %#0" PRIx64 ":\n"),
-		  elf_ndxscn (scn), name,
-		  shdr->sh_size, shdr->sh_offset);
+	  if (data->d_size == shdr->sh_size)
+	    printf (gettext ("\nString section [%zu] '%s' contains %" PRIu64
+			     " bytes at offset %#0" PRIx64 ":\n"),
+		    elf_ndxscn (scn), name,
+		    shdr->sh_size, shdr->sh_offset);
+	  else
+	    printf (gettext ("\nString section [%zu] '%s' contains %" PRIu64
+			     " bytes (%zd uncompressed) at offset %#0"
+			     PRIx64 ":\n"),
+		    elf_ndxscn (scn), name,
+		    shdr->sh_size, data->d_size, shdr->sh_offset);
 
 	  const char *start = data->d_buf;
 	  const char *const limit = start + data->d_size;
diff --git a/tests/ChangeLog b/tests/ChangeLog
index b8d1d95..37f9811 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,113 @@
+2016-01-13  Mark Wielaard  <mjw@redhat.com>
+
+	* dwfl-bug-fd-leak.c: Skip test unless on __linux__.
+
+2016-01-13  Mark Wielaard  <mjw@redhat.com>
+
+	* dwfl-proc-attach.c: Guard linux specific header.
+
+2016-01-13  Mark Wielaard  <mjw@redhat.com>
+
+	* system-elf-libelf-test.c: New test.
+	* Makefile.am (TESTS): Add system-elf-libelf-test, if !STANDALONE.
+	(check_PROGRAMS): Likewise.
+	(system_elf_libelf_test_CPPFLAGS): New variable.
+	(system_elf_libelf_test_LDADD): Likewise.
+
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* elfputzdata.c (main): Fix parentheses in strncmp test.
+
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* elfputzdata.c (main): Use PRId64 to print 64 bit value.
+
+2016-01-08  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (TESTS): Always unconditionally add
+	run-readelf-zdebug.sh and run-readelf-zdebug-rel.sh.
+
+2015-12-16  Mark Wielaard  <mjw@redhat.com>
+
+	* run-compress-test.sh: New test.
+	* Makefile.am (TESTS): Add run-compress-test.sh.
+	(EXTRA_DISTS): Likewise.
+
+2015-11-26  Mark Wielaard  <mjw@redhat.com>
+
+	* zstrptr.c: New file.
+	* run-zstrptr.sh: New test.
+	* elfputzdata.c (main): (re)compress .shstrtab.
+	* run-elfputzdata.sh: Expect .shstrtab compression.
+	* Makefile.am (check_PROGRAMS): Add zstrptr.
+	(TESTS): Add run-zstrptr.sh.
+	(EXTRA_DIST): Likewise.
+	(zstrptr_LDADD): New variable.
+
+2015-10-20  Mark Wielaard  <mjw@redhat.com>
+
+	* run-readelf-zx.sh: New test.
+	* run-readelf-zp.sh: Likewise.
+	* Makefile.am (TESTS): Add run-readelf-zx.sh and run-readelf-zp.sh.
+	(EXTRA_DIST): Likewise.
+
+2015-10-21  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (check_PROGRAMS): Add elfgetzdata and elfputzdata.
+	(TESTS): Add run-elfgetzdata.sh and run-elfputzdata.sh.
+	(EXTRA_DIST: Likewise.
+	(elfgetzdata_LDADD): New variable.
+	(elfputzdata_LDADD): Likewise.
+	* elfgetzdata.c: New file.
+	* elfputzdata.c: Likewise.
+	* msg_tst.c: Handle ELF_E_ALREADY_COMPRESSED,
+	ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
+	ELF_E_DECOMPRESS_ERROR.
+	* run-elfgetzdata.sh: New test.
+	* run-elfputzdata.sh: Likewise.
+
+2015-10-28  Mark Wielaard  <mjw@redhat.com>
+
+	* run-readelf-z.sh: New test.
+	* Makefile.am (TESTS): Add run-readelf-z.sh.
+	(EXTRA_DIST): Likewise.
+
+2015-10-28  Mark Wielaard  <mjw@redhat.com>
+
+	* elfgetchdr.c: New file.
+	* run-elfgetchdr.sh: New test.
+	* testfile-zgabi32.bz2: New testfile.
+	* testfile-zgabi32be.bz2: Likewise.
+	* testfile-zgabi64.bz2: Likewise.
+	* testfile-zgabi64be.bz2: Likewise.
+	* Makefile.am (check_PROGRAMS): Add elfgetchdr.
+	(TESTS): Add run-elfgetchdr.sh.
+	(EXTRA_DIST): Add run-elfgetchdr.sh, testfile-zgabi32.bz2,
+	testfile-zgabi32be.bz2, testfile-zgabi64.bz2, testfile-zgabi64be.bz2.
+	(welfgetchdr_LDADD): New variable.
+	* msg_tst.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
+	and ELF_E_INVALID_SECTION_FLAGS,
+
+
+2015-10-28  Mark Wielaard  <mjw@redhat.com>
+
+	* dwelfgnucompressed.c: New file.
+	* run-dwelfgnucompressed.sh: New test.
+	* testfile-zgnu32.bz2: New testfile.
+	* testfile-zgnu64.bz2: Likewise.
+	* Makefile.am (check_PROGRAMS): Add dwelfgnucompressed.
+	(TESTS): Add run-dwelfgnucompressed.sh.
+	(EXTRA_DIST): Add run-dwelfgnucompressed.sh, testfile-zgnu32.bz2,
+	testfile-zgnu64.bz2, testfile-zgnu32be.bz2, testfile-zgnu64be.bz2.
+	(dwelfgnucompressed_LDADD): New variable.
+
+2015-12-31  Mark Wielaard  <mjw@redhat.com>
+
+	* elfstrmerge.c (main): Warn about STT_SECTION symbol for shstrhndx.
+	* run-elfstrmerge-test.sh: New test.
+	* Makefile.am (TESTS): Add run-elfstrmerge-test.sh
+	(EXTRA_DIST): Likewise.
+
 2015-12-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
 	* run-backtrace-core-sparc.sh: New file.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8fca801..7b9e108 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -52,7 +52,8 @@
 		  backtrace-data backtrace-dwarf debuglink debugaltlink \
 		  buildid deleted deleted-lib.so aggregate_size vdsosyms \
 		  getsrc_die strptr newdata elfstrtab dwfl-proc-attach \
-		  elfshphehdr elfstrmerge
+		  elfshphehdr elfstrmerge dwelfgnucompressed elfgetchdr \
+		  elfgetzdata elfputzdata zstrptr
 
 asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
 	    asm-tst6 asm-tst7 asm-tst8 asm-tst9
@@ -80,7 +81,7 @@
 	run-strip-test9.sh run-strip-test10.sh \
 	run-strip-groups.sh run-strip-reloc.sh run-strip-strmerge.sh \
 	run-unstrip-test.sh run-unstrip-test2.sh \
-	run-unstrip-test3.sh run-unstrip-M.sh \
+	run-unstrip-test3.sh run-unstrip-M.sh run-elfstrmerge-test.sh \
 	run-ecp-test.sh run-ecp-test2.sh run-alldts.sh \
 	run-elflint-test.sh run-elflint-self.sh run-ranlib-test.sh \
 	run-ranlib-test2.sh run-ranlib-test3.sh run-ranlib-test4.sh \
@@ -90,7 +91,7 @@
 	run-readelf-test1.sh run-readelf-test2.sh run-readelf-test3.sh \
 	run-readelf-test4.sh run-readelf-twofiles.sh \
 	run-readelf-macro.sh run-readelf-loc.sh \
-	run-readelf-aranges.sh run-readelf-line.sh \
+	run-readelf-aranges.sh run-readelf-line.sh run-readelf-z.sh \
 	run-native-test.sh run-bug1-test.sh \
 	run-debuglink.sh run-debugaltlink.sh run-buildid.sh \
 	dwfl-bug-addr-overflow run-addrname-test.sh \
@@ -116,11 +117,15 @@
 	run-backtrace-core-s390x.sh run-backtrace-core-s390.sh \
 	run-backtrace-core-aarch64.sh run-backtrace-core-sparc.sh \
 	run-backtrace-demangle.sh run-stack-d-test.sh run-stack-i-test.sh \
-	run-stack-demangled-test.sh \
+	run-stack-demangled-test.sh run-readelf-zx.sh run-readelf-zp.sh \
 	run-readelf-dwz-multi.sh run-allfcts-multi.sh run-deleted.sh \
 	run-linkmap-cut.sh run-aggregate-size.sh vdsosyms run-readelf-A.sh \
 	run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \
-	elfshphehdr run-lfs-symbols.sh
+	elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh \
+	run-elfgetchdr.sh \
+	run-elfgetzdata.sh run-elfputzdata.sh run-zstrptr.sh \
+	run-compress-test.sh \
+	run-readelf-zdebug.sh run-readelf-zdebug-rel.sh
 
 if !BIARCH
 export ELFUTILS_DISABLE_BIARCH = 1
@@ -131,18 +136,14 @@
 endif
 
 if !STANDALONE
-check_PROGRAMS += msg_tst md5-sha1-test
-TESTS += msg_tst md5-sha1-test
+check_PROGRAMS += msg_tst md5-sha1-test system-elf-libelf-test
+TESTS += msg_tst md5-sha1-test system-elf-libelf-test
 endif
 
 if LZMA
 TESTS += run-readelf-s.sh run-dwflsyms.sh
 endif
 
-if ZLIB
-TESTS += run-readelf-zdebug.sh
-endif
-
 if HAVE_LIBASM
 check_PROGRAMS += $(asm_TESTS)
 TESTS += $(asm_TESTS)
@@ -167,7 +168,7 @@
 	     run-unstrip-test.sh run-unstrip-test2.sh \
 	     testfile-info-link.bz2 testfile-info-link.debuginfo.bz2 \
 	     testfile-info-link.stripped.bz2 run-unstrip-test3.sh \
-	     run-unstrip-M.sh \
+	     run-unstrip-M.sh run-elfstrmerge-test.sh \
 	     run-elflint-self.sh run-ranlib-test.sh run-ranlib-test2.sh \
 	     run-ranlib-test3.sh run-ranlib-test4.sh \
 	     run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \
@@ -208,6 +209,7 @@
 	     run-readelf-macro.sh testfilemacro.bz2 \
 	     run-readelf-loc.sh testfileloc.bz2 \
 	     run-readelf-aranges.sh run-readelf-line.sh testfilefoobarbaz.bz2 \
+	     run-readelf-z.sh \
 	     run-readelf-dwz-multi.sh libtestfile_multi_shared.so.bz2 \
 	     testfile_multi.dwz.bz2 testfile_multi_main.bz2 \
 	     testfile-dwzstr.bz2 testfile-dwzstr.multi.bz2 \
@@ -296,6 +298,9 @@
 	     run-stack-demangled-test.sh \
 	     testfiledwarfinlines.bz2 testfiledwarfinlines.core.bz2 \
 	     run-readelf-zdebug.sh testfile-debug.bz2 testfile-zdebug.bz2 \
+	     run-readelf-zdebug-rel.sh testfile-debug-rel.o.bz2 \
+	     testfile-debug-rel-g.o.bz2 testfile-debug-rel-z.o.bz2 \
+	     run-readelf-zx.sh run-readelf-zp.sh \
 	     run-deleted.sh run-linkmap-cut.sh linkmap-cut-lib.so.bz2 \
 	     linkmap-cut.bz2 linkmap-cut.core.bz2 \
 	     run-aggregate-size.sh testfile-sizes1.o.bz2 testfile-sizes2.o.bz2 \
@@ -306,7 +311,14 @@
 	     testfile-x32-core.bz2 testfile-x32.bz2 \
 	     backtrace.x32.core.bz2 backtrace.x32.exec.bz2 \
 	     testfile-x32-s.bz2 testfile-x32-d.bz2 testfile-x32-debug.bz2 \
-	     run-lfs-symbols.sh lfs-symbols testfile-nolfs.bz2
+	     run-lfs-symbols.sh lfs-symbols testfile-nolfs.bz2 \
+	     testfile-zgnu32.bz2 testfile-zgnu64.bz2 \
+	     testfile-zgnu32be.bz2 testfile-zgnu64be.bz2 \
+	     run-dwelfgnucompressed.sh \
+	     testfile-zgabi32.bz2 testfile-zgabi64.bz2 \
+	     testfile-zgabi32be.bz2 testfile-zgabi64be.bz2 \
+	     run-elfgetchdr.sh run-elfgetzdata.sh run-elfputzdata.sh \
+	     run-zstrptr.sh run-compress-test.sh
 
 if USE_VALGRIND
 valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1'
@@ -455,6 +467,16 @@
 dwfl_proc_attach_LDFLAGS = -pthread $(AM_LDFLAGS)
 elfshphehdr_LDADD =$(libelf)
 elfstrmerge_LDADD = $(libebl) $(libelf)
+dwelfgnucompressed_LDADD = $(libelf) $(libdw)
+elfgetchdr_LDADD = $(libelf) $(libdw)
+elfgetzdata_LDADD = $(libelf)
+elfputzdata_LDADD = $(libelf)
+zstrptr_LDADD = $(libelf)
+
+# We want to test the libelf header against the system elf.h header.
+# Don't include any -I CPPFLAGS.
+system_elf_libelf_test_CPPFLAGS =
+system_elf_libelf_test_LDADD = $(libelf)
 
 if GCOV
 check: check-am coverage
diff --git a/tests/dwelfgnucompressed.c b/tests/dwelfgnucompressed.c
new file mode 100644
index 0000000..0132271
--- /dev/null
+++ b/tests/dwelfgnucompressed.c
@@ -0,0 +1,104 @@
+/* Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <assert.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <inttypes.h>
+
+#include ELFUTILS_HEADER(elf)
+#include ELFUTILS_HEADER(dwelf)
+#include <gelf.h>
+
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+
+int
+main (int argc, char *argv[])
+{
+  int result = 0;
+  int cnt;
+
+  elf_version (EV_CURRENT);
+
+  for (cnt = 1; cnt < argc; ++cnt)
+    {
+      int fd = open (argv[cnt], O_RDONLY);
+
+      Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
+      if (elf == NULL)
+	{
+	  printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1));
+	  result = 1;
+	  close (fd);
+	  continue;
+	}
+
+      size_t shdrstrndx;
+      if (elf_getshdrstrndx (elf, &shdrstrndx) == -1)
+	{
+	  printf ("elf_getshdrstrnd failed %s\n", elf_errmsg (-1));
+	  result = 1;
+	  close (fd);
+	  continue;
+	}
+
+      Elf_Scn *scn = NULL;
+      while ((scn = elf_nextscn (elf, scn)) != NULL)
+	{
+	  int idx = elf_ndxscn (scn);
+	  GElf_Shdr shdr;
+	  if (gelf_getshdr (scn, &shdr) == NULL)
+	    {
+	      printf ("gelf_getshdr failed: %s\n", elf_errmsg (-1));
+	      result = 1;
+	      break;
+	    }
+
+	  const char *sname = elf_strptr (elf, shdrstrndx, shdr.sh_name);
+	  if (sname == NULL)
+	    {
+	      printf ("couldn't get section name: %s\n", elf_errmsg (-1));
+	      result = 1;
+	      break;
+	    }
+
+	  if (strncmp(".zdebug", sname, strlen (".zdebug")) == 0)
+	    {
+	      ssize_t size;
+	      if ((size = dwelf_scn_gnu_compressed_size (scn)) == -1)
+		{
+		  printf ("dwelf_scn_gnu_compressed_size failed: %s\n",
+			  elf_errmsg (-1));
+		  result = 1;
+		  break;
+		}
+	      printf ("section %d: GNU Compressed size: %zx\n", idx, size);
+	    }
+	}
+
+      elf_end (elf);
+      close (fd);
+    }
+
+  return result;
+}
diff --git a/tests/dwfl-bug-fd-leak.c b/tests/dwfl-bug-fd-leak.c
index bcbfb29..689cdd7 100644
--- a/tests/dwfl-bug-fd-leak.c
+++ b/tests/dwfl-bug-fd-leak.c
@@ -27,6 +27,15 @@
 #include <error.h>
 #include <unistd.h>
 #include <dwarf.h>
+
+#ifndef __linux__
+int
+main (void)
+{
+  return 77; /* dwfl_linux_proc_report is linux specific.  */
+}
+#else
+
 #include <sys/resource.h>
 #include ELFUTILS_HEADER(dwfl)
 
@@ -104,3 +113,4 @@
 
   return 0;
 }
+#endif
diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c
index 0ba0be2..e7bb201 100644
--- a/tests/dwfl-proc-attach.c
+++ b/tests/dwfl-proc-attach.c
@@ -22,6 +22,7 @@
 #include <errno.h>
 #include <error.h>
 #include <unistd.h>
+#ifdef __linux__
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/user.h>
@@ -29,6 +30,7 @@
 #include <string.h>
 #include ELFUTILS_HEADER(dwfl)
 #include <pthread.h>
+#endif
 
 #ifndef __linux__
 int
diff --git a/tests/elfgetchdr.c b/tests/elfgetchdr.c
new file mode 100644
index 0000000..44ba178
--- /dev/null
+++ b/tests/elfgetchdr.c
@@ -0,0 +1,124 @@
+/* Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <assert.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <inttypes.h>
+
+#include ELFUTILS_HEADER(elf)
+#include ELFUTILS_HEADER(dwelf)
+#include <gelf.h>
+
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+
+int
+main (int argc, char *argv[])
+{
+  int result = 0;
+  int cnt;
+
+  elf_version (EV_CURRENT);
+
+  for (cnt = 1; cnt < argc; ++cnt)
+    {
+      int fd = open (argv[cnt], O_RDONLY);
+
+      Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
+      if (elf == NULL)
+	{
+	  printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1));
+	  result = 1;
+	  close (fd);
+	  continue;
+	}
+
+      size_t shdrstrndx;
+      if (elf_getshdrstrndx (elf, &shdrstrndx) == -1)
+	{
+	  printf ("elf_getshdrstrnd failed %s\n", elf_errmsg (-1));
+	  result = 1;
+	  close (fd);
+	  continue;
+	}
+
+      Elf_Scn *scn = NULL;
+      while ((scn = elf_nextscn (elf, scn)) != NULL)
+	{
+	  int idx = elf_ndxscn (scn);
+	  GElf_Shdr shdr;
+	  if (gelf_getshdr (scn, &shdr) == NULL)
+	    {
+	      printf ("gelf_getshdr failed: %s\n", elf_errmsg (-1));
+	      result = 1;
+	      break;
+	    }
+
+	  if ((shdr.sh_flags & SHF_COMPRESSED) != 0)
+	    {
+	      GElf_Chdr chdr;
+	      if (gelf_getchdr (scn, &chdr) == NULL)
+		{
+		  printf ("gelf_getchdr failed: %s\n", elf_errmsg (-1));
+		  result = 1;
+		  break;
+		}
+
+	      printf ("section %d: ELF Compressed ch_type: %" PRId32
+		      ", ch_size: %" PRIx64 ", ch_addralign: %" PRIx64 "\n",
+		      idx, chdr.ch_type, chdr.ch_size, chdr.ch_addralign);
+	    }
+	  else
+	    {
+	      const char *sname = elf_strptr (elf, shdrstrndx, shdr.sh_name);
+	      if (sname == NULL)
+		{
+		  printf ("couldn't get section name: %s\n", elf_errmsg (-1));
+		  result = 1;
+		  break;
+		}
+
+	      /* This duplicates what the dwelfgnucompressed testcase does.  */
+	      if (strncmp(".zdebug", sname, strlen (".zdebug")) == 0)
+		{
+		  ssize_t size;
+		  if ((size = dwelf_scn_gnu_compressed_size (scn)) == -1)
+		    {
+		      printf ("dwelf_scn_gnu_compressed_size failed: %s\n",
+			      elf_errmsg (-1));
+		      result = 1;
+		      break;
+		    }
+		  printf ("section %d: GNU Compressed size: %zx\n", idx, size);
+		}
+	      else
+		printf ("section %d: NOT Compressed\n", idx);
+	    }
+	}
+
+      elf_end (elf);
+      close (fd);
+    }
+
+  return result;
+}
diff --git a/tests/elfgetzdata.c b/tests/elfgetzdata.c
new file mode 100644
index 0000000..82afbe5
--- /dev/null
+++ b/tests/elfgetzdata.c
@@ -0,0 +1,113 @@
+/* Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <libelf.h>
+#include <gelf.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+
+int
+main (int argc, char *argv[])
+{
+  int result = 0;
+  int cnt;
+
+  if (argc < 3
+      || (strcmp (argv[1], "read") != 0
+          && strcmp (argv[1], "mmap") != 0))
+    {
+      printf ("Usage: (read|mmap) files...\n");
+      return -1;
+    }
+
+  bool mmap = strcmp (argv[1], "mmap") == 0;
+
+  elf_version (EV_CURRENT);
+
+  for (cnt = 2; cnt < argc; ++cnt)
+    {
+      int fd = open (argv[cnt], O_RDONLY);
+
+      Elf *elf = elf_begin (fd, mmap ? ELF_C_READ_MMAP : ELF_C_READ, NULL);
+      if (elf == NULL)
+	{
+	  printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1));
+	  result = 1;
+	  close (fd);
+	  continue;
+	}
+
+      /* To get the section names.  */
+      size_t strndx;
+      elf_getshdrstrndx (elf, &strndx);
+
+      Elf_Scn *scn = NULL;
+      while ((scn = elf_nextscn (elf, scn)) != NULL)
+	{
+	  size_t idx = elf_ndxscn (scn);
+	  GElf_Shdr mem;
+	  GElf_Shdr *shdr = gelf_getshdr (scn, &mem);
+	  const char *name = elf_strptr (elf, strndx, shdr->sh_name);
+	  if ((shdr->sh_flags & SHF_COMPRESSED) != 0)
+	    {
+	      /* Real compressed section.  */
+	      if (elf_compress (scn, 0, 0) < 0)
+		{
+		  printf ("elf_compress failed for section %zd: %s\n",
+			  idx, elf_errmsg (-1));
+		  return -1;
+		}
+	      Elf_Data *d = elf_getdata (scn, NULL);
+	      printf ("%zd: %s, ELF compressed, size: %zx\n",
+		      idx, name, d->d_size);
+	    }
+	  else
+	    {
+	      /* Maybe an old GNU compressed .z section?  */
+	      if (name[0] == '.' && name[1] == 'z')
+		{
+		  if (elf_compress_gnu (scn, 0, 0) < 0)
+		    {
+		      printf ("elf_compress_gnu failed for section %zd: %s\n",
+			      idx, elf_errmsg (-1));
+		      return -1;
+		    }
+		  Elf_Data *d = elf_getdata (scn, NULL);
+		  printf ("%zd: %s, GNU compressed, size: %zx\n",
+			  idx, name, d->d_size);
+		}
+	      else
+		printf ("%zd: %s, NOT compressed\n", idx, name);
+	    }
+	}
+
+      elf_end (elf);
+      close (fd);
+    }
+
+  return result;
+}
diff --git a/tests/elfputzdata.c b/tests/elfputzdata.c
new file mode 100644
index 0000000..66ab77b
--- /dev/null
+++ b/tests/elfputzdata.c
@@ -0,0 +1,237 @@
+/* Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <libelf.h>
+#include <gelf.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+
+int
+main (int argc, char *argv[])
+{
+  int result = 0;
+  int cnt;
+
+  if (argc < 3
+      || (strcmp (argv[1], "elf") != 0
+	  && strcmp (argv[1], "gnu") != 0))
+    {
+      printf ("Usage: (elf|gnu) files...\n");
+      return -1;
+    }
+
+  int gnu;
+  if (strcmp (argv[1], "gnu") == 0)
+    gnu = 1;
+  else
+    gnu = 0;
+
+  elf_version (EV_CURRENT);
+
+  for (cnt = 2; cnt < argc; ++cnt)
+    {
+      int fd = open (argv[cnt], O_RDONLY);
+
+      Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
+      if (elf == NULL)
+	{
+	  printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1));
+	  result = 1;
+	  close (fd);
+	  continue;
+	}
+
+      /* To get the section names.  */
+      size_t strndx;
+      elf_getshdrstrndx (elf, &strndx);
+
+      Elf_Scn *scn = NULL;
+      while ((scn = elf_nextscn (elf, scn)) != NULL)
+	{
+	  size_t idx = elf_ndxscn (scn);
+	  GElf_Shdr mem;
+	  GElf_Shdr *shdr = gelf_getshdr (scn, &mem);
+	  const char *name = elf_strptr (elf, strndx, shdr->sh_name);
+	  if (shdr->sh_type == SHT_NOBITS
+	      || (shdr->sh_flags & SHF_ALLOC) != 0)
+	    {
+	      printf ("Cannot compress %zd %s\n", idx, name);
+	    }
+	  else if ((shdr->sh_flags & SHF_COMPRESSED) != 0
+		   || strncmp (name, ".zdebug", strlen (".zdebug")) == 0)
+	    {
+	      printf ("Already compressed %zd %s\n", idx, name);
+	    }
+	  else
+	    {
+	      size_t orig_size = shdr->sh_size;
+	      printf ("Lets compress %zd %s, size: %" PRId64 "\n",
+		      idx, name, shdr->sh_size);
+	      Elf_Data *d = elf_getdata (scn, NULL);
+	      if (d == NULL)
+		{
+		  printf ("Couldn't get orig data for section %zd\n", idx);
+		  return -1;
+		}
+	      /* Make a copy so we can compare after
+		 compression/decompression.  */
+	      if (d->d_size != orig_size)
+		{
+		  printf ("Unexpected data size for orig section %zd\n", idx);
+		  return -1;
+		}
+	      char *orig_buf = malloc (d->d_size);
+	      if (orig_size > 0 && orig_buf == NULL)
+		{
+		  printf ("No memory to copy section %zd data\n", idx);
+		  return -1;
+		}
+	      if (orig_size > 0)
+		memcpy (orig_buf, d->d_buf, orig_size);
+
+	      bool forced = false;
+	      if (gnu)
+		{
+		  int res = elf_compress_gnu (scn, 1, 0);
+		  if (res == 0)
+		    {
+		      forced = true;
+		      res = elf_compress_gnu (scn, 1, ELF_CHF_FORCE);
+		    }
+		  if (res < 0)
+		    {
+		      printf ("elf_compress_gnu%sfailed for section %zd: %s\n",
+			      forced ? " (forced) " : " ",
+			      idx, elf_errmsg (-1));
+		      return -1;
+		    }
+		}
+	      else
+		{
+		  int res = elf_compress (scn, ELFCOMPRESS_ZLIB, 0);
+		  if (res == 0)
+		    {
+		      forced = true;
+		      res = elf_compress (scn, ELFCOMPRESS_ZLIB, ELF_CHF_FORCE);
+		    }
+		  if (res < 0)
+		    {
+		      printf ("elf_compress%sfailed for section %zd: %s\n",
+			      forced ? " (forced) " : " ",
+			      idx, elf_errmsg (-1));
+		      return -1;
+		    }
+		}
+	      GElf_Shdr newmem;
+	      GElf_Shdr *newshdr = gelf_getshdr (scn, &newmem);
+	      size_t new_size = newshdr->sh_size;
+	      d = elf_getdata (scn, NULL);
+	      // Don't check this, might depend on zlib implementation.
+	      // fprintf (stderr, "  new_size: %zd\n", new_size);
+	      if (d->d_size != new_size)
+		{
+		  printf ("Unexpected data size for compressed section %zd\n",
+			  idx);
+		  return -1;
+		}
+
+	      if (forced && new_size < orig_size)
+		{
+		  printf ("section %zd forced to compress, but size smaller\n",
+			  idx);
+		  return -1;
+		}
+
+	      if (! forced && new_size >= orig_size)
+		{
+		  printf ("section %zd compressed to bigger size\n",
+			  idx);
+		  return -1;
+		}
+
+	      if (new_size == orig_size
+		  && memcmp (orig_buf, d->d_buf, orig_size) == 0)
+		{
+		  printf ("section %zd didn't compress\n", idx);
+		  return -1;
+		}
+
+	      if (gnu)
+		{
+		  if (elf_compress_gnu (scn, 0, 0) < 0)
+		    {
+		      printf ("elf_[un]compress_gnu failed for section %zd: %s\n",
+			      idx, elf_errmsg (-1));
+		      return -1;
+		    }
+		}
+	      else
+		{
+		  if (elf_compress (scn, 0, 0) < 0)
+		    {
+		      printf ("elf_[un]compress failed for section %zd: %s\n",
+			      idx, elf_errmsg (-1));
+		      return -1;
+		    }
+		}
+	      GElf_Shdr newermem;
+	      GElf_Shdr *newershdr = gelf_getshdr (scn, &newermem);
+	      size_t newer_size = newershdr->sh_size;
+	      d = elf_getdata (scn, NULL);
+	      // fprintf (stderr, "  newer_size: %zd\n", newer_size);
+	      if (d->d_size != newer_size)
+		{
+		  printf ("Unexpected data size for compressed section %zd\n",
+			  idx);
+		  return -1;
+		}
+	      if (newer_size != orig_size
+		  && memcmp (orig_buf, d->d_buf, orig_size) != 0)
+		{
+		  printf ("section %zd didn't correctly uncompress\n", idx);
+		  return -1;
+		}
+	      free (orig_buf);
+	      // Recompress the string table, just to make sure
+	      // everything keeps working. See elf_strptr above.
+	      if (! gnu && idx == strndx
+		  && elf_compress (scn, ELFCOMPRESS_ZLIB, 0) < 0)
+		{
+		  printf ("couldn't recompress section header strings: %s\n",
+			  elf_errmsg (-1));
+		  return -1;
+		}
+	    }
+	}
+
+      elf_end (elf);
+      close (fd);
+    }
+
+  return result;
+}
diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c
index 6b927c8..4149ca6 100644
--- a/tests/elfstrmerge.c
+++ b/tests/elfstrmerge.c
@@ -518,8 +518,13 @@
 		    if (gelf_getsym (data, i, &sym) == NULL)
 		      fail_elf_idx ("Couldn't get symbol", fname, i);
 
-		    if (sym.st_shndx != SHN_UNDEF
-			&& sym.st_shndx < SHN_LORESERVE)
+		    if (GELF_ST_TYPE (sym.st_info) == STT_SECTION
+			&& sym.st_shndx == shdrstrndx)
+		      fprintf (stderr, "WARNING:"
+			       " symbol table [%zd] contains section symbol %zd"
+			       " for old shdrstrndx %zd\n", ndx, i, shdrstrndx);
+		    else if (sym.st_shndx != SHN_UNDEF
+			     && sym.st_shndx < SHN_LORESERVE)
 		      sym.st_shndx = newsecndx (sym.st_shndx, "section", ndx,
 						"symbol", i);
 		    if (update_name && sym.st_name != 0)
diff --git a/tests/msg_tst.c b/tests/msg_tst.c
index 10ff0f7..7baea0a 100644
--- a/tests/msg_tst.c
+++ b/tests/msg_tst.c
@@ -74,7 +74,14 @@
       "program header only allowed in executables, shared objects, \
 and core files" },
     { ELF_E_NO_PHDR, "file has no program header" },
-    { ELF_E_INVALID_OFFSET, "invalid offset" }
+    { ELF_E_INVALID_OFFSET, "invalid offset" },
+    { ELF_E_INVALID_SECTION_TYPE , "invalid section type" },
+    { ELF_E_INVALID_SECTION_FLAGS , "invalid section flags" },
+    { ELF_E_NOT_COMPRESSED, "section does not contain compressed data" },
+    { ELF_E_ALREADY_COMPRESSED, "section contains compressed data" },
+    { ELF_E_UNKNOWN_COMPRESSION_TYPE, "unknown compression type" },
+    { ELF_E_COMPRESS_ERROR, "cannot compress data" },
+    { ELF_E_DECOMPRESS_ERROR, "cannot decompress data" }
   };
 
 
diff --git a/tests/run-compress-test.sh b/tests/run-compress-test.sh
new file mode 100755
index 0000000..a6a298f
--- /dev/null
+++ b/tests/run-compress-test.sh
@@ -0,0 +1,102 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# uncompress -> gnucompress -> uncompress -> elfcompress -> uncompress
+testrun_elfcompress_file()
+{
+    infile="$1"
+    uncompressedfile="${infile}.uncompressed"
+    tempfiles "$uncompressedfile"
+    
+    echo "uncompress $infile -> $uncompressedfile"
+    testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${uncompressedfile} ${infile}
+    testrun ${abs_top_builddir}/src/elflint --gnu-ld ${uncompressedfile}
+
+    SIZE_uncompressed=$(stat -c%s $uncompressedfile)
+
+    gnucompressedfile="${infile}.gnu"
+    tempfiles "$gnucompressedfile"
+    echo "compress gnu $uncompressedfile -> $gnucompressedfile"
+    testrun ${abs_top_builddir}/src/elfcompress -v -t gnu -o ${gnucompressedfile} ${uncompressedfile}
+    testrun ${abs_top_builddir}/src/elflint --gnu-ld ${gnucompressedfile}
+
+    SIZE_gnucompressed=$(stat -c%s $gnucompressedfile)
+    test $SIZE_gnucompressed -lt $SIZE_uncompressed ||
+	{ echo "*** failure $gnucompressedfile not smaller"; exit -1; }
+    
+    gnuuncompressedfile="${infile}.gnu.uncompressed"
+    tempfiles "$gnuuncompressedfile"
+    echo "uncompress $gnucompressedfile -> $gnuuncompressedfile"
+    testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${gnuuncompressedfile} ${gnucompressedfile}
+    testrun ${abs_top_builddir}/src/elfcmp ${uncompressedfile} ${gnuuncompressedfile}
+
+    elfcompressedfile="${infile}.gabi"
+    tempfiles "$elfcompressedfile"
+    echo "compress gabi $uncompressedfile -> $elfcompressedfile"
+    testrun ${abs_top_builddir}/src/elfcompress -v -t zlib -o ${elfcompressedfile} ${uncompressedfile}
+    testrun ${abs_top_builddir}/src/elflint --gnu-ld ${elfcompressedfile}
+
+    SIZE_elfcompressed=$(stat -c%s $elfcompressedfile)
+    test $SIZE_elfcompressed -lt $SIZE_uncompressed ||
+	{ echo "*** failure $elfcompressedfile not smaller"; exit -1; }
+    
+    elfuncompressedfile="${infile}.gabi.uncompressed"
+    tempfiles "$elfuncompressedfile"
+    echo "uncompress $elfcompressedfile -> $elfuncompressedfile"
+    testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${elfuncompressedfile} ${elfcompressedfile}
+    testrun ${abs_top_builddir}/src/elfcmp ${uncompressedfile} ${elfuncompressedfile}
+}
+
+testrun_elfcompress()
+{
+    testfile="$1"
+    testfiles ${testfile}
+    testrun_elfcompress_file ${testfile}
+
+    # Merge the string tables to make things a little more interesting.
+    mergedfile="${testfile}.merged"
+    tempfiles ${mergedfile}
+    echo "merging string tables ${testfile} -> ${mergedfile}"
+    testrun ${abs_top_builddir}/tests/elfstrmerge -o ${mergedfile} ${testfile}
+    testrun_elfcompress_file ${mergedfile}
+}
+
+# Random ELF32 testfile
+testrun_elfcompress testfile4
+
+# Random ELF64 testfile
+testrun_elfcompress testfile12
+
+# Random ELF64BE testfile
+testrun_elfcompress testfileppc64
+
+# Random ELF32BE testfile
+testrun_elfcompress testfileppc32
+
+# Already compressed files
+testrun_elfcompress testfile-zgnu64
+testrun_elfcompress testfile-zgnu64be
+testrun_elfcompress testfile-zgabi64
+testrun_elfcompress testfile-zgabi64be
+testrun_elfcompress testfile-zgnu32
+testrun_elfcompress testfile-zgnu32be
+testrun_elfcompress testfile-zgabi32
+testrun_elfcompress testfile-zgabi32be
+
+exit 0
diff --git a/tests/run-dwelfgnucompressed.sh b/tests/run-dwelfgnucompressed.sh
new file mode 100755
index 0000000..b93a56f
--- /dev/null
+++ b/tests/run-dwelfgnucompressed.sh
@@ -0,0 +1,108 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# = funcs.s =
+# .globl testfunc
+# testfunc:
+# 	nop
+# 	ret
+# .type testfunc, @function
+# .size testfunc, .-testfunc
+#
+# .globl testfunc2
+# testfunc2:
+# 	call testfunc
+# 	nop
+# 	nop
+# 	ret
+# .type testfunc2, @function
+# .size testfunc2, .-testfunc2
+#
+# .globl functest3
+# functest3:
+# 	jmp local
+# 	nop
+# 	nop
+# local:
+# 	call testfunc2
+# 	ret
+# .type functest3, @function
+# .size functest3, .-functest3
+
+# = start.s =
+# .global _start
+# _start:
+# 	call functest3
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	ret
+# .type _start, @function
+# .size _start, .-_start
+
+# gas --compress-debug-sections=zlib-gnu -32 -g -o start.o start.s
+# gas --compress-debug-sections=zlib-gnu -32 -g -o funcs.o funcs.s
+# ld --compress-debug-sections=zlib-gnu -melf_i386 -g -o zgnu32 funcs.o start.o
+
+# gas --compress-debug-sections=zlib-gnu -64 -g -o start.o start.s
+# gas --compress-debug-sections=zlib-gnu -64 -g -o funcs.o funcs.s
+# ld --compress-debug-sections=zlib-gnu -g -o zgnu32 funcs.o start.o
+
+testfiles testfile-zgnu64
+testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu64 <<\EOF
+section 2: GNU Compressed size: 60
+section 3: GNU Compressed size: aa
+section 5: GNU Compressed size: 8d
+EOF
+
+testfiles testfile-zgnu64be
+testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu64be <<\EOF
+section 3: GNU Compressed size: 60
+section 4: GNU Compressed size: 7e
+section 6: GNU Compressed size: 8d
+EOF
+
+testfiles testfile-zgnu32
+testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu32 <<\EOF
+section 2: GNU Compressed size: 40
+section 3: GNU Compressed size: 9a
+section 5: GNU Compressed size: 85
+EOF
+
+testfiles testfile-zgnu32be
+testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu32be <<\EOF
+section 3: GNU Compressed size: 40
+section 4: GNU Compressed size: 6e
+section 6: GNU Compressed size: 85
+EOF
+
+exit 0
diff --git a/tests/run-elfgetchdr.sh b/tests/run-elfgetchdr.sh
new file mode 100755
index 0000000..7a422f3
--- /dev/null
+++ b/tests/run-elfgetchdr.sh
@@ -0,0 +1,188 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# = funcs.s =
+# .globl testfunc
+# testfunc:
+# 	nop
+# 	ret
+# .type testfunc, @function
+# .size testfunc, .-testfunc
+#
+# .globl testfunc2
+# testfunc2:
+# 	call testfunc
+# 	nop
+# 	nop
+# 	ret
+# .type testfunc2, @function
+# .size testfunc2, .-testfunc2
+#
+# .globl functest3
+# functest3:
+# 	jmp local
+# 	nop
+# 	nop
+# local:
+# 	call testfunc2
+# 	ret
+# .type functest3, @function
+# .size functest3, .-functest3
+
+# = start.s =
+# .global _start
+# _start:
+# 	call functest3
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	nop
+# 	ret
+# .type _start, @function
+# .size _start, .-_start
+
+# gas --compress-debug-sections=zlib-gnu -32 -g -o start.o start.s
+# gas --compress-debug-sections=zlib-gnu -32 -g -o funcs.o funcs.s
+# ld --compress-debug-sections=zlib-gnu -melf_i386 -g -o zgnu32 funcs.o start.o
+
+# gas --compress-debug-sections=zlib-gnu -64 -g -o start.o start.s
+# gas --compress-debug-sections=zlib-gnu -64 -g -o funcs.o funcs.s
+# ld --compress-debug-sections=zlib-gnu -g -o zgnu64 funcs.o start.o
+
+# gas --compress-debug-sections=zlib-gabi -32 -g -o start.o start.s
+# gas --compress-debug-sections=zlib-gabi -32 -g -o funcs.o funcs.s
+# ld --compress-debug-sections=zlib-gabi -melf_i386 -g -o zgabi32 funcs.o start.o
+
+# gas --compress-debug-sections=zlib-gabi -64 -g -o start.o start.s
+# gas --compress-debug-sections=zlib-gabi -64 -g -o funcs.o funcs.s
+# ld --compress-debug-sections=zlib-gabi -g -o zgabi64 funcs.o start.o
+
+testfiles testfile-zgnu64
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu64 <<\EOF
+section 1: NOT Compressed
+section 2: GNU Compressed size: 60
+section 3: GNU Compressed size: aa
+section 4: NOT Compressed
+section 5: GNU Compressed size: 8d
+section 6: NOT Compressed
+section 7: NOT Compressed
+section 8: NOT Compressed
+EOF
+
+testfiles testfile-zgabi64
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi64 <<\EOF
+section 1: NOT Compressed
+section 2: ELF Compressed ch_type: 1, ch_size: 60, ch_addralign: 10
+section 3: ELF Compressed ch_type: 1, ch_size: aa, ch_addralign: 1
+section 4: NOT Compressed
+section 5: ELF Compressed ch_type: 1, ch_size: 8d, ch_addralign: 1
+section 6: NOT Compressed
+section 7: NOT Compressed
+section 8: NOT Compressed
+EOF
+
+testfiles testfile-zgnu32
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu32 <<\EOF
+section 1: NOT Compressed
+section 2: GNU Compressed size: 40
+section 3: GNU Compressed size: 9a
+section 4: NOT Compressed
+section 5: GNU Compressed size: 85
+section 6: NOT Compressed
+section 7: NOT Compressed
+section 8: NOT Compressed
+EOF
+
+testfiles testfile-zgabi32
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi32 <<\EOF
+section 1: NOT Compressed
+section 2: ELF Compressed ch_type: 1, ch_size: 40, ch_addralign: 8
+section 3: ELF Compressed ch_type: 1, ch_size: 9a, ch_addralign: 1
+section 4: NOT Compressed
+section 5: ELF Compressed ch_type: 1, ch_size: 85, ch_addralign: 1
+section 6: NOT Compressed
+section 7: NOT Compressed
+section 8: NOT Compressed
+EOF
+
+testfiles testfile-zgnu64be
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu64be <<\EOF
+section 1: NOT Compressed
+section 2: NOT Compressed
+section 3: GNU Compressed size: 60
+section 4: GNU Compressed size: 7e
+section 5: NOT Compressed
+section 6: GNU Compressed size: 8d
+section 7: NOT Compressed
+section 8: NOT Compressed
+section 9: NOT Compressed
+EOF
+
+testfiles testfile-zgabi64be
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi64be <<\EOF
+section 1: NOT Compressed
+section 2: NOT Compressed
+section 3: ELF Compressed ch_type: 1, ch_size: 60, ch_addralign: 10
+section 4: ELF Compressed ch_type: 1, ch_size: 7e, ch_addralign: 1
+section 5: NOT Compressed
+section 6: ELF Compressed ch_type: 1, ch_size: 8d, ch_addralign: 1
+section 7: NOT Compressed
+section 8: NOT Compressed
+section 9: NOT Compressed
+EOF
+
+testfiles testfile-zgnu32be
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu32be <<\EOF
+section 1: NOT Compressed
+section 2: NOT Compressed
+section 3: GNU Compressed size: 40
+section 4: GNU Compressed size: 6e
+section 5: NOT Compressed
+section 6: GNU Compressed size: 85
+section 7: NOT Compressed
+section 8: NOT Compressed
+section 9: NOT Compressed
+EOF
+
+testfiles testfile-zgabi32be
+testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi32be <<\EOF
+section 1: NOT Compressed
+section 2: NOT Compressed
+section 3: ELF Compressed ch_type: 1, ch_size: 40, ch_addralign: 8
+section 4: ELF Compressed ch_type: 1, ch_size: 6e, ch_addralign: 1
+section 5: NOT Compressed
+section 6: ELF Compressed ch_type: 1, ch_size: 85, ch_addralign: 1
+section 7: NOT Compressed
+section 8: NOT Compressed
+section 9: NOT Compressed
+EOF
+
+exit 0
diff --git a/tests/run-elfgetzdata.sh b/tests/run-elfgetzdata.sh
new file mode 100755
index 0000000..e2df308
--- /dev/null
+++ b/tests/run-elfgetzdata.sh
@@ -0,0 +1,214 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# See run-elfgetchdr.sh for testfiles.
+
+testfiles testfile-zgnu64
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu64 <<\EOF
+1: .text, NOT compressed
+2: .zdebug_aranges, GNU compressed, size: 60
+3: .zdebug_info, GNU compressed, size: aa
+4: .debug_abbrev, NOT compressed
+5: .zdebug_line, GNU compressed, size: 8d
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu64 <<\EOF
+1: .text, NOT compressed
+2: .zdebug_aranges, GNU compressed, size: 60
+3: .zdebug_info, GNU compressed, size: aa
+4: .debug_abbrev, NOT compressed
+5: .zdebug_line, GNU compressed, size: 8d
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgnu64be
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu64be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .zdebug_aranges, GNU compressed, size: 60
+4: .zdebug_info, GNU compressed, size: 7e
+5: .debug_abbrev, NOT compressed
+6: .zdebug_line, GNU compressed, size: 8d
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu64be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .zdebug_aranges, GNU compressed, size: 60
+4: .zdebug_info, GNU compressed, size: 7e
+5: .debug_abbrev, NOT compressed
+6: .zdebug_line, GNU compressed, size: 8d
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgabi64
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi64 <<\EOF
+1: .text, NOT compressed
+2: .debug_aranges, ELF compressed, size: 60
+3: .debug_info, ELF compressed, size: aa
+4: .debug_abbrev, NOT compressed
+5: .debug_line, ELF compressed, size: 8d
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi64 <<\EOF
+1: .text, NOT compressed
+2: .debug_aranges, ELF compressed, size: 60
+3: .debug_info, ELF compressed, size: aa
+4: .debug_abbrev, NOT compressed
+5: .debug_line, ELF compressed, size: 8d
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgabi64be
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi64be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .debug_aranges, ELF compressed, size: 60
+4: .debug_info, ELF compressed, size: 7e
+5: .debug_abbrev, NOT compressed
+6: .debug_line, ELF compressed, size: 8d
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi64be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .debug_aranges, ELF compressed, size: 60
+4: .debug_info, ELF compressed, size: 7e
+5: .debug_abbrev, NOT compressed
+6: .debug_line, ELF compressed, size: 8d
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgnu32
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu32 <<\EOF
+1: .text, NOT compressed
+2: .zdebug_aranges, GNU compressed, size: 40
+3: .zdebug_info, GNU compressed, size: 9a
+4: .debug_abbrev, NOT compressed
+5: .zdebug_line, GNU compressed, size: 85
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu32 <<\EOF
+1: .text, NOT compressed
+2: .zdebug_aranges, GNU compressed, size: 40
+3: .zdebug_info, GNU compressed, size: 9a
+4: .debug_abbrev, NOT compressed
+5: .zdebug_line, GNU compressed, size: 85
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgnu32be
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu32be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .zdebug_aranges, GNU compressed, size: 40
+4: .zdebug_info, GNU compressed, size: 6e
+5: .debug_abbrev, NOT compressed
+6: .zdebug_line, GNU compressed, size: 85
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu32be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .zdebug_aranges, GNU compressed, size: 40
+4: .zdebug_info, GNU compressed, size: 6e
+5: .debug_abbrev, NOT compressed
+6: .zdebug_line, GNU compressed, size: 85
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgabi32
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi32 <<\EOF
+1: .text, NOT compressed
+2: .debug_aranges, ELF compressed, size: 40
+3: .debug_info, ELF compressed, size: 9a
+4: .debug_abbrev, NOT compressed
+5: .debug_line, ELF compressed, size: 85
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi32 <<\EOF
+1: .text, NOT compressed
+2: .debug_aranges, ELF compressed, size: 40
+3: .debug_info, ELF compressed, size: 9a
+4: .debug_abbrev, NOT compressed
+5: .debug_line, ELF compressed, size: 85
+6: .shstrtab, NOT compressed
+7: .symtab, NOT compressed
+8: .strtab, NOT compressed
+EOF
+
+testfiles testfile-zgabi32be
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi32be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .debug_aranges, ELF compressed, size: 40
+4: .debug_info, ELF compressed, size: 6e
+5: .debug_abbrev, NOT compressed
+6: .debug_line, ELF compressed, size: 85
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi32be <<\EOF
+1: .text, NOT compressed
+2: .eh_frame, NOT compressed
+3: .debug_aranges, ELF compressed, size: 40
+4: .debug_info, ELF compressed, size: 6e
+5: .debug_abbrev, NOT compressed
+6: .debug_line, ELF compressed, size: 85
+7: .shstrtab, NOT compressed
+8: .symtab, NOT compressed
+9: .strtab, NOT compressed
+EOF
+
+exit 0
diff --git a/tests/run-elfputzdata.sh b/tests/run-elfputzdata.sh
new file mode 100755
index 0000000..b882b3f
--- /dev/null
+++ b/tests/run-elfputzdata.sh
@@ -0,0 +1,340 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Random ELF32 testfile
+testfiles testfile4
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfile4 <<\EOF
+Cannot compress 1 .interp
+Cannot compress 2 .note.ABI-tag
+Cannot compress 3 .hash
+Cannot compress 4 .dynsym
+Cannot compress 5 .dynstr
+Cannot compress 6 .gnu.version
+Cannot compress 7 .gnu.version_r
+Cannot compress 8 .rel.got
+Cannot compress 9 .rel.plt
+Cannot compress 10 .init
+Cannot compress 11 .plt
+Cannot compress 12 .text
+Cannot compress 13 .fini
+Cannot compress 14 .rodata
+Cannot compress 15 .data
+Cannot compress 16 .eh_frame
+Cannot compress 17 .gcc_except_table
+Cannot compress 18 .ctors
+Cannot compress 19 .dtors
+Cannot compress 20 .got
+Cannot compress 21 .dynamic
+Lets compress 22 .sbss, size: 0
+Cannot compress 23 .bss
+Lets compress 24 .stab, size: 21540
+Lets compress 25 .stabstr, size: 57297
+Lets compress 26 .comment, size: 648
+Lets compress 27 .debug_aranges, size: 56
+Lets compress 28 .debug_pubnames, size: 93
+Lets compress 29 .debug_info, size: 960
+Lets compress 30 .debug_abbrev, size: 405
+Lets compress 31 .debug_line, size: 189
+Lets compress 32 .note, size: 240
+Lets compress 33 .shstrtab, size: 320
+Lets compress 34 .symtab, size: 5488
+Lets compress 35 .strtab, size: 5727
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfile4 <<\EOF
+Cannot compress 1 .interp
+Cannot compress 2 .note.ABI-tag
+Cannot compress 3 .hash
+Cannot compress 4 .dynsym
+Cannot compress 5 .dynstr
+Cannot compress 6 .gnu.version
+Cannot compress 7 .gnu.version_r
+Cannot compress 8 .rel.got
+Cannot compress 9 .rel.plt
+Cannot compress 10 .init
+Cannot compress 11 .plt
+Cannot compress 12 .text
+Cannot compress 13 .fini
+Cannot compress 14 .rodata
+Cannot compress 15 .data
+Cannot compress 16 .eh_frame
+Cannot compress 17 .gcc_except_table
+Cannot compress 18 .ctors
+Cannot compress 19 .dtors
+Cannot compress 20 .got
+Cannot compress 21 .dynamic
+Lets compress 22 .sbss, size: 0
+Cannot compress 23 .bss
+Lets compress 24 .stab, size: 21540
+Lets compress 25 .stabstr, size: 57297
+Lets compress 26 .comment, size: 648
+Lets compress 27 .debug_aranges, size: 56
+Lets compress 28 .debug_pubnames, size: 93
+Lets compress 29 .debug_info, size: 960
+Lets compress 30 .debug_abbrev, size: 405
+Lets compress 31 .debug_line, size: 189
+Lets compress 32 .note, size: 240
+Lets compress 33 .shstrtab, size: 320
+Lets compress 34 .symtab, size: 5488
+Lets compress 35 .strtab, size: 5727
+EOF
+
+# Random ELF64 testfile
+testfiles testfile12
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfile12 <<\EOF
+Cannot compress 1 .hash
+Cannot compress 2 .dynsym
+Cannot compress 3 .dynstr
+Cannot compress 4 .gnu.version
+Cannot compress 5 .gnu.version_r
+Cannot compress 6 .rela.dyn
+Cannot compress 7 .rela.plt
+Cannot compress 8 .init
+Cannot compress 9 .plt
+Cannot compress 10 .text
+Cannot compress 11 .fini
+Cannot compress 12 .rodata
+Cannot compress 13 .eh_frame_hdr
+Cannot compress 14 .eh_frame
+Cannot compress 15 .data
+Cannot compress 16 .dynamic
+Cannot compress 17 .ctors
+Cannot compress 18 .dtors
+Cannot compress 19 .jcr
+Cannot compress 20 .got
+Cannot compress 21 .bss
+Lets compress 22 .comment, size: 246
+Lets compress 23 .debug_aranges, size: 192
+Lets compress 24 .debug_pubnames, size: 26
+Lets compress 25 .debug_info, size: 3468
+Lets compress 26 .debug_abbrev, size: 341
+Lets compress 27 .debug_line, size: 709
+Lets compress 28 .debug_frame, size: 56
+Lets compress 29 .debug_str, size: 2235
+Lets compress 30 .debug_macinfo, size: 10518
+Lets compress 31 .shstrtab, size: 308
+Lets compress 32 .symtab, size: 1944
+Lets compress 33 .strtab, size: 757
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfile12 <<\EOF
+Cannot compress 1 .hash
+Cannot compress 2 .dynsym
+Cannot compress 3 .dynstr
+Cannot compress 4 .gnu.version
+Cannot compress 5 .gnu.version_r
+Cannot compress 6 .rela.dyn
+Cannot compress 7 .rela.plt
+Cannot compress 8 .init
+Cannot compress 9 .plt
+Cannot compress 10 .text
+Cannot compress 11 .fini
+Cannot compress 12 .rodata
+Cannot compress 13 .eh_frame_hdr
+Cannot compress 14 .eh_frame
+Cannot compress 15 .data
+Cannot compress 16 .dynamic
+Cannot compress 17 .ctors
+Cannot compress 18 .dtors
+Cannot compress 19 .jcr
+Cannot compress 20 .got
+Cannot compress 21 .bss
+Lets compress 22 .comment, size: 246
+Lets compress 23 .debug_aranges, size: 192
+Lets compress 24 .debug_pubnames, size: 26
+Lets compress 25 .debug_info, size: 3468
+Lets compress 26 .debug_abbrev, size: 341
+Lets compress 27 .debug_line, size: 709
+Lets compress 28 .debug_frame, size: 56
+Lets compress 29 .debug_str, size: 2235
+Lets compress 30 .debug_macinfo, size: 10518
+Lets compress 31 .shstrtab, size: 308
+Lets compress 32 .symtab, size: 1944
+Lets compress 33 .strtab, size: 757
+EOF
+
+# Random ELF64BE testfile
+testfiles testfileppc64
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfileppc64 <<\EOF
+Cannot compress 1 .interp
+Cannot compress 2 .note.ABI-tag
+Cannot compress 3 .note.gnu.build-id
+Cannot compress 4 .gnu.hash
+Cannot compress 5 .dynsym
+Cannot compress 6 .dynstr
+Cannot compress 7 .gnu.version
+Cannot compress 8 .gnu.version_r
+Cannot compress 9 .rela.plt
+Cannot compress 10 .init
+Cannot compress 11 .text
+Cannot compress 12 .fini
+Cannot compress 13 .rodata
+Cannot compress 14 .eh_frame_hdr
+Cannot compress 15 .eh_frame
+Cannot compress 16 .init_array
+Cannot compress 17 .fini_array
+Cannot compress 18 .jcr
+Cannot compress 19 .dynamic
+Cannot compress 20 .data
+Cannot compress 21 .opd
+Cannot compress 22 .got
+Cannot compress 23 .plt
+Cannot compress 24 .bss
+Lets compress 25 .comment, size: 88
+Lets compress 26 .debug_aranges, size: 96
+Lets compress 27 .debug_info, size: 363
+Lets compress 28 .debug_abbrev, size: 315
+Lets compress 29 .debug_line, size: 119
+Lets compress 30 .debug_frame, size: 96
+Lets compress 31 .debug_str, size: 174
+Lets compress 32 .debug_loc, size: 171
+Lets compress 33 .debug_ranges, size: 32
+Lets compress 34 .shstrtab, size: 352
+Lets compress 35 .symtab, size: 1800
+Lets compress 36 .strtab, size: 602
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfileppc64 <<\EOF
+Cannot compress 1 .interp
+Cannot compress 2 .note.ABI-tag
+Cannot compress 3 .note.gnu.build-id
+Cannot compress 4 .gnu.hash
+Cannot compress 5 .dynsym
+Cannot compress 6 .dynstr
+Cannot compress 7 .gnu.version
+Cannot compress 8 .gnu.version_r
+Cannot compress 9 .rela.plt
+Cannot compress 10 .init
+Cannot compress 11 .text
+Cannot compress 12 .fini
+Cannot compress 13 .rodata
+Cannot compress 14 .eh_frame_hdr
+Cannot compress 15 .eh_frame
+Cannot compress 16 .init_array
+Cannot compress 17 .fini_array
+Cannot compress 18 .jcr
+Cannot compress 19 .dynamic
+Cannot compress 20 .data
+Cannot compress 21 .opd
+Cannot compress 22 .got
+Cannot compress 23 .plt
+Cannot compress 24 .bss
+Lets compress 25 .comment, size: 88
+Lets compress 26 .debug_aranges, size: 96
+Lets compress 27 .debug_info, size: 363
+Lets compress 28 .debug_abbrev, size: 315
+Lets compress 29 .debug_line, size: 119
+Lets compress 30 .debug_frame, size: 96
+Lets compress 31 .debug_str, size: 174
+Lets compress 32 .debug_loc, size: 171
+Lets compress 33 .debug_ranges, size: 32
+Lets compress 34 .shstrtab, size: 352
+Lets compress 35 .symtab, size: 1800
+Lets compress 36 .strtab, size: 602
+EOF
+
+# Random ELF32BE testfile
+testfiles testfileppc32
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfileppc32 <<\EOF
+Cannot compress 1 .interp
+Cannot compress 2 .note.ABI-tag
+Cannot compress 3 .note.gnu.build-id
+Cannot compress 4 .gnu.hash
+Cannot compress 5 .dynsym
+Cannot compress 6 .dynstr
+Cannot compress 7 .gnu.version
+Cannot compress 8 .gnu.version_r
+Cannot compress 9 .rela.dyn
+Cannot compress 10 .rela.plt
+Cannot compress 11 .init
+Cannot compress 12 .text
+Cannot compress 13 .fini
+Cannot compress 14 .rodata
+Cannot compress 15 .eh_frame_hdr
+Cannot compress 16 .eh_frame
+Cannot compress 17 .init_array
+Cannot compress 18 .fini_array
+Cannot compress 19 .jcr
+Cannot compress 20 .got2
+Cannot compress 21 .dynamic
+Cannot compress 22 .got
+Cannot compress 23 .plt
+Cannot compress 24 .data
+Cannot compress 25 .sdata
+Cannot compress 26 .bss
+Lets compress 27 .comment, size: 88
+Lets compress 28 .debug_aranges, size: 64
+Lets compress 29 .debug_info, size: 319
+Lets compress 30 .debug_abbrev, size: 318
+Lets compress 31 .debug_line, size: 109
+Lets compress 32 .debug_frame, size: 64
+Lets compress 33 .debug_str, size: 179
+Lets compress 34 .debug_loc, size: 99
+Lets compress 35 .debug_ranges, size: 16
+Lets compress 36 .shstrtab, size: 370
+Lets compress 37 .symtab, size: 1232
+Lets compress 38 .strtab, size: 569
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfileppc32 <<\EOF
+Cannot compress 1 .interp
+Cannot compress 2 .note.ABI-tag
+Cannot compress 3 .note.gnu.build-id
+Cannot compress 4 .gnu.hash
+Cannot compress 5 .dynsym
+Cannot compress 6 .dynstr
+Cannot compress 7 .gnu.version
+Cannot compress 8 .gnu.version_r
+Cannot compress 9 .rela.dyn
+Cannot compress 10 .rela.plt
+Cannot compress 11 .init
+Cannot compress 12 .text
+Cannot compress 13 .fini
+Cannot compress 14 .rodata
+Cannot compress 15 .eh_frame_hdr
+Cannot compress 16 .eh_frame
+Cannot compress 17 .init_array
+Cannot compress 18 .fini_array
+Cannot compress 19 .jcr
+Cannot compress 20 .got2
+Cannot compress 21 .dynamic
+Cannot compress 22 .got
+Cannot compress 23 .plt
+Cannot compress 24 .data
+Cannot compress 25 .sdata
+Cannot compress 26 .bss
+Lets compress 27 .comment, size: 88
+Lets compress 28 .debug_aranges, size: 64
+Lets compress 29 .debug_info, size: 319
+Lets compress 30 .debug_abbrev, size: 318
+Lets compress 31 .debug_line, size: 109
+Lets compress 32 .debug_frame, size: 64
+Lets compress 33 .debug_str, size: 179
+Lets compress 34 .debug_loc, size: 99
+Lets compress 35 .debug_ranges, size: 16
+Lets compress 36 .shstrtab, size: 370
+Lets compress 37 .symtab, size: 1232
+Lets compress 38 .strtab, size: 569
+EOF
+
+exit 0
diff --git a/tests/run-elfstrmerge-test.sh b/tests/run-elfstrmerge-test.sh
new file mode 100755
index 0000000..d08b6fc
--- /dev/null
+++ b/tests/run-elfstrmerge-test.sh
@@ -0,0 +1,40 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Merge string tables of file and check result with elflint.
+testrun_elfcompress()
+{
+    testfile="$1"
+    testfiles ${testfile}
+
+    mergedfile="${testfile}.merged"
+    tempfiles ${mergedfile}
+
+    echo "merging string tables ${testfile} -> ${mergedfile}"
+    testrun ${abs_top_builddir}/tests/elfstrmerge -o ${mergedfile} ${testfile}
+    testrun ${abs_top_builddir}/src/elflint --gnu-ld ${mergedfile}
+}
+
+# Random ELF32 testfile with extra STT_SECTION symbols
+testrun_elfcompress testfile4
+
+# Random ELF64 testfile with extra STT_SECTION symbols
+testrun_elfcompress testfile12
+
+exit 0
diff --git a/tests/run-readelf-z.sh b/tests/run-readelf-z.sh
new file mode 100755
index 0000000..6dbd2f1
--- /dev/null
+++ b/tests/run-readelf-z.sh
@@ -0,0 +1,202 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# See run-elfgetchdr.sh for testfiles.
+
+testfiles testfile-zgnu64
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu64 <<\EOF
+There are 9 section headers, starting at offset 0x3e0:
+
+Section Headers:
+[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
+     [Compression  Size     Al]
+[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
+[ 1] .text                PROGBITS     0000000000400078 00000078 0000002a  0 AX     0   0  1
+[ 2] .zdebug_aranges      PROGBITS     0000000000000000 00000260 00000032  0        0   0 16
+     [GNU ZLIB     00000060   ]
+[ 3] .zdebug_info         PROGBITS     0000000000000000 00000292 0000006f  0        0   0  1
+     [GNU ZLIB     000000aa   ]
+[ 4] .debug_abbrev        PROGBITS     0000000000000000 00000301 00000028  0        0   0  1
+[ 5] .zdebug_line         PROGBITS     0000000000000000 00000329 0000005b  0        0   0  1
+     [GNU ZLIB     0000008d   ]
+[ 6] .shstrtab            STRTAB       0000000000000000 00000384 00000059  0        0   0  1
+[ 7] .symtab              SYMTAB       0000000000000000 000000a8 00000168 24        8   8  8
+[ 8] .strtab              STRTAB       0000000000000000 00000210 0000004b  0        0   0  1
+
+EOF
+
+testfiles testfile-zgnu64be
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu64be <<\EOF
+There are 10 section headers, starting at offset 0x438:
+
+Section Headers:
+[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
+     [Compression  Size     Al]
+[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
+[ 1] .text                PROGBITS     0000000010000078 00000078 00000074  0 AX     0   0  8
+[ 2] .eh_frame            PROGBITS     00000000100000ec 000000ec 00000000  0 A      0   0  4
+[ 3] .zdebug_aranges      PROGBITS     0000000000000000 000002c0 00000034  0        0   0 16
+     [GNU ZLIB     00000060   ]
+[ 4] .zdebug_info         PROGBITS     0000000000000000 000002f4 00000059  0        0   0  1
+     [GNU ZLIB     0000007e   ]
+[ 5] .debug_abbrev        PROGBITS     0000000000000000 0000034d 00000028  0        0   0  1
+[ 6] .zdebug_line         PROGBITS     0000000000000000 00000375 0000005b  0        0   0  1
+     [GNU ZLIB     0000008d   ]
+[ 7] .shstrtab            STRTAB       0000000000000000 000003d0 00000063  0        0   0  1
+[ 8] .symtab              SYMTAB       0000000000000000 000000f0 00000180 24        9   9  8
+[ 9] .strtab              STRTAB       0000000000000000 00000270 00000044  0        0   0  1
+
+EOF
+
+testfiles testfile-zgabi64
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi64 <<\EOF
+There are 9 section headers, starting at offset 0x400:
+
+Section Headers:
+[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
+     [Compression  Size     Al]
+[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
+[ 1] .text                PROGBITS     0000000000400078 00000078 0000002a  0 AX     0   0  1
+[ 2] .debug_aranges       PROGBITS     0000000000000000 00000260 0000003e  0 C      0   0 16
+     [ELF ZLIB (1) 00000060 16]
+[ 3] .debug_info          PROGBITS     0000000000000000 0000029e 0000007b  0 C      0   0  1
+     [ELF ZLIB (1) 000000aa  1]
+[ 4] .debug_abbrev        PROGBITS     0000000000000000 00000319 00000028  0        0   0  1
+[ 5] .debug_line          PROGBITS     0000000000000000 00000341 00000067  0 C      0   0  1
+     [ELF ZLIB (1) 0000008d  1]
+[ 6] .shstrtab            STRTAB       0000000000000000 000003a8 00000056  0        0   0  1
+[ 7] .symtab              SYMTAB       0000000000000000 000000a8 00000168 24        8   8  8
+[ 8] .strtab              STRTAB       0000000000000000 00000210 0000004b  0        0   0  1
+
+EOF
+
+testfiles testfile-zgabi64be
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi64be <<\EOF
+There are 10 section headers, starting at offset 0x458:
+
+Section Headers:
+[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
+     [Compression  Size     Al]
+[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
+[ 1] .text                PROGBITS     0000000010000078 00000078 00000074  0 AX     0   0  8
+[ 2] .eh_frame            PROGBITS     00000000100000ec 000000ec 00000000  0 A      0   0  4
+[ 3] .debug_aranges       PROGBITS     0000000000000000 000002c0 00000040  0 C      0   0 16
+     [ELF ZLIB (1) 00000060 16]
+[ 4] .debug_info          PROGBITS     0000000000000000 00000300 00000065  0 C      0   0  1
+     [ELF ZLIB (1) 0000007e  1]
+[ 5] .debug_abbrev        PROGBITS     0000000000000000 00000365 00000028  0        0   0  1
+[ 6] .debug_line          PROGBITS     0000000000000000 0000038d 00000067  0 C      0   0  1
+     [ELF ZLIB (1) 0000008d  1]
+[ 7] .shstrtab            STRTAB       0000000000000000 000003f4 00000060  0        0   0  1
+[ 8] .symtab              SYMTAB       0000000000000000 000000f0 00000180 24        9   9  8
+[ 9] .strtab              STRTAB       0000000000000000 00000270 00000044  0        0   0  1
+
+EOF
+
+testfiles testfile-zgnu32
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu32 <<\EOF
+There are 9 section headers, starting at offset 0x33c:
+
+Section Headers:
+[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
+     [Compression  Size   Al]
+[ 0]                      NULL         00000000 000000 000000  0        0   0  0
+[ 1] .text                PROGBITS     08048054 000054 00002a  0 AX     0   0  1
+[ 2] .zdebug_aranges      PROGBITS     00000000 0001c0 000031  0        0   0  8
+     [GNU ZLIB     000040   ]
+[ 3] .zdebug_info         PROGBITS     00000000 0001f1 00006f  0        0   0  1
+     [GNU ZLIB     00009a   ]
+[ 4] .debug_abbrev        PROGBITS     00000000 000260 000028  0        0   0  1
+[ 5] .zdebug_line         PROGBITS     00000000 000288 00005a  0        0   0  1
+     [GNU ZLIB     000085   ]
+[ 6] .shstrtab            STRTAB       00000000 0002e2 000059  0        0   0  1
+[ 7] .symtab              SYMTAB       00000000 000080 0000f0 16        8   8  4
+[ 8] .strtab              STRTAB       00000000 000170 00004b  0        0   0  1
+
+EOF
+
+testfiles testfile-zgnu32be
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu32be <<\EOF
+There are 10 section headers, starting at offset 0x390:
+
+Section Headers:
+[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
+     [Compression  Size   Al]
+[ 0]                      NULL         00000000 000000 000000  0        0   0  0
+[ 1] .text                PROGBITS     01800054 000054 000074  0 AX     0   0  1
+[ 2] .eh_frame            PROGBITS     018000c8 0000c8 000000  0 A      0   0  4
+[ 3] .zdebug_aranges      PROGBITS     00000000 000220 000033  0        0   0  8
+     [GNU ZLIB     000040   ]
+[ 4] .zdebug_info         PROGBITS     00000000 000253 000058  0        0   0  1
+     [GNU ZLIB     00006e   ]
+[ 5] .debug_abbrev        PROGBITS     00000000 0002ab 000028  0        0   0  1
+[ 6] .zdebug_line         PROGBITS     00000000 0002d3 000059  0        0   0  1
+     [GNU ZLIB     000085   ]
+[ 7] .shstrtab            STRTAB       00000000 00032c 000063  0        0   0  1
+[ 8] .symtab              SYMTAB       00000000 0000c8 000110 16        9   9  4
+[ 9] .strtab              STRTAB       00000000 0001d8 000045  0        0   0  1
+
+EOF
+
+testfiles testfile-zgabi32
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi32 <<\EOF
+There are 9 section headers, starting at offset 0x338:
+
+Section Headers:
+[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
+     [Compression  Size   Al]
+[ 0]                      NULL         00000000 000000 000000  0        0   0  0
+[ 1] .text                PROGBITS     08048054 000054 00002a  0 AX     0   0  1
+[ 2] .debug_aranges       PROGBITS     00000000 0001c0 000031  0 C      0   0  8
+     [ELF ZLIB (1) 000040  8]
+[ 3] .debug_info          PROGBITS     00000000 0001f1 00006f  0 C      0   0  1
+     [ELF ZLIB (1) 00009a  1]
+[ 4] .debug_abbrev        PROGBITS     00000000 000260 000028  0        0   0  1
+[ 5] .debug_line          PROGBITS     00000000 000288 00005a  0 C      0   0  1
+     [ELF ZLIB (1) 000085  1]
+[ 6] .shstrtab            STRTAB       00000000 0002e2 000056  0        0   0  1
+[ 7] .symtab              SYMTAB       00000000 000080 0000f0 16        8   8  4
+[ 8] .strtab              STRTAB       00000000 000170 00004b  0        0   0  1
+
+EOF
+
+testfiles testfile-zgabi32be
+testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi32be <<\EOF
+There are 10 section headers, starting at offset 0x38c:
+
+Section Headers:
+[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
+     [Compression  Size   Al]
+[ 0]                      NULL         00000000 000000 000000  0        0   0  0
+[ 1] .text                PROGBITS     01800054 000054 000074  0 AX     0   0  1
+[ 2] .eh_frame            PROGBITS     018000c8 0000c8 000000  0 A      0   0  4
+[ 3] .debug_aranges       PROGBITS     00000000 000220 000033  0 C      0   0  8
+     [ELF ZLIB (1) 000040  8]
+[ 4] .debug_info          PROGBITS     00000000 000253 000058  0 C      0   0  1
+     [ELF ZLIB (1) 00006e  1]
+[ 5] .debug_abbrev        PROGBITS     00000000 0002ab 000028  0        0   0  1
+[ 6] .debug_line          PROGBITS     00000000 0002d3 000059  0 C      0   0  1
+     [ELF ZLIB (1) 000085  1]
+[ 7] .shstrtab            STRTAB       00000000 00032c 000060  0        0   0  1
+[ 8] .symtab              SYMTAB       00000000 0000c8 000110 16        9   9  4
+[ 9] .strtab              STRTAB       00000000 0001d8 000045  0        0   0  1
+
+EOF
+
+exit 0
diff --git a/tests/run-readelf-zdebug-rel.sh b/tests/run-readelf-zdebug-rel.sh
new file mode 100755
index 0000000..88ea5bf
--- /dev/null
+++ b/tests/run-readelf-zdebug-rel.sh
@@ -0,0 +1,144 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# - testfile-zdebug-rel.c
+# #define UINT64_MAX 18446744073709551615UL
+#
+# int
+# main (int argc, char **argv)
+# {
+#   unsigned long a = UINT64_MAX - 8;
+#   unsigned long b = 42 + argc;
+#
+#   if ( a + b < b )
+#     argc = a + argc;
+#   else
+#      b--;
+#
+#   return a - b;
+# }
+#
+# gcc -Og -g -Xassembler --compress-debug-sections=none \
+#     -c -o testfile-debug-rel.o testfile-zdebug-rel.c
+# gcc -Og -g -Xassembler --compress-debug-sections=zlib-gnu \
+#     -c -o testfile-debug-rel-g.o testfile-zdebug-rel.c
+# gcc -Og -g -Xassembler --compress-debug-sections=zlib-gabi \
+#     -c -o testfile-debug-rel-z.o testfile-zdebug-rel.c
+
+testfiles testfile-debug-rel.o testfile-debug-rel-g.o testfile-debug-rel-z.o
+tempfiles readelf.out
+tempfiles info.out loc.out
+
+cat > info.out << \EOF
+
+DWARF section [ 4] '.debug_info' at offset 0x58:
+ [Offset]
+ Compilation unit at offset 0:
+ Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
+ [     b]  compile_unit
+           producer             (strp) "GNU C11 5.3.1 20151207 (Red Hat 5.3.1-2) -mtune=generic -march=x86-64 -g -Og"
+           language             (data1) C99 (12)
+           name                 (strp) "testfile-zdebug-rel.c"
+           comp_dir             (strp) "/tmp"
+           low_pc               (addr) 000000000000000000
+           high_pc              (data8) 24 (0x0000000000000018)
+           stmt_list            (sec_offset) 0
+ [    2d]    subprogram
+             external             (flag_present) 
+             name                 (strp) "main"
+             decl_file            (data1) 1
+             decl_line            (data1) 4
+             prototyped           (flag_present) 
+             type                 (ref4) [    80]
+             low_pc               (addr) 000000000000000000
+             high_pc              (data8) 24 (0x0000000000000018)
+             frame_base           (exprloc) 
+              [   0] call_frame_cfa
+             GNU_all_call_sites   (flag_present) 
+             sibling              (ref4) [    80]
+ [    4e]      formal_parameter
+               name                 (strp) "argc"
+               decl_file            (data1) 1
+               decl_line            (data1) 4
+               type                 (ref4) [    80]
+               location             (sec_offset) location list [     0]
+ [    5d]      formal_parameter
+               name                 (strp) "argv"
+               decl_file            (data1) 1
+               decl_line            (data1) 4
+               type                 (ref4) [    87]
+               location             (exprloc) 
+                [   0] reg4
+ [    6a]      variable
+               name                 (string) "a"
+               decl_file            (data1) 1
+               decl_line            (data1) 6
+               type                 (ref4) [    9a]
+               const_value          (sdata) -9
+ [    74]      variable
+               name                 (string) "b"
+               decl_file            (data1) 1
+               decl_line            (data1) 7
+               type                 (ref4) [    9a]
+               location             (exprloc) 
+                [   0] reg5
+ [    80]    base_type
+             byte_size            (data1) 4
+             encoding             (data1) signed (5)
+             name                 (string) "int"
+ [    87]    pointer_type
+             byte_size            (data1) 8
+             type                 (ref4) [    8d]
+ [    8d]    pointer_type
+             byte_size            (data1) 8
+             type                 (ref4) [    93]
+ [    93]    base_type
+             byte_size            (data1) 1
+             encoding             (data1) signed_char (6)
+             name                 (strp) "char"
+ [    9a]    base_type
+             byte_size            (data1) 8
+             encoding             (data1) unsigned (7)
+             name                 (strp) "long unsigned int"
+EOF
+
+cat info.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel.o
+
+cat info.out | sed -e "s/'.debug_info'/'.zdebug_info'/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-g.o
+
+cat info.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-z.o
+
+cat > loc.out << \EOF
+
+DWARF section [ 7] '.debug_loc' at offset 0x185:
+ [     0]  000000000000000000..0x0000000000000003 [   0] reg5
+           0x0000000000000003..0x0000000000000010 [   0] breg5 -42
+                                                  [   2] stack_value
+           0x0000000000000010..0x0000000000000018 [   0] GNU_entry_value:
+       [   0] reg5
+                                                  [   3] stack_value
+EOF
+
+cat loc.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel.o
+
+cat loc.out | sed -e "s/'.debug_loc' at offset 0x185/'.zdebug_loc' at offset 0x138/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-g.o
+
+cat loc.out | sed -e "s/at offset 0x185/at offset 0x150/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-z.o
+
+exit 0
diff --git a/tests/run-readelf-zp.sh b/tests/run-readelf-zp.sh
new file mode 100755
index 0000000..872126c
--- /dev/null
+++ b/tests/run-readelf-zp.sh
@@ -0,0 +1,271 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# See run-readelf-zdebug.sh for testfile.
+
+testfiles testfile-zdebug
+testrun_compare ${abs_top_builddir}/src/readelf -z -p.zdebug_str testfile-zdebug <<\EOF
+
+String section [35] '.zdebug_str' contains 2431 bytes (6433 uncompressed) at offset 0x1da3:
+  [     0]  UINT64_MAX 18446744073709551615UL
+  [    22]  __DBL_DENORM_MIN__ ((double)4.94065645841246544177e-324L)
+  [    5c]  __linux 1
+  [    66]  __SIZEOF_SIZE_T__ 8
+  [    7a]  __UINTPTR_TYPE__ long unsigned int
+  [    9d]  __SIZEOF_POINTER__ 8
+  [    b2]  __UINT8_MAX__ 255
+  [    c4]  __PTRDIFF_MAX__ 9223372036854775807L
+  [    e9]  __DEC64_MANT_DIG__ 16
+  [    ff]  __FLT_RADIX__ 2
+  [   10f]  __DEC32_MIN__ 1E-95DF
+  [   125]  __unix__ 1
+  [   130]  testfile-zdebug.c
+  [   142]  __UINT_LEAST64_MAX__ 18446744073709551615UL
+  [   16e]  __SIZEOF_WINT_T__ 4
+  [   182]  __LONG_MAX__ 9223372036854775807L
+  [   1a4]  __LDBL_MIN__ 3.36210314311209350626e-4932L
+  [   1cf]  __GCC_ATOMIC_SHORT_LOCK_FREE 2
+  [   1ee]  __LP64__ 1
+  [   1f9]  __UINT64_C(c) c ## UL
+  [   20f]  __DBL_HAS_INFINITY__ 1
+  [   226]  __SSE2_MATH__ 1
+  [   236]  __linux__ 1
+  [   242]  __STDC_HOSTED__ 1
+  [   254]  __WINT_MIN__ 0U
+  [   264]  __x86_64__ 1
+  [   271]  __UINT32_TYPE__ unsigned int
+  [   28e]  __UINT_LEAST8_MAX__ 255
+  [   2a6]  __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
+  [   2d7]  __FLT_MAX__ 3.40282346638528859812e+38F
+  [   2ff]  long unsigned int
+  [   311]  __DBL_MANT_DIG__ 53
+  [   325]  linux 1
+  [   32d]  __DBL_HAS_QUIET_NAN__ 1
+  [   345]  __UINT8_TYPE__ unsigned char
+  [   362]  __DEC32_MAX_EXP__ 97
+  [   377]  __INT32_TYPE__ int
+  [   38a]  __SIG_ATOMIC_TYPE__ int
+  [   3a2]  __DEC64_MAX_EXP__ 385
+  [   3b8]  __DBL_MIN_EXP__ (-1021)
+  [   3d0]  _LP64 1
+  [   3d8]  __LDBL_HAS_INFINITY__ 1
+  [   3f0]  __INT_FAST64_TYPE__ long int
+  [   40d]  __gnu_linux__ 1
+  [   41d]  __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
+  [   43e]  __UINT_FAST64_TYPE__ long unsigned int
+  [   465]  __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+  [   48c]  __UINT16_MAX__ 65535
+  [   4a1]  __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
+  [   4ce]  __PRAGMA_REDEFINE_EXTNAME 1
+  [   4ea]  __INT_LEAST16_TYPE__ short int
+  [   509]  __k8__ 1
+  [   512]  __DECIMAL_DIG__ 21
+  [   525]  main
+  [   52a]  __DBL_MAX__ ((double)1.79769313486231570815e+308L)
+  [   55d]  __INT16_TYPE__ short int
+  [   576]  __LDBL_HAS_QUIET_NAN__ 1
+  [   58f]  __SIZEOF_DOUBLE__ 8
+  [   5a3]  __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
+  [   5ca]  __ATOMIC_SEQ_CST 5
+  [   5dd]  __UINT64_TYPE__ long unsigned int
+  [   5ff]  __INT_LEAST32_TYPE__ int
+  [   618]  __INT_LEAST64_MAX__ 9223372036854775807L
+  [   641]  __OPTIMIZE__ 1
+  [   650]  __INTMAX_C(c) c ## L
+  [   665]  __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
+  [   687]  __INT_FAST8_MAX__ 127
+  [   69d]  __PTRDIFF_TYPE__ long int
+  [   6b7]  __LDBL_MIN_EXP__ (-16381)
+  [   6d1]  __SIZEOF_LONG_LONG__ 8
+  [   6e8]  __FLT_DIG__ 6
+  [   6f6]  __UINTMAX_MAX__ 18446744073709551615UL
+  [   71d]  __SIZEOF_WCHAR_T__ 4
+  [   732]  __INT64_C(c) c ## L
+  [   746]  __UINTPTR_MAX__ 18446744073709551615UL
+  [   76d]  __FLT_MAX_10_EXP__ 38
+  [   783]  __FLT_MIN__ 1.17549435082228750797e-38F
+  [   7ab]  __UINT_LEAST64_TYPE__ long unsigned int
+  [   7d3]  __SIZEOF_LONG_DOUBLE__ 16
+  [   7ed]  __SIZE_MAX__ 18446744073709551615UL
+  [   811]  __INT8_C(c) c
+  [   81f]  __amd64__ 1
+  [   82b]  __INT_LEAST64_TYPE__ long int
+  [   849]  __INT_FAST64_MAX__ 9223372036854775807L
+  [   871]  __DEC_EVAL_METHOD__ 2
+  [   887]  __DEC32_MAX__ 9.999999E96DF
+  [   8a3]  __GNUC_MINOR__ 8
+  [   8b4]  __WCHAR_MAX__ 2147483647
+  [   8cd]  __SIZE_TYPE__ long unsigned int
+  [   8ed]  __INT8_MAX__ 127
+  [   8fe]  __INTMAX_MAX__ 9223372036854775807L
+  [   922]  __ATOMIC_HLE_RELEASE 131072
+  [   93e]  __FLT_HAS_QUIET_NAN__ 1
+  [   956]  __DBL_EPSILON__ ((double)2.22044604925031308085e-16L)
+  [   98c]  __FLT_MIN_EXP__ (-125)
+  [   9a3]  __INT_LEAST8_MAX__ 127
+  [   9ba]  __SIZEOF_INT128__ 16
+  [   9cf]  __INTPTR_MAX__ 9223372036854775807L
+  [   9f3]  __INTPTR_TYPE__ long int
+  [   a0c]  __LDBL_MIN_10_EXP__ (-4931)
+  [   a28]  __GCC_ATOMIC_POINTER_LOCK_FREE 2
+  [   a49]  __UINT_LEAST32_MAX__ 4294967295U
+  [   a6a]  __SIZEOF_SHORT__ 2
+  [   a7d]  __LDBL_MAX_10_EXP__ 4932
+  [   a96]  __INT16_C(c) c
+  [   aa5]  __MMX__ 1
+  [   aaf]  unix 1
+  [   ab6]  __FLT_MAX_EXP__ 128
+  [   aca]  __DEC64_MAX__ 9.999999999999999E384DD
+  [   af0]  __FLT_EPSILON__ 1.19209289550781250000e-7F
+  [   b1b]  __INT_FAST16_TYPE__ long int
+  [   b38]  __VERSION__ "4.8.2 20140120 (Red Hat 4.8.2-15)"
+  [   b68]  __GCC_ATOMIC_LLONG_LOCK_FREE 2
+  [   b87]  __DEC128_MIN_EXP__ (-6142)
+  [   ba2]  __ATOMIC_RELEASE 3
+  [   bb5]  __GNUC_PATCHLEVEL__ 2
+  [   bcb]  __UINT_FAST64_MAX__ 18446744073709551615UL
+  [   bf6]  __DBL_DECIMAL_DIG__ 17
+  [   c0d]  __DBL_DIG__ 15
+  [   c1c]  __FLT_MANT_DIG__ 24
+  [   c30]  __FLT_DECIMAL_DIG__ 9
+  [   c46]  __INT16_MAX__ 32767
+  [   c5a]  __DEC128_MIN__ 1E-6143DL
+  [   c73]  __BIGGEST_ALIGNMENT__ 16
+  [   c8c]  __INT64_MAX__ 9223372036854775807L
+  [   caf]  __INT_FAST32_TYPE__ long int
+  [   ccc]  __GCC_ATOMIC_INT_LOCK_FREE 2
+  [   ce9]  __DEC128_MAX_EXP__ 6145
+  [   d01]  __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
+  [   d26]  __FXSR__ 1
+  [   d31]  __INT8_TYPE__ signed char
+  [   d4b]  __ATOMIC_ACQ_REL 4
+  [   d5e]  __UINT_LEAST16_MAX__ 65535
+  [   d79]  __UINTMAX_TYPE__ long unsigned int
+  [   d9c]  __UINT_FAST8_MAX__ 255
+  [   db3]  __ORDER_BIG_ENDIAN__ 4321
+  [   dcd]  __INT_LEAST32_MAX__ 2147483647
+  [   dec]  __UINT_LEAST16_TYPE__ short unsigned int
+  [   e15]  __INT_FAST8_TYPE__ signed char
+  [   e34]  __DBL_MAX_EXP__ 1024
+  [   e49]  __STDC__ 1
+  [   e54]  __ELF__ 1
+  [   e5e]  __FLT_EVAL_METHOD__ 0
+  [   e74]  __ATOMIC_ACQUIRE 2
+  [   e87]  __DEC64_EPSILON__ 1E-15DD
+  [   ea1]  __INT32_MAX__ 2147483647
+  [   eba]  __GCC_ATOMIC_CHAR_LOCK_FREE 2
+  [   ed8]  __DEC128_EPSILON__ 1E-33DL
+  [   ef3]  __UINT_FAST8_TYPE__ unsigned char
+  [   f15]  __amd64 1
+  [   f1f]  __DEC32_MIN_EXP__ (-94)
+  [   f37]  __GCC_HAVE_DWARF2_CFI_ASM 1
+  [   f53]  __LDBL_DIG__ 18
+  [   f63]  __UINT32_MAX__ 4294967295U
+  [   f7e]  __GNUC_GNU_INLINE__ 1
+  [   f94]  __SSE2__ 1
+  [   f9f]  __ATOMIC_HLE_ACQUIRE 65536
+  [   fba]  __SSE_MATH__ 1
+  [   fc9]  __INT_FAST16_MAX__ 9223372036854775807L
+  [   ff1]  __LDBL_MAX__ 1.18973149535723176502e+4932L
+  [  101c]  __DBL_MIN__ ((double)2.22507385850720138309e-308L)
+  [  104f]  __DEC128_MANT_DIG__ 34
+  [  1066]  __INT32_C(c) c
+  [  1075]  __DEC64_MIN_EXP__ (-382)
+  [  108e]  __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
+  [  10b1]  __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
+  [  10d3]  __LDBL_MAX_EXP__ 16384
+  [  10ea]  __DEC32_MANT_DIG__ 7
+  [  10ff]  __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
+  [  1139]  __CHAR32_TYPE__ unsigned int
+  [  1156]  __INT_LEAST8_TYPE__ signed char
+  [  1176]  __UINT16_C(c) c
+  [  1186]  __GCC_ATOMIC_BOOL_LOCK_FREE 2
+  [  11a4]  __SIZEOF_FLOAT__ 4
+  [  11b7]  __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
+  [  11dc]  __DBL_MAX_10_EXP__ 308
+  [  11f3]  __LDBL_EPSILON__ 1.08420217248550443401e-19L
+  [  1220]  __ORDER_PDP_ENDIAN__ 3412
+  [  123a]  __ORDER_LITTLE_ENDIAN__ 1234
+  [  1257]  __WINT_TYPE__ unsigned int
+  [  1272]  __unix 1
+  [  127b]  __ATOMIC_RELAXED 0
+  [  128e]  __UINT_FAST32_MAX__ 18446744073709551615UL
+  [  12b9]  __INT_FAST32_MAX__ 9223372036854775807L
+  [  12e1]  __SIG_ATOMIC_MAX__ 2147483647
+  [  12ff]  __UINT_FAST32_TYPE__ long unsigned int
+  [  1326]  __INT_MAX__ 2147483647
+  [  133d]  __GXX_ABI_VERSION 1002
+  [  1354]  __SIZEOF_INT__ 4
+  [  1365]  char
+  [  136a]  __UINT_FAST16_TYPE__ long unsigned int
+  [  1391]  __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
+  [  13c3]  __WINT_MAX__ 4294967295U
+  [  13dc]  __FLT_HAS_INFINITY__ 1
+  [  13f3]  __SHRT_MAX__ 32767
+  [  1406]  __INT_LEAST16_MAX__ 32767
+  [  1420]  __LONG_LONG_MAX__ 9223372036854775807LL
+  [  1448]  __SIZEOF_LONG__ 8
+  [  145a]  __INTMAX_TYPE__ long int
+  [  1473]  __LDBL_HAS_DENORM__ 1
+  [  1489]  __code_model_small__ 1
+  [  14a0]  __REGISTER_PREFIX__ 
+  [  14b5]  __ATOMIC_CONSUME 1
+  [  14c8]  __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
+  [  150d]  __GNUC__ 4
+  [  1518]  __UINT16_TYPE__ short unsigned int
+  [  153b]  __SSE__ 1
+  [  1545]  __UINT32_C(c) c ## U
+  [  155a]  __k8 1
+  [  1561]  __UINTMAX_C(c) c ## UL
+  [  1578]  __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
+  [  159d]  __SIZEOF_PTRDIFF_T__ 8
+  [  15b4]  __CHAR_BIT__ 8
+  [  15c3]  __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
+  [  15f0]  __DEC32_EPSILON__ 1E-6DF
+  [  1609]  __UINT_LEAST32_TYPE__ unsigned int
+  [  162c]  __DBL_HAS_DENORM__ 1
+  [  1641]  /tmp
+  [  1646]  __LDBL_MANT_DIG__ 64
+  [  165b]  __GCC_ATOMIC_LONG_LOCK_FREE 2
+  [  1679]  __DECIMAL_BID_FORMAT__ 1
+  [  1692]  __FLT_MIN_10_EXP__ (-37)
+  [  16ab]  __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
+  [  16cf]  __WCHAR_TYPE__ int
+  [  16e2]  __FINITE_MATH_ONLY__ 0
+  [  16f9]  argc
+  [  16fe]  __USER_LABEL_PREFIX__ 
+  [  1715]  __CHAR16_TYPE__ short unsigned int
+  [  1738]  __UINT64_MAX__ 18446744073709551615UL
+  [  175e]  __UINT8_C(c) c
+  [  176d]  __x86_64 1
+  [  1778]  __UINT_LEAST8_TYPE__ unsigned char
+  [  179b]  __INT64_TYPE__ long int
+  [  17b3]  __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
+  [  17d8]  argv
+  [  17dd]  __GNUC_RH_RELEASE__ 15
+  [  17f4]  __UINT_FAST16_MAX__ 18446744073709551615UL
+  [  181f]  __FLT_HAS_DENORM__ 1
+  [  1834]  __DEC64_MIN__ 1E-383DD
+  [  184b]  __DBL_MIN_10_EXP__ (-307)
+  [  1865]  __FLT_DENORM_MIN__ 1.40129846432481707092e-45F
+  [  1894]  GNU C 4.8.2 20140120 (Red Hat 4.8.2-15) -mtune=generic -march=x86-64 -g3 -O3 -fuse-ld=gold -fno-asynchronous-unwind-tables
+  [  190f]  __SCHAR_MAX__ 127
+EOF
+
+exit 0
diff --git a/tests/run-readelf-zx.sh b/tests/run-readelf-zx.sh
new file mode 100755
index 0000000..994528c
--- /dev/null
+++ b/tests/run-readelf-zx.sh
@@ -0,0 +1,66 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# See run-elfgetchdr.sh for testfiles.
+
+testfiles testfile-zgnu64
+testrun_compare ${abs_top_builddir}/src/readelf -z -x.zdebug_aranges testfile-zgnu64 <<\EOF
+
+Hex dump of section [2] '.zdebug_aranges', 50 bytes (96 uncompressed) at offset 0x260:
+  0x00000000 2c000000 02000000 00000800 00000000 ,...............
+  0x00000010 78004000 00000000 14000000 00000000 x.@.............
+  0x00000020 00000000 00000000 00000000 00000000 ................
+  0x00000030 2c000000 02005500 00000800 00000000 ,.....U.........
+  0x00000040 8c004000 00000000 16000000 00000000 ..@.............
+  0x00000050 00000000 00000000 00000000 00000000 ................
+EOF
+
+testfiles testfile-zgabi64
+testrun_compare ${abs_top_builddir}/src/readelf -z -x.debug_aranges testfile-zgabi64 <<\EOF
+
+Hex dump of section [2] '.debug_aranges', 62 bytes (96 uncompressed) at offset 0x260:
+  0x00000000 2c000000 02000000 00000800 00000000 ,...............
+  0x00000010 78004000 00000000 14000000 00000000 x.@.............
+  0x00000020 00000000 00000000 00000000 00000000 ................
+  0x00000030 2c000000 02005500 00000800 00000000 ,.....U.........
+  0x00000040 8c004000 00000000 16000000 00000000 ..@.............
+  0x00000050 00000000 00000000 00000000 00000000 ................
+EOF
+
+testfiles testfile-zgnu32
+testrun_compare ${abs_top_builddir}/src/readelf -z -x.zdebug_aranges testfile-zgnu32 <<\EOF
+
+Hex dump of section [2] '.zdebug_aranges', 49 bytes (64 uncompressed) at offset 0x1c0:
+  0x00000000 1c000000 02000000 00000400 00000000 ................
+  0x00000010 54800408 14000000 00000000 00000000 T...............
+  0x00000020 1c000000 02004d00 00000400 00000000 ......M.........
+  0x00000030 68800408 16000000 00000000 00000000 h...............
+EOF
+
+testfiles testfile-zgabi32
+testrun_compare ${abs_top_builddir}/src/readelf -z -x.debug_aranges testfile-zgabi32 <<\EOF
+
+Hex dump of section [2] '.debug_aranges', 49 bytes (64 uncompressed) at offset 0x1c0:
+  0x00000000 1c000000 02000000 00000400 00000000 ................
+  0x00000010 54800408 14000000 00000000 00000000 T...............
+  0x00000020 1c000000 02004d00 00000400 00000000 ......M.........
+  0x00000030 68800408 16000000 00000000 00000000 h...............
+EOF
+
+exit 0
diff --git a/tests/run-zstrptr.sh b/tests/run-zstrptr.sh
new file mode 100755
index 0000000..254dcd8
--- /dev/null
+++ b/tests/run-zstrptr.sh
@@ -0,0 +1,167 @@
+#! /bin/sh
+# Copyright (C) 2015 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# A random 32bit and 64bit testfile
+testfiles testfile testfile10
+
+testrun_compare ${abs_top_builddir}/tests/zstrptr testfile <<\EOF
+Strings in section 32 (compressed):
+[0] ''
+[1] '.symtab'
+[9] '.strtab'
+[11] '.shstrtab'
+[1b] '.interp'
+[23] '.note.ABI-tag'
+[31] '.hash'
+[37] '.dynsym'
+[3f] '.dynstr'
+[47] '.gnu.version'
+[54] '.gnu.version_r'
+[63] '.rel.got'
+[6c] '.rel.plt'
+[75] '.init'
+[7b] '.plt'
+[80] '.text'
+[86] '.fini'
+[8c] '.rodata'
+[94] '.data'
+[9a] '.eh_frame'
+[a4] '.ctors'
+[ab] '.dtors'
+[b2] '.got'
+[b7] '.dynamic'
+[c0] '.sbss'
+[c6] '.bss'
+[cb] '.stab'
+[d1] '.stabstr'
+[da] '.comment'
+[e3] '.debug_aranges'
+[f2] '.debug_pubnames'
+[102] '.debug_info'
+[10e] '.debug_abbrev'
+[11c] '.debug_line'
+[128] '.note'
+Strings in section 32 (uncompressed):
+[0] ''
+[1] '.symtab'
+[9] '.strtab'
+[11] '.shstrtab'
+[1b] '.interp'
+[23] '.note.ABI-tag'
+[31] '.hash'
+[37] '.dynsym'
+[3f] '.dynstr'
+[47] '.gnu.version'
+[54] '.gnu.version_r'
+[63] '.rel.got'
+[6c] '.rel.plt'
+[75] '.init'
+[7b] '.plt'
+[80] '.text'
+[86] '.fini'
+[8c] '.rodata'
+[94] '.data'
+[9a] '.eh_frame'
+[a4] '.ctors'
+[ab] '.dtors'
+[b2] '.got'
+[b7] '.dynamic'
+[c0] '.sbss'
+[c6] '.bss'
+[cb] '.stab'
+[d1] '.stabstr'
+[da] '.comment'
+[e3] '.debug_aranges'
+[f2] '.debug_pubnames'
+[102] '.debug_info'
+[10e] '.debug_abbrev'
+[11c] '.debug_line'
+[128] '.note'
+EOF
+
+testrun_compare ${abs_top_builddir}/tests/zstrptr testfile10 <<\EOF
+Strings in section 30 (compressed):
+[0] ''
+[1] '.symtab'
+[9] '.strtab'
+[11] '.shstrtab'
+[1b] '.hash'
+[21] '.dynsym'
+[29] '.dynstr'
+[31] '.gnu.version'
+[3e] '.gnu.version_r'
+[4d] '.rela.dyn'
+[57] '.init'
+[5d] '.text'
+[63] '.fini'
+[69] '.eh_frame'
+[73] '.data'
+[79] '.dynamic'
+[82] '.ctors'
+[89] '.dtors'
+[90] '.jcr'
+[95] '.plt'
+[9a] '.got'
+[9f] '.sdata'
+[a6] '.sbss'
+[ac] '.bss'
+[b1] '.comment'
+[ba] '.debug_aranges'
+[c9] '.debug_pubnames'
+[d9] '.debug_abbrev'
+[e7] '.debug_line'
+[f3] '.debug_frame'
+[100] '.debug_str'
+[10b] '.rela.debug_info'
+Strings in section 30 (uncompressed):
+[0] ''
+[1] '.symtab'
+[9] '.strtab'
+[11] '.shstrtab'
+[1b] '.hash'
+[21] '.dynsym'
+[29] '.dynstr'
+[31] '.gnu.version'
+[3e] '.gnu.version_r'
+[4d] '.rela.dyn'
+[57] '.init'
+[5d] '.text'
+[63] '.fini'
+[69] '.eh_frame'
+[73] '.data'
+[79] '.dynamic'
+[82] '.ctors'
+[89] '.dtors'
+[90] '.jcr'
+[95] '.plt'
+[9a] '.got'
+[9f] '.sdata'
+[a6] '.sbss'
+[ac] '.bss'
+[b1] '.comment'
+[ba] '.debug_aranges'
+[c9] '.debug_pubnames'
+[d9] '.debug_abbrev'
+[e7] '.debug_line'
+[f3] '.debug_frame'
+[100] '.debug_str'
+[10b] '.rela.debug_info'
+EOF
+
+exit 0
diff --git a/tests/system-elf-libelf-test.c b/tests/system-elf-libelf-test.c
new file mode 100644
index 0000000..7dfe498
--- /dev/null
+++ b/tests/system-elf-libelf-test.c
@@ -0,0 +1,35 @@
+/* Explicit test compiling with system elf.h header plus libelf header.
+
+   Copyright (C) 2016 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <elf.h>
+#include <stddef.h>
+#include "../libelf/libelf.h"
+
+int
+main (void)
+{
+  /* Trivial test, this is really a compile test anyway.  */
+  if (elf_version (EV_CURRENT) == EV_NONE)
+    return -1;
+
+  /* This will obviously fail. It is just to check that Elf32_Chdr and
+     elf32_getchdr are available (both at compile time and runtime).  */
+  Elf32_Chdr *chdr = elf32_getchdr (NULL);
+
+  return chdr == NULL ? 0 : -1;
+}
diff --git a/tests/testfile-debug-rel-g.o.bz2 b/tests/testfile-debug-rel-g.o.bz2
new file mode 100644
index 0000000..b8c94e7
--- /dev/null
+++ b/tests/testfile-debug-rel-g.o.bz2
Binary files differ
diff --git a/tests/testfile-debug-rel-z.o.bz2 b/tests/testfile-debug-rel-z.o.bz2
new file mode 100644
index 0000000..1cdac79
--- /dev/null
+++ b/tests/testfile-debug-rel-z.o.bz2
Binary files differ
diff --git a/tests/testfile-debug-rel.o.bz2 b/tests/testfile-debug-rel.o.bz2
new file mode 100644
index 0000000..a3f8dff
--- /dev/null
+++ b/tests/testfile-debug-rel.o.bz2
Binary files differ
diff --git a/tests/testfile-zgabi32.bz2 b/tests/testfile-zgabi32.bz2
new file mode 100755
index 0000000..6159dbc
--- /dev/null
+++ b/tests/testfile-zgabi32.bz2
Binary files differ
diff --git a/tests/testfile-zgabi32be.bz2 b/tests/testfile-zgabi32be.bz2
new file mode 100755
index 0000000..f1f5eb5
--- /dev/null
+++ b/tests/testfile-zgabi32be.bz2
Binary files differ
diff --git a/tests/testfile-zgabi64.bz2 b/tests/testfile-zgabi64.bz2
new file mode 100755
index 0000000..3b44f08
--- /dev/null
+++ b/tests/testfile-zgabi64.bz2
Binary files differ
diff --git a/tests/testfile-zgabi64be.bz2 b/tests/testfile-zgabi64be.bz2
new file mode 100755
index 0000000..d819ae3
--- /dev/null
+++ b/tests/testfile-zgabi64be.bz2
Binary files differ
diff --git a/tests/testfile-zgnu32.bz2 b/tests/testfile-zgnu32.bz2
new file mode 100755
index 0000000..9d622ca
--- /dev/null
+++ b/tests/testfile-zgnu32.bz2
Binary files differ
diff --git a/tests/testfile-zgnu32be.bz2 b/tests/testfile-zgnu32be.bz2
new file mode 100755
index 0000000..c1dd589
--- /dev/null
+++ b/tests/testfile-zgnu32be.bz2
Binary files differ
diff --git a/tests/testfile-zgnu64.bz2 b/tests/testfile-zgnu64.bz2
new file mode 100755
index 0000000..1bc2c09
--- /dev/null
+++ b/tests/testfile-zgnu64.bz2
Binary files differ
diff --git a/tests/testfile-zgnu64be.bz2 b/tests/testfile-zgnu64be.bz2
new file mode 100755
index 0000000..390c9c9
--- /dev/null
+++ b/tests/testfile-zgnu64be.bz2
Binary files differ
diff --git a/tests/zstrptr.c b/tests/zstrptr.c
new file mode 100644
index 0000000..6d8e19f
--- /dev/null
+++ b/tests/zstrptr.c
@@ -0,0 +1,124 @@
+/* Test program for elf_strptr function.
+   Copyright (C) 2015 Red Hat, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include ELFUTILS_HEADER(elf)
+#include <gelf.h>
+
+int
+main (int argc, char *argv[])
+{
+  if (argc != 2)
+    {
+      printf ("No ELF file given as argument");
+      exit (1);
+    }
+
+  const char *fname = argv[1];
+
+  // Initialize libelf.
+  elf_version (EV_CURRENT);
+
+  /* Read the ELF from disk now.  */
+  int fd = open (fname, O_RDONLY);
+  if (fd == -1)
+    {
+      printf ("cannot open `%s' read-only: %s\n", fname, strerror (errno));
+      exit (1);
+    }
+
+  Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
+  if (elf == NULL)
+    {
+      printf ("cannot create ELF descriptor read-only: %s\n", elf_errmsg (-1));
+      exit (1);
+    }
+
+  size_t ndx;
+  if (elf_getshdrstrndx (elf, &ndx) != 0)
+    {
+      printf ("cannot get section header table index: %s\n", elf_errmsg (-1));
+      exit (1);
+    }
+
+  if (ndx == SHN_UNDEF)
+    {
+      printf ("ELF file `%s' doesn't have a section header table index", fname);
+      exit (1);
+    }
+
+  Elf_Scn *scn = elf_getscn (elf, ndx);
+  if (scn == NULL)
+    {
+      printf ("Couldn't get section %zd: %s\n", ndx, elf_errmsg (-1));
+      exit (1);
+    }
+
+  void print_strings (void)
+  {
+    GElf_Shdr shdr_mem;
+    GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+
+    printf ("Strings in section %zd (%s):\n", ndx,
+	    ((shdr->sh_flags & SHF_COMPRESSED) != 0
+	     ? "compressed" : "uncompressed"));
+
+    size_t off = 0;
+    const char *str = elf_strptr (elf, ndx, off);
+    while (str != NULL)
+      {
+	printf ("[%zx] '%s'\n", off, str);
+	off += strlen (str) + 1;
+	str = elf_strptr (elf, ndx, off);
+      }
+  }
+
+  if (elf_compress (scn, ELFCOMPRESS_ZLIB, 0) < 0)
+    {
+      printf ("Couldn't compress section %zd: %s\n", ndx, elf_errmsg (-1));
+      exit (1);
+    }
+  print_strings ();
+
+  if (elf_compress (scn, 0, 0) < 0)
+    {
+      printf ("Couldn't decompress section %zd: %s\n", ndx, elf_errmsg (-1));
+      exit (1);
+    }
+  print_strings ();
+
+  if (elf_end (elf) != 0)
+    {
+      printf ("failure in elf_end: %s\n", elf_errmsg (-1));
+      exit (1);
+    }
+
+  close (fd);
+
+  return 0;
+}
diff --git a/version.h b/version.h
index 67f6759..a1ee493 100644
--- a/version.h
+++ b/version.h
@@ -30,7 +30,7 @@
 #ifndef _ELFUTILS_VERSION_H
 #define _ELFUTILS_VERSION_H	1
 
-#define _ELFUTILS_VERSION	164
+#define _ELFUTILS_VERSION	165
 
 #define _ELFUTILS_PREREQ(major, minor) \
   (_ELFUTILS_VERSION >= ((major) * 1000 + (minor)))