summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS10
-rw-r--r--config/elfutils.spec.in9
-rw-r--r--configure.ac4
-rw-r--r--lib/ChangeLog6
-rw-r--r--lib/dynamicsizehash.c18
-rw-r--r--lib/dynamicsizehash.h21
-rw-r--r--libdw/ChangeLog196
-rw-r--r--libdw/Makefile.am7
-rw-r--r--libdw/cfi.c1
-rw-r--r--libdw/cfi.h7
-rw-r--r--libdw/cie.c26
-rw-r--r--libdw/dwarf.h15
-rw-r--r--libdw/dwarf_abbrev_hash.c3
-rw-r--r--libdw/dwarf_begin_elf.c12
-rw-r--r--libdw/dwarf_cuoffset.c6
-rw-r--r--libdw/dwarf_diecu.c11
-rw-r--r--libdw/dwarf_dieoffset.c5
-rw-r--r--libdw/dwarf_end.c5
-rw-r--r--libdw/dwarf_formaddr.c4
-rw-r--r--libdw/dwarf_formblock.c10
-rw-r--r--libdw/dwarf_formref.c3
-rw-r--r--libdw/dwarf_formref_die.c60
-rw-r--r--libdw/dwarf_formstring.c4
-rw-r--r--libdw/dwarf_formudata.c38
-rw-r--r--libdw/dwarf_frame_cfa.c4
-rw-r--r--libdw/dwarf_frame_register.c2
-rw-r--r--libdw/dwarf_getaranges.c5
-rw-r--r--libdw/dwarf_getlocation.c36
-rw-r--r--libdw/dwarf_getsrclines.c207
-rw-r--r--libdw/dwarf_linediscriminator.c66
-rw-r--r--libdw/dwarf_lineisa.c66
-rw-r--r--libdw/dwarf_lineop_index.c66
-rw-r--r--libdw/dwarf_next_cfi.c37
-rw-r--r--libdw/dwarf_nextcu.c80
-rw-r--r--libdw/dwarf_offdie.c36
-rw-r--r--libdw/dwarf_siblingof.c8
-rw-r--r--libdw/dwarf_sig8_hash.c62
-rw-r--r--libdw/dwarf_sig8_hash.h59
-rw-r--r--libdw/encoded-value.h32
-rw-r--r--libdw/fde.c21
-rw-r--r--libdw/libdw.h32
-rw-r--r--libdw/libdw.map10
-rw-r--r--libdw/libdwP.h83
-rw-r--r--libdw/libdw_findcu.c110
-rw-r--r--libdw/memory-access.h18
-rw-r--r--libdwfl/ChangeLog58
-rw-r--r--libdwfl/core-file.c19
-rw-r--r--libdwfl/cu.c7
-rw-r--r--libdwfl/dwfl_build_id_find_elf.c8
-rw-r--r--libdwfl/dwfl_error.c3
-rw-r--r--libdwfl/dwfl_module_getdwarf.c57
-rw-r--r--libdwfl/dwfl_segment_report_module.c12
-rw-r--r--libdwfl/find-debuginfo.c26
-rw-r--r--libdwfl/libdwflP.h4
-rw-r--r--libdwfl/link_map.c50
-rw-r--r--libdwfl/linux-kernel-modules.c67
-rw-r--r--libdwfl/linux-proc-maps.c26
-rw-r--r--libdwfl/segment.c50
-rw-r--r--libelf/ChangeLog8
-rw-r--r--libelf/gelf_update_ehdr.c5
-rw-r--r--libelf/gelf_update_phdr.c3
-rw-r--r--libelf/gelf_update_shdr.c5
-rw-r--r--po/de.po646
-rw-r--r--po/es.po669
-rw-r--r--po/ja.po653
-rw-r--r--po/pl.po1849
-rw-r--r--po/uk.po663
-rw-r--r--src/ChangeLog67
-rw-r--r--src/addr2line.c25
-rw-r--r--src/readelf.c387
-rw-r--r--src/unstrip.c45
-rw-r--r--tests/ChangeLog4
-rwxr-xr-xtests/run-unstrip-test.sh13
73 files changed, 4296 insertions, 2654 deletions
diff --git a/NEWS b/NEWS
index d1daab62..975e2948 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+Version 0.148:
+
+libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types.
+ New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index.
+
+libdwfl: Fixes in core-file handling, support cores from PIEs.
+ When working from build IDs, don't open a named file that mismatches.
+
+readelf: Handle DWARF 4 formats.
+
Version 0.147:
libdw: Fixes in CFI handling, best possible handling of bogus CFA ops.
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index 102d723f..ab764dfc 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -183,6 +183,15 @@ rm -rf ${RPM_BUILD_ROOT}
%{_libdir}/libelf.a
%changelog
+* Mon Jun 28 2010 <[email protected]> 0.148-1
+- libdw: Accept DWARF 4 format: new functions dwarf_next_unit,
+ dwarf_offdie_types. New functions dwarf_lineisa,
+ dwarf_linediscriminator, dwarf_lineop_index.
+- libdwfl: Fixes in core-file handling, support cores from PIEs.
+ When working from build IDs, don't open a named file that
+ mismatches.
+- readelf: Handle DWARF 4 formats.
+
* Mon May 3 2010 Ulrich Drepper <[email protected]> 0.147-1
- libdw: Fixes in CFI handling, best possible handling of bogus CFA
ops.
diff --git a/configure.ac b/configure.ac
index 53cd8c05..9de6f5ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software Foundation,
dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
dnl
-AC_INIT([Red Hat elfutils],[0.147],[http://bugzilla.redhat.com/bugzilla/],[elfutils])
+AC_INIT([Red Hat elfutils],[0.148],[http://bugzilla.redhat.com/bugzilla/],[elfutils])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_FILES([config/Makefile])
@@ -277,7 +277,7 @@ case "$eu_version" in
0[[0-9]][[0-9]][[0-9]]) eu_version="${eu_version#0}$eu_extra_version" ;;
[[0-9]][[0-9]][[0-9]][[0-9]]) eu_version="${eu_version}$eu_extra_version" ;;
[[0-9]][[0-9]][[0-9]]) eu_version="${eu_version}0$eu_extra_version" ;;
-[[0-9]][[0-9]]) eu_version="${eu_version}00$eu_extra_version";;
+[[0-9]][[0-9]]) eu_version="${eu_version}00$eu_extra_version";;
*) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
esac
diff --git a/lib/ChangeLog b/lib/ChangeLog
index f4aa0dfc..b487fb4e 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-16 Roland McGrath <[email protected]>
+
+ * dynamicsizehash.h (HASHTYPE): New macro.
+ (struct): Use size_t for table sizes.
+ * dynamicsizehash.c: Likewise. Use HASHTYPE for hash values.
+
2009-01-25 Roland McGrath <[email protected]>
* eu-config.h (__STDC_LIMIT_MACROS): Define it.
diff --git a/lib/dynamicsizehash.c b/lib/dynamicsizehash.c
index b645da6a..24335d42 100644
--- a/lib/dynamicsizehash.c
+++ b/lib/dynamicsizehash.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001, 2002, 2005 Red Hat, Inc.
+/* Copyright (C) 2000-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2000.
@@ -67,7 +67,7 @@
static size_t
lookup (htab, hval, val)
NAME *htab;
- unsigned long int hval;
+ HASHTYPE hval;
TYPE val __attribute__ ((unused));
{
/* First hash function: simply take the modul but prevent zero. */
@@ -75,7 +75,7 @@ lookup (htab, hval, val)
if (htab->table[idx].hashval != 0)
{
- unsigned long int hash;
+ HASHTYPE hash;
if (htab->table[idx].hashval == hval
&& COMPARE (htab->table[idx].data, val) == 0)
@@ -103,7 +103,7 @@ lookup (htab, hval, val)
static void
-insert_entry_2 (NAME *htab, unsigned long int hval, size_t idx, TYPE data)
+insert_entry_2 (NAME *htab, HASHTYPE hval, size_t idx, TYPE data)
{
#ifdef ITERATE
if (htab->table[idx].hashval == 0)
@@ -137,7 +137,7 @@ insert_entry_2 (NAME *htab, unsigned long int hval, size_t idx, TYPE data)
__typeof__ (htab->first) runp;
# endif
#else
- unsigned long int old_size = htab->size;
+ size_t old_size = htab->size;
#endif
#define _TABLE(name) \
name##_ent *table = htab->table
@@ -198,7 +198,7 @@ int
name##_init
INIT(NAME) (htab, init_size)
NAME *htab;
- unsigned long int init_size;
+ size_t init_size;
{
/* We need the size to be a prime. */
init_size = next_prime (init_size);
@@ -235,7 +235,7 @@ int
name##_insert
INSERT(NAME) (htab, hval, data)
NAME *htab;
- unsigned long int hval;
+ HASHTYPE hval;
TYPE data;
{
size_t idx;
@@ -262,7 +262,7 @@ int
name##_overwrite
INSERT(NAME) (htab, hval, data)
NAME *htab;
- unsigned long int hval;
+ HASHTYPE hval;
TYPE data;
{
size_t idx;
@@ -285,7 +285,7 @@ TYPE
name##_find
FIND(NAME) (htab, hval, val)
NAME *htab;
- unsigned long int hval;
+ HASHTYPE hval;
TYPE val;
{
size_t idx;
diff --git a/lib/dynamicsizehash.h b/lib/dynamicsizehash.h
index 7cbb169d..f169d5e7 100644
--- a/lib/dynamicsizehash.h
+++ b/lib/dynamicsizehash.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
+/* Copyright (C) 2000-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2000.
@@ -57,6 +57,7 @@
The following macros if present select features:
ITERATE iterating over the table entries is possible
+ HASHTYPE integer type for hash values, default unsigned long int
*/
@@ -69,6 +70,10 @@
# define NEXT(name)
#endif
+#ifndef HASHTYPE
+# define HASHTYPE unsigned long int
+#endif
+
/* Defined separately. */
extern size_t next_prime (size_t seed);
@@ -78,7 +83,7 @@ extern size_t next_prime (size_t seed);
#define _DYNHASHENTTYPE(name) \
typedef struct name##_ent \
{ \
- unsigned long int hashval; \
+ HASHTYPE hashval; \
TYPE data; \
NEXT (name) \
} name##_ent
@@ -90,8 +95,8 @@ DYNHASHENTTYPE (NAME);
#define _DYNHASHTYPE(name) \
typedef struct \
{ \
- unsigned long int size; \
- unsigned long int filled; \
+ size_t size; \
+ size_t filled; \
name##_ent *table; \
FIRST (name) \
} name
@@ -102,19 +107,19 @@ DYNHASHTYPE (NAME);
#define _FUNCTIONS(name) \
/* Initialize the hash table. */ \
-extern int name##_init (name *htab, unsigned long int init_size); \
+extern int name##_init (name *htab, size_t init_size); \
\
/* Free resources allocated for hash table. */ \
extern int name##_free (name *htab); \
\
/* Insert new entry. */ \
-extern int name##_insert (name *htab, unsigned long int hval, TYPE data); \
+extern int name##_insert (name *htab, HASHTYPE hval, TYPE data); \
\
/* Insert new entry, possibly overwrite old entry. */ \
-extern int name##_overwrite (name *htab, unsigned long int hval, TYPE data); \
+extern int name##_overwrite (name *htab, HASHTYPE hval, TYPE data); \
\
/* Find entry in hash table. */ \
-extern TYPE name##_find (name *htab, unsigned long int hval, TYPE val);
+extern TYPE name##_find (name *htab, HASHTYPE hval, TYPE val);
#define FUNCTIONS(name) _FUNCTIONS (name)
FUNCTIONS (NAME)
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index c16e91d5..b39bbf68 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,197 @@
+2010-06-23 Roland McGrath <[email protected]>
+
+ * cfi.c (dwarf_cfi_validate_fde): Function removed.
+ * libdw.h: Remove it.
+ * libdw.map: Likewise.
+
+2010-06-22 Roland McGrath <[email protected]>
+
+ * dwarf_getlocation.c (check_constant_offset): data[48] are constant.
+
+ * dwarf_getsrclines.c: Fix signed comparison warning in extended
+ opcode parsing.
+
+2010-06-21 Roland McGrath <[email protected]>
+
+ * dwarf.h: Add DW_TAG_GNU_* constants.
+
+ * memory-access.h (get_sleb128_rest_return): Fix sign extension for
+ 10-byte case.
+
+2010-06-20 Roland McGrath <[email protected]>
+
+ * libdw_findcu.c (__libdw_findcu): Take new flag argument,
+ to search TUs instead of CUs.
+ * libdwP.h: Update decl.
+ (struct Dwarf): New member tu_tree.
+ * dwarf_end.c (dwarf_end): Clean up tu_tree.
+ * dwarf_offdie.c (do_offdie): New function, broken out of ...
+ (dwarf_offdie): ... here.
+ (dwarf_offdie_types): New function.
+ * libdw.h: Declare it.
+ * libdw.map (ELFUTILS_0.148): Add it.
+
+ * libdwP.h (CUDIE): Use cu_data.
+ * dwarf_formblock.c: Likewise.
+ * dwarf_formref_die.c: Likewise.
+ * dwarf_diecu.c: Use CUDIE macro.
+ * dwarf_formaddr.c: Use cu_sec_idx.
+
+2010-06-16 Roland McGrath <[email protected]>
+
+ * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
+ we don't repeat a CU lookup we've already done. Handle
+ DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.
+
+ * libdw_findcu.c (__libdw_intern_next_unit): New function,
+ broken out of ...
+ (__libdw_findcu): ... here. Call it.
+ * libdwP.h: Declare it.
+ (struct Dwarf): New member next_tu_offset.
+
+ * dwarf_sig8_hash.c: New file.
+ * dwarf_sig8_hash.h: New file.
+ * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
+ * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
+ defining NO_UNDEF.
+ * libdwP.h (struct Dwarf): New member sig8_hash.
+ * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
+ * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.
+
+ * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
+ (dwarf_nextcu): ... here. Call it.
+ * libdw.h: Declare it.
+ * libdwP.h: Add INTDECL.
+ * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
+ * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.
+
+ * libdwP.h (cu_sec_idx, cu_data): New functions.
+ Use .debug_types when CU is a TU.
+ * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
+ * dwarf_siblingof.c: Likewise.
+ * dwarf_formstring.c: Likewise.
+ * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
+ * dwarf_getlocation.c (dwarf_getlocation): Likewise.
+ (dwarf_getlocation_addr): Likewise.
+
+ * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
+ (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
+ .debug_types header size instead of .debug_info header size.
+ (CUDIE): Use it.
+ * dwarf_diecu.c: Update caller.
+ * dwarf_getaranges.c: Likewise.
+ * dwarf_nextcu.c: Likewise.
+ * libdw_findcu.c (__libdw_findcu): Initialize new members.
+
+ * fde.c (fde_by_offset): Renamed to ...
+ (__libdw_fde_by_offset): ... this, made global and internal_function.
+ Don't take ADDRESS argument.
+ (__libdw_find_fde): Update caller. Do address sanity check here.
+ * cfi.h: Declare __libdw_fde_by_offset.
+ * cfi.c (dwarf_cfi_validate_fde): New function.
+ * libdw.h: Declare it.
+ * libdw.map (ELFUTILS_0.148): Add it.
+
+ * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
+ either DW_EH_PE_udata8 or DW_EH_PE_udata4.
+
+ * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
+ Don't assume DW_EH_PE_aligned refers to native address size.
+
+ * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
+ address.
+
+2010-06-17 Roland McGrath <[email protected]>
+
+ * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
+ op_index.
+ * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
+ into an inner inline function. Set new fields. Check all fields for
+ overflow when setting.
+ * dwarf_lineisa.c: New file.
+ * dwarf_linediscriminator.c: New file.
+ * dwarf_lineop_index.c: New file.
+ * Makefile.am (libdw_a_SOURCES): Add them.
+ * libdw.map (ELFUTILS_0.148): Add them.
+ * libdw.h: Declare them.
+
+2010-06-16 Roland McGrath <[email protected]>
+
+ * dwarf_next_cfi.c: Fix version 4 return_address_register decoding.
+
+ * fde.c (fde_by_offset): Renamed to ...
+ (__libdw_fde_by_offset): ... this, made global and internal_function.
+ Don't take ADDRESS argument.
+ (__libdw_find_fde): Update caller. Do address sanity check here.
+ * cfi.h: Declare __libdw_fde_by_offset.
+ * cfi.c (dwarf_cfi_validate_fde): New function.
+ * libdw.h: Declare it.
+ * libdw.map (ELFUTILS_0.148): Add it.
+
+ * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
+ either DW_EH_PE_udata8 or DW_EH_PE_udata4.
+
+ * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
+ Don't assume DW_EH_PE_aligned refers to native address size.
+
+ * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
+ address.
+
+2010-06-15 Roland McGrath <[email protected]>
+
+ * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
+ DW_FORM_ref_addr.
+ * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
+ here, since we don't support it yet.
+
+ * dwarf_next_cfi.c: Handle version 4 format.
+
+ * dwarf_getsrclines.c: Handle version 4 format.
+
+2010-06-01 Roland McGrath <[email protected]>
+
+ * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
+ * dwarf_begin_elf.c (dwarf_scnnames): Likewise.
+
+ * libdwP.h (CIE_VERSION): Remove unused macro.
+
+ * dwarf_getsrclines.c: Fix version field test.
+ * libdwP.h (DWARF_VERSION): Remove useless macro.
+
+ * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
+
+ * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
+
+ * libdw_findcu.c (__libdw_findcu): Accept version 4.
+
+2010-05-31 Mark Wielaard <[email protected]>
+
+ * cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
+ * libdw.h (dwarf_cfi_cie_p): ... here.
+
+2010-05-31 Mark Wielaard <[email protected]>
+
+ * dwarf.h: Fix DW_LANG_Python constant.
+
+2010-05-28 Eduardo Santiago <[email protected]>
+
+ * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
+ thing.
+
+2010-05-27 Roland McGrath <[email protected]>
+
+ * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
+ DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
+
+2010-05-08 Roland McGrath <[email protected]>
+
+ * dwarf_getlocation.c (__libdw_intern_expression): Take new argument
+ REF_SIZE. Use that to handle DW_OP_call_ref correctly.
+ (getlocation): Update caller.
+ * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
+ * dwarf_frame_register.c (dwarf_frame_register): Likewise.
+ * libdwP.h: Update decl.
+
2010-04-26 Roland McGrath <[email protected]>
* cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
@@ -1603,4 +1797,4 @@
2003-08-11 Ulrich Drepper <[email protected]>
- * Moved to CVS archive.
+ * Moved to CVS archive.
diff --git a/libdw/Makefile.am b/libdw/Makefile.am
index 08c3f092..a6c98a87 100644
--- a/libdw/Makefile.am
+++ b/libdw/Makefile.am
@@ -46,13 +46,14 @@ pkginclude_HEADERS = libdw.h \
c++/dwarf_comparator
noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h \
- cfi.h encoded-value.h \
+ dwarf_sig8_hash.h cfi.h encoded-value.h \
known-dwarf.h c++/dwarf-knowledge.cc c++/data-values.hh
libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \
dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \
- dwarf_attr.c dwarf_formstring.c dwarf_abbrev_hash.c \
+ dwarf_attr.c dwarf_formstring.c \
+ dwarf_abbrev_hash.c dwarf_sig8_hash.c \
dwarf_attr_integrate.c dwarf_hasattr_integrate.c \
dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \
dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \
@@ -71,6 +72,8 @@ libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \
dwarf_linecol.c dwarf_linebeginstatement.c \
dwarf_lineendsequence.c dwarf_lineblock.c \
dwarf_lineprologueend.c dwarf_lineepiloguebegin.c \
+ dwarf_lineisa.c dwarf_linediscriminator.c \
+ dwarf_lineop_index.c \
dwarf_onesrcline.c dwarf_formblock.c \
dwarf_getsrcfiles.c dwarf_filesrc.c dwarf_getsrcdirs.c \
dwarf_getlocation.c dwarf_getstring.c dwarf_offabbrev.c \
diff --git a/libdw/cfi.c b/libdw/cfi.c
index 3cb378b6..aeb48e69 100644
--- a/libdw/cfi.c
+++ b/libdw/cfi.c
@@ -369,6 +369,7 @@ execute_cfi (Dwarf_CFI *cache,
}
/* We get here only for the cases that have just moved LOC. */
+ cfi_assert (cie->initial_state != NULL);
if (find_pc >= loc)
/* This advance has not yet reached FIND_PC. */
fs->start = loc;
diff --git a/libdw/cfi.h b/libdw/cfi.h
index e04e76dd..ef9cd7e1 100644
--- a/libdw/cfi.h
+++ b/libdw/cfi.h
@@ -54,8 +54,6 @@
#include "libelfP.h"
struct ebl;
-#define dwarf_cfi_cie_p(entry) ((entry)->cie.CIE_id == DW_CIE_ID_64)
-
/* Cached CIE representation. */
struct dwarf_cie
{
@@ -229,6 +227,11 @@ extern struct dwarf_fde *__libdw_find_fde (Dwarf_CFI *cache,
Dwarf_Addr address)
__nonnull_attribute__ (1) internal_function;
+/* Look for an FDE by its offset in the section. */
+extern struct dwarf_fde *__libdw_fde_by_offset (Dwarf_CFI *cache,
+ Dwarf_Off offset)
+ __nonnull_attribute__ (1) internal_function;
+
/* Process the FDE that contains the given PC address,
to yield the frame state when stopped there.
The return value is a DWARF_E_* error code. */
diff --git a/libdw/cie.c b/libdw/cie.c
index 08752a6d..7c93f551 100644
--- a/libdw/cie.c
+++ b/libdw/cie.c
@@ -1,5 +1,5 @@
/* CIE reading.
- Copyright (C) 2009 Red Hat, Inc.
+ Copyright (C) 2009-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -53,6 +53,7 @@
#include "cfi.h"
#include "encoded-value.h"
+#include <assert.h>
#include <search.h>
#include <stdlib.h>
@@ -135,6 +136,29 @@ intern_new_cie (Dwarf_CFI *cache, Dwarf_Off offset, const Dwarf_CIE *info)
break;
}
+ if ((cie->fde_encoding & 0x0f) == DW_EH_PE_absptr)
+ {
+ /* Canonicalize encoding to a specific size. */
+ assert (DW_EH_PE_absptr == 0);
+
+ /* XXX should get from dwarf_next_cfi with v4 header. */
+ uint_fast8_t address_size
+ = cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8;
+ switch (address_size)
+ {
+ case 8:
+ cie->fde_encoding |= DW_EH_PE_udata8;
+ break;
+ case 4:
+ cie->fde_encoding |= DW_EH_PE_udata4;
+ break;
+ default:
+ free (cie);
+ __libdw_seterrno (DWARF_E_INVALID_DWARF);
+ return NULL;
+ }
+ }
+
/* Save the initial instructions to be played out into initial state. */
cie->initial_instructions = info->initial_instructions;
cie->initial_instructions_end = info->initial_instructions_end;
diff --git a/libdw/dwarf.h b/libdw/dwarf.h
index aefc1a79..dbf56e91 100644
--- a/libdw/dwarf.h
+++ b/libdw/dwarf.h
@@ -113,11 +113,22 @@ enum
DW_TAG_shared_type = 0x40,
DW_TAG_type_unit = 0x41,
DW_TAG_rvalue_reference_type = 0x42,
+ DW_TAG_template_alias = 0x43,
+
DW_TAG_lo_user = 0x4080,
+
DW_TAG_MIPS_loop = 0x4081,
DW_TAG_format_label = 0x4101,
DW_TAG_function_template = 0x4102,
DW_TAG_class_template = 0x4103,
+
+ DW_TAG_GNU_BINCL = 0x4104,
+ DW_TAG_GNU_EINCL = 0x4105,
+
+ DW_TAG_GNU_template_template_param = 0x4106,
+ DW_TAG_GNU_template_parameter_pack = 0x4107,
+ DW_TAG_GNU_formal_parameter_pack = 0x4108,
+
DW_TAG_hi_user = 0xffff
};
@@ -226,6 +237,8 @@ enum
DW_AT_main_subprogram = 0x6a,
DW_AT_data_bit_offset = 0x6b,
DW_AT_const_expr = 0x6c,
+ DW_AT_enum_class = 0x6d,
+ DW_AT_linkage_name = 0x6e,
DW_AT_lo_user = 0x2000,
@@ -565,6 +578,7 @@ enum
DW_LANG_ObjC_plus_plus = 0x0011, /* Objective-C++ */
DW_LANG_UPC = 0x0012, /* Unified Parallel C */
DW_LANG_D = 0x0013, /* D */
+ DW_LANG_Python = 0x0014, /* Python */
DW_LANG_lo_user = 0x8000,
DW_LANG_Mips_Assembler = 0x8001,
@@ -643,6 +657,7 @@ enum
DW_LNE_end_sequence = 1,
DW_LNE_set_address = 2,
DW_LNE_define_file = 3,
+ DW_LNE_set_discriminator = 4,
DW_LNE_lo_user = 128,
DW_LNE_hi_user = 255
diff --git a/libdw/dwarf_abbrev_hash.c b/libdw/dwarf_abbrev_hash.c
index 5c5d6cb1..bec1ceb2 100644
--- a/libdw/dwarf_abbrev_hash.c
+++ b/libdw/dwarf_abbrev_hash.c
@@ -1,5 +1,5 @@
/* Implementation of hash table for DWARF .debug_abbrev section content.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
+ Copyright (C) 2000-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2000.
@@ -52,6 +52,7 @@
# include <config.h>
#endif
+#include "dwarf_sig8_hash.h"
#define NO_UNDEF
#include "libdwP.h"
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
index 391a8b85..b5fb7c91 100644
--- a/libdw/dwarf_begin_elf.c
+++ b/libdw/dwarf_begin_elf.c
@@ -1,5 +1,5 @@
/* Create descriptor from ELF descriptor for processing file.
- Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 Red Hat, Inc.
+ Copyright (C) 2002-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2002.
@@ -66,6 +66,7 @@
static const char dwarf_scnnames[IDX_last][17] =
{
[IDX_debug_info] = ".debug_info",
+ [IDX_debug_types] = ".debug_types",
[IDX_debug_abbrev] = ".debug_abbrev",
[IDX_debug_aranges] = ".debug_aranges",
[IDX_debug_line] = ".debug_line",
@@ -73,10 +74,6 @@ static const char dwarf_scnnames[IDX_last][17] =
[IDX_debug_loc] = ".debug_loc",
[IDX_debug_pubnames] = ".debug_pubnames",
[IDX_debug_str] = ".debug_str",
- [IDX_debug_funcnames] = ".debug_funcnames",
- [IDX_debug_typenames] = ".debug_typenames",
- [IDX_debug_varnames] = ".debug_varnames",
- [IDX_debug_weaknames] = ".debug_weaknames",
[IDX_debug_macinfo] = ".debug_macinfo",
[IDX_debug_ranges] = ".debug_ranges"
};
@@ -249,8 +246,10 @@ dwarf_begin_elf (elf, cmd, scngrp)
/* Allocate the data structure. */
Dwarf *result = (Dwarf *) calloc (1, sizeof (Dwarf) + mem_default_size);
- if (result == NULL)
+ if (unlikely (result == NULL)
+ || unlikely (Dwarf_Sig8_Hash_init (&result->sig8_hash, 11) < 0))
{
+ free (result);
__libdw_seterrno (DWARF_E_NOMEM);
return NULL;
}
@@ -271,7 +270,6 @@ dwarf_begin_elf (elf, cmd, scngrp)
result->mem_tail->remaining = result->mem_tail->size;
result->mem_tail->prev = NULL;
-
if (cmd == DWARF_C_READ || cmd == DWARF_C_RDWR)
{
/* If the caller provides a section group we get the DWARF
diff --git a/libdw/dwarf_cuoffset.c b/libdw/dwarf_cuoffset.c
index 10238b43..47653200 100644
--- a/libdw/dwarf_cuoffset.c
+++ b/libdw/dwarf_cuoffset.c
@@ -1,5 +1,5 @@
/* Return offset of DIE in CU.
- Copyright (C) 2003 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -62,7 +62,5 @@ dwarf_cuoffset (die)
{
return (die == NULL
? (Dwarf_Off) -1l
- : (die->addr
- - die->cu->dbg->sectiondata[IDX_debug_info]->d_buf
- - die->cu->start));
+ : (die->addr - cu_data (die->cu)->d_buf - die->cu->start));
}
diff --git a/libdw/dwarf_diecu.c b/libdw/dwarf_diecu.c
index a62b8222..cd98cf61 100644
--- a/libdw/dwarf_diecu.c
+++ b/libdw/dwarf_diecu.c
@@ -1,5 +1,5 @@
/* Return CU DIE containing given DIE.
- Copyright (C) 2005, 2008 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -65,14 +65,7 @@ dwarf_diecu (die, result, address_sizep, offset_sizep)
if (die == NULL)
return NULL;
- /* Clear the entire DIE structure. This signals we have not yet
- determined any of the information. */
- memset (result, '\0', sizeof (Dwarf_Die));
-
- result->addr = ((char *) die->cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + DIE_OFFSET_FROM_CU_OFFSET (die->cu->start,
- die->cu->offset_size));
- result->cu = die->cu;
+ *result = CUDIE (die->cu);
if (address_sizep != NULL)
*address_sizep = die->cu->address_size;
diff --git a/libdw/dwarf_dieoffset.c b/libdw/dwarf_dieoffset.c
index 4d712f7f..ac4a84c8 100644
--- a/libdw/dwarf_dieoffset.c
+++ b/libdw/dwarf_dieoffset.c
@@ -1,5 +1,5 @@
/* Return offset of DIE.
- Copyright (C) 2003, 2005 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -62,7 +62,6 @@ dwarf_dieoffset (die)
{
return (die == NULL
? ~0ul
- : (Dwarf_Off) (die->addr
- - die->cu->dbg->sectiondata[IDX_debug_info]->d_buf));
+ : (Dwarf_Off) (die->addr - cu_data (die->cu)->d_buf));
}
INTDEF(dwarf_dieoffset)
diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c
index fda37fc1..ec10542e 100644
--- a/libdw/dwarf_end.c
+++ b/libdw/dwarf_end.c
@@ -1,5 +1,5 @@
/* Release debugging handling context.
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009 Red Hat, Inc.
+ Copyright (C) 2002-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2002.
@@ -86,10 +86,13 @@ dwarf_end (dwarf)
/* Clean up the CFI cache. */
__libdw_destroy_frame_cache (dwarf->cfi);
+ Dwarf_Sig8_Hash_free (&dwarf->sig8_hash);
+
/* The search tree for the CUs. NB: the CU data itself is
allocated separately, but the abbreviation hash tables need
to be handled. */
tdestroy (dwarf->cu_tree, cu_free);
+ tdestroy (dwarf->tu_tree, cu_free);
struct libdw_memblock *memp = dwarf->mem_tail;
/* The first block is allocated together with the Dwarf object. */
diff --git a/libdw/dwarf_formaddr.c b/libdw/dwarf_formaddr.c
index 9938be7e..a8c786ff 100644
--- a/libdw/dwarf_formaddr.c
+++ b/libdw/dwarf_formaddr.c
@@ -1,5 +1,5 @@
/* Return address represented by attribute.
- Copyright (C) 2003, 2005 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -71,7 +71,7 @@ dwarf_formaddr (attr, return_addr)
}
if (__libdw_read_address (attr->cu->dbg,
- IDX_debug_info, attr->valp,
+ cu_sec_idx (attr->cu), attr->valp,
attr->cu->address_size, return_addr))
return -1;
diff --git a/libdw/dwarf_formblock.c b/libdw/dwarf_formblock.c
index 51396d47..4eb815c4 100644
--- a/libdw/dwarf_formblock.c
+++ b/libdw/dwarf_formblock.c
@@ -1,5 +1,5 @@
/* Return block represented by attribute.
- Copyright (C) 2004, 2005 Red Hat, Inc.
+ Copyright (C) 2004-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2004.
@@ -84,6 +84,7 @@ dwarf_formblock (attr, return_block)
break;
case DW_FORM_block:
+ case DW_FORM_exprloc:
datap = attr->valp;
get_uleb128 (return_block->length, datap);
return_block->data = (unsigned char *) datap;
@@ -94,9 +95,10 @@ dwarf_formblock (attr, return_block)
return -1;
}
- if (return_block->data + return_block->length
- > ((unsigned char *) attr->cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + attr->cu->dbg->sectiondata[IDX_debug_info]->d_size))
+ if (unlikely (cu_data (attr->cu)->d_size
+ - (return_block->data
+ - (unsigned char *) cu_data (attr->cu)->d_buf)
+ < return_block->length))
{
/* Block does not fit. */
__libdw_seterrno (DWARF_E_INVALID_DWARF);
diff --git a/libdw/dwarf_formref.c b/libdw/dwarf_formref.c
index b8463b70..e4d35ae8 100644
--- a/libdw/dwarf_formref.c
+++ b/libdw/dwarf_formref.c
@@ -1,5 +1,5 @@
/* Return reference offset represented by attribute.
- Copyright (C) 2003, 2005, 2007, 2008 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -92,6 +92,7 @@ __libdw_formref (attr, return_offset)
break;
case DW_FORM_ref_addr:
+ case DW_FORM_ref_sig8:
__libdw_seterrno (DWARF_E_INVALID_REFERENCE);
return -1;
diff --git a/libdw/dwarf_formref_die.c b/libdw/dwarf_formref_die.c
index a004a0fd..65242586 100644
--- a/libdw/dwarf_formref_die.c
+++ b/libdw/dwarf_formref_die.c
@@ -1,5 +1,5 @@
/* Look up the DIE in a reference-form attribute.
- Copyright (C) 2005, 2007 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -51,39 +51,81 @@
# include <config.h>
#endif
+#include <string.h>
#include "libdwP.h"
#include <dwarf.h>
Dwarf_Die *
-dwarf_formref_die (attr, die_mem)
+dwarf_formref_die (attr, result)
Dwarf_Attribute *attr;
- Dwarf_Die *die_mem;
+ Dwarf_Die *result;
{
if (attr == NULL)
return NULL;
+ struct Dwarf_CU *cu = attr->cu;
+
Dwarf_Off offset;
if (attr->form == DW_FORM_ref_addr)
{
/* This has an absolute offset. */
- uint8_t ref_size = (attr->cu->version == 2
- ? attr->cu->address_size
- : attr->cu->offset_size);
+ uint8_t ref_size = (cu->version == 2
+ ? cu->address_size
+ : cu->offset_size);
- if (__libdw_read_offset (attr->cu->dbg, IDX_debug_info, attr->valp,
+ if (__libdw_read_offset (cu->dbg, IDX_debug_info, attr->valp,
ref_size, &offset, IDX_debug_info, 0))
return NULL;
+
+ return INTUSE(dwarf_offdie) (cu->dbg, offset, result);
+ }
+
+ Elf_Data *data;
+ if (attr->form == DW_FORM_ref_sig8)
+ {
+ /* This doesn't have an offset, but instead a value we
+ have to match in the .debug_types type unit headers. */
+
+ uint64_t sig = read_8ubyte_unaligned (cu->dbg, attr->valp);
+ cu = Dwarf_Sig8_Hash_find (&cu->dbg->sig8_hash, sig, NULL);
+ if (cu == NULL)
+ /* Not seen before. We have to scan through the type units. */
+ do
+ {
+ cu = __libdw_intern_next_unit (attr->cu->dbg, true);
+ if (cu == NULL)
+ {
+ __libdw_seterrno (INTUSE(dwarf_errno) ()
+ ?: DWARF_E_INVALID_REFERENCE);
+ return NULL;
+ }
+ Dwarf_Sig8_Hash_insert (&cu->dbg->sig8_hash, sig, cu);
+ }
+ while (cu->type_sig8 != sig);
+
+ data = cu->dbg->sectiondata[IDX_debug_types];
+ offset = cu->type_offset;
}
else
{
/* Other forms produce an offset from the CU. */
if (unlikely (__libdw_formref (attr, &offset) != 0))
return NULL;
- offset += attr->cu->start;
+
+ data = cu_data (cu);
+ }
+
+ if (unlikely (data->d_size - cu->start <= offset))
+ {
+ __libdw_seterrno (DWARF_E_INVALID_DWARF);
+ return NULL;
}
- return INTUSE(dwarf_offdie) (attr->cu->dbg, offset, die_mem);
+ memset (result, '\0', sizeof (Dwarf_Die));
+ result->addr = (char *) data->d_buf + cu->start + offset;
+ result->cu = cu;
+ return result;
}
INTDEF (dwarf_formref_die)
diff --git a/libdw/dwarf_formstring.c b/libdw/dwarf_formstring.c
index f95d31b8..1dee9b2d 100644
--- a/libdw/dwarf_formstring.c
+++ b/libdw/dwarf_formstring.c
@@ -1,5 +1,5 @@
/* Return string associated with given attribute.
- Copyright (C) 2003, 2004, 2005 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -79,7 +79,7 @@ dwarf_formstring (attrp)
}
uint64_t off;
- if (__libdw_read_offset (dbg, IDX_debug_info, attrp->valp,
+ if (__libdw_read_offset (dbg, cu_sec_idx (attrp->cu), attrp->valp,
attrp->cu->offset_size, &off, IDX_debug_str, 1))
return NULL;
diff --git a/libdw/dwarf_formudata.c b/libdw/dwarf_formudata.c
index d9d0a1cd..573a5783 100644
--- a/libdw/dwarf_formudata.c
+++ b/libdw/dwarf_formudata.c
@@ -1,5 +1,5 @@
/* Return unsigned constant represented by attribute.
- Copyright (C) 2003-2009 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -73,27 +73,28 @@ __libdw_formptr (Dwarf_Attribute *attr, int sec_index,
Dwarf_Word offset;
if (attr->form == DW_FORM_sec_offset)
{
- if (__libdw_read_offset (attr->cu->dbg, IDX_debug_info, attr->valp,
+ if (__libdw_read_offset (attr->cu->dbg, cu_sec_idx (attr->cu), attr->valp,
attr->cu->offset_size, &offset, sec_index, 0))
return NULL;
}
else if (attr->cu->version > 3)
goto invalid;
-
- switch (attr->form)
- {
- case DW_FORM_data4:
- case DW_FORM_data8:
- if (__libdw_read_offset (attr->cu->dbg, IDX_debug_info, attr->valp,
- attr->form == DW_FORM_data4 ? 4 : 8,
- &offset, sec_index, 0))
- return NULL;
- break;
-
- default:
- if (INTUSE(dwarf_formudata) (attr, &offset))
- return NULL;
- };
+ else
+ switch (attr->form)
+ {
+ case DW_FORM_data4:
+ case DW_FORM_data8:
+ if (__libdw_read_offset (attr->cu->dbg, cu_sec_idx (attr->cu),
+ attr->valp,
+ attr->form == DW_FORM_data4 ? 4 : 8,
+ &offset, sec_index, 0))
+ return NULL;
+ break;
+
+ default:
+ if (INTUSE(dwarf_formudata) (attr, &offset))
+ return NULL;
+ };
unsigned char *readp = d->d_buf + offset;
unsigned char *endp = d->d_buf + d->d_size;
@@ -133,7 +134,8 @@ dwarf_formudata (attr, return_uval)
case DW_FORM_data4:
case DW_FORM_data8:
- if (__libdw_read_address (attr->cu->dbg, IDX_debug_info, attr->valp,
+ if (__libdw_read_address (attr->cu->dbg, cu_sec_idx (attr->cu),
+ attr->valp,
attr->form == DW_FORM_data4 ? 4 : 8,
return_uval))
return -1;
diff --git a/libdw/dwarf_frame_cfa.c b/libdw/dwarf_frame_cfa.c
index 0ba26b2f..2f3268a8 100644
--- a/libdw/dwarf_frame_cfa.c
+++ b/libdw/dwarf_frame_cfa.c
@@ -1,5 +1,5 @@
/* Get CFA expression for frame.
- Copyright (C) 2009 Red Hat, Inc.
+ Copyright (C) 2009-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -83,7 +83,7 @@ dwarf_frame_cfa (fs, ops, nops)
/* Parse the expression into internal form. */
result = __libdw_intern_expression
(NULL, fs->cache->other_byte_order,
- fs->cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8,
+ fs->cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8, 4,
&fs->cache->expr_tree, &fs->cfa_data.expr, false, false,
ops, nops, IDX_debug_frame);
break;
diff --git a/libdw/dwarf_frame_register.c b/libdw/dwarf_frame_register.c
index e42b76bf..ae0db020 100644
--- a/libdw/dwarf_frame_register.c
+++ b/libdw/dwarf_frame_register.c
@@ -129,7 +129,7 @@ dwarf_frame_register (fs, regno, ops_mem, ops, nops)
/* Parse the expression into internal form. */
if (__libdw_intern_expression (NULL,
fs->cache->other_byte_order,
- address_size,
+ address_size, 4,
&fs->cache->expr_tree, &block,
true, reg->rule == reg_val_expression,
ops, nops, IDX_debug_frame) < 0)
diff --git a/libdw/dwarf_getaranges.c b/libdw/dwarf_getaranges.c
index 72334f5f..cced9bf8 100644
--- a/libdw/dwarf_getaranges.c
+++ b/libdw/dwarf_getaranges.c
@@ -1,5 +1,5 @@
/* Return list address ranges.
- Copyright (C) 2000-2009 Red Hat, Inc.
+ Copyright (C) 2000-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2000.
@@ -199,7 +199,8 @@ dwarf_getaranges (dbg, aranges, naranges)
else
offset_size = 4;
new_arange->arange.offset = DIE_OFFSET_FROM_CU_OFFSET (offset,
- offset_size);
+ offset_size,
+ false);
/* Sanity-check the data. */
if (new_arange->arange.offset
diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c
index f362fe22..e960ef9e 100644
--- a/libdw/dwarf_getlocation.c
+++ b/libdw/dwarf_getlocation.c
@@ -165,16 +165,11 @@ check_constant_offset (Dwarf_Attribute *attr,
case DW_FORM_data1:
case DW_FORM_data2:
+ case DW_FORM_data4:
+ case DW_FORM_data8:
case DW_FORM_sdata:
case DW_FORM_udata:
break;
-
- case DW_FORM_data4:
- case DW_FORM_data8:
- /* These are loclistptr, not constants.
- XXX check cu->version > 3???
- */
- return 1;
}
/* Check whether we already cached this location. */
@@ -219,8 +214,8 @@ check_constant_offset (Dwarf_Attribute *attr,
int
internal_function
-__libdw_intern_expression (Dwarf *dbg,
- bool other_byte_order, unsigned int address_size,
+__libdw_intern_expression (Dwarf *dbg, bool other_byte_order,
+ unsigned int address_size, unsigned int ref_size,
void **cache, const Dwarf_Block *block,
bool cfap, bool valuep,
Dwarf_Op **llbuf, size_t *listlen, int sec_index)
@@ -272,6 +267,13 @@ __libdw_intern_expression (Dwarf *dbg,
return -1;
break;
+ case DW_OP_call_ref:
+ /* DW_FORM_ref_addr, depends on offset size of CU. */
+ if (__libdw_read_offset_inc (dbg, sec_index, &data, ref_size,
+ &newloc->number, IDX_debug_info, 0))
+ return -1;
+ break;
+
case DW_OP_deref:
case DW_OP_dup:
case DW_OP_drop:
@@ -303,7 +305,6 @@ __libdw_intern_expression (Dwarf *dbg,
case DW_OP_reg0 ... DW_OP_reg31:
case DW_OP_nop:
case DW_OP_push_object_address:
- case DW_OP_call_ref:
case DW_OP_call_frame_cfa:
case DW_OP_form_tls_address:
case DW_OP_GNU_push_tls_address:
@@ -521,7 +522,10 @@ getlocation (struct Dwarf_CU *cu, const Dwarf_Block *block,
Dwarf_Op **llbuf, size_t *listlen, int sec_index)
{
return __libdw_intern_expression (cu->dbg, cu->dbg->other_byte_order,
- cu->address_size, &cu->locs, block,
+ cu->address_size, (cu->version == 2
+ ? cu->address_size
+ : cu->offset_size),
+ &cu->locs, block,
false, false,
llbuf, listlen, sec_index);
}
@@ -532,19 +536,19 @@ dwarf_getlocation (attr, llbuf, listlen)
Dwarf_Op **llbuf;
size_t *listlen;
{
+ if (! attr_ok (attr))
+ return -1;
+
int result = check_constant_offset (attr, llbuf, listlen);
if (result != 1)
return result;
- if (! attr_ok (attr))
- return -1;
-
/* If it has a block form, it's a single location expression. */
Dwarf_Block block;
if (INTUSE(dwarf_formblock) (attr, &block) != 0)
return -1;
- return getlocation (attr->cu, &block, llbuf, listlen, IDX_debug_info);
+ return getlocation (attr->cu, &block, llbuf, listlen, cu_sec_idx (attr->cu));
}
int
@@ -569,7 +573,7 @@ dwarf_getlocation_addr (attr, address, llbufs, listlens, maxlocs)
return 0;
if (llbufs != NULL &&
getlocation (attr->cu, &block, &llbufs[0], &listlens[0],
- IDX_debug_info) != 0)
+ cu_sec_idx (attr->cu)) != 0)
return -1;
return listlens[0] == 0 ? 0 : 1;
}
diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c
index 43fad99a..6840b2b5 100644
--- a/libdw/dwarf_getsrclines.c
+++ b/libdw/dwarf_getsrclines.c
@@ -1,5 +1,5 @@
/* Return line number information of CU.
- Copyright (C) 2004-2009 Red Hat, Inc.
+ Copyright (C) 2004-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2004.
@@ -86,31 +86,6 @@ compare_lines (const void *a, const void *b)
return (*p1)->addr - (*p2)->addr;
}
-
-/* Adds a new line to the matrix. We cannot define a function because
- we want to use alloca. */
-#define NEW_LINE(end_seq) \
- do { \
- /* Add the new line. */ \
- new_line = (struct linelist *) alloca (sizeof (struct linelist)); \
- \
- /* Set the line information. */ \
- new_line->line.addr = address; \
- new_line->line.file = file; \
- new_line->line.line = line; \
- new_line->line.column = column; \
- new_line->line.is_stmt = is_stmt; \
- new_line->line.basic_block = basic_block; \
- new_line->line.end_sequence = end_seq; \
- new_line->line.prologue_end = prologue_end; \
- new_line->line.epilogue_begin = epilogue_begin; \
- \
- new_line->next = linelist; \
- linelist = new_line; \
- ++nlinelist; \
- } while (0)
-
-
int
dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
{
@@ -175,7 +150,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
/* The next element of the header is the version identifier. */
uint_fast16_t version = read_2ubyte_unaligned_inc (dbg, linep);
- if (unlikely (version > DWARF_VERSION))
+ if (unlikely (version < 2) || unlikely (version > 4))
{
__libdw_seterrno (DWARF_E_VERSION);
goto out;
@@ -192,13 +167,23 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
/* Next the minimum instruction length. */
uint_fast8_t minimum_instr_len = *linep++;
- /* Then the flag determining the default value of the is_stmt
- register. */
+ /* Next the maximum operations per instruction, in version 4 format. */
+ uint_fast8_t max_ops_per_instr = 1;
+ if (version >= 4)
+ {
+ if (unlikely (lineendp - linep < 5))
+ goto invalid_data;
+ max_ops_per_instr = *linep++;
+ if (unlikely (max_ops_per_instr == 0))
+ goto invalid_data;
+ }
+
+ /* Then the flag determining the default value of the is_stmt
+ register. */
uint_fast8_t default_is_stmt = *linep++;
/* Now the line base. */
- int_fast8_t line_base = *((int_fast8_t *) linep);
- ++linep;
+ int_fast8_t line_base = (int8_t) *linep++;
/* And the line range. */
uint_fast8_t line_range = *linep++;
@@ -209,9 +194,9 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
/* Remember array with the standard opcode length (-1 to account for
the opcode with value zero not being mentioned). */
const uint8_t *standard_opcode_lengths = linep - 1;
- linep += opcode_base - 1;
- if (unlikely (linep >= lineendp))
+ if (unlikely (lineendp - linep < opcode_base - 1))
goto invalid_data;
+ linep += opcode_base - 1;
/* First comes the list of directories. Add the compilation
directory first since the index zero is used for it. */
@@ -338,21 +323,77 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
/* We are about to process the statement program. Initialize the
state machine registers (see 6.2.2 in the v2.1 specification). */
- Dwarf_Word address = 0;
- size_t file = 1;
- size_t line = 1;
- size_t column = 0;
+ Dwarf_Word addr = 0;
+ unsigned int op_index = 0;
+ unsigned int file = 1;
+ int line = 1;
+ unsigned int column = 0;
uint_fast8_t is_stmt = default_is_stmt;
- int basic_block = 0;
- int prologue_end = 0;
- int epilogue_begin = 0;
+ bool basic_block = false;
+ bool prologue_end = false;
+ bool epilogue_begin = false;
+ unsigned int isa = 0;
+ unsigned int discriminator = 0;
+
+ /* Apply the "operation advance" from a special opcode
+ or DW_LNS_advance_pc (as per DWARF4 6.2.5.1). */
+ inline void advance_pc (unsigned int op_advance)
+ {
+ addr += minimum_instr_len * ((op_index + op_advance)
+ / max_ops_per_instr);
+ op_index = (op_index + op_advance) % max_ops_per_instr;
+ }
- /* Process the instructions. */
+ /* Process the instructions. */
struct linelist *linelist = NULL;
unsigned int nlinelist = 0;
+
+ /* Adds a new line to the matrix.
+ We cannot simply define a function because we want to use alloca. */
+#define NEW_LINE(end_seq) \
+ do { \
+ if (unlikely (add_new_line (alloca (sizeof (struct linelist)), \
+ end_seq))) \
+ goto invalid_data; \
+ } while (0)
+
+ inline bool add_new_line (struct linelist *new_line, bool end_sequence)
+ {
+ /* Set the line information. For some fields we use bitfields,
+ so we would lose information if the encoded values are too large.
+ Check just for paranoia, and call the data "invalid" if it
+ violates our assumptions on reasonable limits for the values. */
+#define SET(field) \
+ do { \
+ new_line->line.field = field; \
+ if (unlikely (new_line->line.field != field)) \
+ return true; \
+ } while (0)
+
+ SET (addr);
+ SET (op_index);
+ SET (file);
+ SET (line);
+ SET (column);
+ SET (is_stmt);
+ SET (basic_block);
+ SET (end_sequence);
+ SET (prologue_end);
+ SET (epilogue_begin);
+ SET (isa);
+ SET (discriminator);
+
+#undef SET
+
+ new_line->next = linelist;
+ linelist = new_line;
+ ++nlinelist;
+
+ return false;
+ }
+
while (linep < lineendp)
{
- struct linelist *new_line;
unsigned int opcode;
unsigned int u128;
int s128;
@@ -371,32 +412,30 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
*/
int line_increment = (line_base
+ (opcode - opcode_base) % line_range);
- unsigned int address_increment = (minimum_instr_len
- * ((opcode - opcode_base)
- / line_range));
/* Perform the increments. */
line += line_increment;
- address += address_increment;
+ advance_pc ((opcode - opcode_base) / line_range);
/* Add a new line with the current state machine values. */
NEW_LINE (0);
/* Reset the flags. */
- basic_block = 0;
- prologue_end = 0;
- epilogue_begin = 0;
+ basic_block = false;
+ prologue_end = false;
+ epilogue_begin = false;
+ discriminator = 0;
}
else if (opcode == 0)
{
/* This an extended opcode. */
- if (unlikely (linep + 2 > lineendp))
+ if (unlikely (lineendp - linep < 2))
goto invalid_data;
/* The length. */
- unsigned int len = *linep++;
+ uint_fast8_t len = *linep++;
- if (unlikely (linep + len > lineendp))
+ if (unlikely ((size_t) (lineendp - linep) < len))
goto invalid_data;
/* The sub-opcode. */
@@ -410,22 +449,28 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
NEW_LINE (1);
/* Reset the registers. */
- address = 0;
+ addr = 0;
+ op_index = 0;
file = 1;
line = 1;
column = 0;
is_stmt = default_is_stmt;
- basic_block = 0;
- prologue_end = 0;
- epilogue_begin = 0;
+ basic_block = false;
+ prologue_end = false;
+ epilogue_begin = false;
+ isa = 0;
+ discriminator = 0;
break;
case DW_LNE_set_address:
/* The value is an address. The size is defined as
apporiate for the target machine. We use the
address size field from the CU header. */
+ op_index = 0;
+ if (unlikely (lineendp - linep < cu->address_size))
+ goto invalid_data;
if (__libdw_read_address_inc (dbg, IDX_debug_line, &linep,
- cu->address_size, &address))
+ cu->address_size, &addr))
goto out;
break;
@@ -475,13 +520,23 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
}
break;
+ case DW_LNE_set_discriminator:
+ /* Takes one ULEB128 parameter, the discriminator. */
+ if (unlikely (standard_opcode_lengths[opcode] != 1))
+ goto invalid_data;
+
+ get_uleb128 (discriminator, linep);
+ break;
+
default:
/* Unknown, ignore it. */
+ if (unlikely ((size_t) (lineendp - (linep - 1)) < len))
+ goto invalid_data;
linep += len - 1;
break;
}
}
- else if (opcode <= DW_LNS_set_epilogue_begin)
+ else if (opcode <= DW_LNS_set_isa)
{
/* This is a known standard opcode. */
switch (opcode)
@@ -495,13 +550,10 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
NEW_LINE (0);
/* Reset the flags. */
- basic_block = 0;
- /* XXX Whether the following two lines are necessary is
- unclear. I guess the current v2.1 specification has
- a bug in that it says clearing these two registers is
- not necessary. */
- prologue_end = 0;
- epilogue_begin = 0;
+ basic_block = false;
+ prologue_end = false;
+ epilogue_begin = false;
+ discriminator = 0;
break;
case DW_LNS_advance_pc:
@@ -511,7 +563,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
goto invalid_data;
get_uleb128 (u128, linep);
- address += minimum_instr_len * u128;
+ advance_pc (u128);
break;
case DW_LNS_advance_line:
@@ -555,7 +607,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
if (unlikely (standard_opcode_lengths[opcode] != 0))
goto invalid_data;
- basic_block = 1;
+ basic_block = true;
break;
case DW_LNS_const_add_pc:
@@ -563,17 +615,18 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
if (unlikely (standard_opcode_lengths[opcode] != 0))
goto invalid_data;
- address += (minimum_instr_len
- * ((255 - opcode_base) / line_range));
+ advance_pc ((255 - opcode_base) / line_range);
break;
case DW_LNS_fixed_advance_pc:
/* Takes one 16 bit parameter which is added to the
address. */
- if (unlikely (standard_opcode_lengths[opcode] != 1))
+ if (unlikely (standard_opcode_lengths[opcode] != 1)
+ || unlikely (lineendp - linep < 2))
goto invalid_data;
- address += read_2ubyte_unaligned_inc (dbg, linep);
+ addr += read_2ubyte_unaligned_inc (dbg, linep);
+ op_index = 0;
break;
case DW_LNS_set_prologue_end:
@@ -581,7 +634,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
if (unlikely (standard_opcode_lengths[opcode] != 0))
goto invalid_data;
- prologue_end = 1;
+ prologue_end = true;
break;
case DW_LNS_set_epilogue_begin:
@@ -589,7 +642,15 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
if (unlikely (standard_opcode_lengths[opcode] != 0))
goto invalid_data;
- epilogue_begin = 1;
+ epilogue_begin = true;
+ break;
+
+ case DW_LNS_set_isa:
+ /* Takes one uleb128 parameter which is stored in isa. */
+ if (unlikely (standard_opcode_lengths[opcode] != 1))
+ goto invalid_data;
+
+ get_uleb128 (isa, linep);
break;
}
}
diff --git a/libdw/dwarf_linediscriminator.c b/libdw/dwarf_linediscriminator.c
new file mode 100644
index 00000000..d17a99f2
--- /dev/null
+++ b/libdw/dwarf_linediscriminator.c
@@ -0,0 +1,66 @@
+/* Return code path discriminator in line record.
+ Copyright (C) 2010 Red Hat, Inc.
+ This file is part of Red Hat elfutils.
+
+ Red Hat elfutils 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; version 2 of the License.
+
+ Red Hat 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 Red Hat elfutils; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+ In addition, as a special exception, Red Hat, Inc. gives You the
+ additional right to link the code of Red Hat elfutils with code licensed
+ under any Open Source Initiative certified open source license
+ (http://www.opensource.org/licenses/index.php) which requires the
+ distribution of source code with any binary distribution and to
+ distribute linked combinations of the two. Non-GPL Code permitted under
+ this exception must only link to the code of Red Hat elfutils through
+ those well defined interfaces identified in the file named EXCEPTION
+ found in the source code files (the "Approved Interfaces"). The files
+ of Non-GPL Code may instantiate templates or use macros or inline
+ functions from the Approved Interfaces without causing the resulting
+ work to be covered by the GNU General Public License. Only Red Hat,
+ Inc. may make changes or additions to the list of Approved Interfaces.
+ Red Hat's grant of this exception is conditioned upon your not adding
+ any new exceptions. If you wish to add a new Approved Interface or
+ exception, please contact Red Hat. You must obey the GNU General Public
+ License in all respects for all of the Red Hat elfutils code and other
+ code used in conjunction with Red Hat elfutils except the Non-GPL Code
+ covered by this exception. If you modify this file, you may extend this
+ exception to your version of the file, but you are not obligated to do
+ so. If you do not wish to provide this exception without modification,
+ you must delete this exception statement from your version and license
+ this file solely under the GPL without exception.
+
+ Red Hat elfutils is an included package of the Open Invention Network.
+ An included package of the Open Invention Network is a package for which
+ Open Invention Network licensees cross-license their patents. No patent
+ license is granted, either expressly or impliedly, by designation as an
+ included package. Should you wish to participate in the Open Invention
+ Network licensing program, please visit www.openinventionnetwork.com
+ <http://www.openinventionnetwork.com>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libdwP.h"
+
+
+int
+dwarf_linediscriminator (Dwarf_Line *line, unsigned int *discp)
+{
+ if (line == NULL)
+ return -1;
+
+ *discp = line->discriminator;
+
+ return 0;
+}
diff --git a/libdw/dwarf_lineisa.c b/libdw/dwarf_lineisa.c
new file mode 100644
index 00000000..064761e0
--- /dev/null
+++ b/libdw/dwarf_lineisa.c
@@ -0,0 +1,66 @@
+/* Return ISA in line.
+ Copyright (C) 2010 Red Hat, Inc.
+ This file is part of Red Hat elfutils.
+
+ Red Hat elfutils 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; version 2 of the License.
+
+ Red Hat 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 Red Hat elfutils; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+ In addition, as a special exception, Red Hat, Inc. gives You the
+ additional right to link the code of Red Hat elfutils with code licensed
+ under any Open Source Initiative certified open source license
+ (http://www.opensource.org/licenses/index.php) which requires the
+ distribution of source code with any binary distribution and to
+ distribute linked combinations of the two. Non-GPL Code permitted under
+ this exception must only link to the code of Red Hat elfutils through
+ those well defined interfaces identified in the file named EXCEPTION
+ found in the source code files (the "Approved Interfaces"). The files
+ of Non-GPL Code may instantiate templates or use macros or inline
+ functions from the Approved Interfaces without causing the resulting
+ work to be covered by the GNU General Public License. Only Red Hat,
+ Inc. may make changes or additions to the list of Approved Interfaces.
+ Red Hat's grant of this exception is conditioned upon your not adding
+ any new exceptions. If you wish to add a new Approved Interface or
+ exception, please contact Red Hat. You must obey the GNU General Public
+ License in all respects for all of the Red Hat elfutils code and other
+ code used in conjunction with Red Hat elfutils except the Non-GPL Code
+ covered by this exception. If you modify this file, you may extend this
+ exception to your version of the file, but you are not obligated to do
+ so. If you do not wish to provide this exception without modification,
+ you must delete this exception statement from your version and license
+ this file solely under the GPL without exception.
+
+ Red Hat elfutils is an included package of the Open Invention Network.
+ An included package of the Open Invention Network is a package for which
+ Open Invention Network licensees cross-license their patents. No patent
+ license is granted, either expressly or impliedly, by designation as an
+ included package. Should you wish to participate in the Open Invention
+ Network licensing program, please visit www.openinventionnetwork.com
+ <http://www.openinventionnetwork.com>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libdwP.h"
+
+
+int
+dwarf_lineisa (Dwarf_Line *line, unsigned int *isap)
+{
+ if (line == NULL)
+ return -1;
+
+ *isap = line->isa;
+
+ return 0;
+}
diff --git a/libdw/dwarf_lineop_index.c b/libdw/dwarf_lineop_index.c
new file mode 100644
index 00000000..3b433104
--- /dev/null
+++ b/libdw/dwarf_lineop_index.c
@@ -0,0 +1,66 @@
+/* Return line VLIW operation index.
+ Copyright (C) 2010 Red Hat, Inc.
+ This file is part of Red Hat elfutils.
+
+ Red Hat elfutils 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; version 2 of the License.
+
+ Red Hat 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 Red Hat elfutils; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+ In addition, as a special exception, Red Hat, Inc. gives You the
+ additional right to link the code of Red Hat elfutils with code licensed
+ under any Open Source Initiative certified open source license
+ (http://www.opensource.org/licenses/index.php) which requires the
+ distribution of source code with any binary distribution and to
+ distribute linked combinations of the two. Non-GPL Code permitted under
+ this exception must only link to the code of Red Hat elfutils through
+ those well defined interfaces identified in the file named EXCEPTION
+ found in the source code files (the "Approved Interfaces"). The files
+ of Non-GPL Code may instantiate templates or use macros or inline
+ functions from the Approved Interfaces without causing the resulting
+ work to be covered by the GNU General Public License. Only Red Hat,
+ Inc. may make changes or additions to the list of Approved Interfaces.
+ Red Hat's grant of this exception is conditioned upon your not adding
+ any new exceptions. If you wish to add a new Approved Interface or
+ exception, please contact Red Hat. You must obey the GNU General Public
+ License in all respects for all of the Red Hat elfutils code and other
+ code used in conjunction with Red Hat elfutils except the Non-GPL Code
+ covered by this exception. If you modify this file, you may extend this
+ exception to your version of the file, but you are not obligated to do
+ so. If you do not wish to provide this exception without modification,
+ you must delete this exception statement from your version and license
+ this file solely under the GPL without exception.
+
+ Red Hat elfutils is an included package of the Open Invention Network.
+ An included package of the Open Invention Network is a package for which
+ Open Invention Network licensees cross-license their patents. No patent
+ license is granted, either expressly or impliedly, by designation as an
+ included package. Should you wish to participate in the Open Invention
+ Network licensing program, please visit www.openinventionnetwork.com
+ <http://www.openinventionnetwork.com>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libdwP.h"
+
+
+int
+dwarf_lineop_index (Dwarf_Line *line, unsigned int *idxp)
+{
+ if (line == NULL)
+ return -1;
+
+ *idxp = line->op_index;
+
+ return 0;
+}
diff --git a/libdw/dwarf_next_cfi.c b/libdw/dwarf_next_cfi.c
index d5d4cfdb..0e90457d 100644
--- a/libdw/dwarf_next_cfi.c
+++ b/libdw/dwarf_next_cfi.c
@@ -1,5 +1,5 @@
/* Advance to next CFI entry.
- Copyright (C) 2009 Red Hat, Inc.
+ Copyright (C) 2009-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -145,25 +145,48 @@ dwarf_next_cfi (e_ident, data, eh_frame_p, off, next_off, entry)
/* Read the version stamp. Always an 8-bit value. */
uint8_t version = *bytes++;
- if (version != 1 && version != 3)
+ if (version != 1 && (unlikely (version < 3) || unlikely (version > 4)))
goto invalid;
entry->cie.augmentation = (const char *) bytes;
bytes = memchr (bytes, '\0', limit - bytes);
- if (bytes == NULL)
+ if (unlikely (bytes == NULL))
goto invalid;
++bytes;
+ /* The address size for CFI is implicit in the ELF class. */
+ uint_fast8_t address_size = e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8;
+ uint_fast8_t segment_size = 0;
+ if (version >= 4)
+ {
+ if (unlikely (limit - bytes < 5))
+ goto invalid;
+ /* XXX We don't actually support address_size not matching the class.
+ To do so, we'd have to return it here so that intern_new_cie
+ could use it choose a specific fde_encoding. */
+ if (unlikely (*bytes != address_size))
+ {
+ __libdw_seterrno (DWARF_E_VERSION);
+ return -1;
+ }
+ address_size = *bytes++;
+ segment_size = *bytes++;
+ /* We don't actually support segment selectors. We'd have to
+ roll this into the fde_encoding bits or something. */
+ if (unlikely (segment_size != 0))
+ {
+ __libdw_seterrno (DWARF_E_VERSION);
+ return -1;
+ }
+ }
+
const char *ap = entry->cie.augmentation;
/* g++ v2 "eh" has pointer immediately following augmentation string,
so it must be handled first. */
if (unlikely (ap[0] == 'e' && ap[1] == 'h'))
{
- /* The address size for CFI is implicit in the ELF class. */
- unsigned int address_size = e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8;
-
ap += 2;
bytes += address_size;
}
@@ -171,7 +194,7 @@ dwarf_next_cfi (e_ident, data, eh_frame_p, off, next_off, entry)
get_uleb128 (entry->cie.code_alignment_factor, bytes);
get_sleb128 (entry->cie.data_alignment_factor, bytes);
- if (version == 3) /* DWARF 3 */
+ if (version >= 3) /* DWARF 3+ */
get_uleb128 (entry->cie.return_address_register, bytes);
else /* DWARF 2 */
entry->cie.return_address_register = *bytes++;
diff --git a/libdw/dwarf_nextcu.c b/libdw/dwarf_nextcu.c
index e436e115..2e8f4d79 100644
--- a/libdw/dwarf_nextcu.c
+++ b/libdw/dwarf_nextcu.c
@@ -1,5 +1,5 @@
/* Advance to next CU header.
- Copyright (C) 2002-2009 Red Hat, Inc.
+ Copyright (C) 2002-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2002.
@@ -57,26 +57,33 @@
int
-dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
- address_sizep, offset_sizep)
+dwarf_next_unit (dwarf, off, next_off, header_sizep, versionp, abbrev_offsetp,
+ address_sizep, offset_sizep, type_signaturep, type_offsetp)
Dwarf *dwarf;
Dwarf_Off off;
Dwarf_Off *next_off;
size_t *header_sizep;
+ Dwarf_Half *versionp;
Dwarf_Off *abbrev_offsetp;
uint8_t *address_sizep;
uint8_t *offset_sizep;
+ uint64_t *type_signaturep;
+ Dwarf_Off *type_offsetp;
{
+ const bool debug_types = type_signaturep != NULL;
+ const size_t sec_idx = debug_types ? IDX_debug_types : IDX_debug_info;
+
/* Maybe there has been an error before. */
if (dwarf == NULL)
return -1;
/* If we reached the end before don't do anything. */
if (off == (Dwarf_Off) -1l
+ || unlikely (dwarf->sectiondata[sec_idx] == NULL)
/* Make sure there is enough space in the .debug_info section
for at least the initial word. We cannot test the rest since
we don't know yet whether this is a 64-bit object or not. */
- || unlikely (off + 4 >= dwarf->sectiondata[IDX_debug_info]->d_size))
+ || unlikely (off + 4 >= dwarf->sectiondata[sec_idx]->d_size))
{
*next_off = (Dwarf_Off) -1l;
return 1;
@@ -84,7 +91,7 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
/* This points into the .debug_info section to the beginning of the
CU entry. */
- const unsigned char *data = dwarf->sectiondata[IDX_debug_info]->d_buf;
+ const unsigned char *data = dwarf->sectiondata[sec_idx]->d_buf;
const unsigned char *bytes = data + off;
/* The format of the CU header is described in dwarf2p1 7.5.1:
@@ -122,13 +129,14 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
else if (unlikely (length >= DWARF3_LENGTH_MIN_ESCAPE_CODE
&& length <= DWARF3_LENGTH_MAX_ESCAPE_CODE))
{
+ invalid:
__libdw_seterrno (DWARF_E_INVALID_DWARF);
return -1;
}
/* Now we know how large the header is. */
- if (unlikely (DIE_OFFSET_FROM_CU_OFFSET (off, offset_size)
- >= dwarf->sectiondata[IDX_debug_info]->d_size))
+ if (unlikely (DIE_OFFSET_FROM_CU_OFFSET (off, offset_size, debug_types)
+ >= dwarf->sectiondata[sec_idx]->d_size))
{
*next_off = -1;
return 1;
@@ -138,22 +146,47 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
/* This is a 64-bit DWARF format. */
length = read_8ubyte_unaligned_inc (dwarf, bytes);
- /* Read the version stamp. Always a 16-bit value.
- XXX Do we need the value? */
- read_2ubyte_unaligned_inc (dwarf, bytes);
+ /* Read the version stamp. Always a 16-bit value. */
+ uint_fast16_t version = read_2ubyte_unaligned_inc (dwarf, bytes);
/* Get offset in .debug_abbrev. Note that the size of the entry
depends on whether this is a 32-bit or 64-bit DWARF definition. */
uint64_t abbrev_offset;
- if (__libdw_read_offset_inc (dwarf, IDX_debug_info, &bytes, offset_size,
+ if (__libdw_read_offset_inc (dwarf, sec_idx, &bytes, offset_size,
&abbrev_offset, IDX_debug_abbrev, 0))
return -1;
+ /* The address size. Always an 8-bit value. */
+ uint8_t address_size = *bytes++;
+
+ if (debug_types)
+ {
+ uint64_t type_sig8 = read_8ubyte_unaligned_inc (dwarf, bytes);
+
+ Dwarf_Off type_offset;
+ if (__libdw_read_offset_inc (dwarf, sec_idx, &bytes, offset_size,
+ &type_offset, sec_idx, 0))
+ return -1;
+
+ /* Validate that the TYPE_OFFSET points past the header. */
+ if (unlikely (type_offset < (size_t) (bytes - (data + off))))
+ goto invalid;
+
+ *type_signaturep = type_sig8;
+ if (type_offsetp != NULL)
+ *type_offsetp = type_offset;
+ }
+
+ /* Store the header length. */
+ if (header_sizep != NULL)
+ *header_sizep = bytes - (data + off);
+
+ if (versionp != NULL)
+ *versionp = version;
+
if (abbrev_offsetp != NULL)
*abbrev_offsetp = abbrev_offset;
- /* The address size. Always an 8-bit value. */
- uint8_t address_size = *bytes++;
if (address_sizep != NULL)
*address_sizep = address_size;
@@ -161,14 +194,27 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
if (offset_sizep != NULL)
*offset_sizep = offset_size;
- /* Store the header length. */
- if (header_sizep != NULL)
- *header_sizep = bytes - (data + off);
-
/* See definition of DIE_OFFSET_FROM_CU_OFFSET macro
for an explanation of the trick in this expression. */
*next_off = off + 2 * offset_size - 4 + length;
return 0;
}
+INTDEF(dwarf_next_unit)
+
+int
+dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp,
+ address_sizep, offset_sizep)
+ Dwarf *dwarf;
+ Dwarf_Off off;
+ Dwarf_Off *next_off;
+ size_t *header_sizep;
+ Dwarf_Off *abbrev_offsetp;
+ uint8_t *address_sizep;
+ uint8_t *offset_sizep;
+{
+ return INTUSE(dwarf_next_unit) (dwarf, off, next_off, header_sizep, NULL,
+ abbrev_offsetp, address_sizep, offset_sizep,
+ NULL, NULL);
+}
INTDEF(dwarf_nextcu)
diff --git a/libdw/dwarf_offdie.c b/libdw/dwarf_offdie.c
index a9886f2c..925fe512 100644
--- a/libdw/dwarf_offdie.c
+++ b/libdw/dwarf_offdie.c
@@ -1,5 +1,5 @@
/* Return DIE at given offset.
- Copyright (C) 2002, 2003, 2005 Red Hat, Inc.
+ Copyright (C) 2002-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2002.
@@ -56,16 +56,15 @@
#include "libdwP.h"
-Dwarf_Die *
-dwarf_offdie (dbg, offset, result)
- Dwarf *dbg;
- Dwarf_Off offset;
- Dwarf_Die *result;
+static Dwarf_Die *
+do_offdie (Dwarf *dbg, Dwarf_Off offset, Dwarf_Die *result, bool debug_types)
{
if (dbg == NULL)
return NULL;
- if (offset >= dbg->sectiondata[IDX_debug_info]->d_size)
+ Elf_Data *const data = dbg->sectiondata[debug_types ? IDX_debug_types
+ : IDX_debug_info];
+ if (offset >= data->d_size)
{
__libdw_seterrno (DWARF_E_INVALID_DWARF);
return NULL;
@@ -75,10 +74,10 @@ dwarf_offdie (dbg, offset, result)
determined any of the information. */
memset (result, '\0', sizeof (Dwarf_Die));
- result->addr = (char *) dbg->sectiondata[IDX_debug_info]->d_buf + offset;
+ result->addr = (char *) data->d_buf + offset;
/* Get the CU. */
- result->cu = __libdw_findcu (dbg, offset);
+ result->cu = __libdw_findcu (dbg, offset, debug_types);
if (result->cu == NULL)
{
/* This should never happen. The input file is malformed. */
@@ -88,4 +87,23 @@ dwarf_offdie (dbg, offset, result)
return result;
}
+
+
+Dwarf_Die *
+dwarf_offdie (dbg, offset, result)
+ Dwarf *dbg;
+ Dwarf_Off offset;
+ Dwarf_Die *result;
+{
+ return do_offdie (dbg, offset, result, false);
+}
INTDEF(dwarf_offdie)
+
+Dwarf_Die *
+dwarf_offdie_types (dbg, offset, result)
+ Dwarf *dbg;
+ Dwarf_Off offset;
+ Dwarf_Die *result;
+{
+ return do_offdie (dbg, offset, result, true);
+}
diff --git a/libdw/dwarf_siblingof.c b/libdw/dwarf_siblingof.c
index 0d427175..f8e54c18 100644
--- a/libdw/dwarf_siblingof.c
+++ b/libdw/dwarf_siblingof.c
@@ -1,5 +1,5 @@
/* Return sibling of given DIE.
- Copyright (C) 2003, 2004, 2005, 2007, 2008 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -84,8 +84,7 @@ dwarf_siblingof (die, result)
unsigned char *addr = this_die.addr;
/* End of the buffer. */
unsigned char *endp
- = ((unsigned char *) sibattr.cu->dbg->sectiondata[IDX_debug_info]->d_buf
- + sibattr.cu->end);
+ = ((unsigned char *) cu_data (sibattr.cu)->d_buf + sibattr.cu->end);
/* Search for the beginning of the next die on this level. We
must not return the dies for children of the given die. */
@@ -103,8 +102,7 @@ dwarf_siblingof (die, result)
return -1;
/* Compute the next address. */
- addr = ((unsigned char *)
- sibattr.cu->dbg->sectiondata[IDX_debug_info]->d_buf
+ addr = ((unsigned char *) cu_data (sibattr.cu)->d_buf
+ sibattr.cu->start + offset);
}
else if (unlikely (addr == NULL)
diff --git a/libdw/dwarf_sig8_hash.c b/libdw/dwarf_sig8_hash.c
new file mode 100644
index 00000000..53c07eac
--- /dev/null
+++ b/libdw/dwarf_sig8_hash.c
@@ -0,0 +1,62 @@
+/* Implementation of hash table for DWARF .debug_types section content.
+ Copyright (C) 2010 Red Hat, Inc.
+ This file is part of Red Hat elfutils.
+
+ Red Hat elfutils 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; version 2 of the License.
+
+ Red Hat 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 Red Hat elfutils; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+ In addition, as a special exception, Red Hat, Inc. gives You the
+ additional right to link the code of Red Hat elfutils with code licensed
+ under any Open Source Initiative certified open source license
+ (http://www.opensource.org/licenses/index.php) which requires the
+ distribution of source code with any binary distribution and to
+ distribute linked combinations of the two. Non-GPL Code permitted under
+ this exception must only link to the code of Red Hat elfutils through
+ those well defined interfaces identified in the file named EXCEPTION
+ found in the source code files (the "Approved Interfaces"). The files
+ of Non-GPL Code may instantiate templates or use macros or inline
+ functions from the Approved Interfaces without causing the resulting
+ work to be covered by the GNU General Public License. Only Red Hat,
+ Inc. may make changes or additions to the list of Approved Interfaces.
+ Red Hat's grant of this exception is conditioned upon your not adding
+ any new exceptions. If you wish to add a new Approved Interface or
+ exception, please contact Red Hat. You must obey the GNU General Public
+ License in all respects for all of the Red Hat elfutils code and other
+ code used in conjunction with Red Hat elfutils except the Non-GPL Code
+ covered by this exception. If you modify this file, you may extend this
+ exception to your version of the file, but you are not obligated to do
+ so. If you do not wish to provide this exception without modification,
+ you must delete this exception statement from your version and license
+ this file solely under the GPL without exception.
+
+ Red Hat elfutils is an included package of the Open Invention Network.
+ An included package of the Open Invention Network is a package for which
+ Open Invention Network licensees cross-license their patents. No patent
+ license is granted, either expressly or impliedly, by designation as an
+ included package. Should you wish to participate in the Open Invention
+ Network licensing program, please visit www.openinventionnetwork.com
+ <http://www.openinventionnetwork.com>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define NO_UNDEF
+#include "dwarf_sig8_hash.h"
+#undef NO_UNDEF
+
+/* This is defined in dwarf_abbrev_hash.c, we can just use it here. */
+#define next_prime __libdwarf_next_prime
+extern size_t next_prime (size_t) attribute_hidden;
+
+#include <dynamicsizehash.c>
diff --git a/libdw/dwarf_sig8_hash.h b/libdw/dwarf_sig8_hash.h
new file mode 100644
index 00000000..0d8932b5
--- /dev/null
+++ b/libdw/dwarf_sig8_hash.h
@@ -0,0 +1,59 @@
+/* Hash table for DWARF .debug_types section content.
+ Copyright (C) 2010 Red Hat, Inc.
+ This file is part of Red Hat elfutils.
+
+ Red Hat elfutils 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; version 2 of the License.
+
+ Red Hat 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 Red Hat elfutils; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+ In addition, as a special exception, Red Hat, Inc. gives You the
+ additional right to link the code of Red Hat elfutils with code licensed
+ under any Open Source Initiative certified open source license
+ (http://www.opensource.org/licenses/index.php) which requires the
+ distribution of source code with any binary distribution and to
+ distribute linked combinations of the two. Non-GPL Code permitted under
+ this exception must only link to the code of Red Hat elfutils through
+ those well defined interfaces identified in the file named EXCEPTION
+ found in the source code files (the "Approved Interfaces"). The files
+ of Non-GPL Code may instantiate templates or use macros or inline
+ functions from the Approved Interfaces without causing the resulting
+ work to be covered by the GNU General Public License. Only Red Hat,
+ Inc. may make changes or additions to the list of Approved Interfaces.
+ Red Hat's grant of this exception is conditioned upon your not adding
+ any new exceptions. If you wish to add a new Approved Interface or
+ exception, please contact Red Hat. You must obey the GNU General Public
+ License in all respects for all of the Red Hat elfutils code and other
+ code used in conjunction with Red Hat elfutils except the Non-GPL Code
+ covered by this exception. If you modify this file, you may extend this
+ exception to your version of the file, but you are not obligated to do
+ so. If you do not wish to provide this exception without modification,
+ you must delete this exception statement from your version and license
+ this file solely under the GPL without exception.
+
+ Red Hat elfutils is an included package of the Open Invention Network.
+ An included package of the Open Invention Network is a package for which
+ Open Invention Network licensees cross-license their patents. No patent
+ license is granted, either expressly or impliedly, by designation as an
+ included package. Should you wish to participate in the Open Invention
+ Network licensing program, please visit www.openinventionnetwork.com
+ <http://www.openinventionnetwork.com>. */
+
+#ifndef _DWARF_SIG8_HASH_H
+#define _DWARF_SIG8_HASH_H 1
+
+#define NAME Dwarf_Sig8_Hash
+#define TYPE struct Dwarf_CU *
+#define COMPARE(a, b) (0)
+
+#include <dynamicsizehash.h>
+
+#endif /* dwarf_sig8_hash.h */
diff --git a/libdw/encoded-value.h b/libdw/encoded-value.h
index 3f9b2440..e118a1c4 100644
--- a/libdw/encoded-value.h
+++ b/libdw/encoded-value.h
@@ -1,5 +1,5 @@
/* DW_EH_PE_* support for libdw unwinder.
- Copyright (C) 2009 Red Hat, Inc.
+ Copyright (C) 2009-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -136,13 +136,13 @@ read_encoded_value (const Dwarf_CFI *cache, uint8_t encoding, const uint8_t **p,
break;
case DW_EH_PE_aligned:
{
- const size_t address_size
- = cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8;
+ const size_t size = encoded_value_size (&cache->data->d, cache->e_ident,
+ encoding, *p);
size_t align = ((cache->frame_vaddr
+ (*p - (const uint8_t *) cache->data->d.d_buf))
- & (address_size - 1));
+ & (size - 1));
if (align != 0)
- *p += address_size - align;
+ *p += size - align;
break;
}
@@ -163,24 +163,24 @@ read_encoded_value (const Dwarf_CFI *cache, uint8_t encoding, const uint8_t **p,
case DW_EH_PE_udata4:
if (__libdw_cfi_read_address_inc (cache, p, 4, &value))
- return false;
+ return true;
break;
case DW_EH_PE_sdata4:
if (__libdw_cfi_read_address_inc (cache, p, 4, &value))
- return false;
+ return true;
value = (Dwarf_Sword) (Elf32_Sword) value; /* Sign-extend. */
break;
case DW_EH_PE_udata8:
case DW_EH_PE_sdata8:
if (__libdw_cfi_read_address_inc (cache, p, 8, &value))
- return false;
+ return true;
break;
case DW_EH_PE_absptr:
if (__libdw_cfi_read_address_inc (cache, p, 0, &value))
- return false;
+ return true;
break;
case DW_EH_PE_uleb128:
@@ -196,6 +196,20 @@ read_encoded_value (const Dwarf_CFI *cache, uint8_t encoding, const uint8_t **p,
}
*result += value;
+
+ if (encoding & DW_EH_PE_indirect)
+ {
+ if (unlikely (*result < cache->frame_vaddr))
+ return true;
+ *result -= cache->frame_vaddr;
+ if (unlikely (*result > (cache->data->d.d_size
+ - encoded_value_size (NULL, cache->e_ident,
+ DW_EH_PE_absptr, NULL))))
+ return true;
+ const uint8_t *ptr = cache->data->d.d_buf + *result;
+ return __libdw_cfi_read_address_inc (cache, &ptr, 0, result);
+ }
+
return false;
}
diff --git a/libdw/fde.c b/libdw/fde.c
index c826114c..5685252b 100644
--- a/libdw/fde.c
+++ b/libdw/fde.c
@@ -1,5 +1,5 @@
/* FDE reading.
- Copyright (C) 2009 Red Hat, Inc.
+ Copyright (C) 2009-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -139,8 +139,9 @@ intern_fde (Dwarf_CFI *cache, const Dwarf_FDE *entry)
return fde;
}
-static struct dwarf_fde *
-fde_by_offset (Dwarf_CFI *cache, Dwarf_Addr address, Dwarf_Off offset)
+struct dwarf_fde *
+internal_function
+__libdw_fde_by_offset (Dwarf_CFI *cache, Dwarf_Off offset)
{
Dwarf_CFI_Entry entry;
Dwarf_Off next_offset;
@@ -167,10 +168,6 @@ fde_by_offset (Dwarf_CFI *cache, Dwarf_Addr address, Dwarf_Off offset)
if (cache->next_offset == offset)
cache->next_offset = next_offset;
- /* Sanity check the address range. */
- if (address < fde->start || address >= fde->end)
- goto invalid;
-
return fde;
}
@@ -254,7 +251,15 @@ __libdw_find_fde (Dwarf_CFI *cache, Dwarf_Addr address)
Dwarf_Off offset = binary_search_fde (cache, address);
if (offset == (Dwarf_Off) -1l)
goto no_match;
- return fde_by_offset (cache, address, offset);
+ struct dwarf_fde *fde = __libdw_fde_by_offset (cache, offset);
+ if (unlikely (fde != NULL)
+ /* Sanity check the address range. */
+ && unlikely (address < fde->start || address >= fde->end))
+ {
+ __libdw_seterrno (DWARF_E_INVALID_DWARF);
+ return NULL;
+ }
+ return fde;
}
/* It's not there. Read more CFI entries until we find it. */
diff --git a/libdw/libdw.h b/libdw/libdw.h
index 94320c7b..92021366 100644
--- a/libdw/libdw.h
+++ b/libdw/libdw.h
@@ -247,6 +247,8 @@ typedef union
Dwarf_FDE fde;
} Dwarf_CFI_Entry;
+#define dwarf_cfi_cie_p(entry) ((entry)->cie.CIE_id == DW_CIE_ID_64)
+
/* Opaque type representing a frame state described by CFI. */
typedef struct Dwarf_Frame_s Dwarf_Frame;
@@ -286,12 +288,22 @@ extern int dwarf_end (Dwarf *dwarf);
/* Get the data block for the .debug_info section. */
extern Elf_Data *dwarf_getscn_info (Dwarf *dwarf);
-/* Read the header for the DWARF CU header. */
+/* Read the header for the DWARF CU. */
extern int dwarf_nextcu (Dwarf *dwarf, Dwarf_Off off, Dwarf_Off *next_off,
size_t *header_sizep, Dwarf_Off *abbrev_offsetp,
uint8_t *address_sizep, uint8_t *offset_sizep)
__nonnull_attribute__ (3);
+/* Read the header of a DWARF CU or type unit. If TYPE_SIGNATUREP is not
+ null, this reads a type unit from the .debug_types section; otherwise
+ this reads a CU from the .debug_info section. */
+extern int dwarf_next_unit (Dwarf *dwarf, Dwarf_Off off, Dwarf_Off *next_off,
+ size_t *header_sizep, Dwarf_Half *versionp,
+ Dwarf_Off *abbrev_offsetp,
+ uint8_t *address_sizep, uint8_t *offset_sizep,
+ uint64_t *type_signaturep, Dwarf_Off *type_offsetp)
+ __nonnull_attribute__ (3);
+
/* Decode one DWARF CFI entry (CIE or FDE) from the raw section data.
The E_IDENT from the originating ELF file indicates the address
@@ -334,10 +346,15 @@ extern Dwarf_CFI *dwarf_getcfi_elf (Elf *elf);
extern int dwarf_cfi_end (Dwarf_CFI *cache);
-/* Return DIE at given offset. */
+/* Return DIE at given offset in .debug_types section. */
extern Dwarf_Die *dwarf_offdie (Dwarf *dbg, Dwarf_Off offset,
Dwarf_Die *result) __nonnull_attribute__ (3);
+/* Return DIE at given offset in .debug_types section. */
+extern Dwarf_Die *dwarf_offdie_types (Dwarf *dbg, Dwarf_Off offset,
+ Dwarf_Die *result)
+ __nonnull_attribute__ (3);
+
/* Return offset of DIE. */
extern Dwarf_Off dwarf_dieoffset (Dwarf_Die *die);
@@ -561,6 +578,9 @@ extern int dwarf_getsrc_file (Dwarf *dbg, const char *fname, int line, int col,
/* Return line address. */
extern int dwarf_lineaddr (Dwarf_Line *line, Dwarf_Addr *addrp);
+/* Return line VLIW operation index. */
+extern int dwarf_lineop_index (Dwarf_Line *line, unsigned int *op_indexp);
+
/* Return line number. */
extern int dwarf_lineno (Dwarf_Line *line, int *linep)
__nonnull_attribute__ (2);
@@ -589,6 +609,14 @@ extern int dwarf_lineprologueend (Dwarf_Line *line, bool *flagp)
extern int dwarf_lineepiloguebegin (Dwarf_Line *line, bool *flagp)
__nonnull_attribute__ (2);
+/* Return instruction-set architecture in this record. */
+extern int dwarf_lineisa (Dwarf_Line *line, unsigned int *isap)
+ __nonnull_attribute__ (2);
+
+/* Return code path discriminator in this record. */
+extern int dwarf_linediscriminator (Dwarf_Line *line, unsigned int *discp)
+ __nonnull_attribute__ (2);
+
/* Find line information for address. */
extern const char *dwarf_linesrc (Dwarf_Line *line,
diff --git a/libdw/libdw.map b/libdw/libdw.map
index 1a9afb13..8e93dff8 100644
--- a/libdw/libdw.map
+++ b/libdw/libdw.map
@@ -237,3 +237,13 @@ ELFUTILS_0.146 {
global:
dwfl_core_file_report;
} ELFUTILS_0.144;
+
+ELFUTILS_0.148 {
+ global:
+ dwarf_lineisa;
+ dwarf_linediscriminator;
+ dwarf_lineop_index;
+
+ dwarf_next_unit;
+ dwarf_offdie_types;
+} ELFUTILS_0.146;
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index 7a3a360a..bbe92896 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -61,13 +61,6 @@
#define _(Str) dgettext ("elfutils", Str)
-/* Version of the DWARF specification we support. */
-#define DWARF_VERSION 3
-
-/* Version of the CIE format. */
-#define CIE_VERSION 1
-
-
/* Known location expressions already decoded. */
struct loc_s
{
@@ -90,6 +83,7 @@ struct loc_block_s
enum
{
IDX_debug_info = 0,
+ IDX_debug_types,
IDX_debug_abbrev,
IDX_debug_aranges,
IDX_debug_line,
@@ -97,10 +91,6 @@ enum
IDX_debug_loc,
IDX_debug_pubnames,
IDX_debug_str,
- IDX_debug_funcnames,
- IDX_debug_typenames,
- IDX_debug_varnames,
- IDX_debug_weaknames,
IDX_debug_macinfo,
IDX_debug_ranges,
IDX_last
@@ -149,6 +139,8 @@ enum
};
+#include "dwarf_sig8_hash.h"
+
/* This is the structure representing the debugging state. */
struct Dwarf
{
@@ -179,6 +171,11 @@ struct Dwarf
void *cu_tree;
Dwarf_Off next_cu_offset;
+ /* Search tree and sig8 hash table for .debug_types type units. */
+ void *tu_tree;
+ Dwarf_Off next_tu_offset;
+ Dwarf_Sig8_Hash sig8_hash;
+
/* Address ranges. */
Dwarf_Aranges *aranges;
@@ -250,6 +247,12 @@ struct Dwarf_Line_s
unsigned int end_sequence:1;
unsigned int prologue_end:1;
unsigned int epilogue_begin:1;
+ /* The remaining bit fields are not flags, but hold values presumed to be
+ small. All the flags and other bit fields should add up to 48 bits
+ to give the whole struct a nice round size. */
+ unsigned int op_index:8;
+ unsigned int isa:8;
+ unsigned int discriminator:24;
};
struct Dwarf_Lines_s
@@ -283,6 +286,10 @@ struct Dwarf_CU
uint8_t offset_size;
uint16_t version;
+ /* Zero if this is a normal CU. Nonzero if it is a type unit. */
+ size_t type_offset;
+ uint64_t type_sig8;
+
/* Hash table for the abbreviations. */
Dwarf_Abbrev_Hash abbrev_hash;
/* Offset of the first abbreviation. */
@@ -305,28 +312,32 @@ struct Dwarf_CU
LEN VER OFFSET ADDR
4-bytes + 2-bytes + 4-bytes + 1-byte for 32-bit dwarf
12-bytes + 2-bytes + 8-bytes + 1-byte for 64-bit dwarf
+ or in .debug_types, SIGNATURE TYPE-OFFSET
+ 4-bytes + 2-bytes + 4-bytes + 1-byte + 8-bytes + 4-bytes for 32-bit
+ 12-bytes + 2-bytes + 8-bytes + 1-byte + 8-bytes + 8-bytes for 64-bit
Note the trick in the computation. If the offset_size is 4
the '- 4' term changes the '3 *' into a '2 *'. If the
offset_size is 8 it accounts for the 4-byte escape value
used at the start of the length. */
-#define DIE_OFFSET_FROM_CU_OFFSET(cu_offset, offset_size) \
- ((cu_offset) + 3 * (offset_size) - 4 + 3)
-
-#define CUDIE_ADDR(fromcu) \
- ((char *) (fromcu)->dbg->sectiondata[IDX_debug_info]->d_buf \
- + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, (fromcu)->offset_size))
+#define DIE_OFFSET_FROM_CU_OFFSET(cu_offset, offset_size, type_unit) \
+ ((type_unit) ? ((cu_offset) + 4 * (offset_size) - 4 + 3 + 8) \
+ : ((cu_offset) + 3 * (offset_size) - 4 + 3))
+
+#define CUDIE_INIT(fromcu) \
+ { \
+ ((char *) cu_data (fromcu)->d_buf \
+ + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, \
+ (fromcu)->offset_size, \
+ (fromcu)->type_offset != 0)), \
+ (fromcu), \
+ NULL, 0l \
+ }
#ifdef __cplusplus
-# define CUDIE(name, fromcu) \
- Dwarf_Die name = { CUDIE_ADDR (fromcu), (fromcu), NULL, 0l }
+# define CUDIE(name, fromcu) Dwarf_Die name = CUDIE_INIT (fromcu)
#else
-# define CUDIE(fromcu) \
- ((Dwarf_Die) \
- { \
- .cu = (fromcu), \
- .addr = CUDIE_ADDR (fromcu), \
- })
+# define CUDIE(fromcu) ((Dwarf_Die) CUDIE_INIT (fromcu))
#endif
/* Macro information. */
@@ -379,8 +390,12 @@ extern void *__libdw_allocate (Dwarf *dbg, size_t minsize, size_t align)
/* Default OOM handler. */
extern void __libdw_oom (void) __attribute ((noreturn, visibility ("hidden")));
+/* 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;
+
/* Find CU for given offset. */
-extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset)
+extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset, bool tu)
__nonnull_attribute__ (1) internal_function;
/* Return tag of given DIE. */
@@ -439,11 +454,12 @@ extern int __libdw_visit_scopes (unsigned int depth,
extern int __libdw_intern_expression (Dwarf *dbg,
bool other_byte_order,
unsigned int address_size,
+ unsigned int ref_size,
void **cache, const Dwarf_Block *block,
bool cfap, bool valuep,
Dwarf_Op **llbuf, size_t *listlen,
int sec_index)
- __nonnull_attribute__ (4, 5, 8, 9) internal_function;
+ __nonnull_attribute__ (5, 6, 9, 10) internal_function;
/* Return error code of last failing function call. This value is kept
@@ -601,6 +617,18 @@ unsigned char * __libdw_formptr (Dwarf_Attribute *attr, int sec_index,
internal_function;
#endif /* Not C++ */
+static inline size_t
+cu_sec_idx (struct Dwarf_CU *cu)
+{
+ return cu->type_offset == 0 ? IDX_debug_info : IDX_debug_types;
+}
+
+static inline Elf_Data *
+cu_data (struct Dwarf_CU *cu)
+{
+ return cu->dbg->sectiondata[cu_sec_idx (cu)];
+}
+
/* Aliases to avoid PLTs. */
INTDECL (dwarf_aggregate_size)
@@ -630,6 +658,7 @@ INTDECL (dwarf_haspc)
INTDECL (dwarf_highpc)
INTDECL (dwarf_lowpc)
INTDECL (dwarf_nextcu)
+INTDECL (dwarf_next_unit)
INTDECL (dwarf_offdie)
INTDECL (dwarf_ranges)
INTDECL (dwarf_siblingof)
diff --git a/libdw/libdw_findcu.c b/libdw/libdw_findcu.c
index afff6d3a..8e5f9e9b 100644
--- a/libdw/libdw_findcu.c
+++ b/libdw/libdw_findcu.c
@@ -1,5 +1,5 @@
/* Find CU for given offset.
- Copyright (C) 2003, 2004, 2005, 2007 Red Hat, Inc.
+ Copyright (C) 2003-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2003.
@@ -57,6 +57,58 @@
#include "libdwP.h"
+struct Dwarf_CU *
+internal_function
+__libdw_intern_next_unit (dbg, debug_types)
+ Dwarf *dbg;
+ bool debug_types;
+{
+ Dwarf_Off *const offsetp
+ = debug_types ? &dbg->next_tu_offset : &dbg->next_cu_offset;
+
+ Dwarf_Off oldoff = *offsetp;
+ uint16_t version;
+ uint8_t address_size;
+ uint8_t offset_size;
+ Dwarf_Off abbrev_offset;
+ uint64_t type_sig8 = 0;
+ Dwarf_Off type_offset = 0;
+
+ if (INTUSE(dwarf_next_unit) (dbg, oldoff, offsetp, NULL,
+ &version, &abbrev_offset,
+ &address_size, &offset_size,
+ debug_types ? &type_sig8 : NULL,
+ debug_types ? &type_offset : NULL) != 0)
+ /* No more entries. */
+ return NULL;
+
+ /* We only know how to handle the DWARF version 2 through 4 formats. */
+ if (unlikely (version < 2) || unlikely (version > 4))
+ {
+ __libdw_seterrno (DWARF_E_INVALID_DWARF);
+ return NULL;
+ }
+
+ /* Create an entry for this CU. */
+ struct Dwarf_CU *newp = libdw_typed_alloc (dbg, struct Dwarf_CU);
+
+ newp->dbg = dbg;
+ newp->start = oldoff;
+ newp->end = *offsetp;
+ newp->address_size = address_size;
+ newp->offset_size = offset_size;
+ newp->version = version;
+ newp->type_sig8 = type_sig8;
+ newp->type_offset = type_offset;
+ Dwarf_Abbrev_Hash_init (&newp->abbrev_hash, 41);
+ newp->orig_abbrev_offset = newp->last_abbrev_offset = abbrev_offset;
+ newp->lines = NULL;
+ newp->locs = NULL;
+
+ return newp;
+}
+
+
static int
findcu_cb (const void *arg1, const void *arg2)
{
@@ -83,21 +135,24 @@ findcu_cb (const void *arg1, const void *arg2)
return 0;
}
-
struct Dwarf_CU *
-__libdw_findcu (dbg, start)
+__libdw_findcu (dbg, start, debug_types)
Dwarf *dbg;
Dwarf_Off start;
+ bool debug_types;
{
+ void **tree = debug_types ? &dbg->tu_tree : &dbg->cu_tree;
+ Dwarf_Off *next_offset
+ = debug_types ? &dbg->next_tu_offset : &dbg->next_cu_offset;
+
/* Maybe we already know that CU. */
struct Dwarf_CU fake = { .start = start, .end = 0 };
- struct Dwarf_CU **found = tfind (&fake, &dbg->cu_tree, findcu_cb);
+ struct Dwarf_CU **found = tfind (&fake, tree, findcu_cb);
if (found != NULL)
return *found;
- if (start < dbg->next_cu_offset)
+ if (start < *next_offset)
{
- invalid:
__libdw_seterrno (DWARF_E_INVALID_DWARF);
return NULL;
}
@@ -105,51 +160,22 @@ __libdw_findcu (dbg, start)
/* No. Then read more CUs. */
while (1)
{
- Dwarf_Off oldoff = dbg->next_cu_offset;
- uint8_t address_size;
- uint8_t offset_size;
- Dwarf_Off abbrev_offset;
-
- if (INTUSE(dwarf_nextcu) (dbg, oldoff, &dbg->next_cu_offset, NULL,
- &abbrev_offset, &address_size, &offset_size)
- != 0)
- /* No more entries. */
+ Dwarf_Off oldoff = *next_offset;
+ struct Dwarf_CU *newp = __libdw_intern_next_unit (dbg, debug_types);
+ if (newp == NULL)
return NULL;
- /* XXX We need the version number but dwarf_nextcu swallows it. */
- const char *bytes = (dbg->sectiondata[IDX_debug_info]->d_buf + oldoff
- + (2 * offset_size - 4));
- uint16_t version = read_2ubyte_unaligned (dbg, bytes);
-
- /* We only know how to handle the DWARF version 2 and 3 formats. */
- if (unlikely (version != 2) && unlikely (version != 3))
- goto invalid;
-
- /* Create an entry for this CU. */
- struct Dwarf_CU *newp = libdw_typed_alloc (dbg, struct Dwarf_CU);
-
- newp->dbg = dbg;
- newp->start = oldoff;
- newp->end = dbg->next_cu_offset;
- newp->address_size = address_size;
- newp->offset_size = offset_size;
- newp->version = version;
- Dwarf_Abbrev_Hash_init (&newp->abbrev_hash, 41);
- newp->orig_abbrev_offset = newp->last_abbrev_offset = abbrev_offset;
- newp->lines = NULL;
- newp->locs = NULL;
-
/* Add the new entry to the search tree. */
- if (tsearch (newp, &dbg->cu_tree, findcu_cb) == NULL)
+ if (tsearch (newp, tree, findcu_cb) == NULL)
{
- /* Something went wrong. Unfo the operation. */
- dbg->next_cu_offset = oldoff;
+ /* Something went wrong. Undo the operation. */
+ *next_offset = oldoff;
__libdw_seterrno (DWARF_E_NOMEM);
return NULL;
}
/* Is this the one we are looking for? */
- if (start < dbg->next_cu_offset)
+ if (start < *next_offset)
// XXX Match exact offset.
return newp;
}
diff --git a/libdw/memory-access.h b/libdw/memory-access.h
index 13f79ec2..b7799e92 100644
--- a/libdw/memory-access.h
+++ b/libdw/memory-access.h
@@ -1,5 +1,5 @@
/* Unaligned memory access functionality.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2009 Red Hat, Inc.
+ Copyright (C) 2000-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2001.
@@ -90,7 +90,7 @@
_v |= (uint64_t) (__b & 0x7f) << (nth * 7); \
if (likely ((__b & 0x80) == 0)) \
{ \
- var = (_v << (64 - (nth * 7) - 7) >> (64 - (nth * 7) - 7)); \
+ var = (_v << (64 - (nth * 7) - 7)) >> (64 - (nth * 7) - 7); \
break; \
} \
else do {} while (0)
@@ -109,9 +109,13 @@
{ \
get_sleb128_step (var, *addrp, i, return var); \
} \
- /* Other implementations set VALUE to INT_MAX in this \
- case. So we better do this as well. */ \
- return INT64_MAX; \
+ __b = *(*addrp)++; \
+ if (likely ((__b & 0x80) == 0)) \
+ return var | ((uint64_t) __b << 63); \
+ else \
+ /* Other implementations set VALUE to INT_MAX in this \
+ case. So we better do this as well. */ \
+ return INT64_MAX; \
} while (0)
#ifdef IS_LIBDW
@@ -122,14 +126,14 @@ extern int64_t __libdw_get_sleb128 (int64_t acc, unsigned int i,
const unsigned char **addrp)
internal_function attribute_hidden;
#else
-static uint64_t
+static inline uint64_t
__attribute__ ((unused))
__libdw_get_uleb128 (uint64_t acc, unsigned int i, const unsigned char **addrp)
{
unsigned char __b;
get_uleb128_rest_return (acc, i, addrp);
}
-static int64_t
+static inline int64_t
__attribute__ ((unused))
__libdw_get_sleb128 (int64_t acc, unsigned int i, const unsigned char **addrp)
{
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index a9f36d96..ff850ebf 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,61 @@
+2010-06-16 Roland McGrath <[email protected]>
+
+ * cu.c (cudie_offset): Use DIE_OFFSET_FROM_CU_OFFSET macro.
+
+2010-06-14 Roland McGrath <[email protected]>
+
+ * find-debuginfo.c (try_open): Take new arg MAIN_STAT. Compare
+ candidate file to that st_dev/st_ino and pretend it didn't exist
+ if they match.
+ (find_debuginfo_in_path): Update caller, pass main file's info.
+
+2010-05-20 Roland McGrath <[email protected]>
+
+ * linux-proc-maps.c (find_sysinfo_ehdr): Renamed to ...
+ (grovel_auxv): ... this. Take DWFL argument.
+ (dwfl_linux_proc_report): Update caller.
+
+ * dwfl_module_getdwarf.c (open_elf): Calculate alignment for bias
+ based on dwfl->segment_align or manifest alignment of MOD->low_addr.
+
+2010-05-19 Roland McGrath <[email protected]>
+
+ * linux-kernel-modules.c (intuit_kernel_bounds): Rewritten.
+
+2010-05-06 Roland McGrath <[email protected]>
+
+ * segment.c (insert): Clear inserted elements of DWFL->lookup_module.
+
+ * libdwflP.h (DWFL_ERRORS): Add WRONG_ID_ELF.
+ * dwfl_build_id_find_elf.c: Set MOD->main.valid when there is a build
+ ID but we didn't find a file.
+ * dwfl_module_getdwarf.c (__libdwfl_getelf): When that's set, check
+ and refuse any fallback file-by-name if it lacks the matching ID.
+
+ * dwfl_error.c (dwfl_errno): Add INTDEF.
+ * libdwflP.h: Add INTDECL.
+
+ * dwfl_module_getdwarf.c (open_elf): Do elf_end and clear FILE->elf in
+ failure cases.
+
+2010-05-04 Roland McGrath <[email protected]>
+
+ * dwfl_segment_report_module.c: Use "[pie]" rather than "[dso]" for an
+ ET_DYN that has a DT_DEBUG.
+
+ * dwfl_segment_report_module.c: Fix jump-start of NDX-finding loop.
+
+ * segment.c (insert): Fix moving of values following insertion.
+ (reify_segments): Fix up MOD->segment backpointer indices after
+ later insertions in the main loop invalidate them.
+
+ * link_map.c (dwfl_link_map_report): Detect bias of embedded phdrs and
+ apply it to PT_DYNAMIC p_vaddr so we handle a PIE correctly.
+
+ * core-file.c (dwfl_core_file_report): Return any nonzero count of
+ modules reported, even if link_map grovelling failed and only sniffing
+ found anything.
+
2010-04-26 Roland McGrath <[email protected]>
* relocate.c (relocate_section): Treat R_*_NONE reloc as no reloc.
diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c
index 2f0ca8a6..1b556dde 100644
--- a/libdwfl/core-file.c
+++ b/libdwfl/core-file.c
@@ -419,6 +419,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf)
return ndx;
/* Now sniff segment contents for modules. */
+ int sniffed = 0;
ndx = 0;
do
{
@@ -427,7 +428,13 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf)
core_file_read_eagerly, elf);
if (unlikely (seg < 0))
return seg;
- ndx = seg > ndx ? seg : ndx + 1;
+ if (seg > ndx)
+ {
+ ndx = seg;
+ ++sniffed;
+ }
+ else
+ ++ndx;
}
while (ndx < (int) phnum);
@@ -465,7 +472,13 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf)
/* Now we have NT_AUXV contents. From here on this processing could be
used for a live process with auxv read from /proc. */
- return dwfl_link_map_report (dwfl, auxv, auxv_size,
- dwfl_elf_phdr_memory_callback, elf);
+ int listed = dwfl_link_map_report (dwfl, auxv, auxv_size,
+ dwfl_elf_phdr_memory_callback, elf);
+
+ /* We return the number of modules we found if we found any.
+ If we found none, we return -1 instead of 0 if there was an
+ error rather than just nothing found. If link_map handling
+ failed, we still have the sniffed modules. */
+ return sniffed == 0 || listed > sniffed ? listed : sniffed;
}
INTDEF (dwfl_core_file_report)
diff --git a/libdwfl/cu.c b/libdwfl/cu.c
index 8f01ea6b..5f73d2a3 100644
--- a/libdwfl/cu.c
+++ b/libdwfl/cu.c
@@ -1,5 +1,5 @@
/* Keeping track of DWARF compilation units in libdwfl.
- Copyright (C) 2005, 2006 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -172,7 +172,8 @@ less_lazy (Dwfl_Module *mod)
static inline Dwarf_Off
cudie_offset (const struct dwfl_cu *cu)
{
- return cu->die.cu->start + 3 * cu->die.cu->offset_size - 4 + 3;
+ return DIE_OFFSET_FROM_CU_OFFSET (cu->die.cu->start, cu->die.cu->offset_size,
+ cu->die.cu->type_sig8 != 0);
}
static int
@@ -273,7 +274,7 @@ __libdwfl_nextcu (Dwfl_Module *mod, struct dwfl_cu *lastcu,
size_t cuhdrsz;
Dwarf_Off nextoff;
int end = INTUSE(dwarf_nextcu) (mod->dw, cuoff, &nextoff, &cuhdrsz,
- NULL, NULL, NULL);
+ NULL, NULL, NULL);
if (end < 0)
return DWFL_E_LIBDW;
if (end > 0)
diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c
index fcc6f1e5..e27c8e12 100644
--- a/libdwfl/dwfl_build_id_find_elf.c
+++ b/libdwfl/dwfl_build_id_find_elf.c
@@ -1,5 +1,5 @@
/* Find an ELF file for a module from its build ID.
- Copyright (C) 2007, 2008, 2009 Red Hat, Inc.
+ Copyright (C) 2007-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -160,6 +160,12 @@ dwfl_build_id_find_elf (Dwfl_Module *mod,
free (*file_name);
*file_name = NULL;
}
+ else if (errno == 0 && mod->build_id_len > 0)
+ /* Setting this with no file yet loaded is a marker that
+ the build ID is authoritative even if we also know a
+ putative *FILE_NAME. */
+ mod->main.valid = true;
+
return fd;
}
INTDEF (dwfl_build_id_find_elf)
diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c
index df2765af..9144a378 100644
--- a/libdwfl/dwfl_error.c
+++ b/libdwfl/dwfl_error.c
@@ -1,5 +1,5 @@
/* Error handling in libdwfl.
- Copyright (C) 2005, 2006, 2009 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -72,6 +72,7 @@ dwfl_errno (void)
global_error = DWFL_E_NOERROR;
return result;
}
+INTDEF (dwfl_errno)
static const struct msgtable
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
index b084673e..41ed0730 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -75,6 +75,8 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
}
else if (unlikely (elf_kind (file->elf) != ELF_K_ELF))
{
+ elf_end (file->elf);
+ file->elf = NULL;
close (file->fd);
file->fd = -1;
return DWFL_E_BADELF;
@@ -84,6 +86,8 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
if (ehdr == NULL)
{
elf_error:
+ elf_end (file->elf);
+ file->elf = NULL;
close (file->fd);
file->fd = -1;
return DWFL_E (LIBELF, elf_errno ());
@@ -108,8 +112,16 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
goto elf_error;
if (ph->p_type == PT_LOAD)
{
- file->bias = ((mod->low_addr & -ph->p_align)
- - (ph->p_vaddr & -ph->p_align));
+ GElf_Addr align = mod->dwfl->segment_align;
+ if (align <= 1)
+ {
+ if ((mod->low_addr & (ph->p_align - 1)) == 0)
+ align = ph->p_align;
+ else
+ align = ((GElf_Addr) 1 << ffsll (mod->low_addr)) >> 1;
+ }
+
+ file->bias = ((mod->low_addr & -align) - (ph->p_vaddr & -align));
break;
}
}
@@ -137,9 +149,12 @@ __libdwfl_getelf (Dwfl_Module *mod)
mod->main.fd = (*mod->dwfl->callbacks->find_elf) (MODCB_ARGS (mod),
&mod->main.name,
&mod->main.elf);
+ const bool fallback = mod->main.elf == NULL && mod->main.fd < 0;
mod->elferr = open_elf (mod, &mod->main);
+ if (mod->elferr != DWFL_E_NOERROR)
+ return;
- if (mod->elferr == DWFL_E_NOERROR && !mod->main.valid)
+ if (!mod->main.valid)
{
/* Clear any explicitly reported build ID, just in case it was wrong.
We'll fetch it from the file when asked. */
@@ -147,6 +162,42 @@ __libdwfl_getelf (Dwfl_Module *mod)
mod->build_id_bits = NULL;
mod->build_id_len = 0;
}
+ else if (fallback)
+ {
+ /* We have an authoritative build ID for this module, so
+ don't use a file by name that doesn't match that ID. */
+
+ assert (mod->build_id_len > 0);
+
+ switch (__builtin_expect (__libdwfl_find_build_id (mod, false,
+ mod->main.elf), 2))
+ {
+ case 2:
+ /* Build ID matches as it should. */
+ return;
+
+ case -1: /* ELF error. */
+ mod->elferr = INTUSE(dwfl_errno) ();
+ break;
+
+ case 0: /* File has no build ID note. */
+ case 1: /* FIle has a build ID that does not match. */
+ mod->elferr = DWFL_E_WRONG_ID_ELF;
+ break;
+
+ default:
+ abort ();
+ }
+
+ /* We get here when it was the right ELF file. Clear it out. */
+ elf_end (mod->main.elf);
+ mod->main.elf = NULL;
+ if (mod->main.fd >= 0)
+ {
+ close (mod->main.fd);
+ mod->main.fd = -1;
+ }
+ }
}
/* Search an ELF file for a ".gnu_debuglink" section. */
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index 5f982f41..3f77cfc7 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -111,7 +111,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
if (segment >= dwfl->lookup_elts)
segment = dwfl->lookup_elts - 1;
- while (segment > 0 && dwfl->lookup_segndx[segment] > ndx)
+ while (segment > 0
+ && (dwfl->lookup_segndx[segment] > ndx
+ || dwfl->lookup_segndx[segment] == -1))
--segment;
while (dwfl->lookup_segndx[segment] < ndx)
@@ -451,12 +453,14 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
/* Examine its .dynamic section to get more interesting details.
If it has DT_SONAME, we'll use that as the module name.
+ If it has a DT_DEBUG, then it's actually a PIE rather than a DSO.
We need its DT_STRTAB and DT_STRSZ to decipher DT_SONAME,
and they also tell us the essential portion of the file
for fetching symbols. */
GElf_Addr soname_stroff = 0;
GElf_Addr dynstr_vaddr = 0;
GElf_Xword dynstrsz = 0;
+ bool execlike = false;
inline bool consider_dyn (GElf_Sxword tag, GElf_Xword val)
{
switch (tag)
@@ -464,6 +468,10 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
default:
return false;
+ case DT_DEBUG:
+ execlike = true;
+ break;
+
case DT_SONAME:
soname_stroff = val;
break;
@@ -520,7 +528,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
/* We'll use the name passed in or a stupid default if not DT_SONAME. */
if (name == NULL)
- name = ehdr.e32.e_type == ET_EXEC ? "[exe]" : "[dso]";
+ name = ehdr.e32.e_type == ET_EXEC ? "[exe]" : execlike ? "[pie]" : "[dso]";
void *soname = NULL;
size_t soname_size = 0;
diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c
index 8fdaeb39..375bbaa8 100644
--- a/libdwfl/find-debuginfo.c
+++ b/libdwfl/find-debuginfo.c
@@ -51,13 +51,15 @@
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
+#include <sys/stat.h>
#include "system.h"
/* Try to open64 [DIR/][SUBDIR/]DEBUGLINK, return file descriptor or -1.
On success, *DEBUGINFO_FILE_NAME has the malloc'd name of the open file. */
static int
-try_open (const char *dir, const char *subdir, const char *debuglink,
+try_open (const struct stat64 *main_stat,
+ const char *dir, const char *subdir, const char *debuglink,
char **debuginfo_file_name)
{
char *fname;
@@ -72,9 +74,19 @@ try_open (const char *dir, const char *subdir, const char *debuglink,
: asprintf (&fname, "%s/%s/%s", dir, subdir, debuglink)) < 0)
return -1;
+ struct stat64 st;
int fd = TEMP_FAILURE_RETRY (open64 (fname, O_RDONLY));
if (fd < 0)
free (fname);
+ else if (fstat64 (fd, &st) == 0
+ && st.st_ino == main_stat->st_ino
+ && st.st_dev == main_stat->st_dev)
+ {
+ /* This is the main file by another name. Don't look at it again. */
+ close (fd);
+ errno = ENOENT;
+ fd = -1;
+ }
else
*debuginfo_file_name = fname;
@@ -162,6 +174,16 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name,
++path;
}
+ /* XXX dev/ino should be cached in struct dwfl_file. */
+ struct stat64 main_stat;
+ if (unlikely ((mod->main.fd != -1 ? fstat64 (mod->main.fd, &main_stat)
+ : file_name != NULL ? stat64 (file_name, &main_stat)
+ : -1) < 0))
+ {
+ main_stat.st_dev = 0;
+ main_stat.st_ino = 0;
+ }
+
char *file_dirname = (file_basename == file_name ? NULL
: strndupa (file_name, file_basename - 1 - file_name));
char *p;
@@ -199,7 +221,7 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name,
}
char *fname = NULL;
- int fd = try_open (dir, subdir, debuglink_file, &fname);
+ int fd = try_open (&main_stat, dir, subdir, debuglink_file, &fname);
if (fd < 0)
switch (errno)
{
diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h
index 58edacb9..e4c7e7c8 100644
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -93,7 +93,8 @@
DWFL_ERROR (TRUNCATED, N_("image truncated")) \
DWFL_ERROR (ALREADY_ELF, N_("ELF file opened")) \
DWFL_ERROR (BADELF, N_("not a valid ELF file")) \
- DWFL_ERROR (WEIRD_TYPE, N_("cannot handle DWARF type description"))
+ DWFL_ERROR (WEIRD_TYPE, N_("cannot handle DWARF type description")) \
+ DWFL_ERROR (WRONG_ID_ELF, N_("ELF file does not match build ID"))
#define DWFL_ERROR(name, text) DWFL_E_##name,
typedef enum { DWFL_ERRORS DWFL_E_NUM } Dwfl_Error;
@@ -404,6 +405,7 @@ extern int dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
/* Avoid PLT entries. */
INTDECL (dwfl_begin)
INTDECL (dwfl_errmsg)
+INTDECL (dwfl_errno)
INTDECL (dwfl_addrmodule)
INTDECL (dwfl_addrsegment)
INTDECL (dwfl_addrdwarf)
diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c
index fe7f40ce..403b2df6 100644
--- a/libdwfl/link_map.c
+++ b/libdwfl/link_map.c
@@ -684,6 +684,33 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
/* If we found the phdr dimensions, search phdrs for PT_DYNAMIC. */
GElf_Addr dyn_vaddr = 0;
GElf_Xword dyn_filesz = 0;
+ GElf_Addr dyn_bias = (GElf_Addr) -1;
+
+ inline bool consider_phdr (GElf_Word type,
+ GElf_Addr vaddr, GElf_Xword filesz)
+ {
+ switch (type)
+ {
+ case PT_PHDR:
+ if (dyn_bias == (GElf_Addr) -1
+ /* Do a sanity check on the putative address. */
+ && ((vaddr & (dwfl->segment_align - 1))
+ == (phdr & (dwfl->segment_align - 1))))
+ {
+ dyn_bias = phdr - vaddr;
+ return dyn_vaddr != 0;
+ }
+ break;
+
+ case PT_DYNAMIC:
+ dyn_vaddr = vaddr;
+ dyn_filesz = filesz;
+ return dyn_bias != (GElf_Addr) -1;
+ }
+
+ return false;
+ }
+
if (phdr != 0 && phnum != 0)
{
Dwfl_Module *phdr_mod;
@@ -725,22 +752,18 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
if (elfclass == ELFCLASS32)
{
for (size_t i = 0; i < phnum; ++i)
- if (u->p32[i].p_type == PT_DYNAMIC)
- {
- dyn_vaddr = u->p32[i].p_vaddr;
- dyn_filesz = u->p32[i].p_filesz;
- break;
- }
+ if (consider_phdr (u->p32[i].p_type,
+ u->p32[i].p_vaddr,
+ u->p32[i].p_filesz))
+ break;
}
else
{
for (size_t i = 0; i < phnum; ++i)
- if (u->p64[i].p_type == PT_DYNAMIC)
- {
- dyn_vaddr = u->p64[i].p_vaddr;
- dyn_filesz = u->p64[i].p_filesz;
- break;
- }
+ if (consider_phdr (u->p64[i].p_type,
+ u->p64[i].p_vaddr,
+ u->p64[i].p_filesz))
+ break;
}
}
@@ -775,6 +798,9 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
/* If we found PT_DYNAMIC, search it for DT_DEBUG. */
if (dyn_filesz != 0)
{
+ if (dyn_bias != (GElf_Addr) -1)
+ dyn_vaddr += dyn_bias;
+
Elf_Data in =
{
.d_type = ELF_T_DYN,
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
index e07073cd..c30ff1a3 100644
--- a/libdwfl/linux-kernel-modules.c
+++ b/libdwfl/linux-kernel-modules.c
@@ -1,5 +1,5 @@
/* Standard libdwfl callbacks for debugging the running Linux kernel.
- Copyright (C) 2005-2009 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -411,41 +411,40 @@ intuit_kernel_bounds (Dwarf_Addr *start, Dwarf_Addr *end, Dwarf_Addr *notes)
char *line = NULL;
size_t linesz = 0;
- size_t n = getline (&line, &linesz, f);
- Dwarf_Addr first;
+ size_t n;
char *p = NULL;
- int result = 0;
- if (n > 0 && (first = strtoull (line, &p, 16)) > 0 && p > line)
- {
- Dwarf_Addr last = 0;
- while ((n = getline (&line, &linesz, f)) > 1 && line[n - 2] != ']')
- {
- p = NULL;
- last = strtoull (line, &p, 16);
- if (p == NULL || p == line || last == 0)
- {
- result = -1;
- break;
- }
+ const char *type;
- if (*notes == 0)
- {
- const char *sym = (strsep (&p, " \t\n")
- ? strsep (&p, " \t\n") : NULL);
- if (sym != NULL && !strcmp (sym, "__start_notes"))
- *notes = last;
- }
- }
- if ((n == 0 && feof_unlocked (f)) || (n > 1 && line[n - 2] == ']'))
- {
- Dwarf_Addr round_kernel = sysconf (_SC_PAGE_SIZE);
- first &= -(Dwarf_Addr) round_kernel;
- last += round_kernel - 1;
- last &= -(Dwarf_Addr) round_kernel;
- *start = first;
- *end = last;
- result = 0;
- }
+ inline bool read_address (Dwarf_Addr *addr)
+ {
+ if ((n = getline (&line, &linesz, f)) < 1 || line[n - 2] == ']')
+ return false;
+ *addr = strtoull (line, &p, 16);
+ p += strspn (p, " \t");
+ type = strsep (&p, " \t\n");
+ if (type == NULL)
+ return false;
+ return p != NULL && p != line;
+ }
+
+ int result;
+ do
+ result = read_address (start) ? 0 : -1;
+ while (result == 0 && strchr ("TtRr", *type) == NULL);
+
+ if (result == 0)
+ {
+ *end = *start;
+ while (read_address (end))
+ if (*notes == 0 && !strcmp (p, "__start_notes\n"))
+ *notes = *end;
+
+ Dwarf_Addr round_kernel = sysconf (_SC_PAGE_SIZE);
+ *start &= -(Dwarf_Addr) round_kernel;
+ *end += round_kernel - 1;
+ *end &= -(Dwarf_Addr) round_kernel;
+ if (*start >= *end || *end - *start < round_kernel)
+ result = -1;
}
free (line);
diff --git a/libdwfl/linux-proc-maps.c b/libdwfl/linux-proc-maps.c
index 2206f63c..8504a5f3 100644
--- a/libdwfl/linux-proc-maps.c
+++ b/libdwfl/linux-proc-maps.c
@@ -1,5 +1,5 @@
/* Standard libdwfl callbacks for debugging a live Linux process.
- Copyright (C) 2005, 2007, 2008 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -70,7 +70,7 @@
/* Search /proc/PID/auxv for the AT_SYSINFO_EHDR tag. */
static int
-find_sysinfo_ehdr (pid_t pid, GElf_Addr *sysinfo_ehdr)
+grovel_auxv (pid_t pid, Dwfl *dwfl, GElf_Addr *sysinfo_ehdr)
{
char *fname;
if (asprintf (&fname, PROCAUXVFMT, pid) < 0)
@@ -100,18 +100,30 @@ find_sysinfo_ehdr (pid_t pid, GElf_Addr *sysinfo_ehdr)
if (d.a32[i].a_type == AT_SYSINFO_EHDR)
{
*sysinfo_ehdr = d.a32[i].a_un.a_val;
- nread = 0;
- break;
+ if (dwfl->segment_align > 1)
+ {
+ nread = 0;
+ break;
+ }
}
+ else if (d.a32[i].a_type == AT_PAGESZ
+ && dwfl->segment_align <= 1)
+ dwfl->segment_align = d.a32[i].a_un.a_val;
break;
case 8:
for (size_t i = 0; (char *) &d.a64[i] < &d.buffer[nread]; ++i)
if (d.a64[i].a_type == AT_SYSINFO_EHDR)
{
*sysinfo_ehdr = d.a64[i].a_un.a_val;
- nread = 0;
- break;
+ if (dwfl->segment_align > 1)
+ {
+ nread = 0;
+ break;
+ }
}
+ else if (d.a64[i].a_type == AT_PAGESZ
+ && dwfl->segment_align <= 1)
+ dwfl->segment_align = d.a64[i].a_un.a_val;
break;
default:
abort ();
@@ -238,7 +250,7 @@ dwfl_linux_proc_report (Dwfl *dwfl, pid_t pid)
/* We'll notice the AT_SYSINFO_EHDR address specially when we hit it. */
GElf_Addr sysinfo_ehdr = 0;
- int result = find_sysinfo_ehdr (pid, &sysinfo_ehdr);
+ int result = grovel_auxv (pid, dwfl, &sysinfo_ehdr);
if (result != 0)
return result;
diff --git a/libdwfl/segment.c b/libdwfl/segment.c
index 36c850f0..9d78c87f 100644
--- a/libdwfl/segment.c
+++ b/libdwfl/segment.c
@@ -1,5 +1,5 @@
/* Manage address space lookup table for libdwfl.
- Copyright (C) 2008, 2009 Red Hat, Inc.
+ Copyright (C) 2008, 2009, 2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -107,19 +107,22 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr end, int segndx)
if (unlikely (i < dwfl->lookup_elts))
{
- memcpy (&dwfl->lookup_addr[i + need], &dwfl->lookup_addr[i],
- need * sizeof dwfl->lookup_addr[0]);
- memcpy (&dwfl->lookup_segndx[i + need], &dwfl->lookup_segndx[i],
- need * sizeof dwfl->lookup_segndx[0]);
+ const size_t move = dwfl->lookup_elts - i;
+ memmove (&dwfl->lookup_addr[i + need], &dwfl->lookup_addr[i],
+ move * sizeof dwfl->lookup_addr[0]);
+ memmove (&dwfl->lookup_segndx[i + need], &dwfl->lookup_segndx[i],
+ move * sizeof dwfl->lookup_segndx[0]);
if (dwfl->lookup_module != NULL)
- memcpy (&dwfl->lookup_module[i + need], &dwfl->lookup_module[i],
- need * sizeof dwfl->lookup_module[0]);
+ memmove (&dwfl->lookup_module[i + need], &dwfl->lookup_module[i],
+ move * sizeof dwfl->lookup_module[0]);
}
if (need_start)
{
dwfl->lookup_addr[i] = start;
dwfl->lookup_segndx[i] = segndx;
+ if (dwfl->lookup_module != NULL)
+ dwfl->lookup_module[i] = NULL;
++i;
}
else
@@ -129,6 +132,8 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr end, int segndx)
{
dwfl->lookup_addr[i] = end;
dwfl->lookup_segndx[i] = -1;
+ if (dwfl->lookup_module != NULL)
+ dwfl->lookup_module[i] = NULL;
}
dwfl->lookup_elts += need;
@@ -167,11 +172,14 @@ static bool
reify_segments (Dwfl *dwfl)
{
int hint = -1;
+ int highest = -1;
+ bool fixup = false;
for (Dwfl_Module *mod = dwfl->modulelist; mod != NULL; mod = mod->next)
if (! mod->gc)
{
const GElf_Addr start = segment_start (dwfl, mod->low_addr);
const GElf_Addr end = segment_end (dwfl, mod->high_addr);
+ bool resized = false;
int idx = lookup (dwfl, start, hint);
if (unlikely (idx < 0))
@@ -180,6 +188,7 @@ reify_segments (Dwfl *dwfl)
if (unlikely (insert (dwfl, 0, start, end, -1)))
return true;
idx = 0;
+ resized = true;
}
else if (dwfl->lookup_addr[idx] > start)
{
@@ -188,6 +197,7 @@ reify_segments (Dwfl *dwfl)
dwfl->lookup_segndx[idx])))
return true;
++idx;
+ resized = true;
}
else if (dwfl->lookup_addr[idx] < start)
{
@@ -196,14 +206,18 @@ reify_segments (Dwfl *dwfl)
if (unlikely (insert (dwfl, idx + 1, start, end, -1)))
return true;
++idx;
+ resized = true;
}
if ((size_t) idx + 1 < dwfl->lookup_elts
- && end < dwfl->lookup_addr[idx + 1]
+ && end < dwfl->lookup_addr[idx + 1])
+ {
/* The module ends in the middle of this segment. Split it. */
- && unlikely (insert (dwfl, idx + 1,
- end, dwfl->lookup_addr[idx + 1], -1)))
- return true;
+ if (unlikely (insert (dwfl, idx + 1,
+ end, dwfl->lookup_addr[idx + 1], -1)))
+ return true;
+ resized = true;
+ }
if (dwfl->lookup_module == NULL)
{
@@ -221,9 +235,23 @@ reify_segments (Dwfl *dwfl)
dwfl->lookup_module[idx++] = mod;
while ((size_t) idx < dwfl->lookup_elts
&& dwfl->lookup_addr[idx] < end);
+ assert (dwfl->lookup_module[mod->segment] == mod);
+
+ if (resized && idx - 1 >= highest)
+ /* Expanding the lookup tables invalidated backpointers
+ we've already stored. Reset those ones. */
+ fixup = true;
+
+ highest = idx - 1;
hint = (size_t) idx < dwfl->lookup_elts ? idx : -1;
}
+ if (fixup)
+ /* Reset backpointer indices invalidated by table insertions. */
+ for (size_t idx = 0; idx < dwfl->lookup_elts; ++idx)
+ if (dwfl->lookup_module[idx] != NULL)
+ dwfl->lookup_module[idx]->segment = idx;
+
return false;
}
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 7e6b9929..c1479ae4 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-14 Ulrich Drepper <[email protected]>
+
+ * gelf_update_shdr.c: Implicitly set ELF_F_DIRTY bit.
+ * gelf_update_phdr.c: Likewise.
+ * gelf_update_ehdr.c: Likewise.
+
2010-04-14 Roland McGrath <[email protected]>
* elf32_getphdr.c: Check for e_phoff/size outside the file bounds.
@@ -763,4 +769,4 @@
2003-08-11 Ulrich Drepper <[email protected]>
- * Moved to CVS archive.
+ * Moved to CVS archive.
diff --git a/libelf/gelf_update_ehdr.c b/libelf/gelf_update_ehdr.c
index 4d5c2b6c..baf7a3f8 100644
--- a/libelf/gelf_update_ehdr.c
+++ b/libelf/gelf_update_ehdr.c
@@ -1,5 +1,5 @@
/* Update ELF header.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
+ Copyright (C) 2000, 2001, 2002, 2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2000.
@@ -127,6 +127,9 @@ gelf_update_ehdr (Elf *elf, GElf_Ehdr *src)
memcpy (ehdr, src, sizeof (Elf64_Ehdr));
}
+ /* Mark the ELF header as modified. */
+ elf->state.elf.ehdr_flags |= ELF_F_DIRTY;
+
result = 1;
out:
diff --git a/libelf/gelf_update_phdr.c b/libelf/gelf_update_phdr.c
index d6d5f5ae..b90e5c04 100644
--- a/libelf/gelf_update_phdr.c
+++ b/libelf/gelf_update_phdr.c
@@ -152,6 +152,9 @@ gelf_update_phdr (Elf *elf, int ndx, GElf_Phdr *src)
memcpy (phdr + ndx, src, sizeof (Elf64_Phdr));
}
+ /* Mark the program header as modified. */
+ elf->state.elf.phdr_flags |= ELF_F_DIRTY;
+
result = 1;
out:
diff --git a/libelf/gelf_update_shdr.c b/libelf/gelf_update_shdr.c
index c57eab80..c4e38294 100644
--- a/libelf/gelf_update_shdr.c
+++ b/libelf/gelf_update_shdr.c
@@ -1,5 +1,5 @@
/* Update section header.
- Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
+ Copyright (C) 2000, 2001, 2002, 2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2000.
@@ -120,6 +120,9 @@ gelf_update_shdr (Elf_Scn *scn, GElf_Shdr *src)
(void) memcpy (shdr, src, sizeof (GElf_Shdr));
}
+ /* Mark the section header as modified. */
+ scn->shdr_flags |= ELF_F_DIRTY;
+
result = 1;
out:
diff --git a/po/de.po b/po/de.po
index 3796c448..c0377e8e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils VERSION\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-05-03 14:14-0700\n"
+"POT-Creation-Date: 2010-06-28 12:08-0700\n"
"PO-Revision-Date: 2009-06-29 15:15+0200\n"
"Last-Translator: Michael Münch <[email protected]>\n"
"Language-Team: German\n"
@@ -21,8 +21,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 0.3\n"
-#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822
-#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295
+#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823
+#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308
#, c-format
msgid "memory exhausted"
msgstr "Kein Speicher mehr verfügbar"
@@ -209,7 +209,7 @@ msgstr ""
msgid "invalid CFI section"
msgstr "ungültiger Abschnitt"
-#: libdwfl/argp-std.c:67 src/unstrip.c:2237
+#: libdwfl/argp-std.c:67 src/unstrip.c:2250
msgid "Input selection options:"
msgstr "Eingabeauswahloptionen:"
@@ -362,6 +362,10 @@ msgstr "Ungültige ELF Datei"
msgid "cannot handle DWARF type description"
msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
+#: libdwfl/libdwflP.h:97
+msgid "ELF file does not match build ID"
+msgstr ""
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "Kein Backend"
@@ -422,7 +426,7 @@ msgstr "ungültige Grösse des Quell-Operanden"
msgid "invalid size of destination operand"
msgstr "ungültige Grösse des Ziel-Operanden"
-#: libelf/elf_error.c:108 src/readelf.c:4779
+#: libelf/elf_error.c:108 src/readelf.c:4826
#, c-format
msgid "invalid encoding"
msgstr "ungültige Kodierung"
@@ -505,7 +509,7 @@ msgstr "data/scn Unterschied"
msgid "invalid section header"
msgstr "ungültiger Abschnitts-Header"
-#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343
+#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529
#, c-format
msgid "invalid data"
msgstr "Ungültige Daten"
@@ -587,7 +591,7 @@ msgstr ""
#: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
-#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227
+#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227
#: src/strip.c:204 src/unstrip.c:234
#, c-format
msgid ""
@@ -602,7 +606,7 @@ msgstr ""
#: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
-#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232
+#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232
#: src/strip.c:209 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
@@ -618,12 +622,12 @@ msgstr "Abschnitt syntax benötigt genau ein Modul"
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr ""
-#: src/addr2line.c:461
+#: src/addr2line.c:469
#, c-format
msgid "cannot find symbol '%s'"
msgstr "Konnte Symbol '%s' nicht finden"
-#: src/addr2line.c:466
+#: src/addr2line.c:474
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr ""
@@ -1009,8 +1013,8 @@ msgstr ""
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900
-#: src/unstrip.c:1929
+#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' kann nicht geöffnet werden"
@@ -1066,7 +1070,7 @@ msgstr ""
msgid "FILE..."
msgstr "DATEI..."
-#: src/elflint.c:159 src/readelf.c:272
+#: src/elflint.c:159 src/readelf.c:273
#, c-format
msgid "cannot open input file"
msgstr "Kann Eingabedatei nicht öffnen"
@@ -1085,7 +1089,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
msgid "No errors"
msgstr "Keine Fehler"
-#: src/elflint.c:223 src/readelf.c:425
+#: src/elflint.c:223 src/readelf.c:426
msgid "Missing file name.\n"
msgstr "Dateiname fehlt.\n"
@@ -3159,7 +3163,7 @@ msgstr ""
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543
#, c-format
msgid "cannot determine number of sections: %s"
msgstr ""
@@ -3390,7 +3394,7 @@ msgstr ""
msgid "cannot get header of 0th section: %s"
msgstr ""
-#: src/ldgeneric.c:6941 src/unstrip.c:1808
+#: src/ldgeneric.c:6941 src/unstrip.c:1820
#, c-format
msgid "cannot update ELF header: %s"
msgstr ""
@@ -3591,11 +3595,11 @@ msgstr "%s%s%s: Dateiformat nicht erkannt"
msgid "cannot create search tree"
msgstr "Kann Suchbaum nicht erstellen"
-#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885
-#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549
-#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265
-#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939
-#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604
+#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886
+#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550
+#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266
+#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940
+#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794
#: src/size.c:425 src/size.c:499 src/strip.c:483
#, c-format
msgid "cannot get section header string table index"
@@ -3682,7 +3686,7 @@ msgstr ""
msgid "Show information from FILEs (a.out by default)."
msgstr ""
-#: src/objdump.c:236 src/readelf.c:430
+#: src/objdump.c:236 src/readelf.c:431
msgid "No operation specified.\n"
msgstr "Keine Operation angegeben.\n"
@@ -3691,11 +3695,11 @@ msgstr "Keine Operation angegeben.\n"
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818
+#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819
msgid "INVALID SYMBOL"
msgstr ""
-#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851
+#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852
msgid "INVALID SECTION"
msgstr ""
@@ -3834,293 +3838,293 @@ msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen"
msgid "Print information from ELF file in human-readable form."
msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben."
-#: src/readelf.c:401
+#: src/readelf.c:402
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr ""
-#: src/readelf.c:465
+#: src/readelf.c:466
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
-#: src/readelf.c:477
+#: src/readelf.c:478
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr ""
-#: src/readelf.c:482
+#: src/readelf.c:483
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr ""
-#: src/readelf.c:574
+#: src/readelf.c:575
#, c-format
msgid "cannot stat input file"
msgstr ""
-#: src/readelf.c:576
+#: src/readelf.c:577
#, c-format
msgid "input file is empty"
msgstr ""
-#: src/readelf.c:578
+#: src/readelf.c:579
#, c-format
msgid "failed reading '%s': %s"
msgstr "Konnte '%s' nicht lesen: %s"
-#: src/readelf.c:614
+#: src/readelf.c:615
#, c-format
msgid "cannot read ELF header: %s"
msgstr ""
-#: src/readelf.c:622
+#: src/readelf.c:623
#, c-format
msgid "cannot create EBL handle"
msgstr ""
-#: src/readelf.c:635
+#: src/readelf.c:636
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:721
+#: src/readelf.c:722
msgid "NONE (None)"
msgstr ""
-#: src/readelf.c:722
+#: src/readelf.c:723
msgid "REL (Relocatable file)"
msgstr ""
-#: src/readelf.c:723
+#: src/readelf.c:724
msgid "EXEC (Executable file)"
msgstr ""
-#: src/readelf.c:724
+#: src/readelf.c:725
msgid "DYN (Shared object file)"
msgstr ""
-#: src/readelf.c:725
+#: src/readelf.c:726
msgid "CORE (Core file)"
msgstr ""
-#: src/readelf.c:730
+#: src/readelf.c:731
#, c-format
msgid "OS Specific: (%x)\n"
msgstr ""
-#: src/readelf.c:732
+#: src/readelf.c:733
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr ""
-#: src/readelf.c:742
+#: src/readelf.c:743
msgid ""
"ELF Header:\n"
" Magic: "
msgstr ""
-#: src/readelf.c:746
+#: src/readelf.c:747
#, c-format
msgid ""
"\n"
" Class: %s\n"
msgstr ""
-#: src/readelf.c:751
+#: src/readelf.c:752
#, fuzzy, c-format
msgid " Data: %s\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:757
+#: src/readelf.c:758
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr ""
-#: src/readelf.c:759 src/readelf.c:776
+#: src/readelf.c:760 src/readelf.c:777
msgid "(current)"
msgstr "(aktuell)"
-#: src/readelf.c:763
+#: src/readelf.c:764
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: src/readelf.c:766
+#: src/readelf.c:767
#, c-format
msgid " ABI Version: %hhd\n"
msgstr ""
-#: src/readelf.c:769
+#: src/readelf.c:770
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:772
+#: src/readelf.c:773
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: src/readelf.c:774
+#: src/readelf.c:775
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: src/readelf.c:778
+#: src/readelf.c:779
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:781
+#: src/readelf.c:782
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:782 src/readelf.c:785
+#: src/readelf.c:783 src/readelf.c:786
msgid "(bytes into file)"
msgstr ""
-#: src/readelf.c:784
+#: src/readelf.c:785
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:787
+#: src/readelf.c:788
#, c-format
msgid " Flags: %s\n"
msgstr ""
-#: src/readelf.c:790
+#: src/readelf.c:791
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811
+#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812
msgid "(bytes)"
msgstr "(Bytes)"
-#: src/readelf.c:793
+#: src/readelf.c:794
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:796
+#: src/readelf.c:797
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:803
+#: src/readelf.c:804
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr ""
-#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837
+#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838
msgid " ([0] not available)"
msgstr ""
-#: src/readelf.c:810
+#: src/readelf.c:811
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:813
+#: src/readelf.c:814
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:820
+#: src/readelf.c:821
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr ""
-#: src/readelf.c:833
+#: src/readelf.c:834
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr ""
-#: src/readelf.c:841
+#: src/readelf.c:842
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
"\n"
msgstr ""
-#: src/readelf.c:845
+#: src/readelf.c:846
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
"\n"
msgstr ""
-#: src/readelf.c:877
+#: src/readelf.c:878
#, c-format
msgid ""
"There are %d section headers, starting at offset %#<PRIx64>:\n"
"\n"
msgstr ""
-#: src/readelf.c:887
+#: src/readelf.c:888
msgid "Section Headers:"
msgstr ""
-#: src/readelf.c:890
+#: src/readelf.c:891
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
msgstr ""
-#: src/readelf.c:892
+#: src/readelf.c:893
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
msgstr ""
-#: src/readelf.c:899 src/readelf.c:1052
+#: src/readelf.c:900 src/readelf.c:1053
#, c-format
msgid "cannot get section: %s"
msgstr ""
-#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353
-#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553
-#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244
-#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588
-#: src/unstrip.c:1778
+#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353
+#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558
+#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250
+#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593
+#: src/unstrip.c:1782
#, c-format
msgid "cannot get section header: %s"
msgstr ""
-#: src/readelf.c:964
+#: src/readelf.c:965
msgid "Program Headers:"
msgstr "Programm-Köpfe:"
-#: src/readelf.c:966
+#: src/readelf.c:967
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:969
+#: src/readelf.c:970
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1009
+#: src/readelf.c:1010
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr ""
-#: src/readelf.c:1030
+#: src/readelf.c:1031
msgid ""
"\n"
" Section to Segment mapping:\n"
" Segment Sections..."
msgstr ""
-#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870
+#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883
#, c-format
msgid "cannot get program header: %s"
msgstr ""
-#: src/readelf.c:1175
+#: src/readelf.c:1176
#, c-format
msgid ""
"\n"
@@ -4131,7 +4135,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1180
+#: src/readelf.c:1181
#, c-format
msgid ""
"\n"
@@ -4142,15 +4146,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1188
+#: src/readelf.c:1189
msgid "<INVALID SYMBOL>"
msgstr ""
-#: src/readelf.c:1202
+#: src/readelf.c:1203
msgid "<INVALID SECTION>"
msgstr ""
-#: src/readelf.c:1353
+#: src/readelf.c:1354
#, c-format
msgid ""
"\n"
@@ -4163,43 +4167,43 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1365
+#: src/readelf.c:1366
msgid " Type Value\n"
msgstr ""
-#: src/readelf.c:1389
+#: src/readelf.c:1390
#, c-format
msgid "Shared library: [%s]\n"
msgstr ""
-#: src/readelf.c:1394
+#: src/readelf.c:1395
#, c-format
msgid "Library soname: [%s]\n"
msgstr ""
-#: src/readelf.c:1399
+#: src/readelf.c:1400
#, c-format
msgid "Library rpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1404
+#: src/readelf.c:1405
#, c-format
msgid "Library runpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1424
+#: src/readelf.c:1425
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr ""
-#: src/readelf.c:1534 src/readelf.c:1720
+#: src/readelf.c:1535 src/readelf.c:1721
#, c-format
msgid ""
"\n"
"Invalid symbol table at offset %#0<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1552 src/readelf.c:1737
+#: src/readelf.c:1553 src/readelf.c:1738
#, c-format
msgid ""
"\n"
@@ -4212,7 +4216,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1567
+#: src/readelf.c:1568
#, c-format
msgid ""
"\n"
@@ -4223,29 +4227,29 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1577
+#: src/readelf.c:1578
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:1579
+#: src/readelf.c:1580
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674
-#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831
-#: src/readelf.c:1850 src/readelf.c:1863
+#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675
+#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832
+#: src/readelf.c:1851 src/readelf.c:1864
msgid "<INVALID RELOC>"
msgstr ""
-#: src/readelf.c:1749
+#: src/readelf.c:1750
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:1751
+#: src/readelf.c:1752
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:1952
+#: src/readelf.c:1953
#, c-format
msgid ""
"\n"
@@ -4256,40 +4260,40 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1958
+#: src/readelf.c:1959
#, 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:1968
+#: src/readelf.c:1969
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:1970
+#: src/readelf.c:1971
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:1990
+#: src/readelf.c:1991
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr ""
-#: src/readelf.c:2078
+#: src/readelf.c:2079
#, c-format
msgid "bad dynamic symbol"
msgstr ""
-#: src/readelf.c:2160
+#: src/readelf.c:2161
msgid "none"
msgstr "keine"
-#: src/readelf.c:2177
+#: src/readelf.c:2178
msgid "| <unknown>"
msgstr "| <unbekannt>"
-#: src/readelf.c:2202
+#: src/readelf.c:2203
#, c-format
msgid ""
"\n"
@@ -4302,17 +4306,17 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2225
+#: src/readelf.c:2226
#, fuzzy, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n"
-#: src/readelf.c:2238
+#: src/readelf.c:2239
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Name: %s Flags: %s Version: %hu\n"
-#: src/readelf.c:2269
+#: src/readelf.c:2270
#, c-format
msgid ""
"\n"
@@ -4325,17 +4329,17 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2299
+#: src/readelf.c:2300
#, c-format
msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"
msgstr ""
-#: src/readelf.c:2314
+#: src/readelf.c:2315
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr ""
-#: src/readelf.c:2546
+#: src/readelf.c:2547
#, c-format
msgid ""
"\n"
@@ -4348,15 +4352,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2576
+#: src/readelf.c:2577
msgid " 0 *local* "
msgstr " 0 *lokal* "
-#: src/readelf.c:2581
+#: src/readelf.c:2582
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:2612
+#: src/readelf.c:2613
#, c-format
msgid ""
"\n"
@@ -4371,41 +4375,41 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2636
+#: src/readelf.c:2637
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr ""
-#: src/readelf.c:2638
+#: src/readelf.c:2639
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:2645
+#: src/readelf.c:2646
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:2658
+#: src/readelf.c:2659
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
-" unsuccessful lookup: %f\n"
+"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
-#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759
+#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760
#, c-format
msgid "cannot get data for section %d: %s"
msgstr ""
-#: src/readelf.c:2813
+#: src/readelf.c:2814
#, c-format
msgid ""
" Symbol Bias: %u\n"
" Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n"
msgstr ""
-#: src/readelf.c:2887
+#: src/readelf.c:2888
#, c-format
msgid ""
"\n"
@@ -4416,13 +4420,13 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2901
+#: src/readelf.c:2902
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
msgstr ""
-#: src/readelf.c:2951
+#: src/readelf.c:2952
#, c-format
msgid ""
"\n"
@@ -4430,140 +4434,140 @@ msgid ""
"#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:2967
+#: src/readelf.c:2968
msgid " Owner Size\n"
msgstr ""
-#: src/readelf.c:2993
+#: src/readelf.c:2994
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
-#: src/readelf.c:3025
+#: src/readelf.c:3026
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
-#: src/readelf.c:3030
+#: src/readelf.c:3031
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3065
+#: src/readelf.c:3066
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3068
+#: src/readelf.c:3069
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3071
+#: src/readelf.c:3072
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3078
+#: src/readelf.c:3079
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3081
+#: src/readelf.c:3082
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3117
+#: src/readelf.c:3118
#, c-format
msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3120
+#: src/readelf.c:3121
#, c-format
msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3125
+#: src/readelf.c:3126
#, c-format
msgid "%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3128
+#: src/readelf.c:3129
#, c-format
msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3134
+#: src/readelf.c:3135
#, c-format
msgid "%s+%#<PRIx64> <%s>"
msgstr "%s+%#<PRIx64> <%s>"
-#: src/readelf.c:3137
+#: src/readelf.c:3138
#, c-format
msgid "%s+%#0*<PRIx64> <%s>"
msgstr "%s+%#0*<PRIx64> <%s>"
-#: src/readelf.c:3141
+#: src/readelf.c:3142
#, c-format
msgid "%#<PRIx64> <%s>"
msgstr "%#<PRIx64> <%s>"
-#: src/readelf.c:3144
+#: src/readelf.c:3145
#, c-format
msgid "%#0*<PRIx64> <%s>"
msgstr "%#0*<PRIx64> <%s>"
-#: src/readelf.c:3149
+#: src/readelf.c:3150
#, c-format
msgid "%s+%#<PRIx64>"
msgstr "%s+%#<PRIx64>"
-#: src/readelf.c:3152
+#: src/readelf.c:3153
#, c-format
msgid "%s+%#0*<PRIx64>"
msgstr "%s+%#0*<PRIx64>"
-#: src/readelf.c:3260
+#: src/readelf.c:3284
#, c-format
msgid "unknown tag %hx"
msgstr "unbekannter Tag %hx"
-#: src/readelf.c:3262
+#: src/readelf.c:3286
#, c-format
msgid "unknown user tag %hx"
msgstr "unbekannter Benutzer-Tag %hx"
-#: src/readelf.c:3480
+#: src/readelf.c:3510
#, c-format
msgid "unknown attribute %hx"
msgstr "unbekanntes Attribut %hx"
-#: src/readelf.c:3483
+#: src/readelf.c:3513
#, c-format
msgid "unknown user attribute %hx"
msgstr "unbekanntes Benutzer-Attribut %hx"
-#: src/readelf.c:3529
+#: src/readelf.c:3563
#, c-format
msgid "unknown form %<PRIx64>"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:3763
+#: src/readelf.c:3797
msgid "empty block"
msgstr ""
-#: src/readelf.c:3766
+#: src/readelf.c:3800
#, c-format
msgid "%zu byte block:"
msgstr ""
-#: src/readelf.c:4175
+#: src/readelf.c:4222
#, c-format
msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
msgstr ""
-#: src/readelf.c:4188
+#: src/readelf.c:4235
#, c-format
msgid ""
"\n"
@@ -4571,37 +4575,37 @@ msgid ""
" [ Code]\n"
msgstr ""
-#: src/readelf.c:4195
+#: src/readelf.c:4242
#, c-format
msgid ""
"\n"
"Abbreviation section at offset %<PRIu64>:\n"
msgstr ""
-#: src/readelf.c:4208
+#: src/readelf.c:4255
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr ""
-#: src/readelf.c:4224
+#: src/readelf.c:4271
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr ""
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "yes"
msgstr "ja"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "no"
msgstr "nein"
-#: src/readelf.c:4263
+#: src/readelf.c:4310
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ""
-#: src/readelf.c:4268
+#: src/readelf.c:4315
#, c-format
msgid ""
"\n"
@@ -4612,118 +4616,118 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:4298
+#: src/readelf.c:4345
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:4300
+#: src/readelf.c:4347
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
-#: src/readelf.c:4319
+#: src/readelf.c:4366
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ""
-#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897
-#: src/readelf.c:5992 src/readelf.c:6164
+#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079
+#: src/readelf.c:6178 src/readelf.c:6350
#, c-format
msgid ""
"\n"
"DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:4338 src/readelf.c:5911
+#: src/readelf.c:4385 src/readelf.c:6097
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:4360 src/readelf.c:5933
+#: src/readelf.c:4407 src/readelf.c:6119
#, c-format
msgid " [%6tx] base address %s\n"
msgstr ""
-#: src/readelf.c:4371
+#: src/readelf.c:4418
#, c-format
msgid " [%6tx] %s..%s\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:4373
+#: src/readelf.c:4420
#, c-format
msgid " %s..%s\n"
msgstr " %s..%s\n"
-#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332
+#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518
#, c-format
msgid "cannot get %s content: %s"
msgstr ""
-#: src/readelf.c:4806
+#: src/readelf.c:4853
#, c-format
msgid ""
"\n"
"Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:4833 src/readelf.c:5486
+#: src/readelf.c:4881 src/readelf.c:5615
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:4855
+#: src/readelf.c:4903
#, c-format
msgid ""
"\n"
" [%6tx] Zero terminator\n"
msgstr ""
-#: src/readelf.c:4924
+#: src/readelf.c:4987
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ungültige Abschnittsausrichtung"
-#: src/readelf.c:4936
+#: src/readelf.c:4999
msgid "FDE address encoding: "
msgstr ""
-#: src/readelf.c:4942
+#: src/readelf.c:5005
msgid "LSDA pointer encoding: "
msgstr ""
-#: src/readelf.c:5034
+#: src/readelf.c:5101
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:5041
+#: src/readelf.c:5108
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:5068
+#: src/readelf.c:5135
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:5114
+#: src/readelf.c:5182
#, c-format
msgid "cannot get attribute code: %s"
msgstr ""
-#: src/readelf.c:5122
+#: src/readelf.c:5190
#, c-format
msgid "cannot get attribute form: %s"
msgstr ""
-#: src/readelf.c:5135
+#: src/readelf.c:5203
#, c-format
msgid "cannot get attribute value: %s"
msgstr ""
-#: src/readelf.c:5331
+#: src/readelf.c:5428
#, c-format
msgid ""
"\n"
@@ -4731,7 +4735,16 @@ msgid ""
" [Offset]\n"
msgstr ""
-#: src/readelf.c:5356
+#: src/readelf.c:5458
+#, c-format
+msgid ""
+" Type unit at offset %<PRIu64>:\n"
+" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %"
+"<PRIu8>, Offset size: %<PRIu8>\n"
+" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n"
+msgstr ""
+
+#: src/readelf.c:5466
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -4739,44 +4752,44 @@ msgid ""
"<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:5374
+#: src/readelf.c:5489
#, c-format
msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
msgstr ""
-#: src/readelf.c:5385
+#: src/readelf.c:5500
#, c-format
msgid "cannot get DIE offset: %s"
msgstr ""
-#: src/readelf.c:5393
+#: src/readelf.c:5508
#, c-format
msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
msgstr ""
-#: src/readelf.c:5422
+#: src/readelf.c:5537
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr ""
-#: src/readelf.c:5429
+#: src/readelf.c:5544
#, c-format
msgid "cannot get next DIE: %s"
msgstr ""
-#: src/readelf.c:5464
+#: src/readelf.c:5593
#, c-format
msgid "cannot get line data section data: %s"
msgstr ""
-#: src/readelf.c:5477
+#: src/readelf.c:5606
#, c-format
msgid ""
"\n"
"Table at offset %Zu:\n"
msgstr ""
-#: src/readelf.c:5529
+#: src/readelf.c:5661
#, c-format
msgid ""
"\n"
@@ -4784,6 +4797,7 @@ msgid ""
" DWARF version: %<PRIuFAST16>\n"
" Prologue length: %<PRIu64>\n"
" Minimum instruction length: %<PRIuFAST8>\n"
+" Maximum operations per instruction: %<PRIuFAST8>\n"
" Initial value if '%s': %<PRIuFAST8>\n"
" Line base: %<PRIdFAST8>\n"
" Line range: %<PRIuFAST8>\n"
@@ -4792,154 +4806,179 @@ msgid ""
"Opcodes:\n"
msgstr ""
-#: src/readelf.c:5548
+#: src/readelf.c:5682
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:5563
+#: src/readelf.c:5697
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:5571
+#: src/readelf.c:5705
msgid ""
"\n"
"Directory table:"
msgstr ""
-#: src/readelf.c:5587
+#: src/readelf.c:5721
msgid ""
"\n"
"File name table:\n"
" Entry Dir Time Size Name"
msgstr ""
-#: src/readelf.c:5616
+#: src/readelf.c:5750
msgid ""
"\n"
"Line number statements:"
msgstr ""
-#: src/readelf.c:5677
+#: src/readelf.c:5824
+#, c-format
+msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
+msgstr ""
+
+#: src/readelf.c:5829
#, c-format
msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:5697
+#: src/readelf.c:5849
#, c-format
msgid " extended opcode %u: "
msgstr ""
-#: src/readelf.c:5702
+#: src/readelf.c:5854
msgid "end of sequence"
msgstr ""
-#: src/readelf.c:5717
+#: src/readelf.c:5871
#, c-format
msgid "set address to %s\n"
msgstr ""
-#: src/readelf.c:5738
+#: src/readelf.c:5892
#, c-format
msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-#: src/readelf.c:5747
+#: src/readelf.c:5905
+#, c-format
+msgid " set discriminator to %u\n"
+msgstr ""
+
+#: src/readelf.c:5910
msgid "unknown opcode"
msgstr ""
-#: src/readelf.c:5759
+#: src/readelf.c:5922
msgid " copy"
msgstr ""
-#: src/readelf.c:5769
+#: src/readelf.c:5933
+#, c-format
+msgid "advance address by %u to %s, op_index to %u\n"
+msgstr ""
+
+#: src/readelf.c:5937
#, c-format
msgid "advance address by %u to %s\n"
msgstr ""
-#: src/readelf.c:5780
+#: src/readelf.c:5948
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr ""
-#: src/readelf.c:5788
+#: src/readelf.c:5956
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5798
+#: src/readelf.c:5966
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5805
+#: src/readelf.c:5973
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr ""
-#: src/readelf.c:5811
+#: src/readelf.c:5979
msgid " set basic block flag"
msgstr ""
-#: src/readelf.c:5821
+#: src/readelf.c:5988
+#, c-format
+msgid "advance address by constant %u to %s, op_index to %u\n"
+msgstr ""
+
+#: src/readelf.c:5992
#, c-format
msgid "advance address by constant %u to %s\n"
msgstr ""
-#: src/readelf.c:5837
+#: src/readelf.c:6010
#, c-format
msgid "advance address by fixed value %u to %s\n"
msgstr ""
-#: src/readelf.c:5846
+#: src/readelf.c:6019
msgid " set prologue end flag"
msgstr ""
-#: src/readelf.c:5851
+#: src/readelf.c:6024
msgid " set epilogue begin flag"
msgstr ""
-#: src/readelf.c:5860
+#: src/readelf.c:6033
+#, c-format
+msgid " set isa to %u\n"
+msgstr ""
+
+#: src/readelf.c:6042
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:5892
+#: src/readelf.c:6074
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ""
-#: src/readelf.c:5947
+#: src/readelf.c:6133
#, c-format
msgid " [%6tx] %s..%s"
msgstr " [%6tx] %s..%s"
-#: src/readelf.c:5949
+#: src/readelf.c:6135
#, c-format
msgid " %s..%s"
msgstr " %s..%s"
-#: src/readelf.c:6002
+#: src/readelf.c:6188
#, c-format
msgid "cannot get macro information section data: %s"
msgstr ""
-#: src/readelf.c:6081
+#: src/readelf.c:6267
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr ""
-#: src/readelf.c:6149
+#: src/readelf.c:6335
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:6188
+#: src/readelf.c:6374
#, c-format
msgid ""
"\n"
@@ -4947,47 +4986,47 @@ msgid ""
" %*s String\n"
msgstr ""
-#: src/readelf.c:6202
+#: src/readelf.c:6388
#, c-format
msgid " *** error while reading strings: %s\n"
msgstr ""
-#: src/readelf.c:6222
+#: src/readelf.c:6408
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:6324
+#: src/readelf.c:6510
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:6347
+#: src/readelf.c:6533
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:6359
+#: src/readelf.c:6545
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:6373
+#: src/readelf.c:6559
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:6386
+#: src/readelf.c:6572
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:6400
+#: src/readelf.c:6586
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -4996,128 +5035,128 @@ msgid ""
" Action: %u\n"
msgstr ""
-#: src/readelf.c:6460
+#: src/readelf.c:6646
#, c-format
msgid "invalid TType encoding"
msgstr ""
-#: src/readelf.c:6484
+#: src/readelf.c:6671
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr ""
-#: src/readelf.c:6620 src/readelf.c:7221
+#: src/readelf.c:6810 src/readelf.c:7411
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:6961
+#: src/readelf.c:7151
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:7320
+#: src/readelf.c:7510
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:7338
+#: src/readelf.c:7528
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:7372
+#: src/readelf.c:7562
#, c-format
msgid "cannot get content of note section: %s"
msgstr ""
-#: src/readelf.c:7399
+#: src/readelf.c:7589
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:7422
+#: src/readelf.c:7612
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:7468
+#: src/readelf.c:7658
#, c-format
msgid ""
"\n"
"Section [%Zu] '%s' has no data to dump.\n"
msgstr ""
-#: src/readelf.c:7474 src/readelf.c:7497
+#: src/readelf.c:7664 src/readelf.c:7687
#, c-format
msgid "cannot get data for section [%Zu] '%s': %s"
msgstr ""
-#: src/readelf.c:7478
+#: src/readelf.c:7668
#, c-format
msgid ""
"\n"
"Hex dump of section [%Zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:7491
+#: src/readelf.c:7681
#, c-format
msgid ""
"\n"
"Section [%Zu] '%s' has no strings to dump.\n"
msgstr ""
-#: src/readelf.c:7501
+#: src/readelf.c:7691
#, c-format
msgid ""
"\n"
"String section [%Zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:7549
+#: src/readelf.c:7739
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:7576
+#: src/readelf.c:7766
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:7637
+#: src/readelf.c:7827
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:7640
+#: src/readelf.c:7830
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:7644
+#: src/readelf.c:7834
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %Zu entries:\n"
msgstr ""
-#: src/readelf.c:7662
+#: src/readelf.c:7852
#, c-format
msgid "cannot extract member at offset %Zu in '%s': %s"
msgstr ""
-#: src/readelf.c:7667
+#: src/readelf.c:7857
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
@@ -5471,7 +5510,7 @@ msgstr ""
msgid "cannot copy ELF header: %s"
msgstr ""
-#: src/unstrip.c:264 src/unstrip.c:1817
+#: src/unstrip.c:264 src/unstrip.c:1830
#, c-format
msgid "cannot create program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
@@ -5486,12 +5525,12 @@ msgstr "konnte Programm-Kopf nicht kopieren: %s"
msgid "cannot copy section header: %s"
msgstr ""
-#: src/unstrip.c:283 src/unstrip.c:1505
+#: src/unstrip.c:283 src/unstrip.c:1511
#, c-format
msgid "cannot get section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:285 src/unstrip.c:1507
+#: src/unstrip.c:285 src/unstrip.c:1513
#, c-format
msgid "cannot copy section data: %s"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
@@ -5501,181 +5540,190 @@ msgstr "konnte Abschnittsdaten nicht kopieren: %s"
msgid "cannot create directory '%s'"
msgstr "konnte Verzeichnis nicht erstellen: %s"
-#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540
+#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
-#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613
-#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715
+#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616
+#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720
#, c-format
msgid "cannot update symbol table: %s"
msgstr "konnte Symboltabelle nicht aktualisieren: %s"
-#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209
-#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791
+#: src/unstrip.c:375
#, c-format
msgid "cannot update section header: %s"
msgstr ""
-#: src/unstrip.c:408 src/unstrip.c:419
+#: src/unstrip.c:414 src/unstrip.c:425
#, c-format
msgid "cannot update relocation: %s"
msgstr ""
-#: src/unstrip.c:507
+#: src/unstrip.c:512
#, c-format
msgid "cannot get symbol version: %s"
msgstr ""
-#: src/unstrip.c:519
+#: src/unstrip.c:524
#, c-format
msgid "unexpected section type in [%Zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:769
+#: src/unstrip.c:772
#, c-format
msgid "invalid string offset in symbol [%Zu]"
msgstr ""
-#: src/unstrip.c:911 src/unstrip.c:1248
+#: src/unstrip.c:914 src/unstrip.c:1254
#, c-format
msgid "cannot read section [%Zu] name: %s"
msgstr ""
-#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004
+#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr ""
-#: src/unstrip.c:992
+#: src/unstrip.c:995
#, c-format
msgid "invalid contents in '%s' section"
msgstr ""
-#: src/unstrip.c:1047 src/unstrip.c:1370
+#: src/unstrip.c:1050 src/unstrip.c:1376
#, c-format
msgid "cannot find matching section for [%Zu] '%s'"
msgstr ""
-#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451
+#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457
#, c-format
msgid "cannot add section name to string table: %s"
msgstr ""
-#: src/unstrip.c:1195
+#: src/unstrip.c:1198
#, c-format
msgid "cannot update section header string table data: %s"
msgstr ""
-#: src/unstrip.c:1223 src/unstrip.c:1227
+#: src/unstrip.c:1225 src/unstrip.c:1229
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
-#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466
+#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472
#, c-format
msgid "cannot get section count: %s"
msgstr ""
-#: src/unstrip.c:1293 src/unstrip.c:1385
+#: src/unstrip.c:1240
+#, c-format
+msgid "more sections in stripped file than debug file -- arguments reversed?"
+msgstr ""
+
+#: src/unstrip.c:1299 src/unstrip.c:1391
#, c-format
msgid "cannot read section header string table: %s"
msgstr ""
-#: src/unstrip.c:1445
+#: src/unstrip.c:1451
#, c-format
msgid "cannot add new section: %s"
msgstr ""
-#: src/unstrip.c:1548
+#: src/unstrip.c:1553
#, c-format
msgid "symbol [%Zu] has invalid section index"
msgstr ""
-#: src/unstrip.c:1800
+#: src/unstrip.c:1791
+#, fuzzy, c-format
+msgid "cannot read section data: %s"
+msgstr "konnte Abschnittsdaten nicht holen: %s"
+
+#: src/unstrip.c:1812
#, c-format
msgid "cannot get ELF header: %s"
msgstr ""
-#: src/unstrip.c:1827
+#: src/unstrip.c:1840
#, c-format
msgid "cannot update program header: %s"
msgstr "konnte Programm-Kopf nicht aktualisieren: %s"
-#: src/unstrip.c:1832 src/unstrip.c:1911
+#: src/unstrip.c:1845 src/unstrip.c:1924
#, c-format
msgid "cannot write output file: %s"
msgstr ""
-#: src/unstrip.c:1880
+#: src/unstrip.c:1893
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:1883
+#: src/unstrip.c:1896
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034
+#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr ""
-#: src/unstrip.c:1960
+#: src/unstrip.c:1973
#, c-format
msgid "'%s' and '%s' do not seem to match"
msgstr ""
-#: src/unstrip.c:1991
+#: src/unstrip.c:2004
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:1995
+#: src/unstrip.c:2008
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2010
+#: src/unstrip.c:2023
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2014
+#: src/unstrip.c:2027
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2027
+#: src/unstrip.c:2040
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr ""
-#: src/unstrip.c:2058
+#: src/unstrip.c:2071
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2191
+#: src/unstrip.c:2204
#, c-format
msgid "no matching modules found"
msgstr "kein passendes Modul gefunden"
-#: src/unstrip.c:2200
+#: src/unstrip.c:2213
#, c-format
msgid "matched more than one module"
msgstr "mehr als ein passendes Modul"
-#: src/unstrip.c:2247
+#: src/unstrip.c:2260
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2248
+#: src/unstrip.c:2261
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 63657625..8afd4ba2 100644
--- a/po/es.po
+++ b/po/es.po
@@ -4,14 +4,15 @@
# Domingo Becker <[email protected]>, 2009.
# Gladys Guerrero Lozano <[email protected]>, 2009.
# Héctor Daniel Cabrera <[email protected]>, 2009, 2010.
+# Claudio Rodrigo Pereyra Diaz <[email protected]>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: elfutils.master.es\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-05-03 14:14-0700\n"
-"PO-Revision-Date: 2010-04-19 10:51-0300\n"
-"Last-Translator: Héctor Daniel Cabrera <[email protected]>\n"
+"POT-Creation-Date: 2010-06-28 12:08-0700\n"
+"PO-Revision-Date: 2010-06-23 10:03-0300\n"
+"Last-Translator: Claudio Rodrigo Pereyra Diaz <[email protected]>\n"
"Language-Team: Fedora Spanish <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,8 +22,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Country: ARGENTINA\n"
-#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822
-#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295
+#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823
+#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308
#, c-format
msgid "memory exhausted"
msgstr "memoria agotada"
@@ -208,7 +209,7 @@ msgstr ".debug_ranges section faltante"
msgid "invalid CFI section"
msgstr "sección CFI inválida"
-#: libdwfl/argp-std.c:67 src/unstrip.c:2237
+#: libdwfl/argp-std.c:67 src/unstrip.c:2250
msgid "Input selection options:"
msgstr "Opciones de selección de entrada:"
@@ -357,6 +358,10 @@ msgstr "no es un archivo ELF válido"
msgid "cannot handle DWARF type description"
msgstr "no es posible manipular tipo de descripción DWARF"
+#: libdwfl/libdwflP.h:97
+msgid "ELF file does not match build ID"
+msgstr "El archivo ELF no coincide con el ID construido"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "No hay segundo plano (Backend)"
@@ -417,7 +422,7 @@ msgstr "tamaño inválido del operando fuente"
msgid "invalid size of destination operand"
msgstr "tamaño inválido del operando destino"
-#: libelf/elf_error.c:108 src/readelf.c:4779
+#: libelf/elf_error.c:108 src/readelf.c:4826
#, c-format
msgid "invalid encoding"
msgstr "codificación inválida"
@@ -498,7 +503,7 @@ msgstr "no coinciden los datos/scn"
msgid "invalid section header"
msgstr "encabezamiento de sección inválida"
-#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343
+#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529
#, c-format
msgid "invalid data"
msgstr "datos inválidos"
@@ -585,7 +590,7 @@ msgstr "[DIREC...]"
#: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
-#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227
+#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227
#: src/strip.c:204 src/unstrip.c:234
#, c-format
msgid ""
@@ -601,7 +606,7 @@ msgstr ""
#: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
-#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232
+#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232
#: src/strip.c:209 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
@@ -617,12 +622,12 @@ msgstr "Sintaxis de sección requiere exactamente un módulo"
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr "Compensación %#<PRIxMAX> se encuentra fuera de sección '%s'"
-#: src/addr2line.c:461
+#: src/addr2line.c:469
#, c-format
msgid "cannot find symbol '%s'"
msgstr "no se puede encontrar símbolo '%s'"
-#: src/addr2line.c:466
+#: src/addr2line.c:474
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr "compensación %#<PRIxMAX> se encuentra fuera de contenido de '%s'"
@@ -1009,8 +1014,8 @@ msgstr "Valor inválido '%s' para parámetro --gaps"
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900
-#: src/unstrip.c:1929
+#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
msgstr "Imposible abrir '%s'"
@@ -1068,7 +1073,7 @@ msgstr "Chequeo minucioso de ficheros ELF de acuerdo con gABI/psABI "
msgid "FILE..."
msgstr "FICHERO..."
-#: src/elflint.c:159 src/readelf.c:272
+#: src/elflint.c:159 src/readelf.c:273
#, c-format
msgid "cannot open input file"
msgstr "no se puede abrir el fichero de entrada"
@@ -1087,7 +1092,7 @@ msgstr "error al cerrar el descriptor ELF: %s\n"
msgid "No errors"
msgstr "No hay errores"
-#: src/elflint.c:223 src/readelf.c:425
+#: src/elflint.c:223 src/readelf.c:426
msgid "Missing file name.\n"
msgstr "Falta el nombre de archivo.\n"
@@ -3455,7 +3460,7 @@ msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr ""
"Advertencia: el tamaño de `%s' cambió de %<PRIu64> en %s a %<PRIu64> en %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
@@ -3711,7 +3716,7 @@ msgstr "error interno: sección non-nobits sigue a sección nobits"
msgid "cannot get header of 0th section: %s"
msgstr "No se puede obtener encabezamiento de sección 0th: %s"
-#: src/ldgeneric.c:6941 src/unstrip.c:1808
+#: src/ldgeneric.c:6941 src/unstrip.c:1820
#, c-format
msgid "cannot update ELF header: %s"
msgstr "No se puede actualizar encabezamiento ELF: %s"
@@ -3915,11 +3920,11 @@ msgstr "%s%s%s: no se reconoció el formato de fichero"
msgid "cannot create search tree"
msgstr "No se puede crear el árbol de búsqueda"
-#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885
-#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549
-#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265
-#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939
-#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604
+#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886
+#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550
+#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266
+#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940
+#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794
#: src/size.c:425 src/size.c:499 src/strip.c:483
#, c-format
msgid "cannot get section header string table index"
@@ -4009,7 +4014,7 @@ msgstr "Sólo muestra información para NOMBRE de sección."
msgid "Show information from FILEs (a.out by default)."
msgstr "Muestra información de FICHEROS (a.out por defecto)."
-#: src/objdump.c:236 src/readelf.c:430
+#: src/objdump.c:236 src/readelf.c:431
msgid "No operation specified.\n"
msgstr "No se especificó una operación.\n"
@@ -4018,11 +4023,11 @@ msgstr "No se especificó una operación.\n"
msgid "while close `%s'"
msgstr "mientras cierra `%s'"
-#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818
+#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819
msgid "INVALID SYMBOL"
msgstr "SÍMBOLO INVÁLIDO"
-#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851
+#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852
msgid "INVALID SECTION"
msgstr "SECCIÓN INVÁLIDA"
@@ -4166,87 +4171,87 @@ msgstr ""
"Imprimir información del fichero ELF en una forma comprensible para los "
"seres humanos."
-#: src/readelf.c:401
+#: src/readelf.c:402
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Sección de depuración DWARF desconocida `%s'.\n"
-#: src/readelf.c:465
+#: src/readelf.c:466
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "no se puede crear descriptor ELF: %s"
-#: src/readelf.c:477
+#: src/readelf.c:478
#, 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:482
+#: src/readelf.c:483
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:574
+#: src/readelf.c:575
#, c-format
msgid "cannot stat input file"
msgstr "no sepudo stat archivo de entrada"
-#: src/readelf.c:576
+#: src/readelf.c:577
#, c-format
msgid "input file is empty"
msgstr "archivo de entrada vacío"
-#: src/readelf.c:578
+#: src/readelf.c:579
#, c-format
msgid "failed reading '%s': %s"
msgstr "Falló lectura de '%s': %s"
-#: src/readelf.c:614
+#: src/readelf.c:615
#, c-format
msgid "cannot read ELF header: %s"
msgstr "no se pudo leer encabezamiento ELF: %s"
-#: src/readelf.c:622
+#: src/readelf.c:623
#, c-format
msgid "cannot create EBL handle"
msgstr "no se puede crear EBL"
-#: src/readelf.c:635
+#: src/readelf.c:636
#, 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:721
+#: src/readelf.c:722
msgid "NONE (None)"
msgstr "NONE (Ninguno)"
-#: src/readelf.c:722
+#: src/readelf.c:723
msgid "REL (Relocatable file)"
msgstr "REL (Fichero reubicable)"
-#: src/readelf.c:723
+#: src/readelf.c:724
msgid "EXEC (Executable file)"
msgstr "EXEC (Fichero ejecutable)"
-#: src/readelf.c:724
+#: src/readelf.c:725
msgid "DYN (Shared object file)"
msgstr "DYN (Fichero objeto compartido)"
-#: src/readelf.c:725
+#: src/readelf.c:726
msgid "CORE (Core file)"
msgstr "CORE (Fichero núcleo)"
-#: src/readelf.c:730
+#: src/readelf.c:731
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS Specific: (%x)\n"
-#: src/readelf.c:732
+#: src/readelf.c:733
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Específico del procesador: (%x)\n"
-#: src/readelf.c:742
+#: src/readelf.c:743
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4254,7 +4259,7 @@ msgstr ""
"Encabezamiento ELF:\n"
" Mágico: "
-#: src/readelf.c:746
+#: src/readelf.c:747
#, c-format
msgid ""
"\n"
@@ -4263,119 +4268,119 @@ msgstr ""
"\n"
" Clase: %s\n"
-#: src/readelf.c:751
+#: src/readelf.c:752
#, c-format
msgid " Data: %s\n"
msgstr " Datos: %s\n"
-#: src/readelf.c:757
+#: src/readelf.c:758
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Versión ident: %hhd %s\n"
-#: src/readelf.c:759 src/readelf.c:776
+#: src/readelf.c:760 src/readelf.c:777
msgid "(current)"
msgstr "(actual)"
-#: src/readelf.c:763
+#: src/readelf.c:764
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:766
+#: src/readelf.c:767
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Versión ABI: %hhd\n"
-#: src/readelf.c:769
+#: src/readelf.c:770
msgid " Type: "
msgstr " Tipo: "
-#: src/readelf.c:772
+#: src/readelf.c:773
#, c-format
msgid " Machine: %s\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:774
+#: src/readelf.c:775
#, c-format
msgid " Version: %d %s\n"
msgstr " Versión: %d %s\n"
-#: src/readelf.c:778
+#: src/readelf.c:779
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:781
+#: src/readelf.c:782
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n"
-#: src/readelf.c:782 src/readelf.c:785
+#: src/readelf.c:783 src/readelf.c:786
msgid "(bytes into file)"
msgstr " (bytes en el archivo)"
-#: src/readelf.c:784
+#: src/readelf.c:785
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n"
-#: src/readelf.c:787
+#: src/readelf.c:788
#, c-format
msgid " Flags: %s\n"
msgstr " Indicadores: %s\n"
-#: src/readelf.c:790
+#: src/readelf.c:791
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n"
-#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811
+#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812
msgid "(bytes)"
msgstr "(bytes)"
-#: src/readelf.c:793
+#: src/readelf.c:794
#, 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:796
+#: src/readelf.c:797
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>"
-#: src/readelf.c:803
+#: src/readelf.c:804
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> in [0].sh_info)"
-#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837
+#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838
msgid " ([0] not available)"
msgstr " ([0] no disponible)"
-#: src/readelf.c:810
+#: src/readelf.c:811
#, 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:813
+#: src/readelf.c:814
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>"
-#: src/readelf.c:820
+#: src/readelf.c:821
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> en [0].sh_size)"
-#: src/readelf.c:833
+#: src/readelf.c:834
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> en [0].sh_link)"
-#: src/readelf.c:841
+#: src/readelf.c:842
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4384,14 +4389,14 @@ msgstr ""
" Índice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n"
"\n"
-#: src/readelf.c:845
+#: src/readelf.c:846
#, 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:877
+#: src/readelf.c:878
#, c-format
msgid ""
"There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4400,11 +4405,11 @@ msgstr ""
"Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:887
+#: src/readelf.c:888
msgid "Section Headers:"
msgstr "encabezamientos de sección:"
-#: src/readelf.c:890
+#: src/readelf.c:891
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4412,7 +4417,7 @@ msgstr ""
"[Nr] Nombre Tipo Dirección Off Tamaño Inf Al "
"Enlace banderas ES"
-#: src/readelf.c:892
+#: src/readelf.c:893
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4420,32 +4425,32 @@ msgstr ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
-#: src/readelf.c:899 src/readelf.c:1052
+#: src/readelf.c:900 src/readelf.c:1053
#, c-format
msgid "cannot get section: %s"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353
-#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553
-#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244
-#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588
-#: src/unstrip.c:1778
+#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353
+#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558
+#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250
+#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593
+#: src/unstrip.c:1782
#, c-format
msgid "cannot get section header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:964
+#: src/readelf.c:965
msgid "Program Headers:"
msgstr "encabezamientos de programa:"
-#: src/readelf.c:966
+#: src/readelf.c:967
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:969
+#: src/readelf.c:970
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4453,12 +4458,12 @@ 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:1009
+#: src/readelf.c:1010
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Solicitando intérprete de programa: %s]\n"
-#: src/readelf.c:1030
+#: src/readelf.c:1031
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4468,12 +4473,12 @@ msgstr ""
" Sección para asignación de segmento:\n"
" Secciones de segmento..."
-#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870
+#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883
#, c-format
msgid "cannot get program header: %s"
msgstr "no se puede obtener memoria para encabezamiento del programa: %s"
-#: src/readelf.c:1175
+#: src/readelf.c:1176
#, c-format
msgid ""
"\n"
@@ -4488,7 +4493,7 @@ msgstr[1] ""
"\n"
"Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1180
+#: src/readelf.c:1181
#, c-format
msgid ""
"\n"
@@ -4503,15 +4508,15 @@ msgstr[1] ""
"\n"
"Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1188
+#: src/readelf.c:1189
msgid "<INVALID SYMBOL>"
msgstr "<SÍMBOLO INVÁLIDO>"
-#: src/readelf.c:1202
+#: src/readelf.c:1203
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÁLIDA>"
-#: src/readelf.c:1353
+#: src/readelf.c:1354
#, c-format
msgid ""
"\n"
@@ -4532,36 +4537,36 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%"
"2u] '%s'\n"
-#: src/readelf.c:1365
+#: src/readelf.c:1366
msgid " Type Value\n"
msgstr " Tipo Valor\n"
-#: src/readelf.c:1389
+#: src/readelf.c:1390
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteca compartida: [%s]\n"
-#: src/readelf.c:1394
+#: src/readelf.c:1395
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Nombre-so de la biblioteca: [%s]\n"
-#: src/readelf.c:1399
+#: src/readelf.c:1400
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath de la biblioteca: [%s]\n"
-#: src/readelf.c:1404
+#: src/readelf.c:1405
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Ruta de ejecución de la biblioteca: [%s]\n"
-#: src/readelf.c:1424
+#: src/readelf.c:1425
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bytes)\n"
-#: src/readelf.c:1534 src/readelf.c:1720
+#: src/readelf.c:1535 src/readelf.c:1721
#, c-format
msgid ""
"\n"
@@ -4570,7 +4575,7 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:1552 src/readelf.c:1737
+#: src/readelf.c:1553 src/readelf.c:1738
#, c-format
msgid ""
"\n"
@@ -4589,7 +4594,7 @@ msgstr[1] ""
"Sección de reubicación [%2zu] '%s' para sección [%2u] '%s' en compensación %"
"#0<PRIx64> contiene entradas %d:\n"
-#: src/readelf.c:1567
+#: src/readelf.c:1568
#, c-format
msgid ""
"\n"
@@ -4606,29 +4611,29 @@ msgstr[1] ""
"Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene "
"entradas %d:\n"
-#: src/readelf.c:1577
+#: src/readelf.c:1578
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:1579
+#: src/readelf.c:1580
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674
-#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831
-#: src/readelf.c:1850 src/readelf.c:1863
+#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675
+#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832
+#: src/readelf.c:1851 src/readelf.c:1864
msgid "<INVALID RELOC>"
msgstr "<REUBIC INVÁLIDA>"
-#: src/readelf.c:1749
+#: src/readelf.c:1750
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:1751
+#: src/readelf.c:1752
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:1952
+#: src/readelf.c:1953
#, c-format
msgid ""
"\n"
@@ -4643,40 +4648,40 @@ msgstr[1] ""
"\n"
"La tabla de símbolos [%2u] '%s' contiene entradas %u:\n"
-#: src/readelf.c:1958
+#: src/readelf.c:1959
#, 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:1968
+#: src/readelf.c:1969
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:1970
+#: src/readelf.c:1971
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:1990
+#: src/readelf.c:1991
#, 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:2078
+#: src/readelf.c:2079
#, c-format
msgid "bad dynamic symbol"
msgstr "símbolo dinámico erróneo"
-#: src/readelf.c:2160
+#: src/readelf.c:2161
msgid "none"
msgstr "nada"
-#: src/readelf.c:2177
+#: src/readelf.c:2178
msgid "| <unknown>"
msgstr "| <desconocido>"
-#: src/readelf.c:2202
+#: src/readelf.c:2203
#, c-format
msgid ""
"\n"
@@ -4697,17 +4702,17 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%"
"2u] '%s'\n"
-#: src/readelf.c:2225
+#: src/readelf.c:2226
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n"
-#: src/readelf.c:2238
+#: src/readelf.c:2239
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n"
-#: src/readelf.c:2269
+#: src/readelf.c:2270
#, c-format
msgid ""
"\n"
@@ -4728,18 +4733,18 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%"
"2u] '%s'\n"
-#: src/readelf.c:2299
+#: src/readelf.c:2300
#, 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:2314
+#: src/readelf.c:2315
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Principal %d: %s\n"
-#: src/readelf.c:2546
+#: src/readelf.c:2547
#, c-format
msgid ""
"\n"
@@ -4760,15 +4765,15 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%"
"2u] '%s'"
-#: src/readelf.c:2576
+#: src/readelf.c:2577
msgid " 0 *local* "
msgstr " 0 *local* "
-#: src/readelf.c:2581
+#: src/readelf.c:2582
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:2612
+#: src/readelf.c:2613
#, c-format
msgid ""
"\n"
@@ -4793,36 +4798,36 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%"
"2u] '%s'\n"
-#: src/readelf.c:2636
+#: src/readelf.c:2637
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Longitud Número % of total Cobertura\n"
-#: src/readelf.c:2638
+#: src/readelf.c:2639
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:2645
+#: src/readelf.c:2646
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:2658
+#: src/readelf.c:2659
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
-" unsuccessful lookup: %f\n"
+"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
" Número promedio de pruebas: búsqueda exitosa: %f\n"
" búsqueda sin éxito: %f\n"
-#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759
+#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760
#, 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:2813
+#: src/readelf.c:2814
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4832,7 +4837,7 @@ msgstr ""
" Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo "
"cambio de dispersión: %u\n"
-#: src/readelf.c:2887
+#: src/readelf.c:2888
#, c-format
msgid ""
"\n"
@@ -4849,7 +4854,7 @@ msgstr[1] ""
"Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> "
"contiene entradas %d:\n"
-#: src/readelf.c:2901
+#: src/readelf.c:2902
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4857,7 +4862,7 @@ msgstr ""
" Biblioteca Marca de tiempo Indicadores "
"de versión de suma de verificación"
-#: src/readelf.c:2951
+#: src/readelf.c:2952
#, c-format
msgid ""
"\n"
@@ -4868,140 +4873,140 @@ msgstr ""
"Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con "
"desplazamiento %#0<PRIx64>:\n"
-#: src/readelf.c:2967
+#: src/readelf.c:2968
msgid " Owner Size\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:2993
+#: src/readelf.c:2994
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
-#: src/readelf.c:3025
+#: src/readelf.c:3026
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
-#: src/readelf.c:3030
+#: src/readelf.c:3031
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3065
+#: src/readelf.c:3066
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3068
+#: src/readelf.c:3069
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3071
+#: src/readelf.c:3072
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3078
+#: src/readelf.c:3079
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3081
+#: src/readelf.c:3082
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3117
+#: src/readelf.c:3118
#, c-format
msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3120
+#: src/readelf.c:3121
#, c-format
msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3125
+#: src/readelf.c:3126
#, c-format
msgid "%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3128
+#: src/readelf.c:3129
#, c-format
msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3134
+#: src/readelf.c:3135
#, c-format
msgid "%s+%#<PRIx64> <%s>"
msgstr "%s+%#<PRIx64> <%s>"
-#: src/readelf.c:3137
+#: src/readelf.c:3138
#, c-format
msgid "%s+%#0*<PRIx64> <%s>"
msgstr "%s+%#0*<PRIx64> <%s>"
-#: src/readelf.c:3141
+#: src/readelf.c:3142
#, c-format
msgid "%#<PRIx64> <%s>"
msgstr "%#<PRIx64> <%s>"
-#: src/readelf.c:3144
+#: src/readelf.c:3145
#, c-format
msgid "%#0*<PRIx64> <%s>"
msgstr "%#0*<PRIx64> <%s>"
-#: src/readelf.c:3149
+#: src/readelf.c:3150
#, c-format
msgid "%s+%#<PRIx64>"
msgstr "%s+%#<PRIx64>"
-#: src/readelf.c:3152
+#: src/readelf.c:3153
#, c-format
msgid "%s+%#0*<PRIx64>"
msgstr "%s+%#0*<PRIx64>"
-#: src/readelf.c:3260
+#: src/readelf.c:3284
#, c-format
msgid "unknown tag %hx"
msgstr "etiqueta %hx desconocida"
-#: src/readelf.c:3262
+#: src/readelf.c:3286
#, c-format
msgid "unknown user tag %hx"
msgstr "Usuario de etiqueta %hx desconocido "
-#: src/readelf.c:3480
+#: src/readelf.c:3510
#, c-format
msgid "unknown attribute %hx"
msgstr "atributo de sección %hx desconocido"
-#: src/readelf.c:3483
+#: src/readelf.c:3513
#, c-format
msgid "unknown user attribute %hx"
msgstr "Atributo de usuario desconocido %hx"
-#: src/readelf.c:3529
+#: src/readelf.c:3563
#, c-format
msgid "unknown form %<PRIx64>"
msgstr "Forma %<PRIx64> desconocida"
-#: src/readelf.c:3763
+#: src/readelf.c:3797
msgid "empty block"
msgstr "bloque vacío"
-#: src/readelf.c:3766
+#: src/readelf.c:3800
#, c-format
msgid "%zu byte block:"
msgstr "bloque de byte %zu:"
-#: src/readelf.c:4175
+#: src/readelf.c:4222
#, c-format
msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4188
+#: src/readelf.c:4235
#, c-format
msgid ""
"\n"
@@ -5012,7 +5017,7 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [ Código]\n"
-#: src/readelf.c:4195
+#: src/readelf.c:4242
#, c-format
msgid ""
"\n"
@@ -5021,30 +5026,30 @@ msgstr ""
"\n"
"Sección de abreviatura en compensación %<PRIu64>:\n"
-#: src/readelf.c:4208
+#: src/readelf.c:4255
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** error en lectura de abreviatura: %s\n"
-#: src/readelf.c:4224
+#: src/readelf.c:4271
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "yes"
msgstr "sí"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "no"
msgstr "no"
-#: src/readelf.c:4263
+#: src/readelf.c:4310
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_aranges: %s"
-#: src/readelf.c:4268
+#: src/readelf.c:4315
#, c-format
msgid ""
"\n"
@@ -5059,12 +5064,12 @@ msgstr[1] ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n"
-#: src/readelf.c:4298
+#: src/readelf.c:4345
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:4300
+#: src/readelf.c:4347
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5072,13 +5077,13 @@ msgstr ""
" Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: %"
"6<PRId64>\n"
-#: src/readelf.c:4319
+#: src/readelf.c:4366
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897
-#: src/readelf.c:5992 src/readelf.c:6164
+#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079
+#: src/readelf.c:6178 src/readelf.c:6350
#, c-format
msgid ""
"\n"
@@ -5087,32 +5092,32 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:4338 src/readelf.c:5911
+#: src/readelf.c:4385 src/readelf.c:6097
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÁLIDOS>\n"
-#: src/readelf.c:4360 src/readelf.c:5933
+#: src/readelf.c:4407 src/readelf.c:6119
#, c-format
msgid " [%6tx] base address %s\n"
msgstr " [%6tx] (dirección base) %s\n"
-#: src/readelf.c:4371
+#: src/readelf.c:4418
#, c-format
msgid " [%6tx] %s..%s\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:4373
+#: src/readelf.c:4420
#, c-format
msgid " %s..%s\n"
msgstr " %s..%s\n"
-#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332
+#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518
#, c-format
msgid "cannot get %s content: %s"
msgstr "No se puede obtener el contenido %s: %s"
-#: src/readelf.c:4806
+#: src/readelf.c:4853
#, c-format
msgid ""
"\n"
@@ -5122,12 +5127,12 @@ msgstr ""
"Sección de información de marco de llamada [%2zu] '%s' en compensación %"
"#<PRIx64>:\n"
-#: src/readelf.c:4833 src/readelf.c:5486
+#: src/readelf.c:4881 src/readelf.c:5615
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:4855
+#: src/readelf.c:4903
#, c-format
msgid ""
"\n"
@@ -5136,50 +5141,50 @@ msgstr ""
"\n"
" [%6tx] Terminator cero\n"
-#: src/readelf.c:4924
+#: src/readelf.c:4987
#, c-format
msgid "invalid augmentation length"
msgstr "longitud de aumento inválida"
-#: src/readelf.c:4936
+#: src/readelf.c:4999
msgid "FDE address encoding: "
msgstr "Codificación de dirección FDE:"
-#: src/readelf.c:4942
+#: src/readelf.c:5005
msgid "LSDA pointer encoding: "
msgstr "Codificación de puntero LSDA:"
-#: src/readelf.c:5034
+#: src/readelf.c:5101
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5041
+#: src/readelf.c:5108
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5068
+#: src/readelf.c:5135
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr "Puntero %-26sLSDA: %#<PRIx64>\n"
-#: src/readelf.c:5114
+#: src/readelf.c:5182
#, c-format
msgid "cannot get attribute code: %s"
msgstr "No se puede obtener código de atributo: %s"
-#: src/readelf.c:5122
+#: src/readelf.c:5190
#, c-format
msgid "cannot get attribute form: %s"
msgstr "No se puede obtener forma de atributo: %s"
-#: src/readelf.c:5135
+#: src/readelf.c:5203
#, c-format
msgid "cannot get attribute value: %s"
msgstr "No se puede obtener valor: %s"
-#: src/readelf.c:5331
+#: src/readelf.c:5428
#, c-format
msgid ""
"\n"
@@ -5190,7 +5195,20 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:5356
+#: src/readelf.c:5458
+#, c-format
+msgid ""
+" Type unit at offset %<PRIu64>:\n"
+" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %"
+"<PRIu8>, Offset size: %<PRIu8>\n"
+" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n"
+msgstr ""
+"Tipo de unidad al compensar %<PRIu64>:\n"
+" Versión: %<PRIu16>, Abreviación de sección de compensación: %<PRIu64>, "
+"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:5466
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5201,39 +5219,39 @@ msgstr ""
" 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:5374
+#: src/readelf.c:5489
#, 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:5385
+#: src/readelf.c:5500
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "no se puede obtener DIE en compensación: %s"
-#: src/readelf.c:5393
+#: src/readelf.c:5508
#, 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:5422
+#: src/readelf.c:5537
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "No se puede obtener próximo DIE: %s\n"
-#: src/readelf.c:5429
+#: src/readelf.c:5544
#, c-format
msgid "cannot get next DIE: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:5464
+#: src/readelf.c:5593
#, 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:5477
+#: src/readelf.c:5606
#, c-format
msgid ""
"\n"
@@ -5242,7 +5260,7 @@ msgstr ""
"\n"
"Tabla en compensación %Zu:\n"
-#: src/readelf.c:5529
+#: src/readelf.c:5661
#, c-format
msgid ""
"\n"
@@ -5250,6 +5268,7 @@ msgid ""
" DWARF version: %<PRIuFAST16>\n"
" Prologue length: %<PRIu64>\n"
" Minimum instruction length: %<PRIuFAST8>\n"
+" Maximum operations per instruction: %<PRIuFAST8>\n"
" Initial value if '%s': %<PRIuFAST8>\n"
" Line base: %<PRIdFAST8>\n"
" Line range: %<PRIuFAST8>\n"
@@ -5258,30 +5277,31 @@ msgid ""
"Opcodes:\n"
msgstr ""
"\n"
-" Longitud: %<PRIu64>\n"
+" Longitud: %<PRIu64>\n"
" Versión DWARF: %<PRIuFAST16>\n"
-" Longitud de prólogo: %<PRIu64>\n"
+" Longitud de prólogo: %<PRIu64>\n"
" Longitud de instrucción mínima: %<PRIuFAST8>\n"
+" Máximo operaciones por instrucción: %<PRIuFAST8>\n"
" Valor inicial si '%s': %<PRIuFAST8>\n"
-" Base de línea: %<PRIdFAST8>\n"
-" Rango de línea: %<PRIuFAST8>\n"
-" Base de código operativo: %<PRIuFAST8>\n"
+" Base de línea: %<PRIdFAST8>\n"
+" Rango de línea: %<PRIuFAST8>\n"
+" Base de código operativo: %<PRIuFAST8>\n"
"\n"
"Códigos operativos:\n"
-#: src/readelf.c:5548
+#: src/readelf.c:5682
#, 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:5563
+#: src/readelf.c:5697
#, 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:5571
+#: src/readelf.c:5705
msgid ""
"\n"
"Directory table:"
@@ -5289,7 +5309,7 @@ msgstr ""
"\n"
"Tabla de Directorio:"
-#: src/readelf.c:5587
+#: src/readelf.c:5721
msgid ""
"\n"
"File name table:\n"
@@ -5299,7 +5319,7 @@ msgstr ""
"Tabla de nombre de archivo:\n"
" Directorio de entrada Tiempo Tamaño Nombre"
-#: src/readelf.c:5616
+#: src/readelf.c:5750
msgid ""
"\n"
"Line number statements:"
@@ -5307,127 +5327,153 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:5677
+#: src/readelf.c:5824
+#, 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:5829
#, 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:5697
+#: src/readelf.c:5849
#, c-format
msgid " extended opcode %u: "
msgstr " Código operativo extendido %u: "
-#: src/readelf.c:5702
+#: src/readelf.c:5854
msgid "end of sequence"
msgstr "Fin de secuencia"
-#: src/readelf.c:5717
+#: src/readelf.c:5871
#, c-format
msgid "set address to %s\n"
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:5738
+#: src/readelf.c:5892
#, 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:5747
+#: src/readelf.c:5905
+#, c-format
+msgid " set discriminator to %u\n"
+msgstr " establecer discriminador a %u\n"
+
+#: src/readelf.c:5910
msgid "unknown opcode"
msgstr "código operativo desconocido "
-#: src/readelf.c:5759
+#: src/readelf.c:5922
msgid " copy"
msgstr "Copiar"
-#: src/readelf.c:5769
+#: src/readelf.c:5933
+#, 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:5937
#, c-format
msgid "advance address by %u to %s\n"
msgstr "Dirección de avance por %u a %s\n"
-#: src/readelf.c:5780
+#: src/readelf.c:5948
#, 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:5788
+#: src/readelf.c:5956
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5798
+#: src/readelf.c:5966
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:5805
+#: src/readelf.c:5973
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\n"
-#: src/readelf.c:5811
+#: src/readelf.c:5979
msgid " set basic block flag"
msgstr "Establecer bandera de bloque básico"
-#: src/readelf.c:5821
+#: src/readelf.c:5988
+#, 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:5992
#, 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:5837
+#: src/readelf.c:6010
#, 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:5846
+#: src/readelf.c:6019
msgid " set prologue end flag"
msgstr " Establecer bandera prologue_end"
-#: src/readelf.c:5851
+#: src/readelf.c:6024
msgid " set epilogue begin flag"
msgstr " Establecer bandera epilogue_begin"
-#: src/readelf.c:5860
+#: src/readelf.c:6033
+#, c-format
+msgid " set isa to %u\n"
+msgstr " establecer isa para %u\n"
+
+#: src/readelf.c:6042
#, 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:5892
+#: src/readelf.c:6074
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:5947
+#: src/readelf.c:6133
#, c-format
msgid " [%6tx] %s..%s"
msgstr " [%6tx] %s..%s"
-#: src/readelf.c:5949
+#: src/readelf.c:6135
#, c-format
msgid " %s..%s"
msgstr " %s..%s"
-#: src/readelf.c:6002
+#: src/readelf.c:6188
#, 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:6081
+#: src/readelf.c:6267
#, 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:6149
+#: src/readelf.c:6335
#, 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:6188
+#: src/readelf.c:6374
#, c-format
msgid ""
"\n"
@@ -5438,12 +5484,12 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" %*s String\n"
-#: src/readelf.c:6202
+#: src/readelf.c:6388
#, c-format
msgid " *** error while reading strings: %s\n"
msgstr " *** error en lectura de cadenas: %s\n"
-#: src/readelf.c:6222
+#: src/readelf.c:6408
#, c-format
msgid ""
"\n"
@@ -5452,7 +5498,7 @@ msgstr ""
"\n"
"Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:6324
+#: src/readelf.c:6510
#, c-format
msgid ""
"\n"
@@ -5461,22 +5507,22 @@ msgstr ""
"\n"
"Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:6347
+#: src/readelf.c:6533
#, c-format
msgid " LPStart encoding: %#x "
msgstr "Codificación LPStart: %#x "
-#: src/readelf.c:6359
+#: src/readelf.c:6545
#, c-format
msgid " TType encoding: %#x "
msgstr "Codificación TType: %#x "
-#: src/readelf.c:6373
+#: src/readelf.c:6559
#, c-format
msgid " Call site encoding: %#x "
msgstr "Codificación de sitio de llamada: %#x "
-#: src/readelf.c:6386
+#: src/readelf.c:6572
msgid ""
"\n"
" Call site table:"
@@ -5484,7 +5530,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:6400
+#: src/readelf.c:6586
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5497,22 +5543,22 @@ msgstr ""
" Landing pad: %#<PRIx64>\n"
" Action: %u\n"
-#: src/readelf.c:6460
+#: src/readelf.c:6646
#, c-format
msgid "invalid TType encoding"
msgstr "Codificación TType inválida"
-#: src/readelf.c:6484
+#: src/readelf.c:6671
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "no se puede depurar descriptor de contexto: %s"
-#: src/readelf.c:6620 src/readelf.c:7221
+#: src/readelf.c:6810 src/readelf.c:7411
#, c-format
msgid "cannot convert core note data: %s"
msgstr "no es posible convertir datos de la nota principal: %s"
-#: src/readelf.c:6961
+#: src/readelf.c:7151
#, c-format
msgid ""
"\n"
@@ -5521,21 +5567,21 @@ msgstr ""
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:7320
+#: src/readelf.c:7510
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:7338
+#: src/readelf.c:7528
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:7372
+#: src/readelf.c:7562
#, 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:7399
+#: src/readelf.c:7589
#, c-format
msgid ""
"\n"
@@ -5544,7 +5590,7 @@ msgstr ""
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:7422
+#: src/readelf.c:7612
#, c-format
msgid ""
"\n"
@@ -5553,7 +5599,7 @@ msgstr ""
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:7468
+#: src/readelf.c:7658
#, c-format
msgid ""
"\n"
@@ -5562,12 +5608,12 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:7474 src/readelf.c:7497
+#: src/readelf.c:7664 src/readelf.c:7687
#, 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:7478
+#: src/readelf.c:7668
#, c-format
msgid ""
"\n"
@@ -5577,7 +5623,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación %"
"#0<PRIx64>:\n"
-#: src/readelf.c:7491
+#: src/readelf.c:7681
#, c-format
msgid ""
"\n"
@@ -5586,7 +5632,7 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:7501
+#: src/readelf.c:7691
#, c-format
msgid ""
"\n"
@@ -5596,7 +5642,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación %"
"#0<PRIx64>:\n"
-#: src/readelf.c:7549
+#: src/readelf.c:7739
#, c-format
msgid ""
"\n"
@@ -5605,7 +5651,7 @@ msgstr ""
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:7576
+#: src/readelf.c:7766
#, c-format
msgid ""
"\n"
@@ -5614,12 +5660,12 @@ msgstr ""
"\n"
"sección '%s' no existe"
-#: src/readelf.c:7637
+#: src/readelf.c:7827
#, 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:7640
+#: src/readelf.c:7830
#, c-format
msgid ""
"\n"
@@ -5628,7 +5674,7 @@ msgstr ""
"\n"
"Archivo '%s' no tiene índice de símbolo\n"
-#: src/readelf.c:7644
+#: src/readelf.c:7834
#, c-format
msgid ""
"\n"
@@ -5637,12 +5683,12 @@ msgstr ""
"\n"
"Índice de archivo '%s' tiene %Zu entradas:\n"
-#: src/readelf.c:7662
+#: src/readelf.c:7852
#, 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:7667
+#: src/readelf.c:7857
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Miembro de archivo contiene '%s':\n"
@@ -6004,7 +6050,7 @@ msgstr "no se puede crear el encabezamiento ELF: %s"
msgid "cannot copy ELF header: %s"
msgstr "no se puede copiar encabezamiento ELF: %s"
-#: src/unstrip.c:264 src/unstrip.c:1817
+#: src/unstrip.c:264 src/unstrip.c:1830
#, c-format
msgid "cannot create program headers: %s"
msgstr "No pueden crear encabezamientos de programa: %s"
@@ -6019,12 +6065,12 @@ msgstr "no puede copiar encabezamiento de programa: %s"
msgid "cannot copy section header: %s"
msgstr "no se puede copiar encabezamiento de sección: %s"
-#: src/unstrip.c:283 src/unstrip.c:1505
+#: src/unstrip.c:283 src/unstrip.c:1511
#, c-format
msgid "cannot get section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/unstrip.c:285 src/unstrip.c:1507
+#: src/unstrip.c:285 src/unstrip.c:1513
#, c-format
msgid "cannot copy section data: %s"
msgstr "no pueden copiar datos de sección: %s"
@@ -6034,125 +6080,136 @@ msgstr "no pueden copiar datos de sección: %s"
msgid "cannot create directory '%s'"
msgstr "no se puede crear el directorio '%s'"
-#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540
+#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "no se puede obtener entrada de tabla de símbolos: %s"
-#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613
-#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715
+#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616
+#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720
#, c-format
msgid "cannot update symbol table: %s"
msgstr "no se puede actualizar tabla de símbolos: %s"
-#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209
-#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791
+#: src/unstrip.c:375
#, c-format
msgid "cannot update section header: %s"
msgstr "no se puede actualizar encabezamiento de sección: %s"
-#: src/unstrip.c:408 src/unstrip.c:419
+#: src/unstrip.c:414 src/unstrip.c:425
#, c-format
msgid "cannot update relocation: %s"
msgstr "no se puede actualizar reubicación: %s"
-#: src/unstrip.c:507
+#: src/unstrip.c:512
#, c-format
msgid "cannot get symbol version: %s"
msgstr "no se puede obtener versión de símbolo: %s"
-#: src/unstrip.c:519
+#: src/unstrip.c:524
#, 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:769
+#: src/unstrip.c:772
#, c-format
msgid "invalid string offset in symbol [%Zu]"
msgstr "compensación de cadena inválida en símbolo [%Zu]"
-#: src/unstrip.c:911 src/unstrip.c:1248
+#: src/unstrip.c:914 src/unstrip.c:1254
#, c-format
msgid "cannot read section [%Zu] name: %s"
msgstr "no se puede leer nombre [%Zu]: %s"
-#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004
+#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "no se puede leer sección '.gnu.prelink_undo': %s"
-#: src/unstrip.c:992
+#: src/unstrip.c:995
#, c-format
msgid "invalid contents in '%s' section"
msgstr "contenido inválido en sección '%s'"
-#: src/unstrip.c:1047 src/unstrip.c:1370
+#: src/unstrip.c:1050 src/unstrip.c:1376
#, c-format
msgid "cannot find matching section for [%Zu] '%s'"
msgstr "no se puede hallar sección coincidente para [%Zu] '%s'"
-#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451
+#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457
#, 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:1195
+#: src/unstrip.c:1198
#, 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:1223 src/unstrip.c:1227
+#: src/unstrip.c:1225 src/unstrip.c:1229
#, 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:1231 src/unstrip.c:1235 src/unstrip.c:1466
+#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472
#, c-format
msgid "cannot get section count: %s"
msgstr "No se puede obtener cuenta de sección: %s"
-#: src/unstrip.c:1293 src/unstrip.c:1385
+#: src/unstrip.c:1240
+#, 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:1299 src/unstrip.c:1391
#, 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:1445
+#: src/unstrip.c:1451
#, c-format
msgid "cannot add new section: %s"
msgstr "No se puede añadir nueva sección: %s"
-#: src/unstrip.c:1548
+#: src/unstrip.c:1553
#, c-format
msgid "symbol [%Zu] has invalid section index"
msgstr "símbolo [%Zu] tiene índice de sección inválido"
-#: src/unstrip.c:1800
+#: src/unstrip.c:1791
+#, c-format
+msgid "cannot read section data: %s"
+msgstr "no se puede leer la sección de datos: %s"
+
+#: src/unstrip.c:1812
#, c-format
msgid "cannot get ELF header: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/unstrip.c:1827
+#: src/unstrip.c:1840
#, c-format
msgid "cannot update program header: %s"
msgstr "no se puede actualizar encabezamiento de programa: %s"
-#: src/unstrip.c:1832 src/unstrip.c:1911
+#: src/unstrip.c:1845 src/unstrip.c:1924
#, c-format
msgid "cannot write output file: %s"
msgstr "no se puede escribir al archivo de salida: %s"
-#: src/unstrip.c:1880
+#: src/unstrip.c:1893
#, 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:1883
+#: src/unstrip.c:1896
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -6160,58 +6217,58 @@ msgstr ""
"Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere "
"prelink -u"
-#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034
+#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "no se puede crear un descriptor ELF: %s"
-#: src/unstrip.c:1960
+#: src/unstrip.c:1973
#, c-format
msgid "'%s' and '%s' do not seem to match"
msgstr "Al parecer '%s' y '%s'no coinciden"
-#: src/unstrip.c:1991
+#: src/unstrip.c:2004
#, 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:1995
+#: src/unstrip.c:2008
#, 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:2010
+#: src/unstrip.c:2023
#, 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:2014
+#: src/unstrip.c:2027
#, 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:2027
+#: src/unstrip.c:2040
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "No se obtuvo el archivo '%s' de módulo '%s' "
-#: src/unstrip.c:2058
+#: src/unstrip.c:2071
#, 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:2191
+#: src/unstrip.c:2204
#, c-format
msgid "no matching modules found"
msgstr "No se encontraron módulos coincidentes"
-#: src/unstrip.c:2200
+#: src/unstrip.c:2213
#, c-format
msgid "matched more than one module"
msgstr "coincidió con más de un módulo"
-#: src/unstrip.c:2247
+#: src/unstrip.c:2260
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -6219,7 +6276,7 @@ msgstr ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
-#: src/unstrip.c:2248
+#: src/unstrip.c:2261
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 06b8b3f8..444562e5 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ja\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-05-03 14:14-0700\n"
+"POT-Creation-Date: 2010-06-28 12:08-0700\n"
"PO-Revision-Date: 2009-09-20 15:32+0900\n"
"Last-Translator: Hyu_gabaru Ryu_ichi <[email protected]>\n"
"Language-Team: Japanese <[email protected]>\n"
@@ -18,8 +18,8 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822
-#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295
+#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823
+#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308
#, c-format
msgid "memory exhausted"
msgstr "メモリー消費済み"
@@ -205,7 +205,7 @@ msgstr ".debug_ranges セクションがありません"
msgid "invalid CFI section"
msgstr "不当な CFI セクション"
-#: libdwfl/argp-std.c:67 src/unstrip.c:2237
+#: libdwfl/argp-std.c:67 src/unstrip.c:2250
msgid "Input selection options:"
msgstr "選択オプションを入力してください:"
@@ -360,6 +360,10 @@ msgstr "不当な ELF ファイル"
msgid "cannot handle DWARF type description"
msgstr "Elf 記述子を生成できません: %s"
+#: libdwfl/libdwflP.h:97
+msgid "ELF file does not match build ID"
+msgstr ""
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "バックエンドがありません"
@@ -420,7 +424,7 @@ msgstr "ソース演算子の大きさが無効"
msgid "invalid size of destination operand"
msgstr "宛先演算子の大きさが無効"
-#: libelf/elf_error.c:108 src/readelf.c:4779
+#: libelf/elf_error.c:108 src/readelf.c:4826
#, c-format
msgid "invalid encoding"
msgstr "無効なエンコード"
@@ -502,7 +506,7 @@ msgstr "データ/scnが不整合です"
msgid "invalid section header"
msgstr "不当なセクションヘッダー"
-#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343
+#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529
#, c-format
msgid "invalid data"
msgstr "不当なデータ"
@@ -586,7 +590,7 @@ msgstr ""
#: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
-#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227
+#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227
#: src/strip.c:204 src/unstrip.c:234
#, c-format
msgid ""
@@ -600,7 +604,7 @@ msgstr ""
#: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
-#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232
+#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232
#: src/strip.c:209 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
@@ -616,12 +620,12 @@ msgstr ""
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr ""
-#: src/addr2line.c:461
+#: src/addr2line.c:469
#, c-format
msgid "cannot find symbol '%s'"
msgstr ""
-#: src/addr2line.c:466
+#: src/addr2line.c:474
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr ""
@@ -1005,8 +1009,8 @@ msgstr ""
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900
-#: src/unstrip.c:1929
+#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' を開けません"
@@ -1063,7 +1067,7 @@ msgstr "ELF ファイルが gABI/psABI 仕様へ準拠しているかの厳密�
msgid "FILE..."
msgstr "ふぁいる..."
-#: src/elflint.c:159 src/readelf.c:272
+#: src/elflint.c:159 src/readelf.c:273
#, c-format
msgid "cannot open input file"
msgstr "入力ファイルを開けません"
@@ -1082,7 +1086,7 @@ msgstr "Elf 記述子を閉じている時にエラー: %s\n"
msgid "No errors"
msgstr "エラーはありません"
-#: src/elflint.c:223 src/readelf.c:425
+#: src/elflint.c:223 src/readelf.c:426
msgid "Missing file name.\n"
msgstr "ファイル名がありません。\n"
@@ -3235,7 +3239,7 @@ msgstr ""
"警告: `%1$s の大きさが %3$s の %2$<PRIu64> から %5$s の %4$<PRIu64> に変更さ"
"れました"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "セクション数を決定できません: %s"
@@ -3473,7 +3477,7 @@ msgstr "内部エラー: 非 nobits セクションが nobits セクションに
msgid "cannot get header of 0th section: %s"
msgstr "0番目のセクションのヘッダーを得られません: %s"
-#: src/ldgeneric.c:6941 src/unstrip.c:1808
+#: src/ldgeneric.c:6941 src/unstrip.c:1820
#, c-format
msgid "cannot update ELF header: %s"
msgstr "ELF ヘッダーを更新できません: %s"
@@ -3673,11 +3677,11 @@ msgstr "%s%s%s: ファイル形式を認識できません"
msgid "cannot create search tree"
msgstr "検索ツリーを生成できません"
-#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885
-#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549
-#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265
-#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939
-#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604
+#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886
+#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550
+#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266
+#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940
+#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794
#: src/size.c:425 src/size.c:499 src/strip.c:483
#, c-format
msgid "cannot get section header string table index"
@@ -3766,7 +3770,7 @@ msgstr ""
msgid "Show information from FILEs (a.out by default)."
msgstr ""
-#: src/objdump.c:236 src/readelf.c:430
+#: src/objdump.c:236 src/readelf.c:431
msgid "No operation specified.\n"
msgstr "操作が指定されていません。\n"
@@ -3775,11 +3779,11 @@ msgstr "操作が指定されていません。\n"
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818
+#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819
msgid "INVALID SYMBOL"
msgstr "不当なシンボル"
-#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851
+#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852
msgid "INVALID SECTION"
msgstr "不当なセクション"
@@ -3921,87 +3925,87 @@ msgstr "DWARFデータ中のアドレスのためのシンボル名を探さな�
msgid "Print information from ELF file in human-readable form."
msgstr "ELF ファイルから人間が読める形で情報を印刷する。"
-#: src/readelf.c:401
+#: src/readelf.c:402
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "不明な DWARF デバッグセクション `%s'.\n"
-#: src/readelf.c:465
+#: src/readelf.c:466
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "Elf 記述子を生成できません: %s"
-#: src/readelf.c:477
+#: src/readelf.c:478
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "'%s' はアーカイブではなく、アーカイブ索引を印刷できません"
-#: src/readelf.c:482
+#: src/readelf.c:483
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "Elf 記述子を閉じている時にエラー: %s"
-#: src/readelf.c:574
+#: src/readelf.c:575
#, c-format
msgid "cannot stat input file"
msgstr "入力ファイルを stat できません"
-#: src/readelf.c:576
+#: src/readelf.c:577
#, c-format
msgid "input file is empty"
msgstr "入力ファイルが空です"
-#: src/readelf.c:578
+#: src/readelf.c:579
#, c-format
msgid "failed reading '%s': %s"
msgstr "'%s' の読込みに失敗: %s"
-#: src/readelf.c:614
+#: src/readelf.c:615
#, c-format
msgid "cannot read ELF header: %s"
msgstr "ELF ヘッダーが読めません: %s"
-#: src/readelf.c:622
+#: src/readelf.c:623
#, c-format
msgid "cannot create EBL handle"
msgstr "EBL ヘッダーを生成できません"
-#: src/readelf.c:635
+#: src/readelf.c:636
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "セクション数を決定できません: %s"
-#: src/readelf.c:721
+#: src/readelf.c:722
msgid "NONE (None)"
msgstr "なし (なし)"
-#: src/readelf.c:722
+#: src/readelf.c:723
msgid "REL (Relocatable file)"
msgstr "REL (リロケータブルファイル)"
-#: src/readelf.c:723
+#: src/readelf.c:724
msgid "EXEC (Executable file)"
msgstr "(EXEC (実行ファイル)"
-#: src/readelf.c:724
+#: src/readelf.c:725
msgid "DYN (Shared object file)"
msgstr "DYN (共用オブジェクトファイル)"
-#: src/readelf.c:725
+#: src/readelf.c:726
msgid "CORE (Core file)"
msgstr "CORE (コアファイル)"
-#: src/readelf.c:730
+#: src/readelf.c:731
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS 固有: (%x)\n"
-#: src/readelf.c:732
+#: src/readelf.c:733
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "プロセッサー固有: (%x)\n"
-#: src/readelf.c:742
+#: src/readelf.c:743
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4009,7 +4013,7 @@ msgstr ""
"ELF ヘッダー:\n"
" マジック: "
-#: src/readelf.c:746
+#: src/readelf.c:747
#, c-format
msgid ""
"\n"
@@ -4018,117 +4022,117 @@ msgstr ""
"\n"
" クラス: %s\n"
-#: src/readelf.c:751
+#: src/readelf.c:752
#, c-format
msgid " Data: %s\n"
msgstr " データ: %s\n"
-#: src/readelf.c:757
+#: src/readelf.c:758
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " 識別バージョン: %hhd %s\n"
-#: src/readelf.c:759 src/readelf.c:776
+#: src/readelf.c:760 src/readelf.c:777
msgid "(current)"
msgstr "(現在)"
-#: src/readelf.c:763
+#: src/readelf.c:764
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:766
+#: src/readelf.c:767
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ABI バージョン: %hhd\n"
-#: src/readelf.c:769
+#: src/readelf.c:770
msgid " Type: "
msgstr " タイプ: "
-#: src/readelf.c:772
+#: src/readelf.c:773
#, c-format
msgid " Machine: %s\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:774
+#: src/readelf.c:775
#, c-format
msgid " Version: %d %s\n"
msgstr " バージョン: %d %s\n"
-#: src/readelf.c:778
+#: src/readelf.c:779
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " 入口点アドレス : %#<PRIx64>\n"
-#: src/readelf.c:781
+#: src/readelf.c:782
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " プログラムヘッダーの開始: %<PRId64> %s\n"
-#: src/readelf.c:782 src/readelf.c:785
+#: src/readelf.c:783 src/readelf.c:786
msgid "(bytes into file)"
msgstr "(ファイルへのバイト数)"
-#: src/readelf.c:784
+#: src/readelf.c:785
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " セクションヘッダーの開始: %<PRId64> %s\n"
-#: src/readelf.c:787
+#: src/readelf.c:788
#, c-format
msgid " Flags: %s\n"
msgstr " フラグ: %s\n"
-#: src/readelf.c:790
+#: src/readelf.c:791
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " このヘッダーの大きさ: %<PRId16> %s\n"
-#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811
+#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812
msgid "(bytes)"
msgstr "(バイト)"
-#: src/readelf.c:793
+#: src/readelf.c:794
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " プログラムヘッダー項目の大きさ:%<PRId16> %s\n"
-#: src/readelf.c:796
+#: src/readelf.c:797
#, fuzzy, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " プログラムヘッダー項目の数 : %<PRId16>\n"
-#: src/readelf.c:803
+#: src/readelf.c:804
#, fuzzy, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr "([0].sh_link の %<PRIu32>)"
-#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837
+#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838
msgid " ([0] not available)"
msgstr "([0]は使えません)"
-#: src/readelf.c:810
+#: src/readelf.c:811
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " セクションヘッダー項目の大きさ:%<PRId16> %s\n"
-#: src/readelf.c:813
+#: src/readelf.c:814
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " セクションヘッダー項目の数 : %<PRId16>"
-#: src/readelf.c:820
+#: src/readelf.c:821
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " ([0].sh_size の %<PRIu32>)"
-#: src/readelf.c:833
+#: src/readelf.c:834
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr "([0].sh_link の %<PRIu32>)"
-#: src/readelf.c:841
+#: src/readelf.c:842
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4137,7 +4141,7 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: XINDEX%s\n"
"\n"
-#: src/readelf.c:845
+#: src/readelf.c:846
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4146,7 +4150,7 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: %<PRId16>\n"
"\n"
-#: src/readelf.c:877
+#: src/readelf.c:878
#, c-format
msgid ""
"There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4155,11 +4159,11 @@ msgstr ""
"オフセット %2$#<PRIx64> から始まる %1$d 個のセクションヘッダーがあります:\n"
"\n"
-#: src/readelf.c:887
+#: src/readelf.c:888
msgid "Section Headers:"
msgstr "セクションヘッダー:"
-#: src/readelf.c:890
+#: src/readelf.c:891
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4167,7 +4171,7 @@ msgstr ""
"[番] 名前 タイプ アドレス オフセ 大きさ ES フラグLk "
"Inf Al"
-#: src/readelf.c:892
+#: src/readelf.c:893
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4175,31 +4179,31 @@ msgstr ""
"[番] 名前 タイプ アドレス オフセ 大きさ ES "
"フラグLk Inf Al"
-#: src/readelf.c:899 src/readelf.c:1052
+#: src/readelf.c:900 src/readelf.c:1053
#, c-format
msgid "cannot get section: %s"
msgstr "セクションを得られません: %s"
-#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353
-#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553
-#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244
-#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588
-#: src/unstrip.c:1778
+#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353
+#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558
+#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250
+#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593
+#: src/unstrip.c:1782
#, c-format
msgid "cannot get section header: %s"
msgstr "セクションヘッダーを得られません: %s"
-#: src/readelf.c:964
+#: src/readelf.c:965
msgid "Program Headers:"
msgstr "プログラムヘッダー:"
-#: src/readelf.c:966
+#: src/readelf.c:967
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" タイプ オフセ 仮アドレス 物アドレス ファイ量 メモ量 Flg 調整 "
-#: src/readelf.c:969
+#: src/readelf.c:970
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4207,12 +4211,12 @@ msgstr ""
" タイプ オフセ 仮想アドレス 物理アドレス ファイル量メモ"
"量 Flg 調整 "
-#: src/readelf.c:1009
+#: src/readelf.c:1010
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[プログラム割込みを要求: %s]\n"
-#: src/readelf.c:1030
+#: src/readelf.c:1031
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4222,12 +4226,12 @@ msgstr ""
" セクションからセグメントへのマッビング:\n"
" セグメント セクション..."
-#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870
+#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883
#, c-format
msgid "cannot get program header: %s"
msgstr "プログラムヘッダーを得られません: %s"
-#: src/readelf.c:1175
+#: src/readelf.c:1176
#, c-format
msgid ""
"\n"
@@ -4240,7 +4244,7 @@ msgstr[0] ""
"署名 '%3$s' を持つ COMDAT セクショングループ [%1$2zu] '%2$s' には %4$zu 個の"
"項目があります:\n"
-#: src/readelf.c:1180
+#: src/readelf.c:1181
#, c-format
msgid ""
"\n"
@@ -4253,15 +4257,15 @@ msgstr[0] ""
"署名 '%3$s' を持つセクショングループ [%1$2zu] '%2$s' には %4$zu 個の項目があ"
"ります:\n"
-#: src/readelf.c:1188
+#: src/readelf.c:1189
msgid "<INVALID SYMBOL>"
msgstr "<不当なシンボル>"
-#: src/readelf.c:1202
+#: src/readelf.c:1203
msgid "<INVALID SECTION>"
msgstr "<不当なセクション>"
-#: src/readelf.c:1353
+#: src/readelf.c:1354
#, c-format
msgid ""
"\n"
@@ -4277,36 +4281,36 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%"
"2u] '%s'\n"
-#: src/readelf.c:1365
+#: src/readelf.c:1366
msgid " Type Value\n"
msgstr " タイプ 値\n"
-#: src/readelf.c:1389
+#: src/readelf.c:1390
#, c-format
msgid "Shared library: [%s]\n"
msgstr "共用ライブラリー: [%s]\n"
-#: src/readelf.c:1394
+#: src/readelf.c:1395
#, c-format
msgid "Library soname: [%s]\n"
msgstr "ライブラリー so 名: [%s]\n"
-#: src/readelf.c:1399
+#: src/readelf.c:1400
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "ライブラリー rパス: [%s]\n"
-#: src/readelf.c:1404
+#: src/readelf.c:1405
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "ライブラリー run パス: [%s]\n"
-#: src/readelf.c:1424
+#: src/readelf.c:1425
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (バイト)\n"
-#: src/readelf.c:1534 src/readelf.c:1720
+#: src/readelf.c:1535 src/readelf.c:1721
#, c-format
msgid ""
"\n"
@@ -4315,7 +4319,7 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> に不当なシンボルテーブル\n"
-#: src/readelf.c:1552 src/readelf.c:1737
+#: src/readelf.c:1553 src/readelf.c:1738
#, c-format
msgid ""
"\n"
@@ -4330,7 +4334,7 @@ msgstr[0] ""
"オフセット %5$#0<PRIx64> のセクション [%3$2u] '%4$s' 用のリロケーションセク"
"ション [%1$2zu] '%2$s' には %6$d 個の項目があります:\n"
-#: src/readelf.c:1567
+#: src/readelf.c:1568
#, c-format
msgid ""
"\n"
@@ -4343,29 +4347,29 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> のリロケーションセクション [%1$2u] '%2$s' には %4$d "
"個の項目があります:\n"
-#: src/readelf.c:1577
+#: src/readelf.c:1578
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 名前\n"
-#: src/readelf.c:1579
+#: src/readelf.c:1580
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 名前\n"
-#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674
-#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831
-#: src/readelf.c:1850 src/readelf.c:1863
+#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675
+#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832
+#: src/readelf.c:1851 src/readelf.c:1864
msgid "<INVALID RELOC>"
msgstr "<不当なRELOC>"
-#: src/readelf.c:1749
+#: src/readelf.c:1750
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加名\n"
-#: src/readelf.c:1751
+#: src/readelf.c:1752
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加名\n"
-#: src/readelf.c:1952
+#: src/readelf.c:1953
#, c-format
msgid ""
"\n"
@@ -4377,39 +4381,39 @@ msgstr[0] ""
"\n"
"シンボルテーブル [%2u] '%s' には %u 個の項目があります:\n"
-#: src/readelf.c:1958
+#: src/readelf.c:1959
#, 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:1968
+#: src/readelf.c:1969
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " 数 : 値 大き タイプ Bind Vis Ndx 名前\n"
-#: src/readelf.c:1970
+#: src/readelf.c:1971
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " 数 : 値 大き タイプ Bind Vis Ndx 名前\n"
-#: src/readelf.c:1990
+#: src/readelf.c:1991
#, 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:2078
+#: src/readelf.c:2079
#, c-format
msgid "bad dynamic symbol"
msgstr "不正な動的シンボル"
-#: src/readelf.c:2160
+#: src/readelf.c:2161
msgid "none"
msgstr "なし"
-#: src/readelf.c:2177
+#: src/readelf.c:2178
msgid "| <unknown>"
msgstr "| <不明>"
-#: src/readelf.c:2202
+#: src/readelf.c:2203
#, c-format
msgid ""
"\n"
@@ -4425,17 +4429,17 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%"
"2u] '%s'\n"
-#: src/readelf.c:2225
+#: src/readelf.c:2226
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: バージョン: %hu ファイル: %s 数: %hu\n"
-#: src/readelf.c:2238
+#: src/readelf.c:2239
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: 名前: %s フラグ: %s バージョン: %hu\n"
-#: src/readelf.c:2269
+#: src/readelf.c:2270
#, c-format
msgid ""
"\n"
@@ -4451,17 +4455,17 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%"
"2u] '%s'\n"
-#: src/readelf.c:2299
+#: src/readelf.c:2300
#, 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:2314
+#: src/readelf.c:2315
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: 親 %d: %s\n"
-#: src/readelf.c:2546
+#: src/readelf.c:2547
#, c-format
msgid ""
"\n"
@@ -4477,15 +4481,15 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%"
"2u] '%s'"
-#: src/readelf.c:2576
+#: src/readelf.c:2577
msgid " 0 *local* "
msgstr " 0 *ローカル* "
-#: src/readelf.c:2581
+#: src/readelf.c:2582
msgid " 1 *global* "
msgstr " 1 *グローバル* "
-#: src/readelf.c:2612
+#: src/readelf.c:2613
#, c-format
msgid ""
"\n"
@@ -4503,36 +4507,36 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%"
"2u] '%s'\n"
-#: src/readelf.c:2636
+#: src/readelf.c:2637
#, fuzzy, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " 長さ 数 全体の% 範囲 \n"
-#: src/readelf.c:2638
+#: src/readelf.c:2639
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:2645
+#: src/readelf.c:2646
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:2658
-#, c-format
+#: src/readelf.c:2659
+#, fuzzy, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
-" unsuccessful lookup: %f\n"
+"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
" テストの平均数: 検索成功: %f\n"
" 検索失敗: %f\n"
-#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759
+#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "セクションからデータを得られません %d: %s"
-#: src/readelf.c:2813
+#: src/readelf.c:2814
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4542,7 +4546,7 @@ msgstr ""
" ビットマスクの大きさ: %zu バイト %<PRIuFAST32>%% ビット設定 第2ハッシュシフ"
"ト: %u\n"
-#: src/readelf.c:2887
+#: src/readelf.c:2888
#, c-format
msgid ""
"\n"
@@ -4555,7 +4559,7 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> のライブラリー一覧セクション [%1$2zu] '%2$s' には %4"
"$d 個の項目があります:\n"
-#: src/readelf.c:2901
+#: src/readelf.c:2902
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4563,7 +4567,7 @@ msgstr ""
" ライブラリー タイムスタンプ チェックサム バー"
"ジョン フラグ"
-#: src/readelf.c:2951
+#: src/readelf.c:2952
#, c-format
msgid ""
"\n"
@@ -4574,140 +4578,140 @@ msgstr ""
"オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのオブジェクト属性セクション [%"
"1$2zu] '%2$s':\n"
-#: src/readelf.c:2967
+#: src/readelf.c:2968
msgid " Owner Size\n"
msgstr " 所有者 大きさ\n"
-#: src/readelf.c:2993
+#: src/readelf.c:2994
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
-#: src/readelf.c:3025
+#: src/readelf.c:3026
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
-#: src/readelf.c:3030
+#: src/readelf.c:3031
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " ファイル: %11<PRIu32>\n"
-#: src/readelf.c:3065
+#: src/readelf.c:3066
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>、%s\n"
-#: src/readelf.c:3068
+#: src/readelf.c:3069
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3071
+#: src/readelf.c:3072
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3078
+#: src/readelf.c:3079
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3081
+#: src/readelf.c:3082
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3117
+#: src/readelf.c:3118
#, c-format
msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3120
+#: src/readelf.c:3121
#, c-format
msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3125
+#: src/readelf.c:3126
#, c-format
msgid "%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3128
+#: src/readelf.c:3129
#, c-format
msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3134
+#: src/readelf.c:3135
#, c-format
msgid "%s+%#<PRIx64> <%s>"
msgstr "%s+%#<PRIx64> <%s>"
-#: src/readelf.c:3137
+#: src/readelf.c:3138
#, c-format
msgid "%s+%#0*<PRIx64> <%s>"
msgstr "%s+%#0*<PRIx64> <%s>"
-#: src/readelf.c:3141
+#: src/readelf.c:3142
#, c-format
msgid "%#<PRIx64> <%s>"
msgstr "%#<PRIx64> <%s>"
-#: src/readelf.c:3144
+#: src/readelf.c:3145
#, c-format
msgid "%#0*<PRIx64> <%s>"
msgstr "%#0*<PRIx64> <%s>"
-#: src/readelf.c:3149
+#: src/readelf.c:3150
#, c-format
msgid "%s+%#<PRIx64>"
msgstr "%s+%#<PRIx64>"
-#: src/readelf.c:3152
+#: src/readelf.c:3153
#, c-format
msgid "%s+%#0*<PRIx64>"
msgstr "%s+%#0*<PRIx64>"
-#: src/readelf.c:3260
+#: src/readelf.c:3284
#, c-format
msgid "unknown tag %hx"
msgstr "不明なタグ %hx"
-#: src/readelf.c:3262
+#: src/readelf.c:3286
#, c-format
msgid "unknown user tag %hx"
msgstr "不明な利用者タグ %hx"
-#: src/readelf.c:3480
+#: src/readelf.c:3510
#, c-format
msgid "unknown attribute %hx"
msgstr "不明な属性 %hx"
-#: src/readelf.c:3483
+#: src/readelf.c:3513
#, c-format
msgid "unknown user attribute %hx"
msgstr "不明な利用者属性 %hx"
-#: src/readelf.c:3529
+#: src/readelf.c:3563
#, c-format
msgid "unknown form %<PRIx64>"
msgstr "不明な様式 %<PRIx64>"
-#: src/readelf.c:3763
+#: src/readelf.c:3797
msgid "empty block"
msgstr "空ブロック"
-#: src/readelf.c:3766
+#: src/readelf.c:3800
#, c-format
msgid "%zu byte block:"
msgstr "%zu バイトのブロック:"
-#: src/readelf.c:4175
+#: src/readelf.c:4222
#, c-format
msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4188
+#: src/readelf.c:4235
#, c-format
msgid ""
"\n"
@@ -4718,7 +4722,7 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
" [ コード]\n"
-#: src/readelf.c:4195
+#: src/readelf.c:4242
#, c-format
msgid ""
"\n"
@@ -4727,30 +4731,30 @@ msgstr ""
"\n"
"オフセット %<PRIu64> の略語セクション:\n"
-#: src/readelf.c:4208
+#: src/readelf.c:4255
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** 略語を読んでいる間にエラー: %s\n"
-#: src/readelf.c:4224
+#: src/readelf.c:4271
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] オフセット: %<PRId64>、子: %s、タグ: %s\n"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "yes"
msgstr "はい"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "no"
msgstr "いいえ"
-#: src/readelf.c:4263
+#: src/readelf.c:4310
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ".debug_aragnes の内容を得られません: %s"
-#: src/readelf.c:4268
+#: src/readelf.c:4315
#, c-format
msgid ""
"\n"
@@ -4763,25 +4767,25 @@ msgstr[0] ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項"
"目があります:\n"
-#: src/readelf.c:4298
+#: src/readelf.c:4345
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:4300
+#: src/readelf.c:4347
#, 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:4319
+#: src/readelf.c:4366
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ".degub_ranges の内容を得られません: %s"
-#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897
-#: src/readelf.c:5992 src/readelf.c:6164
+#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079
+#: src/readelf.c:6178 src/readelf.c:6350
#, c-format
msgid ""
"\n"
@@ -4790,32 +4794,32 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:4338 src/readelf.c:5911
+#: src/readelf.c:4385 src/readelf.c:6097
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <不当なデータ>\n"
-#: src/readelf.c:4360 src/readelf.c:5933
+#: src/readelf.c:4407 src/readelf.c:6119
#, c-format
msgid " [%6tx] base address %s\n"
msgstr " [%6tx] ベースアドレス %s\n"
-#: src/readelf.c:4371
+#: src/readelf.c:4418
#, c-format
msgid " [%6tx] %s..%s\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:4373
+#: src/readelf.c:4420
#, c-format
msgid " %s..%s\n"
msgstr " %s..%s\n"
-#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332
+#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518
#, c-format
msgid "cannot get %s content: %s"
msgstr "%s の内容を得られません: %s"
-#: src/readelf.c:4806
+#: src/readelf.c:4853
#, c-format
msgid ""
"\n"
@@ -4824,12 +4828,12 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:4833 src/readelf.c:5486
+#: src/readelf.c:4881 src/readelf.c:5615
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "セクション [%zu] '%s' の不当なデータ"
-#: src/readelf.c:4855
+#: src/readelf.c:4903
#, c-format
msgid ""
"\n"
@@ -4838,50 +4842,50 @@ msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:4924
+#: src/readelf.c:4987
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "不当な拡大エンコード"
-#: src/readelf.c:4936
+#: src/readelf.c:4999
msgid "FDE address encoding: "
msgstr "FDE アドレスエンコード"
-#: src/readelf.c:4942
+#: src/readelf.c:5005
msgid "LSDA pointer encoding: "
msgstr "LSDA ポインターエンコード:"
-#: src/readelf.c:5034
+#: src/readelf.c:5101
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5041
+#: src/readelf.c:5108
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5068
+#: src/readelf.c:5135
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sLSDA ポインター: %#<PRIx64>\n"
-#: src/readelf.c:5114
+#: src/readelf.c:5182
#, c-format
msgid "cannot get attribute code: %s"
msgstr "属性コードを得られません: %s"
-#: src/readelf.c:5122
+#: src/readelf.c:5190
#, c-format
msgid "cannot get attribute form: %s"
msgstr "属性様式を得られません: %s"
-#: src/readelf.c:5135
+#: src/readelf.c:5203
#, c-format
msgid "cannot get attribute value: %s"
msgstr "属性値を得られません: %s"
-#: src/readelf.c:5331
+#: src/readelf.c:5428
#, c-format
msgid ""
"\n"
@@ -4892,7 +4896,19 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
" [オフセット]\n"
-#: src/readelf.c:5356
+#: src/readelf.c:5458
+#, fuzzy, c-format
+msgid ""
+" Type unit at offset %<PRIu64>:\n"
+" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %"
+"<PRIu8>, Offset size: %<PRIu8>\n"
+" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n"
+msgstr ""
+" オフセット %1$<PRIu64> のコンパイル単位:\n"
+" バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
+"きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
+
+#: src/readelf.c:5466
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -4903,40 +4919,40 @@ msgstr ""
" バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大"
"きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n"
-#: src/readelf.c:5374
+#: src/readelf.c:5489
#, c-format
msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
msgstr ""
"セクション '%2$s' の オフセット %1$<PRIu64> の DIE を得られません: %3$s"
-#: src/readelf.c:5385
+#: src/readelf.c:5500
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "DIE オフセットを得られません: %s"
-#: src/readelf.c:5393
+#: src/readelf.c:5508
#, 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:5422
+#: src/readelf.c:5537
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "次の DIE を得られません: %s\n"
-#: src/readelf.c:5429
+#: src/readelf.c:5544
#, c-format
msgid "cannot get next DIE: %s"
msgstr "次の DIE を得られません: %s"
-#: src/readelf.c:5464
+#: src/readelf.c:5593
#, c-format
msgid "cannot get line data section data: %s"
msgstr "ラインデータセクションデータを得られません: %s"
-#: src/readelf.c:5477
+#: src/readelf.c:5606
#, c-format
msgid ""
"\n"
@@ -4945,14 +4961,15 @@ msgstr ""
"\n"
"オフセット %Zu のテーブル:\n"
-#: src/readelf.c:5529
-#, c-format
+#: src/readelf.c:5661
+#, fuzzy, c-format
msgid ""
"\n"
" Length: %<PRIu64>\n"
" DWARF version: %<PRIuFAST16>\n"
" Prologue length: %<PRIu64>\n"
" Minimum instruction length: %<PRIuFAST8>\n"
+" Maximum operations per instruction: %<PRIuFAST8>\n"
" Initial value if '%s': %<PRIuFAST8>\n"
" Line base: %<PRIdFAST8>\n"
" Line range: %<PRIuFAST8>\n"
@@ -4972,18 +4989,18 @@ msgstr ""
"\n"
"命令コード:\n"
-#: src/readelf.c:5548
+#: src/readelf.c:5682
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "セクション [%2$zu] '%3$s' 中のオフセット %1$tu に不当なデータ"
-#: src/readelf.c:5563
+#: src/readelf.c:5697
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:5571
+#: src/readelf.c:5705
msgid ""
"\n"
"Directory table:"
@@ -4991,7 +5008,7 @@ msgstr ""
"\n"
"ディレクトリーテーブル:"
-#: src/readelf.c:5587
+#: src/readelf.c:5721
msgid ""
"\n"
"File name table:\n"
@@ -5001,7 +5018,7 @@ msgstr ""
"ファイル名テーブル:\n"
" Entry Dir 時刻 大きさ 名前"
-#: src/readelf.c:5616
+#: src/readelf.c:5750
msgid ""
"\n"
"Line number statements:"
@@ -5009,118 +5026,143 @@ msgstr ""
"\n"
"行 番号 文:"
-#: src/readelf.c:5677
+#: src/readelf.c:5824
+#, 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:5829
#, c-format
msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:5697
+#: src/readelf.c:5849
#, c-format
msgid " extended opcode %u: "
msgstr " 拡張命令コード %u: "
-#: src/readelf.c:5702
+#: src/readelf.c:5854
msgid "end of sequence"
msgstr "列の終わり"
-#: src/readelf.c:5717
+#: src/readelf.c:5871
#, c-format
msgid "set address to %s\n"
msgstr "アドレスを %s に設定する\n"
-#: src/readelf.c:5738
+#: src/readelf.c:5892
#, 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:5747
+#: src/readelf.c:5905
+#, fuzzy, c-format
+msgid " set discriminator to %u\n"
+msgstr "カラムを %<PRIu64> に設定する\n"
+
+#: src/readelf.c:5910
msgid "unknown opcode"
msgstr "不明な命令コード"
-#: src/readelf.c:5759
+#: src/readelf.c:5922
msgid " copy"
msgstr "複写"
-#: src/readelf.c:5769
+#: src/readelf.c:5933
+#, fuzzy, c-format
+msgid "advance address by %u to %s, op_index to %u\n"
+msgstr "アドレスを %u だけ進めて %s にする\n"
+
+#: src/readelf.c:5937
#, c-format
msgid "advance address by %u to %s\n"
msgstr "アドレスを %u だけ進めて %s にする\n"
-#: src/readelf.c:5780
+#: src/readelf.c:5948
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr "行を定数 %d だけ進めて %<PRId64> にする\n"
-#: src/readelf.c:5788
+#: src/readelf.c:5956
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> に設定する\n"
-#: src/readelf.c:5798
+#: src/readelf.c:5966
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> に設定する\n"
-#: src/readelf.c:5805
+#: src/readelf.c:5973
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' を %<PRIuFAST8> に設定する\n"
-#: src/readelf.c:5811
+#: src/readelf.c:5979
msgid " set basic block flag"
msgstr "基本ブロックフラグを設定する"
-#: src/readelf.c:5821
+#: src/readelf.c:5988
+#, fuzzy, c-format
+msgid "advance address by constant %u to %s, op_index to %u\n"
+msgstr "アドレスを定数 %u だけ済めて %s にする\n"
+
+#: src/readelf.c:5992
#, c-format
msgid "advance address by constant %u to %s\n"
msgstr "アドレスを定数 %u だけ済めて %s にする\n"
-#: src/readelf.c:5837
+#: src/readelf.c:6010
#, c-format
msgid "advance address by fixed value %u to %s\n"
msgstr "アドレスを固定値 %u だけ進めて %s にする\n"
-#: src/readelf.c:5846
+#: src/readelf.c:6019
msgid " set prologue end flag"
msgstr "プロローグ終了フラグを設定する"
-#: src/readelf.c:5851
+#: src/readelf.c:6024
msgid " set epilogue begin flag"
msgstr "エピローグ開始フラグを設定する"
-#: src/readelf.c:5860
+#: src/readelf.c:6033
+#, fuzzy, c-format
+msgid " set isa to %u\n"
+msgstr " ファイルを %<PRIu64> に設定する\n"
+
+#: src/readelf.c:6042
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " %<PRIu8> 個のパラメーターのある不明な命令コード:"
-#: src/readelf.c:5892
+#: src/readelf.c:6074
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ".debug_loc の内容を得られません: %s"
-#: src/readelf.c:5947
+#: src/readelf.c:6133
#, c-format
msgid " [%6tx] %s..%s"
msgstr " [%6tx] %s..%s"
-#: src/readelf.c:5949
+#: src/readelf.c:6135
#, c-format
msgid " %s..%s"
msgstr " %s..%s"
-#: src/readelf.c:6002
+#: src/readelf.c:6188
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "マクロ情報セクションのデータを得られません: %s"
-#: src/readelf.c:6081
+#: src/readelf.c:6267
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** 最後のセクションの終端していない文字列"
-#: src/readelf.c:6149
+#: src/readelf.c:6335
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
@@ -5128,7 +5170,7 @@ msgstr ""
# # "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
# # " %4$*s 文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い
-#: src/readelf.c:6188
+#: src/readelf.c:6374
#, fuzzy, c-format
msgid ""
"\n"
@@ -5139,12 +5181,12 @@ msgstr ""
"オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n"
" %4$*s 文字列\n"
-#: src/readelf.c:6202
+#: src/readelf.c:6388
#, c-format
msgid " *** error while reading strings: %s\n"
msgstr " *** 文字列の読込み中にエラー: %s\n"
-#: src/readelf.c:6222
+#: src/readelf.c:6408
#, c-format
msgid ""
"\n"
@@ -5153,7 +5195,7 @@ msgstr ""
"\n"
"呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:6324
+#: src/readelf.c:6510
#, c-format
msgid ""
"\n"
@@ -5162,22 +5204,22 @@ msgstr ""
"\n"
"例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:6347
+#: src/readelf.c:6533
#, c-format
msgid " LPStart encoding: %#x "
msgstr " LPStart コード化: %#x "
-#: src/readelf.c:6359
+#: src/readelf.c:6545
#, c-format
msgid " TType encoding: %#x "
msgstr "TType コード化: %#x "
-#: src/readelf.c:6373
+#: src/readelf.c:6559
#, c-format
msgid " Call site encoding: %#x "
msgstr "呼出しサイトコード化: %#x "
-#: src/readelf.c:6386
+#: src/readelf.c:6572
msgid ""
"\n"
" Call site table:"
@@ -5185,7 +5227,7 @@ msgstr ""
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:6400
+#: src/readelf.c:6586
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5198,22 +5240,22 @@ msgstr ""
" 離着陸場: %#<PRIx64>\n"
" 行動: %u\n"
-#: src/readelf.c:6460
+#: src/readelf.c:6646
#, c-format
msgid "invalid TType encoding"
msgstr "不当な TType コード化"
-#: src/readelf.c:6484
+#: src/readelf.c:6671
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "デバッグ内容記述子を得られません: %s"
-#: src/readelf.c:6620 src/readelf.c:7221
+#: src/readelf.c:6810 src/readelf.c:7411
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータの変換ができません: %s"
-#: src/readelf.c:6961
+#: src/readelf.c:7151
#, c-format
msgid ""
"\n"
@@ -5222,21 +5264,21 @@ msgstr ""
"\n"
"%*s... < %u 回の繰返し> ..."
-#: src/readelf.c:7320
+#: src/readelf.c:7510
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大きさタイプ\n"
-#: src/readelf.c:7338
+#: src/readelf.c:7528
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:7372
+#: src/readelf.c:7562
#, c-format
msgid "cannot get content of note section: %s"
msgstr "ノートセクションの内容を得られません: %s"
-#: src/readelf.c:7399
+#: src/readelf.c:7589
#, c-format
msgid ""
"\n"
@@ -5246,7 +5288,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのノートセクション [%1$2zu] '%2"
"$s':\n"
-#: src/readelf.c:7422
+#: src/readelf.c:7612
#, c-format
msgid ""
"\n"
@@ -5255,7 +5297,7 @@ msgstr ""
"\n"
"オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n"
-#: src/readelf.c:7468
+#: src/readelf.c:7658
#, c-format
msgid ""
"\n"
@@ -5264,12 +5306,12 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:7474 src/readelf.c:7497
+#: src/readelf.c:7664 src/readelf.c:7687
#, c-format
msgid "cannot get data for section [%Zu] '%s': %s"
msgstr "セクション [%Zu] '%s' からデータが得られません: %s"
-#: src/readelf.c:7478
+#: src/readelf.c:7668
#, c-format
msgid ""
"\n"
@@ -5279,7 +5321,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダンプ、%3"
"$<PRIu64> バイト:\n"
-#: src/readelf.c:7491
+#: src/readelf.c:7681
#, fuzzy, c-format
msgid ""
"\n"
@@ -5288,7 +5330,7 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:7501
+#: src/readelf.c:7691
#, c-format
msgid ""
"\n"
@@ -5298,7 +5340,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ"
"イトあります:\n"
-#: src/readelf.c:7549
+#: src/readelf.c:7739
#, c-format
msgid ""
"\n"
@@ -5307,7 +5349,7 @@ msgstr ""
"\n"
"セクション [%lu] がありません"
-#: src/readelf.c:7576
+#: src/readelf.c:7766
#, c-format
msgid ""
"\n"
@@ -5316,12 +5358,12 @@ msgstr ""
"\n"
"セクション '%s' がありません"
-#: src/readelf.c:7637
+#: src/readelf.c:7827
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブのシンボル索引 '%s' を得られません: %s"
-#: src/readelf.c:7640
+#: src/readelf.c:7830
#, c-format
msgid ""
"\n"
@@ -5330,7 +5372,7 @@ msgstr ""
"\n"
"アーカイブ '%s' にはシンボル索引がありません\n"
-#: src/readelf.c:7644
+#: src/readelf.c:7834
#, c-format
msgid ""
"\n"
@@ -5339,12 +5381,12 @@ msgstr ""
"\n"
"アーカイブ '%s' の索引には %Zu 項目あります:\n"
-#: src/readelf.c:7662
+#: src/readelf.c:7852
#, c-format
msgid "cannot extract member at offset %Zu in '%s': %s"
msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s"
-#: src/readelf.c:7667
+#: src/readelf.c:7857
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "アーカイブメンバー '%s' には以下があります:\n"
@@ -5700,7 +5742,7 @@ msgstr ""
msgid "cannot copy ELF header: %s"
msgstr ""
-#: src/unstrip.c:264 src/unstrip.c:1817
+#: src/unstrip.c:264 src/unstrip.c:1830
#, c-format
msgid "cannot create program headers: %s"
msgstr ""
@@ -5715,12 +5757,12 @@ msgstr ""
msgid "cannot copy section header: %s"
msgstr ""
-#: src/unstrip.c:283 src/unstrip.c:1505
+#: src/unstrip.c:283 src/unstrip.c:1511
#, c-format
msgid "cannot get section data: %s"
msgstr ""
-#: src/unstrip.c:285 src/unstrip.c:1507
+#: src/unstrip.c:285 src/unstrip.c:1513
#, c-format
msgid "cannot copy section data: %s"
msgstr ""
@@ -5730,181 +5772,190 @@ msgstr ""
msgid "cannot create directory '%s'"
msgstr ""
-#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540
+#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr ""
-#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613
-#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715
+#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616
+#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720
#, c-format
msgid "cannot update symbol table: %s"
msgstr ""
-#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209
-#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791
+#: src/unstrip.c:375
#, c-format
msgid "cannot update section header: %s"
msgstr ""
-#: src/unstrip.c:408 src/unstrip.c:419
+#: src/unstrip.c:414 src/unstrip.c:425
#, c-format
msgid "cannot update relocation: %s"
msgstr ""
-#: src/unstrip.c:507
+#: src/unstrip.c:512
#, c-format
msgid "cannot get symbol version: %s"
msgstr ""
-#: src/unstrip.c:519
+#: src/unstrip.c:524
#, c-format
msgid "unexpected section type in [%Zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:769
+#: src/unstrip.c:772
#, c-format
msgid "invalid string offset in symbol [%Zu]"
msgstr ""
-#: src/unstrip.c:911 src/unstrip.c:1248
+#: src/unstrip.c:914 src/unstrip.c:1254
#, c-format
msgid "cannot read section [%Zu] name: %s"
msgstr ""
-#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004
+#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr ""
-#: src/unstrip.c:992
+#: src/unstrip.c:995
#, c-format
msgid "invalid contents in '%s' section"
msgstr ""
-#: src/unstrip.c:1047 src/unstrip.c:1370
+#: src/unstrip.c:1050 src/unstrip.c:1376
#, c-format
msgid "cannot find matching section for [%Zu] '%s'"
msgstr ""
-#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451
+#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457
#, c-format
msgid "cannot add section name to string table: %s"
msgstr ""
-#: src/unstrip.c:1195
+#: src/unstrip.c:1198
#, c-format
msgid "cannot update section header string table data: %s"
msgstr ""
-#: src/unstrip.c:1223 src/unstrip.c:1227
+#: src/unstrip.c:1225 src/unstrip.c:1229
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
-#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466
+#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472
#, c-format
msgid "cannot get section count: %s"
msgstr ""
-#: src/unstrip.c:1293 src/unstrip.c:1385
+#: src/unstrip.c:1240
+#, c-format
+msgid "more sections in stripped file than debug file -- arguments reversed?"
+msgstr ""
+
+#: src/unstrip.c:1299 src/unstrip.c:1391
#, c-format
msgid "cannot read section header string table: %s"
msgstr ""
-#: src/unstrip.c:1445
+#: src/unstrip.c:1451
#, c-format
msgid "cannot add new section: %s"
msgstr ""
-#: src/unstrip.c:1548
+#: src/unstrip.c:1553
#, c-format
msgid "symbol [%Zu] has invalid section index"
msgstr ""
-#: src/unstrip.c:1800
+#: src/unstrip.c:1791
+#, fuzzy, c-format
+msgid "cannot read section data: %s"
+msgstr "セクションデータを割り当てられません: %s"
+
+#: src/unstrip.c:1812
#, c-format
msgid "cannot get ELF header: %s"
msgstr ""
-#: src/unstrip.c:1827
+#: src/unstrip.c:1840
#, c-format
msgid "cannot update program header: %s"
msgstr ""
-#: src/unstrip.c:1832 src/unstrip.c:1911
+#: src/unstrip.c:1845 src/unstrip.c:1924
#, c-format
msgid "cannot write output file: %s"
msgstr ""
-#: src/unstrip.c:1880
+#: src/unstrip.c:1893
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:1883
+#: src/unstrip.c:1896
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034
+#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr ""
-#: src/unstrip.c:1960
+#: src/unstrip.c:1973
#, c-format
msgid "'%s' and '%s' do not seem to match"
msgstr ""
-#: src/unstrip.c:1991
+#: src/unstrip.c:2004
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:1995
+#: src/unstrip.c:2008
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2010
+#: src/unstrip.c:2023
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2014
+#: src/unstrip.c:2027
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2027
+#: src/unstrip.c:2040
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr ""
-#: src/unstrip.c:2058
+#: src/unstrip.c:2071
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2191
+#: src/unstrip.c:2204
#, c-format
msgid "no matching modules found"
msgstr ""
-#: src/unstrip.c:2200
+#: src/unstrip.c:2213
#, c-format
msgid "matched more than one module"
msgstr ""
-#: src/unstrip.c:2247
+#: src/unstrip.c:2260
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2248
+#: src/unstrip.c:2261
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 da37f61b..afb07004 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-05-03 14:14-0700\n"
-"PO-Revision-Date: 2007-03-16 20:10+0100\n"
+"POT-Creation-Date: 2010-06-28 12:08-0700\n"
+"PO-Revision-Date: 2010-05-28 23:37+0200\n"
"Last-Translator: Piotr Drąg <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822
-#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295
+#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823
+#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308
#, c-format
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
@@ -25,7 +25,7 @@ msgstr "pamięć wyczerpana"
#: libasm/asm_error.c:62 libdw/dwarf_error.c:79 libdwfl/libdwflP.h:70
#: libelf/elf_error.c:81
msgid "no error"
-msgstr "bez błędu"
+msgstr "brak błędu"
#: libasm/asm_error.c:63 libdw/dwarf_error.c:88 libdwfl/libdwflP.h:72
#: libelf/elf_error.c:112
@@ -39,11 +39,11 @@ msgstr "nie można utworzyć pliku wyjściowego"
#: libasm/asm_error.c:65
msgid "invalid parameter"
-msgstr "błędny parametr"
+msgstr "nieprawidłowy parametr"
#: libasm/asm_error.c:66
msgid "cannot change mode of output file"
-msgstr "nie można zmienić uprawnień pliku wyjściowego"
+msgstr "nie można zmienić trybu pliku wyjściowego"
#: libasm/asm_error.c:67 src/ldgeneric.c:7001
#, c-format
@@ -56,7 +56,7 @@ msgstr "powtórzony symbol"
#: libasm/asm_error.c:69
msgid "invalid section type for operation"
-msgstr "błędny rodzaj sekcji dla tej operacji"
+msgstr "nieprawidłowy typ sekcji dla działania"
#: libasm/asm_error.c:70
msgid "error during output of data"
@@ -64,7 +64,7 @@ msgstr "błąd podczas wyprowadzania danych"
#: libasm/asm_error.c:71
msgid "no backend support available"
-msgstr ""
+msgstr "brak dostępnej obsługi zaplecza"
#: libasm/asm_error.c:81 libdw/dwarf_error.c:80 libdwfl/libdwflP.h:71
#: libelf/elf_error.c:84
@@ -73,19 +73,19 @@ msgstr "nieznany błąd"
#: libdw/dwarf_error.c:81
msgid "invalid access"
-msgstr "błędny dostęp"
+msgstr "nieprawidłowy dostęp"
#: libdw/dwarf_error.c:82
msgid "no regular file"
-msgstr "to nie jest zwykły plik"
+msgstr "nie jest zwykłym plikiem"
#: libdw/dwarf_error.c:83
msgid "I/O error"
-msgstr "błąd we/wy"
+msgstr "błąd wejścia/wyjścia"
#: libdw/dwarf_error.c:84
msgid "invalid ELF file"
-msgstr "błędny plik ELF"
+msgstr "nieprawidłowy plik ELF"
#: libdw/dwarf_error.c:85
msgid "no DWARF information"
@@ -97,35 +97,35 @@ msgstr "brak pliku ELF"
#: libdw/dwarf_error.c:87
msgid "cannot get ELF header"
-msgstr "nie można pobrać nagłówka ELF"
+msgstr "nie można uzyskać nagłówka ELF"
#: libdw/dwarf_error.c:89
msgid "not implemented"
-msgstr "nie zaimplementowane"
+msgstr "niezaimplementowane"
#: libdw/dwarf_error.c:90 libelf/elf_error.c:128 libelf/elf_error.c:176
msgid "invalid command"
-msgstr "błędne polecenie"
+msgstr "nieprawidłowe polecenie"
#: libdw/dwarf_error.c:91
msgid "invalid version"
-msgstr "błędna wersja"
+msgstr "nieprawidłowa wersja"
#: libdw/dwarf_error.c:92
msgid "invalid file"
-msgstr "błędny plik"
+msgstr "nieprawidłowy plik"
#: libdw/dwarf_error.c:93
msgid "no entries found"
-msgstr "nie znaleziono wpisów"
+msgstr "nie odnaleziono wpisów"
#: libdw/dwarf_error.c:94
msgid "invalid DWARF"
-msgstr "błędny DWARF"
+msgstr "nieprawidłowy DWARF"
#: libdw/dwarf_error.c:95
msgid "no string data"
-msgstr "brak danych w postaci łańcucha"
+msgstr "brak danych w postaci ciągu"
#: libdw/dwarf_error.c:96
msgid "no address value"
@@ -141,7 +141,7 @@ msgstr "brak wartości odwołania"
#: libdw/dwarf_error.c:99
msgid "invalid reference value"
-msgstr "błędna wartość odwołania"
+msgstr "nieprawidłowa wartość odwołania"
#: libdw/dwarf_error.c:100
msgid ".debug_line section missing"
@@ -149,23 +149,23 @@ msgstr "brak sekcji .debug_line"
#: libdw/dwarf_error.c:101
msgid "invalid .debug_line section"
-msgstr "błędna sekcja .debug_line"
+msgstr "nieprawidłowa sekcja .debug_line"
#: libdw/dwarf_error.c:102
msgid "debug information too big"
-msgstr "informacje debugowe zbyt duże"
+msgstr "informacje debugowania są za duże"
#: libdw/dwarf_error.c:103
msgid "invalid DWARF version"
-msgstr "błędna wersja DWARF"
+msgstr "nieprawidłowa wersja DWARF"
#: libdw/dwarf_error.c:104
msgid "invalid directory index"
-msgstr "błędny indeks katalogu"
+msgstr "nieprawidłowy indeks katalogu"
#: libdw/dwarf_error.c:105 libdwfl/libdwflP.h:91
msgid "address out of range"
-msgstr "adres spoza zakresu"
+msgstr "adres jest spoza zakresu"
#: libdw/dwarf_error.c:106
msgid "no location list value"
@@ -177,11 +177,11 @@ msgstr "brak danych blokowych"
#: libdw/dwarf_error.c:108
msgid "invalid line index"
-msgstr "błędny indeks linii"
+msgstr "nieprawidłowy indeks wiersza"
#: libdw/dwarf_error.c:109
msgid "invalid address range index"
-msgstr "błędny indeks zakresu adresów"
+msgstr "nieprawidłowy indeks zakresu adresów"
#: libdw/dwarf_error.c:110 libdwfl/libdwflP.h:92
msgid "no matching address range"
@@ -193,413 +193,377 @@ msgstr "brak wartości flagi"
#: libdw/dwarf_error.c:112 libelf/elf_error.c:253
msgid "invalid offset"
-msgstr "błędny offset"
+msgstr "nieprawidłowy offset"
#: libdw/dwarf_error.c:113
msgid ".debug_ranges section missing"
msgstr "brak sekcji .debug_ranges"
#: libdw/dwarf_error.c:114
-#, fuzzy
msgid "invalid CFI section"
-msgstr "błędna wersja"
+msgstr "nieprawidłowa wersja CFI"
-#: libdwfl/argp-std.c:67 src/unstrip.c:2237
-#, fuzzy
+#: libdwfl/argp-std.c:67 src/unstrip.c:2250
msgid "Input selection options:"
-msgstr "Wybór wejścia:"
+msgstr "Opcje wyboru wejścia:"
#: libdwfl/argp-std.c:68
-#, fuzzy
msgid "Find addresses in FILE"
-msgstr "błędny indeks zakresu adresów"
+msgstr "Wyszukuje adresy w PLIKU"
#: libdwfl/argp-std.c:70
msgid "Find addresses from signatures found in COREFILE"
-msgstr ""
+msgstr "Wyszukuje adresy z podpisów odnalezionych w PLIKU_CORE"
#: libdwfl/argp-std.c:72
msgid "Find addresses in files mapped into process PID"
-msgstr ""
+msgstr "Wyszukuje adresy w plikach zmapowanych do PID procesów"
#: libdwfl/argp-std.c:74
msgid ""
"Find addresses in files mapped as read from FILE in Linux /proc/PID/maps "
"format"
msgstr ""
+"Wyszukuje adresy w plikach zmapowanych jako odczyt z PLIKU w formacie /proc/"
+"PID/maps systemu Linux"
#: libdwfl/argp-std.c:76
msgid "Find addresses in the running kernel"
-msgstr ""
+msgstr "Wyszukuje adresy w uruchomionych jądrze"
#: libdwfl/argp-std.c:78
msgid "Kernel with all modules"
-msgstr ""
+msgstr "Jądro ze wszystkimi modułami"
#: libdwfl/argp-std.c:80
-#, fuzzy
msgid "Search path for separate debuginfo files"
-msgstr "Plik binarny jest oddzielnym plikiem debuginfo"
+msgstr "Wyszukuje ścieżkę dla oddzielnych plików debuginfo"
#: libdwfl/argp-std.c:163
-#, fuzzy
msgid "only one of -e, -p, -k, -K, or --core allowed"
-msgstr "dopuszczalna jest tylko jedna z opcji -G i -r"
+msgstr "dopuszczalna jest tylko jedna z opcji -e, -p, -k, -K lub --core"
#: libdwfl/argp-std.c:223
-#, fuzzy, c-format
+#, c-format
msgid "cannot read ELF core file: %s"
-msgstr "nie można odczytać nagłówka ELF: %s"
+msgstr "nie można odczytać pliku core ELF: %s"
#: libdwfl/argp-std.c:241
msgid "No modules recognized in core file"
-msgstr ""
+msgstr "Nie rozpoznano żadnych modułów w pliku core"
#: libdwfl/argp-std.c:253
-#, fuzzy
msgid "cannot load kernel symbols"
-msgstr "Nie sortowanie symboli"
+msgstr "nie można wczytać symboli jądra"
#: libdwfl/argp-std.c:257
msgid "cannot find kernel modules"
-msgstr ""
+msgstr "nie można odnaleźć modułów jądra"
#: libdwfl/argp-std.c:271
msgid "cannot find kernel or modules"
-msgstr ""
+msgstr "nie można odnaleźć jądra lub modułów"
#: libdwfl/libdwflP.h:73
msgid "See errno"
-msgstr ""
+msgstr "Proszę zobaczyć errno"
#: libdwfl/libdwflP.h:74
msgid "See elf_errno"
-msgstr ""
+msgstr "Proszę zobaczyć elf_errno"
#: libdwfl/libdwflP.h:75
msgid "See dwarf_errno"
-msgstr ""
+msgstr "Proszę zobaczyć dwarf_errno"
#: libdwfl/libdwflP.h:76
msgid "See ebl_errno (XXX missing)"
-msgstr ""
+msgstr "Proszę zobaczyć ebl_errno (brak XXX)"
#: libdwfl/libdwflP.h:77
msgid "gzip decompression failed"
-msgstr ""
+msgstr "dekompresja gzip nie powiodła się"
#: libdwfl/libdwflP.h:78
msgid "bzip2 decompression failed"
-msgstr ""
+msgstr "dekompresja bzip2 nie powiodła się"
#: libdwfl/libdwflP.h:79
msgid "LZMA decompression failed"
-msgstr ""
+msgstr "dekompresja LZMA nie powiodła się"
#: libdwfl/libdwflP.h:80
msgid "no support library found for machine"
-msgstr ""
+msgstr "nie odnaleziono biblioteki obsługi dla komputera"
#: libdwfl/libdwflP.h:81
msgid "Callbacks missing for ET_REL file"
-msgstr ""
+msgstr "Brak wywołań zwrotnych dla pliku ET_REL"
#: libdwfl/libdwflP.h:82
-#, fuzzy
msgid "Unsupported relocation type"
-msgstr "nie można pobrać relokacji: %s"
+msgstr "Nieobsługiwany typ relokacji"
#: libdwfl/libdwflP.h:83
msgid "r_offset is bogus"
-msgstr ""
+msgstr "r_offset jest fałszywe"
#: libdwfl/libdwflP.h:84 libelf/elf_error.c:132 libelf/elf_error.c:192
-#, fuzzy
msgid "offset out of range"
-msgstr "adres spoza zakresu"
+msgstr "offset spoza zakresu"
#: libdwfl/libdwflP.h:85
-#, fuzzy
msgid "relocation refers to undefined symbol"
-msgstr "Wypisywanie rozmiaru zdefiniowanych symboli"
+msgstr "relokacja odnosi się do nieokreślonego symbolu"
#: libdwfl/libdwflP.h:86
msgid "Callback returned failure"
-msgstr ""
+msgstr "Wywołanie zwrotne zwróciło niepowodzenie"
#: libdwfl/libdwflP.h:87
-#, fuzzy
msgid "No DWARF information found"
-msgstr "brak informacji DWARF"
+msgstr "Nie odnaleziono informacji DWARF"
#: libdwfl/libdwflP.h:88
msgid "No symbol table found"
-msgstr ""
+msgstr "Nie odnaleziono tablicy symboli"
#: libdwfl/libdwflP.h:89
-#, fuzzy
msgid "No ELF program headers"
-msgstr "nie można pobrać nagłówka programu: %s"
+msgstr "Brak nagłówków programu ELF"
#: libdwfl/libdwflP.h:90
msgid "address range overlaps an existing module"
-msgstr ""
+msgstr "zakres adresów pokrywa się z istniejącym modułem"
#: libdwfl/libdwflP.h:93
msgid "image truncated"
-msgstr ""
+msgstr "skrócono obraz"
#: libdwfl/libdwflP.h:94
-#, fuzzy
msgid "ELF file opened"
-msgstr "Śledzenie otwierania plików."
+msgstr "otwarto plik ELF"
#: libdwfl/libdwflP.h:95
-#, fuzzy
msgid "not a valid ELF file"
-msgstr "błędny plik ELF"
+msgstr "nie jest prawidłowym plikiem ELF"
#: libdwfl/libdwflP.h:96
-#, fuzzy
msgid "cannot handle DWARF type description"
-msgstr "nie można utworzyć deskryptora ELF dla '%s': %s"
+msgstr "nie można obsłużyć opisu typu DWARF"
+
+#: libdwfl/libdwflP.h:97
+msgid "ELF file does not match build ID"
+msgstr "plik ELF nie posiada pasującego identyfikatora kopii"
#: libebl/eblbackendname.c:63
msgid "No backend"
-msgstr ""
+msgstr "Brak zaplecza"
#: libebl/eblcorenotetypename.c:107 libebl/eblobjecttypename.c:78
#: libebl/eblobjnotetypename.c:86 libebl/eblosabiname.c:98
#: libebl/eblsectionname.c:110 libebl/eblsectiontypename.c:140
#: libebl/eblsegmenttypename.c:104
-#, fuzzy
msgid "<unknown>"
-msgstr "| <nieznany>"
+msgstr "<nieznany>"
#: libebl/ebldynamictagname.c:126
-#, fuzzy, c-format
+#, c-format
msgid "<unknown>: %#<PRIx64>"
-msgstr "nieznana forma %<PRIx64>"
+msgstr "<nieznany>: %#<PRIx64>"
#: libebl/eblobjnote.c:76
#, c-format
msgid " Build ID: "
-msgstr ""
+msgstr " Identyfikator kopii: "
#: libebl/eblobjnote.c:87
#, c-format
msgid " Linker version: %.*s\n"
-msgstr ""
+msgstr " Wersja konsolidatora: %.*s\n"
#: libebl/eblobjnote.c:136
#, c-format
msgid " OS: %s, ABI: "
-msgstr ""
+msgstr " System operacyjny: %s, ABI: "
#: libebl/eblosabiname.c:95
msgid "Stand alone"
-msgstr ""
+msgstr "Samodzielny"
#: libebl/eblsymbolbindingname.c:92 libebl/eblsymboltypename.c:98
-#, fuzzy, c-format
+#, c-format
msgid "<unknown>: %d"
-msgstr "| <nieznany>"
+msgstr "<nieznany>: %d"
#: libelf/elf_error.c:88
-#, fuzzy
msgid "unknown version"
-msgstr "nieznany błąd"
+msgstr "nieznana wersja"
#: libelf/elf_error.c:92
-#, fuzzy
msgid "unknown type"
-msgstr "nieznany kod instrukcji"
+msgstr "nieznany typ"
#: libelf/elf_error.c:96
-#, fuzzy
msgid "invalid `Elf' handle"
-msgstr "błędny plik"
+msgstr "nieprawidłowa obsługa \"Elf\""
#: libelf/elf_error.c:100
-#, fuzzy
msgid "invalid size of source operand"
-msgstr "błędny rodzaj sekcji dla tej operacji"
+msgstr "nieprawidłowy rozmiar operanda źródłowego"
#: libelf/elf_error.c:104
-#, fuzzy
msgid "invalid size of destination operand"
-msgstr "błędny rodzaj sekcji dla tej operacji"
+msgstr "nieprawidłowy rozmiar operanda docelowego"
-#: libelf/elf_error.c:108 src/readelf.c:4779
-#, fuzzy, c-format
+#: libelf/elf_error.c:108 src/readelf.c:4826
+#, c-format
msgid "invalid encoding"
-msgstr "błędne polecenie"
+msgstr "nieprawidłowe kodowanie"
#: libelf/elf_error.c:116
-#, fuzzy
msgid "invalid file descriptor"
-msgstr "błędny plik"
+msgstr "nieprawidłowy deskryptor pliku"
#: libelf/elf_error.c:120
-#, fuzzy
msgid "invalid operation"
-msgstr "błędna wersja"
+msgstr "nieprawidłowe działanie"
#: libelf/elf_error.c:124
msgid "ELF version not set"
-msgstr ""
+msgstr "wersja ELF nie została ustawiona"
#: libelf/elf_error.c:136
msgid "invalid fmag field in archive header"
-msgstr ""
+msgstr "nieprawidłowe pole fmag w nagłówku archiwum"
#: libelf/elf_error.c:140
-#, fuzzy
msgid "invalid archive file"
-msgstr "błędny plik"
+msgstr "nieprawidłowy plik archiwum"
#: libelf/elf_error.c:144
-#, fuzzy
msgid "descriptor is not for an archive"
-msgstr "'%s' nie jest archiwum"
+msgstr "deskryptor nie jest dla archiwum"
#: libelf/elf_error.c:148
-#, fuzzy
msgid "no index available"
-msgstr " ([0] niedostępny)"
+msgstr "brak dostępnego indeksu"
#: libelf/elf_error.c:152
-#, fuzzy
msgid "cannot read data from file"
-msgstr "nie można utworzyć nowego pliku"
+msgstr "nie można odczytać danych z pliku"
#: libelf/elf_error.c:156
-#, fuzzy
msgid "cannot write data to file"
-msgstr "nie można wykonać stat na pliku wejściowym"
+msgstr "nie można zapisać danych do pliku"
#: libelf/elf_error.c:160
-#, fuzzy
msgid "invalid binary class"
-msgstr "błędny dostęp"
+msgstr "nieprawidłowa klasa pliku binarnego"
#: libelf/elf_error.c:164
-#, fuzzy
msgid "invalid section index"
-msgstr "błędny indeks nagłówka sekcji\n"
+msgstr "nieprawidłowy indeks sekcji"
#: libelf/elf_error.c:168
-#, fuzzy
msgid "invalid operand"
-msgstr "błędne polecenie"
+msgstr "nieprawidłowy operand"
#: libelf/elf_error.c:172
-#, fuzzy
msgid "invalid section"
-msgstr "błędna wersja"
+msgstr "nieprawidłowa sekcja"
#: libelf/elf_error.c:180
msgid "executable header not created first"
-msgstr ""
+msgstr "nie utworzono najpierw nagłówka pliku wykonywalnego"
#: libelf/elf_error.c:184
msgid "file descriptor disabled"
-msgstr ""
+msgstr "deskryptor pliku jest wyłączony"
#: libelf/elf_error.c:188
msgid "archive/member file descriptor mismatch"
-msgstr ""
+msgstr "deskryptory archiwum/elementu nie zgadzają się"
#: libelf/elf_error.c:196
-#, fuzzy
msgid "cannot manipulate null section"
-msgstr "nie można przydzielić danych sekcji: %s"
+msgstr "nie można zmieniać pustej sekcji"
#: libelf/elf_error.c:200
msgid "data/scn mismatch"
-msgstr ""
+msgstr "dane/scn nie zgadzają się"
#: libelf/elf_error.c:204
-#, fuzzy
msgid "invalid section header"
-msgstr "błędny indeks nagłówka sekcji\n"
+msgstr "nieprawidłowy nagłówek sekcji"
-#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343
-#, fuzzy, c-format
+#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529
+#, c-format
msgid "invalid data"
-msgstr "błędny dostęp"
+msgstr "nieprawidłowe dane"
#: libelf/elf_error.c:212
-#, fuzzy
msgid "unknown data encoding"
-msgstr "nieznany kod instrukcji"
+msgstr "nieznane kodowanie danych"
#: libelf/elf_error.c:216
msgid "section `sh_size' too small for data"
-msgstr ""
+msgstr "sekcja \"sh_size\" jest za mała dla danych"
#: libelf/elf_error.c:220
-#, fuzzy
msgid "invalid section alignment"
-msgstr "błędny indeks nagłówka sekcji\n"
+msgstr "nieprawidłowe wyrównanie sekcji"
#: libelf/elf_error.c:224
-#, fuzzy
msgid "invalid section entry size"
-msgstr "błędny rozmiar nagłówka sekcji: %hd\n"
+msgstr "nieprawidłowy rozmiar wpisu sekcji"
#: libelf/elf_error.c:228
msgid "update() for write on read-only file"
-msgstr ""
+msgstr "update() dla zapisu pliku tylko do odczytu"
#: libelf/elf_error.c:232
-#, fuzzy
msgid "no such file"
-msgstr "brak pliku ELF"
+msgstr "nie ma takiego pliku"
#: libelf/elf_error.c:236
-#, fuzzy
msgid "only relocatable files can contain section groups"
-msgstr "%s: tylko pliki typu ET_REL mogą zawierać grupy sekcji"
+msgstr "tylko relokowalne pliki mogą zawierać grupy sekcji"
#: libelf/elf_error.c:241
-#, fuzzy
msgid ""
"program header only allowed in executables, shared objects, and core files"
msgstr ""
-"tylko pliki wykonywalne, obiektów dzielonych i core mogą mieć nagłówki "
-"programu\n"
+"tylko pliki wykonywalne, obiektów współdzielone i pliki core mogą mieć "
+"nagłówki programu"
#: libelf/elf_error.c:248
-#, fuzzy
msgid "file has no program header"
-msgstr "Wyświetlenie nagłówków programu"
+msgstr "plik nie posiada nagłówków programu"
#: src/addr2line.c:66
-#, fuzzy
msgid "Output selection options:"
-msgstr "Wybór wyjścia:"
+msgstr "Opcje wyboru wyjścia:"
#: src/addr2line.c:67
msgid "Show only base names of source files"
-msgstr "Pokazywanie tylko podstawowych nazw plików źródłowych"
+msgstr "Wyświetla tylko podstawowe nazwy plików źródłowych"
#: src/addr2line.c:69
msgid "Show absolute file names using compilation directory"
-msgstr "Pokazywanie bezwzględnych nazw plików z użyciem katalogu kompilacji"
+msgstr "Wyświetla bezwzględne nazwy plików używając katalogu kompilacji"
#: src/addr2line.c:70
msgid "Also show function names"
-msgstr "Pokazywanie dodatkowo nazw funkcji"
+msgstr "Wyświetla także nazwy funkcji"
#: src/addr2line.c:71
-#, fuzzy
msgid "Also show symbol or section names"
-msgstr "Pokazywanie dodatkowo nazw funkcji"
+msgstr "Wyświetla także nazwy symboli ub sekcji"
#: src/addr2line.c:73
msgid "Treat addresses as offsets relative to NAME section."
-msgstr ""
+msgstr "Traktuje adresy jako offsety względne do sekcji NAZWA."
#: src/addr2line.c:75 src/elfcmp.c:75 src/findtextrel.c:75 src/nm.c:103
#: src/strings.c:83
@@ -610,7 +574,7 @@ msgstr "Różne:"
msgid ""
"Locate source files and line information for ADDRs (in a.out by default)."
msgstr ""
-"Odnajdywanie plików źródłowych i informacji o linii dla ADRESU (domyślnie w "
+"Odnajdywanie plików źródłowych i informacji o wierszu dla ADRESU (domyślne w "
"a.out)."
#: src/addr2line.c:88
@@ -619,7 +583,7 @@ msgstr "[ADRES...]"
#: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
-#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227
+#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227
#: src/strip.c:204 src/unstrip.c:234
#, c-format
msgid ""
@@ -628,133 +592,130 @@ msgid ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
"Copyright (C) %s Red Hat, Inc.\n"
-"To oprogramowanie jest darmowe; warunki kopiowania są opisane w źródłach.\n"
-"Autorzy nie dają ŻADNYCH gwarancji, w tym również gwarancji PRZYDATNOŚCI\n"
-"DO SPRZEDAŻY LUB DO KONKRETNYCH CELÓW.\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:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
-#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232
+#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232
#: src/strip.c:209 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
-msgstr "Autorem jest %s.\n"
+msgstr "Napisane przez %s.\n"
#: src/addr2line.c:405
#, c-format
msgid "Section syntax requires exactly one module"
-msgstr ""
+msgstr "Składnia sekcji wymaga dokładnie jednego modułu"
#: src/addr2line.c:428
#, c-format
msgid "offset %#<PRIxMAX> lies outside section '%s'"
-msgstr ""
+msgstr "offset %#<PRIxMAX> leży poza sekcją \"%s\""
-#: src/addr2line.c:461
-#, fuzzy, c-format
+#: src/addr2line.c:469
+#, c-format
msgid "cannot find symbol '%s'"
-msgstr "nie można pobrać symbolu w '%s': %s"
+msgstr "nie można odnaleźć symbolu \"%s\""
-#: src/addr2line.c:466
+#: src/addr2line.c:474
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
-msgstr ""
+msgstr "offset %#<PRIxMAX> leży poza zawartością \"%s\""
#: src/ar.c:76
msgid "Commands:"
-msgstr ""
+msgstr "Polecenia:"
#: src/ar.c:77
msgid "Delete files from archive."
-msgstr ""
+msgstr "Usuwa pliki z archiwum."
#: src/ar.c:78
-#, fuzzy
msgid "Move files in archive."
-msgstr "'%s' nie jest archiwum"
+msgstr "Przenosi pliki w archiwum."
#: src/ar.c:79
-#, fuzzy
msgid "Print files in archive."
-msgstr "'%s' nie jest archiwum"
+msgstr "Wyświetla pliki w archiwum."
#: src/ar.c:80
msgid "Quick append files to archive."
-msgstr ""
+msgstr "Szybko dodaje pliki do archiwum."
#: src/ar.c:82
msgid "Replace existing or insert new file into archive."
-msgstr ""
+msgstr "Zastępuje istniejący lub umieszcza nowy plik w archiwum."
#: src/ar.c:83
msgid "Display content of archive."
-msgstr ""
+msgstr "Wyświetla zawartość archiwum."
#: src/ar.c:84
msgid "Extract files from archive."
-msgstr ""
+msgstr "Wypakowuje pliki z archiwum."
#: src/ar.c:86
msgid "Command Modifiers:"
-msgstr ""
+msgstr "Modyfikatory poleceń:"
#: src/ar.c:87
msgid "Preserve original dates."
-msgstr ""
+msgstr "Zachowuje pierwotne daty."
#: src/ar.c:88
msgid "Use instance [COUNT] of name."
-msgstr ""
+msgstr "Używa wystąpienia [LICZNIK] nazwy."
#: src/ar.c:90
msgid "Do not replace existing files with extracted files."
-msgstr ""
+msgstr "Nie zastępuje istniejących plików wypakowanymi plikami."
#: src/ar.c:91
msgid "Allow filename to be truncated if necessary."
-msgstr ""
+msgstr "Zezwala na skrócenie nazwy pliku, jeśli jest to wymagane."
#: src/ar.c:93
msgid "Provide verbose output."
-msgstr ""
+msgstr "Wyświetla więcej informacji."
#: src/ar.c:94
msgid "Force regeneration of symbol table."
-msgstr ""
+msgstr "Wymusza ponowne utworzenie tablicy symboli."
#: src/ar.c:95
msgid "Insert file after [MEMBER]."
-msgstr ""
+msgstr "Umieszcza plik po [ELEMENCIE]."
#: src/ar.c:96
msgid "Insert file before [MEMBER]."
-msgstr ""
+msgstr "Umieszcza plik przed [ELEMENTEM]."
#: src/ar.c:97
-#, fuzzy
msgid "Same as -b."
-msgstr "To samo co --format=bsd"
+msgstr "To samo, co -b."
#: src/ar.c:98
msgid "Suppress message when library has to be created."
-msgstr ""
+msgstr "Zmniejsza komunikat, jeśli biblioteka musi zostać utworzona."
#: src/ar.c:100
msgid "Use full path for file matching."
-msgstr ""
+msgstr "Używa pełnej ścieżki do dopasowywania plików."
#: src/ar.c:101
msgid "Update only older files in archive."
-msgstr ""
+msgstr "Aktualizuje tylko starsze pliki w archiwum."
#: src/ar.c:107
-#, fuzzy
msgid "Create, modify, and extract from archives."
-msgstr "Słabe odwołania powodują wyciągnięcie z archiwum."
+msgstr "Tworzenie, modyfikowanie i wypakowywanie archiwów."
#: src/ar.c:110
msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
-msgstr ""
+msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK...]"
#: src/ar.c:192
#, c-format
@@ -797,14 +758,14 @@ msgid "More than one operation specified"
msgstr "Nie podano operacji.\n"
#: src/ar.c:404
-#, fuzzy, c-format
+#, c-format
msgid "cannot open archive '%s'"
-msgstr "nie można otworzyć '%s'"
+msgstr "nie można otworzyć archiwum \"%s\""
#: src/ar.c:414
-#, fuzzy, c-format
+#, c-format
msgid "cannot open archive '%s': %s"
-msgstr "nie można odczytać archiwum `%s': %s"
+msgstr "nie można otworzyć archiwum \"%s\": %s"
#: src/ar.c:418
#, fuzzy, c-format
@@ -812,14 +773,14 @@ msgid "%s: not an archive file"
msgstr "Łączenie plików obiektów i archiwów."
#: src/ar.c:422
-#, fuzzy, c-format
+#, c-format
msgid "cannot stat archive '%s'"
-msgstr "nie można wykonać stat na '%s'"
+msgstr "nie można wykonać stat na archiwum \"%s\""
#: src/ar.c:434
-#, fuzzy, c-format
+#, c-format
msgid "no entry %s in archive\n"
-msgstr "'%s' nie jest archiwum"
+msgstr "brak wpisu %s w archiwum\n"
#: src/ar.c:487 src/ar.c:929 src/ar.c:1129
#, fuzzy, c-format
@@ -834,7 +795,7 @@ msgstr "nie można utworzyć tabeli łańcuchów"
#: src/ar.c:502 src/ranlib.c:176
#, 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
#, fuzzy, c-format
@@ -842,14 +803,14 @@ msgid "cannot read content of %s: %s"
msgstr "nie można pobrać zawartości sekcji %zu: %s"
#: src/ar.c:641
-#, fuzzy, c-format
+#, c-format
msgid "cannot open %.*s"
-msgstr "nie można otworzyć %s"
+msgstr "nie można otworzyć %.*s"
#: src/ar.c:663
#, c-format
msgid "failed to write %s"
-msgstr ""
+msgstr "zapisanie %s nie powiodło się"
#: src/ar.c:675
#, fuzzy, c-format
@@ -859,7 +820,7 @@ msgstr "nie można zmienić uprawnień pliku wyjściowego"
#: src/ar.c:691
#, fuzzy, c-format
msgid "cannot change modification time 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/ar.c:737
#, fuzzy, c-format
@@ -879,7 +840,7 @@ msgstr ""
#: src/ar.c:1230
#, fuzzy, c-format
msgid "%s: no entry %s in archive!\n"
-msgstr "'%s' nie jest archiwum"
+msgstr "%s nie jest archiwum"
#: src/ar.c:1259 src/ldgeneric.c:519 src/objdump.c:257
#, c-format
@@ -889,7 +850,7 @@ msgstr "nie można otworzyć %s"
#: src/ar.c:1264
#, fuzzy, 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:1270
#, fuzzy, c-format
@@ -899,7 +860,7 @@ msgstr "to nie jest zwykły plik"
#: src/ar.c:1283
#, fuzzy, c-format
msgid "cannot get ELF descriptor for %s: %s\n"
-msgstr "nie można utworzyć deskryptora ELF dla '%s': %s"
+msgstr "nie można utworzyć deskryptora ELF dla %s: %s"
#: src/ar.c:1302
#, fuzzy, c-format
@@ -914,7 +875,7 @@ msgstr ""
#: src/arlib.c:228
#, fuzzy, c-format
msgid "cannot read ELF header of %s(%s): %s"
-msgstr "nie można pobrać nagłówka ELF '%s': %s"
+msgstr "nie można pobrać nagłówka ELF %s: %s"
#: src/elfcmp.c:69
msgid "Control options:"
@@ -951,7 +912,7 @@ msgstr "Błędna liczba parametrów.\n"
#: src/elfcmp.c:168 src/elfcmp.c:173
#, c-format
msgid "cannot get ELF header of '%s': %s"
-msgstr "nie można pobrać nagłówka ELF '%s': %s"
+msgstr "nie można pobrać nagłówka ELF \"%s\": %s"
#: src/elfcmp.c:190
#, c-format
@@ -971,7 +932,7 @@ msgstr "%s %s różnią się: nagłówek sekcji"
#: src/elfcmp.c:214 src/elfcmp.c:217
#, fuzzy, c-format
msgid "cannot get program header count of '%s': %s"
-msgstr "nie można pobrać wpisu nagłówka programu %d z '%s': %s"
+msgstr "nie można pobrać wpisu nagłówka programu %d z \"%s\": %s"
#: src/elfcmp.c:222
#, fuzzy, c-format
@@ -986,12 +947,12 @@ msgstr "%s %s różnią się: nagłówek sekcji"
#: src/elfcmp.c:309 src/elfcmp.c:315
#, c-format
msgid "cannot get content of section %zu in '%s': %s"
-msgstr "nie można pobrać zawartości sekcji %zu w '%s': %s"
+msgstr "nie można pobrać zawartości sekcji %zu w \"%s\": %s"
#: src/elfcmp.c:331 src/elfcmp.c:337
#, c-format
msgid "cannot get symbol in '%s': %s"
-msgstr "nie można pobrać symbolu w '%s': %s"
+msgstr "nie można pobrać symbolu w \"%s\": %s"
#: src/elfcmp.c:358
#, c-format
@@ -1006,12 +967,12 @@ msgstr "%s %s różnią się: tabela symboli [%zu,%zu]"
#: src/elfcmp.c:409
#, 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:413
#, 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:429
#, c-format
@@ -1021,12 +982,12 @@ msgstr "%s %s różnią się: różna liczba ważnych sekcji"
#: src/elfcmp.c:463 src/elfcmp.c:468
#, c-format
msgid "cannot load data of '%s': %s"
-msgstr "nie można odczytać danych z '%s': %s"
+msgstr "nie można odczytać danych z \"%s\": %s"
#: src/elfcmp.c:487 src/elfcmp.c:493
#, c-format
msgid "cannot get program header entry %d of '%s': %s"
-msgstr "nie można pobrać wpisu nagłówka programu %d z '%s': %s"
+msgstr "nie można pobrać wpisu nagłówka programu %d z \"%s\": %s"
#: src/elfcmp.c:499
#, c-format
@@ -1041,25 +1002,25 @@ msgstr "%s %s różnią się: luka"
#: src/elfcmp.c:583
#, c-format
msgid "Invalid value '%s' for --gaps parameter."
-msgstr "Błędna wartość '%s' dla parametru --gaps."
+msgstr "Błędna wartość \"%s\" dla parametru --gaps."
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900
-#: src/unstrip.c:1929
+#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
-msgstr "nie można otworzyć '%s'"
+msgstr "nie można otworzyć \"%s\""
#: src/elfcmp.c:611 src/findtextrel.c:236 src/ranlib.c:186
#, 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:616
#, 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:634
#, c-format
@@ -1105,7 +1066,7 @@ msgstr ""
msgid "FILE..."
msgstr "PLIK..."
-#: src/elflint.c:159 src/readelf.c:272
+#: src/elflint.c:159 src/readelf.c:273
#, c-format
msgid "cannot open input file"
msgstr "nie można otworzyć pliku wejściowego"
@@ -1124,7 +1085,7 @@ msgstr "błąd podczas zamykania deskryptora Elf: %s\n"
msgid "No errors"
msgstr "Bez błędów"
-#: src/elflint.c:223 src/readelf.c:425
+#: src/elflint.c:223 src/readelf.c:426
msgid "Missing file name.\n"
msgstr "Brak nazwy pliku.\n"
@@ -1156,7 +1117,7 @@ msgstr "nieznany numer wersji nagłówka ELF e_ident[%d] == %d\n"
#: src/elflint.c:385
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
-msgstr "nieobsługiwane OS ABI e_ident[%d] == '%s'\n"
+msgstr "nieobsługiwane OS ABI e_ident[%d] == \"%s\"\n"
#: src/elflint.c:391
#, c-format
@@ -1260,21 +1221,22 @@ msgid ""
"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:573
#, fuzzy, 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:589 src/elflint.c:1432 src/elflint.c:1482 src/elflint.c:1591
#: src/elflint.c:2185 src/elflint.c:2699 src/elflint.c:2860 src/elflint.c:2990
#: src/elflint.c:3162 src/elflint.c:4062
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać danych sekcji\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać danych sekcji\n"
#: src/elflint.c:602 src/elflint.c:1598
#, c-format
@@ -1282,8 +1244,8 @@ 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 łańcuchów dla sekcji [%2d] '%s', ale "
-"nie jest typu SHT_STRTAB\n"
+"sekcja [%2d] \"%s\": użyta jako tabela łańcuchów dla sekcji [%2d] \"%s\", "
+"ale nie jest typu SHT_STRTAB\n"
#: src/elflint.c:625
#, c-format
@@ -1291,39 +1253,39 @@ msgid ""
"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:636
#, fuzzy, c-format
msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
-msgstr "sekcja [%2zu] '%s': rozmiar wpisu nie zgadza się z ElfXX_Sym\n"
+msgstr "sekcja [%2zu] \"%s\": rozmiar wpisu nie zgadza się z ElfXX_Sym\n"
#: src/elflint.c:645
#, c-format
msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać symbolu %d: %s\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać symbolu %d: %s\n"
#: src/elflint.c:650 src/elflint.c:653 src/elflint.c:656 src/elflint.c:659
#: src/elflint.c:662 src/elflint.c:665
#, 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:668
#, 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:678
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać symbolu %zu: %s\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać symbolu %zu: %s\n"
#: src/elflint.c:687
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędna wartość nazwy\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędna wartość nazwy\n"
#: src/elflint.c:700
#, c-format
@@ -1331,7 +1293,7 @@ msgid ""
"section [%2d] '%s': symbol %zu: too large section index but no extended "
"section index section\n"
msgstr ""
-"sekcja [%2d] '%s': symbol %zu: zbyt duży indeks sekcji, ale nie ma sekcji "
+"sekcja [%2d] \"%s\": symbol %zu: zbyt duży indeks sekcji, ale nie ma sekcji "
"rozszerzonych indeksów sekcji\n"
#: src/elflint.c:706
@@ -1340,52 +1302,52 @@ msgid ""
"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:718
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid section index\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n"
#: src/elflint.c:726
#, 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:732
#, 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:737
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu: unique symbol not of object type\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: nieznany typ\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n"
#: src/elflint.c:745
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu: COMMON only allowed in relocatable files\n"
msgstr ""
-"sekcja [%2d] '%s': symbol %zu: COMMON dopuszczalne tylko w plikach "
+"sekcja [%2d] \"%s\": symbol %zu: COMMON dopuszczalne tylko w plikach "
"relokowalnych\n"
#: src/elflint.c:749
#, 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:753
#, 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:785
#, 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:791 src/elflint.c:816 src/elflint.c:859
#, c-format
@@ -1393,8 +1355,8 @@ 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:800
#, c-format
@@ -1402,7 +1364,7 @@ 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 ma "
+"sekcja [%2d] \"%s\": symbol %zu: wskazywana sekcja [%2d] \"%s\" nie ma "
"ustawionej flagi SHF_TLS\n"
#: src/elflint.c:810 src/elflint.c:852
@@ -1411,15 +1373,15 @@ 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:837
#, 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:845
@@ -1428,7 +1390,8 @@ 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:872
#, c-format
@@ -1436,7 +1399,7 @@ msgid ""
"section [%2d] '%s': symbol %zu: local symbol outside range described in "
"sh_info\n"
msgstr ""
-"sekcja [%2d] '%s': symbol %zu: symbol lokalny spoza zakresu określonego w "
+"sekcja [%2d] \"%s\": symbol %zu: symbol lokalny spoza zakresu określonego w "
"sh_info\n"
#: src/elflint.c:879
@@ -1445,13 +1408,13 @@ msgid ""
"section [%2d] '%s': symbol %zu: non-local symbol outside range described in "
"sh_info\n"
msgstr ""
-"sekcja [%2d] '%s': symbol %zu: symbol nie-lokalny spoza zakresu określonego "
-"w sh_info\n"
+"sekcja [%2d] \"%s\": symbol %zu: symbol nie-lokalny spoza zakresu "
+"określonego w sh_info\n"
#: src/elflint.c:886
#, c-format
msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: nie-lokalny symbol sekcji\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: nie-lokalny symbol sekcji\n"
#: src/elflint.c:936
#, fuzzy, c-format
@@ -1459,7 +1422,7 @@ 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 złej sekcji\n"
+"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do złej sekcji\n"
#: src/elflint.c:943
#, fuzzy, c-format
@@ -1467,7 +1430,7 @@ 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 złej sekcji\n"
+"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do złej sekcji\n"
#: src/elflint.c:959
#, c-format
@@ -1475,7 +1438,7 @@ 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:966
@@ -1484,7 +1447,7 @@ 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:974
@@ -1493,7 +1456,7 @@ 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:990
@@ -1502,8 +1465,8 @@ 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:997
#, c-format
@@ -1511,7 +1474,7 @@ 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:1010
@@ -1519,22 +1482,22 @@ msgstr ""
msgid ""
"section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-"
"default visibility\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:1014
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: nieznany typ\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n"
#: src/elflint.c:1059
#, c-format
msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
-msgstr "sekcja [%2d] '%s': wartość DT_RELCOUNT użyta dla tej sekcji RELA\n"
+msgstr "sekcja [%2d] \"%s\": wartość DT_RELCOUNT użyta dla tej sekcji RELA\n"
#: src/elflint.c:1068 src/elflint.c:1120
#, c-format
msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
-msgstr "sekcja [%2d] '%s': wartość DT_RELCOUNT %d zbyt duża dla tej sekcji\n"
+msgstr "sekcja [%2d] \"%s\": wartość DT_RELCOUNT %d zbyt duża dla tej sekcji\n"
#: src/elflint.c:1093 src/elflint.c:1145
#, c-format
@@ -1542,7 +1505,7 @@ 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 określonym przez "
+"sekcja [%2d] \"%s\": relokacje względne po indeksie %d określonym przez "
"DT_RELCOUNT\n"
#: src/elflint.c:1099 src/elflint.c:1151
@@ -1551,38 +1514,39 @@ 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 "
+"sekcja [%2d] \"%s\": relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT "
"określił %d relokacji względnych\n"
#: src/elflint.c:1111
#, 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:1193
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
-msgstr "sekcja [%2d] '%s': błędny indeks sekcji docelowej\n"
+msgstr "sekcja [%2d] \"%s\": błędny indeks sekcji docelowej\n"
#: src/elflint.c:1206
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
-msgstr "sekcja [%2d] '%s': błędny typ sekcji docelowej\n"
+msgstr "sekcja [%2d] \"%s\": błędny typ sekcji docelowej\n"
#: src/elflint.c:1214
#, c-format
msgid "section [%2d] '%s': sh_info should be zero\n"
-msgstr "sekcja [%2d] '%s': sh_info nie jest zerem\n"
+msgstr "sekcja [%2d] \"%s\": sh_info nie jest zerem\n"
#: src/elflint.c:1221
#, c-format
msgid "section [%2d] '%s': no relocations for merge-able sections possible\n"
-msgstr "sekcja [%2d] '%s': relokacje dla sekcji złączalnych niemożliwe\n"
+msgstr "sekcja [%2d] \"%s\": relokacje dla sekcji złączalnych niemożliwe\n"
#: src/elflint.c:1228
#, 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:1288
#, c-format
@@ -1593,7 +1557,7 @@ msgstr ""
#: src/elflint.c:1315
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
-msgstr "sekcja [%2d] '%s': relokacja %zu: błędny typ\n"
+msgstr "sekcja [%2d] \"%s\": relokacja %zu: błędny typ\n"
#: src/elflint.c:1323
#, c-format
@@ -1601,12 +1565,13 @@ msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
"type\n"
msgstr ""
-"sekcja [%2d] '%s': relokacja %zu: typ relokacji błędny dla tego typu pliku\n"
+"sekcja [%2d] \"%s\": relokacja %zu: typ relokacji błędny dla tego typu "
+"pliku\n"
#: src/elflint.c:1331
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
-msgstr "sekcja [%2d] '%s': relokacja %zu: błędny indeks symbolu\n"
+msgstr "sekcja [%2d] \"%s\": relokacja %zu: błędny indeks symbolu\n"
#: src/elflint.c:1349
#, c-format
@@ -1614,13 +1579,13 @@ 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 "
+"sekcja [%2d] \"%s\": relokacja %zu: z %s można użyć tylko symbolu "
"'_GLOBAL_OFFSET_TABLE_'\n"
#: src/elflint.c:1366
#, 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:1381
#, c-format
@@ -1628,7 +1593,8 @@ 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:1402
#, c-format
@@ -1636,19 +1602,19 @@ 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 modyfikowana, ale "
-"flaga relokacji tekstu nie ustawiona\n"
+"sekcja [%2d] \"%s\": relokacja %zu: sekcja tylko do odczytu modyfikowana, "
+"ale flaga relokacji tekstu nie ustawiona\n"
#: src/elflint.c:1417
#, 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:1456 src/elflint.c:1506
#, c-format
msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać relokacji %zu: %s\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać relokacji %zu: %s\n"
#: src/elflint.c:1586
#, c-format
@@ -1658,44 +1624,46 @@ msgstr "obecna więcej niż jedna sekcja dynamiczna\n"
#: src/elflint.c:1604
#, 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:1609 src/elflint.c:1901
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
-msgstr "sekcja [%2d] '%s': sh_info nie jest zerem\n"
+msgstr "sekcja [%2d] \"%s\": sh_info nie jest zerem\n"
#: src/elflint.c:1619
#, c-format
msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać wpisu %zu sekcji dynamicznej: %s\n"
+msgstr ""
+"sekcja [%2d] \"%s\": nie można pobrać wpisu %zu sekcji dynamicznej: %s\n"
#: src/elflint.c:1627
#, 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:1634
#, 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:1645
#, 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:1655
#, 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:1673
#, 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ścią DT_PLTREL musi być DT_REL lub "
+"sekcja [%2d] \"%s\": wpis %zu: wartością DT_PLTREL musi być DT_REL lub "
"DT_RELA\n"
#: src/elflint.c:1695
@@ -1704,15 +1672,15 @@ 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:1738
#, 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 załadowany "
+"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi wskazywać na załadowany "
"segment\n"
#: src/elflint.c:1753
@@ -1721,54 +1689,55 @@ 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ć poprawnym offsetem w sekcji "
-"[%2d] '%s'\n"
+"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi być poprawnym offsetem w "
+"sekcji [%2d] \"%s\"\n"
#: src/elflint.c:1773 src/elflint.c:1801
#, 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:1785
#, 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:1794
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
-msgstr "sekcja [%2d] '%s': brak sekcji haszy\n"
+msgstr "sekcja [%2d] \"%s\": brak sekcji haszy\n"
#: src/elflint.c:1809 src/elflint.c:1816
#, 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:1826 src/elflint.c:1830
#, c-format
msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
msgstr ""
-"sekcja [%2d] '%s': brak znacznika %s w DSO zaznaczonym przy prelinkowaniu\n"
+"sekcja [%2d] \"%s\": brak znacznika %s w DSO zaznaczonym przy prelinkowaniu\n"
#: src/elflint.c:1836
#, c-format
msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
msgstr ""
-"sekcja [%2d] '%s': plik nie-DSO zaznaczony jako zależność przy "
+"sekcja [%2d] \"%s\": plik nie-DSO zaznaczony jako zależność przy "
"prelinkowaniu\n"
#: src/elflint.c:1847 src/elflint.c:1851 src/elflint.c:1855 src/elflint.c:1859
#, c-format
msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
msgstr ""
-"sekcja [%2d] '%s': brak znacznika %s w prelinkowanym programie wykonywalnym\n"
+"sekcja [%2d] \"%s\": brak znacznika %s w prelinkowanym programie "
+"wykonywalnym\n"
#: src/elflint.c:1871
#, 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:1881
@@ -1776,7 +1745,7 @@ msgstr ""
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:1886
@@ -1787,13 +1756,14 @@ msgstr "nie można pobrać danych dla sekcji symboli\n"
#: src/elflint.c:1889
#, 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:1896
#, c-format
msgid "section [%2d] '%s': extended index table too small for symbol table\n"
msgstr ""
-"sekcja [%2d] '%s': tabela rozszerzonych indeksów za mała dla tabeli symboli\n"
+"sekcja [%2d] \"%s\": tabela rozszerzonych indeksów za mała dla tabeli "
+"symboli\n"
#: src/elflint.c:1911
#, c-format
@@ -1801,8 +1771,8 @@ 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:1922
#, c-format
@@ -1825,34 +1795,34 @@ msgstr ""
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
msgstr ""
-"sekcja [%2d] '%s': sekcja tablicy haszującej jest zbyt mała (%ld, oczekiwano "
-"%ld)\n"
+"sekcja [%2d] \"%s\": sekcja tablicy haszującej jest zbyt mała (%ld, "
+"oczekiwano %ld)\n"
#: src/elflint.c:1967 src/elflint.c:2008
#, c-format
msgid "section [%2d] '%s': chain array too large\n"
-msgstr "sekcja [%2d] '%s': tablica łańcuchowa zbyt duża\n"
+msgstr "sekcja [%2d] \"%s\": tablica łańcuchowa zbyt duża\n"
#: src/elflint.c:1976 src/elflint.c:2017
#, c-format
msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
-msgstr "sekcja [%2d] '%s': odwołanie do kubełka hasza %zu spoza zakresu\n"
+msgstr "sekcja [%2d] \"%s\": odwołanie do kubełka hasza %zu spoza zakresu\n"
#: src/elflint.c:1982
#, c-format
msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
-msgstr "sekcja [%2d] '%s': odwołanie do łańcucha hasza %zu spoza zakresu\n"
+msgstr "sekcja [%2d] \"%s\": odwołanie do łańcucha hasza %zu spoza zakresu\n"
#: src/elflint.c:2023
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
-"sekcja [%2d] '%s': odwołanie do łańcucha hasza %<PRIu64> spoza zakresu\n"
+"sekcja [%2d] \"%s\": odwołanie do łańcucha hasza %<PRIu64> spoza zakresu\n"
#: src/elflint.c:2038
#, c-format
msgid "section [%2d] '%s': bitmask size not power of 2: %u\n"
-msgstr "sekcja [%2d] '%s': rozmiar maski bitowej nie jest potęgą 2: %u\n"
+msgstr "sekcja [%2d] \"%s\": rozmiar maski bitowej nie jest potęgą 2: %u\n"
#: src/elflint.c:2049
#, c-format
@@ -1860,21 +1830,21 @@ msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
"least%ld)\n"
msgstr ""
-"sekcja [%2d] '%s': sekcja tablicy haszującej jest zbyt mała (%ld, oczekiwano "
-"co najmniej %ld)\n"
+"sekcja [%2d] \"%s\": sekcja tablicy haszującej jest zbyt mała (%ld, "
+"oczekiwano co najmniej %ld)\n"
#: src/elflint.c:2057
#, c-format
msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
msgstr ""
-"sekcja [%2d] '%s': drugie przesunięcie funkcji haszującej zbyt duże: %u\n"
+"sekcja [%2d] \"%s\": drugie przesunięcie funkcji haszującej zbyt duże: %u\n"
#: src/elflint.c:2089
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
msgstr ""
-"sekcja [%2d] '%s': łańcuch haszujący dla kubełka %zu mniejszy niż "
+"sekcja [%2d] \"%s\": łańcuch haszujący dla kubełka %zu mniejszy niż "
"przesunięcie indeksu symboli\n"
#: src/elflint.c:2110
@@ -1883,7 +1853,7 @@ 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 "
"niezdefiniowany\n"
#: src/elflint.c:2121
@@ -1891,49 +1861,49 @@ msgstr ""
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
msgstr ""
-"sekcja [%2d] '%s': wartość hasza dla symbolu %u w łańcuchu dla kubełka %zu "
+"sekcja [%2d] \"%s\": wartość hasza dla symbolu %u w łańcuchu dla kubełka %zu "
"jest błędna\n"
#: src/elflint.c:2152
#, c-format
msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
-msgstr "sekcja [%2d] '%s': łańcuch hasza dla kubełka %zu spoza zakresu\n"
+msgstr "sekcja [%2d] \"%s\": łańcuch hasza dla kubełka %zu spoza zakresu\n"
#: src/elflint.c:2157
#, 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 spoza "
+"sekcja [%2d] \"%s\": odwołanie do symbolu w łańcuchu dla kubełka %zu spoza "
"zakresu\n"
#: src/elflint.c:2163
#, 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 tablicy haszującej\n"
+"sekcja [%2d] \"%s\": maska bitowa nie pasuje do nazw w tablicy haszującej\n"
#: src/elflint.c:2176
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
-"sekcja [%2d] '%s': pliki relokowalne nie mogą mieć tablic haszujących\n"
+"sekcja [%2d] \"%s\": pliki relokowalne nie mogą mieć tablic haszujących\n"
#: src/elflint.c:2194
#, c-format
msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
msgstr ""
-"sekcja [%2d] '%s': tablica haszująca nie dla tabeli dynamicznych symboli\n"
+"sekcja [%2d] \"%s\": tablica haszująca nie dla tabeli dynamicznych symboli\n"
#: src/elflint.c:2202
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
-msgstr "sekcja [%2d] '%s': niepoprawny rozmiar wpisu tablicy haszującej\n"
+msgstr "sekcja [%2d] \"%s\": niepoprawny rozmiar wpisu tablicy haszującej\n"
#: src/elflint.c:2207
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
-msgstr "sekcja [%2d] '%s': nie oznaczona do przydzielenia\n"
+msgstr "sekcja [%2d] \"%s\": nie oznaczona do przydzielenia\n"
#: src/elflint.c:2212
#, c-format
@@ -1941,18 +1911,19 @@ msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
"entries\n"
msgstr ""
-"sekcja [%2d] '%s': tablica haszująca nie ma miejsca nawet na początkowe "
+"sekcja [%2d] \"%s\": tablica haszująca nie ma miejsca nawet na początkowe "
"wpisy administracyjne\n"
#: src/elflint.c:2260
#, c-format
msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
-msgstr "sh_link w sekcjach hash [%2zu] '%s' i [%2zu] '%s' nie są identyczne\n"
+msgstr ""
+"sh_link w sekcjach hash [%2zu] \"%s\" i [%2zu] \"%s\" nie są identyczne\n"
#: src/elflint.c:2338 src/elflint.c:2342
#, 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:2349
#, c-format
@@ -1960,8 +1931,8 @@ 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 tablicy haszującej w [%2zu] '%s', ale nie w "
-"starej tablicy haszującej [%2zu] '%s'\n"
+"symbol %d wymieniony w nowej tablicy haszującej w [%2zu] \"%s\", ale nie w "
+"starej tablicy haszującej [%2zu] \"%s\"\n"
#: src/elflint.c:2361
#, c-format
@@ -1969,105 +1940,105 @@ 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 starej tablicy haszującej w [%2zu] '%s', ale nie w "
-"nowej tablicy haszującej w [%2zu] '%s'\n"
+"symbol %d wymieniony w starej tablicy haszującej w [%2zu] \"%s\", ale nie w "
+"nowej tablicy haszującej w [%2zu] \"%s\"\n"
#: src/elflint.c:2377
#, 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:2397
#, 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:2408
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać tabeli symboli: %s\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać tabeli symboli: %s\n"
#: src/elflint.c:2413
#, 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 ma tabeli symboli\n"
+"sekcja [%2d] \"%s\": odwołanie do sekcji w sh_link nie ma tabeli symboli\n"
#: src/elflint.c:2419
#, c-format
msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
-msgstr "sekcja [%2d] '%s': błędny indeks symbolu w sh_info\n"
+msgstr "sekcja [%2d] \"%s\": błędny indeks symbolu w sh_info\n"
#: src/elflint.c:2424
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
-msgstr "sekcja [%2d] '%s': niezerowe sh_flags\n"
+msgstr "sekcja [%2d] \"%s\": niezerowe sh_flags\n"
#: src/elflint.c:2431
#, fuzzy, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać symbolu %d: %s\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać symbolu %d: %s\n"
#: src/elflint.c:2436
#, fuzzy, c-format
msgid "section [%2d] '%s': signature symbol cannot be empty string\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:2442
#, 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:2448
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać danych: %s\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać danych: %s\n"
#: src/elflint.c:2457
#, 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ą sizeof"
+"sekcja [%2d] \"%s\": rozmiar sekcji nie jest wielokrotnością sizeof"
"(Elf32_Word)\n"
#: src/elflint.c:2462
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
-msgstr "sekcja [%2d] '%s': grupa sekcji bez słowa flag\n"
+msgstr "sekcja [%2d] \"%s\": grupa sekcji bez słowa flag\n"
#: src/elflint.c:2468
#, 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 elementów\n"
#: src/elflint.c:2472
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
-msgstr "sekcja [%2d] '%s': grupa sekcji z tylko jednym elementem\n"
+msgstr "sekcja [%2d] \"%s\": grupa sekcji z tylko jednym elementem\n"
#: src/elflint.c:2483
#, 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:2495
#, c-format
msgid "section [%2d] '%s': section index %Zu out of range\n"
-msgstr "sekcja [%2d] '%s': indeks sekcji %Zu spoza zakresu\n"
+msgstr "sekcja [%2d] \"%s\": indeks sekcji %Zu spoza zakresu\n"
#: src/elflint.c:2504
#, c-format
msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
msgstr ""
-"sekcja [%2d] '%s': nie można pobrać nagłówka sekcji dla elementu %zu: %s\n"
+"sekcja [%2d] \"%s\": nie można pobrać nagłówka sekcji dla elementu %zu: %s\n"
#: src/elflint.c:2511
#, 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:2517
#, c-format
@@ -2075,13 +2046,13 @@ 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:2524
#, 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:2713
#, c-format
@@ -2089,7 +2060,7 @@ 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:2724
@@ -2098,34 +2069,34 @@ msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] '%"
"s'\n"
msgstr ""
-"sekcja [%2d] '%s' ma inną liczbę wpisów niż tabela symboli [%2d] '%s'\n"
+"sekcja [%2d] \"%s\" ma inną liczbę wpisów niż tabela symboli [%2d] \"%s\"\n"
#: src/elflint.c:2740
#, 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:2756
#, 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:2764
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
-msgstr "sekcja [%2d] '%s': symbol %d: symbol lokalny z wersją\n"
+msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z wersją\n"
#: src/elflint.c:2778
#, c-format
msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
-msgstr "sekcja [%2d] '%s': symbol %d: błędny indeks wersji %d\n"
+msgstr "sekcja [%2d] \"%s\": symbol %d: błędny indeks wersji %d\n"
#: src/elflint.c:2783
#, 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 "
+"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji "
"zdefiniowanej\n"
#: src/elflint.c:2793
@@ -2133,7 +2104,7 @@ msgstr ""
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:2845
#, c-format
@@ -2143,32 +2114,32 @@ msgstr "obecna więcej niż jedna sekcja odniesienia wersji\n"
#: src/elflint.c:2853 src/elflint.c:2982
#, 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ą łańcuchów\n"
+msgstr "sekcja [%2d] \"%s\": sh_link nie łączy się z tabelą łańcuchów\n"
#: src/elflint.c:2876 src/elflint.c:3034
#, c-format
msgid "section [%2d] '%s': entry %d has wrong version %d\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma złą wersję %d\n"
+msgstr "sekcja [%2d] \"%s\": wpis %d ma złą wersję %d\n"
#: src/elflint.c:2882 src/elflint.c:3040
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma zły offset dla danych dodatkowych\n"
+msgstr "sekcja [%2d] \"%s\": wpis %d ma zły offset dla danych dodatkowych\n"
#: src/elflint.c:2890
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
-msgstr "sekcja [%2d] '%s': symbol %d ma błędne odniesienie do pliku\n"
+msgstr "sekcja [%2d] \"%s\": symbol %d ma błędne odniesienie do pliku\n"
#: src/elflint.c:2898
#, 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:2910
#, 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 ma nieznaną flagę\n"
+msgstr "sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma nieznaną flagę\n"
#: src/elflint.c:2917
#, c-format
@@ -2176,7 +2147,7 @@ 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 ma błędne odniesienie do "
+"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma błędne odniesienie do "
"nazwy\n"
#: src/elflint.c:2924
@@ -2185,8 +2156,8 @@ 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 ma złą wartość hasza: %#x, "
-"oczekiwano %#x\n"
+"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma złą wartość hasza: %"
+"#x, oczekiwano %#x\n"
#: src/elflint.c:2934
#, c-format
@@ -2194,20 +2165,20 @@ 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 ma powtórzoną nazwę wersji "
-"'%s'\n"
+"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma powtórzoną nazwę "
+"wersji \"%s\"\n"
#: src/elflint.c:2945
#, 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 ma złe następne pole\n"
+"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma złe następne pole\n"
#: src/elflint.c:2961 src/elflint.c:3119
#, c-format
msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma błędny offset do następnego wpisu\n"
+msgstr "sekcja [%2d] \"%s\": wpis %d ma błędny offset do następnego wpisu\n"
#: src/elflint.c:2974
#, c-format
@@ -2217,142 +2188,149 @@ msgstr "obecna więcej niż jedna sekcja definicji wersji\n"
#: src/elflint.c:3019
#, 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:3023
#, c-format
msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
-msgstr "sekcja [%2d] '%s': definicja BASE musi mieć indeks VER_NDX_GLOBAL\n"
+msgstr "sekcja [%2d] \"%s\": definicja BASE musi mieć indeks VER_NDX_GLOBAL\n"
#: src/elflint.c:3029
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma nieznaną flagę\n"
+msgstr "sekcja [%2d] \"%s\": wpis %d ma nieznaną flagę\n"
#: src/elflint.c:3053
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma błędne odniesienie do nazwy\n"
+msgstr "sekcja [%2d] \"%s\": wpis %d ma błędne odniesienie do nazwy\n"
#: src/elflint.c:3060
#, c-format
msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma złą wartość hasza: %#x, oczekiwano %#x\n"
+msgstr ""
+"sekcja [%2d] \"%s\": wpis %d ma złą wartość hasza: %#x, oczekiwano %#x\n"
#: src/elflint.c:3069
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma powtórzoną nazwę wersji '%s'\n"
+msgstr "sekcja [%2d] \"%s\": wpis %d ma powtórzoną nazwę wersji \"%s\"\n"
#: src/elflint.c:3088
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
msgstr ""
-"sekcja [%2d] '%s': wpis %d ma błędne odniesienie do nazwy w danych "
+"sekcja [%2d] \"%s\": wpis %d ma błędne odniesienie do nazwy w danych "
"dodatkowych\n"
#: src/elflint.c:3103
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma złe następne pole w danych dodatkowych\n"
+msgstr ""
+"sekcja [%2d] \"%s\": wpis %d ma złe następne pole w danych dodatkowych\n"
#: src/elflint.c:3125
#, 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:3141
#, 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:3154
#, fuzzy, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać danych sekcji\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać danych sekcji\n"
#: src/elflint.c:3175
#, fuzzy, c-format
msgid "section [%2d] '%s': unrecognized attribute format\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:3191
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
-msgstr "sekcja [%2d] '%s': wpis %d ma złe następne pole w danych dodatkowych\n"
+msgstr ""
+"sekcja [%2d] \"%s\": wpis %d ma złe następne pole w danych dodatkowych\n"
#: src/elflint.c:3200
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
-msgstr "sekcja [%2d] '%s': błędny typ sekcji docelowej\n"
+msgstr "sekcja [%2d] \"%s\": błędny typ sekcji docelowej\n"
#: src/elflint.c:3212
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
-msgstr "sekcja [%2d] '%s': wpis %zu: nieznany znacznik\n"
+msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n"
#: src/elflint.c:3229
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n"
#: src/elflint.c:3238
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n"
#: src/elflint.c:3247
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\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:3260
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
-msgstr "sekcja [%2d] '%s': błędny typ sekcji docelowej\n"
+msgstr "sekcja [%2d] \"%s\": błędny typ sekcji docelowej\n"
#: src/elflint.c:3271
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\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:3289
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\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:3300
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n"
#: src/elflint.c:3313
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\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:3317
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędna wartość nazwy\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędna wartość nazwy\n"
#: src/elflint.c:3327
#, fuzzy, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
-msgstr "sekcja [%2d] '%s': wpis %zu: nieznany znacznik\n"
+msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n"
#: src/elflint.c:3333
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\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:3422
#, c-format
@@ -2424,7 +2402,7 @@ msgstr ""
#: src/elflint.c:3466
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
-msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] '%s': %s\n"
+msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] \"%s\": %s\n"
#: src/elflint.c:3475
#, c-format
@@ -2434,51 +2412,53 @@ msgstr "sekcja [%2zu]: błędna nazwa\n"
#: src/elflint.c:3502
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
-msgstr "sekcja [%2d] '%s' ma zły typ: oczekiwano %s, jest %s\n"
+msgstr "sekcja [%2d] \"%s\" ma zły typ: oczekiwano %s, jest %s\n"
#: src/elflint.c:3518
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
-msgstr "sekcja [%2zu] '%s' ma złe flagi: oczekiwano %s, jest %s\n"
+msgstr "sekcja [%2zu] \"%s\" ma złe flagi: oczekiwano %s, jest %s\n"
#: src/elflint.c:3535
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
msgstr ""
-"sekcja [%2zu] '%s' ma złe flagi: oczekiwano %s i być może %s, jest %s\n"
+"sekcja [%2zu] \"%s\" ma złe flagi: oczekiwano %s i być może %s, jest %s\n"
#: src/elflint.c:3553
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
-msgstr "sekcja [%2zu] '%s' obecna w pliku obiektu\n"
+msgstr "sekcja [%2zu] \"%s\" obecna w pliku obiektu\n"
#: src/elflint.c:3559 src/elflint.c:3591
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
msgstr ""
-"sekcja [%2zu] '%s' ma flagę SHF_ALLOC, ale nie ma segmentu ładowalnego\n"
+"sekcja [%2zu] \"%s\" ma flagę SHF_ALLOC, ale nie ma segmentu ładowalnego\n"
#: src/elflint.c:3564 src/elflint.c:3596
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
"segments\n"
-msgstr "sekcja [%2zu] '%s' nie ma flagi SHF_ALLOC, ale są segmenty ładowalne\n"
+msgstr ""
+"sekcja [%2zu] \"%s\" nie ma flagi SHF_ALLOC, ale są segmenty ładowalne\n"
#: src/elflint.c:3572
#, 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 nie-"
+"sekcja [%2zu] \"%s\" jest tabelą indeksów sekcji rozszerzeń w pliku nie-"
"obiektowym\n"
#: src/elflint.c:3615
#, 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:3620
#, c-format
@@ -2488,58 +2468,61 @@ msgstr "nie można pobrać nagłówka sekcji\n"
#: src/elflint.c:3630
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
-msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n"
+msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n"
#: src/elflint.c:3644
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-"sekcja [%2zu] '%s' zawiera błędne flagi specyficzne dla procesora %"
+"sekcja [%2zu] \"%s\" zawiera błędne flagi specyficzne dla procesora %"
"#<PRIx64>\n"
#: src/elflint.c:3651
#, 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:3659
#, 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"
+"sekcja [%2zu] \"%s\": adres sekcji danych lokalnych dla wątków nie jest "
+"zerem\n"
#: src/elflint.c:3667
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
-msgstr "sekcja [%2zu] '%s': błędne odwołanie do sekcji w wartości dowiązania\n"
+msgstr ""
+"sekcja [%2zu] \"%s\": błędne odwołanie do sekcji w wartości dowiązania\n"
#: src/elflint.c:3672
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-"sekcja [%2zu] '%s': błędne odwołanie do sekcji w wartości informacyjnej\n"
+"sekcja [%2zu] \"%s\": błędne odwołanie do sekcji w wartości informacyjnej\n"
#: src/elflint.c:3679
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
-msgstr "sekcja [%2zu] '%s': flaga łańcuchów ustawiona bez flagi merge\n"
+msgstr "sekcja [%2zu] \"%s\": flaga łańcuchów ustawiona bez flagi merge\n"
#: src/elflint.c:3684
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-"sekcja [%2zu] '%s': flaga merge ustawiona, ale rozmiar wpisu jest zerowy\n"
+"sekcja [%2zu] \"%s\": flaga merge ustawiona, ale rozmiar wpisu jest zerowy\n"
#: src/elflint.c:3702
#, fuzzy, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
-msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n"
+msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n"
#: src/elflint.c:3711
#, fuzzy, c-format
msgid "section [%2zu] '%s' is both executable and writable\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:3738
#, c-format
@@ -2547,8 +2530,8 @@ 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:3746
#, c-format
@@ -2556,8 +2539,8 @@ 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' ma typ NOBITS, a jest czytana z pliku w segmencie wpisu %"
-"d nagłówka programu\n"
+"sekcja [%2zu] \"%s\" ma typ NOBITS, a jest czytana z pliku w segmencie wpisu "
+"%d nagłówka programu\n"
#: src/elflint.c:3755
#, c-format
@@ -2565,27 +2548,28 @@ 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 ma typu NOBITS, a nie jest czytana z pliku w "
+"sekcja [%2zu] \"%s\" nie ma typu NOBITS, a nie jest czytana z pliku w "
"segmencie wpisu %d nagłówka programu\n"
#: src/elflint.c:3766
#, fuzzy, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-"sekcja [%2zu] '%s' jest tabelą indeksów sekcji rozszerzeń w pliku nie-"
+"sekcja [%2zu] \"%s\" jest tabelą indeksów sekcji rozszerzeń w pliku nie-"
"obiektowym\n"
#: src/elflint.c:3776
#, fuzzy, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\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:3786
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-"sekcja [%2zu] '%s': ma flagę alloc, ale sekcja nie jest w żadnym segmencie "
+"sekcja [%2zu] \"%s\": ma flagę alloc, ale sekcja nie jest w żadnym segmencie "
"ładowalnym\n"
#: src/elflint.c:3792
@@ -2594,7 +2578,7 @@ 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 łańcuchów nagłówków "
+"sekcja [%2zu] \"%s\": według nagłówka ELF to jest tabela łańcuchów nagłówków "
"sekcji, ale typ nie jest SHT_TYPE\n"
#: src/elflint.c:3800
@@ -2602,7 +2586,7 @@ msgstr ""
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-"sekcja [%2zu] '%s': pliki relokowalne nie mogą mieć tabeli symboli "
+"sekcja [%2zu] \"%s\": pliki relokowalne nie mogą mieć tabeli symboli "
"dynamicznych\n"
#: src/elflint.c:3851
@@ -2696,7 +2680,7 @@ msgstr "phdr[%d]: brak zdefiniowanych wpisów note dla typu pliku\n"
#: src/elflint.c:4076
#, fuzzy, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
-msgstr "sekcja [%2d] '%s': nie można pobrać danych sekcji\n"
+msgstr "sekcja [%2d] \"%s\": nie można pobrać danych sekcji\n"
#: src/elflint.c:4079
#, fuzzy, c-format
@@ -2796,7 +2780,7 @@ msgstr ""
#: src/elflint.c:4286
#, fuzzy, c-format
msgid "section [%2zu] '%s' must be allocated\n"
-msgstr "sekcja [%2d] '%s': nie oznaczona do przydzielenia\n"
+msgstr "sekcja [%2d] \"%s\": nie oznaczona do przydzielenia\n"
#: src/elflint.c:4290
#, c-format
@@ -2806,7 +2790,7 @@ msgstr ""
#: src/elflint.c:4293
#, fuzzy, c-format
msgid "section [%2zu] '%s' must not be writable\n"
-msgstr "sekcja [%2zu] '%s' obecna w pliku obiektu\n"
+msgstr "sekcja [%2zu] \"%s\" obecna w pliku obiektu\n"
#: src/elflint.c:4298
#, c-format
@@ -2816,7 +2800,7 @@ msgstr ""
#: src/elflint.c:4301
#, fuzzy, c-format
msgid "section [%2zu] '%s' must not be executable\n"
-msgstr "sekcja [%2zu] '%s' obecna w pliku obiektu\n"
+msgstr "sekcja [%2zu] \"%s\" obecna w pliku obiektu\n"
#: src/elflint.c:4312
#, c-format
@@ -2878,12 +2862,12 @@ msgstr "[PLIK...]"
#: src/findtextrel.c:246
#, c-format
msgid "cannot get ELF header '%s': %s"
-msgstr "nie można pobrać nagłówka ELF '%s': %s"
+msgstr "nie można pobrać nagłówka ELF \"%s\": %s"
#: src/findtextrel.c:257
#, 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:274
#, c-format
@@ -2898,7 +2882,7 @@ msgstr "nie można odczytać sekcji dynamicznej: %s"
#: src/findtextrel.c:307
#, c-format
msgid "no text relocations reported in '%s'"
-msgstr "brak relokacji tekstu w '%s'"
+msgstr "brak relokacji tekstu w \"%s\""
#: src/findtextrel.c:319
#, c-format
@@ -2918,12 +2902,12 @@ msgstr "nie można pobrać nagłówka sekcji dla sekcji %Zu: %s"
#: src/findtextrel.c:409
#, c-format
msgid "cannot get symbol table section %zu in '%s': %s"
-msgstr "nie można pobrać sekcji tabeli symboli %zu w '%s': %s"
+msgstr "nie można pobrać sekcji tabeli symboli %zu w \"%s\": %s"
#: src/findtextrel.c:429 src/findtextrel.c:452
#, c-format
msgid "cannot get relocation at index %d in section %zu in '%s': %s"
-msgstr "nie można pobrać relokacji pod indeksem %d w sekcji %zu w '%s': %s"
+msgstr "nie można pobrać relokacji pod indeksem %d w sekcji %zu w \"%s\": %s"
#: src/findtextrel.c:517
#, c-format
@@ -2934,7 +2918,8 @@ msgstr "%s nie został skompilowany z -fpic/-fPIC\n"
#, 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:577 src/findtextrel.c:597
#, c-format
@@ -2942,7 +2927,7 @@ msgid ""
"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:585
#, c-format
@@ -2950,8 +2935,8 @@ msgid ""
"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:605
#, c-format
@@ -3248,7 +3233,7 @@ msgstr "błąd podczas przygotowywania linkowania"
#: src/ld.c:356
#, c-format
msgid "cannot open linker script '%s'"
-msgstr "nie można otworzyć skryptu linkera '%s'"
+msgstr "nie można otworzyć skryptu linkera \"%s\""
#: src/ld.c:397
#, c-format
@@ -3273,12 +3258,12 @@ msgstr "nieznana opcja `-%c %s'"
#: src/ld.c:646
#, c-format
msgid "invalid page size value '%s': ignored"
-msgstr "błędna wartość rozmiaru strony '%s': zignorowano"
+msgstr "błędna wartość rozmiaru strony \"%s\": zignorowano"
#: src/ld.c:687
#, fuzzy, c-format
msgid "invalid hash style '%s'"
-msgstr "błędne flagi maszyny: %s\n"
+msgstr "błędne flagi maszyny: \"%s\"\n"
#: src/ld.c:697
#, c-format
@@ -3324,12 +3309,12 @@ msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem '-m'"
#: src/ld.c:1446
#, 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:1512 src/ld.c:1551
#, c-format
msgid "duplicate definition of '%s' in linker script"
-msgstr "powtórzona definicja '%s' w skrypcie linkera"
+msgstr "powtórzona definicja \"%s\" w skrypcie linkera"
#: src/ldgeneric.c:209 src/ldgeneric.c:5151
#, c-format
@@ -3339,12 +3324,12 @@ msgstr "nie można utworzyć tabeli łańcuchów"
#: src/ldgeneric.c:255
#, c-format
msgid "cannot load ld backend library '%s': %s"
-msgstr "nie można odczytać biblioteki backendu ld '%s': %s"
+msgstr "nie można odczytać biblioteki backendu ld \"%s\": %s"
#: src/ldgeneric.c:265
#, c-format
msgid "cannot find init function in ld backend library '%s': %s"
-msgstr "nie można znaleźć funkcji init w bibliotece backendu ld '%s': %s"
+msgstr "nie można znaleźć funkcji init w bibliotece backendu ld \"%s\": %s"
#: src/ldgeneric.c:310
#, c-format
@@ -3371,7 +3356,7 @@ msgstr "Uwaga: typ `%s' zmienił się z %s w %s na %s w %s"
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr "Uwaga: rozmiar `%s' zmienił się z %<PRIu64> w %s na %<PRIu64> w %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "nie można określić liczby sekcji: %s"
@@ -3394,12 +3379,12 @@ msgstr "%s: nie można pobrać danych grupy sekcji: %s"
#: src/ldgeneric.c:840
#, 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:885
#, fuzzy, c-format
msgid "%s: section [%2d] '%s' is not in the correct section group"
-msgstr "%s: sekcja [%2d] '%s' jest w więcej niż jednej grupie sekcji"
+msgstr "%s: sekcja [%2d] \"%s\" jest w więcej niż jednej grupie sekcji"
#: src/ldgeneric.c:1156 src/ldgeneric.c:1413 src/ldgeneric.c:1422
#: src/ldgeneric.c:1481 src/ldgeneric.c:1490 src/ldgeneric.c:1753
@@ -3416,24 +3401,24 @@ msgstr "%s: tylko pliki typu ET_REL mogą zawierać grupy sekcji"
#: src/ldgeneric.c:1302
#, c-format
msgid "%s: cannot determine signature of section group [%2zd] '%s': %s"
-msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] '%s': %s"
+msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] \"%s\": %s"
#: src/ldgeneric.c:1314
#, fuzzy, c-format
msgid "%s: cannot get content of section group [%2zd] '%s': %s'"
-msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] '%s': %s"
+msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] \"%s\": %s"
#: src/ldgeneric.c:1328
#, fuzzy, c-format
msgid ""
"%s: group member %zu of section group [%2zd] '%s' has too high index: %"
"<PRIu32>"
-msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] '%s': %s"
+msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] \"%s\": %s"
#: src/ldgeneric.c:1350
#, c-format
msgid "%s: section '%s' has unknown type: %d"
-msgstr "%s: sekcja '%s' ma nieznany typ: %d"
+msgstr "%s: sekcja \"%s\" ma nieznany typ: %d"
#: src/ldgeneric.c:1729
#, c-format
@@ -3464,12 +3449,12 @@ msgstr "%s: nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji:
#, c-format
msgid "cannot use DSO '%s' when generating relocatable object file"
msgstr ""
-"nie można użyć DSO '%s' podczas generowania pliku obiektu relokowalnego"
+"nie można użyć DSO \"%s\" podczas generowania pliku obiektu relokowalnego"
#: src/ldgeneric.c:2158
#, c-format
msgid "input file '%s' ignored"
-msgstr "plik wejściowy '%s' zignorowany"
+msgstr "plik wejściowy \"%s\" zignorowany"
#: src/ldgeneric.c:2372
#, c-format
@@ -3497,7 +3482,7 @@ msgstr "nie można utworzyć sekcji dla pliku wyjściowego: %s"
#: src/ldgeneric.c:3444
#, 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:3489
#, c-format
@@ -3512,7 +3497,7 @@ msgstr ""
#, c-format
msgid "cannot find entry symbol '%s': defaulting to %#0*<PRIx64>"
msgstr ""
-"nie można znaleźć symbolu wejściowego '%s': użycie domyślnego %#0*<PRIx64>"
+"nie można znaleźć symbolu wejściowego \"%s\": użycie domyślnego %#0*<PRIx64>"
#: src/ldgeneric.c:3690
#, c-format
@@ -3607,7 +3592,7 @@ msgstr "błąd wewnętrzny: sekcja nobits po sekcji nobits"
msgid "cannot get header of 0th section: %s"
msgstr "nie można pobrać nagłówka zerowej sekcji: %s"
-#: src/ldgeneric.c:6941 src/unstrip.c:1808
+#: src/ldgeneric.c:6941 src/unstrip.c:1820
#, c-format
msgid "cannot update ELF header: %s"
msgstr "nie można uaktualnić nagłówka ELF: %s"
@@ -3643,7 +3628,7 @@ msgstr ""
#: src/ldgeneric.c:7141
#, 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:178
msgid "mode for segment invalid\n"
@@ -3652,25 +3637,25 @@ msgstr "błędne atrybuty dla segmentu\n"
#: src/ldscript.y:465
#, c-format
msgid "while reading version script '%s': %s at line %d"
-msgstr "podczas odczytu skryptu wersji '%s': %s w linii %d"
+msgstr "podczas odczytu skryptu wersji \"%s\": %s w linii %d"
#: src/ldscript.y:466
#, c-format
msgid "while reading linker script '%s': %s at line %d"
-msgstr "podczas odczytu skryptu linkera '%s': %s w linii %d"
+msgstr "podczas odczytu skryptu linkera \"%s\": %s w linii %d"
#: src/ldscript.y:745
#, fuzzy, c-format
msgid "symbol '%s' is declared both local and global for unnamed version"
msgstr ""
-"symbol '%s' zadeklarowany jednocześnie lokalny i globalny dla nienazwanej "
+"symbol \"%s\" zadeklarowany jednocześnie lokalny i globalny dla nienazwanej "
"wersji"
#: src/ldscript.y:747
#, fuzzy, c-format
msgid "symbol '%s' is declared both local and global for version '%s'"
msgstr ""
-"symbol '%s' zadeklarowany jednocześnie lokalny i globalny dla wersji '%s'"
+"symbol \"%s\" zadeklarowany jednocześnie lokalny i globalny dla wersji \"%s\""
#: src/ldscript.y:767 src/ldscript.y:774
#, c-format
@@ -3770,7 +3755,7 @@ msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s-%s): %s"
#: src/strip.c:1816
#, c-format
msgid "while closing '%s'"
-msgstr "podczas zamykania '%s'"
+msgstr "podczas zamykania \"%s\""
#: src/nm.c:402 src/objdump.c:296 src/strip.c:359
#, c-format
@@ -3810,11 +3795,11 @@ msgstr "%s%s%s: format pliku nie rozpoznany"
msgid "cannot create search tree"
msgstr "nie można utworzyć drzewa wyszukiwania"
-#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885
-#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549
-#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265
-#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939
-#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604
+#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886
+#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550
+#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266
+#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940
+#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794
#: src/size.c:425 src/size.c:499 src/strip.c:483
#, c-format
msgid "cannot get section header string table index"
@@ -3907,20 +3892,20 @@ msgstr ""
msgid "Show information from FILEs (a.out by default)."
msgstr "Podanie listy symboli z PLIKU (domyślnie a.out)."
-#: src/objdump.c:236 src/readelf.c:430
+#: src/objdump.c:236 src/readelf.c:431
msgid "No operation specified.\n"
msgstr "Nie podano operacji.\n"
#: src/objdump.c:274 src/objdump.c:286
#, fuzzy, c-format
msgid "while close `%s'"
-msgstr "podczas zamykania '%s'"
+msgstr "podczas zamykania \"%s\""
-#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818
+#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819
msgid "INVALID SYMBOL"
msgstr "BŁĘDNY SYMBOL"
-#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851
+#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852
msgid "INVALID SECTION"
msgstr "BŁĘDNA SEKCJA"
@@ -3962,7 +3947,7 @@ msgstr "Wymagana nazwa archiwum"
#: src/ranlib.c:194
#, c-format
msgid "'%s' is no archive"
-msgstr "'%s' nie jest archiwum"
+msgstr "\"%s\" nie jest archiwum"
#: src/ranlib.c:229
#, c-format
@@ -4026,9 +4011,8 @@ msgid "Display sections for exception handling"
msgstr ""
#: src/readelf.c:93
-#, fuzzy
msgid "Additional output selection:"
-msgstr "Wybór wyjścia:"
+msgstr "Dodatkowy wybór wyjścia:"
#: src/readelf.c:95
#, fuzzy
@@ -4065,87 +4049,87 @@ msgstr ""
msgid "Print information from ELF file in human-readable form."
msgstr "Wypisanie informacji z pliku ELF w postaci czytelnej dla człowieka"
-#: src/readelf.c:401
+#: src/readelf.c:402
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Nieznana sekcja debugowa DWARF `%s'.\n"
-#: src/readelf.c:465
-#, fuzzy, c-format
+#: src/readelf.c:466
+#, c-format
msgid "cannot generate Elf descriptor: %s"
-msgstr "nie można wygenerować deskryptora Elf: %s\n"
+msgstr "nie można utworzyć deskryptora Elf: %s"
-#: src/readelf.c:477
+#: src/readelf.c:478
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr ""
-#: src/readelf.c:482
+#: src/readelf.c:483
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "błąd podczas zamykania deskryptora Elf: %s"
-#: src/readelf.c:574
+#: src/readelf.c:575
#, c-format
msgid "cannot stat input file"
msgstr "nie można wykonać stat na pliku wejściowym"
-#: src/readelf.c:576
+#: src/readelf.c:577
#, c-format
msgid "input file is empty"
msgstr "plik wejściowy jest pusty"
-#: src/readelf.c:578
-#, fuzzy, c-format
+#: src/readelf.c:579
+#, c-format
msgid "failed reading '%s': %s"
-msgstr "podczas zapisu '%s': %s"
+msgstr "odczytanie \"%s\" nie powiodło się: %s"
-#: src/readelf.c:614
+#: src/readelf.c:615
#, c-format
msgid "cannot read ELF header: %s"
msgstr "nie można odczytać nagłówka ELF: %s"
-#: src/readelf.c:622
+#: src/readelf.c:623
#, c-format
msgid "cannot create EBL handle"
msgstr "nie można utworzyć uchwytu EBL"
-#: src/readelf.c:635
-#, fuzzy, c-format
+#: src/readelf.c:636
+#, c-format
msgid "cannot determine number of program headers: %s"
-msgstr "nie można określić liczby sekcji: %s"
+msgstr "nie można określić liczby nagłówków programu: %s"
-#: src/readelf.c:721
+#: src/readelf.c:722
msgid "NONE (None)"
msgstr "NONE (Żaden)"
-#: src/readelf.c:722
+#: src/readelf.c:723
msgid "REL (Relocatable file)"
msgstr "REL (Plik relokowalny)"
-#: src/readelf.c:723
+#: src/readelf.c:724
msgid "EXEC (Executable file)"
msgstr "EXEC (Plik wykonywalny)"
-#: src/readelf.c:724
+#: src/readelf.c:725
msgid "DYN (Shared object file)"
msgstr "DYN (Plik obiektu dzielonego)"
-#: src/readelf.c:725
+#: src/readelf.c:726
msgid "CORE (Core file)"
msgstr "CORE (Plik core)"
-#: src/readelf.c:730
+#: src/readelf.c:731
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "Zależny od systemu: (%x)\n"
-#: src/readelf.c:732
+#: src/readelf.c:733
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Zależny od procesora: (%x)\n"
-#: src/readelf.c:742
+#: src/readelf.c:743
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4153,7 +4137,7 @@ msgstr ""
"Nagłówek ELF:\n"
" Magic: "
-#: src/readelf.c:746
+#: src/readelf.c:747
#, c-format
msgid ""
"\n"
@@ -4162,117 +4146,117 @@ msgstr ""
"\n"
" Klasa: %s\n"
-#: src/readelf.c:751
+#: src/readelf.c:752
#, c-format
msgid " Data: %s\n"
msgstr " Dane: %s\n"
-#: src/readelf.c:757
+#: src/readelf.c:758
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Wersja Ident: %hhd %s\n"
-#: src/readelf.c:759 src/readelf.c:776
+#: src/readelf.c:760 src/readelf.c:777
msgid "(current)"
msgstr "(aktualna)"
-#: src/readelf.c:763
+#: src/readelf.c:764
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:766
+#: src/readelf.c:767
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Wersja ABI: %hhd\n"
-#: src/readelf.c:769
+#: src/readelf.c:770
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:772
+#: src/readelf.c:773
#, c-format
msgid " Machine: %s\n"
-msgstr " Maszyna: %s\n"
+msgstr " Komputer: %s\n"
-#: src/readelf.c:774
+#: src/readelf.c:775
#, c-format
msgid " Version: %d %s\n"
msgstr " Wersja: %d %s\n"
-#: src/readelf.c:778
+#: src/readelf.c:779
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Adres punktu wejściowego: %#<PRIx64>\n"
-#: src/readelf.c:781
+#: src/readelf.c:782
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Początek nagłówków programu: %<PRId64> %s\n"
-#: src/readelf.c:782 src/readelf.c:785
+#: src/readelf.c:783 src/readelf.c:786
msgid "(bytes into file)"
msgstr "(bajtów w pliku)"
-#: src/readelf.c:784
+#: src/readelf.c:785
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Początek nagłówków sekcji: %<PRId64> %s\n"
-#: src/readelf.c:787
+#: src/readelf.c:788
#, c-format
msgid " Flags: %s\n"
msgstr " Flagi: %s\n"
-#: src/readelf.c:790
+#: src/readelf.c:791
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n"
-#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811
+#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812
msgid "(bytes)"
msgstr "(bajtów)"
-#: src/readelf.c:793
+#: src/readelf.c:794
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n"
-#: src/readelf.c:796
+#: src/readelf.c:797
#, fuzzy, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków programu: %<PRId16>\n"
-#: src/readelf.c:803
-#, fuzzy, c-format
+#: src/readelf.c:804
+#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
-msgstr " (%<PRIu32> w [0].sh_link)"
+msgstr " (%<PRIu32> w [0].sh_info)"
-#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837
+#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838
msgid " ([0] not available)"
msgstr " ([0] niedostępny)"
-#: src/readelf.c:810
+#: src/readelf.c:811
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n"
-#: src/readelf.c:813
+#: src/readelf.c:814
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>"
-#: src/readelf.c:820
+#: src/readelf.c:821
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> w [0].sh_size)"
-#: src/readelf.c:833
+#: src/readelf.c:834
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> w [0].sh_link)"
-#: src/readelf.c:841
+#: src/readelf.c:842
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4281,7 +4265,7 @@ msgstr ""
" Indeks tabeli łańcuchów nagłówków sekcji: XINDEX%s\n"
"\n"
-#: src/readelf.c:845
+#: src/readelf.c:846
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4290,7 +4274,7 @@ msgstr ""
" Indeks tabeli łańcuchów nagłówków sekcji: %<PRId16>\n"
"\n"
-#: src/readelf.c:877
+#: src/readelf.c:878
#, c-format
msgid ""
"There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4299,11 +4283,11 @@ msgstr ""
"Jest %d nagłówków sekcji, zaczynających się od offsetu %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:887
+#: src/readelf.c:888
msgid "Section Headers:"
msgstr "Nagłówki sekcji:"
-#: src/readelf.c:890
+#: src/readelf.c:891
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4311,7 +4295,7 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozm ES Flagi Lk "
"Inf Al"
-#: src/readelf.c:892
+#: src/readelf.c:893
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4319,32 +4303,32 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozmiar ES "
"Flagi Lk Inf Al"
-#: src/readelf.c:899 src/readelf.c:1052
+#: src/readelf.c:900 src/readelf.c:1053
#, c-format
msgid "cannot get section: %s"
msgstr "nie można pobrać sekcji: %s"
-#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353
-#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553
-#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244
-#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588
-#: src/unstrip.c:1778
+#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353
+#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558
+#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250
+#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593
+#: src/unstrip.c:1782
#, c-format
msgid "cannot get section header: %s"
msgstr "nie można pobrać nagłówka sekcji: %s"
-#: src/readelf.c:964
+#: src/readelf.c:965
msgid "Program Headers:"
msgstr "Nagłówki programu:"
-#: src/readelf.c:966
+#: src/readelf.c:967
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg "
"Wyrównanie"
-#: src/readelf.c:969
+#: src/readelf.c:970
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4352,12 +4336,12 @@ msgstr ""
" Typ Offset AdresWirtualny AdresFizyczny RozmPlik "
"RozmPam Flg Wyrównanie"
-#: src/readelf.c:1009
+#: src/readelf.c:1010
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Wywołanie interpretera programu: %s]\n"
-#: src/readelf.c:1030
+#: src/readelf.c:1031
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4367,12 +4351,12 @@ msgstr ""
" Odwzorowanie sekcji na segmenty:\n"
" Segment Sekcje..."
-#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870
+#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883
#, c-format
msgid "cannot get program header: %s"
msgstr "nie można pobrać nagłówka programu: %s"
-#: src/readelf.c:1175
+#: src/readelf.c:1176
#, c-format
msgid ""
"\n"
@@ -4382,15 +4366,15 @@ msgid_plural ""
"COMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n"
msgstr[0] ""
"\n"
-"Grupa sekcji COMDAT [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpis:\n"
+"Grupa sekcji COMDAT [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpis:\n"
msgstr[1] ""
"\n"
-"Grupa sekcji COMDAT [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisy:\n"
+"Grupa sekcji COMDAT [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisy:\n"
msgstr[2] ""
"\n"
-"Grupa sekcji COMDAT [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisów:\n"
+"Grupa sekcji COMDAT [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisów:\n"
-#: src/readelf.c:1180
+#: src/readelf.c:1181
#, c-format
msgid ""
"\n"
@@ -4400,23 +4384,23 @@ msgid_plural ""
"Section group [%2zu] '%s' with signature '%s' contains %zu entries:\n"
msgstr[0] ""
"\n"
-"Grupa sekcji [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpis:\n"
+"Grupa sekcji [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpis:\n"
msgstr[1] ""
"\n"
-"Grupa sekcji [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisy:\n"
+"Grupa sekcji [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisy:\n"
msgstr[2] ""
"\n"
-"Grupa sekcji [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisów:\n"
+"Grupa sekcji [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisów:\n"
-#: src/readelf.c:1188
+#: src/readelf.c:1189
msgid "<INVALID SYMBOL>"
msgstr "<BŁĘDNY SYMBOL>"
-#: src/readelf.c:1202
+#: src/readelf.c:1203
msgid "<INVALID SECTION>"
msgstr "<BŁĘDNA SEKCJA>"
-#: src/readelf.c:1353
+#: src/readelf.c:1354
#, c-format
msgid ""
"\n"
@@ -4442,36 +4426,36 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%"
"s'\n"
-#: src/readelf.c:1365
+#: src/readelf.c:1366
msgid " Type Value\n"
msgstr " Typ Wartość\n"
-#: src/readelf.c:1389
+#: src/readelf.c:1390
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteka dzielona: [%s]\n"
-#: src/readelf.c:1394
+#: src/readelf.c:1395
#, c-format
msgid "Library soname: [%s]\n"
msgstr "soname biblioteki: [%s]\n"
-#: src/readelf.c:1399
+#: src/readelf.c:1400
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "rpath biblioteki: [%s]\n"
-#: src/readelf.c:1404
+#: src/readelf.c:1405
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "runpath biblioteki: [%s]\n"
-#: src/readelf.c:1424
+#: src/readelf.c:1425
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bajtów)\n"
-#: src/readelf.c:1534 src/readelf.c:1720
+#: src/readelf.c:1535 src/readelf.c:1721
#, c-format
msgid ""
"\n"
@@ -4480,7 +4464,7 @@ msgstr ""
"\n"
"Błędna tabela symboli pod offsetem %#0<PRIx64>\n"
-#: src/readelf.c:1552 src/readelf.c:1737
+#: src/readelf.c:1553 src/readelf.c:1738
#, c-format
msgid ""
"\n"
@@ -4492,18 +4476,18 @@ msgid_plural ""
"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:1567
+#: src/readelf.c:1568
#, c-format
msgid ""
"\n"
@@ -4513,38 +4497,38 @@ msgid_plural ""
"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:1577
+#: src/readelf.c:1578
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:1579
+#: src/readelf.c:1580
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674
-#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831
-#: src/readelf.c:1850 src/readelf.c:1863
+#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675
+#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832
+#: src/readelf.c:1851 src/readelf.c:1864
msgid "<INVALID RELOC>"
msgstr "<BŁĘDNA RELOKACJA>"
-#: src/readelf.c:1749
+#: src/readelf.c:1750
msgid " Offset Type Value Addend Name\n"
msgstr " Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:1751
+#: src/readelf.c:1752
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:1952
+#: src/readelf.c:1953
#, c-format
msgid ""
"\n"
@@ -4554,50 +4538,50 @@ msgid_plural ""
"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:1958
+#: src/readelf.c:1959
#, 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 łańcuchów: [%2u] '%s'\n"
-msgstr[1] " %lu symbole lokalne Tabela łańcuchów: [%2u] '%s'\n"
-msgstr[2] " %lu symboli lokalnych Tabela łańcuchów: [%2u] '%s'\n"
+msgstr[0] " %lu symbol lokalny Tabela łańcuchów: [%2u] \"%s\"\n"
+msgstr[1] " %lu symbole lokalne Tabela łańcuchów: [%2u] \"%s\"\n"
+msgstr[2] " %lu symboli lokalnych Tabela łańcuchów: [%2u] \"%s\"\n"
-#: src/readelf.c:1968
+#: src/readelf.c:1969
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:1970
+#: src/readelf.c:1971
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:1990
+#: src/readelf.c:1991
#, 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:2078
+#: src/readelf.c:2079
#, c-format
msgid "bad dynamic symbol"
msgstr "błędny symbol dynamiczny"
-#: src/readelf.c:2160
+#: src/readelf.c:2161
msgid "none"
msgstr "brak"
-#: src/readelf.c:2177
+#: src/readelf.c:2178
msgid "| <unknown>"
msgstr "| <nieznany>"
-#: src/readelf.c:2202
-#, c-format
+#: src/readelf.c:2203
+#, fuzzy, c-format
msgid ""
"\n"
"Version needs section [%2u] '%s' contains %d entry:\n"
@@ -4622,17 +4606,17 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%"
"s'\n"
-#: src/readelf.c:2225
+#: src/readelf.c:2226
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n"
-#: src/readelf.c:2238
+#: src/readelf.c:2239
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n"
-#: src/readelf.c:2269
+#: src/readelf.c:2270
#, c-format
msgid ""
"\n"
@@ -4644,32 +4628,32 @@ msgid_plural ""
" Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
msgstr[0] ""
"\n"
-"Sekcja definicji wersji [%2u] '%s' zawiera %d wpis:\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"
+"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"
+"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:2299
+#: src/readelf.c:2300
#, 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:2314
+#: src/readelf.c:2315
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Rodzic %d: %s\n"
-#: src/readelf.c:2546
+#: src/readelf.c:2547
#, c-format
msgid ""
"\n"
@@ -4681,26 +4665,29 @@ msgid_plural ""
" 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:2576
+#: src/readelf.c:2577
msgid " 0 *local* "
msgstr " 0 *lokalny* "
-#: src/readelf.c:2581
+#: src/readelf.c:2582
msgid " 1 *global* "
msgstr " 1 *globalny* "
-#: src/readelf.c:2612
+#: src/readelf.c:2613
#, c-format
msgid ""
"\n"
@@ -4714,53 +4701,53 @@ msgid_plural ""
" 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"
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"
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"
-#: src/readelf.c:2636
+#: src/readelf.c:2637
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Długość Liczba % całości Pokrycie\n"
-#: src/readelf.c:2638
+#: src/readelf.c:2639
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:2645
+#: src/readelf.c:2646
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:2658
-#, c-format
+#: src/readelf.c:2659
+#, fuzzy, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
-" unsuccessful lookup: %f\n"
+"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
" Średnia liczba testów: udane wyszukania: %f\n"
" nieudane wyszukania: %f\n"
-#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759
+#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "nie można pobrać danych dla sekcji %d: %s"
-#: src/readelf.c:2813
+#: src/readelf.c:2814
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4770,7 +4757,7 @@ msgstr ""
" Rozmiar maski bitowej: %zu bajtów %<PRIuFAST32>%% bitów ustawionych "
"drugie przesunięcie hasza: %u\n"
-#: src/readelf.c:2887
+#: src/readelf.c:2888
#, c-format
msgid ""
"\n"
@@ -4780,18 +4767,18 @@ msgid_plural ""
"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:2901
+#: src/readelf.c:2902
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4799,7 +4786,7 @@ msgstr ""
" Biblioteka Oznaczenie czasu Suma k. Wersja "
"Flagi"
-#: src/readelf.c:2951
+#: src/readelf.c:2952
#, fuzzy, c-format
msgid ""
"\n"
@@ -4809,141 +4796,140 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:2967
-#, fuzzy
+#: src/readelf.c:2968
msgid " Owner Size\n"
-msgstr " Właściciel Rozmiar danych Typ\n"
+msgstr " Właściciel Rozmiar\n"
-#: src/readelf.c:2993
-#, fuzzy, c-format
+#: src/readelf.c:2994
+#, c-format
msgid " %-13s %4<PRIu32>\n"
-msgstr " %-13.*s %9<PRId32> %s\n"
+msgstr " %-13s %4<PRIu32>\n"
-#: src/readelf.c:3025
+#: src/readelf.c:3026
#, c-format
msgid " %-4u %12<PRIu32>\n"
-msgstr ""
+msgstr " %-4u %12<PRIu32>\n"
-#: src/readelf.c:3030
-#, fuzzy, c-format
+#: src/readelf.c:3031
+#, c-format
msgid " File: %11<PRIu32>\n"
-msgstr " ustawienie pliku na %<PRIu64>\n"
+msgstr " Plik: %11<PRIu32>\n"
-#: src/readelf.c:3065
-#, fuzzy, c-format
+#: src/readelf.c:3066
+#, c-format
msgid " %s: %<PRId64>, %s\n"
-msgstr " %-13.*s %9<PRId32> %s\n"
+msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3068
-#, fuzzy, c-format
+#: src/readelf.c:3069
+#, c-format
msgid " %s: %<PRId64>\n"
-msgstr " ustawienie pliku na %<PRIu64>\n"
+msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3071
+#: src/readelf.c:3072
#, c-format
msgid " %s: %s\n"
-msgstr ""
+msgstr " %s: %s\n"
-#: src/readelf.c:3078
-#, fuzzy, c-format
+#: src/readelf.c:3079
+#, c-format
msgid " %u: %<PRId64>\n"
-msgstr " ustawienie pliku na %<PRIu64>\n"
+msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3081
+#: src/readelf.c:3082
#, c-format
msgid " %u: %s\n"
-msgstr ""
+msgstr " %u: %s\n"
-#: src/readelf.c:3117
+#: src/readelf.c:3118
#, c-format
msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
-msgstr ""
+msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3120
+#: src/readelf.c:3121
#, c-format
msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
-msgstr ""
+msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3125
+#: src/readelf.c:3126
#, c-format
msgid "%#<PRIx64> <%s+%#<PRIx64>>"
-msgstr ""
+msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3128
+#: src/readelf.c:3129
#, c-format
msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
-msgstr ""
+msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3134
+#: src/readelf.c:3135
#, c-format
msgid "%s+%#<PRIx64> <%s>"
-msgstr ""
+msgstr "%s+%#<PRIx64> <%s>"
-#: src/readelf.c:3137
+#: src/readelf.c:3138
#, c-format
msgid "%s+%#0*<PRIx64> <%s>"
-msgstr ""
+msgstr "%s+%#0*<PRIx64> <%s>"
-#: src/readelf.c:3141
-#, fuzzy, c-format
+#: src/readelf.c:3142
+#, c-format
msgid "%#<PRIx64> <%s>"
-msgstr "%<PRId64> (bajtów)\n"
+msgstr "%#<PRIx64> <%s>"
-#: src/readelf.c:3144
+#: src/readelf.c:3145
#, c-format
msgid "%#0*<PRIx64> <%s>"
-msgstr ""
+msgstr "%#0*<PRIx64> <%s>"
-#: src/readelf.c:3149
+#: src/readelf.c:3150
#, c-format
msgid "%s+%#<PRIx64>"
-msgstr ""
+msgstr "%s+%#<PRIx64>"
-#: src/readelf.c:3152
+#: src/readelf.c:3153
#, c-format
msgid "%s+%#0*<PRIx64>"
-msgstr ""
+msgstr "%s+%#0*<PRIx64>"
-#: src/readelf.c:3260
+#: src/readelf.c:3284
#, c-format
msgid "unknown tag %hx"
msgstr "nieznany znacznik %hx"
-#: src/readelf.c:3262
+#: src/readelf.c:3286
#, c-format
msgid "unknown user tag %hx"
msgstr "nieznany znacznik użytkownika %hx"
-#: src/readelf.c:3480
+#: src/readelf.c:3510
#, c-format
msgid "unknown attribute %hx"
msgstr "nieznany atrybut %hx"
-#: src/readelf.c:3483
+#: src/readelf.c:3513
#, c-format
msgid "unknown user attribute %hx"
msgstr "nieznany atrybut użytkownika %hx"
-#: src/readelf.c:3529
+#: src/readelf.c:3563
#, c-format
msgid "unknown form %<PRIx64>"
msgstr "nieznana forma %<PRIx64>"
-#: src/readelf.c:3763
+#: src/readelf.c:3797
msgid "empty block"
-msgstr ""
+msgstr "pusty blok"
-#: src/readelf.c:3766
+#: src/readelf.c:3800
#, c-format
msgid "%zu byte block:"
msgstr ""
-#: src/readelf.c:4175
+#: src/readelf.c:4222
#, c-format
msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
msgstr ""
-#: src/readelf.c:4188
+#: src/readelf.c:4235
#, fuzzy, c-format
msgid ""
"\n"
@@ -4951,10 +4937,10 @@ msgid ""
" [ Code]\n"
msgstr ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n"
" [ Kod]\n"
-#: src/readelf.c:4195
+#: src/readelf.c:4242
#, c-format
msgid ""
"\n"
@@ -4963,30 +4949,30 @@ msgstr ""
"\n"
"Sekcja skrótów pod offsetem %<PRIu64>:\n"
-#: src/readelf.c:4208
+#: src/readelf.c:4255
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** błąd podczas odczytu skrótu: %s\n"
-#: src/readelf.c:4224
+#: src/readelf.c:4271
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "yes"
msgstr "tak"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "no"
msgstr "nie"
-#: src/readelf.c:4263
+#: src/readelf.c:4310
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "nie można pobrać zawartości .debug_aranges: %s"
-#: src/readelf.c:4268
+#: src/readelf.c:4315
#, fuzzy, c-format
msgid ""
"\n"
@@ -4996,133 +4982,133 @@ msgid_plural ""
"DWARF section [%2zu] '%s' at offset %#<PRIx64> contains %zu entries:\n"
msgstr[0] ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64> zawiera %zu wpis:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpis:\n"
msgstr[1] ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64> zawiera %zu wpisy:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpisy:\n"
msgstr[2] ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
-#: src/readelf.c:4298
+#: src/readelf.c:4345
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:4300
+#: src/readelf.c:4347
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
" [%*zu] start: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: %6<PRId64>\n"
-#: src/readelf.c:4319
+#: src/readelf.c:4366
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "nie można pobrać zawartości .debug_ranges: %s"
-#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897
-#: src/readelf.c:5992 src/readelf.c:6164
+#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079
+#: src/readelf.c:6178 src/readelf.c:6350
#, fuzzy, c-format
msgid ""
"\n"
"DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:4338 src/readelf.c:5911
+#: src/readelf.c:4385 src/readelf.c:6097
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:4360 src/readelf.c:5933
+#: src/readelf.c:4407 src/readelf.c:6119
#, c-format
msgid " [%6tx] base address %s\n"
msgstr ""
-#: src/readelf.c:4371
+#: src/readelf.c:4418
#, c-format
msgid " [%6tx] %s..%s\n"
-msgstr ""
+msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:4373
+#: src/readelf.c:4420
#, c-format
msgid " %s..%s\n"
-msgstr ""
+msgstr " %s..%s\n"
-#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332
+#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518
#, fuzzy, c-format
msgid "cannot get %s content: %s"
msgstr "nie można pobrać sekcji: %s"
-#: src/readelf.c:4806
+#: src/readelf.c:4853
#, fuzzy, c-format
msgid ""
"\n"
"Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
"\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"
-#: src/readelf.c:4833 src/readelf.c:5486
+#: src/readelf.c:4881 src/readelf.c:5615
#, c-format
msgid "invalid data in section [%zu] '%s'"
-msgstr "błędne dane w sekcji [%zu] '%s'"
+msgstr "błędne dane w sekcji [%zu] \"%s\""
-#: src/readelf.c:4855
+#: src/readelf.c:4903
#, c-format
msgid ""
"\n"
" [%6tx] Zero terminator\n"
msgstr ""
-#: src/readelf.c:4924
+#: src/readelf.c:4987
#, c-format
msgid "invalid augmentation length"
msgstr ""
-#: src/readelf.c:4936
+#: src/readelf.c:4999
msgid "FDE address encoding: "
msgstr ""
-#: src/readelf.c:4942
+#: src/readelf.c:5005
msgid "LSDA pointer encoding: "
msgstr ""
-#: src/readelf.c:5034
+#: src/readelf.c:5101
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:5041
+#: src/readelf.c:5108
#, fuzzy, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:5068
+#: src/readelf.c:5135
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:5114
+#: src/readelf.c:5182
#, c-format
msgid "cannot get attribute code: %s"
msgstr "nie można pobrać kodu atrybutu: %s"
-#: src/readelf.c:5122
+#: src/readelf.c:5190
#, c-format
msgid "cannot get attribute form: %s"
msgstr "nie można pobrać formy atrybutu: %s"
-#: src/readelf.c:5135
+#: src/readelf.c:5203
#, c-format
msgid "cannot get attribute value: %s"
msgstr "nie można pobrać wartości atrybutu: %s"
-#: src/readelf.c:5331
+#: src/readelf.c:5428
#, fuzzy, c-format
msgid ""
"\n"
@@ -5130,10 +5116,22 @@ msgid ""
" [Offset]\n"
msgstr ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:5356
+#: src/readelf.c:5458
+#, fuzzy, c-format
+msgid ""
+" Type unit at offset %<PRIu64>:\n"
+" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %"
+"<PRIu8>, Offset size: %<PRIu8>\n"
+" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n"
+msgstr ""
+" Jednostka kompilacji pod offsetem %<PRIu64>:\n"
+" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: %"
+"<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
+
+#: src/readelf.c:5466
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5144,38 +5142,38 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: %"
"<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:5374
+#: src/readelf.c:5489
#, c-format
msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
-msgstr "nie można pobrać DIE pod offsetem %<PRIu64> w sekcji '%s': %s"
+msgstr "nie można pobrać DIE pod offsetem %<PRIu64> w sekcji \"%s\": %s"
-#: src/readelf.c:5385
+#: src/readelf.c:5500
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "nie można pobrać offsetu DIE: %s"
-#: src/readelf.c:5393
+#: src/readelf.c:5508
#, c-format
msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
msgstr ""
-"nie można pobrać znacznika DIE pod offsetem %<PRIu64> w sekcji '%s': %s"
+"nie można pobrać znacznika DIE pod offsetem %<PRIu64> w sekcji \"%s\": %s"
-#: src/readelf.c:5422
+#: src/readelf.c:5537
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "nie można pobrać następnego DIE: %s\n"
-#: src/readelf.c:5429
+#: src/readelf.c:5544
#, c-format
msgid "cannot get next DIE: %s"
msgstr "nie można pobrać następnego DIE: %s"
-#: src/readelf.c:5464
+#: src/readelf.c:5593
#, c-format
msgid "cannot get line data section data: %s"
msgstr "nie można pobrać danych sekcji danych linii: %s"
-#: src/readelf.c:5477
+#: src/readelf.c:5606
#, c-format
msgid ""
"\n"
@@ -5184,14 +5182,15 @@ msgstr ""
"\n"
"Tabela pod offsetem %Zu:\n"
-#: src/readelf.c:5529
-#, c-format
+#: src/readelf.c:5661
+#, fuzzy, c-format
msgid ""
"\n"
" Length: %<PRIu64>\n"
" DWARF version: %<PRIuFAST16>\n"
" Prologue length: %<PRIu64>\n"
" Minimum instruction length: %<PRIuFAST8>\n"
+" Maximum operations per instruction: %<PRIuFAST8>\n"
" Initial value if '%s': %<PRIuFAST8>\n"
" Line base: %<PRIdFAST8>\n"
" Line range: %<PRIuFAST8>\n"
@@ -5204,19 +5203,19 @@ msgstr ""
" Wersja DWARF: %<PRIuFAST16>\n"
" Długość prologu: %<PRIu64>\n"
" Minimalna długość instrukcji: %<PRIuFAST8>\n"
-" Początkowa wartość '%s': %<PRIuFAST8>\n"
+" Początkowa wartość \"%s\": %<PRIuFAST8>\n"
" Początek linii: %<PRIdFAST8>\n"
" Przedział linii: %<PRIuFAST8>\n"
" Początek instrukcji: %<PRIuFAST8>\n"
"\n"
"Instrukcje:\n"
-#: src/readelf.c:5548
+#: src/readelf.c:5682
#, fuzzy, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
-msgstr "błędne dane w sekcji [%zu] '%s'"
+msgstr "błędne dane w sekcji [%zu] \"%s\""
-#: src/readelf.c:5563
+#: src/readelf.c:5697
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5224,7 +5223,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu argument\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu argumenty\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu argumentów\n"
-#: src/readelf.c:5571
+#: src/readelf.c:5705
msgid ""
"\n"
"Directory table:"
@@ -5232,7 +5231,7 @@ msgstr ""
"\n"
"Tabela katalogu:"
-#: src/readelf.c:5587
+#: src/readelf.c:5721
msgid ""
"\n"
"File name table:\n"
@@ -5242,7 +5241,7 @@ msgstr ""
"Tabela nazw plików:\n"
" Wpis Kat Czas Rozmiar Nazwa"
-#: src/readelf.c:5616
+#: src/readelf.c:5750
msgid ""
"\n"
"Line number statements:"
@@ -5250,88 +5249,113 @@ msgstr ""
"\n"
"Instrukcje numerów linii:"
-#: src/readelf.c:5677
+#: src/readelf.c:5824
+#, fuzzy, c-format
+msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"
+msgstr " instrukcja specjalna %u: adres+%u = %#<PRIx64>, linia%+d = %zu\n"
+
+#: src/readelf.c:5829
#, fuzzy, c-format
msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
msgstr " instrukcja specjalna %u: adres+%u = %#<PRIx64>, linia%+d = %zu\n"
-#: src/readelf.c:5697
+#: src/readelf.c:5849
#, c-format
msgid " extended opcode %u: "
msgstr " instrukcja rozszerzona %u: "
-#: src/readelf.c:5702
+#: src/readelf.c:5854
msgid "end of sequence"
msgstr "koniec sekwencji"
-#: src/readelf.c:5717
+#: src/readelf.c:5871
#, fuzzy, c-format
msgid "set address to %s\n"
msgstr "ustawienie adresu na %#<PRIx64>\n"
-#: src/readelf.c:5738
+#: src/readelf.c:5892
#, 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:5747
+#: src/readelf.c:5905
+#, fuzzy, c-format
+msgid " set discriminator to %u\n"
+msgstr " ustawienie kolumny na %<PRIu64>\n"
+
+#: src/readelf.c:5910
msgid "unknown opcode"
msgstr "nieznany kod instrukcji"
-#: src/readelf.c:5759
+#: src/readelf.c:5922
msgid " copy"
msgstr " kopiowanie"
-#: src/readelf.c:5769
+#: src/readelf.c:5933
+#, fuzzy, c-format
+msgid "advance address by %u to %s, op_index to %u\n"
+msgstr " zwiększenie adresu o %u do %#<PRIx64>\n"
+
+#: src/readelf.c:5937
#, fuzzy, c-format
msgid "advance address by %u to %s\n"
msgstr " zwiększenie adresu o %u do %#<PRIx64>\n"
-#: src/readelf.c:5780
+#: src/readelf.c:5948
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " zwiększenie linii o stałą %d do %<PRId64>\n"
-#: src/readelf.c:5788
+#: src/readelf.c:5956
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:5798
+#: src/readelf.c:5966
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:5805
+#: src/readelf.c:5973
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
-msgstr " ustawienie '%s' na %<PRIuFAST8>\n"
+msgstr " ustawienie \"%s\" na %<PRIuFAST8>\n"
-#: src/readelf.c:5811
+#: src/readelf.c:5979
msgid " set basic block flag"
msgstr " ustawienie podstawowej flagi bloku"
-#: src/readelf.c:5821
+#: src/readelf.c:5988
+#, fuzzy, c-format
+msgid "advance address by constant %u to %s, op_index to %u\n"
+msgstr " zwiększenie adresu o stałą %u do %#<PRIx64>\n"
+
+#: src/readelf.c:5992
#, fuzzy, c-format
msgid "advance address by constant %u to %s\n"
msgstr " zwiększenie adresu o stałą %u do %#<PRIx64>\n"
-#: src/readelf.c:5837
+#: src/readelf.c:6010
#, fuzzy, c-format
msgid "advance address by fixed value %u to %s\n"
msgstr " zwiększenie adresu o stałą wartość %u do %#<PRIx64>\n"
-#: src/readelf.c:5846
+#: src/readelf.c:6019
msgid " set prologue end flag"
msgstr " ustawienie flagi końca prologu"
-#: src/readelf.c:5851
+#: src/readelf.c:6024
msgid " set epilogue begin flag"
msgstr " ustawienie flagi początku epilogu"
-#: src/readelf.c:5860
+#: src/readelf.c:6033
+#, fuzzy, c-format
+msgid " set isa to %u\n"
+msgstr " ustawienie pliku na %<PRIu64>\n"
+
+#: src/readelf.c:6042
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5339,37 +5363,37 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:"
msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:"
-#: src/readelf.c:5892
+#: src/readelf.c:6074
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "nie można pobrać zawartości .debug_log: %s"
-#: src/readelf.c:5947
+#: src/readelf.c:6133
#, c-format
msgid " [%6tx] %s..%s"
-msgstr ""
+msgstr " [%6tx] %s..%s"
-#: src/readelf.c:5949
+#: src/readelf.c:6135
#, c-format
msgid " %s..%s"
-msgstr ""
+msgstr " %s..%s"
-#: src/readelf.c:6002
+#: src/readelf.c:6188
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "nie można pobrać danych sekcji informacji o makrach: %s"
-#: src/readelf.c:6081
+#: src/readelf.c:6267
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** niezakończony łańcuch na końcu sekcji"
-#: src/readelf.c:6149
+#: src/readelf.c:6335
#, 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:6188
+#: src/readelf.c:6374
#, fuzzy, c-format
msgid ""
"\n"
@@ -5377,50 +5401,50 @@ msgid ""
" %*s String\n"
msgstr ""
"\n"
-"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n"
+"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n"
" %*s Łańcuch\n"
-#: src/readelf.c:6202
+#: src/readelf.c:6388
#, c-format
msgid " *** error while reading strings: %s\n"
msgstr " *** błąd podczas odczytu łańcuchów: %s\n"
-#: src/readelf.c:6222
+#: src/readelf.c:6408
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:6324
+#: src/readelf.c:6510
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:6347
+#: src/readelf.c:6533
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:6359
+#: src/readelf.c:6545
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:6373
+#: src/readelf.c:6559
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:6386
+#: src/readelf.c:6572
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:6400
+#: src/readelf.c:6586
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5429,43 +5453,43 @@ msgid ""
" Action: %u\n"
msgstr ""
-#: src/readelf.c:6460
+#: src/readelf.c:6646
#, fuzzy, c-format
msgid "invalid TType encoding"
msgstr "błędny indeks linii"
-#: src/readelf.c:6484
+#: src/readelf.c:6671
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "nie można pobrać deskryptora kontekstu debugowego: %s"
-#: src/readelf.c:6620 src/readelf.c:7221
+#: src/readelf.c:6810 src/readelf.c:7411
#, fuzzy, c-format
msgid "cannot convert core note data: %s"
msgstr "nie można pobrać zawartości sekcji notatki: %s"
-#: src/readelf.c:6961
+#: src/readelf.c:7151
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:7320
+#: src/readelf.c:7510
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:7338
+#: src/readelf.c:7528
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
-msgstr " %-13.*s %9<PRId32> %s\n"
+msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:7372
+#: src/readelf.c:7562
#, c-format
msgid "cannot get content of note section: %s"
msgstr "nie można pobrać zawartości sekcji notatki: %s"
-#: src/readelf.c:7399
+#: src/readelf.c:7589
#, fuzzy, c-format
msgid ""
"\n"
@@ -5474,7 +5498,7 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:7422
+#: src/readelf.c:7612
#, fuzzy, c-format
msgid ""
"\n"
@@ -5483,19 +5507,19 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:7468
+#: src/readelf.c:7658
#, fuzzy, c-format
msgid ""
"\n"
"Section [%Zu] '%s' has no data to dump.\n"
-msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n"
+msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n"
-#: src/readelf.c:7474 src/readelf.c:7497
+#: src/readelf.c:7664 src/readelf.c:7687
#, fuzzy, c-format
msgid "cannot get data for section [%Zu] '%s': %s"
msgstr "nie można pobrać danych dla sekcji %d: %s"
-#: src/readelf.c:7478
+#: src/readelf.c:7668
#, fuzzy, c-format
msgid ""
"\n"
@@ -5504,14 +5528,14 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:7491
+#: src/readelf.c:7681
#, fuzzy, c-format
msgid ""
"\n"
"Section [%Zu] '%s' has no strings to dump.\n"
-msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n"
+msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n"
-#: src/readelf.c:7501
+#: src/readelf.c:7691
#, fuzzy, c-format
msgid ""
"\n"
@@ -5520,45 +5544,45 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:7549
+#: src/readelf.c:7739
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:7576
+#: src/readelf.c:7766
#, fuzzy, c-format
msgid ""
"\n"
"section '%s' does not exist"
-msgstr "sekcja [%2d] '%s': brak obowiązkowego znacznika %s\n"
+msgstr "sekcja [%2d] \"%s\": brak obowiązkowego znacznika %s\n"
-#: src/readelf.c:7637
+#: src/readelf.c:7827
#, fuzzy, c-format
msgid "cannot get symbol index of archive '%s': %s"
-msgstr "nie można pobrać symbolu w '%s': %s"
+msgstr "nie można pobrać symbolu w \"%s\": %s"
-#: src/readelf.c:7640
+#: src/readelf.c:7830
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:7644
+#: src/readelf.c:7834
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %Zu entries:\n"
msgstr ""
-#: src/readelf.c:7662
+#: src/readelf.c:7852
#, fuzzy, c-format
msgid "cannot extract member at offset %Zu in '%s': %s"
-msgstr "nie można pobrać zawartości sekcji %zu w '%s': %s"
+msgstr "nie można pobrać zawartości sekcji %zu w \"%s\": %s"
-#: src/readelf.c:7667
+#: src/readelf.c:7857
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
@@ -5573,23 +5597,23 @@ msgstr ""
#: src/size.c:70
msgid "Same as `--format=sysv'"
-msgstr "To samo co `--format=sysv'"
+msgstr "To samo, co `--format=sysv'"
#: src/size.c:71
msgid "Same as `--format=bsd'"
-msgstr "To samo co `--format=bsd'"
+msgstr "To samo, co `--format=bsd'"
#: src/size.c:74
msgid "Same as `--radix=10'"
-msgstr "To samo co `--radix=10'"
+msgstr "To samo, co `--radix=10'"
#: src/size.c:75
msgid "Same as `--radix=8'"
-msgstr "To samo co `--radix=8'"
+msgstr "To samo, co `--radix=8'"
#: src/size.c:76
msgid "Same as `--radix=16'"
-msgstr "To samo co `--radix=16'"
+msgstr "To samo, co `--radix=16'"
#: src/size.c:78
msgid "Similar to `--format=sysv' output but in one line"
@@ -5671,7 +5695,7 @@ msgstr "Wypisanie łańcuchów znaków drukowalnych w plikach."
#: src/strings.c:268 src/strings.c:303
#, c-format
msgid "invalid value '%s' for %s parameter"
-msgstr "błędna wartość '%s' dla parametru %s"
+msgstr "błędna wartość \"%s\" dla parametru %s"
#: src/strings.c:314
#, c-format
@@ -5753,12 +5777,12 @@ msgstr "Opcja -R obsługuje tylko sekcję .comment"
#: src/strip.c:298 src/strip.c:322
#, 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:312
#, c-format
msgid "while opening '%s'"
-msgstr "podczas otwierania '%s'"
+msgstr "podczas otwierania \"%s\""
#: src/strip.c:350
#, c-format
@@ -5773,12 +5797,12 @@ msgstr "nie można otworzyć backendu EBL"
#: src/strip.c:498 src/strip.c:522
#, 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:582
#, c-format
msgid "illformed file '%s'"
-msgstr "plik '%s' ma zły format"
+msgstr "plik \"%s\" ma zły format"
#: src/strip.c:869 src/strip.c:956
#, c-format
@@ -5793,7 +5817,7 @@ msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
#: src/strip.c:943
#, 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:994 src/strip.c:1050
#, c-format
@@ -5813,12 +5837,12 @@ msgstr "podczas tworzenia tabeli łańcuchów nagłówka sekcji: %s"
#: src/strip.c:1593 src/strip.c:1690
#, c-format
msgid "while writing '%s': %s"
-msgstr "podczas zapisu '%s': %s"
+msgstr "podczas zapisywania \"%s\": %s"
#: src/strip.c:1604
#, c-format
msgid "while creating '%s'"
-msgstr "podczas tworzenia `%s'"
+msgstr "podczas tworzenia \"%s\""
#: src/strip.c:1616
#, c-format
@@ -5833,12 +5857,12 @@ msgstr "%s: błąd podczas odczytu pliku: %s"
#: src/strip.c:1722 src/strip.c:1729
#, 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:1752 src/strip.c:1809
#, 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:78
msgid "Match MODULE against file names, not module names"
@@ -5892,7 +5916,7 @@ msgstr ""
#: src/unstrip.c:190
#, c-format
msgid "output directory '%s'"
-msgstr ""
+msgstr "katalog wyjściowy \"%s\""
#: src/unstrip.c:199
#, c-format
@@ -5919,7 +5943,7 @@ msgstr "nie można odczytać nagłówka ELF: %s"
msgid "cannot copy ELF header: %s"
msgstr "nie można uaktualnić nagłówka ELF: %s"
-#: src/unstrip.c:264 src/unstrip.c:1817
+#: src/unstrip.c:264 src/unstrip.c:1830
#, fuzzy, c-format
msgid "cannot create program headers: %s"
msgstr "nie można utworzyć nagłówka programu: %s"
@@ -5934,12 +5958,12 @@ msgstr "nie można pobrać nagłówka programu: %s"
msgid "cannot copy section header: %s"
msgstr "nie można pobrać nagłówka sekcji: %s"
-#: src/unstrip.c:283 src/unstrip.c:1505
+#: src/unstrip.c:283 src/unstrip.c:1511
#, fuzzy, c-format
msgid "cannot get section data: %s"
msgstr "nie można pobrać sekcji: %s"
-#: src/unstrip.c:285 src/unstrip.c:1507
+#: src/unstrip.c:285 src/unstrip.c:1513
#, fuzzy, c-format
msgid "cannot copy section data: %s"
msgstr "nie można przydzielić danych sekcji: %s"
@@ -5947,183 +5971,192 @@ msgstr "nie można przydzielić danych sekcji: %s"
#: src/unstrip.c:309
#, fuzzy, c-format
msgid "cannot create directory '%s'"
-msgstr "nie można utworzyć deskryptora EBL dla '%s'"
+msgstr "nie można utworzyć deskryptora EBL dla \"%s\""
-#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540
+#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545
#, fuzzy, c-format
msgid "cannot get symbol table entry: %s"
-msgstr "nie można pobrać sekcji tabeli symboli %zu w '%s': %s"
+msgstr "nie można pobrać sekcji tabeli symboli %zu w \"%s\": %s"
-#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613
-#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715
+#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616
+#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720
#, fuzzy, c-format
msgid "cannot update symbol table: %s"
msgstr "nie można uaktualnić nagłówka ELF: %s"
-#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209
-#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791
+#: src/unstrip.c:375
#, fuzzy, c-format
msgid "cannot update section header: %s"
msgstr "nie można pobrać nagłówka sekcji: %s"
-#: src/unstrip.c:408 src/unstrip.c:419
+#: src/unstrip.c:414 src/unstrip.c:425
#, fuzzy, c-format
msgid "cannot update relocation: %s"
msgstr "nie można pobrać relokacji: %s"
-#: src/unstrip.c:507
+#: src/unstrip.c:512
#, fuzzy, c-format
msgid "cannot get symbol version: %s"
-msgstr "nie można pobrać symbolu w '%s': %s"
+msgstr "nie można pobrać symbolu w \"%s\": %s"
-#: src/unstrip.c:519
+#: src/unstrip.c:524
#, c-format
msgid "unexpected section type in [%Zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:769
+#: src/unstrip.c:772
#, fuzzy, c-format
msgid "invalid string offset in symbol [%Zu]"
msgstr "błędny offset %zu dla symbolu %s"
-#: src/unstrip.c:911 src/unstrip.c:1248
+#: src/unstrip.c:914 src/unstrip.c:1254
#, fuzzy, c-format
msgid "cannot read section [%Zu] name: %s"
msgstr "nie można pobrać nagłówka sekcji: %s"
-#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004
+#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007
#, fuzzy, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "nie można odczytać sekcji dynamicznej: %s"
-#: src/unstrip.c:992
+#: src/unstrip.c:995
#, fuzzy, c-format
msgid "invalid contents in '%s' section"
msgstr "błędna sekcja .debug_line"
-#: src/unstrip.c:1047 src/unstrip.c:1370
+#: src/unstrip.c:1050 src/unstrip.c:1376
#, fuzzy, c-format
msgid "cannot find matching section for [%Zu] '%s'"
-msgstr "błędne dane w sekcji [%zu] '%s'"
+msgstr "błędne dane w sekcji [%zu] \"%s\""
-#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451
+#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457
#, fuzzy, c-format
msgid "cannot add section name to string table: %s"
msgstr "nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji"
-#: src/unstrip.c:1195
+#: src/unstrip.c:1198
#, fuzzy, c-format
msgid "cannot update section header string table data: %s"
msgstr "%s: nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji: %s\n"
-#: src/unstrip.c:1223 src/unstrip.c:1227
+#: src/unstrip.c:1225 src/unstrip.c:1229
#, fuzzy, c-format
msgid "cannot get section header string table section index: %s"
msgstr "%s: nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji: %s\n"
-#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466
+#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472
#, fuzzy, c-format
msgid "cannot get section count: %s"
msgstr "nie można pobrać sekcji: %s"
-#: src/unstrip.c:1293 src/unstrip.c:1385
+#: src/unstrip.c:1240
+#, c-format
+msgid "more sections in stripped file than debug file -- arguments reversed?"
+msgstr ""
+
+#: src/unstrip.c:1299 src/unstrip.c:1391
#, fuzzy, c-format
msgid "cannot read section header string table: %s"
msgstr "nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji"
-#: src/unstrip.c:1445
+#: src/unstrip.c:1451
#, fuzzy, c-format
msgid "cannot add new section: %s"
msgstr "nie można pobrać sekcji: %s"
-#: src/unstrip.c:1548
+#: src/unstrip.c:1553
#, fuzzy, c-format
msgid "symbol [%Zu] has invalid section index"
-msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n"
+msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n"
-#: src/unstrip.c:1800
+#: src/unstrip.c:1791
+#, fuzzy, c-format
+msgid "cannot read section data: %s"
+msgstr "nie można pobrać sekcji: %s"
+
+#: src/unstrip.c:1812
#, fuzzy, c-format
msgid "cannot get ELF header: %s"
msgstr "nie można pobrać nagłówka ELF"
-#: src/unstrip.c:1827
+#: src/unstrip.c:1840
#, fuzzy, c-format
msgid "cannot update program header: %s"
msgstr "nie można utworzyć nagłówka programu: %s"
-#: src/unstrip.c:1832 src/unstrip.c:1911
+#: src/unstrip.c:1845 src/unstrip.c:1924
#, fuzzy, c-format
msgid "cannot write output file: %s"
msgstr "nie można utworzyć pliku wyjściowego"
-#: src/unstrip.c:1880
+#: src/unstrip.c:1893
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:1883
+#: src/unstrip.c:1896
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034
+#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047
#, fuzzy, c-format
msgid "cannot create ELF descriptor: %s"
-msgstr "nie można utworzyć deskryptora ELF dla '%s': %s"
+msgstr "nie można utworzyć deskryptora ELF dla \"%s\": %s"
-#: src/unstrip.c:1960
+#: src/unstrip.c:1973
#, c-format
msgid "'%s' and '%s' do not seem to match"
msgstr ""
-#: src/unstrip.c:1991
+#: src/unstrip.c:2004
#, fuzzy, c-format
msgid "cannot find stripped file for module '%s': %s"
-msgstr "nie można utworzyć nowego pliku '%s': %s"
+msgstr "nie można utworzyć nowego pliku \"%s\": %s"
-#: src/unstrip.c:1995
+#: src/unstrip.c:2008
#, fuzzy, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
-msgstr "nie można utworzyć nowego pliku '%s': %s"
+msgstr "nie można utworzyć nowego pliku \"%s\": %s"
-#: src/unstrip.c:2010
+#: src/unstrip.c:2023
#, fuzzy, c-format
msgid "cannot find debug file for module '%s': %s"
-msgstr "nie można utworzyć nowego pliku '%s': %s"
+msgstr "nie można utworzyć nowego pliku \"%s\": %s"
-#: src/unstrip.c:2014
+#: src/unstrip.c:2027
#, fuzzy, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
-msgstr "nie można utworzyć nowego pliku '%s': %s"
+msgstr "nie można utworzyć nowego pliku \"%s\": %s"
-#: src/unstrip.c:2027
+#: src/unstrip.c:2040
#, fuzzy, c-format
msgid "module '%s' file '%s' is not stripped"
-msgstr "plik wejściowy '%s' zignorowany"
+msgstr "plik wejściowy \"%s\" zignorowany"
-#: src/unstrip.c:2058
+#: src/unstrip.c:2071
#, fuzzy, c-format
msgid "cannot cache section addresses for module '%s': %s"
-msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] '%s': %s\n"
+msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] \"%s\": %s\n"
-#: src/unstrip.c:2191
+#: src/unstrip.c:2204
#, fuzzy, c-format
msgid "no matching modules found"
msgstr "brak pasującego zakresu adresów"
-#: src/unstrip.c:2200
+#: src/unstrip.c:2213
#, fuzzy, c-format
msgid "matched more than one module"
msgstr "%s podano więcej niż raz na wejściu"
-#: src/unstrip.c:2247
+#: src/unstrip.c:2260
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2248
+#: src/unstrip.c:2261
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/uk.po b/po/uk.po
index 9df3811f..fb5bf0d8 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n"
-"POT-Creation-Date: 2010-05-03 14:14-0700\n"
-"PO-Revision-Date: 2010-04-15 07:24+0300\n"
+"POT-Creation-Date: 2010-06-28 12:08-0700\n"
+"PO-Revision-Date: 2010-06-22 20:44+0300\n"
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
"Language-Team: Ukrainian <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -15,10 +15,10 @@ msgstr ""
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 1.0\n"
+"X-Generator: Lokalize 1.1\n"
-#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822
-#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295
+#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823
+#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308
#, c-format
msgid "memory exhausted"
msgstr "пам’ять вичерпано"
@@ -204,7 +204,7 @@ msgstr "немає розділу .debug_ranges"
msgid "invalid CFI section"
msgstr "некоректний розділ CFI"
-#: libdwfl/argp-std.c:67 src/unstrip.c:2237
+#: libdwfl/argp-std.c:67 src/unstrip.c:2250
msgid "Input selection options:"
msgstr "Вибір параметрів виведення даних:"
@@ -354,6 +354,10 @@ msgstr "не є коректним файлом ELF"
msgid "cannot handle DWARF type description"
msgstr "не вдалося обробити опис типу DWARF"
+#: libdwfl/libdwflP.h:97
+msgid "ELF file does not match build ID"
+msgstr "Файл ELF не відповідає ідентифікатору збирання"
+
#: libebl/eblbackendname.c:63
msgid "No backend"
msgstr "Немає сервера"
@@ -414,7 +418,7 @@ msgstr "некоректна розмірність вхідного парам�
msgid "invalid size of destination operand"
msgstr "некоректна розмірність вихідного параметра"
-#: libelf/elf_error.c:108 src/readelf.c:4779
+#: libelf/elf_error.c:108 src/readelf.c:4826
#, c-format
msgid "invalid encoding"
msgstr "некоректне кодування"
@@ -495,7 +499,7 @@ msgstr "невідповідність полів data/scn"
msgid "invalid section header"
msgstr "некоректний заголовок розділу"
-#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343
+#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529
#, c-format
msgid "invalid data"
msgstr "некоректні дані"
@@ -579,7 +583,7 @@ msgstr "[АДРЕСА...]"
#: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239
#: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181
-#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227
+#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227
#: src/strip.c:204 src/unstrip.c:234
#, c-format
msgid ""
@@ -594,7 +598,7 @@ msgstr ""
#: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244
#: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186
-#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232
+#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232
#: src/strip.c:209 src/unstrip.c:239
#, c-format
msgid "Written by %s.\n"
@@ -610,12 +614,12 @@ msgstr "Синтаксис розділів вимагає точного одн
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr "зміщення %#<PRIxMAX> розташовано поза межами розділу «%s»"
-#: src/addr2line.c:461
+#: src/addr2line.c:469
#, c-format
msgid "cannot find symbol '%s'"
msgstr "не вдалося знайти символ «%s»"
-#: src/addr2line.c:466
+#: src/addr2line.c:474
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr "зміщення %#<PRIxMAX> розташовано поза межами вмісту «%s»"
@@ -1003,8 +1007,8 @@ msgstr "Некоректне значення «%s» параметра --gaps."
#: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767
#: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301
-#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900
-#: src/unstrip.c:1929
+#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913
+#: src/unstrip.c:1942
#, c-format
msgid "cannot open '%s'"
msgstr "не вдалося відкрити «%s»"
@@ -1063,7 +1067,7 @@ msgstr ""
msgid "FILE..."
msgstr "ФАЙЛ..."
-#: src/elflint.c:159 src/readelf.c:272
+#: src/elflint.c:159 src/readelf.c:273
#, c-format
msgid "cannot open input file"
msgstr "не вдалося відкрити вхідний файл."
@@ -1082,7 +1086,7 @@ msgstr "помилка під час спроби закриття дескри�
msgid "No errors"
msgstr "Без помилок"
-#: src/elflint.c:223 src/readelf.c:425
+#: src/elflint.c:223 src/readelf.c:426
msgid "Missing file name.\n"
msgstr "Не вказано назви файла.\n"
@@ -3413,7 +3417,7 @@ msgstr "Попередження: тип «%s» змінився з %s у %s н�
msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s"
msgstr "Попередження: розмір «%s» змінено з %<PRIu64> у %s на %<PRIu64> у %s"
-#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543
+#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "не вдалося визначити кількість розділів: %s"
@@ -3653,7 +3657,7 @@ msgstr "внутрішня помилка: небезбітовий розділ
msgid "cannot get header of 0th section: %s"
msgstr "не вдалося отримати заголовок 0-го розділу: %s"
-#: src/ldgeneric.c:6941 src/unstrip.c:1808
+#: src/ldgeneric.c:6941 src/unstrip.c:1820
#, c-format
msgid "cannot update ELF header: %s"
msgstr "не вдалося оновити заголовок ELF: %s"
@@ -3855,11 +3859,11 @@ msgstr "%s%s%s: не вдалося розпізнати формат файла
msgid "cannot create search tree"
msgstr "не вдалося створити дерево пошуку"
-#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885
-#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549
-#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265
-#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939
-#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604
+#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886
+#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550
+#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266
+#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940
+#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794
#: src/size.c:425 src/size.c:499 src/strip.c:483
#, c-format
msgid "cannot get section header string table index"
@@ -3948,7 +3952,7 @@ msgstr "Показати інформацію лише з розділу НАЗ�
msgid "Show information from FILEs (a.out by default)."
msgstr "Показати інформацію з ФАЙЛів (типово a.out)."
-#: src/objdump.c:236 src/readelf.c:430
+#: src/objdump.c:236 src/readelf.c:431
msgid "No operation specified.\n"
msgstr "Не вказано дії.\n"
@@ -3957,11 +3961,11 @@ msgstr "Не вказано дії.\n"
msgid "while close `%s'"
msgstr "під час закриття «%s»"
-#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818
+#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819
msgid "INVALID SYMBOL"
msgstr "НЕКОРЕКТНИЙ СИМВОЛ"
-#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851
+#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852
msgid "INVALID SECTION"
msgstr "НЕКОРЕКТНИЙ РОЗДІЛ"
@@ -4103,87 +4107,87 @@ msgstr "Не шукати назви символів для адресу у д�
msgid "Print information from ELF file in human-readable form."
msgstr "Виводити відомості з файла ELF у придатному для читання форматі."
-#: src/readelf.c:401
+#: src/readelf.c:402
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Невідомий діагностичний розділ DWARF «%s».\n"
-#: src/readelf.c:465
+#: src/readelf.c:466
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "не вдалося створити дескриптор Elf: %s"
-#: src/readelf.c:477
+#: src/readelf.c:478
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "«%s» не є архівом, виведення покажчика архіву неможливе"
-#: src/readelf.c:482
+#: src/readelf.c:483
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "помилка під час спроби закриття дескриптора Elf: %s"
-#: src/readelf.c:574
+#: src/readelf.c:575
#, c-format
msgid "cannot stat input file"
msgstr "не вдалося отримати дані з вхідного файла за допомогою stat"
-#: src/readelf.c:576
+#: src/readelf.c:577
#, c-format
msgid "input file is empty"
msgstr "вхідний файл є порожнім"
-#: src/readelf.c:578
+#: src/readelf.c:579
#, c-format
msgid "failed reading '%s': %s"
msgstr "не вдалося прочитати «%s»: %s"
-#: src/readelf.c:614
+#: src/readelf.c:615
#, c-format
msgid "cannot read ELF header: %s"
msgstr "не вдалося прочитати заголовок ELF: %s"
-#: src/readelf.c:622
+#: src/readelf.c:623
#, c-format
msgid "cannot create EBL handle"
msgstr "не вдалося створити дескриптор EBL"
-#: src/readelf.c:635
+#: src/readelf.c:636
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "не вдалося визначити кількість заголовків програми: %s"
-#: src/readelf.c:721
+#: src/readelf.c:722
msgid "NONE (None)"
msgstr "NONE (Немає)"
-#: src/readelf.c:722
+#: src/readelf.c:723
msgid "REL (Relocatable file)"
msgstr "REL (Придатний до переміщення файл)"
-#: src/readelf.c:723
+#: src/readelf.c:724
msgid "EXEC (Executable file)"
msgstr "EXEC (Виконуваний файл)"
-#: src/readelf.c:724
+#: src/readelf.c:725
msgid "DYN (Shared object file)"
msgstr "DYN (Файл об’єктів спільного використання)"
-#: src/readelf.c:725
+#: src/readelf.c:726
msgid "CORE (Core file)"
msgstr "CORE (Файл ядра)"
-#: src/readelf.c:730
+#: src/readelf.c:731
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "ОС-специфічне: (%x)\n"
-#: src/readelf.c:732
+#: src/readelf.c:733
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Специфічне для процесора: (%x)\n"
-#: src/readelf.c:742
+#: src/readelf.c:743
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4191,7 +4195,7 @@ msgstr ""
"Заголовок ELF:\n"
" Magic: "
-#: src/readelf.c:746
+#: src/readelf.c:747
#, c-format
msgid ""
"\n"
@@ -4200,117 +4204,117 @@ msgstr ""
"\n"
" Клас: %s\n"
-#: src/readelf.c:751
+#: src/readelf.c:752
#, c-format
msgid " Data: %s\n"
msgstr " Дані: %s\n"
-#: src/readelf.c:757
+#: src/readelf.c:758
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Версія Ident: %hhd %s\n"
-#: src/readelf.c:759 src/readelf.c:776
+#: src/readelf.c:760 src/readelf.c:777
msgid "(current)"
msgstr "(поточний)"
-#: src/readelf.c:763
+#: src/readelf.c:764
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ABI: %s\n"
-#: src/readelf.c:766
+#: src/readelf.c:767
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Версія ABI: %hhd\n"
-#: src/readelf.c:769
+#: src/readelf.c:770
msgid " Type: "
msgstr " Тип: "
-#: src/readelf.c:772
+#: src/readelf.c:773
#, c-format
msgid " Machine: %s\n"
msgstr " Архітектура: %s\n"
-#: src/readelf.c:774
+#: src/readelf.c:775
#, c-format
msgid " Version: %d %s\n"
msgstr " Версія: %d %s\n"
-#: src/readelf.c:778
+#: src/readelf.c:779
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Адреса вхідної точки: %#<PRIx64>\n"
-#: src/readelf.c:781
+#: src/readelf.c:782
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Початок заголовків програм: %<PRId64> %s\n"
-#: src/readelf.c:782 src/readelf.c:785
+#: src/readelf.c:783 src/readelf.c:786
msgid "(bytes into file)"
msgstr "(байтів у файл)"
-#: src/readelf.c:784
+#: src/readelf.c:785
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Початок заголовків розділів: %<PRId64> %s\n"
-#: src/readelf.c:787
+#: src/readelf.c:788
#, c-format
msgid " Flags: %s\n"
msgstr " Прапорці: %s\n"
-#: src/readelf.c:790
+#: src/readelf.c:791
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Розмір цього заголовка: %<PRId16> %s\n"
-#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811
+#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812
msgid "(bytes)"
msgstr "(байтів)"
-#: src/readelf.c:793
+#: src/readelf.c:794
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Розмір записів заголовка програми: %<PRId16> %s\n"
-#: src/readelf.c:796
+#: src/readelf.c:797
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Кількість записів заголовків програми: %<PRId16>"
-#: src/readelf.c:803
+#: src/readelf.c:804
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> у [0].sh_info)"
-#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837
+#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838
msgid " ([0] not available)"
msgstr " ([0] недоступний)"
-#: src/readelf.c:810
+#: src/readelf.c:811
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Розмір записів заголовків розділів: %<PRId16> %s\n"
-#: src/readelf.c:813
+#: src/readelf.c:814
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Кількість записів заголовків розділів: %<PRId16>"
-#: src/readelf.c:820
+#: src/readelf.c:821
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> у [0].sh_size)"
-#: src/readelf.c:833
+#: src/readelf.c:834
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> у [0].sh_link)"
-#: src/readelf.c:841
+#: src/readelf.c:842
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4319,7 +4323,7 @@ msgstr ""
" Індекс заголовка розділу у таблиці рядків: XINDEX%s\n"
"\n"
-#: src/readelf.c:845
+#: src/readelf.c:846
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4328,7 +4332,7 @@ msgstr ""
" Індекс заголовка розділу у таблиці рядків: %<PRId16>\n"
"\n"
-#: src/readelf.c:877
+#: src/readelf.c:878
#, c-format
msgid ""
"There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -4337,11 +4341,11 @@ msgstr ""
"Виявлено %d заголовків розділів, зміщення початку — %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:887
+#: src/readelf.c:888
msgid "Section Headers:"
msgstr "Заголовки розділів:"
-#: src/readelf.c:890
+#: src/readelf.c:891
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4349,7 +4353,7 @@ msgstr ""
"[№ ] Назва Тип Адр Змі Розмір ES Прап Lk "
"Інф Al"
-#: src/readelf.c:892
+#: src/readelf.c:893
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4357,31 +4361,31 @@ msgstr ""
"[№ ] Назва Тип Адр Змі Розмір ES "
"Прап Lk Інф Al"
-#: src/readelf.c:899 src/readelf.c:1052
+#: src/readelf.c:900 src/readelf.c:1053
#, c-format
msgid "cannot get section: %s"
msgstr "не вдалося отримати розділ: %s"
-#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353
-#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553
-#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244
-#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588
-#: src/unstrip.c:1778
+#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353
+#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558
+#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250
+#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593
+#: src/unstrip.c:1782
#, c-format
msgid "cannot get section header: %s"
msgstr "не вдалося отримати заголовок розділу: %s"
-#: src/readelf.c:964
+#: src/readelf.c:965
msgid "Program Headers:"
msgstr "Заголовки програми:"
-#: src/readelf.c:966
+#: src/readelf.c:967
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Тип Зміщен ВіртАдр ФізАдр РозмФайл РозмПам Пра Вирів"
-#: src/readelf.c:969
+#: src/readelf.c:970
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4389,12 +4393,12 @@ msgstr ""
" Тип Зміщен ВіртАдр ФізАдр "
"РозмФайлРозмПам Пра Вирів"
-#: src/readelf.c:1009
+#: src/readelf.c:1010
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Запит щодо інтерпретатора програми: %s]\n"
-#: src/readelf.c:1030
+#: src/readelf.c:1031
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4404,12 +4408,12 @@ msgstr ""
" Відображення розділів на сегмент:\n"
" Розділи сегмента..."
-#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870
+#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883
#, c-format
msgid "cannot get program header: %s"
msgstr "не вдалося отримати заголовок програми: %s"
-#: src/readelf.c:1175
+#: src/readelf.c:1176
#, c-format
msgid ""
"\n"
@@ -4427,7 +4431,7 @@ msgstr[2] ""
"\n"
"Група розділів COMDAT [%2zu] «%s» з підписом «%s» містить %zu записів:\n"
-#: src/readelf.c:1180
+#: src/readelf.c:1181
#, c-format
msgid ""
"\n"
@@ -4445,15 +4449,15 @@ msgstr[2] ""
"\n"
"Група розділів [%2zu] «%s» з підписом «%s» містить %zu записів:\n"
-#: src/readelf.c:1188
+#: src/readelf.c:1189
msgid "<INVALID SYMBOL>"
msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>"
-#: src/readelf.c:1202
+#: src/readelf.c:1203
msgid "<INVALID SECTION>"
msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>"
-#: src/readelf.c:1353
+#: src/readelf.c:1354
#, c-format
msgid ""
"\n"
@@ -4476,36 +4480,36 @@ msgstr[2] ""
"Динамічний сегмент містить %lu записів:\n"
" Адр: %#0*<PRIx64> Зміщення: %#08<PRIx64> Пос. на розділ: [%2u] '%s'\n"
-#: src/readelf.c:1365
+#: src/readelf.c:1366
msgid " Type Value\n"
msgstr " Тип Значення\n"
-#: src/readelf.c:1389
+#: src/readelf.c:1390
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Спільна бібліотека: [%s]\n"
-#: src/readelf.c:1394
+#: src/readelf.c:1395
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Назва so бібліотеки: [%s]\n"
-#: src/readelf.c:1399
+#: src/readelf.c:1400
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath бібліотеки: [%s]\n"
-#: src/readelf.c:1404
+#: src/readelf.c:1405
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Runpath бібліотеки: [%s]\n"
-#: src/readelf.c:1424
+#: src/readelf.c:1425
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (байт)\n"
-#: src/readelf.c:1534 src/readelf.c:1720
+#: src/readelf.c:1535 src/readelf.c:1721
#, c-format
msgid ""
"\n"
@@ -4514,7 +4518,7 @@ msgstr ""
"\n"
"Некоректна таблиця символів за зміщенням %#0<PRIx64>\n"
-#: src/readelf.c:1552 src/readelf.c:1737
+#: src/readelf.c:1553 src/readelf.c:1738
#, c-format
msgid ""
"\n"
@@ -4537,7 +4541,7 @@ msgstr[2] ""
"Розділ переміщення [%2zu] «%s» для розділу [%2u] «%s» за зміщенням %#0<PRIx64> "
"містить %d записів:\n"
-#: src/readelf.c:1567
+#: src/readelf.c:1568
#, c-format
msgid ""
"\n"
@@ -4555,30 +4559,30 @@ msgstr[2] ""
"\n"
"Розділ переміщення [%2u] «%s» за зміщенням %#0<PRIx64> містить %d записів:\n"
-#: src/readelf.c:1577
+#: src/readelf.c:1578
msgid " Offset Type Value Name\n"
msgstr " Зміщення Тип Значення Назва\n"
-#: src/readelf.c:1579
+#: src/readelf.c:1580
msgid " Offset Type Value Name\n"
msgstr " Зміщення Тип Значення Назва\n"
-#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674
-#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831
-#: src/readelf.c:1850 src/readelf.c:1863
+#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675
+#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832
+#: src/readelf.c:1851 src/readelf.c:1864
msgid "<INVALID RELOC>"
msgstr "<НЕКОРЕКТНЕ ПЕРЕМІЩЕННЯ>"
-#: src/readelf.c:1749
+#: src/readelf.c:1750
msgid " Offset Type Value Addend Name\n"
msgstr " Зміщення Тип Значення Назва додатка\n"
-#: src/readelf.c:1751
+#: src/readelf.c:1752
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Зміщення Тип Значення Назва додатка\n"
-#: src/readelf.c:1952
+#: src/readelf.c:1953
#, c-format
msgid ""
"\n"
@@ -4596,7 +4600,7 @@ msgstr[2] ""
"\n"
"Таблиця символів [%2u] «%s» містить %u записів:\n"
-#: src/readelf.c:1958
+#: src/readelf.c:1959
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -4604,33 +4608,33 @@ msgstr[0] " %lu лок. символ Таблиця символів: [%2u] «
msgstr[1] " %lu лок. символи Таблиця символів: [%2u] «%s»\n"
msgstr[2] " %lu лок. символів Таблиця символів: [%2u] «%s»\n"
-#: src/readelf.c:1968
+#: src/readelf.c:1969
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " №№ Знач. Роз. Тип Зв’яз Вид. Інд Назва\n"
-#: src/readelf.c:1970
+#: src/readelf.c:1971
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " №№ Знач. Роз. Тип Зв’яз Вид. Інд Назва\n"
-#: src/readelf.c:1990
+#: src/readelf.c:1991
#, 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:2078
+#: src/readelf.c:2079
#, c-format
msgid "bad dynamic symbol"
msgstr "помилковий динамічний символ"
-#: src/readelf.c:2160
+#: src/readelf.c:2161
msgid "none"
msgstr "немає"
-#: src/readelf.c:2177
+#: src/readelf.c:2178
msgid "| <unknown>"
msgstr "| <невідомо>"
-#: src/readelf.c:2202
+#: src/readelf.c:2203
#, c-format
msgid ""
"\n"
@@ -4653,17 +4657,17 @@ msgstr[2] ""
"Розділ потреби у версіях [%2u] «%s», що містить %d записів:\n"
" Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»\n"
-#: src/readelf.c:2225
+#: src/readelf.c:2226
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Версія: %hu Файл: %s Кть: %hu\n"
-#: src/readelf.c:2238
+#: src/readelf.c:2239
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Назва: %s Прап: %s Версія: %hu\n"
-#: src/readelf.c:2269
+#: src/readelf.c:2270
#, c-format
msgid ""
"\n"
@@ -4686,17 +4690,17 @@ msgstr[2] ""
"Розділ визначення версії [%2u] «%s», що містить %d записів:\n"
" Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»\n"
-#: src/readelf.c:2299
+#: src/readelf.c:2300
#, 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:2314
+#: src/readelf.c:2315
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: батьківський %d: %s\n"
-#: src/readelf.c:2546
+#: src/readelf.c:2547
#, c-format
msgid ""
"\n"
@@ -4719,15 +4723,15 @@ msgstr[2] ""
"Розділ символів версій [%2u] «%s», що містить %d записів:\n"
" Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»"
-#: src/readelf.c:2576
+#: src/readelf.c:2577
msgid " 0 *local* "
msgstr " 0 *локальний* "
-#: src/readelf.c:2581
+#: src/readelf.c:2582
msgid " 1 *global* "
msgstr " 1 *загальний* "
-#: src/readelf.c:2612
+#: src/readelf.c:2613
#, c-format
msgid ""
"\n"
@@ -4755,36 +4759,36 @@ msgstr[2] ""
"блоками):\n"
" Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»\n"
-#: src/readelf.c:2636
+#: src/readelf.c:2637
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Довжина Номер % від загал. Покриття\n"
-#: src/readelf.c:2638
+#: src/readelf.c:2639
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:2645
+#: src/readelf.c:2646
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:2658
+#: src/readelf.c:2659
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
-" unsuccessful lookup: %f\n"
+"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
" Середня кількість тестів: успішний пошук: %f\n"
-" неуспішний пошук: %f\n"
+"\t\t\t неуспішний пошук: %f\n"
-#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759
+#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "не вдалося отримати дані для розділу %d: %s"
-#: src/readelf.c:2813
+#: src/readelf.c:2814
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4794,7 +4798,7 @@ msgstr ""
" Розмір бітової маски: %zu байтів %<PRIuFAST32>%% встановлених бітів зсув "
"2-го хешу: %u\n"
-#: src/readelf.c:2887
+#: src/readelf.c:2888
#, c-format
msgid ""
"\n"
@@ -4815,7 +4819,7 @@ msgstr[2] ""
"Розділ списку бібліотек [%2zu] «%s» за зміщенням %#0<PRIx64> містить %d "
"записів:\n"
-#: src/readelf.c:2901
+#: src/readelf.c:2902
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4823,7 +4827,7 @@ msgstr ""
" Бібліотека Часовий штамп Версія суми "
"Прапорці"
-#: src/readelf.c:2951
+#: src/readelf.c:2952
#, c-format
msgid ""
"\n"
@@ -4834,140 +4838,140 @@ msgstr ""
"Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщенням %"
"#0<PRIx64>:\n"
-#: src/readelf.c:2967
+#: src/readelf.c:2968
msgid " Owner Size\n"
msgstr " Власник Розмір\n"
-#: src/readelf.c:2993
+#: src/readelf.c:2994
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
-#: src/readelf.c:3025
+#: src/readelf.c:3026
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
-#: src/readelf.c:3030
+#: src/readelf.c:3031
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Файл: %11<PRIu32>\n"
-#: src/readelf.c:3065
+#: src/readelf.c:3066
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3068
+#: src/readelf.c:3069
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3071
+#: src/readelf.c:3072
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3078
+#: src/readelf.c:3079
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3081
+#: src/readelf.c:3082
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3117
+#: src/readelf.c:3118
#, c-format
msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3120
+#: src/readelf.c:3121
#, c-format
msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3125
+#: src/readelf.c:3126
#, c-format
msgid "%#<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3128
+#: src/readelf.c:3129
#, c-format
msgid "%#0*<PRIx64> <%s+%#<PRIx64>>"
msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>"
-#: src/readelf.c:3134
+#: src/readelf.c:3135
#, c-format
msgid "%s+%#<PRIx64> <%s>"
msgstr "%s+%#<PRIx64> <%s>"
-#: src/readelf.c:3137
+#: src/readelf.c:3138
#, c-format
msgid "%s+%#0*<PRIx64> <%s>"
msgstr "%s+%#0*<PRIx64> <%s>"
-#: src/readelf.c:3141
+#: src/readelf.c:3142
#, c-format
msgid "%#<PRIx64> <%s>"
msgstr "%#<PRIx64> <%s>"
-#: src/readelf.c:3144
+#: src/readelf.c:3145
#, c-format
msgid "%#0*<PRIx64> <%s>"
msgstr "%#0*<PRIx64> <%s>"
-#: src/readelf.c:3149
+#: src/readelf.c:3150
#, c-format
msgid "%s+%#<PRIx64>"
msgstr "%s+%#<PRIx64>"
-#: src/readelf.c:3152
+#: src/readelf.c:3153
#, c-format
msgid "%s+%#0*<PRIx64>"
msgstr "%s+%#0*<PRIx64>"
-#: src/readelf.c:3260
+#: src/readelf.c:3284
#, c-format
msgid "unknown tag %hx"
msgstr "невідомий теґ %hx"
-#: src/readelf.c:3262
+#: src/readelf.c:3286
#, c-format
msgid "unknown user tag %hx"
msgstr "невідомий теґ користувача %hx"
-#: src/readelf.c:3480
+#: src/readelf.c:3510
#, c-format
msgid "unknown attribute %hx"
msgstr "невідомий атрибут %hx"
-#: src/readelf.c:3483
+#: src/readelf.c:3513
#, c-format
msgid "unknown user attribute %hx"
msgstr "невідомий атрибут користувача %hx"
-#: src/readelf.c:3529
+#: src/readelf.c:3563
#, c-format
msgid "unknown form %<PRIx64>"
msgstr "невідома форма %<PRIx64>"
-#: src/readelf.c:3763
+#: src/readelf.c:3797
msgid "empty block"
msgstr "порожній блок"
-#: src/readelf.c:3766
+#: src/readelf.c:3800
#, c-format
msgid "%zu byte block:"
msgstr "%zu-байтовий блок:"
-#: src/readelf.c:4175
+#: src/readelf.c:4222
#, c-format
msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <ОБРІЗАНО>\n"
-#: src/readelf.c:4188
+#: src/readelf.c:4235
#, c-format
msgid ""
"\n"
@@ -4978,7 +4982,7 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:4195
+#: src/readelf.c:4242
#, c-format
msgid ""
"\n"
@@ -4987,30 +4991,30 @@ msgstr ""
"\n"
"Розділ скорочень за зміщенням %<PRIu64>:\n"
-#: src/readelf.c:4208
+#: src/readelf.c:4255
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** помилка під час читання скорочення: %s\n"
-#: src/readelf.c:4224
+#: src/readelf.c:4271
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] зміщення: %<PRId64>, дочірній: %s, мітка: %s\n"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "yes"
msgstr "так"
-#: src/readelf.c:4227
+#: src/readelf.c:4274
msgid "no"
msgstr "ні"
-#: src/readelf.c:4263
+#: src/readelf.c:4310
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "не вдалося отримати дані get .debug_aranges: %s"
-#: src/readelf.c:4268
+#: src/readelf.c:4315
#, c-format
msgid ""
"\n"
@@ -5028,12 +5032,12 @@ msgstr[2] ""
"\n"
"Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64> містить %zu записів:\n"
-#: src/readelf.c:4298
+#: src/readelf.c:4345
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:4300
+#: src/readelf.c:4347
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5041,13 +5045,13 @@ msgstr ""
" [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, зміщення CU DIE: %"
"6<PRId64>\n"
-#: src/readelf.c:4319
+#: src/readelf.c:4366
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "не вдалося отримати дані .debug_ranges: %s"
-#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897
-#: src/readelf.c:5992 src/readelf.c:6164
+#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079
+#: src/readelf.c:6178 src/readelf.c:6350
#, c-format
msgid ""
"\n"
@@ -5056,32 +5060,32 @@ msgstr ""
"\n"
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
-#: src/readelf.c:4338 src/readelf.c:5911
+#: src/readelf.c:4385 src/readelf.c:6097
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <НЕКОРЕКТНІ ДАНІ>\n"
-#: src/readelf.c:4360 src/readelf.c:5933
+#: src/readelf.c:4407 src/readelf.c:6119
#, c-format
msgid " [%6tx] base address %s\n"
msgstr " [%6tx] базова адреса %s\n"
-#: src/readelf.c:4371
+#: src/readelf.c:4418
#, c-format
msgid " [%6tx] %s..%s\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:4373
+#: src/readelf.c:4420
#, c-format
msgid " %s..%s\n"
msgstr " %s..%s\n"
-#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332
+#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518
#, c-format
msgid "cannot get %s content: %s"
msgstr "не вдалося отримати дані %s: %s"
-#: src/readelf.c:4806
+#: src/readelf.c:4853
#, c-format
msgid ""
"\n"
@@ -5090,12 +5094,12 @@ msgstr ""
"\n"
"Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#<PRIx64>:\n"
-#: src/readelf.c:4833 src/readelf.c:5486
+#: src/readelf.c:4881 src/readelf.c:5615
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "некоректні дані у розділі [%zu] «%s»"
-#: src/readelf.c:4855
+#: src/readelf.c:4903
#, c-format
msgid ""
"\n"
@@ -5104,50 +5108,50 @@ msgstr ""
"\n"
" [%6tx] нульовий переривач\n"
-#: src/readelf.c:4924
+#: src/readelf.c:4987
#, c-format
msgid "invalid augmentation length"
msgstr "некоректна довжина збільшення"
-#: src/readelf.c:4936
+#: src/readelf.c:4999
msgid "FDE address encoding: "
msgstr "Кодування адреси FDE: "
-#: src/readelf.c:4942
+#: src/readelf.c:5005
msgid "LSDA pointer encoding: "
msgstr "Кодування вказівника LSDA: "
-#: src/readelf.c:5034
+#: src/readelf.c:5101
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (зміщення: %#<PRIx64>)"
-#: src/readelf.c:5041
+#: src/readelf.c:5108
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (зміщення від кінця: %#<PRIx64>)"
-#: src/readelf.c:5068
+#: src/readelf.c:5135
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sвказівник LSDA: %#<PRIx64>\n"
-#: src/readelf.c:5114
+#: src/readelf.c:5182
#, c-format
msgid "cannot get attribute code: %s"
msgstr "не вдалося отримати код атрибута: %s"
-#: src/readelf.c:5122
+#: src/readelf.c:5190
#, c-format
msgid "cannot get attribute form: %s"
msgstr "не вдалося отримати форму атрибута: %s"
-#: src/readelf.c:5135
+#: src/readelf.c:5203
#, c-format
msgid "cannot get attribute value: %s"
msgstr "не вдалося отримати значення атрибута: %s"
-#: src/readelf.c:5331
+#: src/readelf.c:5428
#, c-format
msgid ""
"\n"
@@ -5158,7 +5162,20 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64>:\n"
" [Зміщення]\n"
-#: src/readelf.c:5356
+#: src/readelf.c:5458
+#, c-format
+msgid ""
+" Type unit at offset %<PRIu64>:\n"
+" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %"
+"<PRIu8>, Offset size: %<PRIu8>\n"
+" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n"
+msgstr ""
+" Модуль типів за зміщенням %<PRIu64>:\n"
+" Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, "
+"Зміщення: %<PRIu8>\n"
+" Підпис типу: %#<PRIx64>, Зміщення типу: %#<PRIx64>\n"
+
+#: src/readelf.c:5466
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5169,37 +5186,37 @@ msgstr ""
" Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, "
"Зміщення: %<PRIu8>\n"
-#: src/readelf.c:5374
+#: src/readelf.c:5489
#, c-format
msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s"
msgstr "не вдалося отримати DIE за зміщенням %<PRIu64> у розділі «%s»: %s"
-#: src/readelf.c:5385
+#: src/readelf.c:5500
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "не вдалося отримати зміщення DIE: %s"
-#: src/readelf.c:5393
+#: src/readelf.c:5508
#, c-format
msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s"
msgstr "не вдалося отримати мітку DIE за зміщенням %<PRIu64> у розділі «%s»: %s"
-#: src/readelf.c:5422
+#: src/readelf.c:5537
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "не вдалося визначити наступний DIE: %s\n"
-#: src/readelf.c:5429
+#: src/readelf.c:5544
#, c-format
msgid "cannot get next DIE: %s"
msgstr "не вдалося визначити наступний DIE: %s"
-#: src/readelf.c:5464
+#: src/readelf.c:5593
#, c-format
msgid "cannot get line data section data: %s"
msgstr "не вдалося отримати дані розділу лінійних даних: %s"
-#: src/readelf.c:5477
+#: src/readelf.c:5606
#, c-format
msgid ""
"\n"
@@ -5208,7 +5225,7 @@ msgstr ""
"\n"
"Таблиця за зміщенням %Zu:\n"
-#: src/readelf.c:5529
+#: src/readelf.c:5661
#, c-format
msgid ""
"\n"
@@ -5216,6 +5233,7 @@ msgid ""
" DWARF version: %<PRIuFAST16>\n"
" Prologue length: %<PRIu64>\n"
" Minimum instruction length: %<PRIuFAST8>\n"
+" Maximum operations per instruction: %<PRIuFAST8>\n"
" Initial value if '%s': %<PRIuFAST8>\n"
" Line base: %<PRIdFAST8>\n"
" Line range: %<PRIuFAST8>\n"
@@ -5228,19 +5246,20 @@ msgstr ""
" Версія DWARF: %<PRIuFAST16>\n"
" Довжина вступу: %<PRIu64>\n"
" Мінімальна довж. інстр.: %<PRIuFAST8>\n"
-" Поч. знач., якщо «%s»: %<PRIuFAST8>\n"
+" Макс. к-ть операцій на інструкцію: %<PRIuFAST8>\n"
+" Поч. значення, якщо «%s»: %<PRIuFAST8>\n"
" Основа рядків: %<PRIdFAST8>\n"
" Діапазон рядків: %<PRIuFAST8>\n"
" Основа кодів операцій: %<PRIuFAST8>\n"
"\n"
"Коди операцій:\n"
-#: src/readelf.c:5548
+#: src/readelf.c:5682
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "некоректні дані зі зміщенням %tu у розділі [%zu] «%s»"
-#: src/readelf.c:5563
+#: src/readelf.c:5697
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5248,7 +5267,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n"
-#: src/readelf.c:5571
+#: src/readelf.c:5705
msgid ""
"\n"
"Directory table:"
@@ -5256,7 +5275,7 @@ msgstr ""
"\n"
"Таблиця каталогу:"
-#: src/readelf.c:5587
+#: src/readelf.c:5721
msgid ""
"\n"
"File name table:\n"
@@ -5266,7 +5285,7 @@ msgstr ""
"Таблиця назв файлів:\n"
" Запис Кат Час Розмір Назва"
-#: src/readelf.c:5616
+#: src/readelf.c:5750
msgid ""
"\n"
"Line number statements:"
@@ -5274,88 +5293,115 @@ msgstr ""
"\n"
"Оператори номерів рядків:"
-#: src/readelf.c:5677
+#: src/readelf.c:5824
+#, 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:5829
#, c-format
msgid " special opcode %u: address+%u = %s, line%+d = %zu\n"
msgstr " спеціальний код операції %u: адреса+%u = %s, рядок%+d = %zu\n"
-#: src/readelf.c:5697
+#: src/readelf.c:5849
#, c-format
msgid " extended opcode %u: "
msgstr " розширений код операції %u: "
-#: src/readelf.c:5702
+#: src/readelf.c:5854
msgid "end of sequence"
msgstr "кінець послідовності"
-#: src/readelf.c:5717
+#: src/readelf.c:5871
#, c-format
msgid "set address to %s\n"
msgstr "встановити адресу у значення %s\n"
-#: src/readelf.c:5738
+#: src/readelf.c:5892
#, 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:5747
+#: src/readelf.c:5905
+#, c-format
+msgid " set discriminator to %u\n"
+msgstr " встановити розрізнення для %u\n"
+
+#: src/readelf.c:5910
msgid "unknown opcode"
msgstr "невідомий код операції"
-#: src/readelf.c:5759
+#: src/readelf.c:5922
msgid " copy"
msgstr " копія"
-#: src/readelf.c:5769
+#: src/readelf.c:5933
+#, c-format
+msgid "advance address by %u to %s, op_index to %u\n"
+msgstr "збільшення адреси на %u до %s, індекс_оп до %u\n"
+
+#: src/readelf.c:5937
#, c-format
msgid "advance address by %u to %s\n"
msgstr "збільшення адреси на %u до %s\n"
-#: src/readelf.c:5780
+#: src/readelf.c:5948
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " просувати рядок на сталу %d до %<PRId64>\n"
-#: src/readelf.c:5788
+#: src/readelf.c:5956
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " встановити файл у %<PRIu64>\n"
-#: src/readelf.c:5798
+#: src/readelf.c:5966
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " встановити значення стовпчика %<PRIu64>\n"
-#: src/readelf.c:5805
+#: src/readelf.c:5973
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " встановити «%s» у %<PRIuFAST8>\n"
-#: src/readelf.c:5811
+#: src/readelf.c:5979
msgid " set basic block flag"
msgstr " встановити прапорець базового блоку"
-#: src/readelf.c:5821
+#: src/readelf.c:5988
+#, c-format
+msgid "advance address by constant %u to %s, op_index to %u\n"
+msgstr "збільшити адресу на сталу величину %u до %s, індекс_оп до %u\n"
+
+#: src/readelf.c:5992
#, c-format
msgid "advance address by constant %u to %s\n"
msgstr "збільшити адресу на сталу величину %u до %s\n"
-#: src/readelf.c:5837
+#: src/readelf.c:6010
#, c-format
msgid "advance address by fixed value %u to %s\n"
msgstr "збільшити адресу на фіксовану величину %u до %s\n"
-#: src/readelf.c:5846
+#: src/readelf.c:6019
msgid " set prologue end flag"
msgstr " встановити прапорець кінця вступу"
-#: src/readelf.c:5851
+#: src/readelf.c:6024
msgid " set epilogue begin flag"
msgstr " встановити прапорець початку епілогу"
-#: src/readelf.c:5860
+#: src/readelf.c:6033
+#, c-format
+msgid " set isa to %u\n"
+msgstr " встановити isa у %u\n"
+
+#: src/readelf.c:6042
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5363,38 +5409,38 @@ msgstr[0] " невідомий код операції з %<PRIu8> параме�
msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
-#: src/readelf.c:5892
+#: src/readelf.c:6074
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "не вдалося отримати вміст .debug_loc: %s"
-#: src/readelf.c:5947
+#: src/readelf.c:6133
#, c-format
msgid " [%6tx] %s..%s"
msgstr " [%6tx] %s..%s"
-#: src/readelf.c:5949
+#: src/readelf.c:6135
#, c-format
msgid " %s..%s"
msgstr " %s..%s"
-#: src/readelf.c:6002
+#: src/readelf.c:6188
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s"
-#: src/readelf.c:6081
+#: src/readelf.c:6267
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** незавершений рядок наприкінці розділу"
-#: src/readelf.c:6149
+#: src/readelf.c:6335
#, 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:6188
+#: src/readelf.c:6374
#, c-format
msgid ""
"\n"
@@ -5405,12 +5451,12 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
" %*s Рядок\n"
-#: src/readelf.c:6202
+#: src/readelf.c:6388
#, c-format
msgid " *** error while reading strings: %s\n"
msgstr " *** помилка під час читання рядків: %s\n"
-#: src/readelf.c:6222
+#: src/readelf.c:6408
#, c-format
msgid ""
"\n"
@@ -5419,7 +5465,7 @@ msgstr ""
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:6324
+#: src/readelf.c:6510
#, c-format
msgid ""
"\n"
@@ -5428,22 +5474,22 @@ msgstr ""
"\n"
"Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:6347
+#: src/readelf.c:6533
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Кодування LPStart: %#x "
-#: src/readelf.c:6359
+#: src/readelf.c:6545
#, c-format
msgid " TType encoding: %#x "
msgstr " Кодування TType: %#x "
-#: src/readelf.c:6373
+#: src/readelf.c:6559
#, c-format
msgid " Call site encoding: %#x "
msgstr " Кодування місця виклику:%#x "
-#: src/readelf.c:6386
+#: src/readelf.c:6572
msgid ""
"\n"
" Call site table:"
@@ -5451,7 +5497,7 @@ msgstr ""
"\n"
" Таблиця місця виклику:"
-#: src/readelf.c:6400
+#: src/readelf.c:6586
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5464,22 +5510,22 @@ msgstr ""
" Місце застосування: %#<PRIx64>\n"
" Дія: %u\n"
-#: src/readelf.c:6460
+#: src/readelf.c:6646
#, c-format
msgid "invalid TType encoding"
msgstr "некоректне кодування TType"
-#: src/readelf.c:6484
+#: src/readelf.c:6671
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "не вдалося отримати дескриптор контексту зневаджування: %s"
-#: src/readelf.c:6620 src/readelf.c:7221
+#: src/readelf.c:6810 src/readelf.c:7411
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалося перетворити дані запису ядра: %s"
-#: src/readelf.c:6961
+#: src/readelf.c:7151
#, c-format
msgid ""
"\n"
@@ -5488,21 +5534,21 @@ msgstr ""
"\n"
"%*s... <повторюється %u разів> ..."
-#: src/readelf.c:7320
+#: src/readelf.c:7510
msgid " Owner Data size Type\n"
msgstr " Власник Розм. даних Тип\n"
-#: src/readelf.c:7338
+#: src/readelf.c:7528
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:7372
+#: src/readelf.c:7562
#, c-format
msgid "cannot get content of note section: %s"
msgstr "не вдалося отримати вміст розділу записів: %s"
-#: src/readelf.c:7399
+#: src/readelf.c:7589
#, c-format
msgid ""
"\n"
@@ -5512,7 +5558,7 @@ msgstr ""
"Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням %"
"#0<PRIx64>:\n"
-#: src/readelf.c:7422
+#: src/readelf.c:7612
#, c-format
msgid ""
"\n"
@@ -5521,7 +5567,7 @@ msgstr ""
"\n"
"Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:7468
+#: src/readelf.c:7658
#, c-format
msgid ""
"\n"
@@ -5530,12 +5576,12 @@ msgstr ""
"\n"
"У розділі [%Zu] «%s» не міститься даних для створення дампу.\n"
-#: src/readelf.c:7474 src/readelf.c:7497
+#: src/readelf.c:7664 src/readelf.c:7687
#, c-format
msgid "cannot get data for section [%Zu] '%s': %s"
msgstr "не вдалося отримати дані для розділу [%Zu] «%s»: %s"
-#: src/readelf.c:7478
+#: src/readelf.c:7668
#, c-format
msgid ""
"\n"
@@ -5544,7 +5590,7 @@ msgstr ""
"\n"
"Шіст. дамп розділу [%Zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:7491
+#: src/readelf.c:7681
#, c-format
msgid ""
"\n"
@@ -5553,7 +5599,7 @@ msgstr ""
"\n"
"У розділі [%Zu] «%s» не міститься рядків для створення дампу.\n"
-#: src/readelf.c:7501
+#: src/readelf.c:7691
#, c-format
msgid ""
"\n"
@@ -5562,7 +5608,7 @@ msgstr ""
"\n"
"Розділ рядків [%Zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:7549
+#: src/readelf.c:7739
#, c-format
msgid ""
"\n"
@@ -5571,7 +5617,7 @@ msgstr ""
"\n"
"розділу [%lu] не існує"
-#: src/readelf.c:7576
+#: src/readelf.c:7766
#, c-format
msgid ""
"\n"
@@ -5580,12 +5626,12 @@ msgstr ""
"\n"
"розділу «%s» не існує"
-#: src/readelf.c:7637
+#: src/readelf.c:7827
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалося отримати покажчик символів архіву «%s»: %s"
-#: src/readelf.c:7640
+#: src/readelf.c:7830
#, c-format
msgid ""
"\n"
@@ -5594,7 +5640,7 @@ msgstr ""
"\n"
"У архіві «%s» немає покажчика символів\n"
-#: src/readelf.c:7644
+#: src/readelf.c:7834
#, c-format
msgid ""
"\n"
@@ -5603,12 +5649,12 @@ msgstr ""
"\n"
"Покажчик архіву «%s» містить %Zu записів:\n"
-#: src/readelf.c:7662
+#: src/readelf.c:7852
#, c-format
msgid "cannot extract member at offset %Zu in '%s': %s"
msgstr "не вдалося видобути елемент за зміщенням %Zu у «%s»: %s"
-#: src/readelf.c:7667
+#: src/readelf.c:7857
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Елемент архіву «%s» містить:\n"
@@ -5978,7 +6024,7 @@ msgstr "не вдалося створити заголовок ELF: %s"
msgid "cannot copy ELF header: %s"
msgstr "не вдалося скопіювати заголовок ELF: %s"
-#: src/unstrip.c:264 src/unstrip.c:1817
+#: src/unstrip.c:264 src/unstrip.c:1830
#, c-format
msgid "cannot create program headers: %s"
msgstr "не вдалося створити заголовки програми: %s"
@@ -5993,12 +6039,12 @@ msgstr "не вдалося скопіювати заголовок програ
msgid "cannot copy section header: %s"
msgstr "не вдалося скопіювати заголовок розділу: %s"
-#: src/unstrip.c:283 src/unstrip.c:1505
+#: src/unstrip.c:283 src/unstrip.c:1511
#, c-format
msgid "cannot get section data: %s"
msgstr "не вдалося отримати дані розділу: %s"
-#: src/unstrip.c:285 src/unstrip.c:1507
+#: src/unstrip.c:285 src/unstrip.c:1513
#, c-format
msgid "cannot copy section data: %s"
msgstr "не вдалося скопіювати дані розділу: %s"
@@ -6008,122 +6054,133 @@ msgstr "не вдалося скопіювати дані розділу: %s"
msgid "cannot create directory '%s'"
msgstr "не вдалося створити каталог «%s»"
-#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540
+#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "не вдалося отримати запис таблиці символів: %s"
-#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613
-#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715
+#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616
+#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720
#, c-format
msgid "cannot update symbol table: %s"
msgstr "не вдалося оновити таблицю символів: %s"
-#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209
-#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791
+#: src/unstrip.c:375
#, c-format
msgid "cannot update section header: %s"
msgstr "не вдалося оновити заголовок розділу: %s"
-#: src/unstrip.c:408 src/unstrip.c:419
+#: src/unstrip.c:414 src/unstrip.c:425
#, c-format
msgid "cannot update relocation: %s"
msgstr "не вдалося оновити переміщення: %s"
-#: src/unstrip.c:507
+#: src/unstrip.c:512
#, c-format
msgid "cannot get symbol version: %s"
msgstr "не вдалося отримати версію символу: %s"
-#: src/unstrip.c:519
+#: src/unstrip.c:524
#, c-format
msgid "unexpected section type in [%Zu] with sh_link to symtab"
msgstr "неочікуваний тип розділу у [%Zu] з посиланням sh_link на symtab"
-#: src/unstrip.c:769
+#: src/unstrip.c:772
#, c-format
msgid "invalid string offset in symbol [%Zu]"
msgstr "некоректне зміщення рядка у символі [%Zu]"
-#: src/unstrip.c:911 src/unstrip.c:1248
+#: src/unstrip.c:914 src/unstrip.c:1254
#, c-format
msgid "cannot read section [%Zu] name: %s"
msgstr "не вдалося прочитати назву розділу [%Zu]: %s"
-#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004
+#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s"
-#: src/unstrip.c:992
+#: src/unstrip.c:995
#, c-format
msgid "invalid contents in '%s' section"
msgstr "некоректний вміст розділу «%s»"
-#: src/unstrip.c:1047 src/unstrip.c:1370
+#: src/unstrip.c:1050 src/unstrip.c:1376
#, c-format
msgid "cannot find matching section for [%Zu] '%s'"
msgstr "не вдалося знайти відповідний розділ для [%Zu] «%s»"
-#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451
+#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457
#, c-format
msgid "cannot add section name to string table: %s"
msgstr "не вдалося додати назву розділу до таблиці рядків: %s"
-#: src/unstrip.c:1195
+#: src/unstrip.c:1198
#, c-format
msgid "cannot update section header string table data: %s"
msgstr "не вдалося оновити дані заголовка розділу у таблиці рядків: %s"
-#: src/unstrip.c:1223 src/unstrip.c:1227
+#: src/unstrip.c:1225 src/unstrip.c:1229
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
"не вдалося визначити індекс розділу заголовка розділу у таблиці рядків: %s"
-#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466
+#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472
#, c-format
msgid "cannot get section count: %s"
msgstr "не вдалося отримати кількість розділів: %s"
-#: src/unstrip.c:1293 src/unstrip.c:1385
+#: src/unstrip.c:1240
+#, c-format
+msgid "more sections in stripped file than debug file -- arguments reversed?"
+msgstr ""
+"у очищеному файлі більше розділів ніж у файлі з даними для зневаджування — "
+"помилковий порядок параметрів?"
+
+#: src/unstrip.c:1299 src/unstrip.c:1391
#, c-format
msgid "cannot read section header string table: %s"
msgstr "не вдалося прочитати таблицю рядків заголовка розділу: %s"
-#: src/unstrip.c:1445
+#: src/unstrip.c:1451
#, c-format
msgid "cannot add new section: %s"
msgstr "не вдалося додати новий розділ: %s"
-#: src/unstrip.c:1548
+#: src/unstrip.c:1553
#, c-format
msgid "symbol [%Zu] has invalid section index"
msgstr "символ [%Zu] має некоректний індекс розділу"
-#: src/unstrip.c:1800
+#: src/unstrip.c:1791
+#, c-format
+msgid "cannot read section data: %s"
+msgstr "не вдалося прочитати дані розділу: %s"
+
+#: src/unstrip.c:1812
#, c-format
msgid "cannot get ELF header: %s"
msgstr "не вдалося отримати заголовок ELF: %s"
-#: src/unstrip.c:1827
+#: src/unstrip.c:1840
#, c-format
msgid "cannot update program header: %s"
msgstr "не вдалося оновити заголовок програми: %s"
-#: src/unstrip.c:1832 src/unstrip.c:1911
+#: src/unstrip.c:1845 src/unstrip.c:1924
#, c-format
msgid "cannot write output file: %s"
msgstr "не вдалося записати файл виведених даних: %s"
-#: src/unstrip.c:1880
+#: src/unstrip.c:1893
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
"Дані DWARF не скориговано відповідно до відхилення перед компонуванням; "
"спробуйте виправити це командою prelink -u"
-#: src/unstrip.c:1883
+#: src/unstrip.c:1896
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -6131,57 +6188,57 @@ msgstr ""
"Дані DWARF у «%s» не скориговано відповідно до відхилення перед "
"компонуванням; спробуйте виправити це командою prelink -u"
-#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034
+#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "не вдалося створити дескриптор ELF: %s"
-#: src/unstrip.c:1960
+#: src/unstrip.c:1973
#, c-format
msgid "'%s' and '%s' do not seem to match"
msgstr "«%s» і «%s» не відповідають одне одному"
-#: src/unstrip.c:1991
+#: src/unstrip.c:2004
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr "не вдалося знайти очищений файл для модуля «%s»: %s"
-#: src/unstrip.c:1995
+#: src/unstrip.c:2008
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr "не вдалося відкрити очищений файл «%s» для модуля «%s»: %s"
-#: src/unstrip.c:2010
+#: src/unstrip.c:2023
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr "не вдалося знайти файл діагностичних даних для модуля «%s»: %s"
-#: src/unstrip.c:2014
+#: src/unstrip.c:2027
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr "не вдалося відкрити файл діагностичних даних «%s» для модуля «%s»: %s"
-#: src/unstrip.c:2027
+#: src/unstrip.c:2040
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "у модулі «%s» файл «%s» не очищено strip"
-#: src/unstrip.c:2058
+#: src/unstrip.c:2071
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr "не вдалося кешувати адреси розділів для модуля «%s»: %s"
-#: src/unstrip.c:2191
+#: src/unstrip.c:2204
#, c-format
msgid "no matching modules found"
msgstr "відповідних модулів не виявлено"
-#: src/unstrip.c:2200
+#: src/unstrip.c:2213
#, c-format
msgid "matched more than one module"
msgstr "встановлено відповідність декількох модулів"
-#: src/unstrip.c:2247
+#: src/unstrip.c:2260
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -6189,7 +6246,7 @@ msgstr ""
"ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n"
"[МОДУЛЬ...]"
-#: src/unstrip.c:2248
+#: src/unstrip.c:2261
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 ae673bd2..5bb85453 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,70 @@
+2010-06-22 Roland McGrath <[email protected]>
+
+ * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
+
+2010-06-21 Roland McGrath <[email protected]>
+
+ * readelf.c (dwarf_tag_string): Handle new v4 tags.
+ (dwarf_attr_string): Add new attributes.
+ (dwarf_tag_string): Handle DW_TAG_GNU_*.
+
+ * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
+ (print_cfa_program): Likewise.
+
+2010-06-20 Roland McGrath <[email protected]>
+
+ * readelf.c (print_debug_units): New function, broken out of ...
+ (print_debug_info_section): ... here. Call it.
+ (print_debug_types_section): New function.
+ (enum section_e): Add section_types alias for section_info.
+ (print_debug): Add types to the sections table.
+
+ * readelf.c (print_debug_frame_section): Handle version 4 format.
+
+ * readelf.c (print_debug_line_section): Handle version 4 format.
+
+2010-06-14 Roland McGrath <[email protected]>
+
+ * unstrip.c (copy_elided_sections): Make sure all sections' data have
+ been read in before we write anything out.
+
+2010-06-04 Roland McGrath <[email protected]>
+
+ * unstrip.c (update_shdr): New function.
+ (update_sh_size): Call it instead of gelf_update_shdr.
+ (adjust_relocs, add_new_section_symbols): Likewise.
+ (new_shstrtab, copy_elided_sections): Likewise.
+
+ * unstrip.c (copy_elided_sections): Bail if stripped file has more
+ sections than unstripped file, rather than getting confused later.
+
+2010-06-01 Roland McGrath <[email protected]>
+
+ * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
+ (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
+ DW_FORM_sec_offset, DW_FORM_ref_sig8.
+
+ * readelf.c (print_debug): Don't bail if libdw setup fails.
+ Suppress complaint if we only want .eh_frame anyway.
+
+2010-05-28 Ulrich Drepper <[email protected]>
+
+ * readelf.c (attr_callback): Also print form information.
+
+2010-05-19 Roland McGrath <[email protected]>
+
+ * addr2line.c (find_symbol): Short-circuit on empty name.
+ (handle_address): Handle SYMBOL with no +OFFSET.
+
+2010-05-08 Roland McGrath <[email protected]>
+
+ * readelf.c (print_ops): Take new arg OFFSET_SIZE.
+ Use that for DW_OP_call_ref, not ADDRSIZE.
+ (print_cfa_program): Update caller.
+ (struct attrcb_args): Add offset_size field.
+ (attr_callback): Use it for print_ops call.
+ (print_debug_info_section): Initialize it.
+
2010-04-14 Roland McGrath <[email protected]>
* readelf.c (handle_core_item): Fix bitmask printing.
diff --git a/src/addr2line.c b/src/addr2line.c
index 99264b01..48f017bb 100644
--- a/src/addr2line.c
+++ b/src/addr2line.c
@@ -1,5 +1,5 @@
/* Locate source files and line information for given addresses
- Copyright (C) 2005, 2006, 2007, 2008, 2009 Red Hat, Inc.
+ Copyright (C) 2005-2010 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <[email protected]>, 2005.
@@ -374,7 +374,7 @@ find_symbol (Dwfl_Module *mod,
for (int i = 1; i < n; ++i)
{
const char *symbol_name = dwfl_module_getsym (mod, i, symbol, NULL);
- if (symbol_name == NULL)
+ if (symbol_name == NULL || symbol_name[0] == '\0')
continue;
switch (GELF_ST_TYPE (symbol->st_info))
{
@@ -445,15 +445,23 @@ handle_address (const char *string, Dwfl *dwfl)
if (endp == string)
{
bool parsed = false;
- int n;
+ int i, j;
char *name = NULL;
- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &n) == 2
- && string[n] == '\0')
+ if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
+ && string[i] == '\0')
parsed = adjust_to_section (name, &addr, dwfl);
- else if (sscanf (string, "%m[^-+]%" PRIiMAX "%n", &name, &addr, &n) == 2
- && string[n] == '\0')
+ switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
{
- /* It was symbol+offset. */
+ default:
+ break;
+ case 1:
+ addr = 0;
+ j = i;
+ case 2:
+ if (string[j] != '\0')
+ break;
+
+ /* It was symbol[+offset]. */
GElf_Sym sym;
void *arg[2] = { name, &sym };
(void) dwfl_getmodules (dwfl, &find_symbol, arg, 0);
@@ -469,6 +477,7 @@ handle_address (const char *string, Dwfl *dwfl)
addr += sym.st_value;
parsed = true;
}
+ break;
}
free (name);
diff --git a/src/readelf.c b/src/readelf.c
index 299c13e5..0412131a 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -181,7 +181,8 @@ static enum section_e
section_abbrev = 1, /* .debug_abbrev */
section_aranges = 2, /* .debug_aranges */
section_frame = 4, /* .debug_frame or .eh_frame & al. */
- section_info = 8, /* .debug_info */
+ section_info = 8, /* .debug_info, .debug_types */
+ section_types = section_info,
section_line = 16, /* .debug_line */
section_loc = 32, /* .debug_loc */
section_pubnames = 64, /* .debug_pubnames */
@@ -2168,7 +2169,7 @@ get_ver_flags (unsigned int flags)
if (flags & VER_FLG_WEAK)
{
if (endp != buf)
- endp = stpcpy (endp, "| ");
+ endp = stpcpy (endp, "| ");
endp = stpcpy (endp, "WEAK ");
}
@@ -2658,7 +2659,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, size_t shstrndx,
printf (gettext ("\
Average number of tests: successful lookup: %f\n\
- unsuccessful lookup: %f\n"),
+ unsuccessful lookup: %f\n"),
(double) success / (double) nzero_counts,
(double) nzero_counts / (double) nbucket);
}
@@ -3182,7 +3183,8 @@ print_block (size_t n, const void *block)
static void
print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
- unsigned int addrsize, Dwarf_Word len, const unsigned char *data)
+ unsigned int addrsize, unsigned int offset_size,
+ Dwarf_Word len, const unsigned char *data)
{
static const char *const known[] =
{
@@ -3357,7 +3359,6 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
switch (op)
{
- case DW_OP_call_ref:
case DW_OP_addr:;
/* Address operand. */
Dwarf_Word addr;
@@ -3372,18 +3373,31 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
data += addrsize;
len -= addrsize;
- if (op == DW_OP_addr)
+ char *a = format_dwarf_addr (dwflmod, 0, addr);
+ printf ("%*s[%4" PRIuMAX "] %s %s\n",
+ indent, "", (uintmax_t) offset, known[op], a);
+ free (a);
+
+ offset += 1 + addrsize;
+ break;
+
+ case DW_OP_call_ref:
+ /* Offset operand. */
+ NEED (offset_size);
+ if (offset_size == 4)
+ addr = read_4ubyte_unaligned (dbg, data);
+ else
{
- char *a = format_dwarf_addr (dwflmod, 0, addr);
- printf ("%*s[%4" PRIuMAX "] %s %s\n",
- indent, "", (uintmax_t) offset, known[op], a);
- free (a);
+ assert (offset_size == 8);
+ addr = read_8ubyte_unaligned (dbg, data);
}
- else
- printf ("%*s[%4" PRIuMAX "] %s %#" PRIxMAX "\n",
- indent, "", (uintmax_t) offset,
- known[op], (uintmax_t) addr);
- offset += 1 + addrsize;
+ data += offset_size;
+ len -= offset_size;
+
+ printf ("%*s[%4" PRIuMAX "] %s %#" PRIxMAX "\n",
+ indent, "", (uintmax_t) offset,
+ known[op], (uintmax_t) addr);
+ offset += 1 + offset_size;
break;
case DW_OP_deref_size:
@@ -3482,9 +3496,9 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
case DW_OP_plus_uconst:
case DW_OP_constu:;
const unsigned char *start = data;
- unsigned int uleb;
+ uint64_t uleb;
get_uleb128 (uleb, data); /* XXX check overrun */
- printf ("%*s[%4" PRIuMAX "] %s %u\n",
+ printf ("%*s[%4" PRIuMAX "] %s %" PRIu64 "\n",
indent, "", (uintmax_t) offset, known[op], uleb);
len -= data - start;
offset += 1 + (data - start);
@@ -3492,10 +3506,10 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
case DW_OP_bit_piece:
start = data;
- unsigned int uleb2;
+ uint64_t uleb2;
get_uleb128 (uleb, data); /* XXX check overrun */
get_uleb128 (uleb2, data); /* XXX check overrun */
- printf ("%*s[%4" PRIuMAX "] %s %u, %u\n",
+ printf ("%*s[%4" PRIuMAX "] %s %" PRIu64 ", %" PRIu64 "\n",
indent, "", (uintmax_t) offset, known[op], uleb, uleb2);
len -= data - start;
offset += 1 + (data - start);
@@ -3505,9 +3519,9 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
case DW_OP_breg0 ... DW_OP_breg31:
case DW_OP_consts:
start = data;
- unsigned int sleb;
+ int64_t sleb;
get_sleb128 (sleb, data); /* XXX check overrun */
- printf ("%*s[%4" PRIuMAX "] %s %d\n",
+ printf ("%*s[%4" PRIuMAX "] %s %" PRId64 "\n",
indent, "", (uintmax_t) offset, known[op], sleb);
len -= data - start;
offset += 1 + (data - start);
@@ -3517,7 +3531,7 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
start = data;
get_uleb128 (uleb, data); /* XXX check overrun */
get_sleb128 (sleb, data); /* XXX check overrun */
- printf ("%*s[%4" PRIuMAX "] %s %u %d\n",
+ printf ("%*s[%4" PRIuMAX "] %s %" PRIu64 " %" PRId64 "\n",
indent, "", (uintmax_t) offset, known[op], uleb, sleb);
len -= data - start;
offset += 1 + (data - start);
@@ -3928,7 +3942,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp,
// XXX overflow check
get_uleb128 (op1, readp); /* Length of DW_FORM_block. */
printf (" def_cfa_expression %" PRIu64 "\n", op1);
- print_ops (dwflmod, dbg, 10, 10, ptr_size, op1, readp);
+ print_ops (dwflmod, dbg, 10, 10, ptr_size, 0, op1, readp);
readp += op1;
break;
case DW_CFA_expression:
@@ -3937,7 +3951,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp,
get_uleb128 (op2, readp); /* Length of DW_FORM_block. */
printf (" expression r%" PRIu64 " (%s) \n",
op1, regname (op1));
- print_ops (dwflmod, dbg, 10, 10, ptr_size, op2, readp);
+ print_ops (dwflmod, dbg, 10, 10, ptr_size, 0, op2, readp);
readp += op2;
break;
case DW_CFA_offset_extended_sf:
@@ -3980,7 +3994,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp,
get_uleb128 (op2, readp); /* Length of DW_FORM_block. */
printf (" val_expression r%" PRIu64 " (%s)\n",
op1, regname (op1));
- print_ops (dwflmod, dbg, 10, 10, ptr_size, op2, readp);
+ print_ops (dwflmod, dbg, 10, 10, ptr_size, 0, op2, readp);
readp += op2;
break;
case DW_CFA_MIPS_advance_loc8:
@@ -4005,10 +4019,10 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp,
opcode & 0x3f, pc += (opcode & 0x3f) * code_align);
else if (opcode < DW_CFA_restore)
{
- unsigned int offset;
+ uint64_t offset;
// XXX overflow check
get_uleb128 (offset, readp);
- printf (" offset r%u (%s) at cfa%+d\n",
+ printf (" offset r%u (%s) at cfa%+" PRId64 "\n",
opcode & 0x3f, regname (opcode & 0x3f), offset * data_align);
}
else
@@ -4225,8 +4239,9 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
const char *augmentation;
unsigned int code_alignment_factor;
unsigned int data_alignment_factor;
- unsigned int fde_encoding;
- unsigned int lsda_encoding;
+ uint8_t address_size;
+ uint8_t fde_encoding;
+ uint8_t lsda_encoding;
struct cieinfo *next;
} *cies = NULL;
@@ -4296,6 +4311,16 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
if (unlikely (readp == NULL))
goto invalid_data;
++readp;
+
+ uint_fast8_t segment_size = 0;
+ if (version >= 4)
+ {
+ if (cieend - readp < 5)
+ goto invalid_data;
+ ptr_size = *readp++;
+ segment_size = *readp++;
+ }
+
// XXX Check overflow
get_uleb128 (code_alignment_factor, readp);
// XXX Check overflow
@@ -4315,12 +4340,17 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
printf ("\n [%6tx] CIE length=%" PRIu64 "\n"
" CIE_id: %" PRIu64 "\n"
" version: %u\n"
- " augmentation: \"%s\"\n"
- " code_alignment_factor: %u\n"
+ " augmentation: \"%s\"\n",
+ offset, (uint64_t) unit_length, (uint64_t) cie_id,
+ version, augmentation);
+ if (version >= 4)
+ printf (" address_size: %u\n"
+ " segment_size: %u\n",
+ ptr_size, segment_size);
+ printf (" code_alignment_factor: %u\n"
" data_alignment_factor: %d\n"
" return_address_register: %u\n",
- offset, (uint64_t) unit_length, (uint64_t) cie_id,
- version, augmentation, code_alignment_factor,
+ code_alignment_factor,
data_alignment_factor, return_address_register);
if (augmentation[0] == 'z')
@@ -4386,15 +4416,19 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
}
}
- struct cieinfo *newp = alloca (sizeof (*newp));
- newp->cie_offset = offset;
- newp->augmentation = augmentation;
- newp->fde_encoding = fde_encoding;
- newp->lsda_encoding = lsda_encoding;
- newp->code_alignment_factor = code_alignment_factor;
- newp->data_alignment_factor = data_alignment_factor;
- newp->next = cies;
- cies = newp;
+ if (likely (ptr_size == 4 || ptr_size == 8))
+ {
+ struct cieinfo *newp = alloca (sizeof (*newp));
+ newp->cie_offset = offset;
+ newp->augmentation = augmentation;
+ newp->fde_encoding = fde_encoding;
+ newp->lsda_encoding = lsda_encoding;
+ newp->address_size = ptr_size;
+ newp->code_alignment_factor = code_alignment_factor;
+ newp->data_alignment_factor = data_alignment_factor;
+ newp->next = cies;
+ cies = newp;
+ }
}
else
{
@@ -4415,7 +4449,7 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
/* Initialize from CIE data. */
fde_encoding = cie->fde_encoding;
lsda_encoding = cie->lsda_encoding;
- ptr_size = encoded_ptr_size (fde_encoding, ptr_size);
+ ptr_size = encoded_ptr_size (fde_encoding, cie->address_size);
code_alignment_factor = cie->code_alignment_factor;
data_alignment_factor = cie->data_alignment_factor;
@@ -4506,6 +4540,7 @@ struct attrcb_args
Dwarf *dbg;
int level;
unsigned int addrsize;
+ unsigned int offset_size;
Dwarf_Off cu_offset;
};
@@ -4545,8 +4580,9 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
return DWARF_CB_ABORT;
}
char *a = format_dwarf_addr (cbargs->dwflmod, cbargs->addrsize, addr);
- printf (" %*s%-20s %s\n",
- (int) (level * 2), "", dwarf_attr_string (attr), a);
+ printf (" %*s%-20s (%s) %s\n",
+ (int) (level * 2), "", dwarf_attr_string (attr),
+ dwarf_form_string (form), a);
free (a);
}
break;
@@ -4557,8 +4593,9 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
const char *str = dwarf_formstring (attrp);
if (unlikely (str == NULL))
goto attrval_out;
- printf (" %*s%-20s \"%s\"\n",
- (int) (level * 2), "", dwarf_attr_string (attr), str);
+ printf (" %*s%-20s (%s) \"%s\"\n",
+ (int) (level * 2), "", dwarf_attr_string (attr),
+ dwarf_form_string (form), str);
break;
case DW_FORM_ref_addr:
@@ -4571,11 +4608,22 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
if (unlikely (dwarf_formref_die (attrp, &ref) == NULL))
goto attrval_out;
- printf (" %*s%-20s [%6" PRIxMAX "]\n",
+ printf (" %*s%-20s (%s) [%6" PRIxMAX "]\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) dwarf_dieoffset (&ref));
+ dwarf_form_string (form), (uintmax_t) dwarf_dieoffset (&ref));
break;
+ case DW_FORM_ref_sig8:
+ printf (" %*s%-20s (%s) {%6" PRIx64 "}\n",
+ (int) (level * 2), "", dwarf_attr_string (attr),
+ dwarf_form_string (form),
+ read_8ubyte_unaligned (attrp->cu->dbg, attrp->valp));
+ break;
+
+ case DW_FORM_sec_offset:
+ attrp->form = cbargs->offset_size == 8 ? DW_FORM_data8 : DW_FORM_data4;
+ /* Fall through. */
+
case DW_FORM_udata:
case DW_FORM_sdata:
case DW_FORM_data8:
@@ -4591,11 +4639,12 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
{
/* This case can take either a constant or a loclistptr. */
case DW_AT_data_member_location:
- if (form != DW_FORM_data4 && form != DW_FORM_data8)
+ if (form != DW_FORM_data4 && form != DW_FORM_data8
+ && form != DW_FORM_sec_offset) /* XXX not data[48] if CU v4! */
{
- printf (" %*s%-20s %" PRIxMAX "\n",
+ printf (" %*s%-20s (%s) %" PRIxMAX "\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) num);
+ dwarf_form_string (form), (uintmax_t) num);
return DWARF_CB_OK;
}
/* else fallthrough */
@@ -4609,15 +4658,15 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
case DW_AT_frame_base:
case DW_AT_return_addr:
case DW_AT_static_link:
- printf (" %*s%-20s location list [%6" PRIxMAX "]\n",
+ printf (" %*s%-20s (%s) location list [%6" PRIxMAX "]\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) num);
+ dwarf_form_string (form), (uintmax_t) num);
return DWARF_CB_OK;
case DW_AT_ranges:
- printf (" %*s%-20s range list [%6" PRIxMAX "]\n",
+ printf (" %*s%-20s (%s) range list [%6" PRIxMAX "]\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) num);
+ dwarf_form_string (form), (uintmax_t) num);
return DWARF_CB_OK;
case DW_AT_language:
@@ -4656,13 +4705,13 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
}
if (valuestr == NULL)
- printf (" %*s%-20s %" PRIuMAX "\n",
+ printf (" %*s%-20s (%s) %" PRIuMAX "\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- (uintmax_t) num);
+ dwarf_form_string (form), (uintmax_t) num);
else
- printf (" %*s%-20s %s (%" PRIuMAX ")\n",
+ printf (" %*s%-20s (%s) %s (%" PRIuMAX ")\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- valuestr, (uintmax_t) num);
+ dwarf_form_string (form), valuestr, (uintmax_t) num);
break;
case DW_FORM_flag:;
@@ -4670,11 +4719,18 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
if (unlikely (dwarf_formflag (attrp, &flag) != 0))
goto attrval_out;
- printf (" %*s%-20s %s\n",
+ printf (" %*s%-20s (%s) %s\n",
(int) (level * 2), "", dwarf_attr_string (attr),
- nl_langinfo (flag ? YESSTR : NOSTR));
+ dwarf_form_string (form), nl_langinfo (flag ? YESSTR : NOSTR));
break;
+ case DW_FORM_flag_present:
+ printf (" %*s%-20s (%s) %s\n",
+ (int) (level * 2), "", dwarf_attr_string (attr),
+ dwarf_form_string (form), nl_langinfo (YESSTR));
+ break;
+
+ case DW_FORM_exprloc:
case DW_FORM_block4:
case DW_FORM_block2:
case DW_FORM_block1:
@@ -4683,11 +4739,20 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
if (unlikely (dwarf_formblock (attrp, &block) != 0))
goto attrval_out;
- printf (" %*s%-20s ",
- (int) (level * 2), "", dwarf_attr_string (attr));
+ printf (" %*s%-20s (%s) ",
+ (int) (level * 2), "", dwarf_attr_string (attr),
+ dwarf_form_string (form));
switch (attr)
{
+ default:
+ if (form != DW_FORM_exprloc)
+ {
+ print_block (block.length, block.data);
+ break;
+ }
+ /* Fall through. */
+
case DW_AT_location:
case DW_AT_data_location:
case DW_AT_data_member_location:
@@ -4709,17 +4774,14 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
case DW_AT_upper_bound:
print_ops (cbargs->dwflmod, cbargs->dbg,
12 + level * 2, 12 + level * 2,
- cbargs->addrsize, block.length, block.data);
- break;
-
- default:
- print_block (block.length, block.data);
+ cbargs->addrsize, cbargs->offset_size,
+ block.length, block.data);
break;
}
break;
default:
- printf (" %*s%-20s [form: %d] ???\n",
+ printf (" %*s%-20s (form: %#x) ???\n",
(int) (level * 2), "", dwarf_attr_string (attr),
(int) form);
break;
@@ -4728,17 +4790,19 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
return DWARF_CB_OK;
}
-
static void
-print_debug_info_section (Dwfl_Module *dwflmod,
- Ebl *ebl __attribute__ ((unused)),
- GElf_Ehdr *ehdr __attribute__ ((unused)),
- Elf_Scn *scn,
- GElf_Shdr *shdr, Dwarf *dbg)
+print_debug_units (Dwfl_Module *dwflmod,
+ Ebl *ebl __attribute__ ((unused)),
+ GElf_Ehdr *ehdr __attribute__ ((unused)),
+ Elf_Scn *scn,
+ GElf_Shdr *shdr, Dwarf *dbg,
+ bool debug_types)
{
+ const char *secname = debug_types ? ".debug_types" : ".debug_info";
+
printf (gettext ("\
\nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n [Offset]\n"),
- elf_ndxscn (scn), ".debug_info", (uint64_t) shdr->sh_offset);
+ elf_ndxscn (scn), secname, (uint64_t) shdr->sh_offset);
/* If the section is empty we don't have to do anything. */
if (shdr->sh_size == 0)
@@ -4751,37 +4815,55 @@ print_debug_info_section (Dwfl_Module *dwflmod,
/* New compilation unit. */
size_t cuhl;
- //Dwarf_Half version;
+ Dwarf_Half version;
Dwarf_Off abbroffset;
uint8_t addrsize;
uint8_t offsize;
Dwarf_Off nextcu;
+ uint64_t typesig;
+ Dwarf_Off typeoff;
next_cu:
- if (dwarf_nextcu (dbg, offset, &nextcu, &cuhl, &abbroffset, &addrsize,
- &offsize) != 0)
+ if (dwarf_next_unit (dbg, offset, &nextcu, &cuhl, &version,
+ &abbroffset, &addrsize, &offsize,
+ debug_types ? &typesig : NULL,
+ debug_types ? &typeoff : NULL) != 0)
goto do_return;
- printf (gettext (" Compilation unit at offset %" PRIu64 ":\n"
- " Version: %" PRIu16 ", Abbreviation section offset: %"
- PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8 "\n"),
- (uint64_t) offset, /*version*/2, abbroffset, addrsize, offsize);
+ if (debug_types)
+ printf (gettext (" Type unit at offset %" PRIu64 ":\n"
+ " Version: %" PRIu16 ", Abbreviation section offset: %"
+ PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8
+ "\n Type signature: %#" PRIx64
+ ", Type offset: %#" PRIx64 "\n"),
+ (uint64_t) offset, version, abbroffset, addrsize, offsize,
+ typesig, (uint64_t) typeoff);
+ else
+ printf (gettext (" Compilation unit at offset %" PRIu64 ":\n"
+ " Version: %" PRIu16 ", Abbreviation section offset: %"
+ PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8
+ "\n"),
+ (uint64_t) offset, version, abbroffset, addrsize, offsize);
- struct attrcb_args args;
- args.dwflmod = dwflmod;
- args.dbg = dbg;
- args.addrsize = addrsize;
- args.cu_offset = offset;
+ struct attrcb_args args =
+ {
+ .dwflmod = dwflmod,
+ .dbg = dbg,
+ .addrsize = addrsize,
+ .offset_size = offsize,
+ .cu_offset = offset
+ };
offset += cuhl;
int level = 0;
- if (unlikely (dwarf_offdie (dbg, offset, &dies[level]) == NULL))
+ if (unlikely ((debug_types ? dwarf_offdie_types : dwarf_offdie)
+ (dbg, offset, &dies[level]) == NULL))
{
error (0, 0, gettext ("cannot get DIE at offset %" PRIu64
" in section '%s': %s"),
- (uint64_t) offset, ".debug_info", dwarf_errmsg (-1));
+ (uint64_t) offset, secname, dwarf_errmsg (-1));
goto do_return;
}
@@ -4800,7 +4882,7 @@ print_debug_info_section (Dwfl_Module *dwflmod,
{
error (0, 0, gettext ("cannot get tag of DIE at offset %" PRIu64
" in section '%s': %s"),
- (uint64_t) offset, ".debug_info", dwarf_errmsg (-1));
+ (uint64_t) offset, secname, dwarf_errmsg (-1));
goto do_return;
}
@@ -4851,6 +4933,20 @@ print_debug_info_section (Dwfl_Module *dwflmod,
free (dies);
}
+static void
+print_debug_info_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
+ Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg)
+{
+ print_debug_units (dwflmod, ebl, ehdr, scn, shdr, dbg, false);
+}
+
+static void
+print_debug_types_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr,
+ Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg)
+{
+ print_debug_units (dwflmod, ebl, ehdr, scn, shdr, dbg, true);
+}
+
static void
print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
@@ -4919,7 +5015,10 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
/* Next the minimum instruction length. */
uint_fast8_t minimum_instr_len = *linep++;
- /* Then the flag determining the default value of the is_stmt
+ /* Next the maximum operations per instruction, in version 4 format. */
+ uint_fast8_t max_ops_per_instr = version < 4 ? 1 : *linep++;
+
+ /* Then the flag determining the default value of the is_stmt
register. */
uint_fast8_t default_is_stmt = *linep++;
@@ -4939,6 +5038,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
" DWARF version: %" PRIuFAST16 "\n"
" Prologue length: %" PRIu64 "\n"
" Minimum instruction length: %" PRIuFAST8 "\n"
+ " Maximum operations per instruction: %" PRIuFAST8 "\n"
" Initial value if '%s': %" PRIuFAST8 "\n"
" Line base: %" PRIdFAST8 "\n"
" Line range: %" PRIuFAST8 "\n"
@@ -4946,7 +5046,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
"\n"
"Opcodes:\n"),
(uint64_t) unit_length, version, (uint64_t) header_length,
- minimum_instr_len, "is_stmt", default_is_stmt, line_base,
+ minimum_instr_len, max_ops_per_instr,
+ "is_stmt", default_is_stmt, line_base,
line_range, opcode_base);
if (unlikely (linep + opcode_base - 1 >= lineendp))
@@ -5023,6 +5124,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
puts (gettext ("\nLine number statements:"));
Dwarf_Word address = 0;
+ unsigned int op_index = 0;
size_t line = 1;
uint_fast8_t is_stmt = default_is_stmt;
@@ -5054,6 +5156,20 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
}
}
+ /* Apply the "operation advance" from a special opcode
+ or DW_LNS_advance_pc (as per DWARF4 6.2.5.1). */
+ unsigned int op_addr_advance;
+ bool show_op_index;
+ inline void advance_pc (unsigned int op_advance)
+ {
+ op_addr_advance = minimum_instr_len * ((op_index + op_advance)
+ / max_ops_per_instr);
+ address += op_advance;
+ show_op_index = (op_index > 0 ||
+ (op_index + op_advance) % max_ops_per_instr > 0);
+ op_index = (op_index + op_advance) % max_ops_per_instr;
+ }
+
while (linep < lineendp)
{
unsigned int u128;
@@ -5069,22 +5185,25 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
is computed with
opcode = (desired line increment - line_base)
- + (line_range * address advance) + opcode_base
+ + (line_range * address advance) + opcode_base
*/
int line_increment = (line_base
+ (opcode - opcode_base) % line_range);
- unsigned int address_increment = (minimum_instr_len
- * ((opcode - opcode_base)
- / line_range));
/* Perform the increments. */
line += line_increment;
- address += address_increment;
+ advance_pc ((opcode - opcode_base) / line_range);
char *a = format_dwarf_addr (dwflmod, 0, address);
- printf (gettext ("\
+ if (show_op_index)
+ printf (gettext ("\
+ special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"),
+ opcode, op_addr_advance, a, op_index,
+ line_increment, line);
+ else
+ printf (gettext ("\
special opcode %u: address+%u = %s, line%+d = %zu\n"),
- opcode, address_increment, a, line_increment, line);
+ opcode, op_addr_advance, a, line_increment, line);
free (a);
}
else if (opcode == 0)
@@ -5111,11 +5230,13 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl,
/* Reset the registers we care about. */
address = 0;
+ op_index = 0;
line = 1;
is_stmt = default_is_stmt;
break;
case DW_LNE_set_address:
+ op_index = 0;
if (address_size == 4)
address = read_4ubyte_unaligned_inc (dbg, linep);
else
@@ -5150,6 +5271,15 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"),
}
break;
+ case DW_LNE_set_discriminator:
+ /* Takes one ULEB128 parameter, the discriminator. */
+ if (unlikely (standard_opcode_lengths[opcode] != 1))
+ goto invalid_unit;
+
+ get_uleb128 (u128, linep);
+ printf (gettext (" set discriminator to %u\n"), u128);
+ break;
+
default:
/* Unknown, ignore it. */
puts (gettext ("unknown opcode"));
@@ -5157,7 +5287,7 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"),
break;
}
}
- else if (opcode <= DW_LNS_set_epilogue_begin)
+ else if (opcode <= DW_LNS_set_isa)
{
/* This is a known standard opcode. */
switch (opcode)
@@ -5171,11 +5301,16 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"),
/* Takes one uleb128 parameter which is added to the
address. */
get_uleb128 (u128, linep);
- address += minimum_instr_len * u128;
+ advance_pc (u128);
{
char *a = format_dwarf_addr (dwflmod, 0, address);
- printf (gettext ("advance address by %u to %s\n"),
- u128, a);
+ if (show_op_index)
+ printf (gettext ("\
+advance address by %u to %s, op_index to %u\n"),
+ op_addr_advance, a, op_index);
+ else
+ printf (gettext ("advance address by %u to %s\n"),
+ op_addr_advance, a);
free (a);
}
break;
@@ -5221,13 +5356,17 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"),
case DW_LNS_const_add_pc:
/* Takes no argument. */
- u128 = (minimum_instr_len
- * ((255 - opcode_base) / line_range));
- address += u128;
+ advance_pc ((255 - opcode_base) / line_range);
{
char *a = format_dwarf_addr (dwflmod, 0, address);
- printf (gettext ("advance address by constant %u to %s\n"),
- u128, a);
+ if (show_op_index)
+ printf (gettext ("\
+advance address by constant %u to %s, op_index to %u\n"),
+ op_addr_advance, a, op_index);
+ else
+ printf (gettext ("\
+advance address by constant %u to %s\n"),
+ op_addr_advance, a);
free (a);
}
break;
@@ -5240,6 +5379,7 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"),
u128 = read_2ubyte_unaligned_inc (dbg, linep);
address += u128;
+ op_index = 0;
{
char *a = format_dwarf_addr (dwflmod, 0, address);
printf (gettext ("\
@@ -5258,6 +5398,15 @@ advance address by fixed value %u to %s\n"),
/* Takes no argument. */
puts (gettext (" set epilogue begin flag"));
break;
+
+ case DW_LNS_set_isa:
+ /* Takes one uleb128 parameter which is stored in isa. */
+ if (unlikely (standard_opcode_lengths[opcode] != 1))
+ goto invalid_unit;
+
+ get_uleb128 (u128, linep);
+ printf (gettext (" set isa to %u\n"), u128);
+ break;
}
}
else
@@ -5308,6 +5457,10 @@ print_debug_loc_section (Dwfl_Module *dwflmod,
size_t address_size = ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8;
+ /* XXX This is wrong! We can only know the right size given the CU that
+ points to this location list. */
+ size_t offset_size = 4;
+
bool first = true;
unsigned char *readp = data->d_buf;
while (readp < (unsigned char *) data->d_buf + data->d_size)
@@ -5360,7 +5513,7 @@ print_debug_loc_section (Dwfl_Module *dwflmod,
free (e);
print_ops (dwflmod, dbg, 1, 18 + (address_size * 4),
- address_size, len, readp);
+ address_size, offset_size, len, readp);
first = false;
readp += len;
@@ -5477,9 +5630,9 @@ print_debug_macinfo_section (Dwfl_Module *dwflmod __attribute__ ((unused)),
case DW_MACINFO_undef:
case DW_MACINFO_vendor_ext:
/* For the first two opcodes the parameters are
- line, string
+ line, string
For the latter
- number, string.
+ number, string.
We can treat these cases together. */
get_uleb128 (u128, readp);
@@ -5886,12 +6039,15 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr)
/* Before we start the real work get a debug context descriptor. */
Dwarf_Addr dwbias;
Dwarf *dbg = dwfl_module_getdwarf (dwflmod, &dwbias);
+ Dwarf dummy_dbg = { .other_byte_order = MY_ELFDATA != ehdr->e_ident[EI_DATA] };
if (dbg == NULL)
{
- if (print_debug_sections != 0)
+ if ((print_debug_sections & ~section_exception) != 0)
error (0, 0, gettext ("cannot get debug context descriptor: %s"),
dwfl_errmsg (-1));
- return;
+ if ((print_debug_sections & section_exception) == 0)
+ return;
+ dbg = &dummy_dbg;
}
/* Get the section header string table index. */
@@ -5923,6 +6079,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr)
NEW_SECTION (aranges),
NEW_SECTION (frame),
NEW_SECTION (info),
+ NEW_SECTION (types),
NEW_SECTION (line),
NEW_SECTION (loc),
NEW_SECTION (pubnames),
diff --git a/src/unstrip.c b/src/unstrip.c
index 0984e6bc..443cd620 100644
--- a/src/unstrip.c
+++ b/src/unstrip.c
@@ -368,6 +368,13 @@ symtab_count_leading_section_symbols (Elf *elf, Elf_Scn *scn, size_t shnum,
return shnum;
}
+static void
+update_shdr (Elf_Scn *outscn, GElf_Shdr *newshdr)
+{
+ ELF_CHECK (gelf_update_shdr (outscn, newshdr),
+ _("cannot update section header: %s"));
+}
+
/* We expanded the output section, so update its header. */
static void
update_sh_size (Elf_Scn *outscn, const Elf_Data *data)
@@ -378,8 +385,7 @@ update_sh_size (Elf_Scn *outscn, const Elf_Data *data)
newshdr->sh_size = data->d_size;
- ELF_CHECK (gelf_update_shdr (outscn, newshdr),
- _("cannot update section header: %s"));
+ update_shdr (outscn, newshdr);
}
/* Update relocation sections using the symbol table. */
@@ -428,8 +434,7 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
if (newshdr->sh_info != STN_UNDEF)
{
newshdr->sh_info = map[newshdr->sh_info - 1];
- ELF_CHECK (gelf_update_shdr (outscn, newshdr),
- _("cannot update section header: %s"));
+ update_shdr (outscn, newshdr);
}
break;
}
@@ -557,9 +562,7 @@ add_new_section_symbols (Elf_Scn *old_symscn, size_t old_shnum,
shdr->sh_info += added;
shdr->sh_size += added * shdr->sh_entsize;
-
- ELF_CHECK (gelf_update_shdr (symscn, shdr),
- _("cannot update section header: %s"));
+ update_shdr (symscn, shdr);
Elf_Data *symdata = elf_getdata (symscn, NULL);
Elf_Data *shndxdata = NULL; /* XXX */
@@ -1205,8 +1208,7 @@ new_shstrtab (Elf *unstripped, size_t unstripped_shnum,
shdr->sh_name = ebl_strtaboffset (unstripped_strent[i]);
if (i + 1 == unstripped_shstrndx)
shdr->sh_size = strtab_data->d_size;
- ELF_CHECK (gelf_update_shdr (scn, shdr),
- _("cannot update section header: %s"));
+ update_shdr (scn, shdr);
}
return strtab_data;
@@ -1234,6 +1236,10 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
ELF_CHECK (elf_getshdrnum (stripped, &stripped_shnum) == 0,
_("cannot get section count: %s"));
+ if (unlikely (stripped_shnum > unstripped_shnum))
+ error (EXIT_FAILURE, 0, _("\
+more sections in stripped file than debug file -- arguments reversed?"));
+
/* Cache the stripped file's section details. */
struct section sections[stripped_shnum - 1];
Elf_Scn *scn = NULL;
@@ -1521,8 +1527,7 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
offset = end_offset;
}
- ELF_CHECK (gelf_update_shdr (sec->outscn, &shdr_mem),
- _("cannot update section header: %s"));
+ update_shdr (sec->outscn, &shdr_mem);
if (shdr_mem.sh_type == SHT_SYMTAB || shdr_mem.sh_type == SHT_DYNSYM)
{
@@ -1716,8 +1721,7 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
}
elf_flagdata (symdata, ELF_C_SET, ELF_F_DIRTY);
- ELF_CHECK (gelf_update_shdr (unstripped_symtab, shdr),
- _("cannot update section header: %s"));
+ update_shdr (unstripped_symtab, shdr);
if (stripped_symtab != NULL)
{
@@ -1777,6 +1781,15 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
ELF_CHECK (shdr != NULL, _("cannot get section header: %s"));
+ /* We must make sure we have read in the data of all sections
+ beforehand and marked them to be written out. When we're
+ modifying the existing file in place, we might overwrite
+ this part of the file before we get to handling the section. */
+
+ ELF_CHECK (elf_flagdata (elf_getdata (scn, NULL),
+ ELF_C_SET, ELF_F_DIRTY),
+ _("cannot read section data: %s"));
+
if (skip_reloc
&& (shdr->sh_type == SHT_REL || shdr->sh_type == SHT_RELA))
continue;
@@ -1787,8 +1800,7 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
if (shdr->sh_type != SHT_NOBITS)
offset += shdr->sh_size;
- ELF_CHECK (gelf_update_shdr (scn, shdr),
- _("cannot update section header: %s"));
+ update_shdr (scn, shdr);
if (unstripped_shstrndx == 1 + i)
{
@@ -1810,7 +1822,8 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
placed[i] = true;
}
- } while (skip_reloc);
+ }
+ while (skip_reloc);
if (stripped_ehdr->e_phnum > 0)
ELF_CHECK (gelf_newphdr (unstripped, stripped_ehdr->e_phnum),
diff --git a/tests/ChangeLog b/tests/ChangeLog
index e2fe66f2..6e4519d6 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,7 @@
+2010-06-04 Roland McGrath <[email protected]>
+
+ * run-unstrip-test.sh: Also test modifying the file in place.
+
2010-04-22 Roland McGrath <[email protected]>
* addrcfi.c (handle_cfi): Fix function name in error message.
diff --git a/tests/run-unstrip-test.sh b/tests/run-unstrip-test.sh
index 8f0fc698..b9959a10 100755
--- a/tests/run-unstrip-test.sh
+++ b/tests/run-unstrip-test.sh
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2007 Red Hat, Inc.
+# Copyright (C) 2007-2010 Red Hat, Inc.
# This file is part of Red Hat elfutils.
#
# Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -30,7 +30,7 @@ stripped=${stripped:-testfile17}
debugfile=${debugfile:-${stripped}.debug}
testfiles $original $stripped $debugfile
-tempfiles testfile.unstrip
+tempfiles testfile.unstrip testfile.inplace
# These are old reference output from run-test-strip6.sh, when
# strip left the .debug file with unchanged sh_size in
@@ -40,3 +40,12 @@ tempfiles testfile.unstrip
testrun ../src/unstrip -o testfile.unstrip $stripped $debugfile
testrun ../src/elfcmp --hash-inexact $original testfile.unstrip
+
+# Also test modifying the file in place.
+
+rm -f testfile.inplace
+cp $debugfile testfile.inplace
+chmod 644 testfile.inplace
+testrun ../src/unstrip $stripped testfile.inplace
+
+testrun ../src/elfcmp --hash-inexact $original testfile.inplace