summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2020-06-09 18:21:36 +0200
committerMark Wielaard <mark@klomp.org>2020-06-09 18:21:36 +0200
commitc0d643e7d91fc002c9fecd83277c62a0e56ef76f (patch)
tree89b5cf6673baa2cb206fdf245f4e30fe884945ad
parent14030673602a4f331f348decd51e5f0160719f0e (diff)
parent5643e037cb7a38ed5d52f50421be706ea8014e3d (diff)
Merge tag 'elfutils-0.177' into mjw/RH-DTSdts-0.177
elfutils 0.177 release Conflicts: libebl/eblopenbackend.c Removed try_dlopen and csky. tests/run-strip-reloc.sh Removed csky tests.
-rw-r--r--ChangeLog8
-rw-r--r--NEWS16
-rw-r--r--backends/ChangeLog34
-rw-r--r--backends/Makefile.am9
-rw-r--r--backends/aarch64_init.c1
-rw-r--r--backends/alpha_init.c1
-rw-r--r--backends/arm_init.c1
-rw-r--r--backends/bpf_init.c1
-rw-r--r--backends/csky_attrs.c67
-rw-r--r--backends/csky_cfi.c60
-rw-r--r--backends/csky_corenote.c61
-rw-r--r--backends/csky_init.c65
-rw-r--r--backends/csky_initreg.c87
-rw-r--r--backends/csky_regs.c101
-rw-r--r--backends/csky_reloc.def86
-rw-r--r--backends/csky_symbol.c77
-rw-r--r--backends/i386_init.c1
-rw-r--r--backends/ia64_init.c1
-rw-r--r--backends/m68k_init.c1
-rw-r--r--backends/ppc64_init.c1
-rw-r--r--backends/ppc_init.c1
-rw-r--r--backends/riscv_cfi.c2
-rw-r--r--backends/riscv_init.c1
-rw-r--r--backends/s390_init.c1
-rw-r--r--backends/sh_init.c1
-rw-r--r--backends/sparc_init.c6
-rw-r--r--backends/tilegx_init.c1
-rw-r--r--backends/x86_64_init.c1
-rw-r--r--config/ChangeLog9
-rw-r--r--config/Makefile.am6
-rw-r--r--config/elfutils.spec.in11
-rwxr-xr-xconfig/upload-release.sh1
-rw-r--r--configure.ac2
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/color.c2
-rw-r--r--libasm/ChangeLog4
-rw-r--r--libasm/asm_end.c6
-rw-r--r--libdw/ChangeLog28
-rw-r--r--libdw/dwarf.h6
-rw-r--r--libdw/dwarf_getlocation.c4
-rw-r--r--libdw/dwarf_siblingof.c2
-rw-r--r--libdw/libdw.map11
-rw-r--r--libdwelf/ChangeLog12
-rw-r--r--libdwelf/Makefile.am3
-rw-r--r--libdwelf/dwelf_elf_begin.c12
-rw-r--r--libdwelf/dwelf_elf_e_machine_string.c406
-rw-r--r--libdwelf/libdwelf.h13
-rw-r--r--libdwfl/ChangeLog33
-rw-r--r--libdwfl/cu.c7
-rw-r--r--libdwfl/dwfl_segment_report_module.c7
-rw-r--r--libdwfl/frame_unwind.c2
-rw-r--r--libdwfl/gzip.c5
-rw-r--r--libdwfl/linux-kernel-modules.c7
-rw-r--r--libdwfl/open.c10
-rw-r--r--libebl/ChangeLog25
-rw-r--r--libebl/eblopenbackend.c16
-rw-r--r--libebl/eblsymbolbindingname.c1
-rw-r--r--libebl/eblsymboltypename.c1
-rw-r--r--libebl/libeblP.h3
-rw-r--r--libelf/ChangeLog128
-rw-r--r--libelf/common.h4
-rw-r--r--libelf/elf.h96
-rw-r--r--libelf/elf32_fsize.c12
-rw-r--r--libelf/elf32_newphdr.c3
-rw-r--r--libelf/elf32_updatefile.c99
-rw-r--r--libelf/elf32_updatenull.c44
-rw-r--r--libelf/elf32_xlatetof.c16
-rw-r--r--libelf/elf32_xlatetom.c16
-rw-r--r--libelf/elf_begin.c17
-rw-r--r--libelf/elf_compress.c33
-rw-r--r--libelf/elf_getaroff.c2
-rw-r--r--libelf/elf_getbase.c4
-rw-r--r--libelf/elf_getdata.c26
-rw-r--r--libelf/elf_getdata_rawchunk.c7
-rw-r--r--libelf/elf_newdata.c2
-rw-r--r--libelf/elf_update.c8
-rw-r--r--libelf/elf_version.c23
-rw-r--r--libelf/gelf_fsize.c13
-rw-r--r--libelf/gelf_getnote.c5
-rw-r--r--libelf/gelf_xlate.c10
-rw-r--r--libelf/libelfP.h65
-rw-r--r--libelf/nlist.c5
-rw-r--r--libelf/note_xlate.h16
-rw-r--r--po/ChangeLog4
-rw-r--r--po/de.po857
-rw-r--r--po/es.po857
-rw-r--r--po/ja.po857
-rw-r--r--po/pl.po857
-rw-r--r--po/uk.po857
-rw-r--r--src/ChangeLog73
-rw-r--r--src/Makefile.am4
-rw-r--r--src/elfclassify.c1046
-rw-r--r--src/elfcmp.c6
-rw-r--r--src/elflint.c2
-rw-r--r--src/nm.c14
-rw-r--r--src/readelf.c134
-rw-r--r--src/size.c6
-rw-r--r--src/stack.c2
-rw-r--r--src/strip.c3
-rw-r--r--src/unstrip.c4
-rw-r--r--tests/ChangeLog92
-rw-r--r--tests/Makefile.am25
-rw-r--r--tests/addsections.c44
-rw-r--r--tests/backtrace-dwarf.c2
-rw-r--r--tests/backtrace.c3
-rw-r--r--tests/dwelf_elf_e_machine_string.c64
-rw-r--r--tests/elfcopy.c99
-rw-r--r--tests/elfrdwrnop.c100
-rw-r--r--tests/hello_csky.ko.bz2bin0 -> 26448 bytes
-rwxr-xr-xtests/run-addrcfi.sh1
-rwxr-xr-xtests/run-dwelf_elf_e_machine_string.sh31
-rwxr-xr-xtests/run-elfclassify-self.sh36
-rwxr-xr-xtests/run-elfclassify.sh327
-rwxr-xr-xtests/run-large-elf-file.sh114
-rwxr-xr-xtests/run-readelf-discr.sh337
-rwxr-xr-xtests/run-reverse-sections-self.sh45
-rwxr-xr-xtests/run-reverse-sections.sh69
-rwxr-xr-xtests/run-xlate-note.sh93
-rw-r--r--tests/testfile-rng.debug.bz2bin0 -> 1286 bytes
-rw-r--r--tests/testfile-urng.debug.bz2bin0 -> 1178 bytes
-rw-r--r--tests/testfilecsky.bz2bin0 -> 3145 bytes
-rw-r--r--tests/xlate_notes.c157
122 files changed, 6741 insertions, 2487 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c45cccf..bed3999f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-13 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Set version to 0.177.
+ * NEWS: Mention elfclassify, readelf DW_AT_data_member_location
+ and DW_AT_discr_list attribute changes, dwarf.h DW_AT_GNU additions,
+ dwelf_elf_e_machine_string function, dwelf_elf_begin change and
+ C-SKY backend support.
+
2019-02-14 Mark Wielaard <mark@klomp.org>
* configure.ac: Set version to 0.176.
diff --git a/NEWS b/NEWS
index 5a06047f..2bf19d9c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,19 @@
+Version 0.177
+
+elfclassify: New tool to analyze ELF objects.
+
+readelf: Print DW_AT_data_member_location as decimal offset.
+ Decode DW_AT_discr_list block attributes.
+
+libdw: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and DW_AT_GNU_bias.
+
+libdwelf: Add dwelf_elf_e_machine_string.
+ dwelf_elf_begin now only returns NULL when there is an error
+ reading or decompressing a file. If the file is not an ELF file
+ an ELF handle of type ELF_K_NONE is returned.
+
+backends: Add support for C-SKY.
+
Version 0.176
build: Add new --enable-install-elfh option.
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 0c61a0b3..f1eaf14b 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,37 @@
+2019-07-13 Mao Han <han_mao@c-sky.com>
+
+ * Makefile.am: Add C-SKY.
+ * csky_attrs.c: New file.
+ * csky_cfi.c: New file.
+ * csky_corenote.c: Likewise.
+ * csky_init.c: Likewise.
+ * csky_initreg.c: Likewise.
+ * csky_regs.c: Likewise.
+ * csky_reloc.def: Likewise.
+ * csky_symbol.c: Likewise.
+
+2019-06-28 Mark Wielaard <mark@klomp.org>
+
+ * aarch64_init.c (aarch64_init.c): Remove eh->name;
+ * alpha_init.c (alpha_init.c): Remove eh->name;
+ * arm_init.c (arm_init.c): Remove eh->name;
+ * bpf_init.c (bpf_init.c): Remove eh->name;
+ * i386_init.c (i386_init.c): Remove eh->name;
+ * ia64_init.c (ia64_init.c): Remove eh->name;
+ * m68k_init.c (m68k_init.c): Remove eh->name;
+ * ppc64_init.c (ppc64_init.c): Remove eh->name;
+ * ppc_init.c (ppc_init.c): Remove eh->name;
+ * riscv_init.c (riscv_init.c): Remove eh->name;
+ * s390_init.c (s390_init.c): Remove eh->name;
+ * sh_init.c (sh_init.c): Remove eh->name;
+ * sparc_init.c (sparc_init.c): Remove eh->name;
+ * tilegx_init.c (tilegx_init.c): Remove eh->name;
+ * x86_64_init.c (x86_64_init.c): Remove eh->name;
+
+2019-04-14 Mark Wielaard <mark@klomp.org>
+
+ * riscv_cfi.c: Fix BACKEND define.
+
2019-02-15 Mark Wielaard <mark@klomp.org>
* s390_init.c (s390_init): Hook check_special_symbol.
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 3a4e56ef..2c0c7f0b 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -33,12 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
- tilegx m68k bpf riscv
+ tilegx m68k bpf riscv csky
libebl_pic = libebl_i386_pic.a libebl_sh_pic.a libebl_x86_64_pic.a \
libebl_ia64_pic.a libebl_alpha_pic.a libebl_arm_pic.a \
libebl_aarch64_pic.a libebl_sparc_pic.a libebl_ppc_pic.a \
libebl_ppc64_pic.a libebl_s390_pic.a libebl_tilegx_pic.a \
- libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a
+ libebl_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \
+ libebl_csky_pic.a
noinst_LIBRARIES = $(libebl_pic)
noinst_DATA = $(libebl_pic:_pic.a=.so)
lib_LIBRARIES = libebl_static_pic.a
@@ -162,6 +163,10 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \
libebl_riscv_pic_a_SOURCES = $(riscv_SRCS)
am_libebl_riscv_pic_a_OBJECTS = $(riscv_SRCS:.c=.os)
+csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
+ csky_regs.c csky_initreg.c csky_corenote.c
+libebl_csky_pic_a_SOURCES = $(csky_SRCS)
+am_libebl_csky_pic_a_OBJECTS = $(csky_SRCS:.c=.os)
libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu)
@rm -f $(@:.so=.map)
diff --git a/backends/aarch64_init.c b/backends/aarch64_init.c
index fad923fa..95268ae0 100644
--- a/backends/aarch64_init.c
+++ b/backends/aarch64_init.c
@@ -49,7 +49,6 @@ aarch64_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "AARCH64";
aarch64_init_reloc (eh);
HOOK (eh, register_info);
HOOK (eh, core_note);
diff --git a/backends/alpha_init.c b/backends/alpha_init.c
index 25c5b32f..f66f40c5 100644
--- a/backends/alpha_init.c
+++ b/backends/alpha_init.c
@@ -50,7 +50,6 @@ alpha_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "Alpha";
alpha_init_reloc (eh);
HOOK (eh, dynamic_tag_name);
HOOK (eh, dynamic_tag_check);
diff --git a/backends/arm_init.c b/backends/arm_init.c
index f2b1b11e..af023f02 100644
--- a/backends/arm_init.c
+++ b/backends/arm_init.c
@@ -50,7 +50,6 @@ arm_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "ARM";
arm_init_reloc (eh);
HOOK (eh, segment_type_name);
HOOK (eh, section_type_name);
diff --git a/backends/bpf_init.c b/backends/bpf_init.c
index a046e069..d407d378 100644
--- a/backends/bpf_init.c
+++ b/backends/bpf_init.c
@@ -49,7 +49,6 @@ bpf_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "BPF";
bpf_init_reloc (eh);
HOOK (eh, register_info);
HOOK (eh, disasm);
diff --git a/backends/csky_attrs.c b/backends/csky_attrs.c
new file mode 100644
index 00000000..177f0ba2
--- /dev/null
+++ b/backends/csky_attrs.c
@@ -0,0 +1,67 @@
+/* C-SKY ABI-specified defaults for DWARF CFI.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+#include <dwarf.h>
+
+#define BACKEND csky_
+#include "libebl_CPU.h"
+
+bool
+csky_check_object_attribute (Ebl *ebl __attribute__ ((unused)),
+ const char *vendor, int tag,
+ uint64_t value __attribute__ ((unused)),
+ const char **tag_name,
+ const char **value_name __attribute__ ((unused)))
+{
+ if (!strcmp (vendor, "csky"))
+ switch (tag)
+ {
+ case 4:
+ *tag_name = "CSKY_ARCH_NAME";
+ return true;
+
+ case 5:
+ *tag_name = "CSKY_CPU_NAME";
+ return true;
+
+ case 6:
+ *tag_name = "CSKY_ISA_FLAGS";
+ return true;
+
+ case 7:
+ *tag_name = "CSKY_ISA_EXT_FLAGS";
+ return true;
+ }
+
+ return false;
+}
diff --git a/backends/csky_cfi.c b/backends/csky_cfi.c
new file mode 100644
index 00000000..7277dbd4
--- /dev/null
+++ b/backends/csky_cfi.c
@@ -0,0 +1,60 @@
+/* C-SKY ABI-specified defaults for DWARF CFI.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <dwarf.h>
+
+#define BACKEND csky_
+#include "libebl_CPU.h"
+
+
+int
+csky_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
+{
+ static const uint8_t abi_cfi[] =
+ {
+ DW_CFA_def_cfa, ULEB128_7 (14), ULEB128_7 (0),
+ DW_CFA_val_offset, ULEB128_7 (14), ULEB128_7 (0),
+
+#define SV(n) DW_CFA_same_value, ULEB128_7 (n)
+ SV(4), SV (5), SV (6), SV (7), SV (8), SV (9),
+ SV(10), SV (11), SV (15), SV (16), SV (17)
+#undef SV
+ };
+
+ abi_info->initial_instructions = abi_cfi;
+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
+ abi_info->data_alignment_factor = -4;
+
+ abi_info->return_address_register = 15; /* lr. */
+
+ return 0;
+}
diff --git a/backends/csky_corenote.c b/backends/csky_corenote.c
new file mode 100644
index 00000000..a1479bd3
--- /dev/null
+++ b/backends/csky_corenote.c
@@ -0,0 +1,61 @@
+/* C-SKY specific core note handling.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <elf.h>
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/time.h>
+
+#define BACKEND csky_
+#include "libebl_CPU.h"
+
+#define ULONG uint32_t
+#define PID_T int32_t
+#define UID_T uint32_t
+#define GID_T uint32_t
+#define ALIGN_ULONG 4
+#define ALIGN_PID_T 4
+#define ALIGN_UID_T 4
+#define ALIGN_GID_T 4
+#define TYPE_ULONG ELF_T_WORD
+#define TYPE_PID_T ELF_T_SWORD
+#define TYPE_UID_T ELF_T_WORD
+#define TYPE_GID_T ELF_T_WORD
+
+static const Ebl_Register_Location prstatus_regs[] =
+ {
+ { .offset = 0, .regno = 0, .count = 36, .bits = 32 } /* r0..r31 */
+ };
+#define PRSTATUS_REGS_SIZE (36 * 4)
+
+#include "linux-core-note.c"
diff --git a/backends/csky_init.c b/backends/csky_init.c
new file mode 100644
index 00000000..b34a03aa
--- /dev/null
+++ b/backends/csky_init.c
@@ -0,0 +1,65 @@
+/* Initialization of C-SKY specific backend library.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define BACKEND csky_
+#define RELOC_PREFIX R_CKCORE_
+#include "libebl_CPU.h"
+
+/* This defines the common reloc hooks based on csky_reloc.def. */
+#include "common-reloc.c"
+
+const char *
+csky_init (Elf *elf __attribute__ ((unused)),
+ GElf_Half machine __attribute__ ((unused)),
+ Ebl *eh,
+ size_t ehlen)
+{
+ /* Check whether the Elf_BH object has a sufficent size. */
+ if (ehlen < sizeof (Ebl))
+ return NULL;
+
+ /* We handle it. */
+ csky_init_reloc (eh);
+ HOOK (eh, abi_cfi);
+ HOOK (eh, core_note);
+ HOOK (eh, check_object_attribute);
+ HOOK (eh, machine_flag_check);
+ HOOK (eh, reloc_simple_type);
+ HOOK (eh, register_info);
+ HOOK (eh, section_type_name);
+ HOOK (eh, set_initial_registers_tid);
+
+ /* gcc/config/ #define DWARF_FRAME_REGISTERS. */
+ eh->frame_nregs = 38;
+
+ return MODVERSION;
+}
diff --git a/backends/csky_initreg.c b/backends/csky_initreg.c
new file mode 100644
index 00000000..81a0da33
--- /dev/null
+++ b/backends/csky_initreg.c
@@ -0,0 +1,87 @@
+/* Fetch live process registers from TID. C-SKY version.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "system.h"
+#include <assert.h>
+#if defined __CSKY__ && defined __linux__
+# include <sys/uio.h>
+# include <sys/procfs.h>
+# include <sys/ptrace.h>
+#endif
+
+#define BACKEND csky_
+#include "libebl_CPU.h"
+
+bool
+csky_set_initial_registers_tid (pid_t tid __attribute__ ((unused)),
+ ebl_tid_registers_t *setfunc __attribute__ ((unused)),
+ void *arg __attribute__ ((unused)))
+{
+#if !defined __CSKY__ || !defined __linux__
+ return false;
+#else /* __CSKY__ */
+ struct pt_regs user_regs;
+ struct iovec iovec;
+ iovec.iov_base = &user_regs;
+ iovec.iov_len = sizeof (user_regs);
+ if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iovec) != 0)
+ return false;
+
+ Dwarf_Word dwarf_regs[38];
+
+ /* lr. */
+ dwarf_regs[15] = user_regs.lr;
+ /* sp. */
+ dwarf_regs[14] = user_regs.usp;
+ /* r0 ~ r13. */
+ dwarf_regs[0] = user_regs.a0;
+ dwarf_regs[1] = user_regs.a1;
+ dwarf_regs[2] = user_regs.a2;
+ dwarf_regs[3] = user_regs.a3;
+ for (int i = 4; i < 14; i++)
+ dwarf_regs[i] = user_regs.regs[i - 4];
+ /* r ~ r13. */
+ for (int i = 16; i < 31; i++)
+ dwarf_regs[i] = user_regs.exregs[i - 16];
+ /* tls. */
+ dwarf_regs[31] = user_regs.tls;
+ /* hi. */
+ dwarf_regs[36] = user_regs.rhi;
+ /* lo. */
+ dwarf_regs[37] = user_regs.rlo;
+ /* pc. */
+ dwarf_regs[32] = user_regs.pc;
+ setfunc (-1, 1, &dwarf_regs[32], arg);
+
+ return setfunc (0, 38, dwarf_regs, arg);
+#endif
+}
diff --git a/backends/csky_regs.c b/backends/csky_regs.c
new file mode 100644
index 00000000..6d45c04b
--- /dev/null
+++ b/backends/csky_regs.c
@@ -0,0 +1,101 @@
+/* Register names and numbers for C-SKY DWARF.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+#include <dwarf.h>
+
+#define BACKEND csky_
+#include "libebl_CPU.h"
+
+ssize_t
+csky_register_info (Ebl *ebl __attribute__ ((unused)),
+ int regno, char *name, size_t namelen,
+ const char **prefix, const char **setname,
+ int *bits, int *type)
+{
+ if (name == NULL)
+ return 38;
+
+ *prefix = "";
+ *bits = 32;
+ *type = DW_ATE_signed;
+ *setname = "integer";
+
+ switch (regno)
+ {
+ case 0 ... 9:
+ name[0] = 'r';
+ name[1] = regno + '0';
+ namelen = 2;
+ break;
+
+ case 10 ... 13:
+ case 16 ... 30:
+ name[0] = 'r';
+ name[1] = regno / 10 + '0';
+ name[2] = regno % 10 + '0';
+ namelen = 3;
+ break;
+
+ case 14:
+ stpcpy (name, "sp");
+ namelen = 2;
+ break;
+
+ case 15:
+ stpcpy (name, "lr");
+ namelen = 2;
+ break;
+
+ case 31:
+ stpcpy (name, "tls");
+ namelen = 3;
+ break;
+
+ case 36:
+ stpcpy (name, "hi");
+ namelen = 2;
+ break;
+
+ case 37:
+ stpcpy (name, "lo");
+ namelen = 2;
+ break;
+
+ default:
+ *setname = NULL;
+ return 0;
+ }
+
+ name[namelen++] = '\0';
+ return namelen;
+}
diff --git a/backends/csky_reloc.def b/backends/csky_reloc.def
new file mode 100644
index 00000000..1108f0c2
--- /dev/null
+++ b/backends/csky_reloc.def
@@ -0,0 +1,86 @@
+/* List the relocation types for csky. -*- C -*-
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+/* NAME, REL|EXEC|DYN */
+
+
+RELOC_TYPE (NONE, REL|EXEC|DYN)
+RELOC_TYPE (ADDR32, REL|EXEC|DYN)
+RELOC_TYPE (PCRELIMM8BY4, REL)
+RELOC_TYPE (PCRELIMM11BY2, REL)
+RELOC_TYPE (PCREL32, REL|DYN)
+RELOC_TYPE (PCRELJSR_IMM11BY2, REL)
+RELOC_TYPE (RELATIVE, EXEC|DYN)
+RELOC_TYPE (COPY, EXEC|DYN)
+RELOC_TYPE (GLOB_DAT, EXEC|DYN)
+RELOC_TYPE (JUMP_SLOT, EXEC|DYN)
+RELOC_TYPE (GOTOFF, REL)
+RELOC_TYPE (GOTPC, REL)
+RELOC_TYPE (GOT32, REL)
+RELOC_TYPE (PLT32, REL)
+RELOC_TYPE (ADDRGOT, REL)
+RELOC_TYPE (ADDRPLT, REL)
+RELOC_TYPE (PCREL_IMM26BY2, REL)
+RELOC_TYPE (PCREL_IMM16BY2, REL)
+RELOC_TYPE (PCREL_IMM16BY4, REL)
+RELOC_TYPE (PCREL_IMM10BY2, REL)
+RELOC_TYPE (PCREL_IMM10BY4, REL)
+RELOC_TYPE (ADDR_HI16, REL|DYN)
+RELOC_TYPE (ADDR_LO16, REL|DYN)
+RELOC_TYPE (GOTPC_HI16, REL)
+RELOC_TYPE (GOTPC_LO16, REL)
+RELOC_TYPE (GOTOFF_HI16, REL)
+RELOC_TYPE (GOTOFF_LO16, REL)
+RELOC_TYPE (GOT12, REL)
+RELOC_TYPE (GOT_HI16, REL)
+RELOC_TYPE (GOT_LO16, REL)
+RELOC_TYPE (PLT12, REL)
+RELOC_TYPE (PLT_HI16, REL)
+RELOC_TYPE (PLT_LO16, REL)
+RELOC_TYPE (ADDRGOT_HI16, REL)
+RELOC_TYPE (ADDRGOT_LO16, REL)
+RELOC_TYPE (ADDRPLT_HI16, REL)
+RELOC_TYPE (ADDRPLT_LO16, REL)
+RELOC_TYPE (PCREL_JSR_IMM26BY2, REL|DYN)
+RELOC_TYPE (TOFFSET_LO16, REL)
+RELOC_TYPE (DOFFSET_LO16, REL)
+RELOC_TYPE (PCREL_IMM18BY2, REL)
+RELOC_TYPE (DOFFSET_IMM18, REL)
+RELOC_TYPE (DOFFSET_IMM18BY2, REL)
+RELOC_TYPE (DOFFSET_IMM18BY4, REL)
+RELOC_TYPE (GOT_IMM18BY4, REL)
+RELOC_TYPE (PLT_IMM18BY4, REL)
+RELOC_TYPE (PCREL_IMM7BY4, REL)
+RELOC_TYPE (TLS_LE32, REL)
+RELOC_TYPE (TLS_IE32, REL)
+RELOC_TYPE (TLS_GD32, REL)
+RELOC_TYPE (TLS_LDM32, REL)
+RELOC_TYPE (TLS_LDO32, REL)
+RELOC_TYPE (TLS_DTPMOD32, EXEC|DYN)
+RELOC_TYPE (TLS_DTPOFF32, EXEC|DYN)
+RELOC_TYPE (TLS_TPOFF32, EXEC|DYN)
diff --git a/backends/csky_symbol.c b/backends/csky_symbol.c
new file mode 100644
index 00000000..79b5bf9e
--- /dev/null
+++ b/backends/csky_symbol.c
@@ -0,0 +1,77 @@
+/* C-SKY specific symbolic name handling.
+ Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <assert.h>
+#include <elf.h>
+#include <stddef.h>
+#include <string.h>
+
+#define BACKEND csky_
+#include "libebl_CPU.h"
+
+/* Check for the simple reloc types. */
+Elf_Type
+csky_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type,
+ int *addsub __attribute__ ((unused)))
+{
+ switch (type)
+ {
+ case R_CKCORE_ADDR32:
+ return ELF_T_WORD;
+ default:
+ return ELF_T_NUM;
+ }
+}
+
+bool
+csky_machine_flag_check (GElf_Word flags)
+{
+ switch (flags & EF_CSKY_ABIMASK)
+ {
+ case EF_CSKY_ABIV2:
+ return true;
+ case EF_CSKY_ABIV1:
+ default:
+ return false;
+ }
+}
+
+const char *
+csky_section_type_name (int type,
+ char *buf __attribute__ ((unused)),
+ size_t len __attribute__ ((unused)))
+{
+ if (type == SHT_CSKY_ATTRIBUTES)
+ return "CSKY_ATTRIBUTES";
+
+ return NULL;
+}
diff --git a/backends/i386_init.c b/backends/i386_init.c
index fc1587a9..67428b53 100644
--- a/backends/i386_init.c
+++ b/backends/i386_init.c
@@ -49,7 +49,6 @@ i386_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "Intel 80386";
i386_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, gotpc_reloc_check);
diff --git a/backends/ia64_init.c b/backends/ia64_init.c
index 7241d7b8..2d1f43f2 100644
--- a/backends/ia64_init.c
+++ b/backends/ia64_init.c
@@ -49,7 +49,6 @@ ia64_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "Intel IA-64";
ia64_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, segment_type_name);
diff --git a/backends/m68k_init.c b/backends/m68k_init.c
index 8cae710b..05d544c1 100644
--- a/backends/m68k_init.c
+++ b/backends/m68k_init.c
@@ -48,7 +48,6 @@ m68k_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "M68K";
m68k_init_reloc (eh);
HOOK (eh, gotpc_reloc_check);
HOOK (eh, reloc_simple_type);
diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c
index 3db5e766..c2e7043b 100644
--- a/backends/ppc64_init.c
+++ b/backends/ppc64_init.c
@@ -52,7 +52,6 @@ ppc64_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "PowerPC 64-bit";
ppc64_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, dynamic_tag_name);
diff --git a/backends/ppc_init.c b/backends/ppc_init.c
index aea9f2d7..eb286c25 100644
--- a/backends/ppc_init.c
+++ b/backends/ppc_init.c
@@ -50,7 +50,6 @@ ppc_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "PowerPC";
ppc_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, machine_flag_check);
diff --git a/backends/riscv_cfi.c b/backends/riscv_cfi.c
index 1a84a382..1c52ea8d 100644
--- a/backends/riscv_cfi.c
+++ b/backends/riscv_cfi.c
@@ -31,7 +31,7 @@
#include <dwarf.h>
-#define BACKEND aarch64_
+#define BACKEND riscv64_
#include "libebl_CPU.h"
diff --git a/backends/riscv_init.c b/backends/riscv_init.c
index 3398c104..9aaec9ce 100644
--- a/backends/riscv_init.c
+++ b/backends/riscv_init.c
@@ -54,7 +54,6 @@ riscv_init (Elf *elf,
return NULL;
/* We handle it. */
- eh->name = "RISC-V";
riscv_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, register_info);
diff --git a/backends/s390_init.c b/backends/s390_init.c
index 0004aeea..b4f3e7f8 100644
--- a/backends/s390_init.c
+++ b/backends/s390_init.c
@@ -51,7 +51,6 @@ s390_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "IBM S/390";
s390_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, check_special_symbol);
diff --git a/backends/sh_init.c b/backends/sh_init.c
index 5526aca1..24f4d4a4 100644
--- a/backends/sh_init.c
+++ b/backends/sh_init.c
@@ -50,7 +50,6 @@ sh_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "Hitachi SH";
sh_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, gotpc_reloc_check);
diff --git a/backends/sparc_init.c b/backends/sparc_init.c
index 8e946fb2..6daff114 100644
--- a/backends/sparc_init.c
+++ b/backends/sparc_init.c
@@ -55,12 +55,6 @@ sparc_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- if (machine == EM_SPARCV9)
- eh->name = "SPARC v9";
- else if (machine == EM_SPARC32PLUS)
- eh->name = "SPARC v8+";
- else
- eh->name = "SPARC";
sparc_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, machine_flag_check);
diff --git a/backends/tilegx_init.c b/backends/tilegx_init.c
index 162ed362..66df9318 100644
--- a/backends/tilegx_init.c
+++ b/backends/tilegx_init.c
@@ -48,7 +48,6 @@ tilegx_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "TILE-Gx";
tilegx_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, return_value_location);
diff --git a/backends/x86_64_init.c b/backends/x86_64_init.c
index 49f6c6c7..8abafb7f 100644
--- a/backends/x86_64_init.c
+++ b/backends/x86_64_init.c
@@ -52,7 +52,6 @@ x86_64_init (Elf *elf __attribute__ ((unused)),
return NULL;
/* We handle it. */
- eh->name = "AMD x86-64";
x86_64_init_reloc (eh);
HOOK (eh, reloc_simple_type);
HOOK (eh, section_type_name);
diff --git a/config/ChangeLog b/config/ChangeLog
index f956780c..65658118 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,12 @@
+2019-08-13 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (elfutils.spec.in): Use git --get user.name and
+ user.email.
+
+2019-04-15 Mark Wielaard <mark@klomp.org>
+
+ * upload-release.sh: Add git tag --verify.
+
2019-02-14 Mark Wielaard <mark@klomp.org>
* elfutils.spec.in: Update for 0.176.
diff --git a/config/Makefile.am b/config/Makefile.am
index 66012d02..9d292cee 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -38,9 +38,9 @@ if MAINTAINER_MODE
$(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS
@tmpname=$$(mktemp $${TMPDIR:-/tmp}/elfutils.XXXXXX); \
date +'* %a %b %e %Y' | tr '[\n]' '[ ]' > $$tmpname; \
- getent passwd "$$(whoami)" | \
- awk 'BEGIN {FS=":"} { printf $$5; exit 0}' >> $$tmpname; \
- echo -n " <$$(whoami)@gmail.com> " >> $$tmpname; \
+ username=$$(git config --get user.name); \
+ useremail=$$(git config --get user.email); \
+ echo -n "$$username <$$useremail> " >> $$tmpname; \
awk '\
$$1 == "Version" && started { exit } \
$$1 == "Version" { started=1; line=""; sub(/:/,"",$$2); \
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index 794cbaf8..19b4229e 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -227,6 +227,17 @@ rm -rf ${RPM_BUILD_ROOT}
%{_sysctldir}/10-default-yama-scope.conf
%changelog
+* Tue Aug 13 2019 Mark Wielaard <mark@klomp.org> 0.177-1
+- elfclassify: New tool to analyze ELF objects.
+- readelf: Print DW_AT_data_member_location as decimal offset.
+ Decode DW_AT_discr_list block attributes.
+- libdw: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and DW_AT_GNU_bias.
+- libdwelf: Add dwelf_elf_e_machine_string.
+ dwelf_elf_begin now only returns NULL when there is an error
+ reading or decompressing a file. If the file is not an ELF file
+ an ELF handle of type ELF_K_NONE is returned.
+- backends: Add support for C-SKY.
+
* Thu Feb 14 2019 Mark Wielaard <mark@klomp.org> 0.176-1
- build: Add new --enable-install-elfh option.
Do NOT use this for system installs (it overrides glibc elf.h).
diff --git a/config/upload-release.sh b/config/upload-release.sh
index 470644d3..df5e3a07 100755
--- a/config/upload-release.sh
+++ b/config/upload-release.sh
@@ -29,6 +29,7 @@ pushd "${tempdir}"
# Checkout
git clone git://sourceware.org/git/elfutils.git
cd elfutils
+git tag --verify "elfutils-${VERSION}"
git checkout -b "$VERSION" "elfutils-${VERSION}"
# Create dist
diff --git a/configure.ac b/configure.ac
index 54ad07ab..3afc51ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@ dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([elfutils],[0.176],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
+AC_INIT([elfutils],[0.177],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
dnl Workaround for older autoconf < 2.64
m4_ifndef([AC_PACKAGE_URL],
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 0914b2c6..7381860c 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2019-05-03 Rosen Penev <rosenp@gmail.com>
+
+ * color.c (parse_opt): Cast program_invocation_short_name to char *.
+
2018-11-04 Mark Wielaard <mark@klomp.org>
* bpf.h: Add BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE.
diff --git a/lib/color.c b/lib/color.c
index 9ffbf55f..20b9698a 100644
--- a/lib/color.c
+++ b/lib/color.c
@@ -132,7 +132,7 @@ valid arguments are:\n\
- 'auto', 'tty', 'if-tty'\n"),
program_invocation_short_name, arg);
argp_help (&color_argp, stderr, ARGP_HELP_SEE,
- program_invocation_short_name);
+ (char *) program_invocation_short_name);
exit (EXIT_FAILURE);
}
}
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index 92dfd729..05b830c8 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,3 +1,7 @@
+2019-03-06 Mark Wielaard <mark@klomp.org>
+
+ * asm_end.c (binary_end): Check return value of gelf_update_ehdr.
+
2018-10-19 Mark Wielaard <mark@klomp.org>
* disasm_cb.c (read_symtab_exec): Check sh_entsize is not zero.
diff --git a/libasm/asm_end.c b/libasm/asm_end.c
index 5aab8dfa..99e95017 100644
--- a/libasm/asm_end.c
+++ b/libasm/asm_end.c
@@ -460,7 +460,11 @@ binary_end (AsmCtx_t *ctx)
else
ehdr->e_shstrndx = elf_ndxscn (shstrscn);
- gelf_update_ehdr (ctx->out.elf, ehdr);
+ if (unlikely (gelf_update_ehdr (ctx->out.elf, ehdr) == 0))
+ {
+ __libasm_seterrno (ASM_E_LIBELF);
+ result = -1;
+ }
/* Write out the ELF file. */
if (unlikely (elf_update (ctx->out.elf, ELF_C_WRITE_MMAP) < 0))
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index aaa62960..bf1f4857 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,31 @@
+2019-08-12 Mark Wielaard <mark@klomp.org>
+
+ * libdw.map (ELFUTILS_0.177): Add new version of dwelf_elf_begin.
+
+2019-06-28 Mark Wielaard <mark@klomp.org>
+
+ * libdw.map (ELFUTILS_0.177): New section. Add
+ dwelf_elf_e_machine_string.
+
+2019-05-16 Mark Wielaard <mark@klomp.org>
+
+ * dwarf.h: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and
+ DW_AT_GNU_bias.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_siblingof.c (dwarf_siblingof): Don't initialize addr.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_getlocation.c (dwarf_getlocation_addr): Call
+ check_constant_offset with llbufs and listlens directly.
+
+2019-04-27 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_getlocation.c (store_implicit_value): Check dbg isn't
+ NULL.
+
2019-02-02 Mark Wielaard <mark@klomp.org>
* dwarf_nextcu.c (__libdw_next_unit): Define bytes_end.
diff --git a/libdw/dwarf.h b/libdw/dwarf.h
index dc597335..71ca2baa 100644
--- a/libdw/dwarf.h
+++ b/libdw/dwarf.h
@@ -351,6 +351,12 @@ enum
DW_AT_GNU_pubnames = 0x2134,
DW_AT_GNU_pubtypes = 0x2135,
+ /* https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator */
+ DW_AT_GNU_numerator = 0x2303,
+ DW_AT_GNU_denominator = 0x2304,
+ /* https://gcc.gnu.org/wiki/DW_AT_GNU_bias */
+ DW_AT_GNU_bias = 0x2305,
+
DW_AT_hi_user = 0x3fff
};
diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c
index fc59a2ab..6fb3ff3d 100644
--- a/libdw/dwarf_getlocation.c
+++ b/libdw/dwarf_getlocation.c
@@ -125,6 +125,8 @@ loc_compare (const void *p1, const void *p2)
static int
store_implicit_value (Dwarf *dbg, void **cache, Dwarf_Op *op)
{
+ if (dbg == NULL)
+ return -1;
struct loc_block_s *block = libdw_alloc (dbg, struct loc_block_s,
sizeof (struct loc_block_s), 1);
const unsigned char *data = (const unsigned char *) (uintptr_t) op->number2;
@@ -896,7 +898,7 @@ dwarf_getlocation_addr (Dwarf_Attribute *attr, Dwarf_Addr address,
}
}
- int result = check_constant_offset (attr, &llbufs[0], &listlens[0]);
+ int result = check_constant_offset (attr, llbufs, listlens);
if (result != 1)
return result ?: 1;
diff --git a/libdw/dwarf_siblingof.c b/libdw/dwarf_siblingof.c
index 613d2090..dbed9fa8 100644
--- a/libdw/dwarf_siblingof.c
+++ b/libdw/dwarf_siblingof.c
@@ -57,7 +57,7 @@ dwarf_siblingof (Dwarf_Die *die, Dwarf_Die *result)
/* Copy of the CU in the request. */
sibattr.cu = this_die.cu;
/* That's the address we start looking. */
- unsigned char *addr = this_die.addr;
+ unsigned char *addr;
/* Search for the beginning of the next die on this level. We
must not return the dies for children of the given die. */
diff --git a/libdw/libdw.map b/libdw/libdw.map
index 55482d58..decac05c 100644
--- a/libdw/libdw.map
+++ b/libdw/libdw.map
@@ -360,4 +360,13 @@ ELFUTILS_0.173 {
ELFUTILS_0.175 {
global:
dwelf_elf_begin;
-} ELFUTILS_0.173; \ No newline at end of file
+} ELFUTILS_0.173;
+
+ELFUTILS_0.177 {
+ global:
+ dwelf_elf_e_machine_string;
+ # Replaced ELFUTILS_0.175 versions. Both versions point to the
+ # same implementation, but users of the new symbol version can
+ # presume that NULL is only returned on error (otherwise ELF_K_NONE).
+ dwelf_elf_begin;
+} ELFUTILS_0.175;
diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog
index 88be3421..5b48ed8f 100644
--- a/libdwelf/ChangeLog
+++ b/libdwelf/ChangeLog
@@ -1,3 +1,15 @@
+2019-08-12 Mark Wielaard <mark@klomp.org>
+
+ * libdwelf.h (dwelf_elf_begin): Update documentation.
+ * dwelf_elf_begin.c (dwelf_elf_begin): Don't suppress ELF_K_NONE.
+ Mark old and new version.
+
+2019-06-28 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (libdwelf_a_SOURCES): Add dwelf_elf_e_machine_string.c.
+ * libdwelf.h (dwelf_elf_e_machine_string): Define new function.
+ * dwelf_elf_e_machine_string.c: New file.
+
2018-10-21 Mark Wielaard <mark@klomp.org>
* libdwelf.h (dwelf_elf_begin): Add function declaration.
diff --git a/libdwelf/Makefile.am b/libdwelf/Makefile.am
index da418e6e..dd7adf07 100644
--- a/libdwelf/Makefile.am
+++ b/libdwelf/Makefile.am
@@ -42,7 +42,8 @@ noinst_HEADERS = libdwelfP.h
libdwelf_a_CFLAGS = -fPIC -fvisibility=hidden $(AM_CFLAGS)
libdwelf_a_SOURCES = dwelf_elf_gnu_debuglink.c dwelf_dwarf_gnu_debugaltlink.c \
dwelf_elf_gnu_build_id.c dwelf_scn_gnu_compressed_size.c \
- dwelf_strtab.c dwelf_elf_begin.c
+ dwelf_strtab.c dwelf_elf_begin.c \
+ dwelf_elf_e_machine_string.c
libdwelf = $(libdw)
diff --git a/libdwelf/dwelf_elf_begin.c b/libdwelf/dwelf_elf_begin.c
index 79825338..c7d63a1c 100644
--- a/libdwelf/dwelf_elf_begin.c
+++ b/libdwelf/dwelf_elf_begin.c
@@ -41,13 +41,13 @@ dwelf_elf_begin (int fd)
{
Elf *elf = NULL;
Dwfl_Error e = __libdw_open_elf (fd, &elf);
- if (elf != NULL && elf_kind (elf) != ELF_K_NONE)
+ if (e == DWFL_E_NOERROR)
return elf;
- /* Elf wasn't usable. Make sure there is a proper elf error message. */
-
- if (elf != NULL)
- elf_end (elf);
+ /* Elf wasn't usable. Make sure there is a proper elf error
+ message. This is probably not the real error, because there is
+ no good way to propagate errnos or decompression errors, but
+ better than nothing. */
if (e != DWFL_E_LIBELF)
{
@@ -60,3 +60,5 @@ dwelf_elf_begin (int fd)
return NULL;
}
+OLD_VERSION (dwelf_elf_begin, ELFUTILS_0.175)
+NEW_VERSION (dwelf_elf_begin, ELFUTILS_0.177)
diff --git a/libdwelf/dwelf_elf_e_machine_string.c b/libdwelf/dwelf_elf_e_machine_string.c
new file mode 100644
index 00000000..de07b01e
--- /dev/null
+++ b/libdwelf/dwelf_elf_e_machine_string.c
@@ -0,0 +1,406 @@
+/* Returns a human readable description of an ELF header e_machine value.
+ Copyright (C) 2019 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libdwelf.h"
+
+
+const char *
+dwelf_elf_e_machine_string (int machine)
+{
+ switch (machine)
+ {
+ case EM_NONE:
+ return "None";
+ case EM_M32:
+ return "WE32100";
+ case EM_SPARC:
+ return "SPARC";
+ case EM_386:
+ return "Intel 80386";
+ case EM_68K:
+ return "M68K";
+ case EM_88K:
+ return "M88K";
+ case EM_IAMCU:
+ return "Intel MCU";
+ case EM_860:
+ return "Intel 80860";
+ case EM_MIPS:
+ return "MIPS R3000";
+ case EM_S370:
+ return "IBM System/370";
+ case EM_MIPS_RS3_LE:
+ return "MIPS R3000";
+ case EM_PARISC:
+ return "HPPA";
+ case EM_VPP500:
+ return "Fujitsu VPP500";
+ case EM_SPARC32PLUS:
+ return "SPARC v8+";
+ case EM_960:
+ return "Intel 80960";
+ case EM_PPC:
+ return "PowerPC";
+ case EM_PPC64:
+ return "PowerPC64";
+ case EM_S390:
+ return "IBM S/390";
+ case EM_SPU:
+ return "IBM SPU/SPC";
+ case EM_V800:
+ return "NEC V800";
+ case EM_FR20:
+ return "Fujitsu FR20";
+ case EM_RH32:
+ return "TRW RH-32";
+ case EM_RCE:
+ return "Motorola RCE";
+ case EM_ARM:
+ return "ARM";
+ case EM_FAKE_ALPHA:
+ return "Digital Alpha";
+ case EM_SH:
+ return "SH";
+ case EM_SPARCV9:
+ return "SPARC v9";
+ case EM_TRICORE:
+ return "Siemens Tricore";
+ case EM_ARC:
+ return "ARC";
+ case EM_H8_300:
+ return "H8/300";
+ case EM_H8_300H:
+ return "H8/300H";
+ case EM_H8S:
+ return "H8S";
+ case EM_H8_500:
+ return "H8/500";
+ case EM_IA_64:
+ return "Intel IA-64";
+ case EM_MIPS_X:
+ return "Stanford MIPS-X";
+ case EM_COLDFIRE:
+ return "Motorola Coldfire";
+ case EM_68HC12:
+ return "Motorola M68HC12";
+ case EM_MMA:
+ return "Fujitsu MMA Multimedia Accelerator";
+ case EM_PCP:
+ return "Siemens PCP";
+ case EM_NCPU:
+ return "Sony nCPU embeded RISC";
+ case EM_NDR1:
+ return "Denso NDR1 microprocessor";
+ case EM_STARCORE:
+ return "Motorola Star*Core processor";
+ case EM_ME16:
+ return "Toyota ME16 processor";
+ case EM_ST100:
+ return "STMicroelectronic ST100";
+ case EM_TINYJ:
+ return "Advanced Logic Corporation Tinyj";
+ case EM_X86_64:
+ return "AMD x86-64";
+ case EM_PDSP:
+ return "Sony DSP Processor";
+ case EM_PDP10:
+ return "Digital PDP-10";
+ case EM_PDP11:
+ return "Digital PDP-11";
+ case EM_FX66:
+ return "Siemens FX66 microcontroller";
+ case EM_ST9PLUS:
+ return "STMicroelectronics ST9+";
+ case EM_ST7:
+ return "STMicroelectronics ST7";
+ case EM_68HC16:
+ return "Motorola MC68HC16 microcontroller";
+ case EM_68HC11:
+ return "Motorola MC68HC11 microcontroller";
+ case EM_68HC08:
+ return "Motorola MC68HC08 microcontroller";
+ case EM_68HC05:
+ return "Motorola MC68HC05 microcontroller";
+ case EM_SVX:
+ return "Silicon Graphics SVx";
+ case EM_ST19:
+ return "STMicroelectronics ST19";
+ case EM_VAX:
+ return "Digital VAX";
+ case EM_CRIS:
+ return "Axis Communications 32-bit embedded processor";
+ case EM_JAVELIN:
+ return "Infineon Technologies 32-bit embedded processor";
+ case EM_FIREPATH:
+ return "Element 14 64-bit DSP Processor";
+ case EM_ZSP:
+ return "LSI Logic 16-bit DSP Processor";
+ case EM_MMIX:
+ return "Donald Knuth's educational 64-bit processor";
+ case EM_HUANY:
+ return "Harvard University machine-independent object";
+ case EM_PRISM:
+ return "SiTera Prism";
+ case EM_AVR:
+ return "Atmel AVR 8-bit microcontroller";
+ case EM_FR30:
+ return "Fujitsu FR30";
+ case EM_D10V:
+ return "Mitsubishi D10V";
+ case EM_D30V:
+ return "Mitsubishi D30V";
+ case EM_V850:
+ return "NEC v850";
+ case EM_M32R:
+ return "Mitsubishi M32R";
+ case EM_MN10300:
+ return "Matsushita MN10300";
+ case EM_MN10200:
+ return "Matsushita MN10200";
+ case EM_PJ:
+ return "picoJava";
+ case EM_OPENRISC:
+ return "OpenRISC";
+ case EM_ARC_COMPACT:
+ return "ARC International ARCompact";
+ case EM_XTENSA:
+ return "Tensilica Xtensa Architecture";
+ case EM_VIDEOCORE:
+ return "Alphamosaic VideoCore";
+ case EM_TMM_GPP:
+ return "Thompson Multimedia General Purpose Processor";
+ case EM_NS32K:
+ return "National Semiconductor 32000";
+ case EM_TPC:
+ return "Tenor Network TPC";
+ case EM_SNP1K:
+ return "Trebia SNP 1000";
+ case EM_ST200:
+ return "STMicroelectronics ST200";
+ case EM_IP2K:
+ return "Ubicom IP2xxx";
+ case EM_MAX:
+ return "MAX processor";
+ case EM_CR:
+ return "National Semiconductor CompactRISC";
+ case EM_F2MC16:
+ return "Fujitsu F2MC16";
+ case EM_MSP430:
+ return "Texas Instruments msp430";
+ case EM_BLACKFIN:
+ return "Analog Devices Blackfin DSP";
+ case EM_SE_C33:
+ return "Seiko Epson S1C33";
+ case EM_SEP:
+ return "Sharp embedded microprocessor";
+ case EM_ARCA:
+ return "Arca RISC";
+ case EM_UNICORE:
+ return "Unicore";
+ case EM_EXCESS:
+ return "eXcess configurable CPU";
+ case EM_DXP:
+ return "Icera Semiconductor Deep Execution Processor";
+ case EM_ALTERA_NIOS2:
+ return "Altera Nios II";
+ case EM_CRX:
+ return "National Semiconductor CompactRISC CRX";
+ case EM_XGATE:
+ return "Motorola XGATE";
+ case EM_C166:
+ return "Infineon C16x/XC16x";
+ case EM_M16C:
+ return "Renesas M16C";
+ case EM_DSPIC30F:
+ return "Microchip Technology dsPIC30F";
+ case EM_CE:
+ return "Freescale Communication Engine RISC";
+ case EM_M32C:
+ return "Renesas M32C";
+ case EM_TSK3000:
+ return "Altium TSK3000";
+ case EM_RS08:
+ return "Freescale RS08";
+ case EM_SHARC:
+ return "Analog Devices SHARC";
+ case EM_ECOG2:
+ return "Cyan Technology eCOG2";
+ case EM_SCORE7:
+ return "Sunplus S+core7 RISC";
+ case EM_DSP24:
+ return "New Japan Radio (NJR) 24-bit DSP";
+ case EM_VIDEOCORE3:
+ return "Broadcom VideoCore III";
+ case EM_LATTICEMICO32:
+ return "RISC for Lattice FPGA";
+ case EM_SE_C17:
+ return "Seiko Epson C17";
+ case EM_TI_C6000:
+ return "Texas Instruments TMS320C6000 DSP";
+ case EM_TI_C2000:
+ return "Texas Instruments TMS320C2000 DSP";
+ case EM_TI_C5500:
+ return "Texas Instruments TMS320C55x DSP";
+ case EM_TI_ARP32:
+ return "Texas Instruments Application Specific RISC";
+ case EM_TI_PRU:
+ return "Texas Instruments Programmable Realtime Unit";
+ case EM_MMDSP_PLUS:
+ return "STMicroelectronics 64bit VLIW DSP";
+ case EM_CYPRESS_M8C:
+ return "Cypress M8C";
+ case EM_R32C:
+ return "Renesas R32C";
+ case EM_TRIMEDIA:
+ return "NXP Semiconductors TriMedia";
+ case EM_QDSP6:
+ return "QUALCOMM DSP6";
+ case EM_8051:
+ return "Intel 8051 and variants";
+ case EM_STXP7X:
+ return "STMicroelectronics STxP7x";
+ case EM_NDS32:
+ return "Andes Technology compact code size embeded RISC";
+ case EM_ECOG1X:
+ return "Cyan Technology eCOG1X";
+ case EM_MAXQ30:
+ return "Dallas Semicondutor MAXQ30";
+ case EM_XIMO16:
+ return "New Japan Radio (NJR) 16-bit DSP";
+ case EM_MANIK:
+ return "M2000 Reconfigurable RISC";
+ case EM_CRAYNV2:
+ return "Cray NV2 vector architecture";
+ case EM_RX:
+ return "Renesas RX";
+ case EM_METAG:
+ return "Imagination Technologies META";
+ case EM_MCST_ELBRUS:
+ return "MCST Elbrus";
+ case EM_ECOG16:
+ return "Cyan Technology eCOG16";
+ case EM_CR16:
+ return "National Semiconductor CompactRISC";
+ case EM_ETPU:
+ return "Freescale Extended Time Processing Unit";
+ case EM_SLE9X:
+ return "Infineon Technologies SLE9X";
+ case EM_L10M:
+ return "Intel L10M";
+ case EM_K10M:
+ return "Intel K10M";
+ case EM_AARCH64:
+ return "AARCH64";
+ case EM_AVR32:
+ return "Amtel AVR32";
+ case EM_STM8:
+ return "STMicroelectronics STM8";
+ case EM_TILE64:
+ return "Tilera TILE64";
+ case EM_TILEPRO:
+ return "Tilera TILEPro";
+ case EM_MICROBLAZE:
+ return "Xilinx MicroBlaze";
+ case EM_CUDA:
+ return "NVIDIA CUDA";
+ case EM_TILEGX:
+ return "Tilera TILE-Gx";
+ case EM_CLOUDSHIELD:
+ return "CloudShield";
+ case EM_COREA_1ST:
+ return "KIPO-KAIST Core-A 1st gen";
+ case EM_COREA_2ND:
+ return "KIPO-KAIST Core-A 2nd gen";
+ case EM_ARC_COMPACT2:
+ return "Synopsys ARCompact V2";
+ case EM_OPEN8:
+ return "Open8 RISC";
+ case EM_RL78:
+ return "Renesas RL78";
+ case EM_VIDEOCORE5:
+ return "Broadcom VideoCore V";
+ case EM_78KOR:
+ return "Renesas 78KOR";
+ case EM_56800EX:
+ return "Freescale 56800EX DSC";
+ case EM_BA1:
+ return "Beyond BA1";
+ case EM_BA2:
+ return "Beyond BA2";
+ case EM_XCORE:
+ return "XMOS xCORE";
+ case EM_MCHP_PIC:
+ return "Microchip 8-bit PIC";
+ case EM_KM32:
+ return "KM211 KM32";
+ case EM_KMX32:
+ return "KM211 KMX32";
+ case EM_EMX16:
+ return "KM211 KMX16";
+ case EM_EMX8:
+ return "KM211 KMX8";
+ case EM_KVARC:
+ return "KM211 KVARC";
+ case EM_CDP:
+ return "Paneve CDP";
+ case EM_COGE:
+ return "Cognitive Smart Memory Processor";
+ case EM_COOL:
+ return "Bluechip CoolEngine";
+ case EM_NORC:
+ return "Nanoradio Optimized RISC";
+ case EM_CSR_KALIMBA:
+ return "CSR Kalimba";
+ case EM_Z80:
+ return "Zilog Z80";
+ case EM_VISIUM:
+ return "CDS VISIUMcore";
+ case EM_FT32:
+ return "FTDI Chip FT32";
+ case EM_MOXIE:
+ return "Moxie";
+ case EM_AMDGPU:
+ return "AMD GPU";
+ case EM_RISCV:
+ return "RISC-V";
+ case EM_BPF:
+ return "BPF";
+ case EM_CSKY:
+ return "C-SKY";
+
+ case EM_ALPHA:
+ return "Alpha";
+
+ default:
+ return NULL;
+ }
+}
diff --git a/libdwelf/libdwelf.h b/libdwelf/libdwelf.h
index 6d491847..dbb8f08c 100644
--- a/libdwelf/libdwelf.h
+++ b/libdwelf/libdwelf.h
@@ -128,11 +128,18 @@ extern void dwelf_strtab_free (Dwelf_Strtab *st)
/* Creates a read-only Elf handle from the given file handle. The
file may be compressed and/or contain a linux kernel image header,
in which case it is eagerly decompressed in full and the Elf handle
- is created as if created with elf_memory (). On error NULL is
- returned. The Elf handle should be closed with elf_end (). The
- file handle will not be closed. Does not return ELF_K_NONE handles. */
+ is created as if created with elf_memory (). On decompression or
+ file errors NULL is returned (and elf_errno will be set). If there
+ was no error, but the file is not an ELF file, then an ELF_K_NONE
+ Elf handle is returned (just like with elf_begin). The Elf handle
+ should be closed with elf_end (). The file handle will not be
+ closed. */
extern Elf *dwelf_elf_begin (int fd);
+/* Returns a human readable string for the given ELF header e_machine
+ value, or NULL if the given number isn't currently known. */
+extern const char *dwelf_elf_e_machine_string (int machine);
+
#ifdef __cplusplus
}
#endif
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 04cadb43..04a39637 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,36 @@
+2019-08-12 Mark Wielaard <mark@klomp.org>
+
+ * gzip.c (open_stream): Return DWFL_E_ERRNO on bad file operation.
+ * open.c (libdw_open_elf): New argument bad_elf_ok. Check it and
+ return DWFL_E_NOERROR in case it is set and error was DWFL_E_BADELF.
+ (__libdw_open_file): Call libdw_open_elf with bad_elf_ok false.
+ (__libdw_open_elf): Call libdw_open_elf with bad_elf_ok true.
+
+2019-08-05 Omar Sandoval <osandov@fb.com>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Assign
+ mod->main.fd.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * frame_unwind.c (expr_eval): Make sure we left shift a unsigned
+ 64bit value.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * cu.c (addrarange): Only call realloc when naranges is not zero.
+
+2019-03-27 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check
+ ph_buffer_size vs xlatefrom.d_size after read_portion call.
+
+2019-02-24 Mark Wielaard <mark@klomp.org>
+
+ * linux-kernel-modules.c (intuit_kernel_bounds): Init *notes before
+ fopen.
+ (dwfl_linux_kernel_report_kernel): Remove fake note init empty asm.
+
2019-01-25 Yonghong Song <yhs@fb.com>
* linux-proc-maps.c (proc_maps_report): Use PRIu64, not PRIi64, to
diff --git a/libdwfl/cu.c b/libdwfl/cu.c
index 94bfad8d..4de66248 100644
--- a/libdwfl/cu.c
+++ b/libdwfl/cu.c
@@ -83,8 +83,11 @@ addrarange (Dwfl_Module *mod, Dwarf_Addr addr, struct dwfl_arange **arange)
/* Store the final array, which is probably much smaller than before. */
mod->naranges = naranges;
- mod->aranges = (realloc (aranges, naranges * sizeof aranges[0])
- ?: aranges);
+ if (naranges > 0)
+ mod->aranges = (realloc (aranges, naranges * sizeof aranges[0])
+ ?: aranges);
+ else if (aranges != NULL)
+ free (aranges);
mod->lazycu += naranges;
}
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index f6ad39b3..430e13d5 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -412,6 +412,12 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
start + phoff, xlatefrom.d_size))
return finish ();
+ /* ph_buffer_size will be zero if we got everything from the initial
+ buffer, otherwise it will be the size of the new buffer that
+ could be read. */
+ if (ph_buffer_size != 0)
+ xlatefrom.d_size = ph_buffer_size;
+
xlatefrom.d_buf = ph_buffer;
bool class32 = ei_class == ELFCLASS32;
@@ -961,6 +967,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
{
/* Install the file in the module. */
mod->main.elf = elf;
+ mod->main.fd = fd;
elf = NULL;
fd = -1;
mod->main.vaddr = module_start - bias;
diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c
index 8da691ee..d7dfa5a9 100644
--- a/libdwfl/frame_unwind.c
+++ b/libdwfl/frame_unwind.c
@@ -336,7 +336,7 @@ expr_eval (Dwfl_Frame *state, Dwarf_Frame *frame, const Dwarf_Op *ops,
val1 >>= (addr_bytes - op->number) * 8;
#else
if (op->number < 8)
- val1 &= (1 << (op->number * 8)) - 1;
+ val1 &= (1ULL << (op->number * 8)) - 1;
#endif
}
if (! push (val1))
diff --git a/libdwfl/gzip.c b/libdwfl/gzip.c
index c2c13baf..043d0b6e 100644
--- a/libdwfl/gzip.c
+++ b/libdwfl/gzip.c
@@ -139,14 +139,14 @@ open_stream (int fd, off_t start_offset, struct unzip_state *state)
{
int d = dup (fd);
if (unlikely (d < 0))
- return DWFL_E_BADELF;
+ return DWFL_E_ERRNO;
if (start_offset != 0)
{
off_t off = lseek (d, start_offset, SEEK_SET);
if (off != start_offset)
{
close (d);
- return DWFL_E_BADELF;
+ return DWFL_E_ERRNO;
}
}
state->zf = gzdopen (d, "r");
@@ -288,6 +288,7 @@ unzip (int fd, off_t start_offset,
if (result == DWFL_E_NOERROR && gzdirect (state.zf))
{
gzclose (state.zf);
+ /* Not a compressed stream after all. */
return fail (&state, DWFL_E_BADELF);
}
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
index 360e4ee9..d46ab5aa 100644
--- a/libdwfl/linux-kernel-modules.c
+++ b/libdwfl/linux-kernel-modules.c
@@ -493,14 +493,14 @@ intuit_kernel_bounds (Dwarf_Addr *start, Dwarf_Addr *end, Dwarf_Addr *notes)
{
struct read_address_state state = { NULL, NULL, 0, 0, NULL, NULL };
+ *notes = 0;
+
state.f = fopen (KSYMSFILE, "r");
if (state.f == NULL)
return errno;
(void) __fsetlocking (state.f, FSETLOCKING_BYCALLER);
- *notes = 0;
-
int result;
do
result = read_address (&state, start) ? 0 : -1;
@@ -695,9 +695,6 @@ dwfl_linux_kernel_report_kernel (Dwfl *dwfl)
/* Try to figure out the bounds of the kernel image without
looking for any vmlinux file. */
Dwarf_Addr notes;
- /* The compiler cannot deduce that if intuit_kernel_bounds returns
- zero NOTES will be initialized. Fake the initialization. */
- asm ("" : "=m" (notes));
int result = intuit_kernel_bounds (&start, &end, &notes);
if (result == 0)
{
diff --git a/libdwfl/open.c b/libdwfl/open.c
index 74367359..35fc5283 100644
--- a/libdwfl/open.c
+++ b/libdwfl/open.c
@@ -118,7 +118,7 @@ what_kind (int fd, Elf **elfp, Elf_Kind *kind, bool *may_close_fd)
static Dwfl_Error
libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok,
- bool never_close_fd)
+ bool never_close_fd, bool bad_elf_ok)
{
bool may_close_fd = false;
@@ -164,6 +164,10 @@ libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok,
&& !(archive_ok && kind == ELF_K_AR))
error = DWFL_E_BADELF;
+ /* This basically means, we keep a ELF_K_NONE Elf handle and return it. */
+ if (bad_elf_ok && error == DWFL_E_BADELF)
+ error = DWFL_E_NOERROR;
+
if (error != DWFL_E_NOERROR)
{
elf_end (elf);
@@ -184,11 +188,11 @@ libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok,
Dwfl_Error internal_function
__libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok)
{
- return libdw_open_elf (fdp, elfp, close_on_fail, archive_ok, false);
+ return libdw_open_elf (fdp, elfp, close_on_fail, archive_ok, false, false);
}
Dwfl_Error internal_function
__libdw_open_elf (int fd, Elf **elfp)
{
- return libdw_open_elf (&fd, elfp, false, true, true);
+ return libdw_open_elf (&fd, elfp, false, true, true, true);
}
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index acc68919..bb91c152 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,28 @@
+2019-04-29 Mao Han <han_mao@c-sky.com>
+
+ * eblopenbackend.c: Add C-SKY.
+
+2019-06-28 Mark Wielaard <mark@klomp.org>
+
+ * eblopenbackend.c (try_dlopen): Remove result->name check.
+ (openbackend): Remove result->name assignment.
+ (struct ebl): Remove name.
+
+2019-05-30 Mark Wielaard <mark@klomp.org>
+
+ * eblopenbackend.c (try_dlopen): New function extracted from
+ openbackend.
+ (openbackend): Replace ORIGINDIR define with BINORIGINDIR and
+ LIBORIGINDIR defines. Use tryopen to open backend in bin origin
+ path, lib origin path and without an explicit path.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * eblsymbolbindingname.c (ebl_symbol_binding_name): Check ebl is
+ not NULL for STB_GNU_UNIQUE.
+ * eblsymboltypename.c (ebl_symbol_type_name): Check ebl is not
+ NULL for STT_GNU_IFUNC.
+
2019-01-29 Mark Wielaard <mark@klomp.org>
* eblobjnote.c (ebl_object_note): Check pr_datasz padding doesn't
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index 74251eaa..9431897b 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -143,6 +143,7 @@ static const struct
{ bpf_init, "elf_bpf", "bpf", 3, EM_BPF, 0, 0 },
{ NULL, "elf_riscv", "riscv", 5, EM_RISCV, ELFCLASS64, ELFDATA2LSB },
{ NULL, "elf_riscv", "riscv", 5, EM_RISCV, ELFCLASS32, ELFDATA2LSB },
+ { NULL, "elf_csky", "csky", 4, EM_CSKY, ELFCLASS32, ELFDATA2LSB },
};
#define nmachines (sizeof (machines) / sizeof (machines[0]))
@@ -259,7 +260,6 @@ fill_defaults (Ebl *result)
result->sysvhash_entrysize = sizeof (Elf32_Word);
}
-
/* Find an appropriate backend for the file associated with ELF. */
static Ebl *
openbackend (Elf *elf, const char *emulation, GElf_Half machine)
@@ -324,7 +324,16 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine)
#ifndef LIBEBL_SUBDIR
# define LIBEBL_SUBDIR PACKAGE
#endif
-#define ORIGINDIR "$ORIGIN/../$LIB/" LIBEBL_SUBDIR "/"
+
+/* This works if libebl has been staticly linked into a binary.
+ It might also work for shared libraries when installed in
+ ${prefix}/lib/ or ${prefix}/lib64/, but not for multiarch
+ library installs like ${prefix}/lib/i386-linux-gnu/ */
+#define BINORIGINDIR "$ORIGIN/../$LIB/" LIBEBL_SUBDIR "/"
+
+/* This works if libebl has been linked into a shared library,
+ just look in the subdir. */
+#define LIBORIGINDIR "$ORIGIN/" LIBEBL_SUBDIR "/"
ebl_bhinit_t initp = machines[cnt].initptr;
if (1)
@@ -340,7 +349,6 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine)
result->elf = elf;
/* A few entries are mandatory. */
- assert (result->name != NULL);
assert (result->destr != NULL);
return result;
@@ -351,7 +359,6 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine)
Return that information. */
result->dlhandle = NULL;
result->elf = elf;
- result->name = machines[cnt].prefix;
fill_defaults (result);
return result;
@@ -361,7 +368,6 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine)
result->dlhandle = NULL;
result->elf = elf;
result->emulation = "<unknown>";
- result->name = "<unknown>";
fill_defaults (result);
return result;
diff --git a/libebl/eblsymbolbindingname.c b/libebl/eblsymbolbindingname.c
index 97974253..75565fe8 100644
--- a/libebl/eblsymbolbindingname.c
+++ b/libebl/eblsymbolbindingname.c
@@ -58,6 +58,7 @@ ebl_symbol_binding_name (Ebl *ebl, int binding, char *buf, size_t len)
if (binding >= STB_LOPROC && binding <= STB_HIPROC)
snprintf (buf, len, "LOPROC+%d", binding - STB_LOPROC);
else if (binding == STB_GNU_UNIQUE
+ && ebl != NULL
&& (ident = elf_getident (ebl->elf, NULL)) != NULL
&& ident[EI_OSABI] == ELFOSABI_LINUX)
return "GNU_UNIQUE";
diff --git a/libebl/eblsymboltypename.c b/libebl/eblsymboltypename.c
index 09fa8748..53b145a8 100644
--- a/libebl/eblsymboltypename.c
+++ b/libebl/eblsymboltypename.c
@@ -64,6 +64,7 @@ ebl_symbol_type_name (Ebl *ebl, int symbol, char *buf, size_t len)
if (symbol >= STT_LOPROC && symbol <= STT_HIPROC)
snprintf (buf, len, "LOPROC+%d", symbol - STT_LOPROC);
else if (symbol == STT_GNU_IFUNC
+ && ebl != NULL
&& (ident = elf_getident (ebl->elf, NULL)) != NULL
&& ident[EI_OSABI] == ELFOSABI_LINUX)
return "GNU_IFUNC";
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
index 5b339b31..a5869685 100644
--- a/libebl/libeblP.h
+++ b/libebl/libeblP.h
@@ -38,9 +38,6 @@
/* Backend handle. */
struct ebl
{
- /* Machine name. */
- const char *name;
-
/* Emulation name. */
const char *emulation;
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index d8e8fdc8..dde6c81d 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,131 @@
+2019-06-18 Mark Wielaard <mark@klomp.org>
+
+ * common.h (allocate_elf): Use int64_t instead of off_t for offset.
+ * elf32_newphdr.c (newphdr): Document why Elf32/64_Word is correct.
+ * elf32_updatefile.c (fill): Use int64_t instead of off_t for pos.
+ (updatefile): Define last_offset, shdr_offset and scn_start as
+ int64_t instead of off_t.
+ * elf32_updatenull.c: Define Elf32_SizeWord and Elf64_SizeWord.
+ (updatenull_wrlock): Return int64_t instead of off_t. Define size,
+ sh_entsize, sh_align and sh_size as SizeWords. Define offset as
+ int64_t. Cast data->d_off to SizeWord instead of GElf_Word. Drop
+ size GElf_Word cast. Cast offset to SizeWord instead of GElf_Word
+ when comparing with sh_size.
+ * elf_begin.c (get_shnum): Define offset as int64_t instead of
+ off_t. Document why use GElf_Word is correct.
+ (file_read_elf): Define offset as int64_t instead of off_t.
+ (__libelf_read_mmaped_file): Likewise.
+ (read_unmmaped_file): Likewise.
+ (read_file): Likewise.
+ * elf_getaroff.c (elf_getaroff): Return int64_t.
+ * elf_getbase.c (elf_getbase): Likewise.
+ * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Define offset as
+ int64_t instead of off_t.
+ * elf_update.c (write_file): Return int64_t instead of off_t,
+ define size as int64_t instead of off_t.
+ (elf_update): Likewise.
+ * libelfP.h (struct Elf): Define start_offset, sizestr_offset and
+ offset as int64_t.
+ (__libelf_read_mmaped_file): Define offset as int64_t.
+ (__elf32_updatenull_wrlock): Return int64_t.
+ (__elf64_updatenull_wrlock): Return int64_t.
+
+2019-05-12 Mark Wielaard <mark@klomp.org>
+
+ * elf32_updatenull.c (updatenull_wrlock): Mark shdr_flags dirty if
+ either offset or size changed.
+
+2019-05-01 Mark Wielaard <mark@klomp.org>
+
+ * gelf_getnote.c (gelf_getnote): Check n_namesz doesn't overflow
+ offset.
+
+2019-04-30 Mark Wielaard <mark@klomp.org>
+
+ * note_xlate.h (elf_cvt_note): Indicate we only translated the note
+ header if we ran out of data by updating len, src and dest.
+
+2019-04-01 Mao Han <han_mao@c-sky.com>
+
+ * elf.h: Update from glibc.
+
+2019-03-07 Mark Wielaard <mark@klomp.org>
+
+ * elf32_updatefile.c (updatemmap): Use posix_memalign instead of
+ aligned_alloc.
+
+2019-03-06 Mark Wielaard <mark@klomp.org>
+
+ * elf32_updatefile.c (updatemmap): Free scns before returning
+ allocation failure.
+
+2019-02-24 Mark Wielaard <mark@klomp.org>
+
+ * gelf_xlate.c (__elf_xfctstof): Remove alias.
+ * libelfP.h (__elf_xfctstof): Remove definition.
+
+2019-02-24 Mark Wielaard <mark@klomp.org>
+
+ * elf32_fsize.c (local_strong_alias): Remove definition.
+ (msize): Remove alias.
+ * libelfP.h (__elf32_msize): Remove definition.
+ (__elf64_msize): Likewise.
+
+2019-02-21 Mark Wielaard <mark@klomp.org>
+
+ * common.h (determine_kind): Only accept EV_CURRENT.
+ * elf32_fsize.c (fsize): Just check version is EV_CURRENT.
+ Use __libelf_type_size without version dimension.
+ * elf32_updatefile.c (updatemmap): Define fctp from __elf_xfctstom
+ without version dimension.
+ (updatefile): Likewise.
+ * elf32_updatenull.c (default_ehdr): Check e_version is EV_CURRENT.
+ (updatenull_wrlock): Check d_version is EV_CURRENT.
+ (elf32_xlatetof): Likewise. And get recsize without version
+ dimension from __elf_xfctstom.
+ (elf32_xlatetom): Likewise.
+ * elf_begin.c (elf_begin): Check __libelf_version is EV_CURRENT.
+ * elf_compress.c (__libelf_reset_rawdata): Set d_version to
+ EV_CURRENT.
+ * elf_getdata.c (shtype_map): Remove version dimension.
+ (__libelf_type_aligns): Likewise.
+ (__libelf_data_type): Use shtype_map without version dimension.
+ (convert_data): Remove unused version argument. Get fp from
+ __elf_xfctstom without version dimensions.
+ (__libelf_set_data_list_rdlock): Call convert_data without version.
+ * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Call __elfcfctstom
+ conversion function without version dimensions. Set d_version to
+ EV_CURRENT.
+ * elf_newdata.c (elf_newdata): Set d_version to EV_CURRENT.
+ * elf_version.c (__libelf_version_initialized): Removed.
+ (__libelf_version): Initialized to EV_NONE.
+ (elf_version): Always return EV_CURRENT for EV_NONE version.
+ Only accept (and return) EV_CURRENT as version.
+ * gelf_fsize.c (__libelf_type_sizes): Remove version dimension.
+ (gelf_fsize): Only accept EV_CURRENT as version.
+ Use __libelf_type_sizes without version dimension.
+ * gelf_xlate.c (__elf_xftstom): Remove version dimensions.
+ * libelfP.h (__elf_xfctstom): Defined without version dimensions.
+ (__elf_xfctstof): Likewise.
+ (__libelf_type_sizes): Define without version dimension.
+ (elf_typesize): Define using __libelf_type_sizes without version
+ dimension.
+ (__libelf_version_initialized): Remove definition.
+ (__libelf_version): Add definition.
+ (LIBELF_EV_IDX): Removed define.
+ (__libelf_type_aligns): Remove version dimension.
+ * nlist.c (nlist): Call elf_version unconditionally.
+
+2019-02-19 Mark Wielaard <mark@klomp.org>
+
+ * elf_compress.c (do_deflate_cleanup): Remove ei_data argument,
+ check cdatap is not NULL before calling free.
+ (deflate_cleanup): Add cdata as argument.
+ (__libelf_compress): Also check whether the d_size is not zero
+ before converting data. Call deflate_cleanup with an extra
+ argument depending on whether there is converted data to free.
+ Always allocate allocate at least one byte for buf_out.
+
2019-02-14 Mark Wielaard <mark@klomp.org>
* elf_begin.c (read_long_names): Make sure ar_size is properly
diff --git a/libelf/common.h b/libelf/common.h
index 744f1bb8..b0175f60 100644
--- a/libelf/common.h
+++ b/libelf/common.h
@@ -56,7 +56,7 @@ determine_kind (void *buf, size_t len)
if (eclass > ELFCLASSNONE && eclass < ELFCLASSNUM
&& data > ELFDATANONE && data < ELFDATANUM
- && version > EV_NONE && version < EV_NUM)
+ && version == EV_CURRENT)
return ELF_K_ELF;
}
@@ -68,7 +68,7 @@ determine_kind (void *buf, size_t len)
/* Allocate an Elf descriptor and fill in the generic information. */
static inline Elf *
__attribute__ ((unused))
-allocate_elf (int fildes, void *map_address, off_t offset, size_t maxsize,
+allocate_elf (int fildes, void *map_address, int64_t offset, size_t maxsize,
Elf_Cmd cmd, Elf *parent, Elf_Kind kind, size_t extra)
{
Elf *result = (Elf *) calloc (1, sizeof (Elf) + extra);
diff --git a/libelf/elf.h b/libelf/elf.h
index 75043bcb..01648bdb 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -1,5 +1,5 @@
/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -360,8 +360,9 @@ typedef struct
#define EM_RISCV 243 /* RISC-V */
#define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */
+#define EM_CSKY 252 /* C-SKY */
-#define EM_NUM 248
+#define EM_NUM 253
/* Old spellings/synonyms. */
@@ -808,6 +809,9 @@ typedef struct
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension
registers */
+#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */
+#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */
+#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */
/* Legal values for the note segment descriptor types for object files. */
@@ -1214,6 +1218,9 @@ typedef struct
#define AT_L3_CACHESIZE 46
#define AT_L3_CACHEGEOMETRY 47
+#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery
+ (AArch64). */
+
/* Note section contents. Each entry in the note section begins with
a header of a fixed form. */
@@ -3015,6 +3022,81 @@ enum
/* Keep this the last entry. */
#define R_ARM_NUM 256
+/* C-SKY */
+#define R_CKCORE_NONE 0 /* no reloc */
+#define R_CKCORE_ADDR32 1 /* direct 32 bit (S + A) */
+#define R_CKCORE_PCRELIMM8BY4 2 /* disp ((S + A - P) >> 2) & 0xff */
+#define R_CKCORE_PCRELIMM11BY2 3 /* disp ((S + A - P) >> 1) & 0x7ff */
+#define R_CKCORE_PCREL32 5 /* 32-bit rel (S + A - P) */
+#define R_CKCORE_PCRELJSR_IMM11BY2 6 /* disp ((S + A - P) >>1) & 0x7ff */
+#define R_CKCORE_RELATIVE 9 /* 32 bit adjust program base(B + A)*/
+#define R_CKCORE_COPY 10 /* 32 bit adjust by program base */
+#define R_CKCORE_GLOB_DAT 11 /* off between got and sym (S) */
+#define R_CKCORE_JUMP_SLOT 12 /* PLT entry (S) */
+#define R_CKCORE_GOTOFF 13 /* offset to GOT (S + A - GOT) */
+#define R_CKCORE_GOTPC 14 /* PC offset to GOT (GOT + A - P) */
+#define R_CKCORE_GOT32 15 /* 32 bit GOT entry (G) */
+#define R_CKCORE_PLT32 16 /* 32 bit PLT entry (G) */
+#define R_CKCORE_ADDRGOT 17 /* GOT entry in GLOB_DAT (GOT + G) */
+#define R_CKCORE_ADDRPLT 18 /* PLT entry in GLOB_DAT (GOT + G) */
+#define R_CKCORE_PCREL_IMM26BY2 19 /* ((S + A - P) >> 1) & 0x3ffffff */
+#define R_CKCORE_PCREL_IMM16BY2 20 /* disp ((S + A - P) >> 1) & 0xffff */
+#define R_CKCORE_PCREL_IMM16BY4 21 /* disp ((S + A - P) >> 2) & 0xffff */
+#define R_CKCORE_PCREL_IMM10BY2 22 /* disp ((S + A - P) >> 1) & 0x3ff */
+#define R_CKCORE_PCREL_IMM10BY4 23 /* disp ((S + A - P) >> 2) & 0x3ff */
+#define R_CKCORE_ADDR_HI16 24 /* high & low 16 bit ADDR */
+ /* ((S + A) >> 16) & 0xffff */
+#define R_CKCORE_ADDR_LO16 25 /* (S + A) & 0xffff */
+#define R_CKCORE_GOTPC_HI16 26 /* high & low 16 bit GOTPC */
+ /* ((GOT + A - P) >> 16) & 0xffff */
+#define R_CKCORE_GOTPC_LO16 27 /* (GOT + A - P) & 0xffff */
+#define R_CKCORE_GOTOFF_HI16 28 /* high & low 16 bit GOTOFF */
+ /* ((S + A - GOT) >> 16) & 0xffff */
+#define R_CKCORE_GOTOFF_LO16 29 /* (S + A - GOT) & 0xffff */
+#define R_CKCORE_GOT12 30 /* 12 bit disp GOT entry (G) */
+#define R_CKCORE_GOT_HI16 31 /* high & low 16 bit GOT */
+ /* (G >> 16) & 0xffff */
+#define R_CKCORE_GOT_LO16 32 /* (G & 0xffff) */
+#define R_CKCORE_PLT12 33 /* 12 bit disp PLT entry (G) */
+#define R_CKCORE_PLT_HI16 34 /* high & low 16 bit PLT */
+ /* (G >> 16) & 0xffff */
+#define R_CKCORE_PLT_LO16 35 /* G & 0xffff */
+#define R_CKCORE_ADDRGOT_HI16 36 /* high & low 16 bit ADDRGOT */
+ /* (GOT + G * 4) & 0xffff */
+#define R_CKCORE_ADDRGOT_LO16 37 /* (GOT + G * 4) & 0xffff */
+#define R_CKCORE_ADDRPLT_HI16 38 /* high & low 16 bit ADDRPLT */
+ /* ((GOT + G * 4) >> 16) & 0xFFFF */
+#define R_CKCORE_ADDRPLT_LO16 39 /* (GOT+G*4) & 0xffff */
+#define R_CKCORE_PCREL_JSR_IMM26BY2 40 /* disp ((S+A-P) >>1) & x3ffffff */
+#define R_CKCORE_TOFFSET_LO16 41 /* (S+A-BTEXT) & 0xffff */
+#define R_CKCORE_DOFFSET_LO16 42 /* (S+A-BTEXT) & 0xffff */
+#define R_CKCORE_PCREL_IMM18BY2 43 /* disp ((S+A-P) >>1) & 0x3ffff */
+#define R_CKCORE_DOFFSET_IMM18 44 /* disp (S+A-BDATA) & 0x3ffff */
+#define R_CKCORE_DOFFSET_IMM18BY2 45 /* disp ((S+A-BDATA)>>1) & 0x3ffff */
+#define R_CKCORE_DOFFSET_IMM18BY4 46 /* disp ((S+A-BDATA)>>2) & 0x3ffff */
+#define R_CKCORE_GOT_IMM18BY4 48 /* disp (G >> 2) */
+#define R_CKCORE_PLT_IMM18BY4 49 /* disp (G >> 2) */
+#define R_CKCORE_PCREL_IMM7BY4 50 /* disp ((S+A-P) >>2) & 0x7f */
+#define R_CKCORE_TLS_LE32 51 /* 32 bit offset to TLS block */
+#define R_CKCORE_TLS_IE32 52
+#define R_CKCORE_TLS_GD32 53
+#define R_CKCORE_TLS_LDM32 54
+#define R_CKCORE_TLS_LDO32 55
+#define R_CKCORE_TLS_DTPMOD32 56
+#define R_CKCORE_TLS_DTPOFF32 57
+#define R_CKCORE_TLS_TPOFF32 58
+
+/* C-SKY elf header definition. */
+#define EF_CSKY_ABIMASK 0XF0000000
+#define EF_CSKY_OTHER 0X0FFF0000
+#define EF_CSKY_PROCESSOR 0X0000FFFF
+
+#define EF_CSKY_ABIV1 0X10000000
+#define EF_CSKY_ABIV2 0X20000000
+
+/* C-SKY attributes section. */
+#define SHT_CSKY_ATTRIBUTES (SHT_LOPROC + 1)
+
/* IA-64 specific declarations. */
/* Processor specific flags for the Ehdr e_flags field. */
@@ -3915,6 +3997,16 @@ enum
#define R_METAG_TLS_LE_HI16 60
#define R_METAG_TLS_LE_LO16 61
+/* NDS32 relocations. */
+#define R_NDS32_NONE 0
+#define R_NDS32_32_RELA 20
+#define R_NDS32_COPY 39
+#define R_NDS32_GLOB_DAT 40
+#define R_NDS32_JMP_SLOT 41
+#define R_NDS32_RELATIVE 42
+#define R_NDS32_TLS_TPOFF 102
+#define R_NDS32_TLS_DESC 119
+
__END_DECLS
#endif /* elf.h */
diff --git a/libelf/elf32_fsize.c b/libelf/elf32_fsize.c
index fddae91e..139f4a91 100644
--- a/libelf/elf32_fsize.c
+++ b/libelf/elf32_fsize.c
@@ -44,7 +44,7 @@ elfw2(LIBELFBITS, fsize) (Elf_Type type, size_t count, unsigned int version)
{
/* We do not have differences between file and memory sizes. Better
not since otherwise `mmap' would not work. */
- if (unlikely (version == EV_NONE) || unlikely (version >= EV_NUM))
+ if (unlikely (version != EV_CURRENT))
{
__libelf_seterrno (ELF_E_UNKNOWN_VERSION);
return 0;
@@ -56,13 +56,5 @@ elfw2(LIBELFBITS, fsize) (Elf_Type type, size_t count, unsigned int version)
return 0;
}
-#if EV_NUM != 2
- return (count
- * __libelf_type_sizes[version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
-#else
- return (count
- * __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
-#endif
+ return (count * __libelf_type_sizes[ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
}
-#define local_strong_alias(n1, n2) strong_alias (n1, n2)
-local_strong_alias (elfw2(LIBELFBITS, fsize), __elfw2(LIBELFBITS, msize))
diff --git a/libelf/elf32_newphdr.c b/libelf/elf32_newphdr.c
index 4aa72137..7dd78ca9 100644
--- a/libelf/elf32_newphdr.c
+++ b/libelf/elf32_newphdr.c
@@ -56,6 +56,9 @@ elfw2(LIBELFBITS,newphdr) (Elf *elf, size_t count)
return NULL;
}
+ /* This check is correct, it is for sh_info, which is either
+ Elf32_Word or Elf64_Word, both being 32 bits. But count is size_t
+ so might not fit on 32bit ELF files. */
if (unlikely ((ElfW2(LIBELFBITS,Word)) count != count))
{
__libelf_seterrno (ELF_E_INVALID_OPERAND);
diff --git a/libelf/elf32_updatefile.c b/libelf/elf32_updatefile.c
index 284bacc9..f67e6261 100644
--- a/libelf/elf32_updatefile.c
+++ b/libelf/elf32_updatefile.c
@@ -143,13 +143,8 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
if (unlikely (change_bo))
{
/* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- xfct_t fctp;
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR]
-#endif
+#undef fctp
+#define fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR]
/* Do the real work. */
(*fctp) ((char *) elf->map_address + elf->start_offset, ehdr,
@@ -189,13 +184,8 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
if (unlikely (change_bo))
{
/* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- xfct_t fctp;
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR]
-#endif
+#undef fctp
+#define fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR]
/* Do the real work. */
(*fctp) (elf->map_address + elf->start_offset + ehdr->e_phoff,
@@ -238,12 +228,8 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
+ ehdr->e_shoff);
char *const shdr_end = shdr_start + shnum * ehdr->e_shentsize;
-#if EV_NUM != 2
- xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
-#else
-# undef shdr_fctp
-# define shdr_fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]
-#endif
+#undef shdr_fctp
+#define shdr_fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]
#define shdr_dest ((ElfW2(LIBELFBITS,Shdr) *) shdr_start)
/* Get all sections into the array and sort them. */
@@ -358,13 +344,8 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
&& dl->data.d.d_size != 0
&& dl->data.d.d_type != ELF_T_BYTE))
{
-#if EV_NUM != 2
- xfct_t fctp;
- fctp = __elf_xfctstom[__libelf_version - 1][dl->data.d.d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type]
-#endif
+#undef fctp
+#define fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type]
size_t align;
align = __libelf_type_align (ELFW(ELFCLASS,LIBELFBITS),
@@ -379,15 +360,30 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
else
{
/* We have to do the conversion on properly
- aligned memory first. */
+ aligned memory first. align is a power of 2,
+ but posix_memalign only works for alignments
+ which are a multiple of sizeof (void *).
+ So use normal malloc for smaller alignments. */
size_t size = dl->data.d.d_size;
- char *converted = aligned_alloc (align, size);
+ void *converted;
+ if (align < sizeof (void *))
+ converted = malloc (size);
+ else
+ {
+ int res;
+ res = posix_memalign (&converted, align, size);
+ if (res != 0)
+ converted = NULL;
+ }
+
if (converted == NULL)
{
+ free (scns);
__libelf_seterrno (ELF_E_NOMEM);
return 1;
}
- (*fctp) (converted, dl->data.d.d_buf, size, 1);
+
+ (*fctp) (converted, dl->data.d.d_buf, size, 1);
/* And then write it to the mmapped file. */
memcpy (last_position, converted, size);
@@ -502,7 +498,7 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
/* Helper function to write out fill bytes. */
static int
-fill (int fd, off_t pos, size_t len, char *fillbuf, size_t *filledp)
+fill (int fd, int64_t pos, size_t len, char *fillbuf, size_t *filledp)
{
size_t filled = *filledp;
size_t fill_len = MIN (len, FILLBUFSIZE);
@@ -559,13 +555,8 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
if (unlikely (change_bo))
{
/* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- xfct_t fctp;
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR]
-#endif
+#undef fctp
+#define fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_EHDR]
/* Write the converted ELF header in a temporary buffer. */
(*fctp) (&tmp_ehdr, ehdr, sizeof (ElfW2(LIBELFBITS,Ehdr)), 1);
@@ -618,13 +609,8 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
if (unlikely (change_bo))
{
/* Today there is only one version of the ELF header. */
-#if EV_NUM != 2
- xfct_t fctp;
- fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR]
-#endif
+#undef fctp
+#define fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_PHDR]
/* Allocate sufficient memory. */
tmp_phdr = (ElfW2(LIBELFBITS,Phdr) *)
@@ -665,7 +651,7 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
/* From now on we have to keep track of the last position to eventually
fill the gaps with the prescribed fill byte. */
- off_t last_offset;
+ int64_t last_offset;
if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
last_offset = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
else
@@ -678,13 +664,9 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
+ sizeof (ElfW2(LIBELFBITS,Shdr)))))
return 1;
- off_t shdr_offset = elf->start_offset + ehdr->e_shoff;
-#if EV_NUM != 2
- xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR];
-#else
-# undef shdr_fctp
-# define shdr_fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]
-#endif
+ int64_t shdr_offset = elf->start_offset + ehdr->e_shoff;
+#undef shdr_fctp
+#define shdr_fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]
ElfW2(LIBELFBITS,Shdr) *shdr_data;
ElfW2(LIBELFBITS,Shdr) *shdr_data_mem = NULL;
@@ -730,7 +712,7 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
if (shdr->sh_type == SHT_NOBITS)
goto next;
- off_t scn_start = elf->start_offset + shdr->sh_offset;
+ int64_t scn_start = elf->start_offset + shdr->sh_offset;
Elf_Data_List *dl = &scn->data_list;
bool scn_changed = false;
@@ -769,13 +751,8 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
if (unlikely (change_bo))
{
-#if EV_NUM != 2
- xfct_t fctp;
- fctp = __elf_xfctstom[__libelf_version - 1][dl->data.d.d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type];
-#else
-# undef fctp
-# define fctp __elf_xfctstom[0][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type]
-#endif
+#undef fctp
+#define fctp __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][dl->data.d.d_type]
buf = tmpbuf;
if (dl->data.d.d_size > MAX_TMPBUF)
diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c
index 3e9ef61b..5f3cdbf6 100644
--- a/libelf/elf32_updatenull.c
+++ b/libelf/elf32_updatenull.c
@@ -45,6 +45,10 @@
# define LIBELFBITS 32
#endif
+/* Some fields contain 32/64 sizes. We cannot use Elf32/64_Word for those,
+ since those are both 32bits. Elf32/64_Xword is always 64bits. */
+#define Elf32_SizeWord Elf32_Word
+#define Elf64_SizeWord Elf64_Xword
static int
@@ -89,7 +93,7 @@ ELFW(default_ehdr,LIBELFBITS) (Elf *elf, ElfW2(LIBELFBITS,Ehdr) *ehdr,
ehdr->e_version = EV_CURRENT;
elf->state.ELFW(elf,LIBELFBITS).ehdr_flags |= ELF_F_DIRTY;
}
- else if (unlikely (ehdr->e_version >= EV_NUM))
+ else if (unlikely (ehdr->e_version != EV_CURRENT))
{
__libelf_seterrno (ELF_E_UNKNOWN_VERSION);
return 1;
@@ -122,7 +126,7 @@ ELFW(default_ehdr,LIBELFBITS) (Elf *elf, ElfW2(LIBELFBITS,Ehdr) *ehdr,
}
-off_t
+int64_t
internal_function
__elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
{
@@ -137,7 +141,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
return -1;
/* At least the ELF header is there. */
- off_t size = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
+ ElfW2(LIBELFBITS,SizeWord) size = elf_typesize (LIBELFBITS, ELF_T_EHDR, 1);
/* Set the program header position. */
if (elf->state.ELFW(elf,LIBELFBITS).phdr == NULL)
@@ -152,7 +156,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
{
/* The user is supposed to fill out e_phoff. Use it and
e_phnum to determine the maximum extend. */
- size = MAX ((size_t) size,
+ size = MAX (size,
ehdr->e_phoff
+ elf_typesize (LIBELFBITS, ELF_T_PHDR, phnum));
}
@@ -205,11 +209,11 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
{
Elf_Scn *scn = &list->data[cnt];
ElfW2(LIBELFBITS,Shdr) *shdr = scn->shdr.ELFW(e,LIBELFBITS);
- off_t offset = 0;
+ int64_t offset = 0;
assert (shdr != NULL);
- ElfW2(LIBELFBITS,Word) sh_entsize = shdr->sh_entsize;
- ElfW2(LIBELFBITS,Word) sh_align = shdr->sh_addralign ?: 1;
+ ElfW2(LIBELFBITS,SizeWord) sh_entsize = shdr->sh_entsize;
+ ElfW2(LIBELFBITS,SizeWord) sh_align = shdr->sh_addralign ?: 1;
if (unlikely (! powerof2 (sh_align)))
{
__libelf_seterrno (ELF_E_INVALID_ALIGN);
@@ -280,8 +284,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
&& scn->rawdata.d.d_buf != NULL)
data = &scn->rawdata.d;
- if (unlikely (data->d_version == EV_NONE)
- || unlikely (data->d_version >= EV_NUM))
+ if (unlikely (data->d_version != EV_CURRENT))
{
__libelf_seterrno (ELF_E_UNKNOWN_VERSION);
return -1;
@@ -300,8 +303,8 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
/* The user specified the offset and the size.
All we have to do is check whether this block
fits in the size specified for the section. */
- if (unlikely ((GElf_Word) (data->d_off
- + data->d_size)
+ if (unlikely ((ElfW2(LIBELFBITS,SizeWord))
+ (data->d_off + data->d_size)
> shdr->sh_size))
{
__libelf_seterrno (ELF_E_SECTION_TOO_SMALL);
@@ -330,7 +333,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
if (elf->flags & ELF_F_LAYOUT)
{
- size = MAX ((GElf_Word) size,
+ size = MAX (size,
(shdr->sh_type != SHT_NOBITS
? shdr->sh_offset + shdr->sh_size : 0));
@@ -354,8 +357,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
size = (size + sh_align - 1) & ~(sh_align - 1);
int offset_changed = 0;
- update_if_changed (shdr->sh_offset, (GElf_Word) size,
- offset_changed);
+ update_if_changed (shdr->sh_offset, size, offset_changed);
changed |= offset_changed;
if (offset_changed && scn->data_list_rear == NULL)
@@ -367,12 +369,16 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
}
/* See whether the section size is correct. */
- update_if_changed (shdr->sh_size, (GElf_Word) offset,
- changed);
+ int size_changed = 0;
+ update_if_changed (shdr->sh_size,
+ (ElfW2(LIBELFBITS,SizeWord)) offset,
+ size_changed);
+ changed |= size_changed;
if (shdr->sh_type != SHT_NOBITS)
size += offset;
+ scn->shdr_flags |= (offset_changed | size_changed);
scn->flags |= changed;
}
@@ -382,7 +388,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
&& (elf->flags & ELF_F_PERMISSIVE) == 0)
{
/* For compressed sections check the uncompressed size. */
- ElfW2(LIBELFBITS,Word) sh_size;
+ ElfW2(LIBELFBITS,SizeWord) sh_size;
if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
sh_size = shdr->sh_size;
else
@@ -416,7 +422,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
/* The user is supposed to fill out e_shoff. Use it and
e_shnum (or sh_size of the dummy, first section header)
to determine the maximum extend. */
- size = MAX ((GElf_Word) size,
+ size = MAX (size,
(ehdr->e_shoff
+ (elf_typesize (LIBELFBITS, ELF_T_SHDR, shnum))));
}
@@ -430,7 +436,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
#define SHDR_ALIGN sizeof (ElfW2(LIBELFBITS,Off))
size = (size + SHDR_ALIGN - 1) & ~(SHDR_ALIGN - 1);
- update_if_changed (ehdr->e_shoff, (GElf_Word) size, elf->flags);
+ update_if_changed (ehdr->e_shoff, size, elf->flags);
/* Account for the section header size. */
size += elf_typesize (LIBELFBITS, ELF_T_SHDR, shnum);
diff --git a/libelf/elf32_xlatetof.c b/libelf/elf32_xlatetof.c
index ac4eaf40..082d833f 100644
--- a/libelf/elf32_xlatetof.c
+++ b/libelf/elf32_xlatetof.c
@@ -50,11 +50,7 @@ elfw2(LIBELFBITS, xlatetof) (Elf_Data *dest, const Elf_Data *src,
type. This means, whether there is an integer number of records.
Note that for this implementation the memory and file size of the
data types are identical. */
-#if EV_NUM != 2
- size_t recsize = __libelf_type_sizes[src->d_version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#else
- size_t recsize = __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#endif
+ size_t recsize = __libelf_type_sizes[ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
if (src->d_size % recsize != 0)
{
@@ -97,15 +93,7 @@ elfw2(LIBELFBITS, xlatetof) (Elf_Data *dest, const Elf_Data *src,
else
{
xfct_t fctp;
-
- /* Get a pointer to the transformation functions. The `#ifdef' is
- a small optimization since we don't anticipate another ELF
- version and so would waste "precious" code. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[dest->d_version - 1][src->d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#else
- fctp = __elf_xfctstom[0][0][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#endif
+ fctp = __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
/* Do the real work. */
(*fctp) (dest->d_buf, src->d_buf, src->d_size, 1);
diff --git a/libelf/elf32_xlatetom.c b/libelf/elf32_xlatetom.c
index 3b94cac7..cb0bb8d5 100644
--- a/libelf/elf32_xlatetom.c
+++ b/libelf/elf32_xlatetom.c
@@ -50,11 +50,7 @@ elfw2(LIBELFBITS, xlatetom) (Elf_Data *dest, const Elf_Data *src,
type. This means, whether there is an integer number of records.
Note that for this implementation the memory and file size of the
data types are identical. */
-#if EV_NUM != 2
- size_t recsize = __libelf_type_sizes[src->d_version - 1][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#else
- size_t recsize = __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
-#endif
+ size_t recsize = __libelf_type_sizes[ELFW(ELFCLASS,LIBELFBITS) - 1][src->d_type];
/* We shouldn't require integer number of records when processing
@@ -102,15 +98,7 @@ elfw2(LIBELFBITS, xlatetom) (Elf_Data *dest, const Elf_Data *src,
else
{
xfct_t fctp;
-
- /* Get a pointer to the transformation functions. The `#ifdef' is
- a small optimization since we don't anticipate another ELF
- version and so would waste "precious" code. */
-#if EV_NUM != 2
- fctp = __elf_xfctstom[src->d_version - 1][dest->d_version - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#else
- fctp = __elf_xfctstom[0][0][ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
-#endif
+ fctp = __elf_xfctstom[ELFW(ELFCLASS, LIBELFBITS) - 1][src->d_type];
/* Do the real work. */
(*fctp) (dest->d_buf, src->d_buf, src->d_size, 0);
diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
index fde14c61..8107a103 100644
--- a/libelf/elf_begin.c
+++ b/libelf/elf_begin.c
@@ -71,8 +71,8 @@ file_read_ar (int fildes, void *map_address, off_t offset, size_t maxsize,
static size_t
-get_shnum (void *map_address, unsigned char *e_ident, int fildes, off_t offset,
- size_t maxsize)
+get_shnum (void *map_address, unsigned char *e_ident, int fildes,
+ int64_t offset, size_t maxsize)
{
size_t result;
union
@@ -243,6 +243,9 @@ get_shnum (void *map_address, unsigned char *e_ident, int fildes, off_t offset,
CONVERT (size);
}
+ /* Although sh_size is an Elf64_Xword and can contain a 64bit
+ value, we only expect an 32bit value max. GElf_Word is
+ 32bit unsigned. */
if (size > ~((GElf_Word) 0))
{
/* Invalid value, it is too large. */
@@ -266,7 +269,7 @@ get_shnum (void *map_address, unsigned char *e_ident, int fildes, off_t offset,
/* Create descriptor for ELF file in memory. */
static Elf *
file_read_elf (int fildes, void *map_address, unsigned char *e_ident,
- off_t offset, size_t maxsize, Elf_Cmd cmd, Elf *parent)
+ int64_t offset, size_t maxsize, Elf_Cmd cmd, Elf *parent)
{
/* Verify the binary is of the class we can handle. */
if (unlikely ((e_ident[EI_CLASS] != ELFCLASS32
@@ -531,7 +534,7 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident,
Elf *
internal_function
-__libelf_read_mmaped_file (int fildes, void *map_address, off_t offset,
+__libelf_read_mmaped_file (int fildes, void *map_address, int64_t offset,
size_t maxsize, Elf_Cmd cmd, Elf *parent)
{
/* We have to find out what kind of file this is. We handle ELF
@@ -564,7 +567,7 @@ __libelf_read_mmaped_file (int fildes, void *map_address, off_t offset,
static Elf *
-read_unmmaped_file (int fildes, off_t offset, size_t maxsize, Elf_Cmd cmd,
+read_unmmaped_file (int fildes, int64_t offset, size_t maxsize, Elf_Cmd cmd,
Elf *parent)
{
/* We have to find out what kind of file this is. We handle ELF
@@ -626,7 +629,7 @@ read_unmmaped_file (int fildes, off_t offset, size_t maxsize, Elf_Cmd cmd,
/* Open a file for reading. If possible we will try to mmap() the file. */
static struct Elf *
-read_file (int fildes, off_t offset, size_t maxsize,
+read_file (int fildes, int64_t offset, size_t maxsize,
Elf_Cmd cmd, Elf *parent)
{
void *map_address = NULL;
@@ -1108,7 +1111,7 @@ elf_begin (int fildes, Elf_Cmd cmd, Elf *ref)
{
Elf *retval;
- if (unlikely (! __libelf_version_initialized))
+ if (unlikely (__libelf_version != EV_CURRENT))
{
/* Version wasn't set so far. */
__libelf_seterrno (ELF_E_NO_VERSION);
diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c
index be9eeaba..244467b5 100644
--- a/libelf/elf_compress.c
+++ b/libelf/elf_compress.c
@@ -44,17 +44,17 @@
/* Cleanup and return result. Don't leak memory. */
static void *
do_deflate_cleanup (void *result, z_stream *z, void *out_buf,
- int ei_data, Elf_Data *cdatap)
+ Elf_Data *cdatap)
{
deflateEnd (z);
free (out_buf);
- if (ei_data != MY_ELFDATA)
+ if (cdatap != NULL)
free (cdatap->d_buf);
return result;
}
-#define deflate_cleanup(result) \
- do_deflate_cleanup(result, &z, out_buf, ei_data, &cdata)
+#define deflate_cleanup(result, cdata) \
+ do_deflate_cleanup(result, &z, out_buf, cdata)
/* Given a section, uses the (in-memory) Elf_Data to extract the
original data size (including the given header size) and data
@@ -127,7 +127,8 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
{
/* Convert to raw if different endianess. */
cdata = *data;
- if (ei_data != MY_ELFDATA)
+ bool convert = ei_data != MY_ELFDATA && data->d_size > 0;
+ if (convert)
{
/* Don't do this conversion in place, we might want to keep
the original data around, caller decides. */
@@ -135,10 +136,10 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
if (cdata.d_buf == NULL)
{
__libelf_seterrno (ELF_E_NOMEM);
- return deflate_cleanup (NULL);
+ return deflate_cleanup (NULL, NULL);
}
if (gelf_xlatetof (scn->elf, &cdata, data, ei_data) == NULL)
- return deflate_cleanup (NULL);
+ return deflate_cleanup (NULL, &cdata);
}
z.avail_in = cdata.d_size;
@@ -164,7 +165,7 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
if (zrc == Z_STREAM_ERROR)
{
__libelf_seterrno (ELF_E_COMPRESS_ERROR);
- return deflate_cleanup (NULL);
+ return deflate_cleanup (NULL, convert ? &cdata : NULL);
}
used += (out_size - used) - z.avail_out;
@@ -172,7 +173,7 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
compression forced and we are using more compressed data
than original data. */
if (!force && flush == Z_FINISH && used >= *orig_size)
- return deflate_cleanup ((void *) -1);
+ return deflate_cleanup ((void *) -1, convert ? &cdata : NULL);
if (z.avail_out == 0)
{
@@ -180,7 +181,7 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
if (bigger == NULL)
{
__libelf_seterrno (ELF_E_NOMEM);
- return deflate_cleanup (NULL);
+ return deflate_cleanup (NULL, convert ? &cdata : NULL);
}
out_buf = bigger;
out_size += block;
@@ -188,7 +189,7 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
}
while (z.avail_out == 0); /* Need more output buffer. */
- if (ei_data != MY_ELFDATA)
+ if (convert)
{
free (cdata.d_buf);
cdata.d_buf = NULL;
@@ -200,7 +201,7 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data,
if (zrc != Z_OK)
{
__libelf_seterrno (ELF_E_COMPRESS_ERROR);
- return deflate_cleanup (NULL);
+ return deflate_cleanup (NULL, NULL);
}
*new_size = used;
@@ -220,7 +221,11 @@ __libelf_decompress (void *buf_in, size_t size_in, size_t size_out)
return NULL;
}
- void *buf_out = malloc (size_out);
+ /* Malloc might return NULL when requestion zero size. This is highly
+ unlikely, it would only happen when the compression was forced.
+ But we do need a non-NULL buffer to return and set as result.
+ Just make sure to always allocate at least 1 byte. */
+ void *buf_out = malloc (size_out ?: 1);
if (unlikely (buf_out == NULL))
{
__libelf_seterrno (ELF_E_NOMEM);
@@ -308,7 +313,7 @@ __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align,
{
/* This is the new raw data, replace and possibly free old data. */
scn->rawdata.d.d_off = 0;
- scn->rawdata.d.d_version = __libelf_version;
+ scn->rawdata.d.d_version = EV_CURRENT;
scn->rawdata.d.d_buf = buf;
scn->rawdata.d.d_size = size;
scn->rawdata.d.d_align = align;
diff --git a/libelf/elf_getaroff.c b/libelf/elf_getaroff.c
index 5b59203f..5c102ad6 100644
--- a/libelf/elf_getaroff.c
+++ b/libelf/elf_getaroff.c
@@ -38,7 +38,7 @@
#include "libelfP.h"
-off_t
+int64_t
elf_getaroff (Elf *elf)
{
/* Be gratious, the specs demand it. */
diff --git a/libelf/elf_getbase.c b/libelf/elf_getbase.c
index 8ec5f87e..4890d336 100644
--- a/libelf/elf_getbase.c
+++ b/libelf/elf_getbase.c
@@ -37,8 +37,8 @@
#include "libelfP.h"
-off_t
+int64_t
elf_getbase (Elf *elf)
{
- return elf == NULL ? (off_t) -1 : elf->start_offset;
+ return elf == NULL ? (int64_t) -1 : elf->start_offset;
}
diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c
index 639a798e..40fe1694 100644
--- a/libelf/elf_getdata.c
+++ b/libelf/elf_getdata.c
@@ -50,10 +50,8 @@
: 0))
/* Associate section types with libelf types. */
-static const Elf_Type shtype_map[EV_NUM - 1][TYPEIDX (SHT_HISUNW) + 1] =
+static const Elf_Type shtype_map[TYPEIDX (SHT_HISUNW) + 1] =
{
- [EV_CURRENT - 1] =
- {
[SHT_SYMTAB] = ELF_T_SYM,
[SHT_RELA] = ELF_T_RELA,
[SHT_HASH] = ELF_T_WORD,
@@ -73,11 +71,10 @@ static const Elf_Type shtype_map[EV_NUM - 1][TYPEIDX (SHT_HISUNW) + 1] =
[TYPEIDX (SHT_SUNW_move)] = ELF_T_MOVE,
[TYPEIDX (SHT_GNU_LIBLIST)] = ELF_T_LIB,
[TYPEIDX (SHT_GNU_HASH)] = ELF_T_GNUHASH,
- }
};
/* Associate libelf types with their internal alignment requirements. */
-const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] =
+const uint_fast8_t __libelf_type_aligns[ELFCLASSNUM - 1][ELF_T_NUM] =
{
# define TYPE_ALIGNS(Bits) \
{ \
@@ -108,11 +105,8 @@ const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM]
[ELF_T_CHDR] = __alignof__ (ElfW2(Bits,Chdr)), \
[ELF_T_NHDR8] = 8 /* Special case for GNU Property note. */ \
}
- [EV_CURRENT - 1] =
- {
[ELFCLASS32 - 1] = TYPE_ALIGNS (32),
[ELFCLASS64 - 1] = TYPE_ALIGNS (64),
- }
# undef TYPE_ALIGNS
};
@@ -131,7 +125,7 @@ __libelf_data_type (Elf *elf, int sh_type, GElf_Xword align)
}
else
{
- Elf_Type t = shtype_map[LIBELF_EV_IDX][TYPEIDX (sh_type)];
+ Elf_Type t = shtype_map[TYPEIDX (sh_type)];
/* Special case for GNU Property notes. */
if (t == ELF_T_NHDR && align == 8)
t = ELF_T_NHDR8;
@@ -141,7 +135,7 @@ __libelf_data_type (Elf *elf, int sh_type, GElf_Xword align)
/* Convert the data in the current section. */
static void
-convert_data (Elf_Scn *scn, int version __attribute__ ((unused)), int eclass,
+convert_data (Elf_Scn *scn, int eclass,
int data, size_t size, Elf_Type type)
{
const size_t align = __libelf_type_align (eclass, type);
@@ -195,11 +189,7 @@ convert_data (Elf_Scn *scn, int version __attribute__ ((unused)), int eclass,
}
/* Get the conversion function. */
-#if EV_NUM != 2
- fp = __elf_xfctstom[version - 1][__libelf_version - 1][eclass - 1][type];
-#else
- fp = __elf_xfctstom[0][0][eclass - 1][type];
-#endif
+ fp = __elf_xfctstom[eclass - 1][type];
fp (scn->data_base, rawdata_source, size, 0);
@@ -285,14 +275,14 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn)
}
else
{
- Elf_Type t = shtype_map[LIBELF_EV_IDX][TYPEIDX (type)];
+ Elf_Type t = shtype_map[TYPEIDX (type)];
if (t == ELF_T_NHDR && align == 8)
t = ELF_T_NHDR8;
if (t == ELF_T_VDEF || t == ELF_T_NHDR || t == ELF_T_NHDR8
|| (t == ELF_T_GNUHASH && elf->class == ELFCLASS64))
entsize = 1;
else
- entsize = __libelf_type_sizes[LIBELF_EV_IDX][elf->class - 1][t];
+ entsize = __libelf_type_sizes[elf->class - 1][t];
}
/* We assume it is an array of bytes if it is none of the structured
@@ -444,7 +434,7 @@ __libelf_set_data_list_rdlock (Elf_Scn *scn, int wrlocked)
}
/* Convert according to the version and the type. */
- convert_data (scn, __libelf_version, elf->class,
+ convert_data (scn, elf->class,
(elf->class == ELFCLASS32
|| (offsetof (struct Elf, state.elf32.ehdr)
== offsetof (struct Elf, state.elf64.ehdr))
diff --git a/libelf/elf_getdata_rawchunk.c b/libelf/elf_getdata_rawchunk.c
index d0c0b75f..1072f7de 100644
--- a/libelf/elf_getdata_rawchunk.c
+++ b/libelf/elf_getdata_rawchunk.c
@@ -41,7 +41,7 @@
#include "common.h"
Elf_Data *
-elf_getdata_rawchunk (Elf *elf, off_t offset, size_t size, Elf_Type type)
+elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
{
if (unlikely (elf == NULL))
return NULL;
@@ -151,8 +151,7 @@ elf_getdata_rawchunk (Elf *elf, off_t offset, size_t size, Elf_Type type)
}
/* Call the conversion function. */
- (*__elf_xfctstom[LIBELF_EV_IDX][LIBELF_EV_IDX][elf->class - 1][type])
- (buffer, rawchunk, size, 0);
+ (*__elf_xfctstom[elf->class - 1][type])(buffer, rawchunk, size, 0);
}
/* Allocate the dummy container to point at this buffer. */
@@ -171,7 +170,7 @@ elf_getdata_rawchunk (Elf *elf, off_t offset, size_t size, Elf_Type type)
chunk->data.d.d_size = size;
chunk->data.d.d_type = type;
chunk->data.d.d_align = align;
- chunk->data.d.d_version = __libelf_version;
+ chunk->data.d.d_version = EV_CURRENT;
rwlock_unlock (elf->lock);
rwlock_wrlock (elf->lock);
diff --git a/libelf/elf_newdata.c b/libelf/elf_newdata.c
index f6609a80..896f22cd 100644
--- a/libelf/elf_newdata.c
+++ b/libelf/elf_newdata.c
@@ -117,7 +117,7 @@ elf_newdata (Elf_Scn *scn)
}
/* Set the predefined values. */
- result->data.d.d_version = __libelf_version;
+ result->data.d.d_version = EV_CURRENT;
result->data.s = scn;
diff --git a/libelf/elf_update.c b/libelf/elf_update.c
index 36997c2b..9b8867ce 100644
--- a/libelf/elf_update.c
+++ b/libelf/elf_update.c
@@ -40,8 +40,8 @@
#include "libelfP.h"
-static off_t
-write_file (Elf *elf, off_t size, int change_bo, size_t shnum)
+static int64_t
+write_file (Elf *elf, int64_t size, int change_bo, size_t shnum)
{
int class = elf->class;
@@ -164,11 +164,11 @@ write_file (Elf *elf, off_t size, int change_bo, size_t shnum)
}
-off_t
+int64_t
elf_update (Elf *elf, Elf_Cmd cmd)
{
size_t shnum;
- off_t size;
+ int64_t size;
int change_bo = 0;
if (cmd != ELF_C_NULL
diff --git a/libelf/elf_version.c b/libelf/elf_version.c
index 7c336ff9..6ec534ab 100644
--- a/libelf/elf_version.c
+++ b/libelf/elf_version.c
@@ -34,32 +34,25 @@
#include <libelfP.h>
-/* Is the version initialized? */
-int __libelf_version_initialized;
-
-/* Currently selected version. */
-unsigned int __libelf_version = EV_CURRENT;
-
+/* Currently selected version. Should be EV_CURRENT.
+ Will be EV_NONE if elf_version () has not been called yet. */
+unsigned int __libelf_version = EV_NONE;
unsigned int
elf_version (unsigned int version)
{
if (version == EV_NONE)
- return __libelf_version;
+ return EV_CURRENT;
- if (likely (version < EV_NUM))
+ if (likely (version == EV_CURRENT))
{
/* Phew, we know this version. */
- unsigned int last_version = __libelf_version;
-
- /* Store the new version. */
- __libelf_version = version;
/* Signal that the version is now initialized. */
- __libelf_version_initialized = 1;
+ __libelf_version = EV_CURRENT;
- /* And return the last version. */
- return last_version;
+ /* And return the last (or initial) version. */
+ return EV_CURRENT;
}
/* We cannot handle this version. */
diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c
index d04ec5d5..493d7916 100644
--- a/libelf/gelf_fsize.c
+++ b/libelf/gelf_fsize.c
@@ -38,10 +38,8 @@
/* These are the sizes for all the known types. */
-const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] =
+const size_t __libelf_type_sizes[ELFCLASSNUM - 1][ELF_T_NUM] =
{
- /* We have no entry for EV_NONE since we have to set an error. */
- [EV_CURRENT - 1] = {
[ELFCLASS32 - 1] = {
#define TYPE_SIZES(LIBELFBITS) \
[ELF_T_ADDR] = ELFW2(LIBELFBITS, FSZ_ADDR), \
@@ -77,7 +75,6 @@ const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] =
[ELFCLASS64 - 1] = {
TYPE_SIZES (64)
}
- }
};
@@ -89,7 +86,7 @@ gelf_fsize (Elf *elf, Elf_Type type, size_t count, unsigned int version)
if (elf == NULL)
return 0;
- if (version == EV_NONE || version >= EV_NUM)
+ if (version != EV_CURRENT)
{
__libelf_seterrno (ELF_E_UNKNOWN_VERSION);
return 0;
@@ -101,10 +98,6 @@ gelf_fsize (Elf *elf, Elf_Type type, size_t count, unsigned int version)
return 0;
}
-#if EV_NUM != 2
- return count * __libelf_type_sizes[version - 1][elf->class - 1][type];
-#else
- return count * __libelf_type_sizes[0][elf->class - 1][type];
-#endif
+ return count * __libelf_type_sizes[elf->class - 1][type];
}
INTDEF(gelf_fsize)
diff --git a/libelf/gelf_getnote.c b/libelf/gelf_getnote.c
index 6d33b355..0f7b9d68 100644
--- a/libelf/gelf_getnote.c
+++ b/libelf/gelf_getnote.c
@@ -80,11 +80,12 @@ gelf_getnote (Elf_Data *data, size_t offset, GElf_Nhdr *result,
the offset, after adding the namesz, and include padding
in descsz to get to the end. */
*name_offset = offset;
- offset += n->n_namesz;
- if (offset > data->d_size)
+ if (n->n_namesz > data->d_size
+ || offset > data->d_size - n->n_namesz)
offset = 0;
else
{
+ offset += n->n_namesz;
/* Include padding. Check below for overflow. */
GElf_Word descsz = (data->d_type == ELF_T_NHDR8
? NOTE_ALIGN8 (n->n_descsz)
diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c
index b5d6ef3d..b9e7fd65 100644
--- a/libelf/gelf_xlate.c
+++ b/libelf/gelf_xlate.c
@@ -170,10 +170,8 @@ union unaligned
/* Now the externally visible table with the function pointers. */
-const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] =
+const xfct_t __elf_xfctstom[ELFCLASSNUM - 1][ELF_T_NUM] =
{
- [EV_CURRENT - 1] = {
- [EV_CURRENT - 1] = {
[ELFCLASS32 - 1] = {
#define define_xfcts(Bits) \
[ELF_T_BYTE] = elf_cvt_Byte, \
@@ -209,10 +207,4 @@ const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM]
define_xfcts (64),
[ELF_T_GNUHASH] = elf_cvt_gnuhash
}
- }
- }
};
-/* For now we only handle the case where the memory representation is the
- same as the file representation. Should this change we have to define
- separate functions. For now reuse them. */
-strong_alias (__elf_xfctstom, __elf_xfctstof)
diff --git a/libelf/libelfP.h b/libelf/libelfP.h
index 9f3e8e9d..b55d5c48 100644
--- a/libelf/libelfP.h
+++ b/libelf/libelfP.h
@@ -296,7 +296,7 @@ struct Elf
int fildes;
/* Offset in the archive this file starts or zero. */
- off_t start_offset;
+ int64_t start_offset;
/* Size of the file in the archive or the entire file size, or ~0
for an (yet) unknown size. */
@@ -350,7 +350,7 @@ struct Elf
int ehdr_flags; /* Flags (dirty) for ELF header. */
int phdr_flags; /* Flags (dirty|malloc) for program header. */
int shdr_malloced; /* Nonzero if shdr array was allocated. */
- off_t sizestr_offset; /* Offset of the size string in the parent
+ int64_t sizestr_offset; /* Offset of the size string in the parent
if this is an archive member. */
Elf32_Ehdr ehdr_mem; /* Memory used for ELF header when not
mmaped. */
@@ -375,7 +375,7 @@ struct Elf
int ehdr_flags; /* Flags (dirty) for ELF header. */
int phdr_flags; /* Flags (dirty|malloc) for program header. */
int shdr_malloced; /* Nonzero if shdr array was allocated. */
- off_t sizestr_offset; /* Offset of the size string in the parent
+ int64_t sizestr_offset; /* Offset of the size string in the parent
if this is an archive member. */
Elf64_Ehdr ehdr_mem; /* Memory used for ELF header when not
mmaped. */
@@ -392,7 +392,7 @@ struct Elf
char *long_names; /* If no index is available but long names
are used this elements points to the data.*/
size_t long_names_len; /* Length of the long name table. */
- off_t offset; /* Offset in file we are currently at.
+ int64_t offset; /* Offset in file we are currently at.
elf_next() advances this to the next
member of the archive. */
Elf_Arhdr elf_ar_hdr; /* Structure returned by 'elf_getarhdr'. */
@@ -411,43 +411,30 @@ struct Elf
typedef void (*xfct_t) (void *, const void *, size_t, int);
/* The table with the function pointers. */
-extern const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
-extern const xfct_t __elf_xfctstof[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
+extern const xfct_t __elf_xfctstom[ELFCLASSNUM - 1][ELF_T_NUM]
+ attribute_hidden;
/* Array with sizes of the external types indexed by ELF version, binary
class, and type. */
-extern const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
+extern const size_t __libelf_type_sizes[ELFCLASSNUM - 1][ELF_T_NUM]
+ attribute_hidden;
/* We often have to access the size for a type in the current version. */
-#if EV_NUM != 2
-# define elf_typesize(class,type,n) \
- elfw2(class,fsize) (type, n, __libelf_version)
-#else
# define elf_typesize(class,type,n) \
- (__libelf_type_sizes[EV_CURRENT - 1][ELFW(ELFCLASS,class) - 1][type] * n)
-#endif
-
-/* Currently selected version of the ELF specification. */
-extern unsigned int __libelf_version attribute_hidden;
+ (__libelf_type_sizes[ELFW(ELFCLASS,class) - 1][type] * n)
/* The byte value used for filling gaps. */
extern int __libelf_fill_byte attribute_hidden;
-/* Nonzero if the version was set. */
-extern int __libelf_version_initialized attribute_hidden;
-
-/* Index for __libelf_type_sizes et al. */
-#if EV_NUM == 2
-# define LIBELF_EV_IDX 0
-#else
-# define LIBELF_EV_IDX (__libelf_version - 1)
-#endif
+/* EV_CURRENT if the version was set, EV_NONE otherwise. */
+extern unsigned int __libelf_version attribute_hidden;
-/* Array with alignment requirements of the internal types indexed by ELF
- version, binary class, and type. */
-extern const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] attribute_hidden;
+/* Array with alignment requirements of the internal types indexed by
+ binary class, and type. */
+extern const uint_fast8_t __libelf_type_aligns[ELFCLASSNUM - 1][ELF_T_NUM]
+ attribute_hidden;
# define __libelf_type_align(class, type) \
- (__libelf_type_aligns[LIBELF_EV_IDX][class - 1][type] ?: 1)
+ (__libelf_type_aligns[class - 1][type] ?: 1)
/* Given an Elf handle and a section type returns the Elf_Data d_type.
Should not be called when SHF_COMPRESSED is set, the d_type should
@@ -455,20 +442,10 @@ extern const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_
extern Elf_Type __libelf_data_type (Elf *elf, int sh_type, GElf_Xword align)
internal_function;
-/* The libelf API does not have such a function but it is still useful.
- Get the memory size for the given type.
-
- These functions cannot be marked internal since they are aliases
- of the export elfXX_fsize functions.*/
-extern size_t __elf32_msize (Elf_Type __type, size_t __count,
- unsigned int __version) __const_attribute__;
-extern size_t __elf64_msize (Elf_Type __type, size_t __count,
- unsigned int __version) __const_attribute__;
-
/* Create Elf descriptor from memory image. */
extern Elf *__libelf_read_mmaped_file (int fildes, void *map_address,
- off_t offset, size_t maxsize,
+ int64_t offset, size_t maxsize,
Elf_Cmd cmd, Elf *parent)
internal_function;
@@ -490,10 +467,10 @@ extern int __libelf_set_rawdata_wrlock (Elf_Scn *scn) internal_function;
/* Helper functions for elf_update. */
-extern off_t __elf32_updatenull_wrlock (Elf *elf, int *change_bop,
- size_t shnum) internal_function;
-extern off_t __elf64_updatenull_wrlock (Elf *elf, int *change_bop,
- size_t shnum) internal_function;
+extern int64_t __elf32_updatenull_wrlock (Elf *elf, int *change_bop,
+ size_t shnum) internal_function;
+extern int64_t __elf64_updatenull_wrlock (Elf *elf, int *change_bop,
+ size_t shnum) internal_function;
extern int __elf32_updatemmap (Elf *elf, int change_bo, size_t shnum)
internal_function;
diff --git a/libelf/nlist.c b/libelf/nlist.c
index c7b32fdb..8593c1de 100644
--- a/libelf/nlist.c
+++ b/libelf/nlist.c
@@ -80,9 +80,8 @@ nlist (const char *filename, struct nlist *nl)
/* For compatibility reasons (`nlist' existed before ELF and libelf)
we don't expect the caller to set the ELF version. Do this here
- if it hasn't happened yet. */
- if (__libelf_version_initialized == 0)
- INTUSE(elf_version) (EV_CURRENT);
+ as if it hasn't happened yet. */
+ INTUSE(elf_version) (EV_CURRENT);
/* Now get an ELF descriptor. */
elf = INTUSE(elf_begin) (fd, ELF_C_READ_MMAP, NULL);
diff --git a/libelf/note_xlate.h b/libelf/note_xlate.h
index bc9950ff..7e2784b0 100644
--- a/libelf/note_xlate.h
+++ b/libelf/note_xlate.h
@@ -47,13 +47,25 @@ elf_cvt_note (void *dest, const void *src, size_t len, int encode,
note_len += n->n_namesz;
note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len);
if (note_len > len || note_len < sizeof *n)
- break;
+ {
+ /* Header was translated, nothing else. */
+ len -= sizeof *n;
+ src += sizeof *n;
+ dest += sizeof *n;
+ break;
+ }
/* data as a whole needs to be aligned. */
note_len += n->n_descsz;
note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len);
if (note_len > len || note_len < sizeof *n)
- break;
+ {
+ /* Header was translated, nothing else. */
+ len -= sizeof *n;
+ src += sizeof *n;
+ dest += sizeof *n;
+ break;
+ }
/* Copy or skip the note data. */
size_t note_data_len = note_len - sizeof *n;
diff --git a/po/ChangeLog b/po/ChangeLog
index 2afb9b77..1d202391 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-13 Mark Wielaard <mark@klomp.org>
+
+ * *.po: Update for 0.177.
+
2019-02-14 Mark Wielaard <mark@klomp.org>
* *.po: Update for 0.176.
diff --git a/po/de.po b/po/de.po
index e95201c9..da01de95 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: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2019-02-14 14:31+0100\n"
+"POT-Creation-Date: 2019-08-13 23:38+0200\n"
"PO-Revision-Date: 2009-06-29 15:15+0200\n"
"Last-Translator: Michael Münch <micm@fedoraproject.org>\n"
"Language-Team: German\n"
@@ -54,8 +54,8 @@ msgstr ""
"GARANTIE,\n"
"auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n"
-#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
+#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3433
+#: src/readelf.c:11382 src/unstrip.c:2350 src/unstrip.c:2556
#, c-format
msgid "memory exhausted"
msgstr "Kein Speicher mehr verfügbar"
@@ -298,7 +298,7 @@ msgstr "unbekannter Typ"
msgid ".debug_addr section missing"
msgstr ".debug_line Sektion fehlt"
-#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493
+#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2497
msgid "Input selection options:"
msgstr "Eingabeauswahloptionen:"
@@ -602,7 +602,7 @@ msgstr " OS: %s, ABI: "
msgid "Stand alone"
msgstr ""
-#: libebl/eblsymbolbindingname.c:67 libebl/eblsymboltypename.c:73
+#: libebl/eblsymbolbindingname.c:68 libebl/eblsymboltypename.c:74
#, c-format
msgid "<unknown>: %d"
msgstr "<unbekannt>: %d"
@@ -627,7 +627,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:87 src/readelf.c:6129
+#: libelf/elf_error.c:87 src/readelf.c:6150
#, c-format
msgid "invalid encoding"
msgstr "ungültige Kodierung"
@@ -715,8 +715,8 @@ msgstr "data/scn Unterschied"
msgid "invalid section header"
msgstr "ungültiger Abschnitts-Header"
-#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
-#: src/readelf.c:10491 src/readelf.c:10673
+#: libelf/elf_error.c:191 src/readelf.c:9898 src/readelf.c:10498
+#: src/readelf.c:10599 src/readelf.c:10781
#, c-format
msgid "invalid data"
msgstr "Ungültige Daten"
@@ -1375,7 +1375,7 @@ msgstr ""
#: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141
#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021
-#: src/unstrip.c:2142 src/unstrip.c:2171
+#: src/unstrip.c:2146 src/unstrip.c:2175
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' kann nicht geöffnet werden"
@@ -1499,7 +1499,7 @@ msgstr ""
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
-#: src/elflint.c:154 src/readelf.c:346
+#: src/elflint.c:154 src/readelf.c:357
#, c-format
msgid "cannot open input file"
msgstr "Kann Eingabedatei nicht öffnen"
@@ -1518,7 +1518,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
msgid "No errors"
msgstr "Keine Fehler"
-#: src/elflint.c:219 src/readelf.c:545
+#: src/elflint.c:219 src/readelf.c:559
msgid "Missing file name.\n"
msgstr "Dateiname fehlt.\n"
@@ -3429,7 +3429,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: INTERNER FEHLER %d (%s-%s): %s"
#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2747
+#: src/strip.c:2748
#, c-format
msgid "while closing '%s'"
msgstr "beim Schliessen von '%s'"
@@ -3474,19 +3474,19 @@ msgstr "%s%s%s: Dateiformat nicht erkannt"
msgid "cannot create search tree"
msgstr "Kann Suchbaum nicht erstellen"
-#: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605
-#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
-#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
-#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
-#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
+#: src/nm.c:746 src/nm.c:1205 src/objdump.c:777 src/readelf.c:619
+#: src/readelf.c:1431 src/readelf.c:1582 src/readelf.c:1783 src/readelf.c:1989
+#: src/readelf.c:2179 src/readelf.c:2357 src/readelf.c:2433 src/readelf.c:2691
+#: src/readelf.c:2767 src/readelf.c:2854 src/readelf.c:3452 src/readelf.c:3502
+#: src/readelf.c:3565 src/readelf.c:11214 src/readelf.c:12399
+#: src/readelf.c:12603 src/readelf.c:12671 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
msgstr ""
#. We always print this prolog.
-#: src/nm.c:773
+#: src/nm.c:771
#, c-format
msgid ""
"\n"
@@ -3500,35 +3500,35 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:776
+#: src/nm.c:774
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
"\n"
msgstr ""
-#: src/nm.c:1218
+#: src/nm.c:1216
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: entry size in section `%s' is not what we expect"
-#: src/nm.c:1223
+#: src/nm.c:1221
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: entry size in section `%s' is not what we expect"
-#: src/nm.c:1302
+#: src/nm.c:1300
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: entry size in section `%s' is not what we expect"
#. XXX Add machine specific object file types.
-#: src/nm.c:1528
+#: src/nm.c:1526
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: Ungültige Operation"
-#: src/nm.c:1585
+#: src/nm.c:1583
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: keine Symbole"
@@ -3563,7 +3563,7 @@ msgstr ""
msgid "Show information from FILEs (a.out by default)."
msgstr ""
-#: src/objdump.c:218 src/readelf.c:550
+#: src/objdump.c:218 src/readelf.c:564
msgid "No operation specified.\n"
msgstr "Keine Operation angegeben.\n"
@@ -3572,11 +3572,11 @@ msgstr "Keine Operation angegeben.\n"
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257
+#: src/objdump.c:363 src/readelf.c:2084 src/readelf.c:2276
msgid "INVALID SYMBOL"
msgstr ""
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2118 src/readelf.c:2312
msgid "INVALID SECTION"
msgstr ""
@@ -3758,372 +3758,377 @@ msgid "Print information from ELF file in human-readable form."
msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben."
#. Look up once.
-#: src/readelf.c:328
+#: src/readelf.c:339
msgid "yes"
msgstr "ja"
-#: src/readelf.c:329
+#: src/readelf.c:340
msgid "no"
msgstr "nein"
-#: src/readelf.c:518
+#: src/readelf.c:532
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr ""
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:603 src/readelf.c:714
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
-#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133
+#: src/readelf.c:610 src/readelf.c:937 src/strip.c:1133
#, c-format
msgid "cannot determine number of sections: %s"
msgstr ""
-#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436
+#: src/readelf.c:628 src/readelf.c:1247 src/readelf.c:1455
#, c-format
msgid "cannot get section: %s"
msgstr ""
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
+#: src/readelf.c:637 src/readelf.c:1254 src/readelf.c:1463 src/readelf.c:12623
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
-#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
-#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
-#: src/unstrip.c:1909 src/unstrip.c:2004
+#: src/unstrip.c:621 src/unstrip.c:661 src/unstrip.c:873 src/unstrip.c:1204
+#: src/unstrip.c:1331 src/unstrip.c:1355 src/unstrip.c:1398 src/unstrip.c:1462
+#: src/unstrip.c:1636 src/unstrip.c:1770 src/unstrip.c:1913 src/unstrip.c:2008
#, c-format
msgid "cannot get section header: %s"
msgstr ""
-#: src/readelf.c:631
+#: src/readelf.c:645
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
-#: src/readelf.c:10658
+#: src/readelf.c:654 src/readelf.c:6560 src/readelf.c:10486 src/readelf.c:10588
+#: src/readelf.c:10766
#, c-format
msgid "cannot get %s content: %s"
msgstr ""
-#: src/readelf.c:656
+#: src/readelf.c:670
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/readelf.c:665
+#: src/readelf.c:679
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:671 src/readelf.c:688 src/readelf.c:717
+#: src/readelf.c:685 src/readelf.c:702 src/readelf.c:731
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr ""
-#: src/readelf.c:678
+#: src/readelf.c:692
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/readelf.c:712
+#: src/readelf.c:726
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr ""
-#: src/readelf.c:816
+#: src/readelf.c:830
#, c-format
msgid "cannot stat input file"
msgstr ""
-#: src/readelf.c:818
+#: src/readelf.c:832
#, c-format
msgid "input file is empty"
msgstr ""
-#: src/readelf.c:820
+#: src/readelf.c:834
#, c-format
msgid "failed reading '%s': %s"
msgstr "Konnte '%s' nicht lesen: %s"
-#: src/readelf.c:849
+#: src/readelf.c:863
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:908
+#: src/readelf.c:922
#, c-format
msgid "cannot read ELF header: %s"
msgstr ""
-#: src/readelf.c:916
+#: src/readelf.c:930
#, c-format
msgid "cannot create EBL handle"
msgstr ""
-#: src/readelf.c:929
+#: src/readelf.c:943
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:961
+#: src/readelf.c:975
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "Konnte %s: %s nicht lesen"
-#: src/readelf.c:1022
+#: src/readelf.c:1036
msgid "NONE (None)"
msgstr ""
-#: src/readelf.c:1023
+#: src/readelf.c:1037
msgid "REL (Relocatable file)"
msgstr ""
-#: src/readelf.c:1024
+#: src/readelf.c:1038
msgid "EXEC (Executable file)"
msgstr ""
-#: src/readelf.c:1025
+#: src/readelf.c:1039
msgid "DYN (Shared object file)"
msgstr ""
-#: src/readelf.c:1026
+#: src/readelf.c:1040
msgid "CORE (Core file)"
msgstr ""
-#: src/readelf.c:1031
+#: src/readelf.c:1045
#, c-format
msgid "OS Specific: (%x)\n"
msgstr ""
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1047
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr ""
-#: src/readelf.c:1043
+#: src/readelf.c:1057
msgid ""
"ELF Header:\n"
" Magic: "
msgstr ""
-#: src/readelf.c:1047
+#: src/readelf.c:1061
#, c-format
msgid ""
"\n"
" Class: %s\n"
msgstr ""
-#: src/readelf.c:1052
+#: src/readelf.c:1066
#, fuzzy, c-format
msgid " Data: %s\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1072
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr ""
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1074 src/readelf.c:1096
msgid "(current)"
msgstr "(aktuell)"
-#: src/readelf.c:1064
+#: src/readelf.c:1078
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: src/readelf.c:1067
+#: src/readelf.c:1081
#, c-format
msgid " ABI Version: %hhd\n"
msgstr ""
-#: src/readelf.c:1070
+#: src/readelf.c:1084
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1073
+#: src/readelf.c:1089
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: src/readelf.c:1075
+#: src/readelf.c:1091
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Daten: %s\n"
+
+#: src/readelf.c:1094
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: src/readelf.c:1079
+#: src/readelf.c:1098
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1082
+#: src/readelf.c:1101
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1083 src/readelf.c:1086
+#: src/readelf.c:1102 src/readelf.c:1105
msgid "(bytes into file)"
msgstr ""
-#: src/readelf.c:1085
+#: src/readelf.c:1104
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1088
+#: src/readelf.c:1107
#, c-format
msgid " Flags: %s\n"
msgstr ""
-#: src/readelf.c:1091
+#: src/readelf.c:1110
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112
+#: src/readelf.c:1111 src/readelf.c:1114 src/readelf.c:1131
msgid "(bytes)"
msgstr "(Bytes)"
-#: src/readelf.c:1094
+#: src/readelf.c:1113
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1097
+#: src/readelf.c:1116
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1104
+#: src/readelf.c:1123
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr ""
-#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138
+#: src/readelf.c:1126 src/readelf.c:1143 src/readelf.c:1157
msgid " ([0] not available)"
msgstr ""
-#: src/readelf.c:1111
+#: src/readelf.c:1130
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1114
+#: src/readelf.c:1133
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1121
+#: src/readelf.c:1140
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr ""
#. We managed to get the zeroth section.
-#: src/readelf.c:1134
+#: src/readelf.c:1153
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr ""
-#: src/readelf.c:1142
+#: src/readelf.c:1161
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
"\n"
msgstr ""
-#: src/readelf.c:1146
+#: src/readelf.c:1165
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
"\n"
msgstr ""
-#: src/readelf.c:1193 src/readelf.c:1401
+#: src/readelf.c:1212 src/readelf.c:1420
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1215
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:1205
+#: src/readelf.c:1224
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1208
+#: src/readelf.c:1227
msgid "Section Headers:"
msgstr ""
-#: src/readelf.c:1211
+#: src/readelf.c:1230
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
msgstr ""
-#: src/readelf.c:1213
+#: src/readelf.c:1232
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
msgstr ""
-#: src/readelf.c:1218
+#: src/readelf.c:1237
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1239
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1315
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr ""
-#: src/readelf.c:1307
+#: src/readelf.c:1326
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr ""
-#: src/readelf.c:1325
+#: src/readelf.c:1344
msgid "Program Headers:"
msgstr "Programm-Köpfe:"
-#: src/readelf.c:1327
+#: src/readelf.c:1346
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1330
+#: src/readelf.c:1349
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1387
+#: src/readelf.c:1406
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr ""
-#: src/readelf.c:1414
+#: src/readelf.c:1433
msgid ""
"\n"
" Section to Segment mapping:\n"
" Segment Sections..."
msgstr ""
-#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112
+#: src/readelf.c:1444 src/unstrip.c:2067 src/unstrip.c:2109 src/unstrip.c:2116
#, c-format
msgid "cannot get program header: %s"
msgstr ""
-#: src/readelf.c:1571
+#: src/readelf.c:1590
#, c-format
msgid ""
"\n"
@@ -4134,7 +4139,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1576
+#: src/readelf.c:1595
#, c-format
msgid ""
"\n"
@@ -4145,31 +4150,31 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1584
+#: src/readelf.c:1603
msgid "<INVALID SYMBOL>"
msgstr ""
-#: src/readelf.c:1598
+#: src/readelf.c:1617
msgid "<INVALID SECTION>"
msgstr ""
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
-#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
+#: src/readelf.c:1640 src/readelf.c:2367 src/readelf.c:3468 src/readelf.c:12494
+#: src/readelf.c:12501 src/readelf.c:12545 src/readelf.c:12552
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1645 src/readelf.c:2372 src/readelf.c:3473
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754
-#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327
+#: src/readelf.c:1789 src/readelf.c:2439 src/readelf.c:2697 src/readelf.c:2773
+#: src/readelf.c:3077 src/readelf.c:3151 src/readelf.c:5348
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:1773
+#: src/readelf.c:1792
#, c-format
msgid ""
"\n"
@@ -4182,43 +4187,43 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1783
+#: src/readelf.c:1802
msgid " Type Value\n"
msgstr ""
-#: src/readelf.c:1807
+#: src/readelf.c:1826
#, c-format
msgid "Shared library: [%s]\n"
msgstr ""
-#: src/readelf.c:1812
+#: src/readelf.c:1831
#, c-format
msgid "Library soname: [%s]\n"
msgstr ""
-#: src/readelf.c:1817
+#: src/readelf.c:1836
#, c-format
msgid "Library rpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1822
+#: src/readelf.c:1841
#, c-format
msgid "Library runpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1842
+#: src/readelf.c:1861
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr ""
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1974 src/readelf.c:2164
#, c-format
msgid ""
"\n"
"Invalid symbol table at offset %#0<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1992 src/readelf.c:2182
#, c-format
msgid ""
"\n"
@@ -4237,7 +4242,7 @@ msgstr[1] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:1988 src/readelf.c:2178
+#: src/readelf.c:2007 src/readelf.c:2197
#, c-format
msgid ""
"\n"
@@ -4248,29 +4253,29 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1998
+#: src/readelf.c:2017
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2000
+#: src/readelf.c:2019
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098
-#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270
-#: src/readelf.c:2292 src/readelf.c:2305
+#: src/readelf.c:2072 src/readelf.c:2083 src/readelf.c:2096 src/readelf.c:2117
+#: src/readelf.c:2129 src/readelf.c:2263 src/readelf.c:2275 src/readelf.c:2289
+#: src/readelf.c:2311 src/readelf.c:2324
msgid "<INVALID RELOC>"
msgstr ""
-#: src/readelf.c:2188
+#: src/readelf.c:2207
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2190
+#: src/readelf.c:2209
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2428
+#: src/readelf.c:2447
#, c-format
msgid ""
"\n"
@@ -4281,40 +4286,40 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2433
+#: src/readelf.c:2452
#, 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:2441
+#: src/readelf.c:2460
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2443
+#: src/readelf.c:2462
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2463
+#: src/readelf.c:2482
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr ""
-#: src/readelf.c:2551
+#: src/readelf.c:2570
#, c-format
msgid "bad dynamic symbol"
msgstr ""
-#: src/readelf.c:2633
+#: src/readelf.c:2652
msgid "none"
msgstr "keine"
-#: src/readelf.c:2650
+#: src/readelf.c:2669
msgid "| <unknown>"
msgstr "| <unbekannt>"
-#: src/readelf.c:2681
+#: src/readelf.c:2700
#, c-format
msgid ""
"\n"
@@ -4327,17 +4332,17 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2702
+#: src/readelf.c:2721
#, fuzzy, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2734
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Name: %s Flags: %s Version: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2777
#, c-format
msgid ""
"\n"
@@ -4350,18 +4355,18 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2786
+#: src/readelf.c:2805
#, c-format
msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"
msgstr ""
-#: src/readelf.c:2801
+#: src/readelf.c:2820
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr ""
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3081
#, c-format
msgid ""
"\n"
@@ -4374,15 +4379,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3090
+#: src/readelf.c:3109
msgid " 0 *local* "
msgstr " 0 *lokal* "
-#: src/readelf.c:3095
+#: src/readelf.c:3114
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3137
+#: src/readelf.c:3156
#, c-format
msgid ""
"\n"
@@ -4397,66 +4402,66 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3159
+#: src/readelf.c:3178
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr ""
-#: src/readelf.c:3161
+#: src/readelf.c:3180
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3187
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3181
+#: src/readelf.c:3200
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
-#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329
+#: src/readelf.c:3218 src/readelf.c:3282 src/readelf.c:3348
#, c-format
msgid "cannot get data for section %d: %s"
msgstr ""
-#: src/readelf.c:3207
+#: src/readelf.c:3226
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3236
+#: src/readelf.c:3255
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3271
+#: src/readelf.c:3290
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3302
+#: src/readelf.c:3321
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3338
+#: src/readelf.c:3357
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3405
+#: src/readelf.c:3424
#, c-format
msgid ""
" Symbol Bias: %u\n"
" Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n"
msgstr ""
-#: src/readelf.c:3494
+#: src/readelf.c:3513
#, c-format
msgid ""
"\n"
@@ -4467,13 +4472,13 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3508
+#: src/readelf.c:3527
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
msgstr ""
-#: src/readelf.c:3558
+#: src/readelf.c:3579
#, c-format
msgid ""
"\n"
@@ -4481,102 +4486,102 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:3575
+#: src/readelf.c:3596
msgid " Owner Size\n"
msgstr ""
-#: src/readelf.c:3604
+#: src/readelf.c:3625
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3664
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3669
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3718
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3721
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3724
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3734
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3737
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3807
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "mprotect fehlgeschlagen"
-#: src/readelf.c:4268
+#: src/readelf.c:4289
msgid "empty block"
msgstr ""
-#: src/readelf.c:4271
+#: src/readelf.c:4292
#, c-format
msgid "%zu byte block:"
msgstr ""
-#: src/readelf.c:4749
+#: src/readelf.c:4770
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr ""
-#: src/readelf.c:4813
+#: src/readelf.c:4834
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:4820
+#: src/readelf.c:4841
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:4827
+#: src/readelf.c:4848
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:4834
+#: src/readelf.c:4855
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:4931
+#: src/readelf.c:4952
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:4939
+#: src/readelf.c:4960
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5017
+#: src/readelf.c:5038
#, c-format
msgid ""
"\n"
@@ -4584,79 +4589,79 @@ msgid ""
" [ Code]\n"
msgstr ""
-#: src/readelf.c:5025
+#: src/readelf.c:5046
#, c-format
msgid ""
"\n"
"Abbreviation section at offset %<PRIu64>:\n"
msgstr ""
-#: src/readelf.c:5038
+#: src/readelf.c:5059
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr ""
-#: src/readelf.c:5054
+#: src/readelf.c:5075
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr ""
-#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
-#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
-#: src/readelf.c:10179
+#: src/readelf.c:5108 src/readelf.c:5417 src/readelf.c:5584 src/readelf.c:5969
+#: src/readelf.c:6570 src/readelf.c:8307 src/readelf.c:8993 src/readelf.c:9429
+#: src/readelf.c:9674 src/readelf.c:9840 src/readelf.c:10227
+#: src/readelf.c:10287
#, c-format
msgid ""
"\n"
"DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:5100
+#: src/readelf.c:5121
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
+#: src/readelf.c:5221 src/readelf.c:5245 src/readelf.c:5629 src/readelf.c:9038
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
+#: src/readelf.c:5223 src/readelf.c:5260 src/readelf.c:5642 src/readelf.c:9051
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
+#: src/readelf.c:5224 src/readelf.c:5269 src/readelf.c:5651 src/readelf.c:9060
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
+#: src/readelf.c:5226 src/readelf.c:5279 src/readelf.c:5661 src/readelf.c:9070
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
+#: src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055 src/readelf.c:10419
#, fuzzy, c-format
msgid "Unknown version"
msgstr "unbekannte Version"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
+#: src/readelf.c:5274 src/readelf.c:5487 src/readelf.c:5656 src/readelf.c:9065
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
+#: src/readelf.c:5285 src/readelf.c:5498 src/readelf.c:5666 src/readelf.c:9075
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5338 src/readelf.c:5412
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ""
-#: src/readelf.c:5332
+#: src/readelf.c:5353
#, c-format
msgid ""
"\n"
@@ -4667,241 +4672,241 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:5363
+#: src/readelf.c:5384
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5386
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
-#: src/readelf.c:5409 src/readelf.c:8226
+#: src/readelf.c:5430 src/readelf.c:8334
#, c-format
msgid ""
"\n"
"Table at offset %zu:\n"
msgstr ""
-#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8911
+#: src/readelf.c:5434 src/readelf.c:5610 src/readelf.c:6594 src/readelf.c:8345
+#: src/readelf.c:9019
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:5429
+#: src/readelf.c:5450
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5441
+#: src/readelf.c:5462
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5466
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5456
+#: src/readelf.c:5477
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5462
+#: src/readelf.c:5483
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5473
+#: src/readelf.c:5494
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr ""
-#: src/readelf.c:5528
+#: src/readelf.c:5549
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5572
+#: src/readelf.c:5593
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:5595 src/readelf.c:8917
+#: src/readelf.c:5616 src/readelf.c:9025
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5650 src/readelf.c:8972
+#: src/readelf.c:5671 src/readelf.c:9080
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5687 src/readelf.c:9096
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5689 src/readelf.c:9098
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5695 src/readelf.c:9104
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5706 src/readelf.c:9115
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5710 src/readelf.c:9119
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5762
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "Ungültige Daten"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5947 src/readelf.c:9407
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:5943
+#: src/readelf.c:5964
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ""
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6000 src/readelf.c:9462
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6002 src/readelf.c:9464
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6011 src/readelf.c:9490 src/readelf.c:9516
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6032 src/readelf.c:9596
#, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr ""
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6040 src/readelf.c:9604
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6295
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6527
+#: src/readelf.c:6548
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:6545
+#: src/readelf.c:6566
#, c-format
msgid ""
"\n"
"Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:6595
+#: src/readelf.c:6616
#, c-format
msgid ""
"\n"
" [%6tx] Zero terminator\n"
msgstr ""
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6717 src/readelf.c:6871
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ungültige Abschnittsausrichtung"
-#: src/readelf.c:6711
+#: src/readelf.c:6732
msgid "FDE address encoding: "
msgstr ""
-#: src/readelf.c:6717
+#: src/readelf.c:6738
msgid "LSDA pointer encoding: "
msgstr ""
-#: src/readelf.c:6827
+#: src/readelf.c:6848
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6834
+#: src/readelf.c:6855
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6871
+#: src/readelf.c:6892
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:6956
+#: src/readelf.c:6977
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr ""
-#: src/readelf.c:6966
+#: src/readelf.c:6987
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr ""
-#: src/readelf.c:6988
+#: src/readelf.c:7009
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr ""
-#: src/readelf.c:7321
+#: src/readelf.c:7339
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Ungültige Datei"
-#: src/readelf.c:7325
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:7329
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:7552
+#: src/readelf.c:7660
#, c-format
msgid ""
"\n"
@@ -4909,12 +4914,12 @@ msgid ""
" [Offset]\n"
msgstr ""
-#: src/readelf.c:7602
+#: src/readelf.c:7710
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7729
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -4923,7 +4928,7 @@ msgid ""
" Type signature: %#<PRIx64>, Type offset: %#<PRIx64> [%<PRIx64>]\n"
msgstr ""
-#: src/readelf.c:7633
+#: src/readelf.c:7741
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -4931,37 +4936,37 @@ msgid ""
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:7643 src/readelf.c:7806
+#: src/readelf.c:7751 src/readelf.c:7914
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7778
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7807
#, c-format
msgid "cannot get DIE offset: %s"
msgstr ""
-#: src/readelf.c:7708
+#: src/readelf.c:7816
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:7746
+#: src/readelf.c:7854
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr ""
-#: src/readelf.c:7754
+#: src/readelf.c:7862
#, c-format
msgid "cannot get next DIE: %s"
msgstr ""
-#: src/readelf.c:7798
+#: src/readelf.c:7906
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -4969,7 +4974,7 @@ msgid ""
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:7850
+#: src/readelf.c:7958
#, c-format
msgid ""
"\n"
@@ -4977,18 +4982,18 @@ msgid ""
"\n"
msgstr ""
-#: src/readelf.c:8182
+#: src/readelf.c:8290
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:8213
+#: src/readelf.c:8321
#, c-format
msgid "cannot get line data section data: %s"
msgstr ""
#. Print what we got so far.
-#: src/readelf.c:8315
+#: src/readelf.c:8423
#, c-format
msgid ""
"\n"
@@ -5007,171 +5012,171 @@ msgid ""
"Opcodes:\n"
msgstr ""
-#: src/readelf.c:8337
+#: src/readelf.c:8445
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:8345
+#: src/readelf.c:8453
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:8353
+#: src/readelf.c:8461
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr ""
-#: src/readelf.c:8363
+#: src/readelf.c:8471
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:8378
+#: src/readelf.c:8486
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:8389
+#: src/readelf.c:8497
msgid ""
"\n"
"Directory table:"
msgstr ""
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8503 src/readelf.c:8580
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8466
+#: src/readelf.c:8574
msgid ""
"\n"
"File name table:"
msgstr ""
-#: src/readelf.c:8527
+#: src/readelf.c:8635
msgid " Entry Dir Time Size Name"
msgstr ""
-#: src/readelf.c:8564
+#: src/readelf.c:8672
msgid ""
"\n"
"Line number statements:"
msgstr ""
-#: src/readelf.c:8587
+#: src/readelf.c:8695
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8621
+#: src/readelf.c:8729
#, c-format
msgid " special opcode %u: address+%u = "
msgstr ""
-#: src/readelf.c:8625
+#: src/readelf.c:8733
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8628
+#: src/readelf.c:8736
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8754
#, c-format
msgid " extended opcode %u: "
msgstr ""
-#: src/readelf.c:8651
+#: src/readelf.c:8759
msgid " end of sequence"
msgstr ""
-#: src/readelf.c:8669
+#: src/readelf.c:8777
#, fuzzy, c-format
msgid " set address to "
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:8697
+#: src/readelf.c:8805
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-#: src/readelf.c:8711
+#: src/readelf.c:8819
#, c-format
msgid " set discriminator to %u\n"
msgstr ""
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8824
#, fuzzy
msgid " unknown opcode"
msgstr "unbekannter Typ"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8836
msgid " copy"
msgstr ""
-#: src/readelf.c:8739
+#: src/readelf.c:8847
#, c-format
msgid " advance address by %u to "
msgstr ""
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8851 src/readelf.c:8912
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8863
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr ""
-#: src/readelf.c:8765
+#: src/readelf.c:8873
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8776
+#: src/readelf.c:8884
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8783
+#: src/readelf.c:8891
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8897
msgid " set basic block flag"
msgstr ""
-#: src/readelf.c:8800
+#: src/readelf.c:8908
#, c-format
msgid " advance address by constant %u to "
msgstr ""
-#: src/readelf.c:8820
+#: src/readelf.c:8928
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8830
+#: src/readelf.c:8938
msgid " set prologue end flag"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8943
msgid " set epilogue begin flag"
msgstr ""
-#: src/readelf.c:8845
+#: src/readelf.c:8953
#, c-format
msgid " set isa to %u\n"
msgstr ""
@@ -5179,103 +5184,103 @@ msgstr ""
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8854
+#: src/readelf.c:8962
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:8894
+#: src/readelf.c:9002
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9171
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "Ungültige Daten"
-#: src/readelf.c:9316
+#: src/readelf.c:9424
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ""
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9631 src/readelf.c:10675
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9686 src/readelf.c:9849
#, c-format
msgid "cannot get macro information section data: %s"
msgstr ""
-#: src/readelf.c:9658
+#: src/readelf.c:9766
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr ""
-#: src/readelf.c:9681
+#: src/readelf.c:9789
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr ""
-#: src/readelf.c:9782
+#: src/readelf.c:9890
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9902
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9908 src/readelf.c:10795
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9807
+#: src/readelf.c:9915
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9944
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:9844
+#: src/readelf.c:9952
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr ""
-#: src/readelf.c:9869
+#: src/readelf.c:9977
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr ""
-#: src/readelf.c:9876
+#: src/readelf.c:9984
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:9996
#, c-format
msgid " %<PRIu8> arguments:"
msgstr ""
-#: src/readelf.c:9903
+#: src/readelf.c:10011
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10104
+#: src/readelf.c:10212
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:10148
+#: src/readelf.c:10256
#, c-format
msgid ""
"\n"
@@ -5283,72 +5288,72 @@ msgid ""
" %*s String\n"
msgstr ""
-#: src/readelf.c:10163
+#: src/readelf.c:10271
#, c-format
msgid " *** error, missing string terminator\n"
msgstr ""
-#: src/readelf.c:10192
+#: src/readelf.c:10300
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10399
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10401
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10307
+#: src/readelf.c:10415
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10424
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10370
+#: src/readelf.c:10478
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:10472
+#: src/readelf.c:10580
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:10495
+#: src/readelf.c:10603
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:10507
+#: src/readelf.c:10615
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:10522
+#: src/readelf.c:10630
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:10535
+#: src/readelf.c:10643
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:10549
+#: src/readelf.c:10657
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5357,142 +5362,142 @@ msgid ""
" Action: %u\n"
msgstr ""
-#: src/readelf.c:10622
+#: src/readelf.c:10730
#, c-format
msgid "invalid TType encoding"
msgstr ""
-#: src/readelf.c:10649
+#: src/readelf.c:10757
#, c-format
msgid ""
"\n"
"GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:10786
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10804
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10703
+#: src/readelf.c:10811
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10710
+#: src/readelf.c:10818
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10717
+#: src/readelf.c:10825
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10724
+#: src/readelf.c:10832
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10738
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
" CU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10763
+#: src/readelf.c:10871
#, c-format
msgid ""
"\n"
" TU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10792
+#: src/readelf.c:10900
#, c-format
msgid ""
"\n"
" Address list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10824
+#: src/readelf.c:10932
#, c-format
msgid ""
"\n"
" Symbol table at offset %#<PRIx32> contains %zu slots:\n"
msgstr ""
-#: src/readelf.c:10962
+#: src/readelf.c:11070
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr ""
-#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
-#: src/readelf.c:12116
+#: src/readelf.c:11433 src/readelf.c:12055 src/readelf.c:12166
+#: src/readelf.c:12224
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:11688
+#: src/readelf.c:11796
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:12195
+#: src/readelf.c:12303
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:12224
+#: src/readelf.c:12332
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:12276
+#: src/readelf.c:12384
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "Konnte Inhalt von %s: %s nicht lesen"
-#: src/readelf.c:12303
+#: src/readelf.c:12411
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12326
+#: src/readelf.c:12434
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12373
+#: src/readelf.c:12481
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no data to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12400 src/readelf.c:12451
+#: src/readelf.c:12508 src/readelf.c:12559
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12513
#, c-format
msgid ""
"\n"
"Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12410
+#: src/readelf.c:12518
#, c-format
msgid ""
"\n"
@@ -5500,21 +5505,21 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12424
+#: src/readelf.c:12532
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no strings to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12456
+#: src/readelf.c:12564
#, c-format
msgid ""
"\n"
"String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12461
+#: src/readelf.c:12569
#, c-format
msgid ""
"\n"
@@ -5522,45 +5527,45 @@ msgid ""
"offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12510
+#: src/readelf.c:12618
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:12539
+#: src/readelf.c:12647
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:12596
+#: src/readelf.c:12704
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:12599
+#: src/readelf.c:12707
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:12603
+#: src/readelf.c:12711
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %zu entries:\n"
msgstr ""
-#: src/readelf.c:12621
+#: src/readelf.c:12729
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:12626
+#: src/readelf.c:12734
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
@@ -5623,12 +5628,17 @@ msgstr ""
msgid "%s: file format not recognized"
msgstr ""
-#: src/size.c:418 src/size.c:551
+#: src/size.c:418 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr ""
-#: src/size.c:576
+#: src/size.c:482
+#, fuzzy, c-format
+msgid "cannot get section header"
+msgstr "konnte Abschnittsdaten nicht holen: %s"
+
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr ""
@@ -5987,7 +5997,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/strip.c:1654 src/strip.c:2534
+#: src/strip.c:1654 src/strip.c:2535
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
@@ -6017,47 +6027,47 @@ msgstr ""
msgid "no memory to create section header string table"
msgstr ""
-#: src/strip.c:2027
+#: src/strip.c:2028
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2450 src/strip.c:2558
+#: src/strip.c:2451 src/strip.c:2559
#, c-format
msgid "while writing '%s': %s"
msgstr ""
-#: src/strip.c:2461
+#: src/strip.c:2462
#, c-format
msgid "while creating '%s'"
msgstr ""
-#: src/strip.c:2484
+#: src/strip.c:2485
#, c-format
msgid "while computing checksum for debug information"
msgstr ""
-#: src/strip.c:2525
+#: src/strip.c:2526
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr ""
-#: src/strip.c:2543
+#: src/strip.c:2544
#, c-format
msgid "%s: error while reading the file: %s"
msgstr ""
-#: src/strip.c:2583 src/strip.c:2603
+#: src/strip.c:2584 src/strip.c:2604
#, fuzzy, c-format
msgid "while writing '%s'"
msgstr "beim Schliessen von '%s'"
-#: src/strip.c:2640 src/strip.c:2647
+#: src/strip.c:2641 src/strip.c:2648
#, c-format
msgid "error while finishing '%s': %s"
msgstr ""
-#: src/strip.c:2664 src/strip.c:2740
+#: src/strip.c:2665 src/strip.c:2741
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr ""
@@ -6143,7 +6153,7 @@ msgstr ""
msgid "cannot get shdrstrndx:%s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:248 src/unstrip.c:2034
+#: src/unstrip.c:248 src/unstrip.c:2038
#, c-format
msgid "cannot get ELF header: %s"
msgstr ""
@@ -6163,12 +6173,12 @@ msgstr "konnte Versionierungsabschnitt nicht erstellen: %s"
msgid "cannot copy ELF header: %s"
msgstr ""
-#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095
+#: src/unstrip.c:269 src/unstrip.c:2056 src/unstrip.c:2099
#, fuzzy, c-format
msgid "cannot get number of program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:274 src/unstrip.c:2056
+#: src/unstrip.c:274 src/unstrip.c:2060
#, c-format
msgid "cannot create program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
@@ -6183,12 +6193,12 @@ msgstr "konnte Programm-Kopf nicht kopieren: %s"
msgid "cannot copy section header: %s"
msgstr ""
-#: src/unstrip.c:293 src/unstrip.c:1665
+#: src/unstrip.c:293 src/unstrip.c:1669
#, c-format
msgid "cannot get section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:295 src/unstrip.c:1667
+#: src/unstrip.c:295 src/unstrip.c:1671
#, c-format
msgid "cannot copy section data: %s"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
@@ -6198,13 +6208,14 @@ msgstr "konnte Abschnittsdaten nicht kopieren: %s"
msgid "cannot create directory '%s'"
msgstr "konnte Verzeichnis nicht erstellen: %s"
-#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702
+#: src/unstrip.c:391 src/unstrip.c:647 src/unstrip.c:681 src/unstrip.c:847
+#: src/unstrip.c:1706
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
-#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682
-#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942
+#: src/unstrip.c:407 src/unstrip.c:650 src/unstrip.c:671 src/unstrip.c:684
+#: src/unstrip.c:1727 src/unstrip.c:1922 src/unstrip.c:1946
#, c-format
msgid "cannot update symbol table: %s"
msgstr "konnte Symboltabelle nicht aktualisieren: %s"
@@ -6229,213 +6240,213 @@ msgstr ""
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:851
+#: src/unstrip.c:853
#, fuzzy, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "ungültiger Offset %zu für Symbol %s"
-#: src/unstrip.c:1009 src/unstrip.c:1398
+#: src/unstrip.c:1011 src/unstrip.c:1402
#, fuzzy, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:1024
+#: src/unstrip.c:1026
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr "ungültige .debug_line Sektion"
-#: src/unstrip.c:1030
+#: src/unstrip.c:1032
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "konnte Versionierungsabschnitt nicht erstellen: %s"
-#: src/unstrip.c:1035
+#: src/unstrip.c:1037
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "ungültige .debug_line Sektion"
-#: src/unstrip.c:1041
+#: src/unstrip.c:1043
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:1046
+#: src/unstrip.c:1048
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145
+#: src/unstrip.c:1090 src/unstrip.c:1109 src/unstrip.c:1147
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr ""
-#: src/unstrip.c:1125
+#: src/unstrip.c:1127
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1136
+#: src/unstrip.c:1138
#, c-format
msgid "invalid contents in '%s' section"
msgstr ""
-#: src/unstrip.c:1192 src/unstrip.c:1524
+#: src/unstrip.c:1194 src/unstrip.c:1528
#, fuzzy, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877
+#: src/unstrip.c:1319 src/unstrip.c:1335 src/unstrip.c:1607 src/unstrip.c:1881
#, c-format
msgid "cannot add section name to string table: %s"
msgstr ""
-#: src/unstrip.c:1341
+#: src/unstrip.c:1344
#, c-format
msgid "cannot update section header string table data: %s"
msgstr ""
-#: src/unstrip.c:1369 src/unstrip.c:1373
+#: src/unstrip.c:1373 src/unstrip.c:1377
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
-#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618
+#: src/unstrip.c:1381 src/unstrip.c:1385 src/unstrip.c:1622
#, c-format
msgid "cannot get section count: %s"
msgstr ""
-#: src/unstrip.c:1384
+#: src/unstrip.c:1388
#, c-format
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
-#: src/unstrip.c:1446 src/unstrip.c:1539
+#: src/unstrip.c:1450 src/unstrip.c:1543
#, c-format
msgid "cannot read section header string table: %s"
msgstr ""
-#: src/unstrip.c:1597
+#: src/unstrip.c:1601
#, c-format
msgid "cannot add new section: %s"
msgstr ""
-#: src/unstrip.c:1710
+#: src/unstrip.c:1714
#, fuzzy, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "ungültiger Abschnittsindex"
-#: src/unstrip.c:1742
+#: src/unstrip.c:1746
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "ungültiger Abschnittsindex"
-#: src/unstrip.c:2013
+#: src/unstrip.c:2017
#, fuzzy, c-format
msgid "cannot read section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:2042
+#: src/unstrip.c:2046
#, c-format
msgid "cannot update ELF header: %s"
msgstr ""
-#: src/unstrip.c:2066
+#: src/unstrip.c:2070
#, c-format
msgid "cannot update program header: %s"
msgstr "konnte Programm-Kopf nicht aktualisieren: %s"
-#: src/unstrip.c:2071 src/unstrip.c:2153
+#: src/unstrip.c:2075 src/unstrip.c:2157
#, c-format
msgid "cannot write output file: %s"
msgstr ""
-#: src/unstrip.c:2122
+#: src/unstrip.c:2126
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2125
+#: src/unstrip.c:2129
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293
+#: src/unstrip.c:2148 src/unstrip.c:2199 src/unstrip.c:2211 src/unstrip.c:2297
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr ""
-#: src/unstrip.c:2186
+#: src/unstrip.c:2190
msgid "WARNING: "
msgstr ""
-#: src/unstrip.c:2188
+#: src/unstrip.c:2192
msgid ", use --force"
msgstr ""
-#: src/unstrip.c:2211
+#: src/unstrip.c:2215
msgid "ELF header identification (e_ident) different"
msgstr ""
-#: src/unstrip.c:2214
+#: src/unstrip.c:2218
msgid "ELF header type (e_type) different"
msgstr ""
-#: src/unstrip.c:2217
+#: src/unstrip.c:2221
msgid "ELF header machine type (e_machine) different"
msgstr ""
-#: src/unstrip.c:2220
+#: src/unstrip.c:2224
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr ""
-#: src/unstrip.c:2250
+#: src/unstrip.c:2254
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2254
+#: src/unstrip.c:2258
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2269
+#: src/unstrip.c:2273
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2273
+#: src/unstrip.c:2277
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2286
+#: src/unstrip.c:2290
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr ""
-#: src/unstrip.c:2317
+#: src/unstrip.c:2321
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2450
+#: src/unstrip.c:2454
#, c-format
msgid "no matching modules found"
msgstr "kein passendes Modul gefunden"
-#: src/unstrip.c:2459
+#: src/unstrip.c:2463
#, c-format
msgid "matched more than one module"
msgstr "mehr als ein passendes Modul"
-#: src/unstrip.c:2503
+#: src/unstrip.c:2507
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2504
+#: src/unstrip.c:2508
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
@@ -6463,7 +6474,7 @@ msgid ""
"was found, or . if FILE contains the debug information."
msgstr ""
-#: tests/backtrace.c:437
+#: tests/backtrace.c:436
msgid "Run executable"
msgstr ""
diff --git a/po/es.po b/po/es.po
index a4968a19..06b17ef6 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils.master.es\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2019-02-14 14:31+0100\n"
+"POT-Creation-Date: 2019-08-13 23:38+0200\n"
"PO-Revision-Date: 2011-01-10 15:17-0300\n"
"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz."
"com.ar>\n"
@@ -57,8 +57,8 @@ msgstr ""
"garantía, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN "
"DETERMINADO.\n"
-#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
+#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3433
+#: src/readelf.c:11382 src/unstrip.c:2350 src/unstrip.c:2556
#, c-format
msgid "memory exhausted"
msgstr "memoria agotada"
@@ -300,7 +300,7 @@ msgstr "código operativo desconocido "
msgid ".debug_addr section missing"
msgstr ".debug_ranges section faltante"
-#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493
+#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2497
msgid "Input selection options:"
msgstr "Opciones de selección de entrada:"
@@ -600,7 +600,7 @@ msgstr " OS: %s, ABI: "
msgid "Stand alone"
msgstr "Autónomo"
-#: libebl/eblsymbolbindingname.c:67 libebl/eblsymboltypename.c:73
+#: libebl/eblsymbolbindingname.c:68 libebl/eblsymboltypename.c:74
#, c-format
msgid "<unknown>: %d"
msgstr "<desconocido>: %d"
@@ -625,7 +625,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:87 src/readelf.c:6129
+#: libelf/elf_error.c:87 src/readelf.c:6150
#, c-format
msgid "invalid encoding"
msgstr "codificación inválida"
@@ -711,8 +711,8 @@ msgstr "no coinciden los datos/scn"
msgid "invalid section header"
msgstr "encabezamiento de sección inválida"
-#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
-#: src/readelf.c:10491 src/readelf.c:10673
+#: libelf/elf_error.c:191 src/readelf.c:9898 src/readelf.c:10498
+#: src/readelf.c:10599 src/readelf.c:10781
#, c-format
msgid "invalid data"
msgstr "datos inválidos"
@@ -1382,7 +1382,7 @@ msgstr "Valor inválido '%s' para parámetro --gaps"
#: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141
#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021
-#: src/unstrip.c:2142 src/unstrip.c:2171
+#: src/unstrip.c:2146 src/unstrip.c:2175
#, c-format
msgid "cannot open '%s'"
msgstr "Imposible abrir '%s'"
@@ -1510,7 +1510,7 @@ msgstr ""
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr "Chequeo minucioso de ficheros ELF de acuerdo con gABI/psABI "
-#: src/elflint.c:154 src/readelf.c:346
+#: src/elflint.c:154 src/readelf.c:357
#, c-format
msgid "cannot open input file"
msgstr "no se puede abrir el fichero de entrada"
@@ -1529,7 +1529,7 @@ msgstr "error al cerrar el descriptor ELF: %s\n"
msgid "No errors"
msgstr "No hay errores"
-#: src/elflint.c:219 src/readelf.c:545
+#: src/elflint.c:219 src/readelf.c:559
msgid "Missing file name.\n"
msgstr "Falta el nombre de archivo.\n"
@@ -3729,7 +3729,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: ERROR INTERNO %d (%s-%s): %s"
#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2747
+#: src/strip.c:2748
#, c-format
msgid "while closing '%s'"
msgstr "error al cerrar '%s'"
@@ -3774,19 +3774,19 @@ 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:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605
-#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
-#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
-#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
-#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
+#: src/nm.c:746 src/nm.c:1205 src/objdump.c:777 src/readelf.c:619
+#: src/readelf.c:1431 src/readelf.c:1582 src/readelf.c:1783 src/readelf.c:1989
+#: src/readelf.c:2179 src/readelf.c:2357 src/readelf.c:2433 src/readelf.c:2691
+#: src/readelf.c:2767 src/readelf.c:2854 src/readelf.c:3452 src/readelf.c:3502
+#: src/readelf.c:3565 src/readelf.c:11214 src/readelf.c:12399
+#: src/readelf.c:12603 src/readelf.c:12671 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
msgstr "no se puede obtener índice de cadena de encabezamiento de sección"
#. We always print this prolog.
-#: src/nm.c:773
+#: src/nm.c:771
#, c-format
msgid ""
"\n"
@@ -3800,7 +3800,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:776
+#: src/nm.c:774
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -3809,30 +3809,30 @@ msgstr ""
"%*s%-*s %-*s Clase Tipo %-*s %*s Sección\n"
"\n"
-#: src/nm.c:1218
+#: src/nm.c:1216
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr ""
"%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos "
-#: src/nm.c:1223
+#: src/nm.c:1221
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: Tamaño de sección `%s' no es múltiplo de tamaño de entrada"
-#: src/nm.c:1302
+#: src/nm.c:1300
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr ""
"%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos "
#. XXX Add machine specific object file types.
-#: src/nm.c:1528
+#: src/nm.c:1526
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: Operación inválida"
-#: src/nm.c:1585
+#: src/nm.c:1583
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: No hay símbolos"
@@ -3867,7 +3867,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:218 src/readelf.c:550
+#: src/objdump.c:218 src/readelf.c:564
msgid "No operation specified.\n"
msgstr "No se especificó una operación.\n"
@@ -3876,11 +3876,11 @@ msgstr "No se especificó una operación.\n"
msgid "while close `%s'"
msgstr "mientras cierra `%s'"
-#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257
+#: src/objdump.c:363 src/readelf.c:2084 src/readelf.c:2276
msgid "INVALID SYMBOL"
msgstr "SÃMBOLO INVÃLIDO"
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2118 src/readelf.c:2312
msgid "INVALID SECTION"
msgstr "SECCIÓN INVÃLIDA"
@@ -4069,151 +4069,151 @@ msgstr ""
"seres humanos."
#. Look up once.
-#: src/readelf.c:328
+#: src/readelf.c:339
msgid "yes"
msgstr "sí"
-#: src/readelf.c:329
+#: src/readelf.c:340
msgid "no"
msgstr "no"
-#: src/readelf.c:518
+#: src/readelf.c:532
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Sección de depuración DWARF desconocida `%s'.\n"
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:603 src/readelf.c:714
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "no se puede crear descriptor ELF: %s"
-#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133
+#: src/readelf.c:610 src/readelf.c:937 src/strip.c:1133
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
-#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436
+#: src/readelf.c:628 src/readelf.c:1247 src/readelf.c:1455
#, c-format
msgid "cannot get section: %s"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
+#: src/readelf.c:637 src/readelf.c:1254 src/readelf.c:1463 src/readelf.c:12623
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
-#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
-#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
-#: src/unstrip.c:1909 src/unstrip.c:2004
+#: src/unstrip.c:621 src/unstrip.c:661 src/unstrip.c:873 src/unstrip.c:1204
+#: src/unstrip.c:1331 src/unstrip.c:1355 src/unstrip.c:1398 src/unstrip.c:1462
+#: src/unstrip.c:1636 src/unstrip.c:1770 src/unstrip.c:1913 src/unstrip.c:2008
#, c-format
msgid "cannot get section header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:631
+#: src/readelf.c:645
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
-#: src/readelf.c:10658
+#: src/readelf.c:654 src/readelf.c:6560 src/readelf.c:10486 src/readelf.c:10588
+#: src/readelf.c:10766
#, c-format
msgid "cannot get %s content: %s"
msgstr "No se puede obtener el contenido %s: %s"
-#: src/readelf.c:656
+#: src/readelf.c:670
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "no se puede crear fichero nuevo '%s': %s"
-#: src/readelf.c:665
+#: src/readelf.c:679
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "no se puede leer la sección de datos: %s"
-#: src/readelf.c:671 src/readelf.c:688 src/readelf.c:717
+#: src/readelf.c:685 src/readelf.c:702 src/readelf.c:731
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:678
+#: src/readelf.c:692
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:712
+#: src/readelf.c:726
#, 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:816
+#: src/readelf.c:830
#, c-format
msgid "cannot stat input file"
msgstr "no sepudo stat archivo de entrada"
-#: src/readelf.c:818
+#: src/readelf.c:832
#, c-format
msgid "input file is empty"
msgstr "archivo de entrada vacío"
-#: src/readelf.c:820
+#: src/readelf.c:834
#, c-format
msgid "failed reading '%s': %s"
msgstr "Falló lectura de '%s': %s"
-#: src/readelf.c:849
+#: src/readelf.c:863
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "No se puede obtener contenido de sección %zu en '%s': %s"
-#: src/readelf.c:908
+#: src/readelf.c:922
#, c-format
msgid "cannot read ELF header: %s"
msgstr "no se pudo leer encabezamiento ELF: %s"
-#: src/readelf.c:916
+#: src/readelf.c:930
#, c-format
msgid "cannot create EBL handle"
msgstr "no se puede crear EBL"
-#: src/readelf.c:929
+#: src/readelf.c:943
#, 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:961
+#: src/readelf.c:975
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "no sepuede leer %s: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1036
msgid "NONE (None)"
msgstr "NONE (Ninguno)"
-#: src/readelf.c:1023
+#: src/readelf.c:1037
msgid "REL (Relocatable file)"
msgstr "REL (Fichero reubicable)"
-#: src/readelf.c:1024
+#: src/readelf.c:1038
msgid "EXEC (Executable file)"
msgstr "EXEC (Fichero ejecutable)"
-#: src/readelf.c:1025
+#: src/readelf.c:1039
msgid "DYN (Shared object file)"
msgstr "DYN (Fichero objeto compartido)"
-#: src/readelf.c:1026
+#: src/readelf.c:1040
msgid "CORE (Core file)"
msgstr "CORE (Fichero núcleo)"
-#: src/readelf.c:1031
+#: src/readelf.c:1045
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS Specific: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1047
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Específico del procesador: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1057
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4221,7 +4221,7 @@ msgstr ""
"Encabezamiento ELF:\n"
" Mágico: "
-#: src/readelf.c:1047
+#: src/readelf.c:1061
#, c-format
msgid ""
"\n"
@@ -4230,120 +4230,125 @@ msgstr ""
"\n"
" Clase: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1066
#, c-format
msgid " Data: %s\n"
msgstr " Datos: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1072
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Versión ident: %hhd %s\n"
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1074 src/readelf.c:1096
msgid "(current)"
msgstr "(actual)"
-#: src/readelf.c:1064
+#: src/readelf.c:1078
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1081
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Versión ABI: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1084
msgid " Type: "
msgstr " Tipo: "
-#: src/readelf.c:1073
+#: src/readelf.c:1089
#, c-format
msgid " Machine: %s\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1091
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Máquina: %s\n"
+
+#: src/readelf.c:1094
#, c-format
msgid " Version: %d %s\n"
msgstr " Versión: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1098
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1101
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n"
-#: src/readelf.c:1083 src/readelf.c:1086
+#: src/readelf.c:1102 src/readelf.c:1105
msgid "(bytes into file)"
msgstr " (bytes en el archivo)"
-#: src/readelf.c:1085
+#: src/readelf.c:1104
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n"
-#: src/readelf.c:1088
+#: src/readelf.c:1107
#, c-format
msgid " Flags: %s\n"
msgstr " Indicadores: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1110
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n"
-#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112
+#: src/readelf.c:1111 src/readelf.c:1114 src/readelf.c:1131
msgid "(bytes)"
msgstr "(bytes)"
-#: src/readelf.c:1094
+#: src/readelf.c:1113
#, 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:1097
+#: src/readelf.c:1116
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>"
-#: src/readelf.c:1104
+#: src/readelf.c:1123
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> in [0].sh_info)"
-#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138
+#: src/readelf.c:1126 src/readelf.c:1143 src/readelf.c:1157
msgid " ([0] not available)"
msgstr " ([0] no disponible)"
-#: src/readelf.c:1111
+#: src/readelf.c:1130
#, 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:1114
+#: src/readelf.c:1133
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>"
-#: src/readelf.c:1121
+#: src/readelf.c:1140
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> en [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1134
+#: src/readelf.c:1153
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> en [0].sh_link)"
-#: src/readelf.c:1142
+#: src/readelf.c:1161
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4352,19 +4357,19 @@ msgstr ""
" Ãndice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n"
"\n"
-#: src/readelf.c:1146
+#: src/readelf.c:1165
#, 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:1193 src/readelf.c:1401
+#: src/readelf.c:1212 src/readelf.c:1420
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1215
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4373,16 +4378,16 @@ msgstr ""
"Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1205
+#: src/readelf.c:1224
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "no se puede obtener índice de cadena de encabezamiento de sección"
-#: src/readelf.c:1208
+#: src/readelf.c:1227
msgid "Section Headers:"
msgstr "encabezamientos de sección:"
-#: src/readelf.c:1211
+#: src/readelf.c:1230
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4390,7 +4395,7 @@ msgstr ""
"[Nr] Nombre Tipo Dirección Off Tamaño Inf Al "
"Enlace banderas ES"
-#: src/readelf.c:1213
+#: src/readelf.c:1232
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4398,36 +4403,36 @@ msgstr ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
-#: src/readelf.c:1218
+#: src/readelf.c:1237
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1239
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1315
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "No se puede obtener el encabezamiento de sección %zu: %s"
-#: src/readelf.c:1307
+#: src/readelf.c:1326
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "No se pueden obtener datos para la sección %d: %s"
-#: src/readelf.c:1325
+#: src/readelf.c:1344
msgid "Program Headers:"
msgstr "encabezamientos de programa:"
-#: src/readelf.c:1327
+#: src/readelf.c:1346
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:1330
+#: src/readelf.c:1349
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4435,12 +4440,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:1387
+#: src/readelf.c:1406
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Solicitando intérprete de programa: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1433
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4450,12 +4455,12 @@ msgstr ""
" Sección para asignación de segmento:\n"
" Secciones de segmento..."
-#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112
+#: src/readelf.c:1444 src/unstrip.c:2067 src/unstrip.c:2109 src/unstrip.c:2116
#, c-format
msgid "cannot get program header: %s"
msgstr "no se puede obtener memoria para encabezamiento del programa: %s"
-#: src/readelf.c:1571
+#: src/readelf.c:1590
#, c-format
msgid ""
"\n"
@@ -4470,7 +4475,7 @@ msgstr[1] ""
"\n"
"Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1576
+#: src/readelf.c:1595
#, c-format
msgid ""
"\n"
@@ -4485,31 +4490,31 @@ msgstr[1] ""
"\n"
"Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1584
+#: src/readelf.c:1603
msgid "<INVALID SYMBOL>"
msgstr "<SÃMBOLO INVÃLIDO>"
-#: src/readelf.c:1598
+#: src/readelf.c:1617
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÃLIDA>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
-#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
+#: src/readelf.c:1640 src/readelf.c:2367 src/readelf.c:3468 src/readelf.c:12494
+#: src/readelf.c:12501 src/readelf.c:12545 src/readelf.c:12552
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1645 src/readelf.c:2372 src/readelf.c:3473
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754
-#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327
+#: src/readelf.c:1789 src/readelf.c:2439 src/readelf.c:2697 src/readelf.c:2773
+#: src/readelf.c:3077 src/readelf.c:3151 src/readelf.c:5348
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr ".debug_line section inválida"
-#: src/readelf.c:1773
+#: src/readelf.c:1792
#, c-format
msgid ""
"\n"
@@ -4530,36 +4535,36 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:1783
+#: src/readelf.c:1802
msgid " Type Value\n"
msgstr " Tipo Valor\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1826
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteca compartida: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1831
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Nombre-so de la biblioteca: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1836
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath de la biblioteca: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1841
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Ruta de ejecución de la biblioteca: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1861
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bytes)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1974 src/readelf.c:2164
#, c-format
msgid ""
"\n"
@@ -4568,7 +4573,7 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1992 src/readelf.c:2182
#, c-format
msgid ""
"\n"
@@ -4593,7 +4598,7 @@ msgstr[1] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:1988 src/readelf.c:2178
+#: src/readelf.c:2007 src/readelf.c:2197
#, c-format
msgid ""
"\n"
@@ -4610,29 +4615,29 @@ msgstr[1] ""
"Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene "
"entradas %d:\n"
-#: src/readelf.c:1998
+#: src/readelf.c:2017
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2019
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098
-#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270
-#: src/readelf.c:2292 src/readelf.c:2305
+#: src/readelf.c:2072 src/readelf.c:2083 src/readelf.c:2096 src/readelf.c:2117
+#: src/readelf.c:2129 src/readelf.c:2263 src/readelf.c:2275 src/readelf.c:2289
+#: src/readelf.c:2311 src/readelf.c:2324
msgid "<INVALID RELOC>"
msgstr "<REUBIC INVÃLIDA>"
-#: src/readelf.c:2188
+#: src/readelf.c:2207
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2209
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2447
#, c-format
msgid ""
"\n"
@@ -4647,40 +4652,40 @@ msgstr[1] ""
"\n"
"La tabla de símbolos [%2u] '%s' contiene entradas %u:\n"
-#: src/readelf.c:2433
+#: src/readelf.c:2452
#, 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:2441
+#: src/readelf.c:2460
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:2443
+#: src/readelf.c:2462
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:2463
+#: src/readelf.c:2482
#, 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:2551
+#: src/readelf.c:2570
#, c-format
msgid "bad dynamic symbol"
msgstr "símbolo dinámico erróneo"
-#: src/readelf.c:2633
+#: src/readelf.c:2652
msgid "none"
msgstr "nada"
-#: src/readelf.c:2650
+#: src/readelf.c:2669
msgid "| <unknown>"
msgstr "| <desconocido>"
-#: src/readelf.c:2681
+#: src/readelf.c:2700
#, c-format
msgid ""
"\n"
@@ -4701,17 +4706,17 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:2702
+#: src/readelf.c:2721
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2734
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2777
#, c-format
msgid ""
"\n"
@@ -4732,19 +4737,19 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:2786
+#: src/readelf.c:2805
#, 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:2801
+#: src/readelf.c:2820
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Principal %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3081
#, c-format
msgid ""
"\n"
@@ -4765,15 +4770,15 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'"
-#: src/readelf.c:3090
+#: src/readelf.c:3109
msgid " 0 *local* "
msgstr " 0 *local* "
-#: src/readelf.c:3095
+#: src/readelf.c:3114
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3137
+#: src/readelf.c:3156
#, c-format
msgid ""
"\n"
@@ -4798,22 +4803,22 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:3159
+#: src/readelf.c:3178
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Longitud Número % of total Cobertura\n"
-#: src/readelf.c:3161
+#: src/readelf.c:3180
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3187
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3181
+#: src/readelf.c:3200
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -4822,37 +4827,37 @@ msgstr ""
" Número promedio de pruebas: búsqueda exitosa: %f\n"
" búsqueda sin éxito: %f\n"
-#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329
+#: src/readelf.c:3218 src/readelf.c:3282 src/readelf.c:3348
#, 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:3207
+#: src/readelf.c:3226
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3236
+#: src/readelf.c:3255
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3271
+#: src/readelf.c:3290
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3302
+#: src/readelf.c:3321
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3338
+#: src/readelf.c:3357
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3405
+#: src/readelf.c:3424
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4862,7 +4867,7 @@ msgstr ""
" Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo "
"cambio de dispersión: %u\n"
-#: src/readelf.c:3494
+#: src/readelf.c:3513
#, c-format
msgid ""
"\n"
@@ -4879,7 +4884,7 @@ msgstr[1] ""
"Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> "
"contiene entradas %d:\n"
-#: src/readelf.c:3508
+#: src/readelf.c:3527
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4887,7 +4892,7 @@ msgstr ""
" Biblioteca Marca de tiempo Indicadores "
"de versión de suma de verificación"
-#: src/readelf.c:3558
+#: src/readelf.c:3579
#, c-format
msgid ""
"\n"
@@ -4898,102 +4903,102 @@ msgstr ""
"Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con "
"desplazamiento %#0<PRIx64>:\n"
-#: src/readelf.c:3575
+#: src/readelf.c:3596
msgid " Owner Size\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3625
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3664
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3669
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3718
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3721
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3724
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3734
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3737
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3807
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "mprotect falló"
-#: src/readelf.c:4268
+#: src/readelf.c:4289
msgid "empty block"
msgstr "bloque vacío"
-#: src/readelf.c:4271
+#: src/readelf.c:4292
#, c-format
msgid "%zu byte block:"
msgstr "bloque de byte %zu:"
-#: src/readelf.c:4749
+#: src/readelf.c:4770
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4834
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:4820
+#: src/readelf.c:4841
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> utilizado con offsetr de diferente tamaño"
-#: src/readelf.c:4827
+#: src/readelf.c:4848
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:4834
+#: src/readelf.c:4855
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:4931
+#: src/readelf.c:4952
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <MATERIAL INUTIL SIN UTILIZAR EN EL RESTO DE LA SECCION>\n"
-#: src/readelf.c:4939
+#: src/readelf.c:4960
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n"
-#: src/readelf.c:5017
+#: src/readelf.c:5038
#, c-format
msgid ""
"\n"
@@ -5004,7 +5009,7 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [ Código]\n"
-#: src/readelf.c:5025
+#: src/readelf.c:5046
#, c-format
msgid ""
"\n"
@@ -5013,20 +5018,20 @@ msgstr ""
"\n"
"Sección de abreviatura en compensación %<PRIu64>:\n"
-#: src/readelf.c:5038
+#: src/readelf.c:5059
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** error en lectura de abreviatura: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5075
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n"
-#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
-#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
-#: src/readelf.c:10179
+#: src/readelf.c:5108 src/readelf.c:5417 src/readelf.c:5584 src/readelf.c:5969
+#: src/readelf.c:6570 src/readelf.c:8307 src/readelf.c:8993 src/readelf.c:9429
+#: src/readelf.c:9674 src/readelf.c:9840 src/readelf.c:10227
+#: src/readelf.c:10287
#, c-format
msgid ""
"\n"
@@ -5035,52 +5040,52 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:5100
+#: src/readelf.c:5121
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
+#: src/readelf.c:5221 src/readelf.c:5245 src/readelf.c:5629 src/readelf.c:9038
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
+#: src/readelf.c:5223 src/readelf.c:5260 src/readelf.c:5642 src/readelf.c:9051
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
+#: src/readelf.c:5224 src/readelf.c:5269 src/readelf.c:5651 src/readelf.c:9060
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
+#: src/readelf.c:5226 src/readelf.c:5279 src/readelf.c:5661 src/readelf.c:9070
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
+#: src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055 src/readelf.c:10419
#, fuzzy, c-format
msgid "Unknown version"
msgstr "versión desconocida"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
+#: src/readelf.c:5274 src/readelf.c:5487 src/readelf.c:5656 src/readelf.c:9065
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "no hay valor de dirección"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
+#: src/readelf.c:5285 src/readelf.c:5498 src/readelf.c:5666 src/readelf.c:9075
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5338 src/readelf.c:5412
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_aranges: %s"
-#: src/readelf.c:5332
+#: src/readelf.c:5353
#, c-format
msgid ""
"\n"
@@ -5095,12 +5100,12 @@ msgstr[1] ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n"
-#: src/readelf.c:5363
+#: src/readelf.c:5384
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5386
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5108,7 +5113,7 @@ msgstr ""
" Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5409 src/readelf.c:8226
+#: src/readelf.c:5430 src/readelf.c:8334
#, fuzzy, c-format
msgid ""
"\n"
@@ -5117,152 +5122,152 @@ msgstr ""
"\n"
"Tabla en compensación %Zu:\n"
-#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8911
+#: src/readelf.c:5434 src/readelf.c:5610 src/readelf.c:6594 src/readelf.c:8345
+#: src/readelf.c:9019
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:5429
+#: src/readelf.c:5450
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5441
+#: src/readelf.c:5462
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5466
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5456
+#: src/readelf.c:5477
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5462
+#: src/readelf.c:5483
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5473
+#: src/readelf.c:5494
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5549
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5572
+#: src/readelf.c:5593
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:5595 src/readelf.c:8917
+#: src/readelf.c:5616 src/readelf.c:9025
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5650 src/readelf.c:8972
+#: src/readelf.c:5671 src/readelf.c:9080
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5687 src/readelf.c:9096
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5689 src/readelf.c:9098
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5695 src/readelf.c:9104
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5706 src/readelf.c:9115
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5710 src/readelf.c:9119
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5762
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "datos inválidos"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5947 src/readelf.c:9407
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:5943
+#: src/readelf.c:5964
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6000 src/readelf.c:9462
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6002 src/readelf.c:9464
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6011 src/readelf.c:9490 src/readelf.c:9516
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6032 src/readelf.c:9596
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] (dirección base) %s\n"
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6040 src/readelf.c:9604
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] lista vacía\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6295
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6548
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6566
#, c-format
msgid ""
"\n"
@@ -5272,7 +5277,7 @@ msgstr ""
"Sección de información de marco de llamada [%2zu] '%s' en compensación "
"%#<PRIx64>:\n"
-#: src/readelf.c:6595
+#: src/readelf.c:6616
#, c-format
msgid ""
"\n"
@@ -5281,65 +5286,65 @@ msgstr ""
"\n"
" [%6tx] Terminator cero\n"
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6717 src/readelf.c:6871
#, c-format
msgid "invalid augmentation length"
msgstr "longitud de aumento inválida"
-#: src/readelf.c:6711
+#: src/readelf.c:6732
msgid "FDE address encoding: "
msgstr "Codificación de dirección FDE:"
-#: src/readelf.c:6717
+#: src/readelf.c:6738
msgid "LSDA pointer encoding: "
msgstr "Codificación de puntero LSDA:"
-#: src/readelf.c:6827
+#: src/readelf.c:6848
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6855
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6892
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr "Puntero %-26sLSDA: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6977
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "No se puede obtener código de atributo: %s"
-#: src/readelf.c:6966
+#: src/readelf.c:6987
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "No se puede obtener forma de atributo: %s"
-#: src/readelf.c:6988
+#: src/readelf.c:7009
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "No se puede obtener valor: %s"
-#: src/readelf.c:7321
+#: src/readelf.c:7339
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Archivo inválido"
-#: src/readelf.c:7325
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7660
#, c-format
msgid ""
"\n"
@@ -5350,12 +5355,12 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:7602
+#: src/readelf.c:7710
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7729
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5368,7 +5373,7 @@ msgstr ""
"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:7633
+#: src/readelf.c:7741
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5379,39 +5384,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:7643 src/readelf.c:7806
+#: src/readelf.c:7751 src/readelf.c:7914
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7778
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7807
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "no se puede obtener DIE en compensación: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7816
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] 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:7746
+#: src/readelf.c:7854
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "No se puede obtener próximo DIE: %s\n"
-#: src/readelf.c:7754
+#: src/readelf.c:7862
#, c-format
msgid "cannot get next DIE: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7906
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5422,7 +5427,7 @@ 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:7850
+#: src/readelf.c:7958
#, fuzzy, c-format
msgid ""
"\n"
@@ -5432,18 +5437,18 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:8182
+#: src/readelf.c:8290
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "Forma %<PRIx64> desconocida"
-#: src/readelf.c:8213
+#: src/readelf.c:8321
#, c-format
msgid "cannot get line data section data: %s"
msgstr "No se puede obtener sección de datos de línea: %s"
#. Print what we got so far.
-#: src/readelf.c:8315
+#: src/readelf.c:8423
#, fuzzy, c-format
msgid ""
"\n"
@@ -5474,34 +5479,34 @@ msgstr ""
"\n"
"Códigos operativos:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8445
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "no se puede obtener versión de símbolo: %s"
-#: src/readelf.c:8345
+#: src/readelf.c:8453
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "no hay valor de dirección"
-#: src/readelf.c:8353
+#: src/readelf.c:8461
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:8363
+#: src/readelf.c:8471
#, 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:8378
+#: src/readelf.c:8486
#, 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:8389
+#: src/readelf.c:8497
msgid ""
"\n"
"Directory table:"
@@ -5509,12 +5514,12 @@ msgstr ""
"\n"
"Tabla de Directorio:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8503 src/readelf.c:8580
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8466
+#: src/readelf.c:8574
#, fuzzy
msgid ""
"\n"
@@ -5523,7 +5528,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:8527
+#: src/readelf.c:8635
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5531,7 +5536,7 @@ msgstr ""
"Tabla de nombre de archivo:\n"
" Directorio de entrada Tiempo Tamaño Nombre"
-#: src/readelf.c:8564
+#: src/readelf.c:8672
msgid ""
"\n"
"Line number statements:"
@@ -5539,121 +5544,121 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:8587
+#: src/readelf.c:8695
#, fuzzy, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "longitud mínima inválida de tamaño de cadena coincidente"
-#: src/readelf.c:8621
+#: src/readelf.c:8729
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " opcode especial %u: dirección+%u = %s, línea%+d = %zu\n"
-#: src/readelf.c:8625
+#: src/readelf.c:8733
#, fuzzy, c-format
msgid ", 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:8628
+#: src/readelf.c:8736
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8754
#, c-format
msgid " extended opcode %u: "
msgstr " Código operativo extendido %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8759
#, fuzzy
msgid " end of sequence"
msgstr "Fin de secuencia"
-#: src/readelf.c:8669
+#: src/readelf.c:8777
#, fuzzy, c-format
msgid " set address to "
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8805
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, nombre="
"%s\n"
-#: src/readelf.c:8711
+#: src/readelf.c:8819
#, c-format
msgid " set discriminator to %u\n"
msgstr " establecer discriminador a %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8824
#, fuzzy
msgid " unknown opcode"
msgstr "código operativo desconocido "
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8836
msgid " copy"
msgstr "Copiar"
-#: src/readelf.c:8739
+#: src/readelf.c:8847
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "Dirección de avance por %u a %s\n"
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8851 src/readelf.c:8912
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8863
#, 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:8765
+#: src/readelf.c:8873
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8884
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8891
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8897
msgid " set basic block flag"
msgstr "Establecer bandera de bloque básico"
-#: src/readelf.c:8800
+#: src/readelf.c:8908
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "Dirección de avance por constante %u a %s\n"
-#: src/readelf.c:8820
+#: src/readelf.c:8928
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "dirección de avance por valor corregido %u a %s\n"
#. Takes no argument.
-#: src/readelf.c:8830
+#: src/readelf.c:8938
msgid " set prologue end flag"
msgstr " Establecer bandera prologue_end"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8943
msgid " set epilogue begin flag"
msgstr " Establecer bandera epilogue_begin"
-#: src/readelf.c:8845
+#: src/readelf.c:8953
#, c-format
msgid " set isa to %u\n"
msgstr " establecer isa para %u\n"
@@ -5661,105 +5666,105 @@ msgstr " establecer isa para %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8854
+#: src/readelf.c:8962
#, 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:8894
+#: src/readelf.c:9002
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9171
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "datos inválidos"
-#: src/readelf.c:9316
+#: src/readelf.c:9424
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9631 src/readelf.c:10675
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9686 src/readelf.c:9849
#, 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:9658
+#: src/readelf.c:9766
#, 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:9681
+#: src/readelf.c:9789
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** cadena no finalizada al final de la sección"
-#: src/readelf.c:9782
+#: src/readelf.c:9890
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9902
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9908 src/readelf.c:10795
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9807
+#: src/readelf.c:9915
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9944
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:9844
+#: src/readelf.c:9952
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:9869
+#: src/readelf.c:9977
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " opcódigo con parámetro %<PRIu8> desconocido:"
-#: src/readelf.c:9876
+#: src/readelf.c:9984
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:9996
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] argumento %hhu \n"
-#: src/readelf.c:9903
+#: src/readelf.c:10011
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10104
+#: src/readelf.c:10212
#, 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:10148
+#: src/readelf.c:10256
#, c-format
msgid ""
"\n"
@@ -5770,37 +5775,37 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" %*s String\n"
-#: src/readelf.c:10163
+#: src/readelf.c:10271
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** error en lectura de cadenas: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10300
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10399
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10293
+#: src/readelf.c:10401
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10307
+#: src/readelf.c:10415
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10424
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10370
+#: src/readelf.c:10478
#, c-format
msgid ""
"\n"
@@ -5809,7 +5814,7 @@ msgstr ""
"\n"
"Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10472
+#: src/readelf.c:10580
#, c-format
msgid ""
"\n"
@@ -5818,22 +5823,22 @@ msgstr ""
"\n"
"Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10603
#, c-format
msgid " LPStart encoding: %#x "
msgstr "Codificación LPStart: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10615
#, c-format
msgid " TType encoding: %#x "
msgstr "Codificación TType: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10630
#, c-format
msgid " Call site encoding: %#x "
msgstr "Codificación de sitio de llamada: %#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10643
msgid ""
"\n"
" Call site table:"
@@ -5841,7 +5846,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:10549
+#: src/readelf.c:10657
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5854,12 +5859,12 @@ msgstr ""
" Landing pad: %#<PRIx64>\n"
" Action: %u\n"
-#: src/readelf.c:10622
+#: src/readelf.c:10730
#, c-format
msgid "invalid TType encoding"
msgstr "Codificación TType inválida"
-#: src/readelf.c:10649
+#: src/readelf.c:10757
#, fuzzy, c-format
msgid ""
"\n"
@@ -5868,37 +5873,37 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10678
+#: src/readelf.c:10786
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10804
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10703
+#: src/readelf.c:10811
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10710
+#: src/readelf.c:10818
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10717
+#: src/readelf.c:10825
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10724
+#: src/readelf.c:10832
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10738
+#: src/readelf.c:10846
#, fuzzy, c-format
msgid ""
"\n"
@@ -5907,7 +5912,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10763
+#: src/readelf.c:10871
#, fuzzy, c-format
msgid ""
"\n"
@@ -5916,7 +5921,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10792
+#: src/readelf.c:10900
#, fuzzy, c-format
msgid ""
"\n"
@@ -5925,7 +5930,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10824
+#: src/readelf.c:10932
#, fuzzy, c-format
msgid ""
"\n"
@@ -5934,18 +5939,18 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:10962
+#: src/readelf.c:11070
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "no se puede depurar descriptor de contexto: %s"
-#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
-#: src/readelf.c:12116
+#: src/readelf.c:11433 src/readelf.c:12055 src/readelf.c:12166
+#: src/readelf.c:12224
#, c-format
msgid "cannot convert core note data: %s"
msgstr "no es posible convertir datos de la nota principal: %s"
-#: src/readelf.c:11688
+#: src/readelf.c:11796
#, c-format
msgid ""
"\n"
@@ -5954,21 +5959,21 @@ msgstr ""
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:12195
+#: src/readelf.c:12303
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12332
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12384
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "no se puede obtener el contenido de sección de nota: %s"
-#: src/readelf.c:12303
+#: src/readelf.c:12411
#, c-format
msgid ""
"\n"
@@ -5977,7 +5982,7 @@ msgstr ""
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12326
+#: src/readelf.c:12434
#, c-format
msgid ""
"\n"
@@ -5986,7 +5991,7 @@ msgstr ""
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12373
+#: src/readelf.c:12481
#, fuzzy, c-format
msgid ""
"\n"
@@ -5995,12 +6000,12 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12400 src/readelf.c:12451
+#: src/readelf.c:12508 src/readelf.c:12559
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "no se pueden obtener datos para sección [%Zu] '%s': %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12513
#, fuzzy, c-format
msgid ""
"\n"
@@ -6010,7 +6015,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12410
+#: src/readelf.c:12518
#, fuzzy, c-format
msgid ""
"\n"
@@ -6021,7 +6026,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12424
+#: src/readelf.c:12532
#, fuzzy, c-format
msgid ""
"\n"
@@ -6030,7 +6035,7 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12456
+#: src/readelf.c:12564
#, fuzzy, c-format
msgid ""
"\n"
@@ -6040,7 +6045,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12461
+#: src/readelf.c:12569
#, fuzzy, c-format
msgid ""
"\n"
@@ -6051,7 +6056,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12510
+#: src/readelf.c:12618
#, c-format
msgid ""
"\n"
@@ -6060,7 +6065,7 @@ msgstr ""
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:12539
+#: src/readelf.c:12647
#, c-format
msgid ""
"\n"
@@ -6069,12 +6074,12 @@ msgstr ""
"\n"
"sección '%s' no existe"
-#: src/readelf.c:12596
+#: src/readelf.c:12704
#, 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:12599
+#: src/readelf.c:12707
#, c-format
msgid ""
"\n"
@@ -6083,7 +6088,7 @@ msgstr ""
"\n"
"Archivo '%s' no tiene índice de símbolo\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12711
#, fuzzy, c-format
msgid ""
"\n"
@@ -6092,12 +6097,12 @@ msgstr ""
"\n"
"Ãndice de archivo '%s' tiene %Zu entradas:\n"
-#: src/readelf.c:12621
+#: src/readelf.c:12729
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "no es posible extraer miembro en compensación %Zu en '%s': %s"
-#: src/readelf.c:12626
+#: src/readelf.c:12734
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Miembro de archivo contiene '%s':\n"
@@ -6164,12 +6169,17 @@ msgstr "Radical inválido: %s"
msgid "%s: file format not recognized"
msgstr "%s: No se reconoce el formato del fichero"
-#: src/size.c:418 src/size.c:551
+#: src/size.c:418 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
-#: src/size.c:576
+#: src/size.c:482
+#, fuzzy, c-format
+msgid "cannot get section header"
+msgstr "no se puede obtener encabezamiento de sección\n"
+
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(TOTALES)\n"
@@ -6531,7 +6541,7 @@ msgstr "%s: error al crear encabezamiento ELF: %s"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:1654 src/strip.c:2534
+#: src/strip.c:1654 src/strip.c:2535
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
@@ -6561,47 +6571,47 @@ msgstr "al crear tabla de cadenas de encabezamiento de sección: %s"
msgid "no memory to create section header string table"
msgstr "al crear tabla de cadenas de encabezamiento de sección: %s"
-#: src/strip.c:2027
+#: src/strip.c:2028
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2450 src/strip.c:2558
+#: src/strip.c:2451 src/strip.c:2559
#, c-format
msgid "while writing '%s': %s"
msgstr "al escribir '%s': %s"
-#: src/strip.c:2461
+#: src/strip.c:2462
#, c-format
msgid "while creating '%s'"
msgstr "al crear '%s'"
-#: src/strip.c:2484
+#: src/strip.c:2485
#, c-format
msgid "while computing checksum for debug information"
msgstr "al computar la suma de verificación para información de depuración"
-#: src/strip.c:2525
+#: src/strip.c:2526
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:2543
+#: src/strip.c:2544
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: error al leer el fichero: %s"
-#: src/strip.c:2583 src/strip.c:2603
+#: src/strip.c:2584 src/strip.c:2604
#, c-format
msgid "while writing '%s'"
msgstr "al escribir '%s'"
-#: src/strip.c:2640 src/strip.c:2647
+#: src/strip.c:2641 src/strip.c:2648
#, c-format
msgid "error while finishing '%s': %s"
msgstr "Error al terminar '%s': %s"
-#: src/strip.c:2664 src/strip.c:2740
+#: src/strip.c:2665 src/strip.c:2741
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "no es posible establecer acceso y fecha de modificación de '%s'"
@@ -6689,7 +6699,7 @@ msgstr "no se puede crear el encabezamiento ELF: %s"
msgid "cannot get shdrstrndx:%s"
msgstr "No se puede encontrar la sección: %s"
-#: src/unstrip.c:248 src/unstrip.c:2034
+#: src/unstrip.c:248 src/unstrip.c:2038
#, c-format
msgid "cannot get ELF header: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
@@ -6709,12 +6719,12 @@ msgstr "no se puede actualizar reubicación: %s"
msgid "cannot copy ELF header: %s"
msgstr "no se puede copiar encabezamiento ELF: %s"
-#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095
+#: src/unstrip.c:269 src/unstrip.c:2056 src/unstrip.c:2099
#, fuzzy, c-format
msgid "cannot get number of program headers: %s"
msgstr "no se pudo determinar la cantidad de encabezados de programa: %s"
-#: src/unstrip.c:274 src/unstrip.c:2056
+#: src/unstrip.c:274 src/unstrip.c:2060
#, c-format
msgid "cannot create program headers: %s"
msgstr "No pueden crear encabezamientos de programa: %s"
@@ -6729,12 +6739,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:293 src/unstrip.c:1665
+#: src/unstrip.c:293 src/unstrip.c:1669
#, c-format
msgid "cannot get section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/unstrip.c:295 src/unstrip.c:1667
+#: src/unstrip.c:295 src/unstrip.c:1671
#, c-format
msgid "cannot copy section data: %s"
msgstr "no pueden copiar datos de sección: %s"
@@ -6744,13 +6754,14 @@ 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:391 src/unstrip.c:845 src/unstrip.c:1702
+#: src/unstrip.c:391 src/unstrip.c:647 src/unstrip.c:681 src/unstrip.c:847
+#: src/unstrip.c:1706
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "no se puede obtener entrada de tabla de símbolos: %s"
-#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682
-#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942
+#: src/unstrip.c:407 src/unstrip.c:650 src/unstrip.c:671 src/unstrip.c:684
+#: src/unstrip.c:1727 src/unstrip.c:1922 src/unstrip.c:1946
#, c-format
msgid "cannot update symbol table: %s"
msgstr "no se puede actualizar tabla de símbolos: %s"
@@ -6775,140 +6786,140 @@ msgstr "no se puede obtener versión de símbolo: %s"
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:851
+#: src/unstrip.c:853
#, fuzzy, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "compensación de cadena inválida en símbolo [%Zu]"
-#: src/unstrip.c:1009 src/unstrip.c:1398
+#: src/unstrip.c:1011 src/unstrip.c:1402
#, fuzzy, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "no se puede leer nombre [%Zu]: %s"
-#: src/unstrip.c:1024
+#: src/unstrip.c:1026
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr ".debug_line section inválida"
-#: src/unstrip.c:1030
+#: src/unstrip.c:1032
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "No se puede obtener encabezamiento de sección 0th: %s"
-#: src/unstrip.c:1035
+#: src/unstrip.c:1037
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "no se puede obtener sección para símbolos\n"
-#: src/unstrip.c:1041
+#: src/unstrip.c:1043
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "no se puede obtener versión de símbolo: %s"
-#: src/unstrip.c:1046
+#: src/unstrip.c:1048
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "No se puede obtener el encabezamiento de sección %zu: %s"
-#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145
+#: src/unstrip.c:1090 src/unstrip.c:1109 src/unstrip.c:1147
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "no se puede leer sección '.gnu.prelink_undo': %s"
-#: src/unstrip.c:1125
+#: src/unstrip.c:1127
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1136
+#: src/unstrip.c:1138
#, c-format
msgid "invalid contents in '%s' section"
msgstr "contenido inválido en sección '%s'"
-#: src/unstrip.c:1192 src/unstrip.c:1524
+#: src/unstrip.c:1194 src/unstrip.c:1528
#, fuzzy, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "no se puede hallar sección coincidente para [%Zu] '%s'"
-#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877
+#: src/unstrip.c:1319 src/unstrip.c:1335 src/unstrip.c:1607 src/unstrip.c:1881
#, 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:1341
+#: src/unstrip.c:1344
#, 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:1369 src/unstrip.c:1373
+#: src/unstrip.c:1373 src/unstrip.c:1377
#, 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:1377 src/unstrip.c:1381 src/unstrip.c:1618
+#: src/unstrip.c:1381 src/unstrip.c:1385 src/unstrip.c:1622
#, c-format
msgid "cannot get section count: %s"
msgstr "No se puede obtener cuenta de sección: %s"
-#: src/unstrip.c:1384
+#: src/unstrip.c:1388
#, 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:1446 src/unstrip.c:1539
+#: src/unstrip.c:1450 src/unstrip.c:1543
#, 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:1597
+#: src/unstrip.c:1601
#, c-format
msgid "cannot add new section: %s"
msgstr "No se puede añadir nueva sección: %s"
-#: src/unstrip.c:1710
+#: src/unstrip.c:1714
#, fuzzy, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "símbolo [%Zu] tiene índice de sección inválido"
-#: src/unstrip.c:1742
+#: src/unstrip.c:1746
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "símbolo [%Zu] tiene índice de sección inválido"
-#: src/unstrip.c:2013
+#: src/unstrip.c:2017
#, c-format
msgid "cannot read section data: %s"
msgstr "no se puede leer la sección de datos: %s"
-#: src/unstrip.c:2042
+#: src/unstrip.c:2046
#, c-format
msgid "cannot update ELF header: %s"
msgstr "No se puede actualizar encabezamiento ELF: %s"
-#: src/unstrip.c:2066
+#: src/unstrip.c:2070
#, c-format
msgid "cannot update program header: %s"
msgstr "no se puede actualizar encabezamiento de programa: %s"
-#: src/unstrip.c:2071 src/unstrip.c:2153
+#: src/unstrip.c:2075 src/unstrip.c:2157
#, c-format
msgid "cannot write output file: %s"
msgstr "no se puede escribir al archivo de salida: %s"
-#: src/unstrip.c:2122
+#: src/unstrip.c:2126
#, 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:2125
+#: src/unstrip.c:2129
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -6916,77 +6927,77 @@ msgstr ""
"Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere "
"prelink -u"
-#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293
+#: src/unstrip.c:2148 src/unstrip.c:2199 src/unstrip.c:2211 src/unstrip.c:2297
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "no se puede crear un descriptor ELF: %s"
-#: src/unstrip.c:2186
+#: src/unstrip.c:2190
msgid "WARNING: "
msgstr ""
-#: src/unstrip.c:2188
+#: src/unstrip.c:2192
msgid ", use --force"
msgstr ""
-#: src/unstrip.c:2211
+#: src/unstrip.c:2215
msgid "ELF header identification (e_ident) different"
msgstr ""
-#: src/unstrip.c:2214
+#: src/unstrip.c:2218
msgid "ELF header type (e_type) different"
msgstr ""
-#: src/unstrip.c:2217
+#: src/unstrip.c:2221
msgid "ELF header machine type (e_machine) different"
msgstr ""
-#: src/unstrip.c:2220
+#: src/unstrip.c:2224
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr ""
-#: src/unstrip.c:2250
+#: src/unstrip.c:2254
#, 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:2254
+#: src/unstrip.c:2258
#, 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:2269
+#: src/unstrip.c:2273
#, 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:2273
+#: src/unstrip.c:2277
#, 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:2286
+#: src/unstrip.c:2290
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "No se obtuvo el archivo '%s' de módulo '%s' "
-#: src/unstrip.c:2317
+#: src/unstrip.c:2321
#, 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:2450
+#: src/unstrip.c:2454
#, c-format
msgid "no matching modules found"
msgstr "No se encontraron módulos coincidentes"
-#: src/unstrip.c:2459
+#: src/unstrip.c:2463
#, c-format
msgid "matched more than one module"
msgstr "coincidió con más de un módulo"
-#: src/unstrip.c:2503
+#: src/unstrip.c:2507
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -6994,7 +7005,7 @@ msgstr ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
-#: src/unstrip.c:2504
+#: src/unstrip.c:2508
#, fuzzy
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
@@ -7047,7 +7058,7 @@ msgstr ""
"file. DEBUGFILE is the separate debuginfo file name, or - if no debuginfo "
"was found, or . if FILE contains the debug information."
-#: tests/backtrace.c:437
+#: tests/backtrace.c:436
msgid "Run executable"
msgstr ""
diff --git a/po/ja.po b/po/ja.po
index 1dfb89eb..c1d81c29 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ja\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2019-02-14 14:31+0100\n"
+"POT-Creation-Date: 2019-08-13 23:38+0200\n"
"PO-Revision-Date: 2009-09-20 15:32+0900\n"
"Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n"
"Language-Team: Japanese <jp@li.org>\n"
@@ -50,8 +50,8 @@ msgstr ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
-#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
+#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3433
+#: src/readelf.c:11382 src/unstrip.c:2350 src/unstrip.c:2556
#, c-format
msgid "memory exhausted"
msgstr "メモリー消費済ã¿"
@@ -293,7 +293,7 @@ msgstr "ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰"
msgid ".debug_addr section missing"
msgstr ".debug_ranges セクションãŒã‚ã‚Šã¾ã›ã‚“"
-#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493
+#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2497
msgid "Input selection options:"
msgstr "é¸æŠžã‚ªãƒ—ションを入力ã—ã¦ãã ã•ã„:"
@@ -599,7 +599,7 @@ msgstr " OS: %sã€ABI: "
msgid "Stand alone"
msgstr "スタンドアローン"
-#: libebl/eblsymbolbindingname.c:67 libebl/eblsymboltypename.c:73
+#: libebl/eblsymbolbindingname.c:68 libebl/eblsymboltypename.c:74
#, c-format
msgid "<unknown>: %d"
msgstr "<ä¸æ˜Ž>: %d"
@@ -624,7 +624,7 @@ msgstr "ソース演算å­ã®å¤§ãã•ãŒç„¡åŠ¹"
msgid "invalid size of destination operand"
msgstr "宛先演算å­ã®å¤§ãã•ãŒç„¡åŠ¹"
-#: libelf/elf_error.c:87 src/readelf.c:6129
+#: libelf/elf_error.c:87 src/readelf.c:6150
#, c-format
msgid "invalid encoding"
msgstr "無効ãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰"
@@ -711,8 +711,8 @@ msgstr "データ/scnãŒä¸æ•´åˆã§ã™"
msgid "invalid section header"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼"
-#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
-#: src/readelf.c:10491 src/readelf.c:10673
+#: libelf/elf_error.c:191 src/readelf.c:9898 src/readelf.c:10498
+#: src/readelf.c:10599 src/readelf.c:10781
#, c-format
msgid "invalid data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
@@ -1374,7 +1374,7 @@ msgstr ""
#: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141
#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021
-#: src/unstrip.c:2142 src/unstrip.c:2171
+#: src/unstrip.c:2146 src/unstrip.c:2175
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' ã‚’é–‹ã‘ã¾ã›ã‚“"
@@ -1500,7 +1500,7 @@ msgstr ""
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr "ELF ファイル㌠gABI/psABI 仕様ã¸æº–æ‹ ã—ã¦ã„ã‚‹ã‹ã®åŽ³å¯†ãªãƒã‚§ãƒƒã‚¯ã€‚"
-#: src/elflint.c:154 src/readelf.c:346
+#: src/elflint.c:154 src/readelf.c:357
#, c-format
msgid "cannot open input file"
msgstr "入力ファイルを開ã‘ã¾ã›ã‚“"
@@ -1519,7 +1519,7 @@ msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n"
msgid "No errors"
msgstr "エラーã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/elflint.c:219 src/readelf.c:545
+#: src/elflint.c:219 src/readelf.c:559
msgid "Missing file name.\n"
msgstr "ファイルåãŒã‚ã‚Šã¾ã›ã‚“。\n"
@@ -3508,7 +3508,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: 内部エラー %d (%s-%s): %s"
#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2747
+#: src/strip.c:2748
#, c-format
msgid "while closing '%s'"
msgstr "'%s' ã‚’é–‰ã˜ã¦ã„る最中"
@@ -3553,19 +3553,19 @@ msgstr "%s%s%s: ファイル形å¼ã‚’èªè­˜ã§ãã¾ã›ã‚“"
msgid "cannot create search tree"
msgstr "検索ツリーを生æˆã§ãã¾ã›ã‚“"
-#: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605
-#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
-#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
-#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
-#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
+#: src/nm.c:746 src/nm.c:1205 src/objdump.c:777 src/readelf.c:619
+#: src/readelf.c:1431 src/readelf.c:1582 src/readelf.c:1783 src/readelf.c:1989
+#: src/readelf.c:2179 src/readelf.c:2357 src/readelf.c:2433 src/readelf.c:2691
+#: src/readelf.c:2767 src/readelf.c:2854 src/readelf.c:3452 src/readelf.c:3502
+#: src/readelf.c:3565 src/readelf.c:11214 src/readelf.c:12399
+#: src/readelf.c:12603 src/readelf.c:12671 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
#. We always print this prolog.
-#: src/nm.c:773
+#: src/nm.c:771
#, c-format
msgid ""
"\n"
@@ -3579,7 +3579,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:776
+#: src/nm.c:774
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -3588,28 +3588,28 @@ msgstr ""
"%*s%-*s %-*s クラス タイプ %-*s %*s セクション\n"
"\n"
-#: src/nm.c:1218
+#: src/nm.c:1216
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: セクションã®é …ç›®ã®å¤§ãã• `%s' ã¯äºˆæœŸã—ãŸã‚‚ã®ã¨ã¯ç•°ãªã‚Šã¾ã™"
-#: src/nm.c:1223
+#: src/nm.c:1221
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: セクション `%s' ã®å¤§ãã•ã¯é …ç›®ã®å¤§ãã•ã®æ•´æ•°å€ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/nm.c:1302
+#: src/nm.c:1300
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: セクションã®é …ç›®ã®å¤§ãã• `%s' ã¯äºˆæœŸã—ãŸã‚‚ã®ã¨ã¯ç•°ãªã‚Šã¾ã™"
#. XXX Add machine specific object file types.
-#: src/nm.c:1528
+#: src/nm.c:1526
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: ä¸å½“ãªæ“作"
-#: src/nm.c:1585
+#: src/nm.c:1583
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: シンボルãŒã‚ã‚Šã¾ã›ã‚“"
@@ -3644,7 +3644,7 @@ msgstr ""
msgid "Show information from FILEs (a.out by default)."
msgstr ""
-#: src/objdump.c:218 src/readelf.c:550
+#: src/objdump.c:218 src/readelf.c:564
msgid "No operation specified.\n"
msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n"
@@ -3653,11 +3653,11 @@ msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n"
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257
+#: src/objdump.c:363 src/readelf.c:2084 src/readelf.c:2276
msgid "INVALID SYMBOL"
msgstr "ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«"
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2118 src/readelf.c:2312
msgid "INVALID SECTION"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³"
@@ -3843,151 +3843,151 @@ msgid "Print information from ELF file in human-readable form."
msgstr "ELF ファイルã‹ã‚‰äººé–“ãŒèª­ã‚ã‚‹å½¢ã§æƒ…報をå°åˆ·ã™ã‚‹ã€‚"
#. Look up once.
-#: src/readelf.c:328
+#: src/readelf.c:339
msgid "yes"
msgstr "ã¯ã„"
-#: src/readelf.c:329
+#: src/readelf.c:340
msgid "no"
msgstr "ã„ã„ãˆ"
-#: src/readelf.c:518
+#: src/readelf.c:532
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "ä¸æ˜Žãª DWARF デãƒãƒƒã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ `%s'.\n"
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:603 src/readelf.c:714
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133
+#: src/readelf.c:610 src/readelf.c:937 src/strip.c:1133
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436
+#: src/readelf.c:628 src/readelf.c:1247 src/readelf.c:1455
#, c-format
msgid "cannot get section: %s"
msgstr "セクションを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
+#: src/readelf.c:637 src/readelf.c:1254 src/readelf.c:1463 src/readelf.c:12623
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
-#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
-#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
-#: src/unstrip.c:1909 src/unstrip.c:2004
+#: src/unstrip.c:621 src/unstrip.c:661 src/unstrip.c:873 src/unstrip.c:1204
+#: src/unstrip.c:1331 src/unstrip.c:1355 src/unstrip.c:1398 src/unstrip.c:1462
+#: src/unstrip.c:1636 src/unstrip.c:1770 src/unstrip.c:1913 src/unstrip.c:2008
#, c-format
msgid "cannot get section header: %s"
msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:631
+#: src/readelf.c:645
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "セクションを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
-#: src/readelf.c:10658
+#: src/readelf.c:654 src/readelf.c:6560 src/readelf.c:10486 src/readelf.c:10588
+#: src/readelf.c:10766
#, c-format
msgid "cannot get %s content: %s"
msgstr "%s ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:656
+#: src/readelf.c:670
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "æ–°ã—ã„ファイル '%s' を生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:665
+#: src/readelf.c:679
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
-#: src/readelf.c:671 src/readelf.c:688 src/readelf.c:717
+#: src/readelf.c:685 src/readelf.c:702 src/readelf.c:731
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/readelf.c:678
+#: src/readelf.c:692
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/readelf.c:712
+#: src/readelf.c:726
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ãªãã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–索引をå°åˆ·ã§ãã¾ã›ã‚“"
-#: src/readelf.c:816
+#: src/readelf.c:830
#, c-format
msgid "cannot stat input file"
msgstr "入力ファイルを stat ã§ãã¾ã›ã‚“"
-#: src/readelf.c:818
+#: src/readelf.c:832
#, c-format
msgid "input file is empty"
msgstr "入力ファイルãŒç©ºã§ã™"
-#: src/readelf.c:820
+#: src/readelf.c:834
#, c-format
msgid "failed reading '%s': %s"
msgstr "'%s' ã®èª­è¾¼ã¿ã«å¤±æ•—: %s"
-#: src/readelf.c:849
+#: src/readelf.c:863
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:908
+#: src/readelf.c:922
#, c-format
msgid "cannot read ELF header: %s"
msgstr "ELF ヘッダーãŒèª­ã‚ã¾ã›ã‚“: %s"
-#: src/readelf.c:916
+#: src/readelf.c:930
#, c-format
msgid "cannot create EBL handle"
msgstr "EBL ヘッダーを生æˆã§ãã¾ã›ã‚“"
-#: src/readelf.c:929
+#: src/readelf.c:943
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:961
+#: src/readelf.c:975
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "%s を読ã¿ã¾ã›ã‚“: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1036
msgid "NONE (None)"
msgstr "ãªã— (ãªã—)"
-#: src/readelf.c:1023
+#: src/readelf.c:1037
msgid "REL (Relocatable file)"
msgstr "REL (リロケータブルファイル)"
-#: src/readelf.c:1024
+#: src/readelf.c:1038
msgid "EXEC (Executable file)"
msgstr "(EXEC (実行ファイル)"
-#: src/readelf.c:1025
+#: src/readelf.c:1039
msgid "DYN (Shared object file)"
msgstr "DYN (共用オブジェクトファイル)"
-#: src/readelf.c:1026
+#: src/readelf.c:1040
msgid "CORE (Core file)"
msgstr "CORE (コアファイル)"
-#: src/readelf.c:1031
+#: src/readelf.c:1045
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS 固有: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1047
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "プロセッサー固有: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1057
msgid ""
"ELF Header:\n"
" Magic: "
@@ -3995,7 +3995,7 @@ msgstr ""
"ELF ヘッダー:\n"
" マジック: "
-#: src/readelf.c:1047
+#: src/readelf.c:1061
#, c-format
msgid ""
"\n"
@@ -4004,118 +4004,123 @@ msgstr ""
"\n"
" クラス: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1066
#, c-format
msgid " Data: %s\n"
msgstr " データ: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1072
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " 識別ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd %s\n"
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1074 src/readelf.c:1096
msgid "(current)"
msgstr "(ç¾åœ¨)"
-#: src/readelf.c:1064
+#: src/readelf.c:1078
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1081
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1084
msgid " Type: "
msgstr " タイプ: "
-#: src/readelf.c:1073
+#: src/readelf.c:1089
#, c-format
msgid " Machine: %s\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1091
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " マシン : %s\n"
+
+#: src/readelf.c:1094
#, c-format
msgid " Version: %d %s\n"
msgstr " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1098
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1101
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " プログラムヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1083 src/readelf.c:1086
+#: src/readelf.c:1102 src/readelf.c:1105
msgid "(bytes into file)"
msgstr "(ファイルã¸ã®ãƒã‚¤ãƒˆæ•°)"
-#: src/readelf.c:1085
+#: src/readelf.c:1104
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " セクションヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1088
+#: src/readelf.c:1107
#, c-format
msgid " Flags: %s\n"
msgstr " フラグ: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1110
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " ã“ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã®å¤§ãã•: %<PRId16> %s\n"
-#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112
+#: src/readelf.c:1111 src/readelf.c:1114 src/readelf.c:1131
msgid "(bytes)"
msgstr "(ãƒã‚¤ãƒˆ)"
-#: src/readelf.c:1094
+#: src/readelf.c:1113
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " プログラムヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1097
+#: src/readelf.c:1116
#, fuzzy, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " プログラムヘッダー項目ã®æ•° : %<PRId16>\n"
-#: src/readelf.c:1104
+#: src/readelf.c:1123
#, fuzzy, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138
+#: src/readelf.c:1126 src/readelf.c:1143 src/readelf.c:1157
msgid " ([0] not available)"
msgstr "([0]ã¯ä½¿ãˆã¾ã›ã‚“)"
-#: src/readelf.c:1111
+#: src/readelf.c:1130
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " セクションヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1114
+#: src/readelf.c:1133
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " セクションヘッダー項目ã®æ•° : %<PRId16>"
-#: src/readelf.c:1121
+#: src/readelf.c:1140
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " ([0].sh_size ã® %<PRIu32>)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1134
+#: src/readelf.c:1153
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1142
+#: src/readelf.c:1161
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4124,7 +4129,7 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: XINDEX%s\n"
"\n"
-#: src/readelf.c:1146
+#: src/readelf.c:1165
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4133,12 +4138,12 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: %<PRId16>\n"
"\n"
-#: src/readelf.c:1193 src/readelf.c:1401
+#: src/readelf.c:1212 src/readelf.c:1420
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1215
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4147,16 +4152,16 @@ msgstr ""
"オフセット %2$#<PRIx64> ã‹ã‚‰å§‹ã¾ã‚‹ %1$d 個ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚ã‚Šã¾ã™:\n"
"\n"
-#: src/readelf.c:1205
+#: src/readelf.c:1224
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
-#: src/readelf.c:1208
+#: src/readelf.c:1227
msgid "Section Headers:"
msgstr "セクションヘッダー:"
-#: src/readelf.c:1211
+#: src/readelf.c:1230
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4164,7 +4169,7 @@ msgstr ""
"[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES フラグLk "
"Inf Al"
-#: src/readelf.c:1213
+#: src/readelf.c:1232
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4172,35 +4177,35 @@ msgstr ""
"[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES "
"フラグLk Inf Al"
-#: src/readelf.c:1218
+#: src/readelf.c:1237
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1239
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1315
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "セクションヘッダー文字列セクションを生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1307
+#: src/readelf.c:1326
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:1325
+#: src/readelf.c:1344
msgid "Program Headers:"
msgstr "プログラムヘッダー:"
-#: src/readelf.c:1327
+#: src/readelf.c:1346
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" タイプ オフセ 仮アドレス 物アドレス ãƒ•ã‚¡ã‚¤é‡ ãƒ¡ãƒ¢é‡ Flg 調整 "
-#: src/readelf.c:1330
+#: src/readelf.c:1349
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4208,12 +4213,12 @@ msgstr ""
" タイプ オフセ 仮想アドレス 物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ ファイルé‡ãƒ¡ãƒ¢"
"é‡ Flg 調整 "
-#: src/readelf.c:1387
+#: src/readelf.c:1406
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[プログラム割込ã¿ã‚’è¦æ±‚: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1433
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4223,12 +4228,12 @@ msgstr ""
" セクションã‹ã‚‰ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ãƒžãƒƒãƒ“ング:\n"
" セグメント セクション..."
-#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112
+#: src/readelf.c:1444 src/unstrip.c:2067 src/unstrip.c:2109 src/unstrip.c:2116
#, c-format
msgid "cannot get program header: %s"
msgstr "プログラムヘッダーを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:1571
+#: src/readelf.c:1590
#, c-format
msgid ""
"\n"
@@ -4241,7 +4246,7 @@ msgstr[0] ""
"ç½²å '%3$s' ã‚’æŒã¤ COMDAT セクショングループ [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®"
"é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:1576
+#: src/readelf.c:1595
#, c-format
msgid ""
"\n"
@@ -4254,31 +4259,31 @@ msgstr[0] ""
"ç½²å '%3$s' ã‚’æŒã¤ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ— [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …ç›®ãŒã‚"
"ã‚Šã¾ã™:\n"
-#: src/readelf.c:1584
+#: src/readelf.c:1603
msgid "<INVALID SYMBOL>"
msgstr "<ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«>"
-#: src/readelf.c:1598
+#: src/readelf.c:1617
msgid "<INVALID SECTION>"
msgstr "<ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
-#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
+#: src/readelf.c:1640 src/readelf.c:2367 src/readelf.c:3468 src/readelf.c:12494
+#: src/readelf.c:12501 src/readelf.c:12545 src/readelf.c:12552
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1645 src/readelf.c:2372 src/readelf.c:3473
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754
-#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327
+#: src/readelf.c:1789 src/readelf.c:2439 src/readelf.c:2697 src/readelf.c:2773
+#: src/readelf.c:3077 src/readelf.c:3151 src/readelf.c:5348
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ä¸å½“㪠.debug_line セクション"
-#: src/readelf.c:1773
+#: src/readelf.c:1792
#, c-format
msgid ""
"\n"
@@ -4294,36 +4299,36 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:1783
+#: src/readelf.c:1802
msgid " Type Value\n"
msgstr " タイプ 値\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1826
#, c-format
msgid "Shared library: [%s]\n"
msgstr "共用ライブラリー: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1831
#, c-format
msgid "Library soname: [%s]\n"
msgstr "ライブラリー so å: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1836
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "ライブラリー rパス: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1841
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "ライブラリー run パス: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1861
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (ãƒã‚¤ãƒˆ)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1974 src/readelf.c:2164
#, c-format
msgid ""
"\n"
@@ -4332,7 +4337,7 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1992 src/readelf.c:2182
#, c-format
msgid ""
"\n"
@@ -4353,7 +4358,7 @@ msgstr[0] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:1988 src/readelf.c:2178
+#: src/readelf.c:2007 src/readelf.c:2197
#, c-format
msgid ""
"\n"
@@ -4366,29 +4371,29 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> ã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2u] '%2$s' ã«ã¯ %4$d "
"個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:1998
+#: src/readelf.c:2017
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2019
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098
-#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270
-#: src/readelf.c:2292 src/readelf.c:2305
+#: src/readelf.c:2072 src/readelf.c:2083 src/readelf.c:2096 src/readelf.c:2117
+#: src/readelf.c:2129 src/readelf.c:2263 src/readelf.c:2275 src/readelf.c:2289
+#: src/readelf.c:2311 src/readelf.c:2324
msgid "<INVALID RELOC>"
msgstr "<ä¸å½“ãªRELOC>"
-#: src/readelf.c:2188
+#: src/readelf.c:2207
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2209
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2447
#, c-format
msgid ""
"\n"
@@ -4400,39 +4405,39 @@ msgstr[0] ""
"\n"
"シンボルテーブル [%2u] '%s' ã«ã¯ %u 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:2433
+#: src/readelf.c:2452
#, 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:2441
+#: src/readelf.c:2460
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2443
+#: src/readelf.c:2462
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2463
+#: src/readelf.c:2482
#, 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:2551
+#: src/readelf.c:2570
#, c-format
msgid "bad dynamic symbol"
msgstr "ä¸æ­£ãªå‹•çš„シンボル"
-#: src/readelf.c:2633
+#: src/readelf.c:2652
msgid "none"
msgstr "ãªã—"
-#: src/readelf.c:2650
+#: src/readelf.c:2669
msgid "| <unknown>"
msgstr "| <ä¸æ˜Ž>"
-#: src/readelf.c:2681
+#: src/readelf.c:2700
#, c-format
msgid ""
"\n"
@@ -4448,17 +4453,17 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2702
+#: src/readelf.c:2721
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu ファイル: %s æ•°: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2734
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: åå‰: %s フラグ: %s ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2777
#, c-format
msgid ""
"\n"
@@ -4474,18 +4479,18 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2786
+#: src/readelf.c:2805
#, 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:2801
+#: src/readelf.c:2820
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: 親 %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3081
#, c-format
msgid ""
"\n"
@@ -4501,15 +4506,15 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'"
-#: src/readelf.c:3090
+#: src/readelf.c:3109
msgid " 0 *local* "
msgstr " 0 *ローカル* "
-#: src/readelf.c:3095
+#: src/readelf.c:3114
msgid " 1 *global* "
msgstr " 1 *グローãƒãƒ«* "
-#: src/readelf.c:3137
+#: src/readelf.c:3156
#, c-format
msgid ""
"\n"
@@ -4527,22 +4532,22 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:3159
+#: src/readelf.c:3178
#, fuzzy, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " é•·ã• æ•° 全体ã®% 範囲 \n"
-#: src/readelf.c:3161
+#: src/readelf.c:3180
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3187
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3181
+#: src/readelf.c:3200
#, fuzzy, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -4551,37 +4556,37 @@ msgstr ""
" テストã®å¹³å‡æ•°: 検索æˆåŠŸ: %f\n"
" 検索失敗: %f\n"
-#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329
+#: src/readelf.c:3218 src/readelf.c:3282 src/readelf.c:3348
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:3207
+#: src/readelf.c:3226
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3236
+#: src/readelf.c:3255
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3271
+#: src/readelf.c:3290
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3302
+#: src/readelf.c:3321
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3338
+#: src/readelf.c:3357
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3405
+#: src/readelf.c:3424
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4591,7 +4596,7 @@ msgstr ""
" ビットマスクã®å¤§ãã•: %zu ãƒã‚¤ãƒˆ %<PRIuFAST32>%% ビット設定 第2ãƒãƒƒã‚·ãƒ¥ã‚·ãƒ•"
"ト: %u\n"
-#: src/readelf.c:3494
+#: src/readelf.c:3513
#, c-format
msgid ""
"\n"
@@ -4604,7 +4609,7 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> ã®ãƒ©ã‚¤ãƒ–ラリー一覧セクション [%1$2zu] '%2$s' ã«ã¯ "
"%4$d 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:3508
+#: src/readelf.c:3527
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4612,7 +4617,7 @@ msgstr ""
" ライブラリー タイムスタンプ ãƒã‚§ãƒƒã‚¯ã‚µãƒ  ãƒãƒ¼"
"ジョン フラグ"
-#: src/readelf.c:3558
+#: src/readelf.c:3579
#, c-format
msgid ""
"\n"
@@ -4623,102 +4628,102 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ã‚ªãƒ–ジェクト属性セクション "
"[%1$2zu] '%2$s':\n"
-#: src/readelf.c:3575
+#: src/readelf.c:3596
msgid " Owner Size\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3625
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3664
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3669
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " ファイル: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3718
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>ã€%s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3721
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3724
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3734
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3737
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3807
#, c-format
msgid "sprintf failure"
msgstr ""
-#: src/readelf.c:4268
+#: src/readelf.c:4289
msgid "empty block"
msgstr "空ブロック"
-#: src/readelf.c:4271
+#: src/readelf.c:4292
#, c-format
msgid "%zu byte block:"
msgstr "%zu ãƒã‚¤ãƒˆã®ãƒ–ロック:"
-#: src/readelf.c:4749
+#: src/readelf.c:4770
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4834
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:4820
+#: src/readelf.c:4841
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:4827
+#: src/readelf.c:4848
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:4834
+#: src/readelf.c:4855
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:4931
+#: src/readelf.c:4952
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:4939
+#: src/readelf.c:4960
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5017
+#: src/readelf.c:5038
#, c-format
msgid ""
"\n"
@@ -4729,7 +4734,7 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" [ コード]\n"
-#: src/readelf.c:5025
+#: src/readelf.c:5046
#, c-format
msgid ""
"\n"
@@ -4738,20 +4743,20 @@ msgstr ""
"\n"
"オフセット %<PRIu64> ã®ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³:\n"
-#: src/readelf.c:5038
+#: src/readelf.c:5059
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** 略語を読んã§ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5075
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] オフセット: %<PRId64>ã€å­: %sã€ã‚¿ã‚°: %s\n"
-#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
-#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
-#: src/readelf.c:10179
+#: src/readelf.c:5108 src/readelf.c:5417 src/readelf.c:5584 src/readelf.c:5969
+#: src/readelf.c:6570 src/readelf.c:8307 src/readelf.c:8993 src/readelf.c:9429
+#: src/readelf.c:9674 src/readelf.c:9840 src/readelf.c:10227
+#: src/readelf.c:10287
#, c-format
msgid ""
"\n"
@@ -4760,52 +4765,52 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:5100
+#: src/readelf.c:5121
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
+#: src/readelf.c:5221 src/readelf.c:5245 src/readelf.c:5629 src/readelf.c:9038
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
+#: src/readelf.c:5223 src/readelf.c:5260 src/readelf.c:5642 src/readelf.c:9051
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
+#: src/readelf.c:5224 src/readelf.c:5269 src/readelf.c:5651 src/readelf.c:9060
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
+#: src/readelf.c:5226 src/readelf.c:5279 src/readelf.c:5661 src/readelf.c:9070
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
+#: src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055 src/readelf.c:10419
#, fuzzy, c-format
msgid "Unknown version"
msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
+#: src/readelf.c:5274 src/readelf.c:5487 src/readelf.c:5656 src/readelf.c:9065
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
+#: src/readelf.c:5285 src/readelf.c:5498 src/readelf.c:5666 src/readelf.c:9075
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5338 src/readelf.c:5412
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ".debug_aragnes ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5332
+#: src/readelf.c:5353
#, c-format
msgid ""
"\n"
@@ -4818,19 +4823,19 @@ msgstr[0] ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:5363
+#: src/readelf.c:5384
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5386
#, 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:5409 src/readelf.c:8226
+#: src/readelf.c:5430 src/readelf.c:8334
#, fuzzy, c-format
msgid ""
"\n"
@@ -4839,154 +4844,154 @@ msgstr ""
"\n"
"オフセット %Zu ã®ãƒ†ãƒ¼ãƒ–ル:\n"
-#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8911
+#: src/readelf.c:5434 src/readelf.c:5610 src/readelf.c:6594 src/readelf.c:8345
+#: src/readelf.c:9019
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:5429
+#: src/readelf.c:5450
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5441
+#: src/readelf.c:5462
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5466
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5456
+#: src/readelf.c:5477
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5462
+#: src/readelf.c:5483
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5473
+#: src/readelf.c:5494
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5549
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5572
+#: src/readelf.c:5593
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5595 src/readelf.c:8917
+#: src/readelf.c:5616 src/readelf.c:9025
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5650 src/readelf.c:8972
+#: src/readelf.c:5671 src/readelf.c:9080
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5687 src/readelf.c:9096
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5689 src/readelf.c:9098
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5695 src/readelf.c:9104
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5706 src/readelf.c:9115
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5710 src/readelf.c:9119
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5762
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5947 src/readelf.c:9407
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:5943
+#: src/readelf.c:5964
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6000 src/readelf.c:9462
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6002 src/readelf.c:9464
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6011 src/readelf.c:9490 src/readelf.c:9516
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6032 src/readelf.c:9596
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] ベースアドレス %s\n"
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6040 src/readelf.c:9604
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6295
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6548
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6566
#, c-format
msgid ""
"\n"
@@ -4995,7 +5000,7 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠フレーム情報呼出ã—セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:6595
+#: src/readelf.c:6616
#, c-format
msgid ""
"\n"
@@ -5004,65 +5009,65 @@ msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6717 src/readelf.c:6871
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ä¸å½“ãªæ‹¡å¤§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰"
-#: src/readelf.c:6711
+#: src/readelf.c:6732
msgid "FDE address encoding: "
msgstr "FDE アドレスエンコード"
-#: src/readelf.c:6717
+#: src/readelf.c:6738
msgid "LSDA pointer encoding: "
msgstr "LSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:6827
+#: src/readelf.c:6848
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6855
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6892
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sLSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6977
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "属性コードを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6966
+#: src/readelf.c:6987
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "属性様å¼ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6988
+#: src/readelf.c:7009
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "属性値を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7321
+#: src/readelf.c:7339
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«"
-#: src/readelf.c:7325
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7660
#, c-format
msgid ""
"\n"
@@ -5073,12 +5078,12 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" [オフセット]\n"
-#: src/readelf.c:7602
+#: src/readelf.c:7710
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7729
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5090,7 +5095,7 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:7633
+#: src/readelf.c:7741
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5101,39 +5106,39 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:7643 src/readelf.c:7806
+#: src/readelf.c:7751 src/readelf.c:7914
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7778
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7807
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "DIE オフセットを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7816
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"セクション '%2$s' 中ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$<PRIu64> ã® DIE ã®ã‚¿ã‚°ã‚’得られã¾ã›ã‚“: "
"%3$s"
-#: src/readelf.c:7746
+#: src/readelf.c:7854
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s\n"
-#: src/readelf.c:7754
+#: src/readelf.c:7862
#, c-format
msgid "cannot get next DIE: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7906
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5144,7 +5149,7 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:7850
+#: src/readelf.c:7958
#, fuzzy, c-format
msgid ""
"\n"
@@ -5154,18 +5159,18 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:8182
+#: src/readelf.c:8290
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "ä¸æ˜Žãªæ§˜å¼ %<PRIx64>"
-#: src/readelf.c:8213
+#: src/readelf.c:8321
#, c-format
msgid "cannot get line data section data: %s"
msgstr "ラインデータセクションデータを得られã¾ã›ã‚“: %s"
#. Print what we got so far.
-#: src/readelf.c:8315
+#: src/readelf.c:8423
#, fuzzy, c-format
msgid ""
"\n"
@@ -5195,33 +5200,33 @@ msgstr ""
"\n"
"命令コード:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8445
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8345
+#: src/readelf.c:8453
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:8353
+#: src/readelf.c:8461
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "セクションを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8363
+#: src/readelf.c:8471
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "セクション [%2$zu] '%3$s' 中ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$tu ã«ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:8378
+#: src/readelf.c:8486
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:8389
+#: src/readelf.c:8497
msgid ""
"\n"
"Directory table:"
@@ -5229,12 +5234,12 @@ msgstr ""
"\n"
"ディレクトリーテーブル:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8503 src/readelf.c:8580
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8466
+#: src/readelf.c:8574
#, fuzzy
msgid ""
"\n"
@@ -5243,7 +5248,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:8527
+#: src/readelf.c:8635
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5251,7 +5256,7 @@ msgstr ""
"ファイルåテーブル:\n"
" Entry Dir 時刻 大ãã• åå‰"
-#: src/readelf.c:8564
+#: src/readelf.c:8672
msgid ""
"\n"
"Line number statements:"
@@ -5259,119 +5264,119 @@ msgstr ""
"\n"
"è¡Œ ç•ªå· æ–‡:"
-#: src/readelf.c:8587
+#: src/readelf.c:8695
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8621
+#: src/readelf.c:8729
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8625
+#: src/readelf.c:8733
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8628
+#: src/readelf.c:8736
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8754
#, c-format
msgid " extended opcode %u: "
msgstr " 拡張命令コード %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8759
#, fuzzy
msgid " end of sequence"
msgstr "列ã®çµ‚ã‚ã‚Š"
-#: src/readelf.c:8669
+#: src/readelf.c:8777
#, fuzzy, c-format
msgid " set address to "
msgstr "アドレスを %s ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8805
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"新ファイルを定義ã™ã‚‹: dir=%uã€mtime=%<PRIu64>ã€é•·ã•h=%<PRIu64>ã€åå‰=%s\n"
-#: src/readelf.c:8711
+#: src/readelf.c:8819
#, fuzzy, c-format
msgid " set discriminator to %u\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8824
#, fuzzy
msgid " unknown opcode"
msgstr "ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8836
msgid " copy"
msgstr "複写"
-#: src/readelf.c:8739
+#: src/readelf.c:8847
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "アドレスを %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8851 src/readelf.c:8912
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8863
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr "行を定数 %d ã ã‘進ã‚㦠%<PRId64> ã«ã™ã‚‹\n"
-#: src/readelf.c:8765
+#: src/readelf.c:8873
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8884
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8891
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' ã‚’ %<PRIuFAST8> ã«è¨­å®šã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8897
msgid " set basic block flag"
msgstr "基本ブロックフラグを設定ã™ã‚‹"
-#: src/readelf.c:8800
+#: src/readelf.c:8908
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "アドレスを定数 %u ã ã‘済ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:8820
+#: src/readelf.c:8928
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "アドレスを固定値 %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:8830
+#: src/readelf.c:8938
msgid " set prologue end flag"
msgstr "プロローグ終了フラグを設定ã™ã‚‹"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8943
msgid " set epilogue begin flag"
msgstr "エピローグ開始フラグを設定ã™ã‚‹"
-#: src/readelf.c:8845
+#: src/readelf.c:8953
#, fuzzy, c-format
msgid " set isa to %u\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
@@ -5379,98 +5384,98 @@ msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8854
+#: src/readelf.c:8962
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:8894
+#: src/readelf.c:9002
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9171
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:9316
+#: src/readelf.c:9424
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9631 src/readelf.c:10675
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9686 src/readelf.c:9849
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "マクロ情報セクションã®ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9658
+#: src/readelf.c:9766
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:9681
+#: src/readelf.c:9789
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:9782
+#: src/readelf.c:9890
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9902
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9908 src/readelf.c:10795
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9807
+#: src/readelf.c:9915
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9944
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:9844
+#: src/readelf.c:9952
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:9869
+#: src/readelf.c:9977
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:9876
+#: src/readelf.c:9984
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:9996
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:9903
+#: src/readelf.c:10011
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10104
+#: src/readelf.c:10212
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
@@ -5478,7 +5483,7 @@ msgstr ""
# # "オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
# # " %4$*s 文字列\n" ãŒã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã¯ä½•æ•…? å–ã‚Šæ•¢ãˆãš fuzzy扱ã„
-#: src/readelf.c:10148
+#: src/readelf.c:10256
#, fuzzy, c-format
msgid ""
"\n"
@@ -5489,37 +5494,37 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" %4$*s 文字列\n"
-#: src/readelf.c:10163
+#: src/readelf.c:10271
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** 文字列ã®èª­è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10300
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10399
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10293
+#: src/readelf.c:10401
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10307
+#: src/readelf.c:10415
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10424
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10370
+#: src/readelf.c:10478
#, c-format
msgid ""
"\n"
@@ -5528,7 +5533,7 @@ msgstr ""
"\n"
"呼出ã—フレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10472
+#: src/readelf.c:10580
#, c-format
msgid ""
"\n"
@@ -5537,22 +5542,22 @@ msgstr ""
"\n"
"例外å–扱ã„テーブルセクション [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10603
#, c-format
msgid " LPStart encoding: %#x "
msgstr " LPStart コード化: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10615
#, c-format
msgid " TType encoding: %#x "
msgstr "TType コード化: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10630
#, c-format
msgid " Call site encoding: %#x "
msgstr "呼出ã—サイトコード化: %#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10643
msgid ""
"\n"
" Call site table:"
@@ -5560,7 +5565,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:10549
+#: src/readelf.c:10657
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5573,12 +5578,12 @@ msgstr ""
" 離ç€é™¸å ´: %#<PRIx64>\n"
" 行動: %u\n"
-#: src/readelf.c:10622
+#: src/readelf.c:10730
#, c-format
msgid "invalid TType encoding"
msgstr "ä¸å½“㪠TType コード化"
-#: src/readelf.c:10649
+#: src/readelf.c:10757
#, fuzzy, c-format
msgid ""
"\n"
@@ -5588,37 +5593,37 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:10678
+#: src/readelf.c:10786
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10804
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10703
+#: src/readelf.c:10811
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10710
+#: src/readelf.c:10818
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10717
+#: src/readelf.c:10825
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10724
+#: src/readelf.c:10832
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10738
+#: src/readelf.c:10846
#, fuzzy, c-format
msgid ""
"\n"
@@ -5628,7 +5633,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:10763
+#: src/readelf.c:10871
#, fuzzy, c-format
msgid ""
"\n"
@@ -5638,7 +5643,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:10792
+#: src/readelf.c:10900
#, fuzzy, c-format
msgid ""
"\n"
@@ -5648,7 +5653,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:10824
+#: src/readelf.c:10932
#, fuzzy, c-format
msgid ""
"\n"
@@ -5657,18 +5662,18 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:10962
+#: src/readelf.c:11070
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "デãƒãƒƒã‚°å†…容記述å­ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
-#: src/readelf.c:12116
+#: src/readelf.c:11433 src/readelf.c:12055 src/readelf.c:12166
+#: src/readelf.c:12224
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータã®å¤‰æ›ãŒã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:11688
+#: src/readelf.c:11796
#, c-format
msgid ""
"\n"
@@ -5677,21 +5682,21 @@ msgstr ""
"\n"
"%*s... < %u 回ã®ç¹°è¿”ã—> ..."
-#: src/readelf.c:12195
+#: src/readelf.c:12303
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大ãã•ã‚¿ã‚¤ãƒ—\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12332
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12384
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "ノートセクションã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:12303
+#: src/readelf.c:12411
#, c-format
msgid ""
"\n"
@@ -5701,7 +5706,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2zu] "
"'%2$s':\n"
-#: src/readelf.c:12326
+#: src/readelf.c:12434
#, c-format
msgid ""
"\n"
@@ -5710,7 +5715,7 @@ msgstr ""
"\n"
"オフセット %2$#0<PRIx64> ã® %1$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚°ãƒ¡ãƒ³ãƒˆ:\n"
-#: src/readelf.c:12373
+#: src/readelf.c:12481
#, fuzzy, c-format
msgid ""
"\n"
@@ -5719,12 +5724,12 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12400 src/readelf.c:12451
+#: src/readelf.c:12508 src/readelf.c:12559
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12513
#, fuzzy, c-format
msgid ""
"\n"
@@ -5734,7 +5739,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン"
"プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n"
-#: src/readelf.c:12410
+#: src/readelf.c:12518
#, fuzzy, c-format
msgid ""
"\n"
@@ -5745,7 +5750,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン"
"プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n"
-#: src/readelf.c:12424
+#: src/readelf.c:12532
#, fuzzy, c-format
msgid ""
"\n"
@@ -5754,7 +5759,7 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12456
+#: src/readelf.c:12564
#, fuzzy, c-format
msgid ""
"\n"
@@ -5764,7 +5769,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ"
"イトã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12461
+#: src/readelf.c:12569
#, fuzzy, c-format
msgid ""
"\n"
@@ -5775,7 +5780,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ"
"イトã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12510
+#: src/readelf.c:12618
#, c-format
msgid ""
"\n"
@@ -5784,7 +5789,7 @@ msgstr ""
"\n"
"セクション [%lu] ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:12539
+#: src/readelf.c:12647
#, c-format
msgid ""
"\n"
@@ -5793,12 +5798,12 @@ msgstr ""
"\n"
"セクション '%s' ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:12596
+#: src/readelf.c:12704
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼• '%s' を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:12599
+#: src/readelf.c:12707
#, c-format
msgid ""
"\n"
@@ -5807,7 +5812,7 @@ msgstr ""
"\n"
"アーカイブ '%s' ã«ã¯ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12711
#, fuzzy, c-format
msgid ""
"\n"
@@ -5816,12 +5821,12 @@ msgstr ""
"\n"
"アーカイブ '%s' ã®ç´¢å¼•ã«ã¯ %Zu é …ç›®ã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12621
+#: src/readelf.c:12729
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "'%2$s' 㮠オフセット %1$Zu ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’抽出ã§ãã¾ã›ã‚“: %3$s"
-#: src/readelf.c:12626
+#: src/readelf.c:12734
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "アーカイブメンãƒãƒ¼ '%s' ã«ã¯ä»¥ä¸‹ãŒã‚ã‚Šã¾ã™:\n"
@@ -5886,12 +5891,17 @@ msgstr "ä¸å½“ãªåŸºæ•°: %s"
msgid "%s: file format not recognized"
msgstr "%s: ファイル形å¼ã‚’èªè­˜ã§ãã¾ã›ã‚“"
-#: src/size.c:418 src/size.c:551
+#: src/size.c:418 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
-#: src/size.c:576
+#: src/size.c:482
+#, fuzzy, c-format
+msgid "cannot get section header"
+msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s"
+
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(åˆè¨ˆ)\n"
@@ -6252,7 +6262,7 @@ msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:1654 src/strip.c:2534
+#: src/strip.c:1654 src/strip.c:2535
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s"
@@ -6282,47 +6292,47 @@ msgstr "セクションヘッダー文字列テーブルを生æˆä¸­: %s"
msgid "no memory to create section header string table"
msgstr "セクションヘッダー文字列テーブルを生æˆä¸­: %s"
-#: src/strip.c:2027
+#: src/strip.c:2028
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2450 src/strip.c:2558
+#: src/strip.c:2451 src/strip.c:2559
#, c-format
msgid "while writing '%s': %s"
msgstr "'%s' を書込ã¿ä¸­: %s"
-#: src/strip.c:2461
+#: src/strip.c:2462
#, c-format
msgid "while creating '%s'"
msgstr "'%s' を生æˆä¸­"
-#: src/strip.c:2484
+#: src/strip.c:2485
#, c-format
msgid "while computing checksum for debug information"
msgstr "デãƒãƒƒã‚°æƒ…å ±ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã‚’計算中"
-#: src/strip.c:2525
+#: src/strip.c:2526
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2543
+#: src/strip.c:2544
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: ファイルを読込ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2583 src/strip.c:2603
+#: src/strip.c:2584 src/strip.c:2604
#, fuzzy, c-format
msgid "while writing '%s'"
msgstr "'%s' を書込ã¿ä¸­: %s"
-#: src/strip.c:2640 src/strip.c:2647
+#: src/strip.c:2641 src/strip.c:2648
#, c-format
msgid "error while finishing '%s': %s"
msgstr "'%s' ã®çµ‚了中ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2664 src/strip.c:2740
+#: src/strip.c:2665 src/strip.c:2741
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "'%s' ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨å¤‰æ›´æ—¥ä»˜ã‚’設定ã§ãã¾ã›ã‚“"
@@ -6408,7 +6418,7 @@ msgstr ""
msgid "cannot get shdrstrndx:%s"
msgstr "セクションを得られã¾ã›ã‚“: %s"
-#: src/unstrip.c:248 src/unstrip.c:2034
+#: src/unstrip.c:248 src/unstrip.c:2038
#, c-format
msgid "cannot get ELF header: %s"
msgstr ""
@@ -6428,12 +6438,12 @@ msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
msgid "cannot copy ELF header: %s"
msgstr ""
-#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095
+#: src/unstrip.c:269 src/unstrip.c:2056 src/unstrip.c:2099
#, fuzzy, c-format
msgid "cannot get number of program headers: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:274 src/unstrip.c:2056
+#: src/unstrip.c:274 src/unstrip.c:2060
#, c-format
msgid "cannot create program headers: %s"
msgstr ""
@@ -6448,12 +6458,12 @@ msgstr ""
msgid "cannot copy section header: %s"
msgstr ""
-#: src/unstrip.c:293 src/unstrip.c:1665
+#: src/unstrip.c:293 src/unstrip.c:1669
#, c-format
msgid "cannot get section data: %s"
msgstr ""
-#: src/unstrip.c:295 src/unstrip.c:1667
+#: src/unstrip.c:295 src/unstrip.c:1671
#, c-format
msgid "cannot copy section data: %s"
msgstr ""
@@ -6463,13 +6473,14 @@ msgstr ""
msgid "cannot create directory '%s'"
msgstr ""
-#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702
+#: src/unstrip.c:391 src/unstrip.c:647 src/unstrip.c:681 src/unstrip.c:847
+#: src/unstrip.c:1706
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr ""
-#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682
-#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942
+#: src/unstrip.c:407 src/unstrip.c:650 src/unstrip.c:671 src/unstrip.c:684
+#: src/unstrip.c:1727 src/unstrip.c:1922 src/unstrip.c:1946
#, c-format
msgid "cannot update symbol table: %s"
msgstr ""
@@ -6494,213 +6505,213 @@ msgstr ""
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:851
+#: src/unstrip.c:853
#, fuzzy, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "シンボル %2$sã®ä¸æ­£ãªã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$zu "
-#: src/unstrip.c:1009 src/unstrip.c:1398
+#: src/unstrip.c:1011 src/unstrip.c:1402
#, fuzzy, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
-#: src/unstrip.c:1024
+#: src/unstrip.c:1026
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr "ä¸å½“㪠.debug_line セクション"
-#: src/unstrip.c:1030
+#: src/unstrip.c:1032
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/unstrip.c:1035
+#: src/unstrip.c:1037
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/unstrip.c:1041
+#: src/unstrip.c:1043
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:1046
+#: src/unstrip.c:1048
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "セクションヘッダー文字列セクションを生æˆã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145
+#: src/unstrip.c:1090 src/unstrip.c:1109 src/unstrip.c:1147
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr ""
-#: src/unstrip.c:1125
+#: src/unstrip.c:1127
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1136
+#: src/unstrip.c:1138
#, c-format
msgid "invalid contents in '%s' section"
msgstr ""
-#: src/unstrip.c:1192 src/unstrip.c:1524
+#: src/unstrip.c:1194 src/unstrip.c:1528
#, fuzzy, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877
+#: src/unstrip.c:1319 src/unstrip.c:1335 src/unstrip.c:1607 src/unstrip.c:1881
#, c-format
msgid "cannot add section name to string table: %s"
msgstr ""
-#: src/unstrip.c:1341
+#: src/unstrip.c:1344
#, c-format
msgid "cannot update section header string table data: %s"
msgstr ""
-#: src/unstrip.c:1369 src/unstrip.c:1373
+#: src/unstrip.c:1373 src/unstrip.c:1377
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
-#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618
+#: src/unstrip.c:1381 src/unstrip.c:1385 src/unstrip.c:1622
#, c-format
msgid "cannot get section count: %s"
msgstr ""
-#: src/unstrip.c:1384
+#: src/unstrip.c:1388
#, c-format
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
-#: src/unstrip.c:1446 src/unstrip.c:1539
+#: src/unstrip.c:1450 src/unstrip.c:1543
#, c-format
msgid "cannot read section header string table: %s"
msgstr ""
-#: src/unstrip.c:1597
+#: src/unstrip.c:1601
#, c-format
msgid "cannot add new section: %s"
msgstr ""
-#: src/unstrip.c:1710
+#: src/unstrip.c:1714
#, fuzzy, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼•"
-#: src/unstrip.c:1742
+#: src/unstrip.c:1746
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼•"
-#: src/unstrip.c:2013
+#: src/unstrip.c:2017
#, fuzzy, c-format
msgid "cannot read section data: %s"
msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
-#: src/unstrip.c:2042
+#: src/unstrip.c:2046
#, c-format
msgid "cannot update ELF header: %s"
msgstr "ELF ヘッダーを更新ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:2066
+#: src/unstrip.c:2070
#, c-format
msgid "cannot update program header: %s"
msgstr ""
-#: src/unstrip.c:2071 src/unstrip.c:2153
+#: src/unstrip.c:2075 src/unstrip.c:2157
#, c-format
msgid "cannot write output file: %s"
msgstr ""
-#: src/unstrip.c:2122
+#: src/unstrip.c:2126
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2125
+#: src/unstrip.c:2129
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293
+#: src/unstrip.c:2148 src/unstrip.c:2199 src/unstrip.c:2211 src/unstrip.c:2297
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr ""
-#: src/unstrip.c:2186
+#: src/unstrip.c:2190
msgid "WARNING: "
msgstr ""
-#: src/unstrip.c:2188
+#: src/unstrip.c:2192
msgid ", use --force"
msgstr ""
-#: src/unstrip.c:2211
+#: src/unstrip.c:2215
msgid "ELF header identification (e_ident) different"
msgstr ""
-#: src/unstrip.c:2214
+#: src/unstrip.c:2218
msgid "ELF header type (e_type) different"
msgstr ""
-#: src/unstrip.c:2217
+#: src/unstrip.c:2221
msgid "ELF header machine type (e_machine) different"
msgstr ""
-#: src/unstrip.c:2220
+#: src/unstrip.c:2224
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr ""
-#: src/unstrip.c:2250
+#: src/unstrip.c:2254
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2254
+#: src/unstrip.c:2258
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2269
+#: src/unstrip.c:2273
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2273
+#: src/unstrip.c:2277
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2286
+#: src/unstrip.c:2290
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr ""
-#: src/unstrip.c:2317
+#: src/unstrip.c:2321
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2450
+#: src/unstrip.c:2454
#, c-format
msgid "no matching modules found"
msgstr ""
-#: src/unstrip.c:2459
+#: src/unstrip.c:2463
#, c-format
msgid "matched more than one module"
msgstr ""
-#: src/unstrip.c:2503
+#: src/unstrip.c:2507
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2504
+#: src/unstrip.c:2508
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
@@ -6728,7 +6739,7 @@ msgid ""
"was found, or . if FILE contains the debug information."
msgstr ""
-#: tests/backtrace.c:437
+#: tests/backtrace.c:436
msgid "Run executable"
msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 6fb2f3eb..3ee669ab 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2019-02-14 14:31+0100\n"
+"POT-Creation-Date: 2019-08-13 23:38+0200\n"
"PO-Revision-Date: 2016-12-29 17:48+0100\n"
"Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
@@ -59,8 +59,8 @@ msgstr ""
"BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n"
"HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n"
-#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
+#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3433
+#: src/readelf.c:11382 src/unstrip.c:2350 src/unstrip.c:2556
#, c-format
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
@@ -301,7 +301,7 @@ msgstr " nieznana instrukcja"
msgid ".debug_addr section missing"
msgstr "brak sekcji .debug_ranges"
-#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493
+#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2497
msgid "Input selection options:"
msgstr "Opcje wyboru wejścia:"
@@ -595,7 +595,7 @@ msgstr " System operacyjny: %s, ABI: "
msgid "Stand alone"
msgstr "Samodzielny"
-#: libebl/eblsymbolbindingname.c:67 libebl/eblsymboltypename.c:73
+#: libebl/eblsymbolbindingname.c:68 libebl/eblsymboltypename.c:74
#, c-format
msgid "<unknown>: %d"
msgstr "<nieznany>: %d"
@@ -620,7 +620,7 @@ msgstr "nieprawidłowy rozmiar operanda źródłowego"
msgid "invalid size of destination operand"
msgstr "nieprawidłowy rozmiar operanda docelowego"
-#: libelf/elf_error.c:87 src/readelf.c:6129
+#: libelf/elf_error.c:87 src/readelf.c:6150
#, c-format
msgid "invalid encoding"
msgstr "nieprawidłowe kodowanie"
@@ -706,8 +706,8 @@ msgstr "dane/scn nie zgadzajÄ… siÄ™"
msgid "invalid section header"
msgstr "nieprawidłowy nagłówek sekcji"
-#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
-#: src/readelf.c:10491 src/readelf.c:10673
+#: libelf/elf_error.c:191 src/readelf.c:9898 src/readelf.c:10498
+#: src/readelf.c:10599 src/readelf.c:10781
#, c-format
msgid "invalid data"
msgstr "nieprawidłowe dane"
@@ -1366,7 +1366,7 @@ msgstr "Nieprawidłowa wartość „%s†dla parametru --gaps."
#: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141
#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021
-#: src/unstrip.c:2142 src/unstrip.c:2171
+#: src/unstrip.c:2146 src/unstrip.c:2175
#, c-format
msgid "cannot open '%s'"
msgstr "nie można otworzyć „%sâ€"
@@ -1498,7 +1498,7 @@ msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
"Szczegółowe sprawdzanie zgodności plików ELF ze specyfikacją gABI/psABI."
-#: src/elflint.c:154 src/readelf.c:346
+#: src/elflint.c:154 src/readelf.c:357
#, c-format
msgid "cannot open input file"
msgstr "nie można otworzyć pliku wejściowego"
@@ -1517,7 +1517,7 @@ msgstr "błąd podczas zamykania deskryptora ELF: %s\n"
msgid "No errors"
msgstr "Brak błędów"
-#: src/elflint.c:219 src/readelf.c:545
+#: src/elflint.c:219 src/readelf.c:559
msgid "Missing file name.\n"
msgstr "Brak nazwy pliku.\n"
@@ -3648,7 +3648,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: BÅÄ„D WEWNĘTRZNY %d (%s): %s"
#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2747
+#: src/strip.c:2748
#, c-format
msgid "while closing '%s'"
msgstr "podczas zamykania „%sâ€"
@@ -3692,19 +3692,19 @@ msgstr "%s%s%s: nie rozpoznano formatu pliku"
msgid "cannot create search tree"
msgstr "nie można utworzyć drzewa wyszukiwania"
-#: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605
-#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
-#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
-#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
-#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
+#: src/nm.c:746 src/nm.c:1205 src/objdump.c:777 src/readelf.c:619
+#: src/readelf.c:1431 src/readelf.c:1582 src/readelf.c:1783 src/readelf.c:1989
+#: src/readelf.c:2179 src/readelf.c:2357 src/readelf.c:2433 src/readelf.c:2691
+#: src/readelf.c:2767 src/readelf.c:2854 src/readelf.c:3452 src/readelf.c:3502
+#: src/readelf.c:3565 src/readelf.c:11214 src/readelf.c:12399
+#: src/readelf.c:12603 src/readelf.c:12671 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji"
#. We always print this prolog.
-#: src/nm.c:773
+#: src/nm.c:771
#, c-format
msgid ""
"\n"
@@ -3718,7 +3718,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:776
+#: src/nm.c:774
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -3727,28 +3727,28 @@ msgstr ""
"%*s%-*s %-*s Klasa Typ %-*s %*s Sekcja\n"
"\n"
-#: src/nm.c:1218
+#: src/nm.c:1216
#, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: rozmiar wpisu w sekcji %zd „%s†nie jest tym, czego oczekiwano"
-#: src/nm.c:1223
+#: src/nm.c:1221
#, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: rozmiar sekcji %zd „%s†nie jest wielokrotnością rozmiaru wpisu"
-#: src/nm.c:1302
+#: src/nm.c:1300
#, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: wpisy (%zd) w sekcji %zd „%s†są za duże"
#. XXX Add machine specific object file types.
-#: src/nm.c:1528
+#: src/nm.c:1526
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: nieprawidłowe działanie"
-#: src/nm.c:1585
+#: src/nm.c:1583
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: brak symboli"
@@ -3782,7 +3782,7 @@ msgstr "Wyświetla tylko informacje o sekcji NAZWA."
msgid "Show information from FILEs (a.out by default)."
msgstr "Wyświetla informacje z PLIKÓW (domyślnie a.out)."
-#: src/objdump.c:218 src/readelf.c:550
+#: src/objdump.c:218 src/readelf.c:564
msgid "No operation specified.\n"
msgstr "Nie podano działania.\n"
@@ -3791,11 +3791,11 @@ msgstr "Nie podano działania.\n"
msgid "while close `%s'"
msgstr "podczas zamykania „%sâ€"
-#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257
+#: src/objdump.c:363 src/readelf.c:2084 src/readelf.c:2276
msgid "INVALID SYMBOL"
msgstr "NIEPRAWIDÅOWY SYMBOL"
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2118 src/readelf.c:2312
msgid "INVALID SECTION"
msgstr "NIEPRAWIDÅOWA SEKCJA"
@@ -3984,151 +3984,151 @@ msgid "Print information from ELF file in human-readable form."
msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka."
#. Look up once.
-#: src/readelf.c:328
+#: src/readelf.c:339
msgid "yes"
msgstr "tak"
-#: src/readelf.c:329
+#: src/readelf.c:340
msgid "no"
msgstr "nie"
-#: src/readelf.c:518
+#: src/readelf.c:532
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Nieznana sekcja debugowania DWARF „%sâ€.\n"
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:603 src/readelf.c:714
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "nie można utworzyć deskryptora ELF: %s"
-#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133
+#: src/readelf.c:610 src/readelf.c:937 src/strip.c:1133
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "nie można określić liczby sekcji: %s"
-#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436
+#: src/readelf.c:628 src/readelf.c:1247 src/readelf.c:1455
#, c-format
msgid "cannot get section: %s"
msgstr "nie można uzyskać sekcji: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
+#: src/readelf.c:637 src/readelf.c:1254 src/readelf.c:1463 src/readelf.c:12623
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
-#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
-#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
-#: src/unstrip.c:1909 src/unstrip.c:2004
+#: src/unstrip.c:621 src/unstrip.c:661 src/unstrip.c:873 src/unstrip.c:1204
+#: src/unstrip.c:1331 src/unstrip.c:1355 src/unstrip.c:1398 src/unstrip.c:1462
+#: src/unstrip.c:1636 src/unstrip.c:1770 src/unstrip.c:1913 src/unstrip.c:2008
#, c-format
msgid "cannot get section header: %s"
msgstr "nie można uzyskać nagłówka sekcji: %s"
-#: src/readelf.c:631
+#: src/readelf.c:645
#, c-format
msgid "cannot get section name"
msgstr "nie można uzyskać nazwy sekcji"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
-#: src/readelf.c:10658
+#: src/readelf.c:654 src/readelf.c:6560 src/readelf.c:10486 src/readelf.c:10588
+#: src/readelf.c:10766
#, c-format
msgid "cannot get %s content: %s"
msgstr "nie można uzyskać zwartości %s: %s"
-#: src/readelf.c:656
+#: src/readelf.c:670
#, c-format
msgid "cannot create temp file '%s'"
msgstr "nie można utworzyć pliku tymczasowego „%sâ€"
-#: src/readelf.c:665
+#: src/readelf.c:679
#, c-format
msgid "cannot write section data"
msgstr "nie można zapisać danych sekcji"
-#: src/readelf.c:671 src/readelf.c:688 src/readelf.c:717
+#: src/readelf.c:685 src/readelf.c:702 src/readelf.c:731
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "błąd podczas zamykania deskryptora ELF: %s"
-#: src/readelf.c:678
+#: src/readelf.c:692
#, c-format
msgid "error while rewinding file descriptor"
msgstr "błąd podczas przewijania deskryptora pliku"
-#: src/readelf.c:712
+#: src/readelf.c:726
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "„%s†nie jest archiwum, nie można wyświetlić indeksu archiwum"
-#: src/readelf.c:816
+#: src/readelf.c:830
#, c-format
msgid "cannot stat input file"
msgstr "nie można wykonać stat na pliku wejściowym"
-#: src/readelf.c:818
+#: src/readelf.c:832
#, c-format
msgid "input file is empty"
msgstr "plik wejściowy jest pusty"
-#: src/readelf.c:820
+#: src/readelf.c:834
#, c-format
msgid "failed reading '%s': %s"
msgstr "odczytanie „%s†się nie powiodło: %s"
-#: src/readelf.c:849
+#: src/readelf.c:863
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "Brak sekcji „%s†w „%sâ€"
-#: src/readelf.c:908
+#: src/readelf.c:922
#, c-format
msgid "cannot read ELF header: %s"
msgstr "nie można odczytać nagłówka ELF: %s"
-#: src/readelf.c:916
+#: src/readelf.c:930
#, c-format
msgid "cannot create EBL handle"
msgstr "nie można utworzyć uchwytu EBL"
-#: src/readelf.c:929
+#: src/readelf.c:943
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "nie można określić liczby nagłówków programu: %s"
-#: src/readelf.c:961
+#: src/readelf.c:975
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "nie można odczytać %s: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1036
msgid "NONE (None)"
msgstr "NONE (żaden)"
-#: src/readelf.c:1023
+#: src/readelf.c:1037
msgid "REL (Relocatable file)"
msgstr "REL (plik relokowalny)"
-#: src/readelf.c:1024
+#: src/readelf.c:1038
msgid "EXEC (Executable file)"
msgstr "EXEC (plik wykonywalny)"
-#: src/readelf.c:1025
+#: src/readelf.c:1039
msgid "DYN (Shared object file)"
msgstr "DYN (plik obiektu współdzielonego)"
-#: src/readelf.c:1026
+#: src/readelf.c:1040
msgid "CORE (Core file)"
msgstr "CORE (plik core)"
-#: src/readelf.c:1031
+#: src/readelf.c:1045
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "Zależny od systemu: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1047
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Zależny od procesora: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1057
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4136,7 +4136,7 @@ msgstr ""
"Nagłówek ELF:\n"
" Magic: "
-#: src/readelf.c:1047
+#: src/readelf.c:1061
#, c-format
msgid ""
"\n"
@@ -4145,118 +4145,123 @@ msgstr ""
"\n"
" Klasa: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1066
#, c-format
msgid " Data: %s\n"
msgstr " Dane: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1072
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Wersja Ident: %hhd %s\n"
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1074 src/readelf.c:1096
msgid "(current)"
msgstr "(bieżąca)"
-#: src/readelf.c:1064
+#: src/readelf.c:1078
#, c-format
msgid " OS/ABI: %s\n"
msgstr " System operacyjny/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1081
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Wersja ABI: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1084
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1073
+#: src/readelf.c:1089
#, c-format
msgid " Machine: %s\n"
msgstr " Komputer: %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1091
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Komputer: %s\n"
+
+#: src/readelf.c:1094
#, c-format
msgid " Version: %d %s\n"
msgstr " Wersja: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1098
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Adres punktu wejściowego: %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1101
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Początek nagłówków programu: %<PRId64> %s\n"
-#: src/readelf.c:1083 src/readelf.c:1086
+#: src/readelf.c:1102 src/readelf.c:1105
msgid "(bytes into file)"
msgstr "(bajtów w pliku)"
-#: src/readelf.c:1085
+#: src/readelf.c:1104
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Początek nagłówków sekcji: %<PRId64> %s\n"
-#: src/readelf.c:1088
+#: src/readelf.c:1107
#, c-format
msgid " Flags: %s\n"
msgstr " Flagi: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1110
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n"
-#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112
+#: src/readelf.c:1111 src/readelf.c:1114 src/readelf.c:1131
msgid "(bytes)"
msgstr "(bajtów)"
-#: src/readelf.c:1094
+#: src/readelf.c:1113
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n"
-#: src/readelf.c:1097
+#: src/readelf.c:1116
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków programu: %<PRId16>"
-#: src/readelf.c:1104
+#: src/readelf.c:1123
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> w [0].sh_info)"
-#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138
+#: src/readelf.c:1126 src/readelf.c:1143 src/readelf.c:1157
msgid " ([0] not available)"
msgstr " ([0] niedostępny)"
-#: src/readelf.c:1111
+#: src/readelf.c:1130
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n"
-#: src/readelf.c:1114
+#: src/readelf.c:1133
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>"
-#: src/readelf.c:1121
+#: src/readelf.c:1140
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> w [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1134
+#: src/readelf.c:1153
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> w [0].sh_link)"
-#: src/readelf.c:1142
+#: src/readelf.c:1161
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4265,7 +4270,7 @@ msgstr ""
" Indeks tabeli ciągów nagłówków sekcji: XINDEX%s\n"
"\n"
-#: src/readelf.c:1146
+#: src/readelf.c:1165
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4274,12 +4279,12 @@ msgstr ""
" Indeks tabeli ciągów nagłówków sekcji: %<PRId16>\n"
"\n"
-#: src/readelf.c:1193 src/readelf.c:1401
+#: src/readelf.c:1212 src/readelf.c:1420
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "nie można określić liczby sekcji: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1215
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4288,16 +4293,16 @@ msgstr ""
"Jest %d nagłówków sekcji, rozpoczynających się od offsetu %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1205
+#: src/readelf.c:1224
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji"
-#: src/readelf.c:1208
+#: src/readelf.c:1227
msgid "Section Headers:"
msgstr "Nagłówki sekcji:"
-#: src/readelf.c:1211
+#: src/readelf.c:1230
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4305,7 +4310,7 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozm. ES Flagi Lk "
"Inf Al"
-#: src/readelf.c:1213
+#: src/readelf.c:1232
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4313,36 +4318,36 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozmiar ES "
"Flagi Lk Inf Al"
-#: src/readelf.c:1218
+#: src/readelf.c:1237
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1220
+#: src/readelf.c:1239
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1296
+#: src/readelf.c:1315
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr "błędny nagłówek kompresji dla sekcji %zd: %s"
-#: src/readelf.c:1307
+#: src/readelf.c:1326
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "błędny rozmiar kompresji gnu dla sekcji %zd: %s"
-#: src/readelf.c:1325
+#: src/readelf.c:1344
msgid "Program Headers:"
msgstr "Nagłówki programu:"
-#: src/readelf.c:1327
+#: src/readelf.c:1346
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg "
"Wyrównanie"
-#: src/readelf.c:1330
+#: src/readelf.c:1349
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4350,12 +4355,12 @@ msgstr ""
" Typ Offset AdresWirtualny AdresFizyczny RozmPlik "
"RozmPam Flg Wyrównanie"
-#: src/readelf.c:1387
+#: src/readelf.c:1406
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Wywołanie interpretera programu: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1433
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4365,12 +4370,12 @@ msgstr ""
" Mapowanie sekcji do segmentów:\n"
" Segment sekcji…"
-#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112
+#: src/readelf.c:1444 src/unstrip.c:2067 src/unstrip.c:2109 src/unstrip.c:2116
#, c-format
msgid "cannot get program header: %s"
msgstr "nie można uzyskać nagłówka programu: %s"
-#: src/readelf.c:1571
+#: src/readelf.c:1590
#, c-format
msgid ""
"\n"
@@ -4388,7 +4393,7 @@ msgstr[2] ""
"\n"
"Grupa sekcji COMDAT [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n"
-#: src/readelf.c:1576
+#: src/readelf.c:1595
#, c-format
msgid ""
"\n"
@@ -4406,31 +4411,31 @@ msgstr[2] ""
"\n"
"Grupa sekcji [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n"
-#: src/readelf.c:1584
+#: src/readelf.c:1603
msgid "<INVALID SYMBOL>"
msgstr "<NIEPRAWIDÅOWY SYMBOL>"
-#: src/readelf.c:1598
+#: src/readelf.c:1617
msgid "<INVALID SECTION>"
msgstr "<NIEPRAWIDÅOWY SEKCJA>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
-#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
+#: src/readelf.c:1640 src/readelf.c:2367 src/readelf.c:3468 src/readelf.c:12494
+#: src/readelf.c:12501 src/readelf.c:12545 src/readelf.c:12552
msgid "Couldn't uncompress section"
msgstr "Nie można dekompresować sekcji"
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1645 src/readelf.c:2372 src/readelf.c:3473
#, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "nie można uzyskać nagłówka sekcji [%zd]: %s"
-#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754
-#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327
+#: src/readelf.c:1789 src/readelf.c:2439 src/readelf.c:2697 src/readelf.c:2773
+#: src/readelf.c:3077 src/readelf.c:3151 src/readelf.c:5348
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "nieprawidłowa wartość sh_link w sekcji %zu"
-#: src/readelf.c:1773
+#: src/readelf.c:1792
#, c-format
msgid ""
"\n"
@@ -4456,36 +4461,36 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"'%s'\n"
-#: src/readelf.c:1783
+#: src/readelf.c:1802
msgid " Type Value\n"
msgstr " Typ Wartość\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1826
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteka współdzielona: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1831
#, c-format
msgid "Library soname: [%s]\n"
msgstr "soname biblioteki: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1836
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "rpath biblioteki: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1841
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "runpath biblioteki: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1861
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bajtów)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1974 src/readelf.c:2164
#, c-format
msgid ""
"\n"
@@ -4494,7 +4499,7 @@ msgstr ""
"\n"
"Nieprawidłowa tabela symboli pod offsetem %#0<PRIx64>\n"
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1992 src/readelf.c:2182
#, c-format
msgid ""
"\n"
@@ -4523,7 +4528,7 @@ msgstr[2] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:1988 src/readelf.c:2178
+#: src/readelf.c:2007 src/readelf.c:2197
#, c-format
msgid ""
"\n"
@@ -4541,30 +4546,30 @@ msgstr[2] ""
"\n"
"Sekcja relokacji [%2u] „%s†pod offsetem %#0<PRIx64> zawiera %d wpisów:\n"
-#: src/readelf.c:1998
+#: src/readelf.c:2017
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2019
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098
-#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270
-#: src/readelf.c:2292 src/readelf.c:2305
+#: src/readelf.c:2072 src/readelf.c:2083 src/readelf.c:2096 src/readelf.c:2117
+#: src/readelf.c:2129 src/readelf.c:2263 src/readelf.c:2275 src/readelf.c:2289
+#: src/readelf.c:2311 src/readelf.c:2324
msgid "<INVALID RELOC>"
msgstr "<NIEPRAWIDÅOWA RELOKACJA>"
-#: src/readelf.c:2188
+#: src/readelf.c:2207
msgid " Offset Type Value Addend Name\n"
msgstr " Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2209
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2447
#, c-format
msgid ""
"\n"
@@ -4582,7 +4587,7 @@ msgstr[2] ""
"\n"
"Tabela symboli [%2u] „%s†zawiera %u wpisów:\n"
-#: src/readelf.c:2433
+#: src/readelf.c:2452
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -4590,33 +4595,33 @@ msgstr[0] " %lu symbol lokalny Tabela ciÄ…gów: [%2u] „%sâ€\n"
msgstr[1] " %lu symbole lokalne Tabela ciÄ…gów: [%2u] „%sâ€\n"
msgstr[2] " %lu symboli lokalnych Tabela ciÄ…gów: [%2u] „%sâ€\n"
-#: src/readelf.c:2441
+#: src/readelf.c:2460
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:2443
+#: src/readelf.c:2462
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:2463
+#: src/readelf.c:2482
#, 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:2551
+#: src/readelf.c:2570
#, c-format
msgid "bad dynamic symbol"
msgstr "błędny symbol dynamiczny"
-#: src/readelf.c:2633
+#: src/readelf.c:2652
msgid "none"
msgstr "brak"
-#: src/readelf.c:2650
+#: src/readelf.c:2669
msgid "| <unknown>"
msgstr "| <nieznany>"
-#: src/readelf.c:2681
+#: src/readelf.c:2700
#, c-format
msgid ""
"\n"
@@ -4642,17 +4647,17 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:2702
+#: src/readelf.c:2721
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2734
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2777
#, c-format
msgid ""
"\n"
@@ -4678,19 +4683,19 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:2786
+#: src/readelf.c:2805
#, 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:2801
+#: src/readelf.c:2820
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Rodzic %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3081
#, c-format
msgid ""
"\n"
@@ -4713,15 +4718,15 @@ msgstr[2] ""
"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:3090
+#: src/readelf.c:3109
msgid " 0 *local* "
msgstr " 0 *lokalny* "
-#: src/readelf.c:3095
+#: src/readelf.c:3114
msgid " 1 *global* "
msgstr " 1 *globalny* "
-#: src/readelf.c:3137
+#: src/readelf.c:3156
#, c-format
msgid ""
"\n"
@@ -4752,22 +4757,22 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:3159
+#: src/readelf.c:3178
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Długość Liczba % całości Pokrycie\n"
-#: src/readelf.c:3161
+#: src/readelf.c:3180
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3187
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3181
+#: src/readelf.c:3200
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -4776,37 +4781,37 @@ msgstr ""
" Średnia liczba testów: udane wyszukania: %f\n"
"\t\t\t nieudane wyszukania: %f\n"
-#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329
+#: src/readelf.c:3218 src/readelf.c:3282 src/readelf.c:3348
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "nie można uzyskać danych dla sekcji %d: %s"
-#: src/readelf.c:3207
+#: src/readelf.c:3226
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash %d"
-#: src/readelf.c:3236
+#: src/readelf.c:3255
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash %d"
-#: src/readelf.c:3271
+#: src/readelf.c:3290
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash64 %d"
-#: src/readelf.c:3302
+#: src/readelf.c:3321
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash64 %d"
-#: src/readelf.c:3338
+#: src/readelf.c:3357
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "nieprawidłowe dane w sekcji gnu.hash %d"
-#: src/readelf.c:3405
+#: src/readelf.c:3424
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4816,7 +4821,7 @@ msgstr ""
" Rozmiar maski bitowej: %zu bajtów %<PRIuFAST32>%% bitów ustawionych "
"drugie przesunięcie skrótu: %u\n"
-#: src/readelf.c:3494
+#: src/readelf.c:3513
#, c-format
msgid ""
"\n"
@@ -4837,7 +4842,7 @@ msgstr[2] ""
"Sekcja listy bibliotek [%2zu] „%s†pod offsetem %#0<PRIx64> zawiera %d "
"wpisów:\n"
-#: src/readelf.c:3508
+#: src/readelf.c:3527
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4845,7 +4850,7 @@ msgstr ""
" Biblioteka Oznaczenie czasu Suma k. Wersja "
"Flagi"
-#: src/readelf.c:3558
+#: src/readelf.c:3579
#, c-format
msgid ""
"\n"
@@ -4856,102 +4861,102 @@ msgstr ""
"Sekcja atrybutów obiektu [%2zu] „%s†%<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:3575
+#: src/readelf.c:3596
msgid " Owner Size\n"
msgstr " Właściciel Rozmiar\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3625
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3664
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3669
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Plik: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3718
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3721
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3724
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3734
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3737
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3807
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "mprotect się nie powiodło"
-#: src/readelf.c:4268
+#: src/readelf.c:4289
msgid "empty block"
msgstr "pusty blok"
-#: src/readelf.c:4271
+#: src/readelf.c:4292
#, c-format
msgid "%zu byte block:"
msgstr "%zu bajtowy blok:"
-#: src/readelf.c:4749
+#: src/readelf.c:4770
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <SKRÓCONE>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4834
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami adresu"
-#: src/readelf.c:4820
+#: src/readelf.c:4841
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami offsetu"
-#: src/readelf.c:4827
+#: src/readelf.c:4848
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> zostało użyte z różnymi adresami podstawowymi"
-#: src/readelf.c:4834
+#: src/readelf.c:4855
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami adresu"
-#: src/readelf.c:4931
+#: src/readelf.c:4952
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE W RESZCIE SEKCJI>\n"
-#: src/readelf.c:4939
+#: src/readelf.c:4960
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE>… %<PRIu64> bajtów…\n"
-#: src/readelf.c:5017
+#: src/readelf.c:5038
#, c-format
msgid ""
"\n"
@@ -4962,7 +4967,7 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" [ Kod]\n"
-#: src/readelf.c:5025
+#: src/readelf.c:5046
#, c-format
msgid ""
"\n"
@@ -4971,20 +4976,20 @@ msgstr ""
"\n"
"Sekcja skrótów pod offsetem %<PRIu64>:\n"
-#: src/readelf.c:5038
+#: src/readelf.c:5059
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** błąd podczas odczytywania skrótu: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5075
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n"
-#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
-#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
-#: src/readelf.c:10179
+#: src/readelf.c:5108 src/readelf.c:5417 src/readelf.c:5584 src/readelf.c:5969
+#: src/readelf.c:6570 src/readelf.c:8307 src/readelf.c:8993 src/readelf.c:9429
+#: src/readelf.c:9674 src/readelf.c:9840 src/readelf.c:10227
+#: src/readelf.c:10287
#, c-format
msgid ""
"\n"
@@ -4993,56 +4998,56 @@ msgstr ""
"\n"
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:5100
+#: src/readelf.c:5121
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "nie można uzyskać danych sekcji: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
+#: src/readelf.c:5221 src/readelf.c:5245 src/readelf.c:5629 src/readelf.c:9038
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
+#: src/readelf.c:5223 src/readelf.c:5260 src/readelf.c:5642 src/readelf.c:9051
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
+#: src/readelf.c:5224 src/readelf.c:5269 src/readelf.c:5651 src/readelf.c:9060
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
+#: src/readelf.c:5226 src/readelf.c:5279 src/readelf.c:5661 src/readelf.c:9070
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr ""
" Rozmiar segmentu: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
+#: src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055 src/readelf.c:10419
#, fuzzy, c-format
msgid "Unknown version"
msgstr "nieznana wersja"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
+#: src/readelf.c:5274 src/readelf.c:5487 src/readelf.c:5656 src/readelf.c:9065
#, c-format
msgid "unsupported address size"
msgstr "nieobsługiwany rozmiar adresu"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
+#: src/readelf.c:5285 src/readelf.c:5498 src/readelf.c:5666 src/readelf.c:9075
#, c-format
msgid "unsupported segment size"
msgstr "nieobsługiwany rozmiar segmentu"
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5338 src/readelf.c:5412
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "nie można uzyskać zawartości .debug_aranges: %s"
-#: src/readelf.c:5332
+#: src/readelf.c:5353
#, c-format
msgid ""
"\n"
@@ -5060,12 +5065,12 @@ msgstr[2] ""
"\n"
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
-#: src/readelf.c:5363
+#: src/readelf.c:5384
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5386
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5073,7 +5078,7 @@ msgstr ""
" [%*zu] początek: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5409 src/readelf.c:8226
+#: src/readelf.c:5430 src/readelf.c:8334
#, c-format
msgid ""
"\n"
@@ -5082,13 +5087,13 @@ msgstr ""
"\n"
"Tabela pod offsetem %zu:\n"
-#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8911
+#: src/readelf.c:5434 src/readelf.c:5610 src/readelf.c:6594 src/readelf.c:8345
+#: src/readelf.c:9019
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "nieprawidÅ‚owe dane w sekcji [%zu] „%sâ€"
-#: src/readelf.c:5429
+#: src/readelf.c:5450
#, c-format
msgid ""
"\n"
@@ -5097,27 +5102,27 @@ msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5441
+#: src/readelf.c:5462
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5466
#, c-format
msgid "unsupported aranges version"
msgstr "nieobsługiwana wersja aranges"
-#: src/readelf.c:5456
+#: src/readelf.c:5477
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Offset CU: %6<PRIx64>\n"
-#: src/readelf.c:5462
+#: src/readelf.c:5483
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5473
+#: src/readelf.c:5494
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5126,111 +5131,111 @@ msgstr ""
" Rozmiar segmentu: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5549
#, c-format
msgid " %zu padding bytes\n"
msgstr " bajty wypełnienia: %zu\n"
-#: src/readelf.c:5572
+#: src/readelf.c:5593
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "nie można uzyskać zawartości .debug_ranges: %s"
-#: src/readelf.c:5595 src/readelf.c:8917
+#: src/readelf.c:5616 src/readelf.c:9025
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:5650 src/readelf.c:8972
+#: src/readelf.c:5671 src/readelf.c:9080
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5687 src/readelf.c:9096
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5689 src/readelf.c:9098
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5695 src/readelf.c:9104
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5706 src/readelf.c:9115
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5710 src/readelf.c:9119
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5762
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "nieprawidłowe dane"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5947 src/readelf.c:9407
#, fuzzy, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr " bajty wypełnienia: %zu\n"
-#: src/readelf.c:5943
+#: src/readelf.c:5964
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "nie można uzyskać zawartości .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6000 src/readelf.c:9462
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6002 src/readelf.c:9464
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6011 src/readelf.c:9490 src/readelf.c:9516
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6032 src/readelf.c:9596
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] adres podstawowy %s\n"
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6040 src/readelf.c:9604
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] pusta lista\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6295
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6548
#, c-format
msgid "cannot get ELF: %s"
msgstr "nie można uzyskać ELF: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6566
#, c-format
msgid ""
"\n"
@@ -5239,7 +5244,7 @@ msgstr ""
"\n"
"Sekcja informacji o ramce wywołania [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:6595
+#: src/readelf.c:6616
#, c-format
msgid ""
"\n"
@@ -5248,65 +5253,65 @@ msgstr ""
"\n"
" [%6tx] Zerowy koniec\n"
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6717 src/readelf.c:6871
#, c-format
msgid "invalid augmentation length"
msgstr "nieprawidłowa długość powiększenia"
-#: src/readelf.c:6711
+#: src/readelf.c:6732
msgid "FDE address encoding: "
msgstr "Kodowanie adresu FDE: "
-#: src/readelf.c:6717
+#: src/readelf.c:6738
msgid "LSDA pointer encoding: "
msgstr "Kodowanie wskaźnika LSDA: "
-#: src/readelf.c:6827
+#: src/readelf.c:6848
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (offset: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6855
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (kończący offset: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6892
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6977
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "nie można uzyskać kodu atrybutu: %s"
-#: src/readelf.c:6966
+#: src/readelf.c:6987
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "nie można uzyskać formy atrybutu: %s"
-#: src/readelf.c:6988
+#: src/readelf.c:7009
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "nie można uzyskać wartości atrybutu: %s"
-#: src/readelf.c:7321
+#: src/readelf.c:7339
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "nieprawidłowy plik"
-#: src/readelf.c:7325
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "nie można uzyskać ELF: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7660
#, c-format
msgid ""
"\n"
@@ -5317,12 +5322,12 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:7602
+#: src/readelf.c:7710
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "nie można uzyskać następnego DIE: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7729
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5335,7 +5340,7 @@ msgstr ""
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
" Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64>\n"
-#: src/readelf.c:7633
+#: src/readelf.c:7741
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5346,38 +5351,38 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:7643 src/readelf.c:7806
+#: src/readelf.c:7751 src/readelf.c:7914
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7778
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7807
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "nie można uzyskać offsetu DIE: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7816
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"nie można uzyskać znacznika DIE pod offsetem %<PRIu64> w sekcji „%sâ€: %s"
-#: src/readelf.c:7746
+#: src/readelf.c:7854
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "nie można uzyskać następnego DIE: %s\n"
-#: src/readelf.c:7754
+#: src/readelf.c:7862
#, c-format
msgid "cannot get next DIE: %s"
msgstr "nie można uzyskać następnego DIE: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7906
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5388,7 +5393,7 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:7850
+#: src/readelf.c:7958
#, c-format
msgid ""
"\n"
@@ -5399,18 +5404,18 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8182
+#: src/readelf.c:8290
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "nieznany błąd"
-#: src/readelf.c:8213
+#: src/readelf.c:8321
#, c-format
msgid "cannot get line data section data: %s"
msgstr "nie można uzyskać danych sekcji danych wiersza: %s"
#. Print what we got so far.
-#: src/readelf.c:8315
+#: src/readelf.c:8423
#, fuzzy, c-format
msgid ""
"\n"
@@ -5441,27 +5446,27 @@ msgstr ""
"\n"
"Instrukcje:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8445
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "nie można uzyskać wersji symbolu: %s"
-#: src/readelf.c:8345
+#: src/readelf.c:8453
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "nieobsługiwany rozmiar adresu"
-#: src/readelf.c:8353
+#: src/readelf.c:8461
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "nie można uzyskać sekcji: %s"
-#: src/readelf.c:8363
+#: src/readelf.c:8471
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "nieprawidÅ‚owe dane pod offsetem %tu w sekcji [%zu] „%sâ€"
-#: src/readelf.c:8378
+#: src/readelf.c:8486
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5469,7 +5474,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu parametr\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu parametry\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu parametrów\n"
-#: src/readelf.c:8389
+#: src/readelf.c:8497
msgid ""
"\n"
"Directory table:"
@@ -5477,12 +5482,12 @@ msgstr ""
"\n"
"Tabela katalogu:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8503 src/readelf.c:8580
#, fuzzy, c-format
msgid " ["
msgstr " PC: "
-#: src/readelf.c:8466
+#: src/readelf.c:8574
#, fuzzy
msgid ""
"\n"
@@ -5491,7 +5496,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:8527
+#: src/readelf.c:8635
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5499,7 +5504,7 @@ msgstr ""
"Tabela nazw plików:\n"
" Wpis Kat Czas Rozmiar Nazwa"
-#: src/readelf.c:8564
+#: src/readelf.c:8672
msgid ""
"\n"
"Line number statements:"
@@ -5507,119 +5512,119 @@ msgstr ""
"\n"
"Instrukcje numerów wierszy:"
-#: src/readelf.c:8587
+#: src/readelf.c:8695
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero"
-#: src/readelf.c:8621
+#: src/readelf.c:8729
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n"
-#: src/readelf.c:8625
+#: src/readelf.c:8733
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
" instrukcja specjalna %u: adres+%u = %s, op_index = %u, wiersz%+d = %zu\n"
-#: src/readelf.c:8628
+#: src/readelf.c:8736
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8754
#, c-format
msgid " extended opcode %u: "
msgstr " instrukcja rozszerzona %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8759
msgid " end of sequence"
msgstr " koniec sekwencji"
-#: src/readelf.c:8669
+#: src/readelf.c:8777
#, fuzzy, c-format
msgid " set address to "
msgstr " ustawienie adresu na %s\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8805
#, 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:8711
+#: src/readelf.c:8819
#, c-format
msgid " set discriminator to %u\n"
msgstr " ustawienie dyskryminatora na %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8824
msgid " unknown opcode"
msgstr " nieznana instrukcja"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8836
msgid " copy"
msgstr " kopiowanie"
-#: src/readelf.c:8739
+#: src/readelf.c:8847
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr " zwiększenie adresu o %u do %s\n"
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8851 src/readelf.c:8912
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8863
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " zwiększenie wiersza o stałą %d do %<PRId64>\n"
-#: src/readelf.c:8765
+#: src/readelf.c:8873
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8884
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8891
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " ustawienie „%s†na %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8897
msgid " set basic block flag"
msgstr " ustawienie podstawowej flagi bloku"
-#: src/readelf.c:8800
+#: src/readelf.c:8908
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr " zwiększenie adresu o stałą %u do %s\n"
-#: src/readelf.c:8820
+#: src/readelf.c:8928
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr " zwiększenie adresu o stałą wartość %u do %s\n"
#. Takes no argument.
-#: src/readelf.c:8830
+#: src/readelf.c:8938
msgid " set prologue end flag"
msgstr " ustawienie flagi końca prologu"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8943
msgid " set epilogue begin flag"
msgstr " ustawienie flagi poczÄ…tku epilogu"
-#: src/readelf.c:8845
+#: src/readelf.c:8953
#, c-format
msgid " set isa to %u\n"
msgstr " ustawienie isa na %u\n"
@@ -5627,7 +5632,7 @@ msgstr " ustawienie isa na %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8854
+#: src/readelf.c:8962
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5635,96 +5640,96 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:"
msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:"
-#: src/readelf.c:8894
+#: src/readelf.c:9002
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "nie można uzyskać zawartości .debug_log: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9171
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "nieprawidłowe dane"
-#: src/readelf.c:9316
+#: src/readelf.c:9424
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "nie można uzyskać zawartości .debug_log: %s"
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9631 src/readelf.c:10675
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9686 src/readelf.c:9849
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "nie można uzyskać danych sekcji informacji o makrach: %s"
-#: src/readelf.c:9658
+#: src/readelf.c:9766
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** niezakończony ciąg na końcu sekcji"
-#: src/readelf.c:9681
+#: src/readelf.c:9789
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** brak parametru DW_MACINFO_start_file na końcu sekcji"
-#: src/readelf.c:9782
+#: src/readelf.c:9890
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9902
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Wersja: %<PRIu16>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9908 src/readelf.c:10795
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " nieznana wersja, nie można przetworzyć sekcji\n"
-#: src/readelf.c:9807
+#: src/readelf.c:9915
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Flaga: 0x%<PRIx8>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9944
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:9844
+#: src/readelf.c:9952
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:9869
+#: src/readelf.c:9977
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n"
-#: src/readelf.c:9876
+#: src/readelf.c:9984
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:9888
+#: src/readelf.c:9996
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " Parametry %<PRIu8>:"
-#: src/readelf.c:9903
+#: src/readelf.c:10011
#, c-format
msgid " no arguments."
msgstr " brak parametrów."
-#: src/readelf.c:10104
+#: src/readelf.c:10212
#, 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:10148
+#: src/readelf.c:10256
#, c-format
msgid ""
"\n"
@@ -5735,41 +5740,41 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" %*s CiÄ…g\n"
-#: src/readelf.c:10163
+#: src/readelf.c:10271
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** błąd podczas odczytywania ciągów: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10300
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "nie można uzyskać danych sekcji: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10399
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10401
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:10307
+#: src/readelf.c:10415
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10424
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10370
+#: src/readelf.c:10478
#, c-format
msgid ""
"\n"
@@ -5778,7 +5783,7 @@ msgstr ""
"\n"
"Sekcja tabeli wyszukiwania ramki wywoÅ‚ania [%2zu] „.eh_frame_hdrâ€:\n"
-#: src/readelf.c:10472
+#: src/readelf.c:10580
#, c-format
msgid ""
"\n"
@@ -5787,22 +5792,22 @@ msgstr ""
"\n"
"Sekcja tabeli obsÅ‚ugiwania wyjÄ…tków [%2zu] „.gcc_except_tableâ€:\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10603
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Kodowanie LPStart: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10615
#, c-format
msgid " TType encoding: %#x "
msgstr " Kodowanie TType: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10630
#, c-format
msgid " Call site encoding: %#x "
msgstr " Kodowanie strony wywołania: %#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10643
msgid ""
"\n"
" Call site table:"
@@ -5810,7 +5815,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:10549
+#: src/readelf.c:10657
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5823,12 +5828,12 @@ msgstr ""
" LÄ…dowisko: %#<PRIx64>\n"
" Działanie: %u\n"
-#: src/readelf.c:10622
+#: src/readelf.c:10730
#, c-format
msgid "invalid TType encoding"
msgstr "nieprawidłowe kodowanie TType"
-#: src/readelf.c:10649
+#: src/readelf.c:10757
#, c-format
msgid ""
"\n"
@@ -5837,37 +5842,37 @@ msgstr ""
"\n"
"Sekcja GDB [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %<PRId64> bajtów:\n"
-#: src/readelf.c:10678
+#: src/readelf.c:10786
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Wersja: %<PRId32>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10804
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " offset CU: %#<PRIx32>\n"
-#: src/readelf.c:10703
+#: src/readelf.c:10811
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " offset TU: %#<PRIx32>\n"
-#: src/readelf.c:10710
+#: src/readelf.c:10818
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " offset adresu: %#<PRIx32>\n"
-#: src/readelf.c:10717
+#: src/readelf.c:10825
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " offset symbolu: %#<PRIx32>\n"
-#: src/readelf.c:10724
+#: src/readelf.c:10832
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " offset stałej: %#<PRIx32>\n"
-#: src/readelf.c:10738
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
@@ -5876,7 +5881,7 @@ msgstr ""
"\n"
" Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10763
+#: src/readelf.c:10871
#, c-format
msgid ""
"\n"
@@ -5885,7 +5890,7 @@ msgstr ""
"\n"
" Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10792
+#: src/readelf.c:10900
#, c-format
msgid ""
"\n"
@@ -5894,7 +5899,7 @@ msgstr ""
"\n"
" Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:10824
+#: src/readelf.c:10932
#, c-format
msgid ""
"\n"
@@ -5903,18 +5908,18 @@ msgstr ""
"\n"
" Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n"
-#: src/readelf.c:10962
+#: src/readelf.c:11070
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s"
-#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
-#: src/readelf.c:12116
+#: src/readelf.c:11433 src/readelf.c:12055 src/readelf.c:12166
+#: src/readelf.c:12224
#, c-format
msgid "cannot convert core note data: %s"
msgstr "nie można konwertować danych notatki core: %s"
-#: src/readelf.c:11688
+#: src/readelf.c:11796
#, c-format
msgid ""
"\n"
@@ -5923,21 +5928,21 @@ msgstr ""
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: src/readelf.c:12195
+#: src/readelf.c:12303
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12332
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12384
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "nie można uzyskać zawartości sekcji notatki: %s"
-#: src/readelf.c:12303
+#: src/readelf.c:12411
#, c-format
msgid ""
"\n"
@@ -5947,7 +5952,7 @@ msgstr ""
"Segment notatki [%2zu] „%s†o długości %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12326
+#: src/readelf.c:12434
#, c-format
msgid ""
"\n"
@@ -5956,7 +5961,7 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12373
+#: src/readelf.c:12481
#, c-format
msgid ""
"\n"
@@ -5965,12 +5970,12 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s†nie ma danych do zrzucenia.\n"
-#: src/readelf.c:12400 src/readelf.c:12451
+#: src/readelf.c:12508 src/readelf.c:12559
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "nie można uzyskać danych dla sekcji [%zu] „%sâ€: %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12513
#, c-format
msgid ""
"\n"
@@ -5980,7 +5985,7 @@ msgstr ""
"Segment zrzutu szesnastkowego [%zu] „%sâ€, %<PRIu64> bajtów pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12410
+#: src/readelf.c:12518
#, c-format
msgid ""
"\n"
@@ -5991,7 +5996,7 @@ msgstr ""
"Zrzut szesnastkowy sekcji [%zu] „%sâ€, %<PRIu64> bajtów (%zd "
"nieskompresowanych) pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12424
+#: src/readelf.c:12532
#, c-format
msgid ""
"\n"
@@ -6000,7 +6005,7 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s†nie ma ciągów do zrzucenia.\n"
-#: src/readelf.c:12456
+#: src/readelf.c:12564
#, c-format
msgid ""
"\n"
@@ -6009,7 +6014,7 @@ msgstr ""
"\n"
"Sekcja ciągów [%zu] „%s†zawiera %<PRIu64> bajtów pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12461
+#: src/readelf.c:12569
#, c-format
msgid ""
"\n"
@@ -6020,7 +6025,7 @@ msgstr ""
"Sekcja ciągów [%zu] „%s†zawiera %<PRIu64> bajtów (%zd nieskompresowanych) "
"pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12510
+#: src/readelf.c:12618
#, c-format
msgid ""
"\n"
@@ -6029,7 +6034,7 @@ msgstr ""
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:12539
+#: src/readelf.c:12647
#, c-format
msgid ""
"\n"
@@ -6038,12 +6043,12 @@ msgstr ""
"\n"
"sekcja „%s†nie istnieje"
-#: src/readelf.c:12596
+#: src/readelf.c:12704
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "nie można uzyskać indeksu symboli archiwum „%sâ€: %s"
-#: src/readelf.c:12599
+#: src/readelf.c:12707
#, c-format
msgid ""
"\n"
@@ -6052,7 +6057,7 @@ msgstr ""
"\n"
"Archiwum „%s†nie ma indeksu symboli\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12711
#, c-format
msgid ""
"\n"
@@ -6061,12 +6066,12 @@ msgstr ""
"\n"
"Indeks archiwum „%s†ma %zu wpisów:\n"
-#: src/readelf.c:12621
+#: src/readelf.c:12729
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "nie można wydobyć elementów pod offsetem %zu w „%sâ€: %s"
-#: src/readelf.c:12626
+#: src/readelf.c:12734
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Element archiwum „%s†zawiera:\n"
@@ -6130,12 +6135,17 @@ msgstr "Nieprawidłowa baza: %s"
msgid "%s: file format not recognized"
msgstr "%s: nie rozpoznano formatu pliku"
-#: src/size.c:418 src/size.c:551
+#: src/size.c:418 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
-#: src/size.c:576
+#: src/size.c:482
+#, fuzzy, c-format
+msgid "cannot get section header"
+msgstr "nie można uzyskać nagłówka sekcji\n"
+
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(CAÅKOWITE)\n"
@@ -6518,7 +6528,7 @@ msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
-#: src/strip.c:1654 src/strip.c:2534
+#: src/strip.c:1654 src/strip.c:2535
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
@@ -6548,47 +6558,47 @@ msgstr "podczas tworzenia tabeli ciągów nagłówka sekcji: %s"
msgid "no memory to create section header string table"
msgstr "brak pamięci do utworzenia tabeli ciągów nagłówka sekcji"
-#: src/strip.c:2027
+#: src/strip.c:2028
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr "Nie można usunąć symbolu [%zd] z przydzielonej tabeli symboli [%zd]"
-#: src/strip.c:2450 src/strip.c:2558
+#: src/strip.c:2451 src/strip.c:2559
#, c-format
msgid "while writing '%s': %s"
msgstr "podczas zapisywania „%sâ€: %s"
-#: src/strip.c:2461
+#: src/strip.c:2462
#, c-format
msgid "while creating '%s'"
msgstr "podczas tworzenia „%sâ€"
-#: src/strip.c:2484
+#: src/strip.c:2485
#, c-format
msgid "while computing checksum for debug information"
msgstr "podczas obliczania sumy kontrolnej dla informacji debugowania"
-#: src/strip.c:2525
+#: src/strip.c:2526
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
-#: src/strip.c:2543
+#: src/strip.c:2544
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: błąd podczas odczytywania pliku: %s"
-#: src/strip.c:2583 src/strip.c:2603
+#: src/strip.c:2584 src/strip.c:2604
#, c-format
msgid "while writing '%s'"
msgstr "podczas zapisywania „%sâ€"
-#: src/strip.c:2640 src/strip.c:2647
+#: src/strip.c:2641 src/strip.c:2648
#, c-format
msgid "error while finishing '%s': %s"
msgstr "bÅ‚Ä…d podczas koÅ„czenia „%sâ€: %s"
-#: src/strip.c:2664 src/strip.c:2740
+#: src/strip.c:2665 src/strip.c:2741
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "nie można ustawić czasu dostÄ™pu i modyfikacji „%sâ€"
@@ -6676,7 +6686,7 @@ msgstr "nie można utworzyć nagłówka ELF: %s"
msgid "cannot get shdrstrndx:%s"
msgstr "nie można uzyskać sekcji: %s"
-#: src/unstrip.c:248 src/unstrip.c:2034
+#: src/unstrip.c:248 src/unstrip.c:2038
#, c-format
msgid "cannot get ELF header: %s"
msgstr "nie można uzyskać nagłówka ELF: %s"
@@ -6696,12 +6706,12 @@ msgstr "nie można zaktualizować relokacji: %s"
msgid "cannot copy ELF header: %s"
msgstr "nie można skopiować nagłówka ELF: %s"
-#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095
+#: src/unstrip.c:269 src/unstrip.c:2056 src/unstrip.c:2099
#, c-format
msgid "cannot get number of program headers: %s"
msgstr "nie można uzyskać liczby nagłówków programu: %s"
-#: src/unstrip.c:274 src/unstrip.c:2056
+#: src/unstrip.c:274 src/unstrip.c:2060
#, c-format
msgid "cannot create program headers: %s"
msgstr "nie można utworzyć nagłówków programu: %s"
@@ -6716,12 +6726,12 @@ msgstr "nie można skopiować nagłówka programu: %s"
msgid "cannot copy section header: %s"
msgstr "nie można skopiować nagłówka sekcji: %s"
-#: src/unstrip.c:293 src/unstrip.c:1665
+#: src/unstrip.c:293 src/unstrip.c:1669
#, c-format
msgid "cannot get section data: %s"
msgstr "nie można uzyskać danych sekcji: %s"
-#: src/unstrip.c:295 src/unstrip.c:1667
+#: src/unstrip.c:295 src/unstrip.c:1671
#, c-format
msgid "cannot copy section data: %s"
msgstr "nie można skopiować danych sekcji: %s"
@@ -6731,13 +6741,14 @@ msgstr "nie można skopiować danych sekcji: %s"
msgid "cannot create directory '%s'"
msgstr "nie można utworzyć katalogu „%sâ€"
-#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702
+#: src/unstrip.c:391 src/unstrip.c:647 src/unstrip.c:681 src/unstrip.c:847
+#: src/unstrip.c:1706
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "nie można uzyskać wpisu tabeli symboli: %s"
-#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682
-#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942
+#: src/unstrip.c:407 src/unstrip.c:650 src/unstrip.c:671 src/unstrip.c:684
+#: src/unstrip.c:1727 src/unstrip.c:1922 src/unstrip.c:1946
#, c-format
msgid "cannot update symbol table: %s"
msgstr "nie można zaktualizować tabeli symboli: %s"
@@ -6762,136 +6773,136 @@ msgstr "nie można uzyskać wersji symbolu: %s"
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr "nieoczekiwany typ sekcji w [%zu] z sh_link do tabeli symboli"
-#: src/unstrip.c:851
+#: src/unstrip.c:853
#, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "nieprawidłowy offset ciągu w symbolu [%zu]"
-#: src/unstrip.c:1009 src/unstrip.c:1398
+#: src/unstrip.c:1011 src/unstrip.c:1402
#, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "nie można odczytać nazwy sekcji [%zu]: %s"
-#: src/unstrip.c:1024
+#: src/unstrip.c:1026
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr "nieprawidłowa wartość sh_link w sekcji %zu"
-#: src/unstrip.c:1030
+#: src/unstrip.c:1032
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "nie można uzyskać danych dla sekcji %d: %s"
-#: src/unstrip.c:1035
+#: src/unstrip.c:1037
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "nie można uzyskać danych dla sekcji symboli\n"
-#: src/unstrip.c:1041
+#: src/unstrip.c:1043
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "nie można uzyskać wersji symbolu: %s"
-#: src/unstrip.c:1046
+#: src/unstrip.c:1048
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "błędny nagłówek kompresji dla sekcji %zd: %s"
-#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145
+#: src/unstrip.c:1090 src/unstrip.c:1109 src/unstrip.c:1147
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "nie można odczytać sekcji „.gnu.prelink_undoâ€: %s"
-#: src/unstrip.c:1125
+#: src/unstrip.c:1127
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr "przepeÅ‚nienie z shnum = %zu w sekcji „%sâ€"
-#: src/unstrip.c:1136
+#: src/unstrip.c:1138
#, c-format
msgid "invalid contents in '%s' section"
msgstr "nieprawidÅ‚owa zawartość w sekcji „%sâ€"
-#: src/unstrip.c:1192 src/unstrip.c:1524
+#: src/unstrip.c:1194 src/unstrip.c:1528
#, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "nie można odnaleźć pasujÄ…cej sekcji dla [%zu] „%sâ€"
-#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877
+#: src/unstrip.c:1319 src/unstrip.c:1335 src/unstrip.c:1607 src/unstrip.c:1881
#, c-format
msgid "cannot add section name to string table: %s"
msgstr "nie można nazwy sekcji do tabeli ciągów: %s"
-#: src/unstrip.c:1341
+#: src/unstrip.c:1344
#, c-format
msgid "cannot update section header string table data: %s"
msgstr "nie można zaktualizować danych tabeli ciągów nagłówków sekcji: %s"
-#: src/unstrip.c:1369 src/unstrip.c:1373
+#: src/unstrip.c:1373 src/unstrip.c:1377
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr "nie można uzyskać indeksu sekcji tabeli ciągów nagłówków sekcji: %s"
-#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618
+#: src/unstrip.c:1381 src/unstrip.c:1385 src/unstrip.c:1622
#, c-format
msgid "cannot get section count: %s"
msgstr "nie można uzyskać licznika sekcji: %s"
-#: src/unstrip.c:1384
+#: src/unstrip.c:1388
#, c-format
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
"więcej sekcji w okrojonym pliku niż w pliku debugowania — odwrócono "
"parametry?"
-#: src/unstrip.c:1446 src/unstrip.c:1539
+#: src/unstrip.c:1450 src/unstrip.c:1543
#, c-format
msgid "cannot read section header string table: %s"
msgstr "nie można odczytać tabeli ciągów nagłówków sekcji: %s"
-#: src/unstrip.c:1597
+#: src/unstrip.c:1601
#, c-format
msgid "cannot add new section: %s"
msgstr "nie można dodać nowej sekcji: %s"
-#: src/unstrip.c:1710
+#: src/unstrip.c:1714
#, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji"
-#: src/unstrip.c:1742
+#: src/unstrip.c:1746
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji"
-#: src/unstrip.c:2013
+#: src/unstrip.c:2017
#, c-format
msgid "cannot read section data: %s"
msgstr "nie można odczytać danych sekcji: %s"
-#: src/unstrip.c:2042
+#: src/unstrip.c:2046
#, c-format
msgid "cannot update ELF header: %s"
msgstr "nie można zaktualizować nagłówka ELF: %s"
-#: src/unstrip.c:2066
+#: src/unstrip.c:2070
#, c-format
msgid "cannot update program header: %s"
msgstr "nie można zaktualizować nagłówka programu: %s"
-#: src/unstrip.c:2071 src/unstrip.c:2153
+#: src/unstrip.c:2075 src/unstrip.c:2157
#, c-format
msgid "cannot write output file: %s"
msgstr "nie można zapisać pliku wyjściowego: %s"
-#: src/unstrip.c:2122
+#: src/unstrip.c:2126
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
"Dane DWARF nie zostały dostosowane do przesunięcia wczesnego konsolidowania; "
"proszę rozważyć polecenie prelink -u"
-#: src/unstrip.c:2125
+#: src/unstrip.c:2129
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -6899,77 +6910,77 @@ msgstr ""
"Dane DWARF w „%s†nie zostały dostosowane do przesunięcia wczesnego "
"konsolidowania; proszę rozważyć polecenie prelink -u"
-#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293
+#: src/unstrip.c:2148 src/unstrip.c:2199 src/unstrip.c:2211 src/unstrip.c:2297
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "nie można utworzyć deskryptora ELF: %s"
-#: src/unstrip.c:2186
+#: src/unstrip.c:2190
msgid "WARNING: "
msgstr "OSTRZEŻENIE: "
-#: src/unstrip.c:2188
+#: src/unstrip.c:2192
msgid ", use --force"
msgstr ", należy użyć opcji --force"
-#: src/unstrip.c:2211
+#: src/unstrip.c:2215
msgid "ELF header identification (e_ident) different"
msgstr "Różna identyfikacja nagłówka ELF (e_ident)"
-#: src/unstrip.c:2214
+#: src/unstrip.c:2218
msgid "ELF header type (e_type) different"
msgstr "Różne typy nagłówka ELF (e_type)"
-#: src/unstrip.c:2217
+#: src/unstrip.c:2221
msgid "ELF header machine type (e_machine) different"
msgstr "Różne typy maszyny nagłówka ELF (e_machine)"
-#: src/unstrip.c:2220
+#: src/unstrip.c:2224
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony"
-#: src/unstrip.c:2250
+#: src/unstrip.c:2254
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr "nie można odnaleźć okrojonego pliku dla moduÅ‚u „%sâ€: %s"
-#: src/unstrip.c:2254
+#: src/unstrip.c:2258
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr "nie można otworzyć okrojonego pliku „%s†dla moduÅ‚u „%sâ€: %s"
-#: src/unstrip.c:2269
+#: src/unstrip.c:2273
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr "nie można odnaleźć pliku debugowania dla moduÅ‚u „%sâ€: %s"
-#: src/unstrip.c:2273
+#: src/unstrip.c:2277
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr "nie można otworzyć pliku debugowania „%s†dla moduÅ‚u „%sâ€: %s"
-#: src/unstrip.c:2286
+#: src/unstrip.c:2290
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "moduł „%s†pliku „%s†nie został okrojony"
-#: src/unstrip.c:2317
+#: src/unstrip.c:2321
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
"nie można utworzyć pamiÄ™ci podrÄ™cznej adresów sekcji dla moduÅ‚u „%sâ€: %s"
-#: src/unstrip.c:2450
+#: src/unstrip.c:2454
#, c-format
msgid "no matching modules found"
msgstr "nie odnaleziono pasujących modułów"
-#: src/unstrip.c:2459
+#: src/unstrip.c:2463
#, c-format
msgid "matched more than one module"
msgstr "pasuje więcej niż jeden moduł"
-#: src/unstrip.c:2503
+#: src/unstrip.c:2507
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -6977,7 +6988,7 @@ msgstr ""
"OKROJONY-PLIK PLIK-DEBUGOWANIA\n"
"[MODUÅ…]"
-#: src/unstrip.c:2504
+#: src/unstrip.c:2508
#, fuzzy
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
@@ -7033,7 +7044,7 @@ msgstr ""
"jest nazwÄ… oddzielnego pliku debuginfo lub „-â€, jeÅ›li nie odnaleziono "
"debuginfo lub „.â€, jeÅ›li PLIK zawiera informacje debugowania."
-#: tests/backtrace.c:437
+#: tests/backtrace.c:436
msgid "Run executable"
msgstr "Uruchamia plik wykonywalny"
diff --git a/po/uk.po b/po/uk.po
index 7c6120ac..98bb80e7 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2019-02-14 14:31+0100\n"
+"POT-Creation-Date: 2019-08-13 23:38+0200\n"
"PO-Revision-Date: 2015-09-26 16:41+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
@@ -58,8 +58,8 @@ msgstr ""
"початкових кодах. Умовами Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ ÐЕ передбачено жодних "
"гарантій, зокрема гарантій працездатноÑÑ‚Ñ– або придатноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— мети.\n"
-#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3414
-#: src/readelf.c:11274 src/unstrip.c:2346 src/unstrip.c:2552
+#: lib/xmalloc.c:52 lib/xmalloc.c:65 lib/xmalloc.c:77 src/readelf.c:3433
+#: src/readelf.c:11382 src/unstrip.c:2350 src/unstrip.c:2556
#, c-format
msgid "memory exhausted"
msgstr "пам’ÑÑ‚ÑŒ вичерпано"
@@ -300,7 +300,7 @@ msgstr " невідомий код операції"
msgid ".debug_addr section missing"
msgstr "немає розділу .debug_ranges"
-#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2493
+#: libdwfl/argp-std.c:50 src/stack.c:638 src/unstrip.c:2497
msgid "Input selection options:"
msgstr "Вибір параметрів Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…:"
@@ -596,7 +596,7 @@ msgstr " ОС: %s, ABI: "
msgid "Stand alone"
msgstr "Окремий"
-#: libebl/eblsymbolbindingname.c:67 libebl/eblsymboltypename.c:73
+#: libebl/eblsymbolbindingname.c:68 libebl/eblsymboltypename.c:74
#, c-format
msgid "<unknown>: %d"
msgstr "<невідомий>: %d"
@@ -621,7 +621,7 @@ msgstr "некоректна розмірніÑÑ‚ÑŒ вхідного парамÐ
msgid "invalid size of destination operand"
msgstr "некоректна розмірніÑÑ‚ÑŒ вихідного параметра"
-#: libelf/elf_error.c:87 src/readelf.c:6129
+#: libelf/elf_error.c:87 src/readelf.c:6150
#, c-format
msgid "invalid encoding"
msgstr "некоректне кодуваннÑ"
@@ -707,8 +707,8 @@ msgstr "невідповідніÑÑ‚ÑŒ полів data/scn"
msgid "invalid section header"
msgstr "некоректний заголовок розділу"
-#: libelf/elf_error.c:191 src/readelf.c:9790 src/readelf.c:10390
-#: src/readelf.c:10491 src/readelf.c:10673
+#: libelf/elf_error.c:191 src/readelf.c:9898 src/readelf.c:10498
+#: src/readelf.c:10599 src/readelf.c:10781
#, c-format
msgid "invalid data"
msgstr "некоректні дані"
@@ -1376,7 +1376,7 @@ msgstr "Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%s» параметра --gaps."
#: src/elfcmp.c:734 src/findtextrel.c:205 src/nm.c:364 src/ranlib.c:141
#: src/size.c:272 src/strings.c:185 src/strip.c:984 src/strip.c:1021
-#: src/unstrip.c:2142 src/unstrip.c:2171
+#: src/unstrip.c:2146 src/unstrip.c:2175
#, c-format
msgid "cannot open '%s'"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ «%s»"
@@ -1507,7 +1507,7 @@ msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
"Педантична перевірка файлів ELF на ÑуміÑніÑÑ‚ÑŒ зі ÑпецифікаціÑми gABI/psABI."
-#: src/elflint.c:154 src/readelf.c:346
+#: src/elflint.c:154 src/readelf.c:357
#, c-format
msgid "cannot open input file"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ вхідний файл."
@@ -1526,7 +1526,7 @@ msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриÐ
msgid "No errors"
msgstr "Без помилок"
-#: src/elflint.c:219 src/readelf.c:545
+#: src/elflint.c:219 src/readelf.c:559
msgid "Missing file name.\n"
msgstr "Ðе вказано назви файла.\n"
@@ -3703,7 +3703,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: Ð’ÐУТРІШÐЯ ПОМИЛКР%d (%s): %s"
#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2747
+#: src/strip.c:2748
#, c-format
msgid "while closing '%s'"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
@@ -3747,19 +3747,19 @@ msgstr "%s%s%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла
msgid "cannot create search tree"
msgstr "не вдалоÑÑ Ñтворити дерево пошуку"
-#: src/nm.c:746 src/nm.c:1207 src/objdump.c:777 src/readelf.c:605
-#: src/readelf.c:1412 src/readelf.c:1563 src/readelf.c:1764 src/readelf.c:1970
-#: src/readelf.c:2160 src/readelf.c:2338 src/readelf.c:2414 src/readelf.c:2672
-#: src/readelf.c:2748 src/readelf.c:2835 src/readelf.c:3433 src/readelf.c:3483
-#: src/readelf.c:3546 src/readelf.c:11106 src/readelf.c:12291
-#: src/readelf.c:12495 src/readelf.c:12563 src/size.c:398 src/size.c:467
+#: src/nm.c:746 src/nm.c:1205 src/objdump.c:777 src/readelf.c:619
+#: src/readelf.c:1431 src/readelf.c:1582 src/readelf.c:1783 src/readelf.c:1989
+#: src/readelf.c:2179 src/readelf.c:2357 src/readelf.c:2433 src/readelf.c:2691
+#: src/readelf.c:2767 src/readelf.c:2854 src/readelf.c:3452 src/readelf.c:3502
+#: src/readelf.c:3565 src/readelf.c:11214 src/readelf.c:12399
+#: src/readelf.c:12603 src/readelf.c:12671 src/size.c:398 src/size.c:470
#: src/strip.c:1038
#, c-format
msgid "cannot get section header string table index"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків"
#. We always print this prolog.
-#: src/nm.c:773
+#: src/nm.c:771
#, c-format
msgid ""
"\n"
@@ -3773,7 +3773,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:776
+#: src/nm.c:774
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -3782,28 +3782,28 @@ msgstr ""
"%*s%-*s %-*s ÐšÐ»Ð°Ñ Ð¢Ð¸Ð¿ %-*s %*s Розділ\n"
"\n"
-#: src/nm.c:1218
+#: src/nm.c:1216
#, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: розмір запиÑу у розділі %zd «%s» не Ñ” очікуваним"
-#: src/nm.c:1223
+#: src/nm.c:1221
#, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: розмір розділу %zd «%s» не Ñ” кратним до розміру запиÑу"
-#: src/nm.c:1302
+#: src/nm.c:1300
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: розмір запиÑу у розділі %zd «%s» не Ñ” очікуваним"
#. XXX Add machine specific object file types.
-#: src/nm.c:1528
+#: src/nm.c:1526
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: некоректна діÑ"
-#: src/nm.c:1585
+#: src/nm.c:1583
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: немає Ñимволів"
@@ -3837,7 +3837,7 @@ msgstr "Показати інформацію лише з розділу ÐÐЗÐ
msgid "Show information from FILEs (a.out by default)."
msgstr "Показати інформацію з ФÐЙЛів (типово a.out)."
-#: src/objdump.c:218 src/readelf.c:550
+#: src/objdump.c:218 src/readelf.c:564
msgid "No operation specified.\n"
msgstr "Ðе вказано дії.\n"
@@ -3846,11 +3846,11 @@ msgstr "Ðе вказано дії.\n"
msgid "while close `%s'"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
-#: src/objdump.c:363 src/readelf.c:2065 src/readelf.c:2257
+#: src/objdump.c:363 src/readelf.c:2084 src/readelf.c:2276
msgid "INVALID SYMBOL"
msgstr "ÐЕКОРЕКТÐИЙ СИМВОЛ"
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2118 src/readelf.c:2312
msgid "INVALID SECTION"
msgstr "ÐЕКОРЕКТÐИЙ РОЗДІЛ"
@@ -4037,151 +4037,151 @@ msgid "Print information from ELF file in human-readable form."
msgstr "Виводити відомоÑÑ‚Ñ– з файла ELF у придатному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–."
#. Look up once.
-#: src/readelf.c:328
+#: src/readelf.c:339
msgid "yes"
msgstr "так"
-#: src/readelf.c:329
+#: src/readelf.c:340
msgid "no"
msgstr "ні"
-#: src/readelf.c:518
+#: src/readelf.c:532
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Ðевідомий діагноÑтичний розділ DWARF «%s».\n"
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:603 src/readelf.c:714
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf: %s"
-#: src/readelf.c:596 src/readelf.c:923 src/strip.c:1133
+#: src/readelf.c:610 src/readelf.c:937 src/strip.c:1133
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:614 src/readelf.c:1228 src/readelf.c:1436
+#: src/readelf.c:628 src/readelf.c:1247 src/readelf.c:1455
#, c-format
msgid "cannot get section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/readelf.c:623 src/readelf.c:1235 src/readelf.c:1444 src/readelf.c:12515
+#: src/readelf.c:637 src/readelf.c:1254 src/readelf.c:1463 src/readelf.c:12623
#: src/unstrip.c:395 src/unstrip.c:426 src/unstrip.c:481 src/unstrip.c:600
-#: src/unstrip.c:621 src/unstrip.c:660 src/unstrip.c:871 src/unstrip.c:1202
-#: src/unstrip.c:1394 src/unstrip.c:1458 src/unstrip.c:1632 src/unstrip.c:1766
-#: src/unstrip.c:1909 src/unstrip.c:2004
+#: src/unstrip.c:621 src/unstrip.c:661 src/unstrip.c:873 src/unstrip.c:1204
+#: src/unstrip.c:1331 src/unstrip.c:1355 src/unstrip.c:1398 src/unstrip.c:1462
+#: src/unstrip.c:1636 src/unstrip.c:1770 src/unstrip.c:1913 src/unstrip.c:2008
#, c-format
msgid "cannot get section header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s"
-#: src/readelf.c:631
+#: src/readelf.c:645
#, c-format
msgid "cannot get section name"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву розділу"
-#: src/readelf.c:640 src/readelf.c:6539 src/readelf.c:10378 src/readelf.c:10480
-#: src/readelf.c:10658
+#: src/readelf.c:654 src/readelf.c:6560 src/readelf.c:10486 src/readelf.c:10588
+#: src/readelf.c:10766
#, c-format
msgid "cannot get %s content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s: %s"
-#: src/readelf.c:656
+#: src/readelf.c:670
#, c-format
msgid "cannot create temp file '%s'"
msgstr "не вдалоÑÑ Ñтворити файл тимчаÑових даних «%s»"
-#: src/readelf.c:665
+#: src/readelf.c:679
#, c-format
msgid "cannot write section data"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати дані розділу"
-#: src/readelf.c:671 src/readelf.c:688 src/readelf.c:717
+#: src/readelf.c:685 src/readelf.c:702 src/readelf.c:731
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s"
-#: src/readelf.c:678
+#: src/readelf.c:692
#, c-format
msgid "error while rewinding file descriptor"
msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початкового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла"
-#: src/readelf.c:712
+#: src/readelf.c:726
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "«%s» не Ñ” архівом, Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° архіву неможливе"
-#: src/readelf.c:816
+#: src/readelf.c:830
#, c-format
msgid "cannot stat input file"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла за допомогою stat"
-#: src/readelf.c:818
+#: src/readelf.c:832
#, c-format
msgid "input file is empty"
msgstr "вхідний файл є порожнім"
-#: src/readelf.c:820
+#: src/readelf.c:834
#, c-format
msgid "failed reading '%s': %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s"
-#: src/readelf.c:849
+#: src/readelf.c:863
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "У «%2$s» немає розділу «%1$s»"
-#: src/readelf.c:908
+#: src/readelf.c:922
#, c-format
msgid "cannot read ELF header: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s"
-#: src/readelf.c:916
+#: src/readelf.c:930
#, c-format
msgid "cannot create EBL handle"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL"
-#: src/readelf.c:929
+#: src/readelf.c:943
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/readelf.c:961
+#: src/readelf.c:975
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %s: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1036
msgid "NONE (None)"
msgstr "NONE (Ðемає)"
-#: src/readelf.c:1023
+#: src/readelf.c:1037
msgid "REL (Relocatable file)"
msgstr "REL (Придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»)"
-#: src/readelf.c:1024
+#: src/readelf.c:1038
msgid "EXEC (Executable file)"
msgstr "EXEC (Виконуваний файл)"
-#: src/readelf.c:1025
+#: src/readelf.c:1039
msgid "DYN (Shared object file)"
msgstr "DYN (Файл об’єктів Ñпільного викориÑтаннÑ)"
-#: src/readelf.c:1026
+#: src/readelf.c:1040
msgid "CORE (Core file)"
msgstr "CORE (Файл Ñдра)"
-#: src/readelf.c:1031
+#: src/readelf.c:1045
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "ОС-Ñпецифічне: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1047
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Специфічне Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1057
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4189,7 +4189,7 @@ msgstr ""
"Заголовок ELF:\n"
" Magic: "
-#: src/readelf.c:1047
+#: src/readelf.c:1061
#, c-format
msgid ""
"\n"
@@ -4198,118 +4198,123 @@ msgstr ""
"\n"
" КлаÑ: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1066
#, c-format
msgid " Data: %s\n"
msgstr " Дані: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1072
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " ВерÑÑ–Ñ Ident: %hhd %s\n"
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1074 src/readelf.c:1096
msgid "(current)"
msgstr "(поточний)"
-#: src/readelf.c:1064
+#: src/readelf.c:1078
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1081
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ВерÑÑ–Ñ ABI: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1084
msgid " Type: "
msgstr " Тип: "
-#: src/readelf.c:1073
+#: src/readelf.c:1089
#, c-format
msgid " Machine: %s\n"
msgstr " Ðрхітектура: %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1091
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Ðрхітектура: %s\n"
+
+#: src/readelf.c:1094
#, c-format
msgid " Version: %d %s\n"
msgstr " ВерÑÑ–Ñ: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1098
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " ÐдреÑа вхідної точки: %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1101
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Початок заголовків програм: %<PRId64> %s\n"
-#: src/readelf.c:1083 src/readelf.c:1086
+#: src/readelf.c:1102 src/readelf.c:1105
msgid "(bytes into file)"
msgstr "(байтів у файл)"
-#: src/readelf.c:1085
+#: src/readelf.c:1104
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Початок заголовків розділів: %<PRId64> %s\n"
-#: src/readelf.c:1088
+#: src/readelf.c:1107
#, c-format
msgid " Flags: %s\n"
msgstr " Прапорці: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1110
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Розмір цього заголовка: %<PRId16> %s\n"
-#: src/readelf.c:1092 src/readelf.c:1095 src/readelf.c:1112
+#: src/readelf.c:1111 src/readelf.c:1114 src/readelf.c:1131
msgid "(bytes)"
msgstr "(байтів)"
-#: src/readelf.c:1094
+#: src/readelf.c:1113
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовка програми: %<PRId16> %s\n"
-#: src/readelf.c:1097
+#: src/readelf.c:1116
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків програми: %<PRId16>"
-#: src/readelf.c:1104
+#: src/readelf.c:1123
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> у [0].sh_info)"
-#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138
+#: src/readelf.c:1126 src/readelf.c:1143 src/readelf.c:1157
msgid " ([0] not available)"
msgstr " ([0] недоÑтупний)"
-#: src/readelf.c:1111
+#: src/readelf.c:1130
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовків розділів: %<PRId16> %s\n"
-#: src/readelf.c:1114
+#: src/readelf.c:1133
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків розділів: %<PRId16>"
-#: src/readelf.c:1121
+#: src/readelf.c:1140
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> у [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1134
+#: src/readelf.c:1153
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> у [0].sh_link)"
-#: src/readelf.c:1142
+#: src/readelf.c:1161
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4318,7 +4323,7 @@ msgstr ""
" Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: XINDEX%s\n"
"\n"
-#: src/readelf.c:1146
+#: src/readelf.c:1165
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4327,12 +4332,12 @@ msgstr ""
" Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %<PRId16>\n"
"\n"
-#: src/readelf.c:1193 src/readelf.c:1401
+#: src/readelf.c:1212 src/readelf.c:1420
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1215
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4341,16 +4346,16 @@ msgstr ""
"ВиÑвлено %d заголовків розділів, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ — %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1205
+#: src/readelf.c:1224
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків"
-#: src/readelf.c:1208
+#: src/readelf.c:1227
msgid "Section Headers:"
msgstr "Заголовки розділів:"
-#: src/readelf.c:1211
+#: src/readelf.c:1230
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4358,7 +4363,7 @@ msgstr ""
"[â„– ] Ðазва Тип Ðдр Змі Розмір ES Прап Lk "
"Інф Al"
-#: src/readelf.c:1213
+#: src/readelf.c:1232
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4366,35 +4371,35 @@ msgstr ""
"[â„– ] Ðазва Тип Ðдр Змі Розмір ES "
"Прап Lk Інф Al"
-#: src/readelf.c:1218
+#: src/readelf.c:1237
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1239
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1315
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s"
-#: src/readelf.c:1307
+#: src/readelf.c:1326
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s"
-#: src/readelf.c:1325
+#: src/readelf.c:1344
msgid "Program Headers:"
msgstr "Заголовки програми:"
-#: src/readelf.c:1327
+#: src/readelf.c:1346
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр РозмФайл РозмПам Пра Вирів"
-#: src/readelf.c:1330
+#: src/readelf.c:1349
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4402,12 +4407,12 @@ msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр "
"РозмФайлРозмПам Пра Вирів"
-#: src/readelf.c:1387
+#: src/readelf.c:1406
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Запит щодо інтерпретатора програми: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1433
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4417,12 +4422,12 @@ msgstr ""
" Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² на Ñегмент:\n"
" Розділи Ñегмента..."
-#: src/readelf.c:1425 src/unstrip.c:2063 src/unstrip.c:2105 src/unstrip.c:2112
+#: src/readelf.c:1444 src/unstrip.c:2067 src/unstrip.c:2109 src/unstrip.c:2116
#, c-format
msgid "cannot get program header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок програми: %s"
-#: src/readelf.c:1571
+#: src/readelf.c:1590
#, c-format
msgid ""
"\n"
@@ -4440,7 +4445,7 @@ msgstr[2] ""
"\n"
"Група розділів COMDAT [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1576
+#: src/readelf.c:1595
#, c-format
msgid ""
"\n"
@@ -4458,31 +4463,31 @@ msgstr[2] ""
"\n"
"Група розділів [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1584
+#: src/readelf.c:1603
msgid "<INVALID SYMBOL>"
msgstr "<ÐЕКОРЕКТÐИЙ СИМВОЛ>"
-#: src/readelf.c:1598
+#: src/readelf.c:1617
msgid "<INVALID SECTION>"
msgstr "<ÐЕКОРЕКТÐИЙ РОЗДІЛ>"
-#: src/readelf.c:1621 src/readelf.c:2348 src/readelf.c:3449 src/readelf.c:12386
-#: src/readelf.c:12393 src/readelf.c:12437 src/readelf.c:12444
+#: src/readelf.c:1640 src/readelf.c:2367 src/readelf.c:3468 src/readelf.c:12494
+#: src/readelf.c:12501 src/readelf.c:12545 src/readelf.c:12552
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1645 src/readelf.c:2372 src/readelf.c:3473
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s"
-#: src/readelf.c:1770 src/readelf.c:2420 src/readelf.c:2678 src/readelf.c:2754
-#: src/readelf.c:3058 src/readelf.c:3132 src/readelf.c:5327
+#: src/readelf.c:1789 src/readelf.c:2439 src/readelf.c:2697 src/readelf.c:2773
+#: src/readelf.c:3077 src/readelf.c:3151 src/readelf.c:5348
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu"
-#: src/readelf.c:1773
+#: src/readelf.c:1792
#, c-format
msgid ""
"\n"
@@ -4505,36 +4510,36 @@ msgstr[2] ""
"Динамічний Ñегмент міÑтить %lu запиÑів:\n"
" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
-#: src/readelf.c:1783
+#: src/readelf.c:1802
msgid " Type Value\n"
msgstr " Тип ЗначеннÑ\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1826
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Спільна бібліотека: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1831
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Ðазва so бібліотеки: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1836
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath бібліотеки: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1841
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Runpath бібліотеки: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1861
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (байт)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1974 src/readelf.c:2164
#, c-format
msgid ""
"\n"
@@ -4543,7 +4548,7 @@ msgstr ""
"\n"
"Ðекоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#0<PRIx64>\n"
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1992 src/readelf.c:2182
#, c-format
msgid ""
"\n"
@@ -4572,7 +4577,7 @@ msgstr[2] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:1988 src/readelf.c:2178
+#: src/readelf.c:2007 src/readelf.c:2197
#, c-format
msgid ""
"\n"
@@ -4590,30 +4595,30 @@ msgstr[2] ""
"\n"
"Розділ переÑÑƒÐ²Ð°Ð½Ð½Ñ [%2u] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d запиÑів:\n"
-#: src/readelf.c:1998
+#: src/readelf.c:2017
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2019
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2053 src/readelf.c:2064 src/readelf.c:2077 src/readelf.c:2098
-#: src/readelf.c:2110 src/readelf.c:2244 src/readelf.c:2256 src/readelf.c:2270
-#: src/readelf.c:2292 src/readelf.c:2305
+#: src/readelf.c:2072 src/readelf.c:2083 src/readelf.c:2096 src/readelf.c:2117
+#: src/readelf.c:2129 src/readelf.c:2263 src/readelf.c:2275 src/readelf.c:2289
+#: src/readelf.c:2311 src/readelf.c:2324
msgid "<INVALID RELOC>"
msgstr "<ÐЕКОРЕКТÐЕ ПЕРЕМІЩЕÐÐЯ>"
-#: src/readelf.c:2188
+#: src/readelf.c:2207
msgid " Offset Type Value Addend Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2209
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2447
#, c-format
msgid ""
"\n"
@@ -4631,7 +4636,7 @@ msgstr[2] ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%2u] «%s» міÑтить %u запиÑів:\n"
-#: src/readelf.c:2433
+#: src/readelf.c:2452
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -4639,33 +4644,33 @@ msgstr[0] " %lu лок. Ñимвол Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «
msgstr[1] " %lu лок. Ñимволи Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n"
msgstr[2] " %lu лок. Ñимволів Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n"
-#: src/readelf.c:2441
+#: src/readelf.c:2460
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2443
+#: src/readelf.c:2462
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2463
+#: src/readelf.c:2482
#, 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:2551
+#: src/readelf.c:2570
#, c-format
msgid "bad dynamic symbol"
msgstr "помилковий динамічний Ñимвол"
-#: src/readelf.c:2633
+#: src/readelf.c:2652
msgid "none"
msgstr "немає"
-#: src/readelf.c:2650
+#: src/readelf.c:2669
msgid "| <unknown>"
msgstr "| <невідомо>"
-#: src/readelf.c:2681
+#: src/readelf.c:2700
#, c-format
msgid ""
"\n"
@@ -4688,17 +4693,17 @@ msgstr[2] ""
"Розділ потреби у верÑÑ–ÑÑ… [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:2702
+#: src/readelf.c:2721
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ВерÑÑ–Ñ: %hu Файл: %s Кть: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2734
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Ðазва: %s Прап: %s ВерÑÑ–Ñ: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2777
#, c-format
msgid ""
"\n"
@@ -4721,18 +4726,18 @@ msgstr[2] ""
"Розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ— [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:2786
+#: src/readelf.c:2805
#, 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:2801
+#: src/readelf.c:2820
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: батьківÑький %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3081
#, c-format
msgid ""
"\n"
@@ -4755,15 +4760,15 @@ msgstr[2] ""
"Розділ Ñимволів верÑій [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»"
-#: src/readelf.c:3090
+#: src/readelf.c:3109
msgid " 0 *local* "
msgstr " 0 *локальний* "
-#: src/readelf.c:3095
+#: src/readelf.c:3114
msgid " 1 *global* "
msgstr " 1 *загальний* "
-#: src/readelf.c:3137
+#: src/readelf.c:3156
#, c-format
msgid ""
"\n"
@@ -4791,22 +4796,22 @@ msgstr[2] ""
"блоками):\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:3159
+#: src/readelf.c:3178
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Довжина Ðомер % від загал. ПокриттÑ\n"
-#: src/readelf.c:3161
+#: src/readelf.c:3180
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3187
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3181
+#: src/readelf.c:3200
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -4815,37 +4820,37 @@ msgstr ""
" Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ теÑтів: уÑпішний пошук: %f\n"
"\t\t\t неуÑпішний пошук: %f\n"
-#: src/readelf.c:3199 src/readelf.c:3263 src/readelf.c:3329
+#: src/readelf.c:3218 src/readelf.c:3282 src/readelf.c:3348
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s"
-#: src/readelf.c:3207
+#: src/readelf.c:3226
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "некоректні дані у розділі sysv.hash %d"
-#: src/readelf.c:3236
+#: src/readelf.c:3255
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "некоректні дані у розділі sysv.hash %d"
-#: src/readelf.c:3271
+#: src/readelf.c:3290
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "некоректні дані у розділі sysv.hash64 %d"
-#: src/readelf.c:3302
+#: src/readelf.c:3321
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "некоректні дані у розділі sysv.hash64 %d"
-#: src/readelf.c:3338
+#: src/readelf.c:3357
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "некоректні дані у розділі gnu.hash %d"
-#: src/readelf.c:3405
+#: src/readelf.c:3424
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4855,7 +4860,7 @@ msgstr ""
" Розмір бітової маÑки: %zu байтів %<PRIuFAST32>%% вÑтановлених бітів зÑув "
"2-го хешу: %u\n"
-#: src/readelf.c:3494
+#: src/readelf.c:3513
#, c-format
msgid ""
"\n"
@@ -4876,7 +4881,7 @@ msgstr[2] ""
"Розділ ÑпиÑку бібліотек [%2zu] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d "
"запиÑів:\n"
-#: src/readelf.c:3508
+#: src/readelf.c:3527
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4884,7 +4889,7 @@ msgstr ""
" Бібліотека ЧаÑовий штамп ВерÑÑ–Ñ Ñуми "
"Прапорці"
-#: src/readelf.c:3558
+#: src/readelf.c:3579
#, c-format
msgid ""
"\n"
@@ -4895,102 +4900,102 @@ msgstr ""
"Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:3575
+#: src/readelf.c:3596
msgid " Owner Size\n"
msgstr " ВлаÑник Розмір\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3625
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3664
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3669
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Файл: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3718
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3721
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3724
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3734
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3737
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3807
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "помилка mprotect"
-#: src/readelf.c:4268
+#: src/readelf.c:4289
msgid "empty block"
msgstr "порожній блок"
-#: src/readelf.c:4271
+#: src/readelf.c:4292
#, c-format
msgid "%zu byte block:"
msgstr "%zu-байтовий блок:"
-#: src/readelf.c:4749
+#: src/readelf.c:4770
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <ОБРІЗÐÐО>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4834
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ"
-#: src/readelf.c:4820
+#: src/readelf.c:4841
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами зміщень"
-#: src/readelf.c:4827
+#: src/readelf.c:4848
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> викориÑтано з різними базовими адреÑами"
-#: src/readelf.c:4834
+#: src/readelf.c:4855
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ"
-#: src/readelf.c:4931
+#: src/readelf.c:4952
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ У РЕШТІ РОЗДІЛУ>\n"
-#: src/readelf.c:4939
+#: src/readelf.c:4960
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ> ... %<PRIu64> байтів ...\n"
-#: src/readelf.c:5017
+#: src/readelf.c:5038
#, c-format
msgid ""
"\n"
@@ -5001,7 +5006,7 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:5025
+#: src/readelf.c:5046
#, c-format
msgid ""
"\n"
@@ -5010,20 +5015,20 @@ msgstr ""
"\n"
"Розділ Ñкорочень за зміщеннÑм %<PRIu64>:\n"
-#: src/readelf.c:5038
+#: src/readelf.c:5059
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÑкороченнÑ: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5075
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] зміщеннÑ: %<PRId64>, дочірній: %s, мітка: %s\n"
-#: src/readelf.c:5087 src/readelf.c:5396 src/readelf.c:5563 src/readelf.c:5948
-#: src/readelf.c:6549 src/readelf.c:8199 src/readelf.c:8885 src/readelf.c:9321
-#: src/readelf.c:9566 src/readelf.c:9732 src/readelf.c:10119
-#: src/readelf.c:10179
+#: src/readelf.c:5108 src/readelf.c:5417 src/readelf.c:5584 src/readelf.c:5969
+#: src/readelf.c:6570 src/readelf.c:8307 src/readelf.c:8993 src/readelf.c:9429
+#: src/readelf.c:9674 src/readelf.c:9840 src/readelf.c:10227
+#: src/readelf.c:10287
#, c-format
msgid ""
"\n"
@@ -5032,56 +5037,56 @@ msgstr ""
"\n"
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:5100
+#: src/readelf.c:5121
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/readelf.c:5200 src/readelf.c:5224 src/readelf.c:5608 src/readelf.c:8930
+#: src/readelf.c:5221 src/readelf.c:5245 src/readelf.c:5629 src/readelf.c:9038
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5202 src/readelf.c:5239 src/readelf.c:5621 src/readelf.c:8943
+#: src/readelf.c:5223 src/readelf.c:5260 src/readelf.c:5642 src/readelf.c:9051
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5203 src/readelf.c:5248 src/readelf.c:5630 src/readelf.c:8952
+#: src/readelf.c:5224 src/readelf.c:5269 src/readelf.c:5651 src/readelf.c:9060
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Розмір адреÑи: %6<PRIu64>\n"
-#: src/readelf.c:5205 src/readelf.c:5258 src/readelf.c:5640 src/readelf.c:8962
+#: src/readelf.c:5226 src/readelf.c:5279 src/readelf.c:5661 src/readelf.c:9070
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr ""
" Розмір Ñегмента: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5243 src/readelf.c:5625 src/readelf.c:8947 src/readelf.c:10311
+#: src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055 src/readelf.c:10419
#, fuzzy, c-format
msgid "Unknown version"
msgstr "невідома верÑÑ–Ñ"
-#: src/readelf.c:5253 src/readelf.c:5466 src/readelf.c:5635 src/readelf.c:8957
+#: src/readelf.c:5274 src/readelf.c:5487 src/readelf.c:5656 src/readelf.c:9065
#, c-format
msgid "unsupported address size"
msgstr "непідтримуваний розмір адреÑи"
-#: src/readelf.c:5264 src/readelf.c:5477 src/readelf.c:5645 src/readelf.c:8967
+#: src/readelf.c:5285 src/readelf.c:5498 src/readelf.c:5666 src/readelf.c:9075
#, c-format
msgid "unsupported segment size"
msgstr "непідтримуваний розмір Ñегмента"
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5338 src/readelf.c:5412
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані get .debug_aranges: %s"
-#: src/readelf.c:5332
+#: src/readelf.c:5353
#, c-format
msgid ""
"\n"
@@ -5099,12 +5104,12 @@ msgstr[2] ""
"\n"
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:5363
+#: src/readelf.c:5384
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5386
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5112,7 +5117,7 @@ msgstr ""
" [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5409 src/readelf.c:8226
+#: src/readelf.c:5430 src/readelf.c:8334
#, c-format
msgid ""
"\n"
@@ -5121,13 +5126,13 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм %zu:\n"
-#: src/readelf.c:5413 src/readelf.c:5589 src/readelf.c:6573 src/readelf.c:8237
-#: src/readelf.c:8911
+#: src/readelf.c:5434 src/readelf.c:5610 src/readelf.c:6594 src/readelf.c:8345
+#: src/readelf.c:9019
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "некоректні дані у розділі [%zu] «%s»"
-#: src/readelf.c:5429
+#: src/readelf.c:5450
#, c-format
msgid ""
"\n"
@@ -5136,27 +5141,27 @@ msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5441
+#: src/readelf.c:5462
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5466
#, c-format
msgid "unsupported aranges version"
msgstr "непідтримувана верÑÑ–Ñ aranges"
-#: src/readelf.c:5456
+#: src/readelf.c:5477
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %6<PRIx64>\n"
-#: src/readelf.c:5462
+#: src/readelf.c:5483
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Розмір адреÑи: %6<PRIu64>\n"
-#: src/readelf.c:5473
+#: src/readelf.c:5494
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5165,111 +5170,111 @@ msgstr ""
" Розмір Ñегмента: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5549
#, c-format
msgid " %zu padding bytes\n"
msgstr " %zu байтів доповненнÑ\n"
-#: src/readelf.c:5572
+#: src/readelf.c:5593
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані .debug_ranges: %s"
-#: src/readelf.c:5595 src/readelf.c:8917
+#: src/readelf.c:5616 src/readelf.c:9025
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:5650 src/readelf.c:8972
+#: src/readelf.c:5671 src/readelf.c:9080
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5687 src/readelf.c:9096
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5689 src/readelf.c:9098
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5695 src/readelf.c:9104
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5706 src/readelf.c:9115
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5710 src/readelf.c:9119
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " ЗміщеннÑ: 0x%<PRIx64>\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5762
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "некоректні дані"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5947 src/readelf.c:9407
#, fuzzy, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr " %zu байтів доповненнÑ\n"
-#: src/readelf.c:5943
+#: src/readelf.c:5964
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6000 src/readelf.c:9462
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6002 src/readelf.c:9464
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6011 src/readelf.c:9490 src/readelf.c:9516
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6032 src/readelf.c:9596
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] базова адреÑа %s\n"
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6040 src/readelf.c:9604
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] порожній ÑпиÑок\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6295
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6548
#, c-format
msgid "cannot get ELF: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6566
#, c-format
msgid ""
"\n"
@@ -5278,7 +5283,7 @@ msgstr ""
"\n"
"Розділ відомоÑтей щодо вікна викликів [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:6595
+#: src/readelf.c:6616
#, c-format
msgid ""
"\n"
@@ -5287,65 +5292,65 @@ msgstr ""
"\n"
" [%6tx] нульовий переривач\n"
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6717 src/readelf.c:6871
#, c-format
msgid "invalid augmentation length"
msgstr "некоректна довжина збільшеннÑ"
-#: src/readelf.c:6711
+#: src/readelf.c:6732
msgid "FDE address encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи FDE: "
-#: src/readelf.c:6717
+#: src/readelf.c:6738
msgid "LSDA pointer encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° LSDA: "
-#: src/readelf.c:6827
+#: src/readelf.c:6848
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (зміщеннÑ: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6855
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ кінцÑ: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6892
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sвказівник LSDA: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6977
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ код атрибута: %s"
-#: src/readelf.c:6966
+#: src/readelf.c:6987
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ форму атрибута: %s"
-#: src/readelf.c:6988
+#: src/readelf.c:7009
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°: %s"
-#: src/readelf.c:7321
+#: src/readelf.c:7339
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "некоректний файл"
-#: src/readelf.c:7325
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " вÑтановити файл у %<PRIu64>\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7660
#, c-format
msgid ""
"\n"
@@ -5356,12 +5361,12 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
" [ЗміщеннÑ]\n"
-#: src/readelf.c:7602
+#: src/readelf.c:7710
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7729
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5374,7 +5379,7 @@ msgstr ""
"ЗміщеннÑ: %<PRIu8>\n"
" ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>\n"
-#: src/readelf.c:7633
+#: src/readelf.c:7741
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5385,38 +5390,38 @@ msgstr ""
" ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, "
"ЗміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:7643 src/readelf.c:7806
+#: src/readelf.c:7751 src/readelf.c:7914
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7778
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7807
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7816
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ мітку DIE за зміщеннÑм %<PRIu64> у розділі «%s»: %s"
-#: src/readelf.c:7746
+#: src/readelf.c:7854
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s\n"
-#: src/readelf.c:7754
+#: src/readelf.c:7862
#, c-format
msgid "cannot get next DIE: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7906
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5427,7 +5432,7 @@ msgstr ""
" ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, "
"ЗміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:7850
+#: src/readelf.c:7958
#, c-format
msgid ""
"\n"
@@ -5438,18 +5443,18 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8182
+#: src/readelf.c:8290
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "невідома форма %#<PRIx64>"
-#: src/readelf.c:8213
+#: src/readelf.c:8321
#, c-format
msgid "cannot get line data section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу лінійних даних: %s"
#. Print what we got so far.
-#: src/readelf.c:8315
+#: src/readelf.c:8423
#, fuzzy, c-format
msgid ""
"\n"
@@ -5480,27 +5485,27 @@ msgstr ""
"\n"
"Коди операцій:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8445
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s"
-#: src/readelf.c:8345
+#: src/readelf.c:8453
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "непідтримуваний розмір адреÑи"
-#: src/readelf.c:8353
+#: src/readelf.c:8461
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/readelf.c:8363
+#: src/readelf.c:8471
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "некоректні дані зі зміщеннÑм %tu у розділі [%zu] «%s»"
-#: src/readelf.c:8378
+#: src/readelf.c:8486
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5508,7 +5513,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n"
-#: src/readelf.c:8389
+#: src/readelf.c:8497
msgid ""
"\n"
"Directory table:"
@@ -5516,12 +5521,12 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8503 src/readelf.c:8580
#, fuzzy, c-format
msgid " ["
msgstr " PC: "
-#: src/readelf.c:8466
+#: src/readelf.c:8574
#, fuzzy
msgid ""
"\n"
@@ -5530,7 +5535,7 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:"
-#: src/readelf.c:8527
+#: src/readelf.c:8635
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5538,7 +5543,7 @@ msgstr ""
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð°Ð·Ð² файлів:\n"
" Ð—Ð°Ð¿Ð¸Ñ ÐšÐ°Ñ‚ Ð§Ð°Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðазва"
-#: src/readelf.c:8564
+#: src/readelf.c:8672
msgid ""
"\n"
"Line number statements:"
@@ -5546,120 +5551,120 @@ msgstr ""
"\n"
"Оператори номерів Ñ€Ñдків:"
-#: src/readelf.c:8587
+#: src/readelf.c:8695
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "некоректну кількіÑÑ‚ÑŒ операцій на інÑтрукцію прирівнÑно до нулÑ"
-#: src/readelf.c:8621
+#: src/readelf.c:8729
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " Ñпеціальний код операції %u: адреÑа+%u = %s, Ñ€Ñдок%+d = %zu\n"
-#: src/readelf.c:8625
+#: src/readelf.c:8733
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
" Ñпеціальний код операції %u: адреÑа+%u = %s, індекÑ_оп = %u, Ñ€Ñдок%+d = "
"%zu\n"
-#: src/readelf.c:8628
+#: src/readelf.c:8736
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8754
#, c-format
msgid " extended opcode %u: "
msgstr " розширений код операції %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8759
msgid " end of sequence"
msgstr " кінець поÑлідовноÑÑ‚Ñ–"
-#: src/readelf.c:8669
+#: src/readelf.c:8777
#, fuzzy, c-format
msgid " set address to "
msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8805
#, 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:8711
+#: src/readelf.c:8819
#, c-format
msgid " set discriminator to %u\n"
msgstr " вÑтановити Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8824
msgid " unknown opcode"
msgstr " невідомий код операції"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8836
msgid " copy"
msgstr " копіÑ"
-#: src/readelf.c:8739
+#: src/readelf.c:8847
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr " Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи на %u до %s\n"
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8851 src/readelf.c:8912
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8863
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " проÑувати Ñ€Ñдок на Ñталу %d до %<PRId64>\n"
-#: src/readelf.c:8765
+#: src/readelf.c:8873
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " вÑтановити файл у %<PRIu64>\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8884
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтовпчика %<PRIu64>\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8891
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " вÑтановити «%s» у %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8897
msgid " set basic block flag"
msgstr " вÑтановити прапорець базового блоку"
-#: src/readelf.c:8800
+#: src/readelf.c:8908
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr " збільшити адреÑу на Ñталу величину %u до %s\n"
-#: src/readelf.c:8820
+#: src/readelf.c:8928
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr " збільшити адреÑу на фікÑовану величину %u до %s\n"
#. Takes no argument.
-#: src/readelf.c:8830
+#: src/readelf.c:8938
msgid " set prologue end flag"
msgstr " вÑтановити прапорець ÐºÑ–Ð½Ñ†Ñ Ð²Ñтупу"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8943
msgid " set epilogue begin flag"
msgstr " вÑтановити прапорець початку епілогу"
-#: src/readelf.c:8845
+#: src/readelf.c:8953
#, c-format
msgid " set isa to %u\n"
msgstr " вÑтановити isa у %u\n"
@@ -5667,7 +5672,7 @@ msgstr " вÑтановити isa у %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:8854
+#: src/readelf.c:8962
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5675,97 +5680,97 @@ msgstr[0] " невідомий код операції з %<PRIu8> парамеÑ
msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
-#: src/readelf.c:8894
+#: src/readelf.c:9002
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9171
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "некоректні дані"
-#: src/readelf.c:9316
+#: src/readelf.c:9424
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s"
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9631 src/readelf.c:10675
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9686 src/readelf.c:9849
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу відомоÑтей щодо макроÑів: %s"
-#: src/readelf.c:9658
+#: src/readelf.c:9766
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** незавершений Ñ€Ñдок наприкінці розділу"
-#: src/readelf.c:9681
+#: src/readelf.c:9789
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу"
-#: src/readelf.c:9782
+#: src/readelf.c:9890
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " ЗміщеннÑ: 0x%<PRIx64>\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9902
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " ВерÑÑ–Ñ: %<PRIu16>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9908 src/readelf.c:10795
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " невідома верÑÑ–Ñ, не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розділ\n"
-#: src/readelf.c:9807
+#: src/readelf.c:9915
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Прапорець: 0x%<PRIx8>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9944
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:9844
+#: src/readelf.c:9952
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:9869
+#: src/readelf.c:9977
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ¾Ð´Ñ–Ð² операцій розширень, запиÑів — %<PRIu8>:\n"
-#: src/readelf.c:9876
+#: src/readelf.c:9984
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:9888
+#: src/readelf.c:9996
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " %<PRIu8> аргументів:"
-#: src/readelf.c:9903
+#: src/readelf.c:10011
#, c-format
msgid " no arguments."
msgstr " немає аргументів."
-#: src/readelf.c:10104
+#: src/readelf.c:10212
#, 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:10148
+#: src/readelf.c:10256
#, c-format
msgid ""
"\n"
@@ -5776,41 +5781,41 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
" %*s РÑдок\n"
-#: src/readelf.c:10163
+#: src/readelf.c:10271
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ñдків: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10300
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10399
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10401
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:10307
+#: src/readelf.c:10415
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10424
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:10370
+#: src/readelf.c:10478
#, c-format
msgid ""
"\n"
@@ -5819,7 +5824,7 @@ msgstr ""
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10472
+#: src/readelf.c:10580
#, c-format
msgid ""
"\n"
@@ -5828,22 +5833,22 @@ msgstr ""
"\n"
"Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10603
#, c-format
msgid " LPStart encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LPStart: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10615
#, c-format
msgid " TType encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10630
#, c-format
msgid " Call site encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:%#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10643
msgid ""
"\n"
" Call site table:"
@@ -5851,7 +5856,7 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:"
-#: src/readelf.c:10549
+#: src/readelf.c:10657
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5864,12 +5869,12 @@ msgstr ""
" МіÑце заÑтоÑуваннÑ: %#<PRIx64>\n"
" ДіÑ: %u\n"
-#: src/readelf.c:10622
+#: src/readelf.c:10730
#, c-format
msgid "invalid TType encoding"
msgstr "некоректне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType"
-#: src/readelf.c:10649
+#: src/readelf.c:10757
#, c-format
msgid ""
"\n"
@@ -5878,37 +5883,37 @@ msgstr ""
"\n"
"Розділ GDB [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %<PRId64> байтів:\n"
-#: src/readelf.c:10678
+#: src/readelf.c:10786
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " ВерÑÑ–Ñ: %<PRId32>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10804
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %#<PRIx32>\n"
-#: src/readelf.c:10703
+#: src/readelf.c:10811
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ TU: %#<PRIx32>\n"
-#: src/readelf.c:10710
+#: src/readelf.c:10818
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %#<PRIx32>\n"
-#: src/readelf.c:10717
+#: src/readelf.c:10825
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñимволу: %#<PRIx32>\n"
-#: src/readelf.c:10724
+#: src/readelf.c:10832
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n"
-#: src/readelf.c:10738
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
@@ -5917,7 +5922,7 @@ msgstr ""
"\n"
" СпиÑок CU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:10763
+#: src/readelf.c:10871
#, c-format
msgid ""
"\n"
@@ -5926,7 +5931,7 @@ msgstr ""
"\n"
" СпиÑок TU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:10792
+#: src/readelf.c:10900
#, c-format
msgid ""
"\n"
@@ -5935,7 +5940,7 @@ msgstr ""
"\n"
" СпиÑок Ð°Ð´Ñ€ÐµÑ Ð·Ñ– зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:10824
+#: src/readelf.c:10932
#, c-format
msgid ""
"\n"
@@ -5944,18 +5949,18 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n"
-#: src/readelf.c:10962
+#: src/readelf.c:11070
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор контекÑту зневаджуваннÑ: %s"
-#: src/readelf.c:11325 src/readelf.c:11947 src/readelf.c:12058
-#: src/readelf.c:12116
+#: src/readelf.c:11433 src/readelf.c:12055 src/readelf.c:12166
+#: src/readelf.c:12224
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані запиÑу Ñдра: %s"
-#: src/readelf.c:11688
+#: src/readelf.c:11796
#, c-format
msgid ""
"\n"
@@ -5964,21 +5969,21 @@ msgstr ""
"\n"
"%*s... <повторюєтьÑÑ %u разів> ..."
-#: src/readelf.c:12195
+#: src/readelf.c:12303
msgid " Owner Data size Type\n"
msgstr " ВлаÑник Розм. даних Тип\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12332
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12384
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу запиÑів: %s"
-#: src/readelf.c:12303
+#: src/readelf.c:12411
#, c-format
msgid ""
"\n"
@@ -5988,7 +5993,7 @@ msgstr ""
"Розділ запиÑів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12326
+#: src/readelf.c:12434
#, c-format
msgid ""
"\n"
@@ -5997,7 +6002,7 @@ msgstr ""
"\n"
"Сегмент запиÑів з %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12373
+#: src/readelf.c:12481
#, c-format
msgid ""
"\n"
@@ -6006,12 +6011,12 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12400 src/readelf.c:12451
+#: src/readelf.c:12508 src/readelf.c:12559
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zu] «%s»: %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12513
#, c-format
msgid ""
"\n"
@@ -6020,7 +6025,7 @@ msgstr ""
"\n"
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12410
+#: src/readelf.c:12518
#, fuzzy, c-format
msgid ""
"\n"
@@ -6030,7 +6035,7 @@ msgstr ""
"\n"
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12424
+#: src/readelf.c:12532
#, c-format
msgid ""
"\n"
@@ -6039,7 +6044,7 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ñ€Ñдків Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12456
+#: src/readelf.c:12564
#, c-format
msgid ""
"\n"
@@ -6048,7 +6053,7 @@ msgstr ""
"\n"
"Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12461
+#: src/readelf.c:12569
#, fuzzy, c-format
msgid ""
"\n"
@@ -6058,7 +6063,7 @@ msgstr ""
"\n"
"Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12510
+#: src/readelf.c:12618
#, c-format
msgid ""
"\n"
@@ -6067,7 +6072,7 @@ msgstr ""
"\n"
"розділу [%lu] не Ñ–Ñнує"
-#: src/readelf.c:12539
+#: src/readelf.c:12647
#, c-format
msgid ""
"\n"
@@ -6076,12 +6081,12 @@ msgstr ""
"\n"
"розділу «%s» не Ñ–Ñнує"
-#: src/readelf.c:12596
+#: src/readelf.c:12704
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ покажчик Ñимволів архіву «%s»: %s"
-#: src/readelf.c:12599
+#: src/readelf.c:12707
#, c-format
msgid ""
"\n"
@@ -6090,7 +6095,7 @@ msgstr ""
"\n"
"У архіві «%s» немає покажчика Ñимволів\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12711
#, c-format
msgid ""
"\n"
@@ -6099,12 +6104,12 @@ msgstr ""
"\n"
"Покажчик архіву «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:12621
+#: src/readelf.c:12729
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ елемент за зміщеннÑм %zu у «%s»: %s"
-#: src/readelf.c:12626
+#: src/readelf.c:12734
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Елемент архіву «%s» міÑтить:\n"
@@ -6171,12 +6176,17 @@ msgstr "Ðекоректна оÑнова чиÑленнÑ: %s"
msgid "%s: file format not recognized"
msgstr "%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла"
-#: src/size.c:418 src/size.c:551
+#: src/size.c:418 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (прикл. %s)"
-#: src/size.c:576
+#: src/size.c:482
+#, fuzzy, c-format
+msgid "cannot get section header"
+msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу\n"
+
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(ЗÐГÐЛОМ)\n"
@@ -6564,7 +6574,7 @@ msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° E
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s"
-#: src/strip.c:1654 src/strip.c:2534
+#: src/strip.c:1654 src/strip.c:2535
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s"
@@ -6594,47 +6604,47 @@ msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків заголÐ
msgid "no memory to create section header string table"
msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків заголовка розділу: %s"
-#: src/strip.c:2027
+#: src/strip.c:2028
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2450 src/strip.c:2558
+#: src/strip.c:2451 src/strip.c:2559
#, c-format
msgid "while writing '%s': %s"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу «%s»: %s"
-#: src/strip.c:2461
+#: src/strip.c:2462
#, c-format
msgid "while creating '%s'"
msgstr "під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Â«%s»"
-#: src/strip.c:2484
+#: src/strip.c:2485
#, c-format
msgid "while computing checksum for debug information"
msgstr "під Ñ‡Ð°Ñ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми Ð´Ð»Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичних даних"
-#: src/strip.c:2525
+#: src/strip.c:2526
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s"
-#: src/strip.c:2543
+#: src/strip.c:2544
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s"
-#: src/strip.c:2583 src/strip.c:2603
+#: src/strip.c:2584 src/strip.c:2604
#, c-format
msgid "while writing '%s'"
msgstr "під Ñ‡Ð°Ñ Ñпроби запиÑу «%s»"
-#: src/strip.c:2640 src/strip.c:2647
+#: src/strip.c:2641 src/strip.c:2648
#, c-format
msgid "error while finishing '%s': %s"
msgstr "помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Â«%s»: %s"
-#: src/strip.c:2664 src/strip.c:2740
+#: src/strip.c:2665 src/strip.c:2741
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "не вдалоÑÑ Ð²Ñтановити права доÑтупу та дату зміни «%s»"
@@ -6727,7 +6737,7 @@ msgstr "не вдалоÑÑ Ñтворити заголовок ELF: %s"
msgid "cannot get shdrstrndx:%s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/unstrip.c:248 src/unstrip.c:2034
+#: src/unstrip.c:248 src/unstrip.c:2038
#, c-format
msgid "cannot get ELF header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF: %s"
@@ -6747,12 +6757,12 @@ msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ переÑуваннÑ: %s"
msgid "cannot copy ELF header: %s"
msgstr "не вдалоÑÑ Ñкопіювати заголовок ELF: %s"
-#: src/unstrip.c:269 src/unstrip.c:2052 src/unstrip.c:2095
+#: src/unstrip.c:269 src/unstrip.c:2056 src/unstrip.c:2099
#, c-format
msgid "cannot get number of program headers: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/unstrip.c:274 src/unstrip.c:2056
+#: src/unstrip.c:274 src/unstrip.c:2060
#, c-format
msgid "cannot create program headers: %s"
msgstr "не вдалоÑÑ Ñтворити заголовки програми: %s"
@@ -6767,12 +6777,12 @@ msgstr "не вдалоÑÑ Ñкопіювати заголовок програ
msgid "cannot copy section header: %s"
msgstr "не вдалоÑÑ Ñкопіювати заголовок розділу: %s"
-#: src/unstrip.c:293 src/unstrip.c:1665
+#: src/unstrip.c:293 src/unstrip.c:1669
#, c-format
msgid "cannot get section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/unstrip.c:295 src/unstrip.c:1667
+#: src/unstrip.c:295 src/unstrip.c:1671
#, c-format
msgid "cannot copy section data: %s"
msgstr "не вдалоÑÑ Ñкопіювати дані розділу: %s"
@@ -6782,13 +6792,14 @@ msgstr "не вдалоÑÑ Ñкопіювати дані розділу: %s"
msgid "cannot create directory '%s'"
msgstr "не вдалоÑÑ Ñтворити каталог «%s»"
-#: src/unstrip.c:391 src/unstrip.c:845 src/unstrip.c:1702
+#: src/unstrip.c:391 src/unstrip.c:647 src/unstrip.c:681 src/unstrip.c:847
+#: src/unstrip.c:1706
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів: %s"
-#: src/unstrip.c:407 src/unstrip.c:649 src/unstrip.c:670 src/unstrip.c:682
-#: src/unstrip.c:1723 src/unstrip.c:1918 src/unstrip.c:1942
+#: src/unstrip.c:407 src/unstrip.c:650 src/unstrip.c:671 src/unstrip.c:684
+#: src/unstrip.c:1727 src/unstrip.c:1922 src/unstrip.c:1946
#, c-format
msgid "cannot update symbol table: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ таблицю Ñимволів: %s"
@@ -6813,137 +6824,137 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s"
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr "неочікуваний тип розділу у [%zu] з поÑиланнÑм sh_link на symtab"
-#: src/unstrip.c:851
+#: src/unstrip.c:853
#, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ñдка у Ñимволі [%zu]"
-#: src/unstrip.c:1009 src/unstrip.c:1398
+#: src/unstrip.c:1011 src/unstrip.c:1402
#, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ назву розділу [%zu]: %s"
-#: src/unstrip.c:1024
+#: src/unstrip.c:1026
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu"
-#: src/unstrip.c:1030
+#: src/unstrip.c:1032
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок 0-го розділу: %s"
-#: src/unstrip.c:1035
+#: src/unstrip.c:1037
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñимволів\n"
-#: src/unstrip.c:1041
+#: src/unstrip.c:1043
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s"
-#: src/unstrip.c:1046
+#: src/unstrip.c:1048
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s"
-#: src/unstrip.c:1088 src/unstrip.c:1107 src/unstrip.c:1145
+#: src/unstrip.c:1090 src/unstrip.c:1109 src/unstrip.c:1147
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ «.gnu.prelink_undo»: %s"
-#: src/unstrip.c:1125
+#: src/unstrip.c:1127
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1136
+#: src/unstrip.c:1138
#, c-format
msgid "invalid contents in '%s' section"
msgstr "некоректний вміÑÑ‚ розділу «%s»"
-#: src/unstrip.c:1192 src/unstrip.c:1524
+#: src/unstrip.c:1194 src/unstrip.c:1528
#, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідний розділ Ð´Ð»Ñ [%zu] «%s»"
-#: src/unstrip.c:1317 src/unstrip.c:1332 src/unstrip.c:1603 src/unstrip.c:1877
+#: src/unstrip.c:1319 src/unstrip.c:1335 src/unstrip.c:1607 src/unstrip.c:1881
#, c-format
msgid "cannot add section name to string table: %s"
msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ назву розділу до таблиці Ñ€Ñдків: %s"
-#: src/unstrip.c:1341
+#: src/unstrip.c:1344
#, c-format
msgid "cannot update section header string table data: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ дані заголовка розділу у таблиці Ñ€Ñдків: %s"
-#: src/unstrip.c:1369 src/unstrip.c:1373
+#: src/unstrip.c:1373 src/unstrip.c:1377
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
"не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ заголовка розділу у таблиці Ñ€Ñдків: %s"
-#: src/unstrip.c:1377 src/unstrip.c:1381 src/unstrip.c:1618
+#: src/unstrip.c:1381 src/unstrip.c:1385 src/unstrip.c:1622
#, c-format
msgid "cannot get section count: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/unstrip.c:1384
+#: src/unstrip.c:1388
#, c-format
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
"у очищеному файлі більше розділів ніж у файлі з даними Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ â€” "
"помилковий порÑдок параметрів?"
-#: src/unstrip.c:1446 src/unstrip.c:1539
+#: src/unstrip.c:1450 src/unstrip.c:1543
#, c-format
msgid "cannot read section header string table: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ таблицю Ñ€Ñдків заголовка розділу: %s"
-#: src/unstrip.c:1597
+#: src/unstrip.c:1601
#, c-format
msgid "cannot add new section: %s"
msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ новий розділ: %s"
-#: src/unstrip.c:1710
+#: src/unstrip.c:1714
#, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "Ñимвол [%zu] має некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
-#: src/unstrip.c:1742
+#: src/unstrip.c:1746
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "Ñимвол [%zu] має некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
-#: src/unstrip.c:2013
+#: src/unstrip.c:2017
#, c-format
msgid "cannot read section data: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/unstrip.c:2042
+#: src/unstrip.c:2046
#, c-format
msgid "cannot update ELF header: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок ELF: %s"
-#: src/unstrip.c:2066
+#: src/unstrip.c:2070
#, c-format
msgid "cannot update program header: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок програми: %s"
-#: src/unstrip.c:2071 src/unstrip.c:2153
+#: src/unstrip.c:2075 src/unstrip.c:2157
#, c-format
msgid "cannot write output file: %s"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл виведених даних: %s"
-#: src/unstrip.c:2122
+#: src/unstrip.c:2126
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
"Дані DWARF не Ñкориговано відповідно до Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ компонуваннÑм; "
"Ñпробуйте виправити це командою prelink -u"
-#: src/unstrip.c:2125
+#: src/unstrip.c:2129
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -6951,76 +6962,76 @@ msgstr ""
"Дані DWARF у «%s» не Ñкориговано відповідно до Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ "
"компонуваннÑм; Ñпробуйте виправити це командою prelink -u"
-#: src/unstrip.c:2144 src/unstrip.c:2195 src/unstrip.c:2207 src/unstrip.c:2293
+#: src/unstrip.c:2148 src/unstrip.c:2199 src/unstrip.c:2211 src/unstrip.c:2297
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор ELF: %s"
-#: src/unstrip.c:2186
+#: src/unstrip.c:2190
msgid "WARNING: "
msgstr "УВÐГÐ: "
-#: src/unstrip.c:2188
+#: src/unstrip.c:2192
msgid ", use --force"
msgstr ", ÑкориÑтайтеÑÑ --force"
-#: src/unstrip.c:2211
+#: src/unstrip.c:2215
msgid "ELF header identification (e_ident) different"
msgstr "Різні ідентифікатори заголовків ELF (e_ident)"
-#: src/unstrip.c:2214
+#: src/unstrip.c:2218
msgid "ELF header type (e_type) different"
msgstr "Різні типи заголовків ELF (e_type)"
-#: src/unstrip.c:2217
+#: src/unstrip.c:2221
msgid "ELF header machine type (e_machine) different"
msgstr "Різні типи архітектур заголовків ELF (e_machine)"
-#: src/unstrip.c:2220
+#: src/unstrip.c:2224
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr "очищений заголовок програми (e_phnum) є меншим за неочищений"
-#: src/unstrip.c:2250
+#: src/unstrip.c:2254
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очищений файл Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2254
+#: src/unstrip.c:2258
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ очищений файл «%s» Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2269
+#: src/unstrip.c:2273
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл діагноÑтичних даних Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2273
+#: src/unstrip.c:2277
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл діагноÑтичних даних «%s» Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2286
+#: src/unstrip.c:2290
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "у модулі «%s» файл «%s» не очищено strip"
-#: src/unstrip.c:2317
+#: src/unstrip.c:2321
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr "не вдалоÑÑ ÐºÐµÑˆÑƒÐ²Ð°Ñ‚Ð¸ адреÑи розділів Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2450
+#: src/unstrip.c:2454
#, c-format
msgid "no matching modules found"
msgstr "відповідних модулів не виÑвлено"
-#: src/unstrip.c:2459
+#: src/unstrip.c:2463
#, c-format
msgid "matched more than one module"
msgstr "вÑтановлено відповідніÑÑ‚ÑŒ декількох модулів"
-#: src/unstrip.c:2503
+#: src/unstrip.c:2507
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -7028,7 +7039,7 @@ msgstr ""
"ОЧИЩЕÐИЙ-ФÐЙЛ ФÐЙЛ-DEBUG\n"
"[МОДУЛЬ...]"
-#: src/unstrip.c:2504
+#: src/unstrip.c:2508
#, fuzzy
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
@@ -7088,7 +7099,7 @@ msgstr ""
"окремого файла діагноÑтичних даних або «-», Ñкщо файла діагноÑтичних даних "
"не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸, Ñ– «.», Ñкщо ФÐЙЛ Ñам міÑтить діагноÑтичні дані."
-#: tests/backtrace.c:437
+#: tests/backtrace.c:436
msgid "Run executable"
msgstr "ЗапуÑтити виконуваний файл"
diff --git a/src/ChangeLog b/src/ChangeLog
index 0544fceb..c2102fcd 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,76 @@
+2019-07-26 Florian Weimer <fweimer@redhat.com>
+ Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (bin_PROGRAMS): Add elfclassify.
+ (elfclassify_LDADD): New variable.
+ * elfclassify.c: New tool.
+
+2019-07-13 Mao Han <han_mao@c-sky.com>
+
+ * elflint.c: Add C-SKY.
+
+2019-06-28 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_ehdr): Use dwelf_elf_e_machine_string instead of
+ ebl->name. If unknown print hex value.
+
+2019-06-25 Mark Wielaard <mark@klomp.org>
+
+ * stack.c (parse_opt): Fix dwfl_core_file_attach error message.
+
+2019-06-18 Mark Wielaard <mark@klomp.org>
+
+ * strip.c (handle_elf): Use elf_begin ELF_C_WRITE, instead of
+ ELF_C_WRITE_MMAP.
+
+2019-05-10 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (struct attrcb_args): Rename die to dies.
+ (attr_callback): Get current current die using dies[level].
+ Handle DW_AT_discr_list as block, not as constant.
+ (print_debug_units): pass dies, not dies[level] as args.
+
+2019-05-09 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (cleanup_list): New function.
+ (main): Call cleanup_list for dump_data_sections and string_sections.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * unstrip.c (add_new_section_symbols): Call ELF_CHECK after
+ gelf_getsymshndx.
+ (new_shstrtab): Call ELF_CHECK after gelf_getshdr.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * size.c (show_sysv): Call INTERNAL_ERROR if gelf_getshdr
+ returns NULL.
+ (show_sysv_one_line): Call error with EXIT_FAILURE if
+ gelf_getshdr returns NULL.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * nm.c (show_symbols_sysv): Check gelf_getshdr doesn't return
+ NULL. Simplify naming of invalid sections, don't use alloca.
+
+2019-04-28 Mark Wielaard <mark@klomp.org>
+
+ * elfcmp.c (main): Check shdr1 and shdr2 are not NULL.
+
+2019-04-03 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (attr_callback): Print DW_AT_data_member_location as
+ decimal offset, not hex number.
+
+2019-03-29 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_debug_macinfo_section): Check cus[0] is not the
+ sentinel.
+
+2019-03-27 Mark Wielaard <mark@klomp.org>
+
+ * strip.c (handle_elf): Assert that symbol section number exists.
+
2019-01-24 Mark Wielaard <mark@klomp.org>
* strip.c (handle_elf): Fix check test for SHN_XINDEX symbol.
diff --git a/src/Makefile.am b/src/Makefile.am
index 657b21a2..3956b12a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -26,7 +26,8 @@ AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw
bin_PROGRAMS = readelf nm size strip elflint findtextrel addr2line \
- elfcmp objdump ranlib strings ar unstrip stack elfcompress
+ elfcmp objdump ranlib strings ar unstrip stack elfcompress \
+ elfclassify
noinst_LIBRARIES = libar.a
@@ -85,6 +86,7 @@ ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl $(demanglelib)
elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
+elfclassify_LDADD = $(libelf) $(libdw) $(libeu) $(argp_LDADD)
installcheck-binPROGRAMS: $(bin_PROGRAMS)
bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
diff --git a/src/elfclassify.c b/src/elfclassify.c
new file mode 100644
index 00000000..535cc49f
--- /dev/null
+++ b/src/elfclassify.c
@@ -0,0 +1,1046 @@
+/* Classification of ELF files.
+ Copyright (C) 2019 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <argp.h>
+#include <error.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include ELFUTILS_HEADER(elf)
+#include ELFUTILS_HEADER(dwelf)
+#include "printversion.h"
+
+/* Name and version of program. */
+ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
+
+/* Bug report address. */
+ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
+
+/* Set by parse_opt. */
+static int verbose;
+
+/* Set by the main function. */
+static const char *current_path;
+
+/* Set by open_file. */
+static int file_fd = -1;
+
+/* Set by issue or elf_issue. */
+static bool issue_found;
+
+/* Non-fatal issue occured while processing the current_path. */
+static void
+issue (int e, const char *msg)
+{
+ if (verbose >= 0)
+ {
+ if (current_path == NULL)
+ error (0, e, "%s", msg);
+ else
+ error (0, e, "%s '%s'", msg, current_path);
+ }
+ issue_found = true;
+}
+
+/* Non-fatal issue occured while processing the current ELF. */
+static void
+elf_issue (const char *msg)
+{
+ if (verbose >= 0)
+ error (0, 0, "%s: %s: '%s'", msg, elf_errmsg (-1), current_path);
+ issue_found = true;
+}
+
+/* Set by parse_opt. */
+static bool flag_only_regular_files;
+
+static bool
+open_file (void)
+{
+ if (verbose > 1)
+ fprintf (stderr, "debug: processing file: %s\n", current_path);
+
+ file_fd = open (current_path, O_RDONLY | (flag_only_regular_files
+ ? O_NOFOLLOW : 0));
+ if (file_fd < 0)
+ {
+ if (!flag_only_regular_files || errno != ELOOP)
+ issue (errno, N_("opening"));
+ return false;
+ }
+
+ struct stat st;
+ if (fstat (file_fd, &st) != 0)
+ {
+ issue (errno, N_("reading"));
+ return false;
+ }
+
+ /* Don't even bother with directories. */
+ if (S_ISDIR (st.st_mode)
+ || (flag_only_regular_files && !S_ISREG (st.st_mode)))
+ return false;
+
+ return true;
+}
+
+static void
+close_file (void)
+{
+ if (file_fd >= 0)
+ {
+ close (file_fd);
+ file_fd = -1;
+ }
+}
+
+/* Set by open_elf. */
+static Elf *elf;
+
+/* Set by parse_opt. */
+static bool flag_compressed;
+
+static bool
+open_elf (void)
+{
+ if (!open_file ())
+ {
+ /* Make sure the file descriptor is gone. */
+ close_file ();
+ return false;
+ }
+
+ if (flag_compressed)
+ elf = dwelf_elf_begin (file_fd);
+ else
+ elf = elf_begin (file_fd, ELF_C_READ, NULL);
+
+ if (elf == NULL)
+ {
+ elf_issue ("opening ELF file");
+ close_file ();
+ return false;
+ }
+
+ return true;
+}
+
+static void
+close_elf (void)
+{
+ if (elf != NULL)
+ {
+ elf_end (elf);
+ elf = NULL;
+ }
+
+ close_file ();
+}
+
+static const char *
+elf_kind_string (int kind)
+{
+ switch (kind)
+ {
+ case ELF_K_NONE:
+ return "ELF_K_NONE";
+ case ELF_K_AR:
+ return "ELF_K_AR";
+ case ELF_K_COFF:
+ return "ELF_K_COFF"; /* libelf doesn't really support this. */
+ case ELF_K_ELF:
+ return "ELF_K_ELF";
+ default:
+ return "<unknown>";
+ }
+}
+
+static const char *
+elf_type_string (int type)
+{
+ switch (type)
+ {
+ case ET_NONE:
+ return "ET_NONE";
+ case ET_REL:
+ return "ET_REL";
+ case ET_EXEC:
+ return "ET_EXEC";
+ case ET_DYN:
+ return "ET_DYN";
+ case ET_CORE:
+ return "ET_CORE";
+ default:
+ return "<unknown>";
+ }
+}
+
+static int elf_type;
+static bool has_program_load;
+static bool has_sections;
+static bool has_bits_alloc;
+static bool has_program_interpreter;
+static bool has_dynamic;
+static bool has_soname;
+static bool has_pie_flag;
+static bool has_dt_debug;
+static bool has_symtab;
+static bool has_debug_sections;
+static bool has_modinfo;
+static bool has_gnu_linkonce_this_module;
+
+static bool
+run_classify (void)
+{
+ /* Reset to unanalyzed default. */
+ elf_type = 0;
+ has_program_load = false;
+ has_sections = false;
+ has_bits_alloc = false;
+ has_program_interpreter = false;
+ has_dynamic = false;
+ has_soname = false;
+ has_pie_flag = false;
+ has_dt_debug = false;
+ has_symtab = false;
+ has_debug_sections = false;
+ has_modinfo = false;
+ has_gnu_linkonce_this_module = false;
+
+ int kind = elf_kind (elf);
+ if (verbose > 0)
+ fprintf (stderr, "info: %s: ELF kind: %s (0x%x)\n", current_path,
+ elf_kind_string (kind), kind);
+ if (kind != ELF_K_ELF)
+ return true;
+
+ GElf_Ehdr ehdr_storage;
+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_storage);
+ if (ehdr == NULL)
+ {
+ elf_issue (N_("ELF header"));
+ return false;
+ }
+ elf_type = ehdr->e_type;
+
+ /* Examine program headers. */
+ GElf_Phdr dyn_seg = { .p_type = 0 };
+ {
+ size_t nphdrs;
+ if (elf_getphdrnum (elf, &nphdrs) != 0)
+ {
+ elf_issue (N_("program headers"));
+ return false;
+ }
+ for (size_t phdr_idx = 0; phdr_idx < nphdrs; ++phdr_idx)
+ {
+ GElf_Phdr phdr_storage;
+ GElf_Phdr *phdr = gelf_getphdr (elf, phdr_idx, &phdr_storage);
+ if (phdr == NULL)
+ {
+ elf_issue (N_("program header"));
+ return false;
+ }
+ if (phdr->p_type == PT_DYNAMIC)
+ {
+ dyn_seg = *phdr;
+ has_dynamic = true;
+ }
+ if (phdr->p_type == PT_INTERP)
+ has_program_interpreter = true;
+ if (phdr->p_type == PT_LOAD)
+ has_program_load = true;
+ }
+ }
+
+ /* Do we have sections? */
+ {
+ size_t nshdrs;
+ if (elf_getshdrnum (elf, &nshdrs) != 0)
+ {
+ elf_issue (N_("section headers"));
+ return false;
+ }
+ if (nshdrs > 0)
+ has_sections = true;
+ }
+
+ {
+ size_t shstrndx;
+ if (unlikely (elf_getshdrstrndx (elf, &shstrndx) < 0))
+ {
+ elf_issue (N_("section header string table index"));
+ return false;
+ }
+
+ Elf_Scn *scn = NULL;
+ while (true)
+ {
+ scn = elf_nextscn (elf, scn);
+ if (scn == NULL)
+ break;
+ GElf_Shdr shdr_storage;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_storage);
+ if (shdr == NULL)
+ {
+ elf_issue (N_("could not obtain section header"));
+ return false;
+ }
+ const char *section_name = elf_strptr (elf, shstrndx, shdr->sh_name);
+ if (section_name == NULL)
+ {
+ elf_issue(N_("could not obtain section name"));
+ return false;
+ }
+ if (verbose > 2)
+ fprintf (stderr, "debug: section header %s (type %d) found\n",
+ section_name, shdr->sh_type);
+ if (shdr->sh_type == SHT_SYMTAB)
+ {
+ if (verbose > 1)
+ fputs ("debug: symtab section found\n", stderr);
+ has_symtab = true;
+ }
+ /* NOBITS and NOTE sections can be in any file. We want to be
+ sure there is at least one other allocated section. */
+ if (shdr->sh_type != SHT_NOBITS
+ && shdr->sh_type != SHT_NOTE
+ && (shdr->sh_flags & SHF_ALLOC) != 0)
+ {
+ if (verbose > 1 && !has_bits_alloc)
+ fputs ("debug: allocated (non-nobits/note) section found\n",
+ stderr);
+ has_bits_alloc = true;
+ }
+ const char *debug_prefix = ".debug_";
+ const char *zdebug_prefix = ".zdebug_";
+ if (strncmp (section_name, debug_prefix, strlen (debug_prefix)) == 0
+ || strncmp (section_name, zdebug_prefix,
+ strlen (zdebug_prefix)) == 0)
+ {
+ if (verbose > 1 && !has_debug_sections)
+ fputs ("debug: .debug_* section found\n", stderr);
+ has_debug_sections = true;
+ }
+ if (strcmp (section_name, ".modinfo") == 0)
+ {
+ if (verbose > 1)
+ fputs ("debug: .modinfo section found\n", stderr);
+ has_modinfo = true;
+ }
+ if (strcmp (section_name, ".gnu.linkonce.this_module") == 0)
+ {
+ if (verbose > 1)
+ fputs ("debug: .gnu.linkonce.this_module section found\n",
+ stderr);
+ has_gnu_linkonce_this_module = true;
+ }
+ }
+ }
+
+ /* Examine the dynamic section. */
+ if (has_dynamic)
+ {
+ Elf_Data *data = elf_getdata_rawchunk (elf, dyn_seg.p_offset,
+ dyn_seg.p_filesz,
+ ELF_T_DYN);
+ if (data != NULL)
+ for (int dyn_idx = 0; ; ++dyn_idx)
+ {
+ GElf_Dyn dyn_storage;
+ GElf_Dyn *dyn = gelf_getdyn (data, dyn_idx, &dyn_storage);
+ if (dyn == NULL)
+ break;
+ if (verbose > 2)
+ fprintf (stderr, "debug: dynamic entry %d"
+ " with tag %llu found\n",
+ dyn_idx, (unsigned long long int) dyn->d_tag);
+ if (dyn->d_tag == DT_SONAME)
+ has_soname = true;
+ if (dyn->d_tag == DT_FLAGS_1 && (dyn->d_un.d_val & DF_1_PIE))
+ has_pie_flag = true;
+ if (dyn->d_tag == DT_DEBUG)
+ has_dt_debug = true;
+ if (dyn->d_tag == DT_NULL)
+ break;
+ }
+ }
+
+ if (verbose > 0)
+ {
+ fprintf (stderr, "info: %s: ELF type: %s (0x%x)\n", current_path,
+ elf_type_string (elf_type), elf_type);
+ if (has_program_load)
+ fprintf (stderr, "info: %s: PT_LOAD found\n", current_path);
+ if (has_sections)
+ fprintf (stderr, "info: %s: has sections\n", current_path);
+ if (has_bits_alloc)
+ fprintf (stderr, "info: %s: allocated (real) section found\n",
+ current_path);
+ if (has_program_interpreter)
+ fprintf (stderr, "info: %s: program interpreter found\n",
+ current_path);
+ if (has_dynamic)
+ fprintf (stderr, "info: %s: dynamic segment found\n", current_path);
+ if (has_soname)
+ fprintf (stderr, "info: %s: soname found\n", current_path);
+ if (has_pie_flag)
+ fprintf (stderr, "info: %s: DF_1_PIE flag found\n", current_path);
+ if (has_dt_debug)
+ fprintf (stderr, "info: %s: DT_DEBUG found\n", current_path);
+ if (has_symtab)
+ fprintf (stderr, "info: %s: symbol table found\n", current_path);
+ if (has_debug_sections)
+ fprintf (stderr, "info: %s: .debug_* section found\n", current_path);
+ if (has_modinfo)
+ fprintf (stderr, "info: %s: .modinfo section found\n", current_path);
+ if (has_gnu_linkonce_this_module)
+ fprintf (stderr,
+ "info: %s: .gnu.linkonce.this_module section found\n",
+ current_path);
+ }
+
+ return true;
+}
+
+static bool
+is_elf (void)
+{
+ return elf_kind (elf) != ELF_K_NONE;
+}
+
+static bool
+is_elf_file (void)
+{
+ return elf_kind (elf) == ELF_K_ELF;
+}
+
+static bool
+is_elf_archive (void)
+{
+ return elf_kind (elf) == ELF_K_AR;
+}
+
+static bool
+is_core (void)
+{
+ return elf_kind (elf) == ELF_K_ELF && elf_type == ET_CORE;
+}
+
+/* Return true if the file is a loadable object, which basically means
+ it is an ELF file, but not a relocatable object or a core dump
+ file. (The kernel and various userspace components can load ET_REL
+ files, but we disregard that for our classification purposes.) */
+static bool
+is_loadable (void)
+{
+ return elf_kind (elf) == ELF_K_ELF
+ && (elf_type == ET_EXEC || elf_type == ET_DYN)
+ && has_program_load
+ && (!has_sections || has_bits_alloc); /* It isn't debug-only. */
+}
+
+/* Return true if the file is an ELF file which has a symbol table or
+ .debug_* sections (and thus can be stripped futher). */
+static bool
+is_unstripped (void)
+{
+ return elf_kind (elf) != ELF_K_NONE
+ && (elf_type == ET_REL || elf_type == ET_EXEC || elf_type == ET_DYN)
+ && (has_symtab || has_debug_sections);
+}
+
+/* Return true if the file contains only debuginfo, but no loadable
+ program bits. Then it is most likely a separate .debug file, a dwz
+ multi-file or a .dwo file. Note that it can still be loadable,
+ but in that case the phdrs shouldn't be trusted. */
+static bool
+is_debug_only (void)
+{
+ return elf_kind (elf) != ELF_K_NONE
+ && (elf_type == ET_REL || elf_type == ET_EXEC || elf_type == ET_DYN)
+ && (has_debug_sections || has_symtab)
+ && !has_bits_alloc;
+}
+
+static bool
+is_shared (void)
+{
+ if (!is_loadable ())
+ return false;
+
+ /* The ELF type is very clear: this is an executable. */
+ if (elf_type == ET_EXEC)
+ return false;
+
+ /* If there is no dynamic section, the file cannot be loaded as a
+ shared object. */
+ if (!has_dynamic)
+ return false;
+
+ /* If the object is marked as PIE, it is definitely an executable,
+ and not a loadlable shared object. */
+ if (has_pie_flag)
+ return false;
+
+ /* Treat a DT_SONAME tag as a strong indicator that this is a shared
+ object. */
+ if (has_soname)
+ return true;
+
+ /* This is probably a PIE program: there is no soname, but a program
+ interpreter. In theory, this file could be also a DSO with a
+ soname implied by its file name that can be run as a program.
+ This situation is impossible to resolve in the general case. */
+ if (has_program_interpreter)
+ return false;
+
+ /* Roland McGrath mentions in
+ <https://www.sourceware.org/ml/libc-alpha/2015-03/msg00605.html>,
+ that “we defined a PIE as an ET_DYN with a DT_DEBUGâ€. This
+ matches current binutils behavior (version 2.32). DT_DEBUG is
+ added if bfd_link_executable returns true or if bfd_link_pic
+ returns false, depending on the architectures. However, DT_DEBUG
+ is not documented as being specific to executables, therefore use
+ it only as a low-priority discriminator. */
+ if (has_dt_debug)
+ return false;
+
+ return true;
+}
+
+static bool
+is_executable (void)
+{
+ if (!is_loadable ())
+ return false;
+
+ /* A loadable object which is not a shared object is treated as an
+ executable. */
+ return !is_shared ();
+}
+
+/* Like is_executable, but the object can also be a shared library at
+ the same time. */
+static bool
+is_program (void)
+{
+ if (!is_loadable ())
+ return false;
+
+ /* The ELF type is very clear: this is an executable. */
+ if (elf_type == ET_EXEC)
+ return true;
+
+ /* If the object is marked as PIE, it is definitely an executable,
+ and not a loadlable shared object. */
+ if (has_pie_flag)
+ return true;
+
+ /* This is probably a PIE program. It isn't ET_EXEC, but has a
+ program interpreter. In theory, this file could be also a DSO
+ with a soname. This situation is impossible to resolve in the
+ general case. See is_shared. This is different from
+ is_executable. */
+ if (has_program_interpreter)
+ return true;
+
+ /* Roland McGrath mentions in
+ <https://www.sourceware.org/ml/libc-alpha/2015-03/msg00605.html>,
+ that “we defined a PIE as an ET_DYN with a DT_DEBUGâ€. This
+ matches current binutils behavior (version 2.32). DT_DEBUG is
+ added if bfd_link_executable returns true or if bfd_link_pic
+ returns false, depending on the architectures. However, DT_DEBUG
+ is not documented as being specific to executables, therefore use
+ it only as a low-priority discriminator. */
+ if (has_dt_debug)
+ return true;
+
+ return false;
+}
+
+/* Like is_shared but the library could also be an executable. */
+static bool
+is_library (void)
+{
+ /* Only ET_DYN can be shared libraries. */
+ if (elf_type != ET_DYN)
+ return false;
+
+ if (!is_loadable ())
+ return false;
+
+ /* Without a PT_DYNAMIC segment the library cannot be loaded. */
+ if (!has_dynamic)
+ return false;
+
+ /* This really is a (PIE) executable. See is_shared. */
+ if (has_pie_flag || has_dt_debug)
+ return false;
+
+ /* It could still (also) be a (PIE) executable, but most likely you
+ can dlopen it just fine. */
+ return true;
+}
+
+/* Returns true if the file is a linux kernel module (is ET_REL and
+ has the two magic sections .modinfo and .gnu.linkonce.this_module). */
+static bool
+is_linux_kernel_module (void)
+{
+ return (elf_kind (elf) == ELF_K_ELF
+ && elf_type == ET_REL
+ && has_modinfo
+ && has_gnu_linkonce_this_module);
+}
+
+enum classify_requirement { do_not_care, required, forbidden };
+
+enum classify_check
+{
+ classify_elf,
+ classify_elf_file,
+ classify_elf_archive,
+ classify_core,
+ classify_unstripped,
+ classify_executable,
+ classify_program,
+ classify_shared,
+ classify_library,
+ classify_linux_kernel_module,
+ classify_debug_only,
+ classify_loadable,
+
+ classify_check_last = classify_loadable
+};
+
+enum
+{
+ classify_check_offset = 1000,
+ classify_check_not_offset = 2000,
+
+ classify_flag_stdin = 3000,
+ classify_flag_stdin0,
+ classify_flag_no_stdin,
+ classify_flag_print,
+ classify_flag_print0,
+ classify_flag_no_print,
+ classify_flag_matching,
+ classify_flag_not_matching,
+};
+
+static bool
+classify_check_positive (int key)
+{
+ return key >= classify_check_offset
+ && key <= classify_check_offset + classify_check_last;
+}
+
+static bool
+classify_check_negative (int key)
+{
+ return key >= classify_check_not_offset
+ && key <= classify_check_not_offset + classify_check_last;
+}
+
+/* Set by parse_opt. */
+static enum classify_requirement requirements[classify_check_last + 1];
+static enum { no_stdin, do_stdin, do_stdin0 } flag_stdin;
+static enum { no_print, do_print, do_print0 } flag_print;
+static bool flag_print_matching = true;
+
+static error_t
+parse_opt (int key, char *arg __attribute__ ((unused)),
+ struct argp_state *state __attribute__ ((unused)))
+{
+ if (classify_check_positive (key))
+ requirements[key - classify_check_offset] = required;
+ else if (classify_check_negative (key))
+ requirements[key - classify_check_not_offset] = forbidden;
+ else
+ switch (key)
+ {
+ case 'v':
+ ++verbose;
+ break;
+
+ case 'q':
+ --verbose;
+ break;
+
+ case 'z':
+ flag_compressed = true;
+ break;
+
+ case 'f':
+ flag_only_regular_files = true;
+ break;
+
+ case classify_flag_stdin:
+ flag_stdin = do_stdin;
+ break;
+
+ case classify_flag_stdin0:
+ flag_stdin = do_stdin0;
+ break;
+
+ case classify_flag_no_stdin:
+ flag_stdin = no_stdin;
+ break;
+
+ case classify_flag_print:
+ flag_print = do_print;
+ break;
+
+ case classify_flag_print0:
+ flag_print = do_print0;
+ break;
+
+ case classify_flag_no_print:
+ flag_print = no_print;
+ break;
+
+ case classify_flag_matching:
+ flag_print_matching = true;
+ break;
+
+ case classify_flag_not_matching:
+ flag_print_matching = false;
+ break;
+
+ default:
+ return ARGP_ERR_UNKNOWN;
+ }
+
+ return 0;
+}
+
+/* Perform requested checks against the file at current_path. If
+ necessary, sets *STATUS to 1 if checks failed. */
+static void
+process_current_path (int *status)
+{
+ bool checks_passed = true;
+
+ if (open_elf () && run_classify ())
+ {
+ bool checks[] =
+ {
+ [classify_elf] = is_elf (),
+ [classify_elf_file] = is_elf_file (),
+ [classify_elf_archive] = is_elf_archive (),
+ [classify_core] = is_core (),
+ [classify_unstripped] = is_unstripped (),
+ [classify_executable] = is_executable (),
+ [classify_program] = is_program (),
+ [classify_shared] = is_shared (),
+ [classify_library] = is_library (),
+ [classify_linux_kernel_module] = is_linux_kernel_module (),
+ [classify_debug_only] = is_debug_only (),
+ [classify_loadable] = is_loadable (),
+ };
+
+ if (verbose > 1)
+ {
+ if (checks[classify_elf])
+ fprintf (stderr, "debug: %s: elf\n", current_path);
+ if (checks[classify_elf_file])
+ fprintf (stderr, "debug: %s: elf_file\n", current_path);
+ if (checks[classify_elf_archive])
+ fprintf (stderr, "debug: %s: elf_archive\n", current_path);
+ if (checks[classify_core])
+ fprintf (stderr, "debug: %s: core\n", current_path);
+ if (checks[classify_unstripped])
+ fprintf (stderr, "debug: %s: unstripped\n", current_path);
+ if (checks[classify_executable])
+ fprintf (stderr, "debug: %s: executable\n", current_path);
+ if (checks[classify_program])
+ fprintf (stderr, "debug: %s: program\n", current_path);
+ if (checks[classify_shared])
+ fprintf (stderr, "debug: %s: shared\n", current_path);
+ if (checks[classify_library])
+ fprintf (stderr, "debug: %s: library\n", current_path);
+ if (checks[classify_linux_kernel_module])
+ fprintf (stderr, "debug: %s: linux kernel module\n", current_path);
+ if (checks[classify_debug_only])
+ fprintf (stderr, "debug: %s: debug-only\n", current_path);
+ if (checks[classify_loadable])
+ fprintf (stderr, "debug: %s: loadable\n", current_path);
+ }
+
+ for (enum classify_check check = 0;
+ check <= classify_check_last; ++check)
+ switch (requirements[check])
+ {
+ case required:
+ if (!checks[check])
+ checks_passed = false;
+ break;
+ case forbidden:
+ if (checks[check])
+ checks_passed = false;
+ break;
+ case do_not_care:
+ break;
+ }
+ }
+ else if (file_fd == -1)
+ checks_passed = false; /* There is nothing to check, bad file. */
+ else
+ {
+ for (enum classify_check check = 0;
+ check <= classify_check_last; ++check)
+ if (requirements[check] == required)
+ checks_passed = false;
+ }
+
+ close_elf ();
+
+ switch (flag_print)
+ {
+ case do_print:
+ if (checks_passed == flag_print_matching)
+ puts (current_path);
+ break;
+ case do_print0:
+ if (checks_passed == flag_print_matching)
+ fwrite (current_path, strlen (current_path) + 1, 1, stdout);
+ break;
+ case no_print:
+ if (!checks_passed)
+ *status = 1;
+ break;
+ }
+}
+
+/* Called to process standard input if flag_stdin is not no_stdin. */
+static void
+process_stdin (int *status)
+{
+ char delim;
+ if (flag_stdin == do_stdin0)
+ delim = '\0';
+ else
+ delim = '\n';
+
+ char *buffer = NULL;
+ size_t buffer_size = 0;
+ while (true)
+ {
+ ssize_t ret = getdelim (&buffer, &buffer_size, delim, stdin);
+ if (ferror (stdin))
+ {
+ current_path = NULL;
+ issue (errno, N_("reading from standard input"));
+ break;
+ }
+ if (feof (stdin))
+ break;
+ if (ret < 0)
+ abort (); /* Cannot happen due to error checks above. */
+ if (delim != '\0' && ret > 0 && buffer[ret - 1] == '\n')
+ buffer[ret - 1] = '\0';
+ current_path = buffer;
+ process_current_path (status);
+ }
+
+ free (buffer);
+}
+
+int
+main (int argc, char **argv)
+{
+ const struct argp_option options[] =
+ {
+ { NULL, 0, NULL, OPTION_DOC, N_("Classification options"), 1 },
+ { "elf", classify_check_offset + classify_elf, NULL, 0,
+ N_("File looks like an ELF object or archive/static library (default)")
+ , 1 },
+ { "elf-file", classify_check_offset + classify_elf_file, NULL, 0,
+ N_("File is an regular ELF object (not an archive/static library)")
+ , 1 },
+ { "elf-archive", classify_check_offset + classify_elf_archive, NULL, 0,
+ N_("File is an ELF archive or static library")
+ , 1 },
+ { "core", classify_check_offset + classify_core, NULL, 0,
+ N_("File is an ELF core dump file")
+ , 1 },
+ { "unstripped", classify_check_offset + classify_unstripped, NULL, 0,
+ N_("File is an ELF file with symbol table or .debug_* sections \
+and can be stripped further"), 1 },
+ { "executable", classify_check_offset + classify_executable, NULL, 0,
+ N_("File is (primarily) an ELF program executable \
+(not primarily a DSO)"), 1 },
+ { "program", classify_check_offset + classify_program, NULL, 0,
+ N_("File is an ELF program executable \
+(might also be a DSO)"), 1 },
+ { "shared", classify_check_offset + classify_shared, NULL, 0,
+ N_("File is (primarily) an ELF shared object (DSO) \
+(not primarily an executable)"), 1 },
+ { "library", classify_check_offset + classify_library, NULL, 0,
+ N_("File is an ELF shared object (DSO) \
+(might also be an executable)"), 1 },
+ { "linux-kernel-module", (classify_check_offset
+ + classify_linux_kernel_module), NULL, 0,
+ N_("File is a linux kernel module"), 1 },
+ { "debug-only", (classify_check_offset + classify_debug_only), NULL, 0,
+ N_("File is a debug only ELF file \
+(separate .debug, .dwo or dwz multi-file)"), 1 },
+ { "loadable", classify_check_offset + classify_loadable, NULL, 0,
+ N_("File is a loadable ELF object (program or shared object)"), 1 },
+
+ /* Negated versions of the above. */
+ { "not-elf", classify_check_not_offset + classify_elf,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-elf-file", classify_check_not_offset + classify_elf_file,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-elf-archive", classify_check_not_offset + classify_elf_archive,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-core", classify_check_not_offset + classify_core,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-unstripped", classify_check_not_offset + classify_unstripped,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-executable", classify_check_not_offset + classify_executable,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-program", classify_check_not_offset + classify_program,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-shared", classify_check_not_offset + classify_shared,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-library", classify_check_not_offset + classify_library,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-linux-kernel-module", (classify_check_not_offset
+ + classify_linux_kernel_module),
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-debug-only", (classify_check_not_offset + classify_debug_only),
+ NULL, OPTION_HIDDEN, NULL, 1 },
+ { "not-loadable", classify_check_not_offset + classify_loadable,
+ NULL, OPTION_HIDDEN, NULL, 1 },
+
+ { NULL, 0, NULL, OPTION_DOC, N_("Input flags"), 2 },
+ { "file", 'f', NULL, 0,
+ N_("Only classify regular (not symlink nor special device) files"), 2 },
+ { "stdin", classify_flag_stdin, NULL, 0,
+ N_("Also read file names to process from standard input, \
+separated by newlines"), 2 },
+ { "stdin0", classify_flag_stdin0, NULL, 0,
+ N_("Also read file names to process from standard input, \
+separated by ASCII NUL bytes"), 2 },
+ { "no-stdin", classify_flag_stdin, NULL, 0,
+ N_("Do not read files from standard input (default)"), 2 },
+ { "compressed", 'z', NULL, 0,
+ N_("Try to open compressed files or embedded (kernel) ELF images"),
+ 2 },
+
+ { NULL, 0, NULL, OPTION_DOC, N_("Output flags"), 3 },
+ { "print", classify_flag_print, NULL, 0,
+ N_("Output names of files, separated by newline"), 3 },
+ { "print0", classify_flag_print0, NULL, 0,
+ N_("Output names of files, separated by ASCII NUL"), 3 },
+ { "no-print", classify_flag_no_print, NULL, 0,
+ N_("Do not output file names"), 3 },
+ { "matching", classify_flag_matching, NULL, 0,
+ N_("If printing file names, print matching files (default)"), 3 },
+ { "not-matching", classify_flag_not_matching, NULL, 0,
+ N_("If printing file names, print files that do not match"), 3 },
+
+ { NULL, 0, NULL, OPTION_DOC, N_("Additional flags"), 4 },
+ { "verbose", 'v', NULL, 0,
+ N_("Output additional information (can be specified multiple times)"), 4 },
+ { "quiet", 'q', NULL, 0,
+ N_("Suppress some error output (counterpart to --verbose)"), 4 },
+ { NULL, 0, NULL, 0, NULL, 0 }
+ };
+
+ const struct argp argp =
+ {
+ .options = options,
+ .parser = parse_opt,
+ .args_doc = N_("FILE..."),
+ .doc = N_("\
+Determine the type of an ELF file.\
+\n\n\
+All of the classification options must apply at the same time to a \
+particular file. Classification options can be negated using a \
+\"--not-\" prefix.\
+\n\n\
+Since modern ELF does not clearly distinguish between programs and \
+dynamic shared objects, you should normally use either --executable or \
+--shared to identify the primary purpose of a file. \
+Only one of the --shared and --executable checks can pass for a file.\
+\n\n\
+If you want to know whether an ELF object might a program or a \
+shared library (but could be both), then use --program or --library. \
+Some ELF files will classify as both a program and a library.\
+\n\n\
+If you just want to know whether an ELF file is loadable (as program \
+or library) use --loadable. Note that files that only contain \
+(separate) debug information (--debug-only) are never --loadable (even \
+though they might contain program headers). Linux kernel modules are \
+also not --loadable (in the normal sense).\
+\n\n\
+Without any of the --print options, the program exits with status 0 \
+if the requested checks pass for all input files, with 1 if a check \
+fails for any file, and 2 if there is an environmental issue (such \
+as a file read error or a memory allocation error).\
+\n\n\
+When printing file names, the program exits with status 0 even if \
+no file names are printed, and exits with status 2 if there is an \
+environmental issue.\
+\n\n\
+On usage error (e.g. a bad option was given), the program exits with \
+a status code larger than 2.\
+\n\n\
+The --quiet or -q option suppresses some error warning output, but \
+doesn't change the exit status.\
+")
+ };
+
+ /* Require that the file is an ELF file by default. User can
+ disable with --not-elf. */
+ requirements[classify_elf] = required;
+
+ int remaining;
+ if (argp_parse (&argp, argc, argv, 0, &remaining, NULL) != 0)
+ return 2;
+
+ elf_version (EV_CURRENT);
+
+ int status = 0;
+
+ for (int i = remaining; i < argc; ++i)
+ {
+ current_path = argv[i];
+ process_current_path (&status);
+ }
+
+ if (flag_stdin != no_stdin)
+ process_stdin (&status);
+
+ if (issue_found)
+ return 2;
+
+ return status;
+}
diff --git a/src/elfcmp.c b/src/elfcmp.c
index d5dc1ff2..c07fdfd7 100644
--- a/src/elfcmp.c
+++ b/src/elfcmp.c
@@ -269,7 +269,7 @@ main (int argc, char *argv[])
if (shdr1 != NULL)
sname1 = elf_strptr (elf1, shstrndx1, shdr1->sh_name);
}
- while (scn1 != NULL
+ while (scn1 != NULL && shdr1 != NULL
&& ebl_section_strip_p (ebl1, shdr1, sname1, true, false));
GElf_Shdr shdr2_mem;
@@ -282,10 +282,10 @@ main (int argc, char *argv[])
if (shdr2 != NULL)
sname2 = elf_strptr (elf2, shstrndx2, shdr2->sh_name);
}
- while (scn2 != NULL
+ while (scn2 != NULL && shdr2 != NULL
&& ebl_section_strip_p (ebl2, shdr2, sname2, true, false));
- if (scn1 == NULL || scn2 == NULL)
+ if (scn1 == NULL || scn2 == NULL || shdr1 == NULL || shdr2 == NULL)
break;
if (gaps != gaps_ignore && (shdr1->sh_flags & SHF_ALLOC) != 0)
diff --git a/src/elflint.c b/src/elflint.c
index 810c8bd7..edb466dd 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -330,7 +330,7 @@ static const int valid_e_machine[] =
EM_CRIS, EM_JAVELIN, EM_FIREPATH, EM_ZSP, EM_MMIX, EM_HUANY, EM_PRISM,
EM_AVR, EM_FR30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
EM_MN10200, EM_PJ, EM_OPENRISC, EM_ARC_A5, EM_XTENSA, EM_ALPHA,
- EM_TILEGX, EM_TILEPRO, EM_AARCH64, EM_BPF, EM_RISCV
+ EM_TILEGX, EM_TILEPRO, EM_AARCH64, EM_BPF, EM_RISCV, EM_CSKY
};
#define nvalid_e_machine \
(sizeof (valid_e_machine) / sizeof (valid_e_machine[0]))
diff --git a/src/nm.c b/src/nm.c
index ffe8ca69..da1350b4 100644
--- a/src/nm.c
+++ b/src/nm.c
@@ -751,19 +751,17 @@ show_symbols_sysv (Ebl *ebl, GElf_Word strndx, const char *fullname,
while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
{
GElf_Shdr shdr_mem;
+ GElf_Shdr *shdr;
assert (elf_ndxscn (scn) == cnt);
cnt++;
- char *name = elf_strptr (ebl->elf, shstrndx,
- gelf_getshdr (scn, &shdr_mem)->sh_name);
+ char *name = NULL;
+ shdr = gelf_getshdr (scn, &shdr_mem);
+ if (shdr != NULL)
+ name = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
if (unlikely (name == NULL))
- {
- const size_t bufsz = sizeof "[invalid sh_name 0x12345678]";
- name = alloca (bufsz);
- snprintf (name, bufsz, "[invalid sh_name %#" PRIx32 "]",
- gelf_getshdr (scn, &shdr_mem)->sh_name);
- }
+ name = "[invalid section name]";
scnnames[elf_ndxscn (scn)] = name;
}
diff --git a/src/readelf.c b/src/readelf.c
index 33706bde..2084fb1f 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -312,6 +312,17 @@ static void dump_archive_index (Elf *, const char *);
static char *yes_str;
static char *no_str;
+static void
+cleanup_list (struct section_argument *list)
+{
+ while (list != NULL)
+ {
+ struct section_argument *a = list;
+ list = a->next;
+ free (a);
+ }
+}
+
int
main (int argc, char *argv[])
{
@@ -353,6 +364,9 @@ main (int argc, char *argv[])
}
while (++remaining < argc);
+ cleanup_list (dump_data_sections);
+ cleanup_list (string_sections);
+
return error_message_count != 0;
}
@@ -1070,7 +1084,12 @@ print_ehdr (Ebl *ebl, GElf_Ehdr *ehdr)
fputs_unlocked (gettext (" Type: "), stdout);
print_file_type (ehdr->e_type);
- printf (gettext (" Machine: %s\n"), ebl->name);
+ const char *machine = dwelf_elf_e_machine_string (ehdr->e_machine);
+ if (machine != NULL)
+ printf (gettext (" Machine: %s\n"), machine);
+ else
+ printf (gettext (" Machine: <unknown>: 0x%x\n"),
+ ehdr->e_machine);
printf (gettext (" Version: %d %s\n"),
ehdr->e_version,
@@ -3552,7 +3571,9 @@ print_attributes (Ebl *ebl, const GElf_Ehdr *ehdr)
if (shdr == NULL || (shdr->sh_type != SHT_GNU_ATTRIBUTES
&& (shdr->sh_type != SHT_ARM_ATTRIBUTES
- || ehdr->e_machine != EM_ARM)))
+ || ehdr->e_machine != EM_ARM)
+ && (shdr->sh_type != SHT_CSKY_ATTRIBUTES
+ || ehdr->e_machine != EM_CSKY)))
continue;
printf (gettext ("\
@@ -6930,7 +6951,7 @@ struct attrcb_args
{
Dwfl_Module *dwflmod;
Dwarf *dbg;
- Dwarf_Die *die;
+ Dwarf_Die *dies;
int level;
bool silent;
bool is_split;
@@ -6946,7 +6967,7 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
{
struct attrcb_args *cbargs = (struct attrcb_args *) arg;
const int level = cbargs->level;
- Dwarf_Die *die = cbargs->die;
+ Dwarf_Die *die = &cbargs->dies[level];
bool is_split = cbargs->is_split;
unsigned int attr = dwarf_whatattr (attrp);
@@ -7092,7 +7113,7 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
|| (form != DW_FORM_data4 && form != DW_FORM_data8)))
{
if (!cbargs->silent)
- printf (" %*s%-20s (%s) %" PRIxMAX "\n",
+ printf (" %*s%-20s (%s) %" PRIuMAX "\n",
(int) (level * 2), "", dwarf_attr_name (attr),
dwarf_form_name (form), (uintmax_t) num);
return DWARF_CB_OK;
@@ -7290,9 +7311,6 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
case DW_AT_ordering:
valuestr = dwarf_ordering_name (num);
break;
- case DW_AT_discr_list:
- valuestr = dwarf_discr_list_name (num);
- break;
case DW_AT_decl_file:
case DW_AT_call_file:
{
@@ -7347,7 +7365,7 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
/* When highpc is in constant form it is relative to lowpc.
In that case also show the address. */
Dwarf_Addr highpc;
- if (attr == DW_AT_high_pc && dwarf_highpc (cbargs->die, &highpc) == 0)
+ if (attr == DW_AT_high_pc && dwarf_highpc (die, &highpc) == 0)
{
printf (" %*s%-20s (%s) %" PRIuMAX " (",
(int) (level * 2), "", dwarf_attr_name (attr),
@@ -7369,7 +7387,7 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
bool is_signed;
int bytes = 0;
if (attr == DW_AT_const_value)
- die_type_sign_bytes (cbargs->die, &is_signed, &bytes);
+ die_type_sign_bytes (die, &is_signed, &bytes);
else
is_signed = (form == DW_FORM_sdata
|| form == DW_FORM_implicit_const);
@@ -7524,6 +7542,96 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
else
print_block (block.length, block.data);
break;
+
+ case DW_AT_discr_list:
+ if (block.length == 0)
+ puts ("<default>");
+ else if (form != DW_FORM_data16)
+ {
+ const unsigned char *readp = block.data;
+ const unsigned char *readendp = readp + block.length;
+
+ /* See if we are dealing with a signed or unsigned
+ values. If the parent of this variant DIE is a
+ variant_part then it will either have a discriminant
+ which points to the member which type is the
+ discriminant type. Or the variant_part itself has a
+ type representing the discriminant. */
+ bool is_signed = false;
+ if (level > 0)
+ {
+ Dwarf_Die *parent = &cbargs->dies[level - 1];
+ if (dwarf_tag (die) == DW_TAG_variant
+ && dwarf_tag (parent) == DW_TAG_variant_part)
+ {
+ Dwarf_Die member;
+ Dwarf_Attribute discr_attr;
+ int bytes;
+ if (dwarf_formref_die (dwarf_attr (parent,
+ DW_AT_discr,
+ &discr_attr),
+ &member) != NULL)
+ die_type_sign_bytes (&member, &is_signed, &bytes);
+ else
+ die_type_sign_bytes (parent, &is_signed, &bytes);
+ }
+ }
+ while (readp < readendp)
+ {
+ int d = (int) *readp++;
+ printf ("%s ", dwarf_discr_list_name (d));
+ if (readp >= readendp)
+ goto attrval_out;
+
+ Dwarf_Word val;
+ Dwarf_Sword sval;
+ if (d == DW_DSC_label)
+ {
+ if (is_signed)
+ {
+ get_sleb128 (sval, readp, readendp);
+ printf ("%" PRId64 "", sval);
+ }
+ else
+ {
+ get_uleb128 (val, readp, readendp);
+ printf ("%" PRIu64 "", val);
+ }
+ }
+ else if (d == DW_DSC_range)
+ {
+ if (is_signed)
+ {
+ get_sleb128 (sval, readp, readendp);
+ printf ("%" PRId64 "..", sval);
+ if (readp >= readendp)
+ goto attrval_out;
+ get_sleb128 (sval, readp, readendp);
+ printf ("%" PRId64 "", sval);
+ }
+ else
+ {
+ get_uleb128 (val, readp, readendp);
+ printf ("%" PRIu64 "..", val);
+ if (readp >= readendp)
+ goto attrval_out;
+ get_uleb128 (val, readp, readendp);
+ printf ("%" PRIu64 "", val);
+ }
+ }
+ else
+ {
+ print_block (readendp - readp, readp);
+ break;
+ }
+ if (readp < readendp)
+ printf (", ");
+ }
+ putchar ('\n');
+ }
+ else
+ print_block (block.length, block.data);
+ break;
}
break;
@@ -7724,7 +7832,7 @@ print_debug_units (Dwfl_Module *dwflmod,
/* Print the attribute values. */
args.level = level;
- args.die = &dies[level];
+ args.dies = dies;
(void) dwarf_getattrs (&dies[level], attr_callback, &args, 0);
/* Make room for the next level's DIE. */
@@ -9688,13 +9796,13 @@ print_debug_macinfo_section (Dwfl_Module *dwflmod __attribute__ ((unused)),
/* Find the CU DIE for this file. */
size_t macoff = readp - (const unsigned char *) data->d_buf;
const char *fname = "???";
- if (macoff >= cus[0].offset)
+ if (macoff >= cus[0].offset && cus[0].offset != data->d_size)
{
while (macoff >= cus[1].offset && cus[1].offset != data->d_size)
++cus;
if (cus[0].files == NULL
- && dwarf_getsrcfiles (&cus[0].die, &cus[0].files, NULL) != 0)
+ && dwarf_getsrcfiles (&cus[0].die, &cus[0].files, NULL) != 0)
cus[0].files = (Dwarf_Files *) -1l;
if (cus[0].files != (Dwarf_Files *) -1l)
diff --git a/src/size.c b/src/size.c
index f01fd880..a25d4471 100644
--- a/src/size.c
+++ b/src/size.c
@@ -428,6 +428,9 @@ show_sysv (Elf *elf, const char *prefix, const char *fname,
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (shdr == NULL)
+ INTERNAL_ERROR (fullname);
+
/* Ignore all sections which are not used at runtime. */
if ((shdr->sh_flags & SHF_ALLOC) != 0)
{
@@ -475,6 +478,9 @@ show_sysv_one_line (Elf *elf)
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (unlikely (shdr == NULL))
+ error (EXIT_FAILURE, 0, gettext ("cannot get section header"));
+
/* Ignore all sections which are not used at runtime. */
if ((shdr->sh_flags & SHF_ALLOC) == 0)
continue;
diff --git a/src/stack.c b/src/stack.c
index c5f347e1..4daabce7 100644
--- a/src/stack.c
+++ b/src/stack.c
@@ -608,7 +608,7 @@ parse_opt (int key, char *arg __attribute__ ((unused)),
if (core != NULL)
{
if (dwfl_core_file_attach (dwfl, core) < 0)
- error (EXIT_BAD, 0, "dwfl_core_file_report: %s", dwfl_errmsg (-1));
+ error (EXIT_BAD, 0, "dwfl_core_file_attach: %s", dwfl_errmsg (-1));
}
/* Makes sure we are properly attached. */
diff --git a/src/strip.c b/src/strip.c
index a73009d9..48792a70 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -1097,7 +1097,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (debug_fname != NULL)
{
/* Also create an ELF descriptor for the debug file */
- debugelf = elf_begin (debug_fd, ELF_C_WRITE_MMAP, NULL);
+ debugelf = elf_begin (debug_fd, ELF_C_WRITE, NULL);
if (unlikely (gelf_newehdr (debugelf, gelf_getclass (elf)) == 0))
{
error (0, 0, gettext ("cannot create new ehdr for file '%s': %s"),
@@ -1975,6 +1975,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
&& shndxdata->d_buf != NULL);
size_t sidx = (sym->st_shndx != SHN_XINDEX
? sym->st_shndx : xshndx);
+ elf_assert (sidx < shnum);
sec = shdr_info[sidx].idx;
if (sec != 0)
diff --git a/src/unstrip.c b/src/unstrip.c
index 3495b1d9..fc878325 100644
--- a/src/unstrip.c
+++ b/src/unstrip.c
@@ -644,6 +644,7 @@ add_new_section_symbols (Elf_Scn *old_symscn, size_t old_shnum,
GElf_Word shndx = SHN_UNDEF;
GElf_Sym *sym = gelf_getsymshndx (old_symdata, shndxdata,
i, &sym_mem, &shndx);
+ ELF_CHECK (sym != NULL, _("cannot get symbol table entry: %s"));
ELF_CHECK (gelf_update_symshndx (symdata, shndxdata, i,
sym, shndx),
_("cannot update symbol table: %s"));
@@ -677,6 +678,7 @@ add_new_section_symbols (Elf_Scn *old_symscn, size_t old_shnum,
GElf_Word shndx = SHN_UNDEF;
GElf_Sym *sym = gelf_getsymshndx (old_symdata, shndxdata,
i, &sym_mem, &shndx);
+ ELF_CHECK (sym != NULL, _("cannot get symbol table entry: %s"));
ELF_CHECK (gelf_update_symshndx (symdata, shndxdata,
i + added, sym, shndx),
_("cannot update symbol table: %s"));
@@ -1326,6 +1328,7 @@ new_shstrtab (Elf *unstripped, size_t unstripped_shnum,
Elf_Scn *scn = elf_getscn (unstripped, i + 1);
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ ELF_CHECK (shdr != NULL, _("cannot get section header: %s"));
const char *name = get_section_name (i + 1, shdr, shstrtab);
unstripped_strent[i] = dwelf_strtab_add (strtab, name);
ELF_CHECK (unstripped_strent[i] != NULL,
@@ -1349,6 +1352,7 @@ new_shstrtab (Elf *unstripped, size_t unstripped_shnum,
Elf_Scn *scn = elf_getscn (unstripped, i + 1);
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ ELF_CHECK (shdr != NULL, _("cannot get section header: %s"));
shdr->sh_name = dwelf_strent_off (unstripped_strent[i]);
if (i + 1 == unstripped_shstrndx)
shdr->sh_size = strtab_data->d_size;
diff --git a/tests/ChangeLog b/tests/ChangeLog
index b76c44d9..2900bd82 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,95 @@
+2019-07-26 Florian Weimer <fweimer@redhat.com>
+ Mark Wielaard <mark@klomp.org>
+
+ * run-elfclassify.sh: New test.
+ * run-elfclassify-self.sh: Likewise.
+ * Makefile.sh (TESTS): Add run-elfclassify.sh and
+ run-elfclassify-self.sh.
+ (EXTRA_DIST): Likewise.
+
+2019-07-16 Mao Han <han_mao@c-sky.com>
+
+ * hello_csky.ko.bz2: New testfile.
+ * run-addrcfi.sh: Add C-SKY testfile.
+ * run-strip-reloc.sh: Likewise.
+ * testfilecsky.bz2: New testfile.
+ * Makefile.am (EXTRA_DIST): Add hello_csky.ko.bz2 and
+ testfilecsky.bz2.
+
+2019-06-28 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (check_PROGRAMS): Add dwelf_elf_e_machine_string.
+ (TESTS): Add run-dwelf_elf_e_machine_string.sh.
+ (EXTRA_DIST): Likewise.
+ (dwelf_elf_e_machine_string_LDADD): New variable.
+ * dwelf_elf_e_machine_string.c: New file.
+ * run-dwelf_elf_e_machine_string.sh: New test.
+
+2019-07-01 Mark Wielaard <mark@klomp.org>
+
+ * run-large-elf-file.sh: Add 2GB to mem_needed when running under
+ valgrind.
+
+2019-06-18 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (TESTS): Add run-large-elf-file.sh.
+ (EXTRA_DIST): Likewise.
+ * addsections.c (add_sections): Add sec_size argument, use it
+ as the size of the section data.
+ (main): Handle extra sec_size argument. Pass to add_sections.
+ * run-large-elf-file.sh: New test.
+
+2019-06-03 Mark Wielaard <mark@klomp.org>
+
+ * elfcopy.c (copy_elf): When swapping the sh_offsets of two sections,
+ make sure they are actually next to each other.
+
+2019-05-12 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (check_PROGRAMS): Add elfrdwrnop.
+ (TESTS): Add run-reverse-sections.sh and
+ run-reverse-sections-self.sh.
+ (EXTRA_DIST): Likewise.
+ (elfrdwrnop): New variable.
+ * elfcopy.c (copy_elf): Add reverse_off argument. Record offsets
+ of sections and swap them when possible.
+ (main): Check for --reverse-off argument. Pass reverse_offs to
+ copy_elf.
+ * run-reverse-sections.sh: New test.
+ * run-reverse-sections-self.sh: Likewise.
+ * elfrdwrnop.c: New file.
+
+2019-05-10 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (TESTS): Add run-readelf-discr.sh.
+ (EXTRA_DIST): Likewise and add testfile-rng.debug.bz2 and
+ testfile-urng.debug.bz2.
+ * run-readelf-discr.sh: New test.
+ * testfile-rng.debug.bz2: New test file.
+ * testfile-urng.debug.bz2: Likewise.
+
+2019-04-30 Mark Wielaard <mark@klomp.org>
+
+ * xlate_notes.c: New file.
+ * run-xlate-note.sh: New test.
+ * Makefile.am (check_PROGRAMS): Add xlate_notes.
+ (TESTS): Add run-xlate-note.sh.
+ (EXTRA_DIST): Likewise.
+ (xlate_notes_LDADD): New variable.
+
+2019-04-30 Mark Wielaard <mark@klomp.org>
+
+ * backtrace-dwarf.c (frame_callback): Explicitly check symname is
+ NULL.
+
+2019-04-30 Mark Wielaard <mark@klomp.org>
+
+ * backtrace.c (frame_callback): Explicitly check symname is NULL.
+
+2019-03-04 Mark Wielaard <mark@klomp.org>
+
+ * backtrace.c (tgkill): Remove define.
+
2019-01-24 Mark Wielaard <mark@klomp.org>
* Makefile.am (system_elf_libelf_test_CPPFLAGS): Guard by
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c74a6c1e..64857623 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -60,7 +60,8 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
fillfile dwarf_default_lower_bound dwarf-die-addr-die \
get-units-invalid get-units-split attr-integrate-skel \
all-dwarf-ranges unit-info next_cfi \
- elfcopy addsections
+ elfcopy addsections xlate_notes elfrdwrnop \
+ dwelf_elf_e_machine_string
asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
asm-tst6 asm-tst7 asm-tst8 asm-tst9
@@ -83,6 +84,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-next-files.sh run-next-lines.sh \
run-get-pubnames.sh run-get-aranges.sh run-allfcts.sh \
run-show-abbrev.sh run-line2addr.sh hash \
+ run-large-elf-file.sh \
newscn run-strip-test.sh run-strip-test2.sh \
run-strip-test3.sh run-strip-test4.sh run-strip-test5.sh \
run-strip-test6.sh run-strip-test7.sh run-strip-test8.sh \
@@ -156,9 +158,13 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-all-dwarf-ranges.sh run-unit-info.sh \
run-reloc-bpf.sh \
run-next-cfi.sh run-next-cfi-self.sh \
+ run-reverse-sections.sh run-reverse-sections-self.sh \
run-copyadd-sections.sh run-copymany-sections.sh \
run-typeiter-many.sh run-strip-test-many.sh \
- run-strip-version.sh
+ run-strip-version.sh run-xlate-note.sh \
+ run-readelf-discr.sh \
+ run-dwelf_elf_e_machine_string.sh \
+ run-elfclassify.sh run-elfclassify-self.sh
if !BIARCH
export ELFUTILS_DISABLE_BIARCH = 1
@@ -206,7 +212,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile-nobitsalign.bz2 testfile-nobitsalign.strip.bz2 \
run-strip-reloc.sh hello_i386.ko.bz2 hello_x86_64.ko.bz2 \
hello_ppc64.ko.bz2 hello_s390.ko.bz2 hello_aarch64.ko.bz2 \
- hello_m68k.ko.bz2 hello_riscv64.ko.bz2 \
+ hello_m68k.ko.bz2 hello_riscv64.ko.bz2 hello_csky.ko.bz2 \
run-unstrip-test.sh run-unstrip-test2.sh \
testfile-info-link.bz2 testfile-info-link.debuginfo.bz2 \
testfile-info-link.stripped.bz2 run-unstrip-test3.sh \
@@ -223,6 +229,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile11-debugframe.bz2 testfile12-debugframe.bz2 \
testfileaarch64-debugframe.bz2 testfilearm-debugframe.bz2 \
testfileppc32-debugframe.bz2 testfileppc64-debugframe.bz2 \
+ testfilecsky.bz2 \
run-varlocs-self.sh run-exprlocs-self.sh \
run-find-prologues.sh run-allregs.sh run-native-test.sh \
run-addrname-test.sh run-dwfl-bug-offline-rel.sh \
@@ -417,12 +424,19 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-unit-info.sh run-next-cfi.sh run-next-cfi-self.sh \
testfile-riscv64.bz2 testfile-riscv64-s.bz2 \
testfile-riscv64-core.bz2 \
+ run-reverse-sections.sh run-reverse-sections-self.sh \
run-copyadd-sections.sh run-copymany-sections.sh \
+ run-large-elf-file.sh \
run-typeiter-many.sh run-strip-test-many.sh \
testfile-debug-rel-ppc64-g.o.bz2 \
testfile-debug-rel-ppc64-z.o.bz2 \
testfile-debug-rel-ppc64.o.bz2 \
- run-strip-version.sh testfile-version.bz2
+ run-strip-version.sh testfile-version.bz2 \
+ run-xlate-note.sh \
+ run-readelf-discr.sh \
+ testfile-rng.debug.bz2 testfile-urng.debug.bz2 \
+ run-dwelf_elf_e_machine_string.sh \
+ run-elfclassify.sh run-elfclassify-self.sh
if USE_VALGRIND
valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1'
@@ -594,6 +608,9 @@ unit_info_LDADD = $(libdw)
next_cfi_LDADD = $(libelf) $(libdw)
elfcopy_LDADD = $(libelf)
addsections_LDADD = $(libelf)
+xlate_notes_LDADD = $(libelf)
+elfrdwrnop_LDADD = $(libelf)
+dwelf_elf_e_machine_string_LDADD = $(libelf) $(libdw)
# We want to test the libelf header against the system elf.h header.
# Don't include any -I CPPFLAGS. Except when we install our own elf.h.
diff --git a/tests/addsections.c b/tests/addsections.c
index cc8d0655..c1b0fa81 100644
--- a/tests/addsections.c
+++ b/tests/addsections.c
@@ -70,9 +70,9 @@ setshstrndx (Elf *elf, size_t ndx)
/* Will add nr new '.extra' sections and a new '.new_shstrtab' section
at the end. */
static void
-add_sections (const char *name, size_t nr, int use_mmap)
+add_sections (const char *name, size_t nr, int use_mmap, size_t sec_size)
{
- printf ("add_sections '%s': %zd\n", name, nr);
+ printf ("add_sections '%s': %zd (sec_size: %zd)\n", name, nr, sec_size);
int fd = open (name, O_RDWR);
if (fd < 0)
@@ -149,6 +149,25 @@ add_sections (const char *name, size_t nr, int use_mmap)
exit (1);
}
+ void *buf;
+ size_t bufsz;
+ if (sec_size == 0)
+ {
+ buf = strdup ("extra");
+ bufsz = strlen ("extra") + 1;
+ }
+ else
+ {
+ buf = malloc (sec_size);
+ if (buf == NULL)
+ {
+ printf ("cannot allocate buffer data of %zd bytes\n", sec_size);
+ exit (1);
+ }
+ memset (buf, 0xAA, sec_size);
+ bufsz = sec_size;
+ }
+
// Add lots of .extra sections...
size_t cnt = 0;
while (cnt++ < nr)
@@ -169,8 +188,8 @@ add_sections (const char *name, size_t nr, int use_mmap)
exit (1);
}
- data->d_size = strlen ("extra") + 1;
- data->d_buf = "extra";
+ data->d_size = bufsz;
+ data->d_buf = buf;
data->d_type = ELF_T_BYTE;
data->d_align = 1;
@@ -274,6 +293,7 @@ add_sections (const char *name, size_t nr, int use_mmap)
exit (1);
}
+ free (buf);
free (new_shstrtab_buf);
}
@@ -282,10 +302,11 @@ main (int argc, char *argv[])
{
elf_version (EV_CURRENT);
- /* Takes the given file, and adds the given number of sections. */
- if (argc < 3 || argc > 4)
+ /* Takes the given file, and adds the given number of sections.
+ Optionally using mmap and optionally using a given section size. */
+ if (argc < 3 || argc > 5)
{
- fprintf (stderr, "addsections [--mmap] nr elf.file\n");
+ fprintf (stderr, "addsections [--mmap] nr elf.file [sec_size]\n");
exit (1);
}
@@ -298,8 +319,13 @@ main (int argc, char *argv[])
}
size_t nr = atoi (argv[argn++]);
- const char *file = argv[argn];
- add_sections (file, nr, use_mmap);
+ const char *file = argv[argn++];
+
+ size_t sec_size = 0;
+ if (argn < argc)
+ sec_size = atol (argv[argn++]);
+
+ add_sections (file, nr, use_mmap, sec_size);
return 0;
}
diff --git a/tests/backtrace-dwarf.c b/tests/backtrace-dwarf.c
index dfbf1856..f446bc3b 100644
--- a/tests/backtrace-dwarf.c
+++ b/tests/backtrace-dwarf.c
@@ -101,7 +101,7 @@ frame_callback (Dwfl_Frame *state, void *frame_arg)
if (mod)
symname = dwfl_module_addrname (mod, pc_adjusted);
- printf ("%#" PRIx64 "\t%s\n", (uint64_t) pc, symname);
+ printf ("%#" PRIx64 "\t%s\n", (uint64_t) pc, symname ?: "<null>");
if (symname && (strcmp (symname, "main") == 0
|| strcmp (symname, ".main") == 0))
diff --git a/tests/backtrace.c b/tests/backtrace.c
index 05e8ef82..36c8b8c4 100644
--- a/tests/backtrace.c
+++ b/tests/backtrace.c
@@ -185,7 +185,7 @@ frame_callback (Dwfl_Frame *state, void *frame_arg)
symname = dwfl_module_addrname (mod, pc_adjusted);
printf ("#%2d %#" PRIx64 "%4s\t%s\n", *framenop, (uint64_t) pc,
- ! isactivation ? "- 1" : "", symname);
+ ! isactivation ? "- 1" : "", symname ?: "<null>");
pid_t tid = dwfl_thread_tid (thread);
callback_verify (tid, *framenop, pc, symname, dwfl);
(*framenop)++;
@@ -296,7 +296,6 @@ prepare_thread (pid_t pid2 __attribute__ ((unused)),
#include <asm/unistd.h>
#include <unistd.h>
-#define tgkill(pid, tid, sig) syscall (__NR_tgkill, (pid), (tid), (sig))
static void
report_pid (Dwfl *dwfl, pid_t pid)
diff --git a/tests/dwelf_elf_e_machine_string.c b/tests/dwelf_elf_e_machine_string.c
new file mode 100644
index 00000000..1df2b233
--- /dev/null
+++ b/tests/dwelf_elf_e_machine_string.c
@@ -0,0 +1,64 @@
+/* Test program for dwelf_elf_e_machine_string
+ Copyright (C) 2019 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <assert.h>
+#include <errno.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <string.h>
+#include <unistd.h>
+
+#include ELFUTILS_HEADER(dwelf)
+
+int
+main (int argc, char **argv)
+{
+ int i;
+ for (i = 1; i < argc; i++)
+ {
+ long val;
+ int em;
+ const char *machine;
+
+ if (strncmp ("0x", argv[i], 2) == 0)
+ val = strtol (&argv[i][2], NULL, 16);
+ else
+ val = strtol (argv[i], NULL, 10);
+
+ if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))
+ || (errno != 0 && val == 0))
+ {
+ perror ("strtol");
+ exit (EXIT_FAILURE);
+ }
+
+ em = val;
+ assert (em == val);
+
+ machine = dwelf_elf_e_machine_string (em);
+ printf ("0x%x %s\n", em, machine);
+ assert (machine != NULL);
+ }
+
+ return 0;
+}
diff --git a/tests/elfcopy.c b/tests/elfcopy.c
index 9000cc96..4542222e 100644
--- a/tests/elfcopy.c
+++ b/tests/elfcopy.c
@@ -69,9 +69,11 @@ setshstrndx (Elf *elf, size_t ndx)
/* Copies all elements of an ELF file either using mmap or read. */
static void
-copy_elf (const char *in, const char *out, bool use_mmap)
+copy_elf (const char *in, const char *out, bool use_mmap, bool reverse_offs)
{
- printf ("\ncopy_elf: %s -> %s (%s)\n", in, out, use_mmap ? "mmap" : "read");
+ printf ("\ncopy_elf: %s -> %s (%s,%s)\n", in, out,
+ use_mmap ? "mmap" : "read",
+ reverse_offs ? "reverse" : "same");
/* Existing ELF file. */
int fda = open (in, O_RDONLY);
@@ -182,8 +184,28 @@ copy_elf (const char *in, const char *out, bool use_mmap)
}
}
+ GElf_Off *offs = NULL;
+ size_t shnum;
+ if (reverse_offs)
+ {
+ if (elf_getshdrnum (elfa, &shnum) < 0)
+ {
+ printf ("couldn't get shdrnum: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ offs = (GElf_Off *) malloc (shnum * sizeof (GElf_Off));
+ if (offs == NULL)
+ {
+ printf ("couldn't allocate memory for offs\n");
+ exit (1);
+ }
+ }
+
/* Copy all sections, headers and data. */
Elf_Scn *scn = NULL;
+ size_t last_off = 0;
+ GElf_Shdr last_shdr = { .sh_type = SHT_NULL };
while ((scn = elf_nextscn (elfa, scn)) != NULL)
{
/* Get the header. */
@@ -194,6 +216,35 @@ copy_elf (const char *in, const char *out, bool use_mmap)
exit (1);
}
+ if (reverse_offs)
+ {
+ offs[last_off] = shdr.sh_offset;
+
+ if (last_shdr.sh_type != SHT_NULL
+ && last_shdr.sh_addralign == shdr.sh_addralign
+ && shdr.sh_addralign == 1
+ && last_shdr.sh_type != SHT_NOBITS
+ && shdr.sh_type != SHT_NOBITS
+ && last_shdr.sh_offset + last_shdr.sh_size == shdr.sh_offset
+ && (phnum == 0
+ || ((shdr.sh_flags & SHF_ALLOC) == 0
+ && (last_shdr.sh_flags & SHF_ALLOC) == 0)))
+ {
+ printf ("Swapping offsets of section %zd and %zd\n",
+ last_off, last_off + 1);
+ GElf_Word off = offs[last_off - 1];
+ offs[last_off - 1] = off + shdr.sh_size;
+ offs[last_off] = off;
+ last_shdr.sh_type = SHT_NULL;
+ }
+ else
+ {
+ last_shdr = shdr;
+ offs[last_off] = shdr.sh_offset;
+ }
+ last_off++;
+ }
+
/* Create new section. */
Elf_Scn *new_scn = elf_newscn (elfb);
if (new_scn == NULL)
@@ -223,9 +274,34 @@ copy_elf (const char *in, const char *out, bool use_mmap)
}
}
- /* Write everything to disk. If there are any phdrs then we want
- the exact same layout. Do we want ELF_F_PERMISSIVE? */
- if (phnum > 0)
+ if (reverse_offs)
+ {
+ last_off = 0;
+ scn = NULL;
+ while ((scn = elf_nextscn (elfb, scn)) != NULL)
+ {
+ GElf_Shdr shdr;
+ if (gelf_getshdr (scn, &shdr) == NULL)
+ {
+ printf ("couldn't get shdr for updating: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ shdr.sh_offset = offs[last_off++];
+
+ if (gelf_update_shdr (scn, &shdr) == 0)
+ {
+ printf ("couldn't update shdr sh_off: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+ }
+ free (offs);
+ }
+
+ /* Write everything to disk. If there are any phdrs, or we want to
+ update the offsets, then we want the exact same layout. Do we
+ want ELF_F_PERMISSIVE? */
+ if (phnum > 0 || reverse_offs)
elf_flagelf (elfb, ELF_C_SET, ELF_F_LAYOUT);
if (elf_update (elfb, ELF_C_WRITE) < 0)
{
@@ -264,9 +340,9 @@ main (int argc, const char *argv[])
elf_version (EV_CURRENT);
/* Takes the given file, and create a new identical one. */
- if (argc < 3 || argc > 4)
+ if (argc < 3 || argc > 5)
{
- fprintf (stderr, "elfcopy [--mmap] in.elf out.elf\n");
+ fprintf (stderr, "elfcopy [--mmap] [--reverse-offs] in.elf out.elf\n");
exit (1);
}
@@ -278,9 +354,16 @@ main (int argc, const char *argv[])
argn++;
}
+ bool reverse_offs = false;
+ if (strcmp (argv[argn], "--reverse-offs") == 0)
+ {
+ reverse_offs = true;
+ argn++;
+ }
+
const char *in = argv[argn++];
const char *out = argv[argn];
- copy_elf (in, out, use_mmap);
+ copy_elf (in, out, use_mmap, reverse_offs);
return 0;
}
diff --git a/tests/elfrdwrnop.c b/tests/elfrdwrnop.c
new file mode 100644
index 00000000..997150b9
--- /dev/null
+++ b/tests/elfrdwrnop.c
@@ -0,0 +1,100 @@
+/* Test program for reading and writing out the same file in-place
+ Copyright (C) 2019 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include ELFUTILS_HEADER(elf)
+#include <gelf.h>
+
+
+int
+main (int argc, const char *argv[])
+{
+ /* Takes the given file, and create a new identical one. */
+ if (argc != 2)
+ {
+ fprintf (stderr, "elfrdwrnop elf-file\n");
+ exit (1);
+ }
+
+ elf_version (EV_CURRENT);
+
+ const char *name = argv[1];
+ printf ("elfrdwrdnop %s\n", name);
+
+ int fd = open (name, O_RDWR);
+ if (fd < 0)
+ {
+ fprintf (stderr, "Couldn't open file '%s': %s\n",
+ name, strerror (errno));
+ exit (1);
+ }
+
+ Elf *elf = elf_begin (fd, ELF_C_RDWR, NULL);
+ if (elf == NULL)
+ {
+ fprintf (stderr, "Couldn't open ELF file '%s': %s\n",
+ name, elf_errmsg (-1));
+ exit (1);
+ }
+
+ /* Write everything to disk. If there are any phdrs, then we want
+ the exact same layout. */
+ size_t phnum;
+ if (elf_getphdrnum (elf, &phnum) != 0)
+ {
+ printf ("cannot get phdrs: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ if (phnum > 0)
+ elf_flagelf (elf, ELF_C_SET, ELF_F_LAYOUT);
+
+ if (elf_update (elf, ELF_C_WRITE) < 0)
+ {
+ printf ("failure in elf_update: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ if (elf_end (elf) != 0)
+ {
+ printf ("couldn't cleanup elf '%s': %s\n", name, elf_errmsg (-1));
+ exit (1);
+ }
+
+ if (close (fd) != 0)
+ {
+ printf ("couldn't close '%s': %s\n", name, strerror (errno));
+ exit (1);
+ }
+
+ return 0;
+}
diff --git a/tests/hello_csky.ko.bz2 b/tests/hello_csky.ko.bz2
new file mode 100644
index 00000000..ed98c7f6
--- /dev/null
+++ b/tests/hello_csky.ko.bz2
Binary files differ
diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh
index 76db7d2d..e9f55644 100755
--- a/tests/run-addrcfi.sh
+++ b/tests/run-addrcfi.sh
@@ -3671,3 +3671,4 @@ testrun_compare ${abs_builddir}/addrcfi -e testfile-x32 0x00400390 <<\EOF
control reg66 (%fsw): undefined
handle_cfi no CFI (.debug_frame): no error
EOF
+
diff --git a/tests/run-dwelf_elf_e_machine_string.sh b/tests/run-dwelf_elf_e_machine_string.sh
new file mode 100755
index 00000000..ba6d0e63
--- /dev/null
+++ b/tests/run-dwelf_elf_e_machine_string.sh
@@ -0,0 +1,31 @@
+#! /bin/bash
+# Test to make sure all EM values in elf.h are recognized
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Get all known EM values from elf.h and pass them through the
+# preprocessor to get the numbers. Call dwelf_elf_e_machine_string on
+# all of them.
+EM_VALUES=$(grep ^\#define\ EM_ ${abs_srcdir}/../libelf/elf.h \
+ | cut -f2 -d\ | cut -f1 | grep -v ^EM_NUM$ | xargs echo)
+# echo "EM_VALUES: $EM_VALUES"
+EM_NUMBERS=$((cat ${abs_srcdir}/../libelf/elf.h; echo "$EM_VALUES") \
+ | gcc -E - | tail -1)
+# echo "EM_NUMBERS: $EM_NUMBERS"
+
+testrun ${abs_top_builddir}/tests/dwelf_elf_e_machine_string $EM_NUMBERS
diff --git a/tests/run-elfclassify-self.sh b/tests/run-elfclassify-self.sh
new file mode 100755
index 00000000..c48ab9c9
--- /dev/null
+++ b/tests/run-elfclassify-self.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+testrun_on_self ${abs_top_builddir}/src/elfclassify --elf-file
+testrun_on_self ${abs_top_builddir}/src/elfclassify --not-core
+testrun_on_self ${abs_top_builddir}/src/elfclassify --unstripped
+testrun_on_self ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module
+
+testrun_on_self_lib ${abs_top_builddir}/src/elfclassify --shared
+testrun_on_self_lib ${abs_top_builddir}/src/elfclassify --loadable
+testrun_on_self_lib ${abs_top_builddir}/src/elfclassify --not-executable
+testrun_on_self_lib ${abs_top_builddir}/src/elfclassify --not-program
+
+testrun_on_self_exe ${abs_top_builddir}/src/elfclassify --executable
+testrun_on_self_exe ${abs_top_builddir}/src/elfclassify --program
+testrun_on_self_exe ${abs_top_builddir}/src/elfclassify --loadable
+testrun_on_self_exe ${abs_top_builddir}/src/elfclassify --not-shared
+
+testrun ${abs_top_builddir}/src/elfclassify --not-shared $self_test_files_obj
+testrun ${abs_top_builddir}/src/elfclassify --not-executable $self_test_files_obj
diff --git a/tests/run-elfclassify.sh b/tests/run-elfclassify.sh
new file mode 100755
index 00000000..5a849bbd
--- /dev/null
+++ b/tests/run-elfclassify.sh
@@ -0,0 +1,327 @@
+#!/bin/sh
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+core_files=\
+"testfile_aarch64_core \
+ testfile-backtrace-demangle.core \
+ testfiledwarfinlines.core \
+ testfile_i686_core \
+ testfile-m68k-core \
+ testfile-riscv64-core \
+ backtrace.aarch64.core \
+ backtrace.i386.core \
+ backtrace.ppc.core \
+ backtrace.s390.core"
+
+testfiles $core_files
+
+echo "elfclassify --core"
+testrun ${abs_top_builddir}/src/elfclassify --core $core_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --core --print $core_files <<EOF
+$(echo $core_files | sed -e "s/ /\n/g")
+EOF
+
+echo "core files are not programs"
+testrun ${abs_top_builddir}/src/elfclassify --not-program $core_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $core_files <<EOF
+$(echo $core_files | sed -e "s/ /\n/g")
+EOF
+
+echo "core files are not shared"
+testrun ${abs_top_builddir}/src/elfclassify --not-shared $core_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $core_files <<EOF
+$(echo $core_files | sed -e "s/ /\n/g")
+EOF
+
+echo "core files are not kernel-modules"
+testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $core_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $core_files <<EOF
+$(echo $core_files | sed -e "s/ /\n/g")
+EOF
+
+echo "core files are not debug-only"
+testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $core_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $core_files <<EOF
+$(echo $core_files | sed -e "s/ /\n/g")
+EOF
+
+object_files=\
+"debug-ranges-no-lowpc.o \
+ testfile-annobingroup-i386.o \
+ testfile-bpf-dis1.o \
+ testfile-debug-rel-g.o \
+ testfile-gnu-property-note.o"
+
+testfiles $object_files
+
+echo "elfclassify --elf-file"
+testrun ${abs_top_builddir}/src/elfclassify --elf-file $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --elf-file --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+echo "object files are not archives"
+testrun ${abs_top_builddir}/src/elfclassify --not-elf-archive $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-elf-archive --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+echo "object files are not core files"
+testrun ${abs_top_builddir}/src/elfclassify --not-core $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-core --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+echo "object files are not program files"
+testrun ${abs_top_builddir}/src/elfclassify --not-program $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+echo "object files are not shared files"
+testrun ${abs_top_builddir}/src/elfclassify --not-shared $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+echo "object files are not kernel modules"
+testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+echo "object files are not debug-only files"
+testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $object_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $object_files <<EOF
+$(echo $object_files | sed -e "s/ /\n/g")
+EOF
+
+ar_files="testarchive64.a"
+
+testfiles $ar_files
+
+echo "elfclassify --elf-archive"
+testrun ${abs_top_builddir}/src/elfclassify --elf-archive $ar_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --elf-archive --print $ar_files <<EOF
+$(echo $ar_files | sed -e "s/ /\n/g")
+EOF
+
+echo "archives are not elf-files"
+testrun ${abs_top_builddir}/src/elfclassify --not-elf-file $ar_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-elf-file --print $ar_files <<EOF
+$(echo $ar_files | sed -e "s/ /\n/g")
+EOF
+
+echo "archives are not core files"
+testrun ${abs_top_builddir}/src/elfclassify --not-core $ar_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-core --print $ar_files <<EOF
+$(echo $ar_files | sed -e "s/ /\n/g")
+EOF
+
+echo "archives are not program files"
+testrun ${abs_top_builddir}/src/elfclassify --not-program $ar_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $ar_files <<EOF
+$(echo $ar_files | sed -e "s/ /\n/g")
+EOF
+
+echo "archives are not shared files"
+testrun ${abs_top_builddir}/src/elfclassify --not-shared $ar_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $ar_files <<EOF
+$(echo $ar_files | sed -e "s/ /\n/g")
+EOF
+
+lib_files=\
+"testfile52-32.noshdrs.so \
+ libtestfile_multi_shared.so \
+ testfile52-32.prelink.so \
+ testfile52-32.so
+ testfile54-64.noshdrs.so \
+ testfile54-64.prelink.so \
+ testfile54-64.so \
+ testlib_dynseg.so"
+
+testfiles $lib_files
+
+echo "elfclassify --shared"
+testrun ${abs_top_builddir}/src/elfclassify --shared $lib_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --shared --print $lib_files <<EOF
+$(echo $lib_files | sed -e "s/ /\n/g")
+EOF
+
+echo "shared files are loadable"
+testrun ${abs_top_builddir}/src/elfclassify --loadable $lib_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --loadable --print $lib_files <<EOF
+$(echo $lib_files | sed -e "s/ /\n/g")
+EOF
+
+echo "shared files are not executables"
+testrun ${abs_top_builddir}/src/elfclassify --not-executable $lib_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-executable --print $lib_files <<EOF
+$(echo $lib_files | sed -e "s/ /\n/g")
+EOF
+
+echo "shared files are not debug-only"
+testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $lib_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $lib_files <<EOF
+$(echo $lib_files | sed -e "s/ /\n/g")
+EOF
+
+echo "shared files are not kernel modules"
+testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $lib_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $lib_files <<EOF
+$(echo $lib_files | sed -e "s/ /\n/g")
+EOF
+
+exe_files=\
+"backtrace.aarch64.exec \
+ backtrace.i386.exec \
+ backtrace.ppc.exec \
+ backtrace.s390x.exec \
+ testfile70.exec \
+ test-offset-loop \
+ testfilebaztab \
+ testfilebaztabppc64"
+
+testfiles $exe_files
+
+echo "elfclassify --program"
+testrun ${abs_top_builddir}/src/elfclassify --program $exe_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --program --print $exe_files <<EOF
+$(echo $exe_files | sed -e "s/ /\n/g")
+EOF
+
+echo "programs are executables (in this case)"
+testrun ${abs_top_builddir}/src/elfclassify --executable $exe_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --executable --print $exe_files <<EOF
+$(echo $exe_files | sed -e "s/ /\n/g")
+EOF
+
+echo "programs are not shared libraries (in this case)"
+testrun ${abs_top_builddir}/src/elfclassify --not-shared $exe_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $exe_files <<EOF
+$(echo $exe_files | sed -e "s/ /\n/g")
+EOF
+
+echo "programs are not kernel-modules"
+testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $exe_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $exe_files <<EOF
+$(echo $exe_files | sed -e "s/ /\n/g")
+EOF
+
+echo "programs are not debug-only"
+testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $exe_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $exe_files <<EOF
+$(echo $exe_files | sed -e "s/ /\n/g")
+EOF
+
+kmod_files=\
+"hello_aarch64.ko \
+ hello_csky.ko \
+ hello_i386.ko \
+ hello_m68k.ko \
+ hello_ppc64.ko \
+ hello_riscv64.ko \
+ hello_s390.ko \
+ hello_x86_64.ko"
+
+testfiles $kmod_files
+
+echo "elfclassify --linux-kernel-module"
+testrun ${abs_top_builddir}/src/elfclassify --linux-kernel-module $kmod_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --linux-kernel-module --print $kmod_files <<EOF
+$(echo $kmod_files | sed -e "s/ /\n/g")
+EOF
+
+echo "kmods are unstripped"
+testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF
+$(echo $kmod_files | sed -e "s/ /\n/g")
+EOF
+
+echo "kmods are not debug-only"
+testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $kmod_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $kmod_files <<EOF
+$(echo $kmod_files | sed -e "s/ /\n/g")
+EOF
+
+echo "kmods are not loabable (in the normal sense)"
+testrun ${abs_top_builddir}/src/elfclassify --not-loadable $kmod_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-loadable --print $kmod_files <<EOF
+$(echo $kmod_files | sed -e "s/ /\n/g")
+EOF
+
+echo "gnu compressed kmods are unstripped"
+${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files
+testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF
+$(echo $kmod_files | sed -e "s/ /\n/g")
+EOF
+
+debug_files=\
+"testfile15.debug \
+ testfile35.debug \
+ testfile40.debug \
+ testfile48.debug \
+ testfile53-32.debug \
+ testfile53-64.debug \
+ testfilebazdbg.debug \
+ testfilebazdbgppc64.debug \
+ addrx_constx-4.dwo \
+ addrx_constx-5.dwo"
+
+testfiles $debug_files
+
+echo "elfclassify --debug-only"
+testrun ${abs_top_builddir}/src/elfclassify --debug-only $debug_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --debug-only --print $debug_files <<EOF
+$(echo $debug_files | sed -e "s/ /\n/g")
+EOF
+
+echo "debug-only files are unstripped"
+testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $debug_files <<EOF
+$(echo $debug_files | sed -e "s/ /\n/g")
+EOF
+
+echo "debug-only files are not programs"
+testrun ${abs_top_builddir}/src/elfclassify --not-program $debug_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $debug_files <<EOF
+$(echo $debug_files | sed -e "s/ /\n/g")
+EOF
+
+echo "debug-only files are not shared"
+testrun ${abs_top_builddir}/src/elfclassify --not-shared $debug_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $debug_files <<EOF
+$(echo $debug_files | sed -e "s/ /\n/g")
+EOF
+
+echo "compress the debug sections and try again"
+${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files
+
+echo "again unstripped"
+testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $debug_files <<EOF
+$(echo $debug_files | sed -e "s/ /\n/g")
+EOF
+
+echo "again debug-only"
+testrun ${abs_top_builddir}/src/elfclassify --debug-only $debug_files
+testrun_compare ${abs_top_builddir}/src/elfclassify --debug-only --print $debug_files <<EOF
+$(echo $debug_files | sed -e "s/ /\n/g")
+EOF
diff --git a/tests/run-large-elf-file.sh b/tests/run-large-elf-file.sh
new file mode 100755
index 00000000..6146cfed
--- /dev/null
+++ b/tests/run-large-elf-file.sh
@@ -0,0 +1,114 @@
+#! /bin/bash
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Only run on 64bit systems, 32bit systems don't support > 4GB
+# ELF files.
+long_bit=$(getconf LONG_BIT)
+echo "long_bit: $long_bit"
+if test $long_bit -ne 64; then
+ echo "Only 64bit systems can create > 4GB ELF files"
+ exit 77
+fi
+
+# These tests need lots of disk space since they test files > 4GB.
+# Skip if there just isn't enough (2.5 * 4 = 10GB).
+space_available=$[$(stat -f --format="%a*%S" .)/(1024 * 1024 * 1024)]
+echo "space_available: $space_available"
+if test $space_available -lt 10; then
+ echo "Not enough disk space, need at least 10GB available"
+ exit 77
+fi
+
+# Make sure the files fit into memory, assume 6GB needed (2.5 * 2 + 1 extra).
+# Running under valgrind might need even more.
+mem_needed=6
+if [ "x$VALGRIND_CMD" != "x" ]; then
+ mem_needed=$[${mem_needed} + 2]
+fi
+echo "mem_needed: $mem_needed"
+mem_available=$(free -g | grep ^Mem: | awk -F ' +' '{print $7}')
+echo "mem_available: $mem_available"
+if test $mem_available -lt $mem_needed; then
+ echo "Need at least ${mem_needed}GB free available memory"
+ exit 77
+fi
+
+# Make sure the disk is reasonably fast, should be able to write 100MB/s
+fast_disk=1
+timeout -s9 10s dd conv=fsync if=/dev/zero of=tempfile bs=1M count=1K \
+ || fast_disk=0; rm tempfile
+if test $fast_disk -eq 0; then
+ echo "File system not fast enough, need at least 100MB/s"
+ exit 77
+fi
+
+# NOTE: test file will be mangled and removed!
+test_file ()
+{
+ in_file="$1"
+ readelf_out="${in_file}.readelf.out"
+ out_file_strip="${in_file}.strip"
+ out_file_debug="${in_file}.debug"
+
+ testfiles ${in_file}
+ tempfiles ${readelf_out} ${out_file_mmap} ${out_file_strip} ${out_file_debug}
+
+ # Add two 2GB sections to the file.
+ echo "addsections 2 ${in_file} 2147483648"
+ testrun ${abs_builddir}/addsections 2 ${in_file} 2147483648
+ testrun ${abs_top_builddir}/src/readelf -S ${in_file} > ${readelf_out}
+ nr=$(grep '.extra' ${readelf_out} | wc -l)
+ if test ${nr} != 2; then
+ # Show what went wrong
+ cat ${readelf_out}
+ exit 1
+ fi
+
+ echo "strip -o ${out_file_strip} -f ${out_file_debug} ${in_file}"
+ testrun ${abs_top_builddir}/src/strip -o ${out_file_strip} \
+ -f ${out_file_debug} ${in_file}
+
+ echo "elflint --gnu ${out_file_strip}"
+ testrun ${abs_top_builddir}/src/elflint --gnu ${out_file_strip}
+
+ echo "elflint --gnu -d ${out_file_debug}"
+ testrun ${abs_top_builddir}/src/elflint --gnu -d ${out_file_debug}
+
+ # Now test unstrip recombining those files.
+ echo "unstrip ${out_file_strip} ${out_file_debug}"
+ testrun ${abs_top_builddir}/src/unstrip ${out_file_strip} ${out_file_debug}
+
+ echo "elfcmp ${out_file} ${out_file_strip}"
+ testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file_debug}
+
+ # Remove the temp files immediately, they are big...
+ rm -f ${in_file} ${out_file_strip} ${out_file_debug}
+}
+
+# A collection of random testfiles to test 64bit, little/big endian
+# and non-ET_REL (with phdrs)/ET_REL (without phdrs).
+# Don't test 32bit, they cannot go beyond 4GB.
+
+# 64bit, little endian, rel
+test_file testfile38
+
+# 64bit, big endian, non-rel
+test_file testfile27
+
+exit 0
diff --git a/tests/run-readelf-discr.sh b/tests/run-readelf-discr.sh
new file mode 100755
index 00000000..dc84d827
--- /dev/null
+++ b/tests/run-readelf-discr.sh
@@ -0,0 +1,337 @@
+#! /bin/sh
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# = rng.ads =
+# package Rng is
+#
+# type Rec (I : Integer) is record
+# case I is
+# when Positive =>
+# case I is
+# when 1..15 | 17 | 23 =>
+# null;
+# when others =>
+# J : Integer;
+# end case;
+# when -52..-1 =>
+# Q: Integer;
+# when -64 =>
+# R: Boolean;
+# when others =>
+# null;
+# end case;
+# end record;
+#
+# R : Rec (1);
+#
+# end Rng;
+
+# = urng.ads =
+#
+# package Urng is
+#
+# type Unsigned is mod 65536;
+# type Rec (U : Unsigned) is record
+# case U is
+# when 17 | 23 | 32768..65535 =>
+# null;
+# when 256 =>
+# B: Boolean;
+# when others =>
+# I : Integer;
+# end case;
+# end record;
+#
+# R : Rec (1);
+#
+# end Urng;
+
+# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf rng.ads
+# eu-strip -g -f rng.debug rng.o
+# gcc -c -g -fgnat-encodings=minimal -gstrict-dwarf urng.ads
+# eu-strip -g -f urng.debug urng.o
+
+testfiles testfile-rng.debug testfile-urng.debug
+
+testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-rng.debug testfile-urng.debug <<EOF
+
+testfile-rng.debug:
+
+
+DWARF section [ 5] '.debug_info' at offset 0x40:
+ [Offset]
+ Compilation unit at offset 0:
+ Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
+ [ b] compile_unit abbrev: 1
+ producer (strp) "GNU Ada 9.1.1 20190503 (Red Hat 9.1.1-1) -g -fgnat-encodings=minimal -gstrict-dwarf -mtune=generic -march=x86-64"
+ language (data1) Ada95 (13)
+ name (strp) "rng.ads"
+ comp_dir (strp) "/home/mark"
+ low_pc (addr) 000000000000000000
+ high_pc (data8) 2016 (0x00000000000007e0)
+ stmt_list (sec_offset) 0
+ [ 2d] structure_type abbrev: 2
+ name (strp) "rng__rec"
+ byte_size (exprloc)
+ [ 0] push_object_address
+ [ 1] deref_size 4
+ [ 3] call4 [ c6]
+ [ 8] plus_uconst 7
+ [10] const1s -4
+ [12] and
+ decl_file (data1) rng.ads (1)
+ decl_line (data1) 3
+ decl_column (data1) 9
+ sibling (ref4) [ ab]
+ [ 47] member abbrev: 3
+ name (string) "i"
+ decl_file (data1) rng.ads (1)
+ decl_line (data1) 3
+ decl_column (data1) 14
+ type (ref4) [ fe]
+ data_member_location (data1) 0
+ [ 52] variant_part abbrev: 4
+ discr (ref4) [ 47]
+ [ 57] variant abbrev: 5
+ discr_list (block1) range 1..2147483647
+ sibling (ref4) [ 81]
+ [ 64] variant_part abbrev: 4
+ discr (ref4) [ 47]
+ [ 69] variant abbrev: 6
+ discr_list (block1) range 1..15, label 17, label 23
+ [ 72] variant abbrev: 7
+ [ 73] member abbrev: 3
+ name (string) "j"
+ decl_file (data1) rng.ads (1)
+ decl_line (data1) 10
+ decl_column (data1) 19
+ type (ref4) [ fe]
+ data_member_location (data1) 4
+ [ 81] variant abbrev: 5
+ discr_list (block1) range -52..-1
+ sibling (ref4) [ 96]
+ [ 8a] member abbrev: 3
+ name (string) "q"
+ decl_file (data1) rng.ads (1)
+ decl_line (data1) 13
+ decl_column (data1) 13
+ type (ref4) [ fe]
+ data_member_location (data1) 4
+ [ 96] variant abbrev: 8
+ discr_value (sdata) -64
+ sibling (ref4) [ a8]
+ [ 9c] member abbrev: 3
+ name (string) "r"
+ decl_file (data1) rng.ads (1)
+ decl_line (data1) 15
+ decl_column (data1) 13
+ type (ref4) [ 105]
+ data_member_location (data1) 4
+ [ a8] variant abbrev: 9
+ [ ab] dwarf_procedure abbrev: 10
+ location (exprloc)
+ [ 0] dup
+ [ 1] lit0
+ [ 2] gt
+ [ 3] over
+ [ 4] lit15
+ [ 5] le
+ [ 6] and
+ [ 7] over
+ [ 8] lit17
+ [ 9] eq
+ [10] or
+ [11] over
+ [12] lit23
+ [13] eq
+ [14] or
+ [15] bra 22
+ [18] lit4
+ [19] skip 23
+ [22] lit0
+ [23] swap
+ [24] drop
+ [ c6] dwarf_procedure abbrev: 10
+ location (exprloc)
+ [ 0] dup
+ [ 1] lit0
+ [ 2] gt
+ [ 3] bra 36
+ [ 6] dup
+ [ 7] const1s -52
+ [ 9] lt
+ [10] over
+ [11] lit0
+ [12] ge
+ [13] or
+ [14] bra 21
+ [17] lit4
+ [18] skip 33
+ [21] dup
+ [22] const1s -64
+ [24] eq
+ [25] bra 32
+ [28] lit0
+ [29] skip 33
+ [32] lit4
+ [33] skip 52
+ [36] dup
+ [37] call4 [ ab]
+ [42] plus_uconst 3
+ [44] const1s -4
+ [46] and
+ [47] plus_uconst 3
+ [49] const1s -4
+ [51] and
+ [52] swap
+ [53] drop
+ [ fe] base_type abbrev: 11
+ byte_size (data1) 4
+ encoding (data1) signed (5)
+ name (strp) "integer"
+ artificial (flag_present) yes
+ [ 105] base_type abbrev: 12
+ byte_size (data1) 1
+ encoding (data1) boolean (2)
+ name (strp) "boolean"
+ [ 10c] variable abbrev: 13
+ name (strp) "rng__r"
+ decl_file (data1) rng.ads (1)
+ decl_line (data1) 21
+ decl_column (data1) 4
+ type (ref4) [ 2d]
+ external (flag_present) yes
+ location (exprloc)
+ [ 0] addr 0x7e4
+ [ 122] subprogram abbrev: 14
+ external (flag_present) yes
+ name (strp) "rng___elabs"
+ artificial (flag_present) yes
+ low_pc (addr) 0x0000000000000734
+ high_pc (data8) 22 (0x000000000000074a)
+ frame_base (exprloc)
+ [ 0] call_frame_cfa
+
+testfile-urng.debug:
+
+
+DWARF section [ 5] '.debug_info' at offset 0x40:
+ [Offset]
+ Compilation unit at offset 0:
+ Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
+ [ b] compile_unit abbrev: 1
+ producer (strp) "GNU Ada 9.1.1 20190503 (Red Hat 9.1.1-1) -g -fgnat-encodings=minimal -gstrict-dwarf -mtune=generic -march=x86-64"
+ language (data1) Ada95 (13)
+ name (strp) "urng.ads"
+ comp_dir (strp) "/home/mark"
+ low_pc (addr) 000000000000000000
+ high_pc (data8) 977 (0x00000000000003d1)
+ stmt_list (sec_offset) 0
+ [ 2d] base_type abbrev: 2
+ byte_size (data1) 2
+ encoding (data1) unsigned (7)
+ name (strp) "urng__unsigned"
+ [ 34] structure_type abbrev: 3
+ name (strp) "urng__rec"
+ byte_size (exprloc)
+ [ 0] push_object_address
+ [ 1] deref_size 2
+ [ 3] call4 [ 8d]
+ [ 8] plus_uconst 7
+ [10] const1s -4
+ [12] and
+ decl_file (data1) urng.ads (1)
+ decl_line (data1) 4
+ decl_column (data1) 9
+ sibling (ref4) [ 8d]
+ [ 4e] member abbrev: 4
+ name (string) "u"
+ decl_file (data1) urng.ads (1)
+ decl_line (data1) 4
+ decl_column (data1) 14
+ type (ref4) [ 2d]
+ data_member_location (data1) 0
+ [ 59] variant_part abbrev: 5
+ discr (ref4) [ 4e]
+ [ 5e] variant abbrev: 6
+ discr_list (block1) label 17, label 23, range 32768..65535
+ [ 6b] variant abbrev: 7
+ discr_value (udata) 256
+ sibling (ref4) [ 7e]
+ [ 72] member abbrev: 4
+ name (string) "b"
+ decl_file (data1) urng.ads (1)
+ decl_line (data1) 9
+ decl_column (data1) 13
+ type (ref4) [ a4]
+ data_member_location (data1) 4
+ [ 7e] variant abbrev: 8
+ [ 7f] member abbrev: 4
+ name (string) "i"
+ decl_file (data1) urng.ads (1)
+ decl_line (data1) 11
+ decl_column (data1) 13
+ type (ref4) [ ab]
+ data_member_location (data1) 4
+ [ 8d] dwarf_procedure abbrev: 9
+ location (exprloc)
+ [ 0] dup
+ [ 1] lit17
+ [ 2] ne
+ [ 3] over
+ [ 4] lit23
+ [ 5] ne
+ [ 6] and
+ [ 7] over
+ [ 8] lit0
+ [ 9] ge
+ [10] and
+ [11] bra 18
+ [14] lit0
+ [15] skip 19
+ [18] lit4
+ [19] swap
+ [20] drop
+ [ a4] base_type abbrev: 2
+ byte_size (data1) 1
+ encoding (data1) boolean (2)
+ name (strp) "boolean"
+ [ ab] base_type abbrev: 10
+ byte_size (data1) 4
+ encoding (data1) signed (5)
+ name (strp) "integer"
+ artificial (flag_present) yes
+ [ b2] variable abbrev: 11
+ name (strp) "urng__r"
+ decl_file (data1) urng.ads (1)
+ decl_line (data1) 15
+ decl_column (data1) 4
+ type (ref4) [ 34]
+ external (flag_present) yes
+ location (exprloc)
+ [ 0] addr 0x3d8
+ [ c8] subprogram abbrev: 12
+ external (flag_present) yes
+ name (strp) "urng___elabs"
+ artificial (flag_present) yes
+ low_pc (addr) 0x0000000000000386
+ high_pc (data8) 22 (0x000000000000039c)
+ frame_base (exprloc)
+ [ 0] call_frame_cfa
+EOF
diff --git a/tests/run-reverse-sections-self.sh b/tests/run-reverse-sections-self.sh
new file mode 100755
index 00000000..71afd6ac
--- /dev/null
+++ b/tests/run-reverse-sections-self.sh
@@ -0,0 +1,45 @@
+#! /bin/sh
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+test_reverse_self ()
+{
+ in_file="$1"
+ base_name="$(basename ${in_file})"
+ out_file="${base_name}.rev"
+ out_file_mmap="${out_file}.mmap"
+
+ tempfiles ${out_file} ${out_file_mmap}
+
+ # Reverse the offsets (the files should still be the same otherwise)
+ testrun ${abs_builddir}/elfcopy --reverse-offs ${in_file} ${out_file}
+ testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file}
+ testrun ${abs_top_builddir}/src/elflint --gnu ${out_file}
+ # An in-place nop will likely revert them back
+ testrun ${abs_builddir}/elfrdwrnop ${out_file}
+ testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file}
+ testrun ${abs_top_builddir}/src/elflint --gnu ${out_file}
+}
+
+# Only really makes sense for ET_REL files, but try all, just to check
+# it also works if we keep the order for the allocated sections.
+for file in $self_test_files; do
+ test_reverse_self $file
+done
+
+exit 0
diff --git a/tests/run-reverse-sections.sh b/tests/run-reverse-sections.sh
new file mode 100755
index 00000000..102a1261
--- /dev/null
+++ b/tests/run-reverse-sections.sh
@@ -0,0 +1,69 @@
+#! /bin/sh
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+test_reverse ()
+{
+ in_file="$1"
+ out_file="${in_file}.rev"
+ out_file_mmap="${out_file}.mmap"
+
+ testfiles ${in_file}
+ tempfiles ${out_file} ${out_file_mmap}
+
+ # Reverse the offsets (the files should still be the same otherwise)
+ testrun ${abs_builddir}/elfcopy --reverse-offs ${in_file} ${out_file}
+ testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file}
+ testrun ${abs_top_builddir}/src/elflint --gnu ${out_file}
+ # An in-place nop will likely revert them back
+ testrun ${abs_builddir}/elfrdwrnop ${out_file}
+ testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file}
+ testrun ${abs_top_builddir}/src/elflint --gnu ${out_file}
+}
+
+# A collection of random testfiles to test 32/64bit, little/big endian
+# and non-ET_REL (with phdrs)/ET_REL (without phdrs).
+
+# 32bit, big endian, rel
+test_reverse testfile29
+
+# 64bit, big endian, rel
+test_reverse testfile23
+
+# 32bit, little endian, rel
+test_reverse testfile9
+
+# 64bit, little endian, rel
+test_reverse testfile38
+
+# 32bit, big endian, non-rel
+test_reverse testfile26
+
+# 64bit, big endian, non-rel
+test_reverse testfile27
+
+# 32bit, little endian, non-rel
+test_reverse testfile
+
+# 64bit, little endian, non-rel
+# Don't use testfile10. It has section headers in the middle of the file.
+# Same for testfile12. It is legal, but not the point of this testcase.
+# test_reverse testfile10
+test_reverse testfile13
+
+exit 0
diff --git a/tests/run-xlate-note.sh b/tests/run-xlate-note.sh
new file mode 100755
index 00000000..a9074182
--- /dev/null
+++ b/tests/run-xlate-note.sh
@@ -0,0 +1,93 @@
+# Copyright (C) 2019 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+testfiles testfileppc32
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfileppc32 << EOF
+Notes in section 2:
+type: 1,1, namesz: 4,4, descsz: 16,16
+Notes in section 3:
+type: 3,3, namesz: 4,4, descsz: 20,20
+EOF
+
+testfiles testfileppc64
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfileppc64 << EOF
+Notes in section 2:
+type: 1,1, namesz: 4,4, descsz: 16,16
+Notes in section 3:
+type: 3,3, namesz: 4,4, descsz: 20,20
+EOF
+
+testfiles testfiles390
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfiles390 << EOF
+Notes in section 2:
+type: 1,1, namesz: 4,4, descsz: 16,16
+Notes in section 3:
+type: 3,3, namesz: 4,4, descsz: 20,20
+EOF
+
+testfiles testfiles390x
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfiles390x << EOF
+Notes in section 2:
+type: 1,1, namesz: 4,4, descsz: 16,16
+Notes in section 3:
+type: 3,3, namesz: 4,4, descsz: 20,20
+EOF
+
+testfiles testfileaarch64
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfileaarch64 << EOF
+Notes in section 2:
+type: 1,1, namesz: 4,4, descsz: 16,16
+Notes in section 3:
+type: 3,3, namesz: 4,4, descsz: 20,20
+EOF
+
+testfiles testfilearm
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfilearm << EOF
+Notes in section 2:
+type: 1,1, namesz: 4,4, descsz: 16,16
+Notes in section 3:
+type: 3,3, namesz: 4,4, descsz: 20,20
+EOF
+
+testfiles testfile_gnu_props.32be.o
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.32be.o << EOF
+Notes in section 4:
+type: 5,5, namesz: 4,4, descsz: 12,12
+type: 5,5, namesz: 4,4, descsz: 8,8
+EOF
+
+testfiles testfile_gnu_props.32le.o
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.32le.o << EOF
+Notes in section 4:
+type: 5,5, namesz: 4,4, descsz: 12,12
+type: 5,5, namesz: 4,4, descsz: 8,8
+EOF
+
+testfiles testfile_gnu_props.64be.o
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.64be.o << EOF
+Notes in section 4:
+type: 5,5, namesz: 4,4, descsz: 16,16
+type: 5,5, namesz: 4,4, descsz: 8,8
+EOF
+
+testfiles testfile_gnu_props.64le.o
+testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.64le.o << EOF
+Notes in section 4:
+type: 5,5, namesz: 4,4, descsz: 16,16
+type: 5,5, namesz: 4,4, descsz: 8,8
+EOF
diff --git a/tests/testfile-rng.debug.bz2 b/tests/testfile-rng.debug.bz2
new file mode 100644
index 00000000..58c1b76b
--- /dev/null
+++ b/tests/testfile-rng.debug.bz2
Binary files differ
diff --git a/tests/testfile-urng.debug.bz2 b/tests/testfile-urng.debug.bz2
new file mode 100644
index 00000000..4697f364
--- /dev/null
+++ b/tests/testfile-urng.debug.bz2
Binary files differ
diff --git a/tests/testfilecsky.bz2 b/tests/testfilecsky.bz2
new file mode 100644
index 00000000..dfee449e
--- /dev/null
+++ b/tests/testfilecsky.bz2
Binary files differ
diff --git a/tests/xlate_notes.c b/tests/xlate_notes.c
new file mode 100644
index 00000000..90a4ae27
--- /dev/null
+++ b/tests/xlate_notes.c
@@ -0,0 +1,157 @@
+/* Test program for extracting ELF Note headers and getting whole notes.
+ Copyright (C) 2019 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include ELFUTILS_HEADER(elf)
+#include <gelf.h>
+
+int
+main (int argc, char *argv[])
+{
+ if (argc != 2)
+ {
+ printf ("No ELF file given as argument\n");
+ exit (1);
+ }
+
+ const char *fname = argv[1];
+
+ // Initialize libelf.
+ elf_version (EV_CURRENT);
+
+ /* Read the ELF from disk now. */
+ int fd = open (fname, O_RDONLY);
+ if (fd == -1)
+ {
+ printf ("cannot open '%s': %s\n", fname, strerror (errno));
+ exit (1);
+ }
+
+ Elf *elf = elf_begin (fd, ELF_C_READ, NULL);
+ if (elf == NULL)
+ {
+ printf ("cannot create ELF descriptor: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ GElf_Ehdr ehdr;
+ if (gelf_getehdr (elf, &ehdr) == NULL)
+ {
+ printf ("cannot get Ehdr: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ /* Search for all SHT_NOTE sections. */
+ Elf_Scn *scn = NULL;
+ while ((scn = elf_nextscn (elf, scn)) != NULL)
+ {
+ /* Get the header. */
+ GElf_Shdr shdr;
+ if (gelf_getshdr (scn, &shdr) == NULL)
+ {
+ printf ("couldn't get shdr: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ if (shdr.sh_type == SHT_NOTE)
+ {
+ printf ("Notes in section %zd:\n", elf_ndxscn (scn));
+
+ Elf_Data *raw = elf_rawdata (scn, NULL);
+ if (raw == NULL)
+ {
+ printf ("couldn't get raw data: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ Elf_Data *data = elf_getdata (scn, NULL);
+ if (data == NULL)
+ {
+ printf ("couldn't get data: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ size_t off = 0;
+ size_t next;
+ GElf_Nhdr nhdr;
+ size_t n_off;
+ size_t d_off;
+ while ((next = gelf_getnote (data, off, &nhdr, &n_off, &d_off)) > 0)
+ {
+ /* Now just get the note header "raw" (don't
+ copy/translate the note data). This only handles
+ traditional GNU ELF Notes, so we still use the next
+ from gelf_getnote (padding is different for new style
+ ELF_T_NHDR8 notes). */
+ Elf32_Nhdr nh;
+ Elf_Data src =
+ {
+ .d_version = EV_CURRENT, .d_type = ELF_T_NHDR,
+ .d_size = sizeof nh
+ };
+ Elf_Data dst = src;
+ src.d_buf = raw->d_buf + off;
+ dst.d_buf = &nh;
+
+ if (elf32_xlatetom (&dst, &src, ehdr.e_ident[EI_DATA]) == NULL)
+ {
+ printf ("couldn't xlate note: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ printf ("type: %" PRId32 ",%" PRId32
+ ", namesz: %" PRId32 ",%" PRId32
+ ", descsz: %" PRId32 ",%" PRId32 "\n",
+ nhdr.n_type, nh.n_type,
+ nhdr.n_namesz, nh.n_namesz,
+ nhdr.n_descsz, nh.n_descsz);
+
+ if (nhdr.n_type != nh.n_type
+ || nhdr.n_namesz != nh.n_namesz
+ || nhdr.n_descsz != nh.n_descsz)
+ {
+ printf ("Nhdrs not equal!\n");
+ exit (1);
+ }
+
+ off = next;
+ }
+ }
+
+ }
+
+ if (elf_end (elf) != 0)
+ {
+ printf ("failure in elf_end: %s\n", elf_errmsg (-1));
+ exit (1);
+ }
+
+ close (fd);
+
+ return 0;
+}