aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2019-10-07 17:06:28 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-10-07 17:06:28 -0700
commit36a6886f1a6e2a3348271e87f784fa2011485524 (patch)
treecf73c889013f70ca0e06a7b1e0e1ec1b93d14ad8
parent52c75b45151639cb39ecc351402d57aa92a6fb66 (diff)
parent8dbae89e8f974ca4dda3657d604e625423a7e776 (diff)
downloadelfutils-36a6886f1a6e2a3348271e87f784fa2011485524.tar.gz
Merge "Upgrade elfutils to 47780c9e4cbd312da6d93c9d70c554d34d83dd05" am: 6440886347 am: 7a7d85c2ad
am: 8dbae89e8f Change-Id: I8866cc3db27671dfe52721aa73f34ea9875af888
-rw-r--r--.gitignore1
-rw-r--r--ChangeLog14
-rw-r--r--METADATA4
-rw-r--r--Makefile.am5
-rw-r--r--NEWS16
-rw-r--r--backends/ChangeLog6
-rw-r--r--backends/Makefile.am106
-rw-r--r--backends/riscv_init.c1
-rw-r--r--config/ChangeLog24
-rw-r--r--config/Makefile.am6
-rw-r--r--config/elfutils.spec.in36
-rw-r--r--configure.ac17
-rw-r--r--doc/COPYING-GFDL455
-rw-r--r--doc/ChangeLog53
-rw-r--r--doc/Makefile.am17
-rw-r--r--doc/README20
-rw-r--r--doc/elf_begin.337
-rw-r--r--doc/elf_clone.314
-rw-r--r--doc/elf_getdata.328
-rw-r--r--doc/elf_update.314
-rw-r--r--doc/elfclassify.1197
-rw-r--r--doc/readelf.1511
-rw-r--r--lib/color.c14
-rw-r--r--lib/color.h2
-rw-r--r--libasm/ChangeLog4
-rw-r--r--libasm/Makefile.am2
-rw-r--r--libcpu/ChangeLog11
-rw-r--r--libcpu/Makefile.am24
-rw-r--r--libcpu/i386_disasm.c2
-rw-r--r--libcpu/riscv_disasm.c1501
-rw-r--r--libdw/ChangeLog16
-rw-r--r--libdw/Makefile.am21
-rw-r--r--libdw/dwarf_getcfi.c1
-rw-r--r--libdw/libdw.map4
-rw-r--r--libdwelf/ChangeLog6
-rw-r--r--libdwelf/dwelf_elf_begin.c12
-rw-r--r--libdwelf/libdwelf.h9
-rw-r--r--libdwfl/ChangeLog13
-rw-r--r--libdwfl/dwfl_segment_report_module.c1
-rw-r--r--libdwfl/gzip.c5
-rw-r--r--libdwfl/open.c10
-rw-r--r--libebl/ChangeLog17
-rw-r--r--libebl/Makefile.am51
-rw-r--r--libebl/eblclosebackend.c4
-rw-r--r--libebl/eblopenbackend.c266
-rw-r--r--libebl/libebl.h8
-rw-r--r--libebl/libeblP.h3
-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/ChangeLog47
-rw-r--r--src/Makefile.am24
-rw-r--r--src/elfclassify.c1046
-rw-r--r--src/elflint.c6
-rw-r--r--src/nm.c3
-rw-r--r--src/objdump.c6
-rw-r--r--src/readelf.c30
-rw-r--r--tests/ChangeLog33
-rw-r--r--tests/Makefile.am46
-rwxr-xr-xtests/run-disasm-riscv64.sh529
-rwxr-xr-xtests/run-elfclassify-self.sh36
-rwxr-xr-xtests/run-elfclassify.sh327
-rwxr-xr-xtests/run-readelf-s.sh3
-rwxr-xr-xtests/run-readelf-test2.sh7
-rw-r--r--tests/test-subr.sh10
-rw-r--r--tests/testfile-riscv64-dis1.expect.bz2bin0 -> 4603 bytes
-rw-r--r--tests/testfile-riscv64-dis1.o.bz2bin0 -> 1507 bytes
-rw-r--r--tests/testfile45.expect.bz2bin82002 -> 81706 bytes
71 files changed, 7498 insertions, 2533 deletions
diff --git a/.gitignore b/.gitignore
index e8201dcc..72f22855 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,6 +56,7 @@ Makefile.in
/po/stamp-po
/src/addr2line
/src/ar
+/src/elfclassify
/src/elfcmp
/src/elfcompress
/src/elflint
diff --git a/ChangeLog b/ChangeLog
index 5c45cccf..911cf354 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * configure.ac: Get rid of --enable-libebl-subdir.
+ * Makefile.am (SUBDIRS): Reorder backends and libcpu before libebl to
+ satisfy build dependencies.
+
+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/METADATA b/METADATA
index 02506468..8d16a3f1 100644
--- a/METADATA
+++ b/METADATA
@@ -9,10 +9,10 @@ third_party {
type: GIT
value: "git://sourceware.org/git/elfutils.git"
}
- version: "1b1433d5670b75c4bd5c9b598e0b00fba6e82d90"
+ version: "47780c9e4cbd312da6d93c9d70c554d34d83dd05"
last_upgrade_date {
year: 2019
- month: 8
+ month: 10
day: 7
}
}
diff --git a/Makefile.am b/Makefile.am
index 2ff444e7..52f64fc9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -26,9 +26,8 @@ AM_MAKEFLAGS = --no-print-directory
pkginclude_HEADERS = version.h
-# Add doc back when we have some real content.
-SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \
- backends src po tests
+SUBDIRS = config m4 lib libelf libcpu backends libebl libdwelf libdwfl libdw \
+ libasm src po doc tests
EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
COPYING COPYING-GPLV2 COPYING-LGPLV3
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 f1eaf14b..3f5f9bb0 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,9 @@
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am: Replace libcpu_{i386,x86_64,bpf}.a with libcpu.a.
+ Replace libcpu.a with libcpu_pic.a.
+ Combine libebl_CPU.so modules into libebl_backends{,_pic}.a.
+
2019-07-13 Mao Han <han_mao@c-sky.com>
* Makefile.am: Add C-SKY.
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 175468f6..f4052125 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -28,97 +28,60 @@
## the GNU Lesser General Public License along with this program. If
## not, see <http://www.gnu.org/licenses/>.
include $(top_srcdir)/config/eu.am
+if BUILD_STATIC
+AM_CFLAGS += $(fpic_CFLAGS)
+endif
AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
-I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
+noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a
modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
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_csky_pic.a
-noinst_LIBRARIES = $(libebl_pic)
-noinst_DATA = $(libebl_pic:_pic.a=.so)
-
-
-libelf = ../libelf/libelf.so
-libdw = ../libdw/libdw.so
-libeu = ../lib/libeu.a
i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \
i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \
i386_initreg.c i386_unwind.c
-cpu_i386 = ../libcpu/libcpu_i386.a
-libebl_i386_pic_a_SOURCES = $(i386_SRCS)
-am_libebl_i386_pic_a_OBJECTS = $(i386_SRCS:.c=.os)
sh_SRCS = sh_init.c sh_symbol.c sh_corenote.c sh_regs.c sh_retval.c
-libebl_sh_pic_a_SOURCES = $(sh_SRCS)
-am_libebl_sh_pic_a_OBJECTS = $(sh_SRCS:.c=.os)
x86_64_SRCS = x86_64_init.c x86_64_symbol.c x86_64_corenote.c x86_64_cfi.c \
- x86_64_retval.c x86_64_regs.c i386_auxv.c x86_64_syscall.c \
- x86_64_initreg.c x86_64_unwind.c x32_corenote.c
-cpu_x86_64 = ../libcpu/libcpu_x86_64.a
-libebl_x86_64_pic_a_SOURCES = $(x86_64_SRCS)
-am_libebl_x86_64_pic_a_OBJECTS = $(x86_64_SRCS:.c=.os)
+ x86_64_retval.c x86_64_regs.c x86_64_syscall.c x86_64_initreg.c \
+ x86_64_unwind.c x32_corenote.c
+
ia64_SRCS = ia64_init.c ia64_symbol.c ia64_regs.c ia64_retval.c
-libebl_ia64_pic_a_SOURCES = $(ia64_SRCS)
-am_libebl_ia64_pic_a_OBJECTS = $(ia64_SRCS:.c=.os)
alpha_SRCS = alpha_init.c alpha_symbol.c alpha_retval.c alpha_regs.c \
alpha_corenote.c alpha_auxv.c
-libebl_alpha_pic_a_SOURCES = $(alpha_SRCS)
-am_libebl_alpha_pic_a_OBJECTS = $(alpha_SRCS:.c=.os)
arm_SRCS = arm_init.c arm_symbol.c arm_regs.c arm_corenote.c \
arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c arm_initreg.c
-libebl_arm_pic_a_SOURCES = $(arm_SRCS)
-am_libebl_arm_pic_a_OBJECTS = $(arm_SRCS:.c=.os)
aarch64_SRCS = aarch64_init.c aarch64_regs.c aarch64_symbol.c \
aarch64_corenote.c aarch64_retval.c aarch64_cfi.c \
aarch64_initreg.c aarch64_unwind.c
-libebl_aarch64_pic_a_SOURCES = $(aarch64_SRCS)
-am_libebl_aarch64_pic_a_OBJECTS = $(aarch64_SRCS:.c=.os)
sparc_SRCS = sparc_init.c sparc_symbol.c sparc_regs.c sparc_retval.c \
sparc_corenote.c sparc64_corenote.c sparc_auxv.c sparc_attrs.c \
sparc_cfi.c sparc_initreg.c
-libebl_sparc_pic_a_SOURCES = $(sparc_SRCS)
-am_libebl_sparc_pic_a_OBJECTS = $(sparc_SRCS:.c=.os)
ppc_SRCS = ppc_init.c ppc_symbol.c ppc_retval.c ppc_regs.c \
ppc_corenote.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
ppc_cfi.c ppc_initreg.c
-libebl_ppc_pic_a_SOURCES = $(ppc_SRCS)
-am_libebl_ppc_pic_a_OBJECTS = $(ppc_SRCS:.c=.os)
-ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c \
- ppc64_corenote.c ppc_regs.c ppc_auxv.c ppc_attrs.c ppc_syscall.c \
- ppc_cfi.c ppc_initreg.c ppc64_unwind.c ppc64_resolve_sym.c
-libebl_ppc64_pic_a_SOURCES = $(ppc64_SRCS)
-am_libebl_ppc64_pic_a_OBJECTS = $(ppc64_SRCS:.c=.os)
+ppc64_SRCS = ppc64_init.c ppc64_symbol.c ppc64_retval.c ppc64_corenote.c \
+ ppc64_unwind.c ppc64_resolve_sym.c
s390_SRCS = s390_init.c s390_symbol.c s390_regs.c s390_retval.c \
s390_corenote.c s390x_corenote.c s390_cfi.c s390_initreg.c \
s390_unwind.c
-libebl_s390_pic_a_SOURCES = $(s390_SRCS)
-am_libebl_s390_pic_a_OBJECTS = $(s390_SRCS:.c=.os)
tilegx_SRCS = tilegx_init.c tilegx_symbol.c tilegx_regs.c \
tilegx_retval.c tilegx_corenote.c
-libebl_tilegx_pic_a_SOURCES = $(tilegx_SRCS)
-am_libebl_tilegx_pic_a_OBJECTS = $(tilegx_SRCS:.c=.os)
m68k_SRCS = m68k_init.c m68k_symbol.c m68k_regs.c \
m68k_retval.c m68k_corenote.c m68k_cfi.c m68k_initreg.c
-libebl_m68k_pic_a_SOURCES = $(m68k_SRCS)
-am_libebl_m68k_pic_a_OBJECTS = $(m68k_SRCS:.c=.os)
# m68k prstatus core notes are described by a packed structure
# which has not naturally aligned fields. Since we don't access
@@ -128,52 +91,23 @@ am_libebl_m68k_pic_a_OBJECTS = $(m68k_SRCS:.c=.os)
m68k_corenote_no_Wpacked_not_aligned = yes
bpf_SRCS = bpf_init.c bpf_regs.c bpf_symbol.c
-cpu_bpf = ../libcpu/libcpu_bpf.a
-libebl_bpf_pic_a_SOURCES = $(bpf_SRCS)
-am_libebl_bpf_pic_a_OBJECTS = $(bpf_SRCS:.c=.os)
riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \
riscv_initreg.c riscv_corenote.c riscv64_corenote.c riscv_retval.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)
- $(AM_V_at)echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \
- > $(@:.so=.map)
- $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $(@:.map=.so) \
- -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
- -Wl,--version-script,$(@:.so=.map),--no-undefined \
- -Wl,--as-needed $(libelf) $(libdw) $(libeu)
- @$(textrel_check)
-
-libebl_i386.so: $(cpu_i386)
-libebl_x86_64.so: $(cpu_x86_64)
-libebl_bpf.so: $(cpu_bpf)
-
-install: install-am install-ebl-modules
-install-ebl-modules:
- $(mkinstalldirs) $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)
- for m in $(modules); do \
- $(INSTALL_PROGRAM) libebl_$${m}.so $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)/libebl_$${m}-$(PACKAGE_VERSION).so; \
- ln -fs libebl_$${m}-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)/libebl_$${m}.so; \
- done
-
-uninstall: uninstall-am
- for m in $(modules); do \
- rm -f $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)/libebl_$${m}-$(PACKAGE_VERSION).so; \
- rm -f $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)/libebl_$${m}.so; \
- done
- rmdir --ignore-fail-on-non-empty $(DESTDIR)$(libdir)/$(LIBEBL_SUBDIR)
+
+libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \
+ $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \
+ $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \
+ $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \
+ $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS)
+
+libebl_backends_pic_a_SOURCES =
+am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os)
noinst_HEADERS = libebl_CPU.h common-reloc.c linux-core-note.c x86_corenote.c
-EXTRA_DIST = $(foreach m,$(modules),$($(m)_SRCS)) $(modules:=_reloc.def)
+EXTRA_DIST = $(modules:=_reloc.def)
-CLEANFILES += $(foreach m,$(modules),\
- libebl_$(m).map libebl_$(m).so \
- $(am_libebl_$(m)_pic_a_OBJECTS))
+MOSTLYCLEANFILES = $(am_libebl_backends_pic_a_OBJECTS)
diff --git a/backends/riscv_init.c b/backends/riscv_init.c
index 9aaec9ce..9be5c6f2 100644
--- a/backends/riscv_init.c
+++ b/backends/riscv_init.c
@@ -58,6 +58,7 @@ riscv_init (Elf *elf,
HOOK (eh, reloc_simple_type);
HOOK (eh, register_info);
HOOK (eh, abi_cfi);
+ HOOK (eh, disasm);
/* gcc/config/ #define DWARF_FRAME_REGISTERS. */
eh->frame_nregs = 66;
HOOK (eh, check_special_symbol);
diff --git a/config/ChangeLog b/config/ChangeLog
index 9b1cce4e..b641d0d5 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,27 @@
+2019-08-29 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in (%description devel): Remove libebl text.
+ (%install): Don't touch backend lib.*.so* files.
+ (%files): Remove backends dir and so files.
+ (%files devel): Remove libebl.h and libebl.a
+
+2019-08-28 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in (License): Add GFDL.
+ (%install): Correct sub-shell syntax, use (), not {}.
+ (%files): Add man1/eu-*.1*.
+ Add eu-stack. Add COPYING-GFDL.
+ (%files libelf-devel): Add man3/elf_*.3*.
+
+2019-08-14 Dmitry V. Levin <ldv@altlinux.org>
+
+ * elfutils.spec.in (%files): Add %{_bindir}/eu-elfclassify.
+
+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.
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..6771d13b 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -4,7 +4,7 @@ Name: elfutils
Version: @PACKAGE_VERSION@
Release: 1
URL: http://elfutils.org/
-License: GPLv3+ and (GPLv2+ or LGPLv3+)
+License: GPLv3+ and (GPLv2+ or LGPLv3+) and GFDL
Group: Development/Tools
Source: ftp://sourceware.org/pub/elfutils/%{version}/elfutils-%{version}.tar.bz2
Obsoletes: libelf libelf-devel
@@ -45,15 +45,14 @@ and machine-specific ELF handling and process introspection.
%package devel
Summary: Development libraries to handle compiled objects.
Group: Development/Tools
-License: GPLv2+ or LGPLv3+
+License: (GPLv2+ or LGPLv3+) and GFDL
Requires: elfutils = %{version}-%{release}
Requires: elfutils-libelf-devel = %{version}-%{release}
%description devel
The elfutils-devel package contains the libraries to create
-applications for handling compiled objects. libebl provides some
-higher-level ELF access functionality. libdw provides access to
-the DWARF debugging information. libasm provides a programmable
+applications for handling compiled objects. libdw provides access
+to the DWARF debugging information. libasm provides a programmable
assembler interface.
%package devel-static
@@ -131,14 +130,13 @@ mkdir -p ${RPM_BUILD_ROOT}%{_prefix}
%makeinstall
chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/lib*.so*
-chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so*
# XXX Nuke unpackaged files
-{ cd ${RPM_BUILD_ROOT}
+( cd ${RPM_BUILD_ROOT}
rm -f .%{_includedir}/elfutils/libasm.h
rm -f .%{_libdir}/libasm.so
rm -f .%{_libdir}/libasm.a
-}
+)
install -Dm0644 config/10-default-yama-scope.conf ${RPM_BUILD_ROOT}%{_sysctldir}/10-default-yama-scope.conf
@@ -161,14 +159,17 @@ rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(-,root,root)
-%doc COPYING COPYING-GPLV2 COPYING-LGPLV3 README TODO CONTRIBUTING
+%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
+%doc README TODO CONTRIBUTING
%{_bindir}/eu-elflint
%{_bindir}/eu-nm
%{_bindir}/eu-readelf
%{_bindir}/eu-size
+%{_bindir}/eu-stack
%{_bindir}/eu-strip
%{_bindir}/eu-findtextrel
%{_bindir}/eu-addr2line
+%{_bindir}/eu-elfclassify
%{_bindir}/eu-elfcmp
%{_bindir}/eu-ranlib
%{_bindir}/eu-strings
@@ -181,8 +182,7 @@ rm -rf ${RPM_BUILD_ROOT}
%{_libdir}/libdw-%{version}.so
%{_libdir}/libasm.so.*
%{_libdir}/libdw.so.*
-%dir %{_libdir}/elfutils
-%{_libdir}/elfutils/lib*.so
+%{_mandir}/man1/eu-*.1*
%files devel
%defattr(-,root,root)
@@ -191,12 +191,10 @@ rm -rf ${RPM_BUILD_ROOT}
%{_includedir}/elfutils/elf-knowledge.h
%{_includedir}/elfutils/known-dwarf.h
#%{_includedir}/elfutils/libasm.h
-%{_includedir}/elfutils/libebl.h
%{_includedir}/elfutils/libdw.h
%{_includedir}/elfutils/libdwfl.h
%{_includedir}/elfutils/libdwelf.h
%{_includedir}/elfutils/version.h
-%{_libdir}/libebl.a
#%{_libdir}/libasm.so
%{_libdir}/libdw.so
%{_libdir}/pkgconfig/libdw.pc
@@ -219,6 +217,7 @@ rm -rf ${RPM_BUILD_ROOT}
%{_includedir}/elfutils/version.h
%{_libdir}/libelf.so
%{_libdir}/pkgconfig/libelf.pc
+%{_mandir}/man3/elf_*.3*
%files libelf-devel-static
%{_libdir}/libelf.a
@@ -227,6 +226,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/configure.ac b/configure.ac
index b4e012de..d380d016 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],
@@ -336,15 +336,6 @@ AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]),
[tests_use_rpath=$enableval], [tests_use_rpath=no])
AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes)
-LIBEBL_SUBDIR="$PACKAGE"
-AC_ARG_ENABLE([libebl-subdir],
-AS_HELP_STRING([--enable-libebl-subdir=DIR],
-[install libebl_CPU modules in $(libdir)/DIR]), [dnl
-LIBEBL_SUBDIR="$enable_libebl_subdir"])
-AC_SUBST([LIBEBL_SUBDIR])
-AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR")
-AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.])
-
dnl zlib is mandatory.
save_LIBS="$LIBS"
LIBS=
@@ -497,8 +488,7 @@ AC_SUBST([argp_LDADD])
dnl The directories with content.
dnl Documentation.
-dnl Commented out for now.
-dnl AC_CONFIG_FILES([doc/Makefile])
+AC_CONFIG_FILES([doc/Makefile])
dnl Support library.
AC_CONFIG_FILES([lib/Makefile])
@@ -585,7 +575,7 @@ esac
eu_version=$(( (eu_version + 999) / 1000 ))
dnl Unique ID for this build.
-MODVERSION="Build for ${LIBEBL_SUBDIR} ${eu_version} ${ac_cv_build}"
+MODVERSION="Build for ${eu_version} ${ac_cv_build}"
AC_SUBST([MODVERSION])
AC_DEFINE_UNQUOTED(MODVERSION, "$MODVERSION")
AH_TEMPLATE([MODVERSION], [Identifier for modules in the build.])
@@ -650,7 +640,6 @@ AC_MSG_NOTICE([
Program prefix ("eu-" recommended) : ${program_prefix}
Source code location : ${srcdir}
Maintainer mode : ${enable_maintainer_mode}
- libebl modules subdirectory : ${LIBEBL_SUBDIR}
build arch : ${ac_cv_build}
RECOMMENDED FEATURES (should all be yes)
diff --git a/doc/COPYING-GFDL b/doc/COPYING-GFDL
new file mode 100644
index 00000000..98310abe
--- /dev/null
+++ b/doc/COPYING-GFDL
@@ -0,0 +1,455 @@
+This license applies to the eu-readelf.1 man page which was forked
+from the binutils readelf version of the man page. The rest of the
+documentation is provided under the license found in the top level
+directory.
+
+ GNU Free Documentation License
+ Version 1.3, 3 November 2008
+
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as "you". You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+The "publisher" means any person or entity that distributes copies of
+the Document to the public.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no
+other conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to
+give them a chance to provide you with an updated version of the
+Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled "History" in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the "History" section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+ or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other
+documents released under this License, and replace the individual
+copies of this License in the various documents with a single copy
+that is included in the collection, provided that you follow the rules
+of this License for verbatim copying of each of the documents in all
+other respects.
+
+You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense, or distribute it is void, and
+will automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions of the
+GNU Free Documentation License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in
+detail to address new problems or concerns. See
+https://www.gnu.org/licenses/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation. If the Document
+specifies that a proxy can decide which future versions of this
+License can be used, that proxy's public statement of acceptance of a
+version permanently authorizes you to choose that version for the
+Document.
+
+11. RELICENSING
+
+"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works. A
+public wiki that anybody can edit is an example of such a server. A
+"Massive Multiauthor Collaboration" (or "MMC") contained in the site
+means any set of copyrightable works thus published on the MMC site.
+
+"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+
+"Incorporate" means to publish or republish a Document, in whole or in
+part, as part of another Document.
+
+An MMC is "eligible for relicensing" if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole or
+in part into the MMC, (1) had no cover texts or invariant sections, and
+(2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+ Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 380a0cd7..00a61ac3 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,56 @@
+2019-09-02 Mark Wielaard <mark@klomp.org>
+
+ * readelf.1 (symbols): Add optional section name.
+ (dyn-sym): Document new option.
+
+2019-08-28 Mark Wielaard <mark@klomp.org>
+
+ * COPYING: Rename to...
+ * COPYING-GFDL: ... this.
+
+2019-08-23 Ben Woodard <woodard@redhat.com>
+
+ * Updated the eu-readelf man page to make it match the options
+ that eu-readelf actually supports.
+
+2019-08-22 Ben Woodard <woodard@redhat.com>S
+
+ * Move the .1 man pages to the correct place.
+
+2019-08-21 Ben Woodard <woodard@redhat.com>
+
+ * Updated Changelog
+ * Added README
+
+2019-08-20 Ben Woodard <woodard@redhat.com>
+
+ * Added eu-elfclassify.1 man page based upon --help
+ * Forked binutils readelf page to make eu-readelf.1 man page
+ * Modified eu-readelf.1 to add -n:: option.
+ * Disabled sgml file building per mjw.
+ * Added man pages to Makefile.am
+
+2019-06-20 Ben Woodard <woodard@redhat.com>
+
+ * Added the beginnings of some man pages
+
+2019-08-21 Ben Woodard <woodard@redhat.com>
+
+ * Updated Changelog
+ * Added README
+
+2019-08-20 Ben Woodard <woodard@redhat.com>
+
+ * Added eu-elfclassify.1 man page based upon --help
+ * Forked binutils readelf page to make eu-readelf.1 man page
+ * Modified eu-readelf.1 to add -n:: option.
+ * Disabled sgml file building per mjw.
+ * Added man pages to Makefile.am
+
+2019-06-20 Ben Woodard <woodard@redhat.com>
+
+ * Added the beginnings of some man pages
+
2005-04-29 Ulrich Drepper <drepper@redhat.com>
* elfutils.sgml: Some typo fixes and a few extensions.
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 44f0c11a..d6f3eca8 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -16,17 +16,6 @@
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
-EXTRA_DIST = elfutils.sgml
-
-CLEANFILES = elfutils.dvi
-
-# We need only a few special rules to generate the various output formats
-# from the SGML sources.
-.PHONY: dvi pdf html
-pdf: $(srcdir)elfutils.pdf
-dvi: $(srcdir)elfutils.dvi
-
-$(srcdir)%.dvi: %.sgml
- db2dvi $^
-$(srcdir)%.pdf: %.sgml
- db2pdf $^
+EXTRA_DIST = COPYING-GFDL README
+dist_man1_MANS=readelf.1 elfclassify.1
+notrans_dist_man3_MANS=elf_update.3 elf_getdata.3 elf_clone.3 elf_begin.3
diff --git a/doc/README b/doc/README
new file mode 100644
index 00000000..67f61fac
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,20 @@
+The elfutils documentation is very much a work in
+progress. Contributions are welcome.
+Please reports bugs at https://sourceware.org/bugzilla/
+Please send additions and patches to: elfutils-devel@sourceware.org
+
+The elfutils utilities are a new implementation of many of the
+utilities found in binutils and consequently, the documentation for
+most of the tools has been the the man pages for binutils. For example
+you could refer to readelf's man page for instructions on
+eu-readelf. This has been fine up until this point but as tools gain
+new capabilities, they will need to have their own individual man
+page. Forking the man pages from binutils is acceptable and the
+current plan of action.
+
+New utilities that do not have an analog in binutils can have their
+initial man pages generated using a tool like help2man.
+
+The C language interfaces for libelf, libdw, and libdwfl are in
+particular need of documentation. The aspirational goal is write these
+in sphinx. \ No newline at end of file
diff --git a/doc/elf_begin.3 b/doc/elf_begin.3
new file mode 100644
index 00000000..6a1d0c27
--- /dev/null
+++ b/doc/elf_begin.3
@@ -0,0 +1,37 @@
+.\" Modified Thu Sep 5 2017 by Ben Woodard <woodard@redhat.com>
+.\"
+.TH ELF_BEGIN 3 2017-09-05 "Libelf" "Libelf Programmer's Manual"
+.SH NAME
+elf_begin \- Return descriptor for ELF file.
+.nf
+.SH SYNOPSIS
+.B #include <libelf.h>
+.sp
+.BI "Elf *elf_begin (int " filedes ", Elf_Cmd " cmd ", Elf *" ref ");"
+.BI "Elf *elf_clone (int " filedes ", Elf_Cmd " cmd ");"
+.BI "int elf_end (Elf *" elf ");"
+.fi
+.SH DESCRIPTION
+The
+.BR elf_begin ()
+.SH RETURN VALUE
+.SH ERRORS
+elf_begin ELF_E_NO_VERSION ELF_E_INVALID_FILE ELF_E_INVALID_CMD ELF_E_NOMEM
+elf_clone ELF_E_NOMEM
+elf_end
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw29 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR elf_begin (),
+.BR elf_clone (),
+.BR elf_end ()
+T} Thread safety MT-Safe
+.TE
+
+.SH SEE ALSO
diff --git a/doc/elf_clone.3 b/doc/elf_clone.3
new file mode 100644
index 00000000..38ec9217
--- /dev/null
+++ b/doc/elf_clone.3
@@ -0,0 +1,14 @@
+.\" Modified Thu Sep 5 2017 by Ben Woodard <woodard@redhat.com>
+.\"
+.TH ELF_CLONE 3 2017-09-05 "Libelf" "Libelf Programmer's Manual"
+.SH NAME
+elf_clone \- Create a clone of an existing ELF descriptor.
+.nf
+.SH SYNOPSIS
+.B #include <libelf.h>
+.sp
+.BI "Elf *elf_clone (int " filedes ", Elf_Cmd " cmd ");"
+.fi
+.SH DESCRIPTION
+The
+.BR elf_clone ()
diff --git a/doc/elf_getdata.3 b/doc/elf_getdata.3
new file mode 100644
index 00000000..44d9304e
--- /dev/null
+++ b/doc/elf_getdata.3
@@ -0,0 +1,28 @@
+.\" Modified Thu Aug 17 2017 by Ben Woodard <woodard@redhat.com>
+.\"
+.TH ELF_GETDATA 3 2017-08-17 "Libelf" "Libelf Programmer's Manual"
+.SH NAME
+elf_getdata \- Get washed data of section
+.nf
+.SH SYNOPSIS
+.B #include <libelf.h>
+.sp
+.BI "Elf_Data * elf_getdata (Elf_Scn *" scn ", Elf_Data *" data ");"
+.fi
+.SH DESCRIPTION
+The
+.BR elf_getdata ()
+function allows the user to retrieve the data buffers of the section
+.I scn
+ . There can be more than one buffer if the user explicitly added them.
+When a file is read the libelf library creates exactly one data buffer.
+
+The first buffer in the list can be obtained by passing a null pointer in the
+parameter data. To get the next data buffer the previously returned value must
+be passed in the data parameter. If there are no more buffer left in the list a
+null pointer is returned.
+
+If the data parameter is not a null pointer it must be a descriptor for a
+buffer associated with the section scn . If this is not the case a null pointer
+is returned. To facilitate error handling elf_getdata also returns a null
+pointer if the scn parameter is a null pointer.
diff --git a/doc/elf_update.3 b/doc/elf_update.3
new file mode 100644
index 00000000..d0a7ab10
--- /dev/null
+++ b/doc/elf_update.3
@@ -0,0 +1,14 @@
+.\" Modified Thu Sep 5 2017 by Ben Woodard <woodard@redhat.com>
+.\"
+.TH ELF_UPDATE 3 2017-09-05 "Libelf" "Libelf Programmer's Manual"
+.SH NAME
+elf_update \- update an ELF descriptor
+.nf
+.SH SYNOPSIS
+.B #include <libelf.h>
+.sp
+.BI "off_t elf_update (Elf *" elf ", Elf_Cmd " cmd ");"
+.fi
+.SH DESCRIPTION
+The
+.BR elf_update ()
diff --git a/doc/elfclassify.1 b/doc/elfclassify.1
new file mode 100644
index 00000000..cbfdae48
--- /dev/null
+++ b/doc/elfclassify.1
@@ -0,0 +1,197 @@
+.\" Copyright 2019 Red Hat Inc.
+.\" Tue 2019-Aug 20 Ben Woodard <woodard@redhat.com>
+.\" Florian Wiemer <fwiemer@redhat.com>
+.\" Mark Wielaard <mjw@redhat.com>
+.\" Contact elfutils-devel@sourceware.org to correct errors or typos.
+.TH EU-ELFCLASSIFY 1 "2019-Aug-20" "elfutils"
+.SH "NAME"
+eu-elfclassify \- Determine the type of an ELF file.
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+eu-elfclassify [\fB\-\-core\fR]
+ [\fB\-\-debug-only\fR]
+ [\fB\-\-elf\fR]
+ [\fB\-\-elf\-archive\fR]
+ [\fB\-\-elf\-file\fR]
+ [\fB\-\-executable\fR]
+ [\fB\-\-library\fR]
+ [\fB\-\-linux\-kernel\-module\fR]
+ [\fB\-\-loadable\fR]
+ [\fB\-\-program\fR]
+ [\fB\-\-shared\fR]
+ [\fB\-\-unstripped\fR]
+ [\fB\-f\fR|\fB \-\-file\fR]
+ [\fB\-\-no\-stdin\fR]
+ [\fB\-\-stdin\fR]
+ [\fB\-\-stdin0\fR]
+ [\fB\-z\fR|\fB \-\-compressed\fR]
+ [\fB\-\-matching\fR]
+ [\fB\-\-no\-print\fR]
+ [\fB\-\-not\-matching\fR]
+ [\fB\-\-print\fR]
+ [\fB\-\-print0\fR]
+ [\fB\-q\fR|\fB \-\-quiet\fR]
+ [\fB\-v\fR|\fB \-\-verbose\fR]
+ [\fB\-?\fR|\fB \-\-help\fR]
+ [\fB\-\-usage\fR]
+ [\fB\-V\fR|\fB \-\-version\fR]
+ \fIelffile\fR...
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBeu-elfclassify\fR identifies the primary purpose of a particular kind of
+ \s-1ELF\s0 file or files
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+The long and short forms of options, shown here as alternatives, are
+equivalent. All of the classification options must apply at the same time to a
+particular file. Classification options can be negated using a
+\fB\-\-not\-\fR prefix.
+.SS "Classification Options"
+.IX Subsection "Classification Options"
+.IP "\fB\-\-core\fR" 4
+.IX Item "--core"
+.PD
+File is an ELF core dump file.
+.IP "\FB\-\-debug\-only\fR" 4
+.IX Item "--debug-only"
+.PD
+File is a debug only ELF file (separate .debug, .dwo or dwz multi-file).
+.IP "\fB\-\-elf\fR" 4
+.IX Item "--elf"
+.PD
+File looks like an ELF object or archive/static library (default).
+.IP "\fB\-\-elf\-archive\fR" 4
+.IX Item "--elf-archive"
+.PD
+File is an ELF archive or static library.
+.IP "\fB\-\-elf\-file\fR" 4
+.IX Item "--elf-file"
+.PD
+File is an regular ELF object (not an archive/static library).
+.IP "\fB\-\-executable\fR" 4
+.IX Item "--executable"
+.PD
+File is (primarily) an ELF program executable (not primarily a DS.O)
+.IP "\fB\-\-library\fR" 4
+.IX Item "--library"
+.PD
+File is an ELF shared object (DSO) (might also be an executable).
+.IP "\fB\-\-linux\-kernel\-module\fR" 4
+.IX Item "--linux-kernel-module"
+.PD
+File is a linux kernel module.
+.IP "\fB\-\-loadable\fR" 4
+.IX Item "--loadable"
+.PD
+File is a loadable ELF object (program or shared object).
+.IP "\fB\--program\fR" 4
+.IX Item "--program"
+.PD
+File is an ELF program executable (might also be a DSO).
+.IP "\fB\-\-shared\fR" 4
+.IX Item "--shared"
+.PD
+File is (primarily) an ELF shared object (DSO) (not primarily an executable).
+.IP "\fB\-\-unstripped\fR" 4
+.IX Item "--unstripped"
+.PD
+File is an ELF file with symbol table or .debug_* sections and can be stripped
+further.
+.SS "Input flags"
+.IX Subsection "Input flags"
+.IP "\fB\-f\fR" 4
+.IX Item "-f"
+.PD 0
+.IP "\fB\-\-file\fR" 4
+.IX Item "--file"
+.PD
+Only classify regular (not symlink nor special device) files.
+.IP "\fB\-\-no\-stdin\fR" 4
+.IX Item "--no-stdin"
+.PD
+Do not read files from standard input (default).
+.IP "\fB\-\-stdin\fR" 4
+.IX Item "--stdin"
+.PD
+Also read file names to process from standard input, separated by newlines.
+.IP "\fB\-\-stdin0\fR" 4
+.IX Item "--stdin0"
+.PD
+Also read file names to process from standard input, separated by ASCII NUL
+bytes.
+.IP "\fB\-z\fR" 4
+.IX Item "-z"
+.PD 0
+.IP "\fB\-\-compressed\fR" 4
+.IX Item "--compressed"
+.PD
+Try to open compressed files or embedded (kernel) ELF images.
+.SS "Output flags"
+.IX Subsection "Output flags"
+.IP "\fB\-\-matching\fR" 4
+.IX Item "--matching"
+.PD
+If printing file names, print matching files (default).
+.IP "\fB\-\-no\-print\fR" 4
+.IX Item "--no-print"
+.PD
+Do not output file names.
+.IP "\fB\-\-not\-matching\fR" 4
+.IX Item "--not-matching"
+.PD
+If printing file names, print files that do not match.
+.IP "\fB\-\-print\fR" 4
+.IX Item "--print"
+.PD
+Output names of files, separated by newline.
+.IP "\fB\-\-print0\fR" 4
+.IX Item "--print0"
+.PD
+Output names of files, separated by ASCII NUL.
+.SS " Additional flags"
+.IX Subsection " Additional flags"
+.IP "\fB\-q\fR" 4
+.IX Item "-q,"
+.PD
+.IP "\fB\-\-quiet\fR" 4
+.IX Item "--quiet"
+.PD
+Suppress some error output (counterpart to --verbose).
+.IP "\fB\-v\fR" 4
+.IX Item "-v"
+.PD
+.IP "\fB\-\-verbose\fR" 4
+.IX Item "--verbose"
+.PD
+Output additional information (can be specified multiple times).
+.IP "\fB\-?\fR" 4
+.IX Item "-?"
+.PD
+.IP "\fB\-\-help\fR" 4
+.IX Item "--help"
+.PD
+Give this help list.
+.IP "\fB\-\-usage\fR" 4
+.IX Item "--usage"
+.PD
+Give a short usage message.
+.IP "\fB\-V\fR" 4
+.IX Item "-V"
+.PD
+.IP "\fB\-\-version\fR" 4
+.IX Item "--version"
+.PD
+Print program version.
+
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Written by Florian Wiemer.
+.SH "REPORTING BUGS"
+.IX Header "REPORTING BUGS"
+Please reports bugs at https://sourceware.org/bugzilla/
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright © 2019 Red Hat Inc. License GPLv3+: GNU GPL version 3 or
+later <https://gnu.org/licenses/gpl.html>. This is free software: you
+are free to change and redistribute it. There is NO WARRANTY, to the
+extent permitted by law.
diff --git a/doc/readelf.1 b/doc/readelf.1
new file mode 100644
index 00000000..33263819
--- /dev/null
+++ b/doc/readelf.1
@@ -0,0 +1,511 @@
+.\" Modified from readelf.1 man page
+.\" Tue 2019-Aug 20 by Ben Woodard <woodard@redhat.com>
+.\" Contact elfutils-devel@sourceware.org to correct errors or typos.
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1q
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.if !\nF .nr F 0
+.if \nF>0 \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "EU-READELF 1"
+.TH EU-READELF 1 "2019-Aug-20" "elfutils"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+eu-readelf \- Displays information about ELF files.
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+eu-readelf [\fB\-a\fR|\fB\-\-all\fR]
+ [\fB\-h\fR|\fB\-\-file\-header\fR]
+ [\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
+ [\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
+ [\fB\-g\fR|\fB\-\-section\-groups\fR]
+ [\fB\-e\fR|\fB\-\-exception\fR]
+ [\fB\-s\fR|\fB\-\-symbols\fR] [section name] ]
+ [\fB\-\-dyn-syms\fR]
+ [\fB\-n\fR|\fB\-\-notes\fR [section name] ]
+ [\fB\-r\fR|\fB\-\-relocs\fR]
+ [\fB\-d\fR|\fB\-\-dynamic\fR]
+ [\fB\-V\fR|\fB\-\-version\-info\fR]
+ [\fB\-A\fR|\fB\-\-arch\-specific\fR]
+ [\fB\-x\fR <number or name>|\fB\-\-hex\-dump=\fR<number or name>]
+ [\fB\-p\fR <number or name>|\fB\-\-string\-dump=\fR<number or name>]
+ [\fB\-z\fR|\fB\-\-decompress\fR]
+ [\fB\-c\fR|\fB\-\-archive\-index\fR]
+ [\fB\-\-dwarf\-skeleton\fR <file> ]
+ [\fB\-\-elf\-section\fR [section] ]
+ [\fB\-w\fR|
+ \fB\-\-debug\-dump\fR[=line,=decodedline,=info,=info+,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=ranges,=gdb_index,=addr]]
+ [\fB\-I\fR|\fB\-\-histogram\fR]
+ [\fB\-v\fR|\fB\-\-version\fR]
+ [\fB\-W\fR|\fB\-\-wide\fR]
+ [\fB\-H\fR|\fB\-\-help\fR]
+ \fIelffile\fR...
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBeu-readelf\fR displays information about one or more \s-1ELF\s0 format object
+files. The options control what particular information to display.
+.PP
+\&\fIelffile\fR... are the object files to be examined. 32\-bit and
+64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
+.PP
+This program performs a similar function to \fBobjdump\fR but it
+goes into more detail and it exists independently of the \s-1BFD\s0
+library, so if there is a bug in \s-1BFD\s0 then readelf will not be
+affected.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+The long and short forms of options, shown here as alternatives, are
+equivalent. At least one option in addition to \fB\-v\fR or \fB\-H\fR must be
+given.
+.SS "ELF Input Selection"
+.IX Subsection "ELF Input Selection"
+.IP "\fB\-\-dwarf\-skeleton <file>\fR" 4
+.IX Item "--dwarf-skeleton <file>"
+.PD
+Used with -w to find the skeleton Compile Units in FILE associated
+with the Split Compile units in a .dwo input file.
+.IP "\fB\-\-elf\-section [section]\fR" 4
+.IX Item "--elf-section [section]"
+.PD
+Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data
+.SS "ELF Output Selection"
+.IX Subsection "ELF Output Selection"
+.IP "\fB\-a\fR" 4
+.IX Item "-a"
+.PD 0
+.IP "\fB\-\-all\fR" 4
+.IX Item "--all"
+.PD
+Equivalent to specifying \fB\-\-file\-header\fR,
+\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
+\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR,
+\&\fB\-\-version\-info\fR, \fB\-\-arch\-specific\fR,
+\&\fB\-\-section\-groups\fR and \fB\-\-histogram\fR.
+.Sp
+.IP "\fB\-h\fR" 4
+.IX Item "-h"
+.PD 0
+.IP "\fB\-\-file\-header\fR" 4
+.IX Item "--file-header"
+.PD
+Displays the information contained in the \s-1ELF\s0 header at the start of the
+file.
+.IP "\fB\-l\fR" 4
+.IX Item "-l"
+.PD 0
+.IP "\fB\-\-program\-headers\fR" 4
+.IX Item "--program-headers"
+.IP "\fB\-\-segments\fR" 4
+.IX Item "--segments"
+.PD
+Displays the information contained in the file's segment headers, if it
+has any.
+.IP "\fB\-S\fR" 4
+.IX Item "-S"
+.PD 0
+.IP "\fB\-\-sections\fR" 4
+.IX Item "--sections"
+.IP "\fB\-\-section\-headers\fR" 4
+.IX Item "--section-headers"
+.PD
+Displays the information contained in the file's section headers, if it
+has any.
+.IP "\fB\-g\fR" 4
+.IX Item "-g"
+.PD 0
+.IP "\fB\-\-section\-groups\fR" 4
+.IX Item "--section-groups"
+.PD
+Displays the information contained in the file's section groups, if it
+has any.
+.IP "\fB\-I\fR" 4
+.IX Item "-I"
+.PD 0
+.IP "\fB\-\-histogram\fR" 4
+.IX Item "--histogram"
+.PD
+Display a histogram of bucket list lengths when displaying the contents
+of the symbol tables.
+.IP "\fB\-s\fR" 4
+.IX Item "-s"
+.PD 0
+.IP "\fB\-\-symbols\fR [section name]" 4
+.IX Item "--symbols"
+.PD
+Displays the entries in symbol table section of the file, if it has one.
+If a symbol has version information associated with it then this is
+displayed as well. The version string is displayed as a suffix to the
+symbol name, preceeded by an @ character. For example
+\&\fBfoo@VER_1\fR. If the version is the default version to be used
+when resolving unversioned references to the symbol then it is
+displayed as a suffix preceeded by two @ characters. For example
+\&\fBfoo@@VER_2\fR.
+.IP "\fB\-\-dyn-syms\fR" 4
+.IX Item "--dyn-syms"
+.PD
+Display (only) the dynamic symbol table.
+.IP "\fB\-e\fR" 4
+.IX Item "-e"
+.PD 0
+.IP "\fB\-\-exception\fR" 4
+.IX Item "--exception"
+.PD
+Display sections for exception handling.
+.IP "\fB\-n\fR" 4
+.IX Item "-n [section name]"
+.PD 0
+.IP "\fB\-\-notes [section name]\fR" 4
+.IX Item "--notes"
+.PD
+Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any.
+.IP "\fB\-r\fR" 4
+.IX Item "-r"
+.PD 0
+.IP "\fB\-\-relocs\fR" 4
+.IX Item "--relocs"
+.PD
+Displays the contents of the file's relocation section, if it has one.
+.IP "\fB\-d\fR" 4
+.IX Item "-d"
+.PD 0
+.IP "\fB\-\-dynamic\fR" 4
+.IX Item "--dynamic"
+.PD
+Displays the contents of the file's dynamic section, if it has one.
+.IP "\fB\-V\fR" 4
+.IX Item "-V"
+.PD 0
+.IP "\fB\-\-version\-info\fR" 4
+.IX Item "--version-info"
+.PD
+Displays the contents of the version sections in the file, it they
+exist.
+.IP "\fB\-A\fR" 4
+.IX Item "-A"
+.PD 0
+.IP "\fB\-\-arch\-specific\fR" 4
+.IX Item "--arch-specific"
+.PD
+Displays architecture-specific information in the file, if there
+is any.
+.SS "Additional output selection"
+.IX Subsection "Additional output selection"
+.IP "\fB\-x <name>\fR" 4
+.IX Item "-x <name>"
+.PD 0
+.IP "\fB\-\-hex\-dump=<name>\fR" 4
+.IX Item "--hex-dump=<name>"
+.PD
+Displays the contents of the indicated section name as a hexadecimal bytes.
+.IP "\fB\-w\fR" 4
+.IX Item "-w"
+.PD 0
+.IP "\fB\-\-debug\-dump[=decodedline,=info,=info+,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=ranges,=gdb_index,=addr]\fR" 4
+.IX Item "--debug-dump[=line,=decodedline,=info,=info+,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=ranges,=gdb_index,=addr]"
+.PD
+Displays the contents of the \s-1DWARF\s0 debug sections in the file, if any
+are present. Compressed debug sections are automatically decompressed
+(temporarily) before they are displayed. If one or more of the
+optional letters or words follows the switch then only those type(s)
+of data will be dumped. The letters and words refer to the following
+information:
+.RS 4
+.PD 0
+.ie n .IP """=abbrev""" 4
+.el .IP "\f(CW=abbrev\fR" 4
+.IX Item "=abbrev"
+.PD
+Displays the contents of the \fB.debug_abbrev\fR section.
+.PD 0
+.ie n .IP """=addr""" 4
+.el .IP "\f(CW=addr\fR" 4
+.IX Item "=addr"
+.PD
+Displays the contents of the \fB.debug_addr\fR section.
+.PD 0
+.ie n .IP """=frames""" 4
+.el .IP "\f(CW=frames\fR" 4
+.IX Item "=frames"
+.PD
+Display the raw contents of a \fB.debug_frame\fR section.
+.PD 0
+.ie n .IP """=gdb_index""" 4
+.el .IP "\f(CW=gdb_index\fR" 4
+.IX Item "=gdb_index"
+.PD
+Displays the contents of the \fB.gdb_index\fR and/or
+\&\fB.debug_names\fR sections.
+.PD 0
+.ie n .IP """=info""" 4
+.el .IP "\f(CW=info\fR" 4
+.IX Item "=info"
+.PD
+Displays the contents of the \fB.debug_info\fR section.
+.PD 0
+.ie n .IP """=info+""" 4
+.el .IP "\f(CW=info+\fR" 4
+.IX Item "=info+"
+.PD
+Displays the contents of the \fB.debug_info\fR section, plus any skeleton
+unit will be immediately followed by the corresponding split compile unit
+(from the .dwo file). To show the difference between "regular" CUs and
+split CUs print offsets and references between { and } instead of [ and ].
+.PD 0
+.ie n .IP """=decodedline""" 4
+.el .IP "\f(CW=decodedline\fR" 4
+.IX Item "=decodedline"
+.PD
+Displays the interpreted contents of the \fB.debug_line\fR section.
+.PD 0
+.ie n .IP """=macro""" 4
+.el .IP "\f(CW=macro\fR" 4
+.IX Item "=macro"
+.PD
+Displays the contents of the \fB.debug_macro\fR and/or
+\&\fB.debug_macinfo\fR sections.
+.PD 0
+.ie n .IP """=loc""" 4
+.el .IP "\f(CW=loc\fR" 4
+.IX Item "=loc"
+.PD
+Displays the contents of the \fB.debug_loc\fR and/or
+\&\fB.debug_loclists\fR sections.
+.PD 0
+.ie n .IP """=pubnames""" 4
+.el .IP "\f(CW=pubnames\fR" 4
+.IX Item "=pubnames"
+.PD
+Displays the contents of the \fB.debug_pubnames\fR and/or
+\&\fB.debug_gnu_pubnames\fR sections.
+.PD 0
+.ie n .IP """=aranges""" 4
+.el .IP "\f(CW=aranges\fR" 4
+.IX Item "=aranges"
+.PD
+Displays the contents of the \fB.debug_aranges\fR section.
+.PD 0
+.ie n .IP """=ranges""" 4
+.el .IP "\f(CW=ranges\fR" 4
+.IX Item "=ranges"
+.PD
+Displays the contents of the \fB.debug_ranges\fR and/or
+\&\fB.debug_rnglists\fR sections.
+.PD 0
+.ie n .IP """=str""" 4
+.el .IP "\f(CW=str\fR" 4
+.IX Item "=str"
+.PD
+Displays the contents of the \fB.debug_str\fR, \fB.debug_line_str\fR
+and/or \fB.debug_str_offsets\fR sections.
+.PD 0
+.RS 4
+.Sp
+Note: displaying the contents of \fB.debug_static_funcs\fR,
+\&\fB.debug_static_vars\fR and \fBdebug_weaknames\fR sections is not
+currently supported.
+.RE
+.IP "\fB\-p <number or name>\fR" 4
+.IX Item "-p <number or name>"
+.PD 0
+.IP "\fB\-\-string\-dump=<number or name>\fR" 4
+.IX Item "--string-dump=<number or name>"
+.PD
+Displays the contents of the indicated section as printable strings.
+A number identifies a particular section by index in the section table;
+any other string identifies all sections with that name in the object file.
+.IP "\fB\-c\fR" 4
+.IX Item "-c"
+.PD 0
+.IP "\fB\-\-archive\-index\fR" 4
+.IX Item "--archive-index"
+.PD
+Displays the file symbol index information contained in the header part
+of binary archives. Performs the same function as the \fBt\fR
+command to \fBar\fR, but without using the \s-1BFD\s0 library.
+.SS "Output control"
+.IX Subsection "Output control"
+.IP "\fB\-z\fR" 4
+.IX Item "-z"
+.PD 0
+.IP "\fB\-\-decompress\fR" 4
+.IX Item "--decompress"
+.PD
+Requests that the section(s) being dumped by \fBx\fR, \fBR\fR or
+\&\fBp\fR options are decompressed before being displayed. If the
+section(s) are not compressed then they are displayed as is.
+.IP "\fB\-v\fR" 4
+.IX Item "-v"
+.PD 0
+.IP "\fB\-\-version\fR" 4
+.IX Item "--version"
+.PD
+Display the version number of eu-readelf.
+.IP "\fB\-W\fR" 4
+.IX Item "-W"
+.PD 0
+.IP "\fB\-\-wide\fR" 4
+.IX Item "--wide"
+.PD
+Ignored for compatibility (lines always wide).
+.IP "\fB\-H\fR" 4
+.IX Item "-H"
+.PD 0
+.IP "\fB\-\-help\fR" 4
+.IX Item "--help"
+.PD
+Display the command line options understood by \fBeu-readelf\fR.
+.IP "\fB@\fR\fIfile\fR" 4
+.IX Item "@file"
+Read command-line options from \fIfile\fR. The options read are
+inserted in place of the original @\fIfile\fR option. If \fIfile\fR
+does not exist, or cannot be read, then the option will be treated
+literally, and not removed.
+.Sp
+Options in \fIfile\fR are separated by whitespace. A whitespace
+character may be included in an option by surrounding the entire
+option in either single or double quotes. Any character (including a
+backslash) may be included by prefixing the character to be included
+with a backslash. The \fIfile\fR may itself contain additional
+@\fIfile\fR options; any such options will be processed recursively.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIobjdump\fR\|(1), \fIreadelf\fR\|(1) and the Info entries for
+\fIbinutils\fR.
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright (c) 1991\-2018 Free Software Foundation, Inc.
+
+Copyright (c) 2019 Red Hat Inc.
+.PP
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, with no Front-Cover Texts, and with no
+Back-Cover Texts. A copy of the license is included in the
+section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/lib/color.c b/lib/color.c
index 20b9698a..2cb41eba 100644
--- a/lib/color.c
+++ b/lib/color.c
@@ -72,6 +72,8 @@ char *color_operand = NULL;
char *color_operand1 = "";
char *color_operand2 = "";
char *color_operand3 = "";
+char *color_operand4 = "";
+char *color_operand5 = "";
char *color_label = "";
char *color_undef = "";
char *color_undef_tls = "";
@@ -167,8 +169,10 @@ valid arguments are:\n\
E (m, mnemonic),
E (o, operand),
E (o1, operand1),
- E (o1, operand2),
- E (o1, operand3),
+ E (o2, operand2),
+ E (o3, operand3),
+ E (o4, operand4),
+ E (o5, operand5),
E (l, label),
E (u, undef),
E (ut, undef_tls),
@@ -205,6 +209,10 @@ valid arguments are:\n\
color_operand2 = color_operand;
if (color_operand3[0] == '\0')
color_operand3 = color_operand;
+ if (color_operand4[0] == '\0')
+ color_operand4 = color_operand;
+ if (color_operand5[0] == '\0')
+ color_operand5 = color_operand;
}
}
#if 0
@@ -216,7 +224,7 @@ valid arguments are:\n\
color_mnemonic = xstrdup ("\e[38;5;202;1m");
color_operand1 = xstrdup ("\e[38;5;220m");
color_operand2 = xstrdup ("\e[38;5;48m");
- color_operand3 = xstrdup ("\e[38;5;112m");
+ color_operand = xstrdup ("\e[38;5;112m");
color_label = xstrdup ("\e[38;5;21m");
}
#endif
diff --git a/lib/color.h b/lib/color.h
index 3872eb0a..cb241435 100644
--- a/lib/color.h
+++ b/lib/color.h
@@ -50,6 +50,8 @@ extern char *color_mnemonic;
extern char *color_operand1;
extern char *color_operand2;
extern char *color_operand3;
+extern char *color_operand4;
+extern char *color_operand5;
extern char *color_label;
extern char *color_undef;
extern char *color_undef_tls;
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index 05b830c8..a1abac88 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,3 +1,7 @@
+2019-08-28 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (libasm_so_DEPS): Replace libebl.a with libebl_pic.a.
+
2019-03-06 Mark Wielaard <mark@klomp.org>
* asm_end.c (binary_end): Check return value of gelf_update_ehdr.
diff --git a/libasm/Makefile.am b/libasm/Makefile.am
index 19fef508..b2bff929 100644
--- a/libasm/Makefile.am
+++ b/libasm/Makefile.am
@@ -55,7 +55,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort.c asm_end.c asm_error.c \
libasm_pic_a_SOURCES =
am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
-libasm_so_DEPS = ../lib/libeu.a ../libebl/libebl.a ../libelf/libelf.so ../libdw/libdw.so
+libasm_so_DEPS = ../lib/libeu.a ../libebl/libebl_pic.a ../libelf/libelf.so ../libdw/libdw.so
libasm_so_LDLIBS = $(libasm_so_DEPS)
if USE_LOCKS
libasm_so_LDLIBS += -lpthread
diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog
index adebbef8..e23097bd 100644
--- a/libcpu/ChangeLog
+++ b/libcpu/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-07 Mark Wielaard <mark@klomp.org>
+
+ * riscv_disasm.c (riscv_disasm): Use UINT64_C to make calculation
+ unsigned.
+
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am: Combine libcpu_{i386,x86_64,bpf}.a into libcpu.a.
+ Make libcpu.a non-PIC by default.
+ Add libcpu_pic.a.
+
2018-11-04 Mark Wielaard <mark@klomp.org>
* bpf_disasm.c (bpf_disasm): Recognize BPF_JLT, BPF_JLE, BPF_JSLT
diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am
index 4c8778d1..03c71ea3 100644
--- a/libcpu/Makefile.am
+++ b/libcpu/Makefile.am
@@ -30,31 +30,34 @@
include $(top_srcdir)/config/eu.am
AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
-I$(srcdir)/../libdw -I$(srcdir)/../libasm
-AM_CFLAGS += $(fpic_CFLAGS) -fdollars-in-identifiers
+if BUILD_STATIC
+AM_CFLAGS += $(fpic_CFLAGS)
+endif
+AM_CFLAGS += -fdollars-in-identifiers
LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) -P$(<F:lex.l=)
LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
AM_YFLAGS = -p$(<F:parse.y=)
-noinst_LIBRARIES = libcpu_i386.a libcpu_x86_64.a
+noinst_LIBRARIES = libcpu.a libcpu_pic.a
+
+noinst_HEADERS = i386_dis.h x86_64_dis.h
+
+libcpu_a_SOURCES = i386_disasm.c x86_64_disasm.c bpf_disasm.c riscv_disasm.c
-libcpu_i386_a_SOURCES = i386_disasm.c i386_dis.h
-libcpu_x86_64_a_SOURCES = x86_64_disasm.c x86_64_dis.h
+libcpu_pic_a_SOURCES =
+am_libcpu_pic_a_OBJECTS = $(libcpu_a_SOURCES:.c=.os)
i386_gendis_SOURCES = i386_gendis.c i386_lex.l i386_parse.y
i386_disasm.o: i386.mnemonics $(srcdir)/i386_dis.h
x86_64_disasm.o: x86_64.mnemonics $(srcdir)/x86_64_dis.h
-noinst_LIBRARIES += libcpu_bpf.a
-libcpu_bpf_a_SOURCES = bpf_disasm.c
-libcpu_bpf_a_CFLAGS = $(AM_CFLAGS) -Wno-format-nonliteral
-
%_defs: $(srcdir)/defs/i386
$(AM_V_GEN)m4 -D$* -DDISASSEMBLER $< > $@T
$(AM_V_at)mv -f $@T $@
if MAINTAINER_MODE
-noinst_HEADERS = memory-access.h i386_parse.h i386_data.h
+noinst_HEADERS += memory-access.h i386_parse.h i386_data.h
noinst_PROGRAMS = i386_gendis$(EXEEXT)
@@ -86,7 +89,10 @@ i386_gendis_LDADD = $(libeu) -lm
i386_parse.h: i386_parse.c ;
+bpf_disasm_CFLAGS = -Wno-format-nonliteral
+
EXTRA_DIST = defs/i386
+MOSTLYCLEANFILES = $(am_libcpu_pic_a_OBJECTS)
CLEANFILES += $(foreach P,i386 x86_64,$P_defs $P.mnemonics)
MAINTAINERCLEANFILES = $(foreach P,i386 x86_64, $P_dis.h)
diff --git a/libcpu/i386_disasm.c b/libcpu/i386_disasm.c
index a7e03f95..8a206398 100644
--- a/libcpu/i386_disasm.c
+++ b/libcpu/i386_disasm.c
@@ -1030,7 +1030,7 @@ i386_disasm (Ebl *ebl __attribute__((unused)),
string_end_idx = bufcnt;
}
else
- bufcnt = string_end_idx;
+ start_idx = bufcnt = string_end_idx;
break;
case 'e':
diff --git a/libcpu/riscv_disasm.c b/libcpu/riscv_disasm.c
new file mode 100644
index 00000000..bc0d8f37
--- /dev/null
+++ b/libcpu/riscv_disasm.c
@@ -0,0 +1,1501 @@
+/* Disassembler for RISC-V.
+ Copyright (C) 2019 Red Hat, Inc.
+ This file is part of elfutils.
+ Written by Ulrich Drepper <drepper@redhat.com>, 2019.
+
+ 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 <ctype.h>
+#include <errno.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "../libebl/libeblP.h"
+
+#define MACHINE_ENCODING __LITTLE_ENDIAN
+#include "memory-access.h"
+
+
+#define ADD_CHAR(ch) \
+ do { \
+ if (unlikely (bufcnt == bufsize)) \
+ goto enomem; \
+ buf[bufcnt++] = (ch); \
+ } while (0)
+
+#define ADD_STRING(str) \
+ do { \
+ const char *_str0 = (str); \
+ size_t _len0 = strlen (_str0); \
+ ADD_NSTRING (_str0, _len0); \
+ } while (0)
+
+#define ADD_NSTRING(str, len) \
+ do { \
+ const char *_str = (str); \
+ size_t _len = (len); \
+ if (unlikely (bufcnt + _len > bufsize)) \
+ goto enomem; \
+ memcpy (buf + bufcnt, _str, _len); \
+ bufcnt += _len; \
+ } while (0)
+
+
+static const char *regnames[32] =
+ {
+ "zero", "ra", "sp", "gp", "tp", "t0", "t1", "t2",
+ "s0", "s1", "a0", "a1", "a2", "a3", "a4", "a5",
+ "a6", "a7", "s2", "s3", "s4", "s5", "s6", "s7",
+ "s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6"
+ };
+#define REG(nr) ((char *) regnames[nr])
+#define REGP(nr) REG (8 + (nr))
+
+
+static const char *fregnames[32] =
+ {
+ "ft0", "ft1", "ft2", "ft3", "ft4", "ft5", "ft6", "ft7",
+ "fs0", "fs1", "fa0", "fa1", "fa2", "fa3", "fa4", "fa5",
+ "fa6", "fa7", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7",
+ "fs8", "fs9", "fs10", "fs11", "ft8", "ft9", "ft10", "ft11"
+ };
+#define FREG(nr) ((char *) fregnames[nr])
+#define FREGP(nr) FREG (8 + (nr))
+
+
+struct known_csrs
+ {
+ uint16_t nr;
+ const char *name;
+ };
+
+static int compare_csr (const void *a, const void *b)
+{
+ const struct known_csrs *ka = (const struct known_csrs *) a;
+ const struct known_csrs *kb = (const struct known_csrs *) b;
+ if (ka->nr < kb->nr)
+ return -1;
+ return ka->nr == kb->nr ? 0 : 1;
+}
+
+
+int
+riscv_disasm (Ebl *ebl,
+ const uint8_t **startp, const uint8_t *end, GElf_Addr addr,
+ const char *fmt, DisasmOutputCB_t outcb,
+ DisasmGetSymCB_t symcb __attribute__((unused)),
+ void *outcbarg, void *symcbarg __attribute__((unused)))
+{
+ const char *const save_fmt = fmt;
+
+#define BUFSIZE 512
+ char initbuf[BUFSIZE];
+ size_t bufcnt;
+ size_t bufsize = BUFSIZE;
+ char *buf = initbuf;
+
+ int retval = 0;
+ while (1)
+ {
+ const uint8_t *data = *startp;
+ assert (data <= end);
+ if (data + 2 > end)
+ {
+ if (data != end)
+ retval = -1;
+ break;
+ }
+ uint16_t first = read_2ubyte_unaligned (data);
+
+ // Determine length.
+ size_t length;
+ if ((first & 0x3) != 0x3)
+ length = 2;
+ else if ((first & 0x1f) != 0x1f)
+ length = 4;
+ else if ((first & 0x3f) != 0x3f)
+ length = 6;
+ else if ((first & 0x7f) != 0x7f)
+ length = 8;
+ else
+ {
+ uint16_t nnn = (first >> 12) & 0x7;
+ if (nnn != 0x7)
+ length = 10 + 2 * nnn;
+ else
+ // This is invalid as of the RISC-V spec on 2019-06-21.
+ // The instruction is at least 192 bits in size so use
+ // this minimum size.
+ length = 24;
+ }
+ if (data + length > end)
+ {
+ retval = -1;
+ break;
+ }
+
+ char *mne = NULL;
+ char mnebuf[32];
+ char *op[5] = { NULL, NULL, NULL, NULL, NULL };
+ char immbuf[32];
+ size_t len;
+ char *strp = NULL;
+ char addrbuf[32];
+ bufcnt = 0;
+ int64_t opaddr;
+ if (length == 2)
+ {
+ size_t idx = (first >> 13) * 3 + (first & 0x3);
+ switch (idx)
+ {
+ uint16_t rd;
+ uint16_t rs1;
+ uint16_t rs2;
+
+ case 0:
+ if ((first & 0x1fe0) != 0)
+ {
+ mne = "addi";
+ op[0] = REGP ((first & 0x1c) >> 2);
+ op[1] = REG (2);
+ opaddr = (((first >> 1) & 0x3c0)
+ | ((first >> 7) & 0x30)
+ | ((first >> 2) & 0x8)
+ | ((first >> 4) & 0x4));
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRIu64, opaddr);
+ op[2] = addrbuf;
+ }
+ else if (first == 0)
+ mne = "unimp";
+ break;
+ case 1:
+ rs1 = (first >> 7) & 0x1f;
+ int16_t nzimm = ((0 - ((first >> 7) & 0x20))
+ | ((first >> 2) & 0x1f));
+ if (rs1 == 0)
+ mne = nzimm == 0 ? "nop" : "c.nop";
+ else
+ {
+ mne = nzimm == 0 ? "c.addi" : "addi";
+ op[0] = op[1] = REG (rs1);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId16, nzimm);
+ op[2] = addrbuf;
+ }
+ break;
+ case 2:
+ rs1 = (first >> 7) & 0x1f;
+ op[0] = op[1] = REG (rs1);
+ opaddr = ((first >> 7) & 0x20) | ((first >> 2) & 0x1f);
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr);
+ op[2] = addrbuf;
+ mne = rs1 == 0 ? "c.slli" : "slli";
+ break;
+ case 3:
+ op[0] = FREGP ((first >> 2) & 0x7);
+ opaddr = ((first << 1) & 0xc0) | ((first >> 7) & 0x38);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRIu64 "(%s)",
+ opaddr, REGP ((first >> 7) & 0x7));
+ op[1] = addrbuf;
+ mne = "fld";
+ break;
+ case 4:
+ if (ebl->class == ELFCLASS32)
+ {
+ mne = "jal";
+ opaddr = (((first << 3) & 0x20) | ((first >> 2) & 0xe)
+ | ((first << 1) & 0x80) | ((first >> 1) | 0x40)
+ | ((first << 2) & 0x400) | (first & 0xb00)
+ | ((first >> 6) & 0x10));
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr);
+ op[0] = addrbuf;
+ }
+ else
+ {
+ int32_t imm = (((UINT32_C (0) - ((first >> 12) & 0x1)) << 5)
+ | ((first >> 2) & 0x1f));
+ uint16_t reg = (first >> 7) & 0x1f;
+ if (reg == 0)
+ {
+ // Reserved
+ len = snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx16, first);
+ strp = addrbuf;
+ }
+ else
+ {
+ if (imm == 0)
+ mne = "sext.w";
+ else
+ {
+ mne = "addiw";
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId32, imm);
+ op[2] = addrbuf;
+ }
+ op[0] = op[1] = REG (reg);
+ }
+ }
+ break;
+ case 5:
+ op[0] = FREG ((first >> 7) & 0x1f);
+ opaddr = ((first << 4) & 0x1c0) | ((first >> 7) & 0x20) | ((first >> 2) & 0x18);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRIu64 "(%s)", opaddr, REG (2));
+ op[1] = addrbuf;
+ mne = "fld";
+ break;
+ case 6:
+ case 18:
+ mne = idx == 6 ? "lw" : "sw";
+ op[0] = REGP ((first >> 2) & 0x7);
+ opaddr = (((first >> 7) & 0x38) | ((first << 1) & 0x40)
+ | ((first >> 4) & 0x4));
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)",
+ opaddr, REGP ((first >> 7) & 0x7));
+ op[1] = addrbuf;
+ break;
+ case 7:
+ mne = (first & 0xf80) == 0 ? "c.li" : "li";
+ op[0] = REG((first >> 7) & 0x1f);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId16,
+ (UINT16_C (0) - ((first >> 7) & 0x20)) | ((first >> 2) & 0x1f));
+ op[1] = addrbuf;
+ break;
+ case 8:
+ rd = ((first >> 7) & 0x1f);
+ if (rd == 0)
+ {
+ len = snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx16, first);
+ strp = addrbuf;
+ }
+ else
+ {
+ uint16_t uimm = (((first << 4) & 0xc0)
+ | ((first >> 7) & 0x20)
+ | ((first >> 2) & 0x1c));
+ mne = "lw";
+ op[0] = REG (rd);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRIu16 "(%s)", uimm, REG (2));
+ op[1] = addrbuf;
+ }
+ break;
+ case 9:
+ if (ebl->class == ELFCLASS32)
+ {
+ mne = "flw";
+ op[0] = FREGP ((first >> 2) & 0x7);
+ opaddr = (((first << 1) & 0x40)
+ | ((first >> 7) & 0x38)
+ | ((first >> 4) & 0x4));
+ }
+ else
+ {
+ mne = "ld";
+ op[0] = REGP ((first >> 2) & 0x7);
+ opaddr = ((first >> 7) & 0x38) | ((first << 1) & 0xc0);
+ }
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)",
+ opaddr, REGP ((first >> 7) & 0x7));
+ op[1] = addrbuf;
+ break;
+ case 10:
+ if ((first & 0xf80) == (2 << 7))
+ {
+ mne = "addi";
+ op[0] = op[1] = REG (2);
+ opaddr = (((first >> 2) & 0x10) | ((first << 3) & 0x20)
+ | ((first << 1) & 0x40) | ((first << 4) & 0x180)
+ | ((UINT64_C (0) - ((first >> 12) & 0x1)) << 9));
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64, opaddr);
+ op[2] = addrbuf;
+ }
+ else
+ {
+ mne = "lui";
+ op[0] = REG((first & 0xf80) >> 7);
+ opaddr = (((UINT64_C (0) - ((first >> 12) & 0x1)) & ~0x1f)
+ | ((first >> 2) & 0x1f));
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr & 0xfffff);
+ op[1] = addrbuf;
+ }
+ break;
+ case 11:
+ if (ebl->class == ELFCLASS32)
+ {
+ mne = "flw";
+ op[0] = FREG ((first >> 7) & 0x1f);
+ opaddr = (((first << 4) & 0xc0)
+ | ((first >> 7) & 0x20)
+ | ((first >> 2) & 0x1c));
+ }
+ else
+ {
+ mne = "ld";
+ op[0] = REG ((first >> 7) & 0x1f);
+ opaddr = (((first << 4) & 0x1c0)
+ | ((first >> 7) & 0x20)
+ | ((first >> 2) & 0x18));
+ }
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)", opaddr, REG (2));
+ op[1] = addrbuf;
+ break;
+ case 13:
+ if ((first & 0xc00) != 0xc00)
+ {
+ int16_t imm = ((first >> 7) & 0x20) | ((first >> 2) & 0x1f);
+ if ((first & 0xc00) == 0x800)
+ {
+ imm |= 0 - (imm & 0x20);
+ mne = "andi";
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId16, imm);
+ }
+ else
+ {
+ if (ebl->class != ELFCLASS32 || imm < 32)
+ {
+ mne = (first & 0x400) ? "srai" : "srli";
+ if (imm == 0)
+ {
+ strcpy (stpcpy (mnebuf, "c."), mne);
+ mne = mnebuf;
+ }
+ }
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx16, imm);
+ }
+ op[2] = addrbuf;
+ }
+ else
+ {
+ op[2] = REGP ((first >> 2) & 0x7);
+ static const char *const arithmne[8] =
+ {
+ "sub", "xor", "or", "and", "subw", "addw", NULL, NULL
+ };
+ mne = (char *) arithmne[((first >> 10) & 0x4) | ((first >> 5) & 0x3)];
+ }
+ op[0] = op[1] = REGP ((first >> 7) & 0x7);
+ break;
+ case 14:
+ rs1 = (first >> 7) & 0x1f;
+ rs2 = (first >> 2) & 0x1f;
+ op[0] = REG (rs1);
+ if ((first & 0x1000) == 0)
+ {
+ if (rs2 == 0)
+ {
+ op[1] = NULL;
+ if (rs1 == 1)
+ {
+ mne = "ret";
+ op[0] = NULL;
+ }
+ else
+ mne = "jr";
+ }
+ else
+ {
+ mne = rs1 != 0 ? "mv" : "c.mv";
+ op[1] = REG (rs2);
+ }
+ }
+ else
+ {
+ if (rs2 == 0)
+ {
+ if (rs1 == 0)
+ {
+ mne = "ebreak";
+ op[0] = op[1] = NULL;
+ }
+ else
+ mne = "jalr";
+ }
+ else
+ {
+ mne = rs1 != 0 ? "add" : "c.add";
+ op[2] = REG (rs2);
+ op[1] = op[0];
+ }
+ }
+ break;
+ case 15:
+ op[0] = FREGP ((first >> 2) & 0x7);
+ opaddr = ((first << 1) & 0xc0) | ((first >> 7) & 0x38);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRIu64 "(%s)",
+ opaddr, REGP ((first >> 7) & 0x7));
+ op[1] = addrbuf;
+ mne = "fsd";
+ break;
+ case 16:
+ opaddr = (((UINT64_C (0) - ((first >> 12) & 0x1)) << 11)
+ | ((first << 2) & 0x400)
+ | ((first >> 1) & 0x300)
+ | ((first << 1) & 0x80)
+ | ((first >> 1) & 0x40)
+ | ((first << 3) & 0x20)
+ | ((first >> 7) & 0x10)
+ | ((first >> 2) & 0xe));
+ mne = "j";
+ // TODO translate address
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, addr + opaddr);
+ op[0] = addrbuf;
+ break;
+ case 17:
+ op[0] = FREG ((first >> 2) & 0x1f);
+ opaddr = ((first >> 1) & 0x1c0) | ((first >> 7) & 0x38);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRIu64 "(%s)", opaddr, REG (2));
+ op[1] = addrbuf;
+ mne = "fsd";
+ break;
+ case 19:
+ case 22:
+ mne = idx == 19 ? "beqz" : "bnez";
+ op[0] = REG (8 + ((first >> 7) & 0x7));
+ opaddr = addr + (((UINT64_C (0) - ((first >> 12) & 0x1)) & ~0xff)
+ | ((first << 1) & 0xc0) | ((first << 3) & 0x20)
+ | ((first >> 7) & 0x18) | ((first >> 2) & 0x6));
+ // TODO translate address
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr);
+ op[1] = addrbuf;
+ break;
+ case 20:
+ op[0] = REG ((first >> 2) & 0x1f);
+ opaddr = ((first >> 1) & 0xc0) | ((first >> 7) & 0x3c);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)", opaddr, REG (2));
+ op[1] = addrbuf;
+ mne = "sw";
+ break;
+ case 21:
+ if (idx == 18 || ebl->class == ELFCLASS32)
+ {
+ mne = "fsw";
+ op[0] = FREGP ((first >> 2) & 0x7);
+ opaddr = (((first >> 7) & 0x38) | ((first << 1) & 0x40)
+ | ((first >> 4) & 0x4));
+ }
+ else
+ {
+ mne = "sd";
+ op[0] = REGP ((first >> 2) & 0x7);
+ opaddr = ((first >> 7) & 0x38) | ((first << 1) & 0xc0);
+ }
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)",
+ opaddr, REGP ((first >> 7) & 0x7));
+ op[1] = addrbuf;
+ break;
+ case 23:
+ if (idx == 18 || ebl->class == ELFCLASS32)
+ {
+ mne = "fsw";
+ op[0] = FREG ((first & 0x7c) >> 2);
+ opaddr = ((first & 0x1e00) >> 7) | ((first & 0x180) >> 1);
+ }
+ else
+ {
+ mne = "sd";
+ op[0] = REG ((first & 0x7c) >> 2);
+ opaddr = ((first & 0x1c00) >> 7) | ((first & 0x380) >> 1);
+ }
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)", opaddr, REG (2));
+ op[1] = addrbuf;
+ break;
+ default:
+ break;
+ }
+
+ if (strp == NULL && mne == NULL)
+ {
+ len = snprintf (immbuf, sizeof (immbuf), "0x%04" PRIx16, first);
+ strp = immbuf;
+ }
+ }
+ else if (length == 4)
+ {
+ uint32_t word = read_4ubyte_unaligned (data);
+ size_t idx = (word >> 2) & 0x1f;
+
+ switch (idx)
+ {
+ static const char widthchar[4] = { 's', 'd', '\0', 'q' };
+ static const char intwidthchar[4] = { 'w', 'd', '\0', 'q' };
+ static const char *const rndmode[8] = { "rne", "rtz", "rdn", "rup", "rmm", "???", "???", "dyn" };
+ uint32_t rd;
+ uint32_t rs1;
+ uint32_t rs2;
+ uint32_t rs3;
+ uint32_t func;
+
+ case 0x00:
+ case 0x01:
+ // LOAD and LOAD-FP
+ rd = (word >> 7) & 0x1f;
+ op[0] = idx == 0x00 ? REG (rd) : FREG (rd);
+ opaddr = ((int32_t) word) >> 20;
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)",
+ opaddr, REG ((word >> 15) & 0x1f));
+ op[1] = addrbuf;
+ func = (word >> 12) & 0x7;
+ static const char *const loadmne[8] =
+ {
+ "lb", "lh", "lw", "ld", "lbu", "lhu", "lwu", NULL
+ };
+ static const char *const floadmne[8] =
+ {
+ NULL, NULL, "flw", "fld", "flq", NULL, NULL, NULL
+ };
+ mne = (char *) (idx == 0x00 ? loadmne[func] : floadmne[func]);
+ break;
+ case 0x03:
+ // MISC-MEM
+ rd = (word >> 7) & 0x1f;
+ rs1 = (word >> 15) & 0x1f;
+ func = (word >> 12) & 0x7;
+
+ if (word == 0x8330000f)
+ mne = "fence.tso";
+ else if (word == 0x0000100f)
+ mne = "fence.i";
+ else if (func == 0 && rd == 0 && rs1 == 0 && (word & 0xf0000000) == 0)
+ {
+ static const char *const order[16] =
+ {
+ "unknown", "w", "r", "rw", "o", "ow", "or", "orw",
+ "i", "iw", "ir", "irw", "io", "iow", "ior", "iorw"
+ };
+ uint32_t pred = (word >> 20) & 0xf;
+ uint32_t succ = (word >> 24) & 0xf;
+ if (pred != 0xf || succ != 0xf)
+ {
+ op[0] = (char *) order[succ];
+ op[1] = (char *) order[pred];
+ }
+ mne = "fence";
+ }
+ break;
+ case 0x04:
+ case 0x06:
+ // OP-IMM and OP-IMM32
+ rd = (word >> 7) & 0x1f;
+ op[0] = REG (rd);
+ rs1 = (word >> 15) & 0x1f;
+ op[1] = REG (rs1);
+ opaddr = ((int32_t) word) >> 20;
+ static const char *const opimmmne[8] =
+ {
+ "addi", NULL, "slti", "sltiu", "xori", NULL, "ori", "andi"
+ };
+ func = (word >> 12) & 0x7;
+ mne = (char *) opimmmne[func];
+ if (mne == NULL)
+ {
+ const uint64_t shiftmask = ebl->class == ELFCLASS32 ? 0x1f : 0x3f;
+ if (func == 0x1 && (opaddr & ~shiftmask) == 0)
+ mne = "slli";
+ else if (func == 0x5 && (opaddr & ~shiftmask) == 0)
+ mne = "srli";
+ else if (func == 0x5 && (opaddr & ~shiftmask) == 0x400)
+ mne = "srai";
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr & shiftmask);
+ op[2] = addrbuf;
+ }
+ else if (func == 0x0 && (rd != 0 || idx == 0x06) && rs1 == 0 && rd != 0)
+ {
+ mne = "li";
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64, opaddr);
+ op[1] = addrbuf;
+ }
+ else if (func == 0x00 && opaddr == 0)
+ {
+ if (idx == 0x06)
+ mne ="sext.";
+ else if (rd == 0)
+ {
+ mne = "nop";
+ op[0] = op[1] = NULL;
+ }
+ else
+ mne = "mv";
+ }
+ else if (func == 0x3 && opaddr == 1)
+ mne = "seqz";
+ else if (func == 0x4 && opaddr == -1)
+ {
+ mne = "not";
+ op[2] = NULL;
+ }
+ else
+ {
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64, opaddr);
+ op[2] = addrbuf;
+
+ if (func == 0x0 && rs1 == 0 && rd != 0)
+ {
+ op[1] = op[2];
+ op[2] = NULL;
+ mne = "li";
+ }
+ }
+ if (mne != NULL && idx == 0x06)
+ {
+ mne = strcpy (mnebuf, mne);
+ strcat (mnebuf, "w");
+ }
+ break;
+ case 0x05:
+ case 0x0d:
+ // LUI and AUIPC
+ mne = idx == 0x05 ? "auipc" : "lui";
+ op[0] = REG ((word >> 7) & 0x1f);
+ opaddr = word >> 12;
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr);
+ op[1] = addrbuf;
+ break;
+ case 0x08:
+ case 0x09:
+ // STORE and STORE-FP
+ rs2 = (word >> 20) & 0x1f;
+ op[0] = idx == 0x08 ? REG (rs2) : FREG (rs2);
+ opaddr = ((((int64_t) ((int32_t) word) >> 20)) & ~0x1f) | ((word >> 7) & 0x1f);
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)",
+ opaddr, REG ((word >> 15) & 0x1f));
+ op[1] = addrbuf;
+ func = (word >> 12) & 0x7;
+ static const char *const storemne[8] =
+ {
+ "sb", "sh", "sw", "sd", NULL, NULL, NULL, NULL
+ };
+ static const char *const fstoremne[8] =
+ {
+ NULL, NULL, "fsw", "fsd", "fsq", NULL, NULL, NULL
+ };
+ mne = (char *) (idx == 0x08 ? storemne[func] : fstoremne[func]);
+ break;
+ case 0x0b:
+ // AMO
+ op[0] = REG ((word >> 7) & 0x1f);
+ rs1 = (word >> 15) & 0x1f;
+ rs2 = (word >> 20) & 0x1f;
+ snprintf (addrbuf, sizeof (addrbuf), "(%s)", REG (rs1));
+ op[2] = addrbuf;
+ size_t width = (word >> 12) & 0x7;
+ func = word >> 27;
+ static const char *const amomne[32] =
+ {
+ "amoadd", "amoswap", "lr", "sc", "amoxor", NULL, NULL, NULL,
+ "amoor", NULL, NULL, NULL, "amoand", NULL, NULL, NULL,
+ "amomin", NULL, NULL, NULL, "amomax", NULL, NULL, NULL,
+ "amominu", NULL, NULL, NULL, "amomaxu", NULL, NULL, NULL
+ };
+ if (amomne[func] != NULL && width >= 2 && width <= 3
+ && (func != 0x02 || rs2 == 0))
+ {
+ if (func == 0x02)
+ {
+ op[1] = op[2];
+ op[2] = NULL;
+ }
+ else
+ op[1] = REG (rs2);
+
+ char *cp = stpcpy (mnebuf, amomne[func]);
+ *cp++ = '.';
+ *cp++ = " wd "[width];
+ assert (cp[-1] != ' ');
+ static const char *const aqrlstr[4] =
+ {
+ "", ".rl", ".aq", ".aqrl"
+ };
+ strcpy (cp, aqrlstr[(word >> 25) & 0x3]);
+ mne = mnebuf;
+ }
+ break;
+ case 0x0c:
+ case 0x0e:
+ // OP and OP-32
+ if ((word & 0xbc000000) == 0)
+ {
+ rs1 = (word >> 15) & 0x1f;
+ rs2 = (word >> 20) & 0x1f;
+ op[0] = REG ((word >> 7) & 0x1f);
+ func = ((word >> 21) & 0x10) | ((word >> 27) & 0x8) | ((word >> 12) & 0x7);
+ static const char *const arithmne2[32] =
+ {
+ "add", "sll", "slt", "sltu", "xor", "srl", "or", "and",
+ "sub", NULL, NULL, NULL, NULL, "sra", NULL, NULL,
+ "mul", "mulh", "mulhsu", "mulhu", "div", "divu", "rem", "remu",
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+ };
+ static const char *const arithmne3[32] =
+ {
+ "addw", "sllw", NULL, NULL, NULL, "srlw", NULL, NULL,
+ "subw", NULL, NULL, NULL, NULL, "sraw", NULL, NULL,
+ "mulw", NULL, NULL, NULL, "divw", "divuw", "remw", "remuw",
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
+ };
+ if (func == 8 && rs1 == 0)
+ {
+ mne = idx == 0x0c ? "neg" : "negw";
+ op[1] = REG (rs2);
+ }
+ else if (idx == 0x0c && rs2 == 0 && func == 2)
+ {
+ op[1] = REG (rs1);
+ mne = "sltz";
+ }
+ else if (idx == 0x0c && rs1 == 0 && (func == 2 || func == 3))
+ {
+ op[1] = REG (rs2);
+ mne = func == 2 ? "sgtz" : "snez";
+ }
+ else
+ {
+ mne = (char *) (idx == 0x0c ? arithmne2[func] : arithmne3[func]);
+ op[1] = REG (rs1);
+ op[2] = REG (rs2);
+ }
+ }
+ break;
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ // MADD, MSUB, NMSUB, NMADD
+ if ((word & 0x06000000) != 0x04000000)
+ {
+ rd = (word >> 7) & 0x1f;
+ rs1 = (word >> 15) & 0x1f;
+ rs2 = (word >> 20) & 0x1f;
+ rs3 = (word >> 27) & 0x1f;
+ uint32_t rm = (word >> 12) & 0x7;
+ width = (word >> 25) & 0x3;
+
+ static const char *const fmamne[4] =
+ {
+ "fmadd.", "fmsub.", "fnmsub.", "fnmadd."
+ };
+ char *cp = stpcpy (mnebuf, fmamne[idx & 0x3]);
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+ op[0] = FREG (rd);
+ op[1] = FREG (rs1);
+ op[2] = FREG (rs2);
+ op[3] = FREG (rs3);
+ if (rm != 0x7)
+ op[4] = (char *) rndmode[rm];
+ }
+ break;
+ case 0x14:
+ // OP-FP
+ if ((word & 0x06000000) != 0x04000000)
+ {
+ width = (word >> 25) & 0x3;
+ rd = (word >> 7) & 0x1f;
+ rs1 = (word >> 15) & 0x1f;
+ rs2 = (word >> 20) & 0x1f;
+ func = word >> 27;
+ uint32_t rm = (word >> 12) & 0x7;
+ if (func < 4)
+ {
+ static const char *const fpop[4] =
+ {
+ "fadd", "fsub", "fmul", "fdiv"
+ };
+ char *cp = stpcpy (mnebuf, fpop[func]);
+ *cp++ = '.';
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+ op[0] = FREG (rd);
+ op[1] = FREG (rs1);
+ op[2] = FREG (rs2);
+ if (rm != 0x7)
+ op[3] = (char *) rndmode[rm];
+ }
+ else if (func == 0x1c && width != 2 && rs2 == 0 && rm <= 1)
+ {
+ char *cp;
+ if (rm == 0)
+ {
+ cp = stpcpy (mnebuf, "fmv.x.");
+ *cp++ = intwidthchar[width];
+ }
+ else
+ {
+ cp = stpcpy (mnebuf, "fclass.");
+ *cp++ = widthchar[width];
+ }
+ *cp = '\0';
+ mne = mnebuf;
+ op[0] = REG (rd);
+ op[1] = FREG (rs1);
+ }
+ else if (func == 0x1e && width != 2 && rs2 == 0 && rm == 0)
+ {
+ char *cp = stpcpy (mnebuf, "fmv.");
+ *cp++ = intwidthchar[width];
+ strcpy (cp, ".x");
+ mne = mnebuf;
+ op[0] = FREG (rd);
+ op[1] = REG (rs1);
+ }
+ else if (func == 0x14)
+ {
+ uint32_t cmpop = (word >> 12) & 0x7;
+ if (cmpop < 3)
+ {
+ static const char *const mnefpcmp[3] =
+ {
+ "fle", "flt", "feq"
+ };
+ char *cp = stpcpy (mnebuf, mnefpcmp[cmpop]);
+ *cp++ = '.';
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+ op[0] = REG (rd);
+ op[1] = FREG (rs1);
+ op[2] = FREG (rs2);
+ }
+ }
+ else if (func == 0x04)
+ {
+ uint32_t cmpop = (word >> 12) & 0x7;
+ if (cmpop < 3)
+ {
+ op[0] = FREG (rd);
+ op[1] = FREG (rs1);
+
+ static const char *const mnefpcmp[3] =
+ {
+ "fsgnj.", "fsgnjn.", "fsgnjx."
+ };
+ static const char *const altsignmne[3] =
+ {
+ "fmv.", "fneg.", "fabs."
+ };
+ char *cp = stpcpy (mnebuf, rs1 == rs2 ? altsignmne[cmpop] : mnefpcmp[cmpop]);
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+
+ if (rs1 != rs2)
+ op[2] = FREG (rs2);
+ }
+ }
+ else if (func == 0x08 && width != 2 && rs2 <= 3 && rs2 != 2 && rs2 != width)
+ {
+ op[0] = FREG (rd);
+ op[1] = FREG (rs1);
+ char *cp = stpcpy (mnebuf, "fcvt.");
+ *cp++ = widthchar[width];
+ *cp++ = '.';
+ *cp++ = widthchar[rs2];
+ *cp = '\0';
+ mne = mnebuf;
+ }
+ else if ((func & 0x1d) == 0x18 && width != 2 && rs2 < 4)
+ {
+ char *cp = stpcpy (mnebuf, "fcvt.");
+ if (func == 0x18)
+ {
+ *cp++ = rs2 >= 2 ? 'l' : 'w';
+ if ((rs2 & 1) == 1)
+ *cp++ = 'u';
+ *cp++ = '.';
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ op[0] = REG (rd);
+ op[1] = FREG (rs1);
+ }
+ else
+ {
+ *cp++ = widthchar[width];
+ *cp++ = '.';
+ *cp++ = rs2 >= 2 ? 'l' : 'w';
+ if ((rs2 & 1) == 1)
+ *cp++ = 'u';
+ *cp = '\0';
+ op[0] = FREG (rd);
+ op[1] = REG (rs1);
+ }
+ mne = mnebuf;
+ if (rm != 0x7 && (func == 0x18 || width == 0 || rs2 >= 2))
+ op[2] = (char *) rndmode[rm];
+ }
+ else if (func == 0x0b && rs2 == 0)
+ {
+ op[0] = FREG (rd);
+ op[1] = FREG (rs1);
+ char *cp = stpcpy (mnebuf, "fsqrt.");
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+ if (rm != 0x7)
+ op[2] = (char *) rndmode[rm];
+ }
+ else if (func == 0x05 && rm < 2)
+ {
+ op[0] = FREG (rd);
+ op[1] = FREG (rs1);
+ op[2] = FREG (rs2);
+ char *cp = stpcpy (mnebuf, rm == 0 ? "fmin." : "fmax.");
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+ }
+ else if (func == 0x14 && rm <= 0x2)
+ {
+ op[0] = REG (rd);
+ op[1] = FREG (rs1);
+ op[2] = FREG (rs2);
+ static const char *const fltcmpmne[3] =
+ {
+ "fle.", "flt.", "feq."
+ };
+ char *cp = stpcpy (mnebuf, fltcmpmne[rm]);
+ *cp++ = widthchar[width];
+ *cp = '\0';
+ mne = mnebuf;
+ }
+ }
+ break;
+ case 0x18:
+ // BRANCH
+ rs1 = (word >> 15) & 0x1f;
+ op[0] = REG (rs1);
+ rs2 = (word >> 20) & 0x1f;
+ op[1] = REG (rs2);
+ opaddr = addr + (((UINT64_C (0) - (word >> 31)) << 12)
+ + ((word << 4) & 0x800)
+ + ((word >> 20) & 0x7e0)
+ + ((word >> 7) & 0x1e));
+ // TODO translate address
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr);
+ op[2] = addrbuf;
+ static const char *const branchmne[8] =
+ {
+ "beq", "bne", NULL, NULL, "blt", "bge", "bltu", "bgeu"
+ };
+ func = (word >> 12) & 0x7;
+ mne = (char *) branchmne[func];
+ if (rs1 == 0 && func == 5)
+ {
+ op[0] = op[1];
+ op[1] = op[2];
+ op[2] = NULL;
+ mne = "blez";
+ }
+ else if (rs1 == 0 && func == 4)
+ {
+ op[0] = op[1];
+ op[1] = op[2];
+ op[2] = NULL;
+ mne = "bgtz";
+ }
+ else if (rs2 == 0)
+ {
+ if (func == 0 || func == 1 || func == 4 || func == 5)
+ {
+ op[1] = op[2];
+ op[2] = NULL;
+ strcpy (stpcpy (mnebuf, mne), "z");
+ mne = mnebuf;
+ }
+ }
+ else if (func == 5 || func == 7)
+ {
+ // binutils use these opcodes and the reverse parameter order
+ char *tmp = op[0];
+ op[0] = op[1];
+ op[1] = tmp;
+ mne = func == 5 ? "ble" : "bleu";
+ }
+ break;
+ case 0x19:
+ // JALR
+ if ((word & 0x7000) == 0)
+ {
+ rd = (word >> 7) & 0x1f;
+ rs1 = (word >> 15) & 0x1f;
+ opaddr = (int32_t) word >> 20;
+ size_t next = 0;
+ if (rd > 1)
+ op[next++] = REG (rd);
+ if (opaddr == 0)
+ {
+ if (rs1 != 0 || next == 0)
+ op[next] = REG (rs1);
+ }
+ else
+ {
+ snprintf (addrbuf, sizeof (addrbuf), "%" PRId64 "(%s)", opaddr, REG (rs1));
+ op[next] = addrbuf;
+ }
+ mne = rd == 0 ? "jr" : "jalr";
+ }
+ break;
+ case 0x1b:
+ // JAL
+ rd = (word >> 7) & 0x1f;
+ if (rd != 0)
+ op[0] = REG (rd);
+ opaddr = addr + ((UINT64_C (0) - ((word >> 11) & 0x100000))
+ | (word & 0xff000)
+ | ((word >> 9) & 0x800)
+ | ((word >> 20) & 0x7fe));
+ // TODO translate address
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx64, opaddr);
+ op[rd != 0] = addrbuf;
+ mne = rd == 0 ? "j" : "jal";
+ break;
+ case 0x1c:
+ // SYSTEM
+ rd = (word >> 7) & 0x1f;
+ rs1 = (word >> 15) & 0x1f;
+ if (word == 0x00000073)
+ mne = "ecall";
+ else if (word == 0x00100073)
+ mne = "ebreak";
+ else if (word == 0x00200073)
+ mne = "uret";
+ else if (word == 0x10200073)
+ mne = "sret";
+ else if (word == 0x30200073)
+ mne = "mret";
+ else if (word == 0x10500073)
+ mne = "wfi";
+ else if ((word & 0x3000) == 0x2000 && rs1 == 0)
+ {
+ uint32_t csr = word >> 20;
+ if (/* csr >= 0x000 && */ csr <= 0x007)
+ {
+ static const char *const unprivrw[4] =
+ {
+ NULL, "frflags", "frrm", "frsr",
+ };
+ mne = (char *) unprivrw[csr - 0x000];
+ }
+ else if (csr >= 0xc00 && csr <= 0xc03)
+ {
+ static const char *const unprivrolow[3] =
+ {
+ "rdcycle", "rdtime", "rdinstret"
+ };
+ mne = (char *) unprivrolow[csr - 0xc00];
+ }
+ op[0] = REG ((word >> 7) & 0x1f);
+ }
+ else if ((word & 0x3000) == 0x1000 && rd == 0)
+ {
+ uint32_t csr = word >> 20;
+ if (/* csr >= 0x000 && */ csr <= 0x003)
+ {
+ static const char *const unprivrs[4] =
+ {
+ NULL, "fsflags", "fsrm", "fssr",
+ };
+ static const char *const unprivrsi[4] =
+ {
+ NULL, "fsflagsi", "fsrmi", NULL
+ };
+ mne = (char *) ((word & 0x4000) == 0 ? unprivrs : unprivrsi)[csr - 0x000];
+
+ if ((word & 0x4000) == 0)
+ op[0] = REG ((word >> 15) & 0x1f);
+ else
+ {
+ snprintf (immbuf, sizeof (immbuf), "%" PRIu32, (word >> 15) & 0x1f);
+ op[0] = immbuf;
+ }
+ }
+ }
+ if (mne == NULL && (word & 0x3000) != 0)
+ {
+ static const char *const mnecsr[8] =
+ {
+ NULL, "csrrw", "csrrs", "csrrc",
+ NULL, "csrrwi", "csrrsi", "csrrci"
+ };
+ static const struct known_csrs known[] =
+ {
+ // This list must remain sorted by NR.
+ { 0x000, "ustatus" },
+ { 0x001, "fflags" },
+ { 0x002, "fram" },
+ { 0x003, "fcsr" },
+ { 0x004, "uie" },
+ { 0x005, "utvec" },
+ { 0x040, "uscratch" },
+ { 0x041, "uepc" },
+ { 0x042, "ucause" },
+ { 0x043, "utval" },
+ { 0x044, "uip" },
+ { 0x100, "sstatus" },
+ { 0x102, "sedeleg" },
+ { 0x103, "sideleg" },
+ { 0x104, "sie" },
+ { 0x105, "stvec" },
+ { 0x106, "scounteren" },
+ { 0x140, "sscratch" },
+ { 0x141, "sepc" },
+ { 0x142, "scause" },
+ { 0x143, "stval" },
+ { 0x144, "sip" },
+ { 0x180, "satp" },
+ { 0x200, "vsstatus" },
+ { 0x204, "vsie" },
+ { 0x205, "vstvec" },
+ { 0x240, "vsscratch" },
+ { 0x241, "vsepc" },
+ { 0x242, "vscause" },
+ { 0x243, "vstval" },
+ { 0x244, "vsip" },
+ { 0x280, "vsatp" },
+ { 0x600, "hstatus" },
+ { 0x602, "hedeleg" },
+ { 0x603, "hideleg" },
+ { 0x605, "htimedelta" },
+ { 0x606, "hcounteren" },
+ { 0x615, "htimedeltah" },
+ { 0x680, "hgatp" },
+ { 0xc00, "cycle" },
+ { 0xc01, "time" },
+ { 0xc02, "instret" },
+ { 0xc03, "hpmcounter3" },
+ { 0xc04, "hpmcounter4" },
+ { 0xc05, "hpmcounter5" },
+ { 0xc06, "hpmcounter6" },
+ { 0xc07, "hpmcounter7" },
+ { 0xc08, "hpmcounter8" },
+ { 0xc09, "hpmcounter9" },
+ { 0xc0a, "hpmcounter10" },
+ { 0xc0b, "hpmcounter11" },
+ { 0xc0c, "hpmcounter12" },
+ { 0xc0d, "hpmcounter13" },
+ { 0xc0e, "hpmcounter14" },
+ { 0xc0f, "hpmcounter15" },
+ { 0xc10, "hpmcounter16" },
+ { 0xc11, "hpmcounter17" },
+ { 0xc12, "hpmcounter18" },
+ { 0xc13, "hpmcounter19" },
+ { 0xc14, "hpmcounter20" },
+ { 0xc15, "hpmcounter21" },
+ { 0xc16, "hpmcounter22" },
+ { 0xc17, "hpmcounter23" },
+ { 0xc18, "hpmcounter24" },
+ { 0xc19, "hpmcounter25" },
+ { 0xc1a, "hpmcounter26" },
+ { 0xc1b, "hpmcounter27" },
+ { 0xc1c, "hpmcounter28" },
+ { 0xc1d, "hpmcounter29" },
+ { 0xc1e, "hpmcounter30" },
+ { 0xc1f, "hpmcounter31" },
+ { 0xc80, "cycleh" },
+ { 0xc81, "timeh" },
+ { 0xc82, "instreth" },
+ { 0xc83, "hpmcounter3h" },
+ { 0xc84, "hpmcounter4h" },
+ { 0xc85, "hpmcounter5h" },
+ { 0xc86, "hpmcounter6h" },
+ { 0xc87, "hpmcounter7h" },
+ { 0xc88, "hpmcounter8h" },
+ { 0xc89, "hpmcounter9h" },
+ { 0xc8a, "hpmcounter10h" },
+ { 0xc8b, "hpmcounter11h" },
+ { 0xc8c, "hpmcounter12h" },
+ { 0xc8d, "hpmcounter13h" },
+ { 0xc8e, "hpmcounter14h" },
+ { 0xc8f, "hpmcounter15h" },
+ { 0xc90, "hpmcounter16h" },
+ { 0xc91, "hpmcounter17h" },
+ { 0xc92, "hpmcounter18h" },
+ { 0xc93, "hpmcounter19h" },
+ { 0xc94, "hpmcounter20h" },
+ { 0xc95, "hpmcounter21h" },
+ { 0xc96, "hpmcounter22h" },
+ { 0xc97, "hpmcounter23h" },
+ { 0xc98, "hpmcounter24h" },
+ { 0xc99, "hpmcounter25h" },
+ { 0xc9a, "hpmcounter26h" },
+ { 0xc9b, "hpmcounter27h" },
+ { 0xc9c, "hpmcounter28h" },
+ { 0xc9d, "hpmcounter29h" },
+ { 0xc9e, "hpmcounter30h" },
+ { 0xc9f, "hpmcounter31h" },
+ };
+ uint32_t csr = word >> 20;
+ uint32_t instr = (word >> 12) & 0x7;
+ size_t last = 0;
+ if (rd != 0)
+ op[last++] = REG (rd);
+ struct known_csrs key = { csr, NULL };
+ struct known_csrs *found = bsearch (&key, known,
+ sizeof (known) / sizeof (known[0]),
+ sizeof (known[0]),
+ compare_csr);
+ if (found)
+ op[last] = (char *) found->name;
+ else
+ {
+ snprintf (addrbuf, sizeof (addrbuf), "0x%" PRIx32, csr);
+ op[last] = addrbuf;
+ }
+ ++last;
+ if ((word & 0x4000) == 0)
+ op[last] = REG ((word >> 15) & 0x1f);
+ else
+ {
+ snprintf (immbuf, sizeof (immbuf), "%" PRIu32, (word >> 15) & UINT32_C(0x1f));
+ op[last] = immbuf;
+ }
+ if (instr == 1 && rd == 0)
+ mne = "csrw";
+ else if (instr == 2 && rd == 0)
+ mne = "csrs";
+ else if (instr == 6 && rd == 0)
+ mne = "csrsi";
+ else if (instr == 2 && rs1 == 0)
+ mne = "csrr";
+ else if (instr == 3 && rd == 0)
+ mne = "csrc";
+ else
+ mne = (char *) mnecsr[instr];
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (strp == NULL && mne == NULL)
+ {
+ len = snprintf (addrbuf, sizeof (addrbuf), "0x%08" PRIx32, word);
+ strp = addrbuf;
+ }
+ }
+ else
+ {
+ // No instruction encodings defined for these sizes yet.
+ char *cp = stpcpy (mnebuf, "0x");
+ assert (length % 2 == 0);
+ for (size_t i = 0; i < length; i += 2)
+ cp += snprintf (cp, mnebuf + sizeof (mnebuf) - cp, "%04" PRIx16,
+ read_2ubyte_unaligned (data + i));
+ strp = mnebuf;
+ len = cp - mnebuf;
+ }
+
+ if (strp == NULL)
+ {
+
+ if (0)
+ {
+ /* Resize the buffer. */
+ char *oldbuf;
+ enomem:
+ oldbuf = buf;
+ if (buf == initbuf)
+ buf = malloc (2 * bufsize);
+ else
+ buf = realloc (buf, 2 * bufsize);
+ if (buf == NULL)
+ {
+ buf = oldbuf;
+ retval = ENOMEM;
+ goto do_ret;
+ }
+ bufsize *= 2;
+
+ bufcnt = 0;
+ }
+
+ unsigned long string_end_idx = 0;
+ fmt = save_fmt;
+ const char *deferred_start = NULL;
+ size_t deferred_len = 0;
+ // XXX Can we get this from color.c?
+ static const char color_off[] = "\e[0m";
+ while (*fmt != '\0')
+ {
+ if (*fmt != '%')
+ {
+ char ch = *fmt++;
+ if (ch == '\\')
+ {
+ switch ((ch = *fmt++))
+ {
+ case '0' ... '7':
+ {
+ int val = ch - '0';
+ ch = *fmt;
+ if (ch >= '0' && ch <= '7')
+ {
+ val *= 8;
+ val += ch - '0';
+ ch = *++fmt;
+ if (ch >= '0' && ch <= '7' && val < 32)
+ {
+ val *= 8;
+ val += ch - '0';
+ ++fmt;
+ }
+ }
+ ch = val;
+ }
+ break;
+
+ case 'n':
+ ch = '\n';
+ break;
+
+ case 't':
+ ch = '\t';
+ break;
+
+ default:
+ retval = EINVAL;
+ goto do_ret;
+ }
+ }
+ else if (ch == '\e' && *fmt == '[')
+ {
+ deferred_start = fmt - 1;
+ do
+ ++fmt;
+ while (*fmt != 'm' && *fmt != '\0');
+
+ if (*fmt == 'm')
+ {
+ deferred_len = ++fmt - deferred_start;
+ continue;
+ }
+
+ fmt = deferred_start + 1;
+ deferred_start = NULL;
+ }
+ ADD_CHAR (ch);
+ continue;
+ }
+ ++fmt;
+
+ int width = 0;
+ while (isdigit (*fmt))
+ width = width * 10 + (*fmt++ - '0');
+
+ int prec = 0;
+ if (*fmt == '.')
+ while (isdigit (*++fmt))
+ prec = prec * 10 + (*fmt - '0');
+
+ size_t start_idx = bufcnt;
+ size_t non_printing = 0;
+ switch (*fmt++)
+ {
+ case 'm':
+ if (deferred_start != NULL)
+ {
+ ADD_NSTRING (deferred_start, deferred_len);
+ non_printing += deferred_len;
+ }
+
+ ADD_STRING (mne);
+
+ if (deferred_start != NULL)
+ {
+ ADD_STRING (color_off);
+ non_printing += strlen (color_off);
+ }
+
+ string_end_idx = bufcnt;
+ break;
+
+ case 'o':
+ if (op[prec - 1] != NULL)
+ {
+ if (deferred_start != NULL)
+ {
+ ADD_NSTRING (deferred_start, deferred_len);
+ non_printing += deferred_len;
+ }
+
+ ADD_STRING (op[prec - 1]);
+
+ if (deferred_start != NULL)
+ {
+ ADD_STRING (color_off);
+ non_printing += strlen (color_off);
+ }
+
+ string_end_idx = bufcnt;
+ }
+ else
+ bufcnt = string_end_idx;
+ break;
+
+ case 'e':
+ string_end_idx = bufcnt;
+ break;
+
+ case 'a':
+ /* Pad to requested column. */
+ while (bufcnt - non_printing < (size_t) width)
+ ADD_CHAR (' ');
+ width = 0;
+ break;
+
+ case 'l':
+ // TODO
+ break;
+
+ default:
+ abort();
+ }
+
+ /* Pad according to the specified width. */
+ while (bufcnt - non_printing < start_idx + width)
+ ADD_CHAR (' ');
+ }
+
+ strp = buf;
+ len = bufcnt;
+ }
+
+ addr += length;
+ *startp = data + length;
+ retval = outcb (strp, len, outcbarg);
+ if (retval != 0)
+ break;
+ }
+
+ do_ret:
+ if (buf != initbuf)
+ free (buf);
+
+ return retval;
+}
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 6b779e77..498cf0b7 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,19 @@
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am (libdw_so_LIBS): Replace libebl.a with libebl_pic.a.
+ Move libebl_pic.a to the beginning so that libdw symbols are resolved.
+ (libdw_so_LDLIBS): Remove -ldl.
+ (libdw.so): Remove -rpath.
+ (libdw_a_LIBADD): Add libebl, libebl_backends, and libcpu objects.
+
+2019-08-25 Jonathon Anderson <jma14@rice.edu>
+
+ * dwarf_getcfi.c (dwarf_getcfi): Set default_same_value to false.
+
+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
diff --git a/libdw/Makefile.am b/libdw/Makefile.am
index 7a3d5322..274571c3 100644
--- a/libdw/Makefile.am
+++ b/libdw/Makefile.am
@@ -105,17 +105,15 @@ endif
libdw_pic_a_SOURCES =
am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
-libdw_so_LIBS = libdw_pic.a ../libdwelf/libdwelf_pic.a \
- ../libdwfl/libdwfl_pic.a ../libebl/libebl.a
+libdw_so_LIBS = ../libebl/libebl_pic.a ../backends/libebl_backends_pic.a \
+ ../libcpu/libcpu_pic.a libdw_pic.a ../libdwelf/libdwelf_pic.a \
+ ../libdwfl/libdwfl_pic.a
libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so
-libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS)
+libdw_so_LDLIBS = $(libdw_so_DEPS) -lz $(argp_LDADD) $(zip_LIBS)
libdw_so_SOURCES =
libdw.so$(EXEEXT): $(srcdir)/libdw.map $(libdw_so_LIBS) $(libdw_so_DEPS)
-# The rpath is necessary for libebl because its $ORIGIN use will
-# not fly in a setuid executable that links in libdw.
$(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \
- -Wl,--soname,$@.$(VERSION) \
- -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
+ -Wl,--soname,$@.$(VERSION),--enable-new-dtags \
-Wl,--version-script,$<,--no-undefined \
-Wl,--whole-archive $(libdw_so_LIBS) -Wl,--no-whole-archive \
$(libdw_so_LDLIBS)
@@ -140,6 +138,15 @@ libdw_a_LIBADD = $(addprefix ../libdwfl/,$(libdwfl_objects))
libdwelf_objects = $(shell $(AR) t ../libdwelf/libdwelf.a)
libdw_a_LIBADD += $(addprefix ../libdwelf/,$(libdwelf_objects))
+libebl_objects = $(shell $(AR) t ../libebl/libebl.a)
+libdw_a_LIBADD += $(addprefix ../libebl/,$(libebl_objects))
+
+backends_objects = $(shell $(AR) t ../backends/libebl_backends.a)
+libdw_a_LIBADD += $(addprefix ../backends/,$(backends_objects))
+
+libcpu_objects = $(shell $(AR) t ../libcpu/libcpu.a)
+libdw_a_LIBADD += $(addprefix ../libcpu/,$(libcpu_objects))
+
noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h \
dwarf_sig8_hash.h cfi.h encoded-value.h
diff --git a/libdw/dwarf_getcfi.c b/libdw/dwarf_getcfi.c
index 9aed403e..51932cd9 100644
--- a/libdw/dwarf_getcfi.c
+++ b/libdw/dwarf_getcfi.c
@@ -58,6 +58,7 @@ dwarf_getcfi (Dwarf *dbg)
cfi->e_ident = (unsigned char *) elf_getident (dbg->elf, NULL);
cfi->other_byte_order = dbg->other_byte_order;
+ cfi->default_same_value = false;
cfi->next_offset = 0;
cfi->cie_tree = cfi->fde_tree = cfi->expr_tree = NULL;
diff --git a/libdw/libdw.map b/libdw/libdw.map
index 2e1c0e9e..decac05c 100644
--- a/libdw/libdw.map
+++ b/libdw/libdw.map
@@ -365,4 +365,8 @@ ELFUTILS_0.175 {
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 29f9a509..5b48ed8f 100644
--- a/libdwelf/ChangeLog
+++ b/libdwelf/ChangeLog
@@ -1,3 +1,9 @@
+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.
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/libdwelf.h b/libdwelf/libdwelf.h
index cb7ea091..dbb8f08c 100644
--- a/libdwelf/libdwelf.h
+++ b/libdwelf/libdwelf.h
@@ -128,9 +128,12 @@ 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
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 7c9a018b..04a39637 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,16 @@
+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
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index 76ba1506..430e13d5 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -967,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/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/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 bb91c152..4da7eeeb 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,20 @@
+2019-08-29 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (noinst_LIBRARIES): Add libebl.a.
+ (noinst_HEADERS): Add libebl.h.
+
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am: Make libebl.a non-PIC by default.
+ Add libebl_pic.a.
+ Remove LIBEBL_SUBDIR definition.
+ (gen_SOURCES): Remove.
+ * eblopenbackend.c (machines): Replace dsoname with init callback.
+ (try_dlopen): Remove.
+ (openbackend): Use machine callback instead of try_dlopen().
+ Don't assign result->dlhandle.
+ * eblclosebackend.c (ebl_closebackend): Remove dlclose() call.
+
2019-04-29 Mao Han <han_mao@c-sky.com>
* eblopenbackend.c: Add C-SKY.
diff --git a/libebl/Makefile.am b/libebl/Makefile.am
index 737de6b0..d0d475b8 100644
--- a/libebl/Makefile.am
+++ b/libebl/Makefile.am
@@ -28,36 +28,37 @@
## not, see <http://www.gnu.org/licenses/>.
##
include $(top_srcdir)/config/eu.am
+if BUILD_STATIC
AM_CFLAGS += $(fpic_CFLAGS)
+endif
AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libdw -I$(srcdir)/../libasm
VERSION = 1
-LIBEBL_SUBDIR = @LIBEBL_SUBDIR@
-lib_LIBRARIES = libebl.a
+noinst_LIBRARIES = libebl.a libebl_pic.a
-pkginclude_HEADERS = libebl.h
+libebl_a_SOURCES = eblopenbackend.c eblclosebackend.c eblreloctypename.c \
+ eblsegmenttypename.c eblsectiontypename.c \
+ eblmachineflagname.c eblsymboltypename.c \
+ ebldynamictagname.c eblsectionname.c \
+ eblsymbolbindingname.c eblbackendname.c eblosabiname.c \
+ eblmachineflagcheck.c eblmachinesectionflagcheck.c \
+ eblreloctypecheck.c eblrelocvaliduse.c \
+ eblrelocsimpletype.c ebldynamictagcheck.c \
+ eblcorenotetypename.c eblobjnotetypename.c eblcorenote.c \
+ eblobjnote.c ebldebugscnp.c eblgotpcreloccheck.c \
+ eblcopyrelocp.c eblsectionstripp.c eblelfclass.c \
+ eblelfdata.c eblelfmachine.c ebl_check_special_symbol.c \
+ eblbsspltp.c eblretval.c eblreginfo.c eblnonerelocp.c \
+ eblrelativerelocp.c eblsysvhashentrysize.c eblauxvinfo.c \
+ eblcheckobjattr.c ebl_check_special_section.c \
+ ebl_syscall_abi.c eblabicfi.c eblstother.c eblinitreg.c \
+ ebldwarftoregno.c eblnormalizepc.c eblunwind.c \
+ eblresolvesym.c eblcheckreloctargettype.c \
+ ebl_data_marker_symbol.c
-gen_SOURCES = eblopenbackend.c eblclosebackend.c \
- eblreloctypename.c eblsegmenttypename.c \
- eblsectiontypename.c eblmachineflagname.c \
- eblsymboltypename.c ebldynamictagname.c eblsectionname.c \
- eblsymbolbindingname.c eblbackendname.c eblosabiname.c \
- eblmachineflagcheck.c eblmachinesectionflagcheck.c \
- eblreloctypecheck.c eblrelocvaliduse.c eblrelocsimpletype.c \
- ebldynamictagcheck.c eblcorenotetypename.c eblobjnotetypename.c \
- eblcorenote.c eblobjnote.c ebldebugscnp.c \
- eblgotpcreloccheck.c eblcopyrelocp.c eblsectionstripp.c \
- eblelfclass.c eblelfdata.c eblelfmachine.c \
- ebl_check_special_symbol.c eblbsspltp.c eblretval.c \
- eblreginfo.c eblnonerelocp.c eblrelativerelocp.c \
- eblsysvhashentrysize.c eblauxvinfo.c eblcheckobjattr.c \
- ebl_check_special_section.c ebl_syscall_abi.c eblabicfi.c \
- eblstother.c eblinitreg.c ebldwarftoregno.c eblnormalizepc.c \
- eblunwind.c eblresolvesym.c eblcheckreloctargettype.c \
- ebl_data_marker_symbol.c
+libebl_pic_a_SOURCES =
+am_libebl_pic_a_OBJECTS = $(libebl_a_SOURCES:.c=.os)
-libebl_a_SOURCES = $(gen_SOURCES)
+noinst_HEADERS = libebl.h libeblP.h ebl-hooks.h
-noinst_HEADERS = libeblP.h ebl-hooks.h
-
-CLEANFILES += $(am_libebl_pic_a_OBJECTS)
+MOSTLYCLEANFILES = $(am_libebl_pic_a_OBJECTS)
diff --git a/libebl/eblclosebackend.c b/libebl/eblclosebackend.c
index 67fbdfe9..501e5c7b 100644
--- a/libebl/eblclosebackend.c
+++ b/libebl/eblclosebackend.c
@@ -44,10 +44,6 @@ ebl_closebackend (Ebl *ebl)
/* Run the destructor. */
ebl->destr (ebl);
- /* Close the dynamically loaded object. */
- if (ebl->dlhandle != NULL)
- (void) dlclose (ebl->dlhandle);
-
/* Free the resources. */
free (ebl);
}
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index 01711f5e..210b47e8 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -41,6 +41,22 @@
#include <system.h>
#include <libeblP.h>
+const char *i386_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *sh_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *x86_64_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *ia64_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *alpha_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *arm_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *aarch64_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *sparc_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *ppc_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *ppc64_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *s390_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *tilegx_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *m68k_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *bpf_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *riscv_init (Elf *, GElf_Half, Ebl *, size_t);
+const char *csky_init (Elf *, GElf_Half, Ebl *, size_t);
/* This table should contain the complete list of architectures as far
as the ELF specification is concerned. */
@@ -48,7 +64,7 @@
arrays to avoid relocations. */
static const struct
{
- const char *dsoname;
+ ebl_bhinit_t init;
const char *emulation;
const char *prefix;
int prefix_len;
@@ -57,85 +73,85 @@ static const struct
int data;
} machines[] =
{
- { "i386", "elf_i386", "i386", 4, EM_386, ELFCLASS32, ELFDATA2LSB },
- { "ia64", "elf_ia64", "ia64", 4, EM_IA_64, ELFCLASS64, ELFDATA2LSB },
- { "alpha", "elf_alpha", "alpha", 5, EM_ALPHA, ELFCLASS64, ELFDATA2LSB },
- { "x86_64", "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB },
- { "ppc", "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB },
- { "ppc64", "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB },
- { "tilegx", "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB },
+ { i386_init, "elf_i386", "i386", 4, EM_386, ELFCLASS32, ELFDATA2LSB },
+ { ia64_init, "elf_ia64", "ia64", 4, EM_IA_64, ELFCLASS64, ELFDATA2LSB },
+ { alpha_init, "elf_alpha", "alpha", 5, EM_ALPHA, ELFCLASS64, ELFDATA2LSB },
+ { x86_64_init, "elf_x86_64", "x86_64", 6, EM_X86_64, ELFCLASS64, ELFDATA2LSB },
+ { ppc_init, "elf_ppc", "ppc", 3, EM_PPC, ELFCLASS32, ELFDATA2MSB },
+ { ppc64_init, "elf_ppc64", "ppc64", 5, EM_PPC64, ELFCLASS64, ELFDATA2MSB },
+ { tilegx_init, "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB },
// XXX class and machine fields need to be filled in for all archs.
- { "sh", "elf_sh", "sh", 2, EM_SH, 0, 0 },
- { "arm", "ebl_arm", "arm", 3, EM_ARM, 0, 0 },
- { "sparc", "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 },
- { "sparc", "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 },
- { "sparc", "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 },
- { "s390", "ebl_s390", "s390", 4, EM_S390, 0, 0 },
-
- { "m32", "elf_m32", "m32", 3, EM_M32, 0, 0 },
- { "m68k", "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB },
- { "m88k", "elf_m88k", "m88k", 4, EM_88K, 0, 0 },
- { "i860", "elf_i860", "i860", 4, EM_860, 0, 0 },
- { "s370", "ebl_s370", "s370", 4, EM_S370, 0, 0 },
- { "parisc", "elf_parisc", "parisc", 6, EM_PARISC, 0, 0 },
- { "vpp500", "elf_vpp500", "vpp500", 5, EM_VPP500, 0, 0 },
- { "sparc", "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS, 0, 0 },
- { "i960", "elf_i960", "i960", 4, EM_960, 0, 0 },
- { "v800", "ebl_v800", "v800", 4, EM_V800, 0, 0 },
- { "fr20", "ebl_fr20", "fr20", 4, EM_FR20, 0, 0 },
- { "rh32", "ebl_rh32", "rh32", 4, EM_RH32, 0, 0 },
- { "rce", "ebl_rce", "rce", 3, EM_RCE, 0, 0 },
- { "tricore", "elf_tricore", "tricore", 7, EM_TRICORE, 0, 0 },
- { "arc", "elf_arc", "arc", 3, EM_ARC, 0, 0 },
- { "h8", "elf_h8_300", "h8_300", 6, EM_H8_300, 0, 0 },
- { "h8", "elf_h8_300h", "h8_300h", 6, EM_H8_300H, 0, 0 },
- { "h8", "elf_h8s", "h8s", 6, EM_H8S, 0, 0 },
- { "h8", "elf_h8_500", "h8_500", 6, EM_H8_500, 0, 0 },
- { "coldfire", "elf_coldfire", "coldfire", 8, EM_COLDFIRE, 0, 0 },
- { "m68k", "elf_68hc12", "68hc12", 6, EM_68HC12, 0, 0 },
- { "mma", "elf_mma", "mma", 3, EM_MMA, 0, 0 },
- { "pcp", "elf_pcp", "pcp", 3, EM_PCP, 0, 0 },
- { "ncpu", "elf_ncpu", "ncpu", 4, EM_NCPU, 0, 0 },
- { "ndr1", "elf_ndr1", "ndr1", 4, EM_NDR1, 0, 0 },
- { "starcore", "elf_starcore", "starcore", 8, EM_STARCORE, 0, 0 },
- { "me16", "elf_me16", "em16", 4, EM_ME16, 0, 0 },
- { "st100", "elf_st100", "st100", 5, EM_ST100, 0, 0 },
- { "tinyj", "elf_tinyj", "tinyj", 5, EM_TINYJ, 0, 0 },
- { "pdsp", "elf_pdsp", "pdsp", 4, EM_PDSP, 0, 0 },
- { "fx66", "elf_fx66", "fx66", 4, EM_FX66, 0, 0 },
- { "st9plus", "elf_st9plus", "st9plus", 7, EM_ST9PLUS, 0, 0 },
- { "st7", "elf_st7", "st7", 3, EM_ST7, 0, 0 },
- { "m68k", "elf_68hc16", "68hc16", 6, EM_68HC16, 0, 0 },
- { "m68k", "elf_68hc11", "68hc11", 6, EM_68HC11, 0, 0 },
- { "m68k", "elf_68hc08", "68hc08", 6, EM_68HC08, 0, 0 },
- { "m68k", "elf_68hc05", "68hc05", 6, EM_68HC05, 0, 0 },
- { "svx", "elf_svx", "svx", 3, EM_SVX, 0, 0 },
- { "st19", "elf_st19", "st19", 4, EM_ST19, 0, 0 },
- { "vax", "elf_vax", "vax", 3, EM_VAX, 0, 0 },
- { "cris", "elf_cris", "cris", 4, EM_CRIS, 0, 0 },
- { "javelin", "elf_javelin", "javelin", 7, EM_JAVELIN, 0, 0 },
- { "firepath", "elf_firepath", "firepath", 8, EM_FIREPATH, 0, 0 },
- { "zsp", "elf_zsp", "zsp", 3, EM_ZSP, 0, 0 },
- { "mmix", "elf_mmix", "mmix", 4, EM_MMIX, 0, 0 },
- { "hunay", "elf_huany", "huany", 5, EM_HUANY, 0, 0 },
- { "prism", "elf_prism", "prism", 5, EM_PRISM, 0, 0 },
- { "avr", "elf_avr", "avr", 3, EM_AVR, 0, 0 },
- { "fr30", "elf_fr30", "fr30", 4, EM_FR30, 0, 0 },
- { "dv10", "elf_dv10", "dv10", 4, EM_D10V, 0, 0 },
- { "dv30", "elf_dv30", "dv30", 4, EM_D30V, 0, 0 },
- { "v850", "elf_v850", "v850", 4, EM_V850, 0, 0 },
- { "m32r", "elf_m32r", "m32r", 4, EM_M32R, 0, 0 },
- { "mn10300", "elf_mn10300", "mn10300", 7, EM_MN10300, 0, 0 },
- { "mn10200", "elf_mn10200", "mn10200", 7, EM_MN10200, 0, 0 },
- { "pj", "elf_pj", "pj", 2, EM_PJ, 0, 0 },
- { "openrisc", "elf_openrisc", "openrisc", 8, EM_OPENRISC, 0, 0 },
- { "arc", "elf_arc_a5", "arc_a5", 6, EM_ARC_A5, 0, 0 },
- { "xtensa", "elf_xtensa", "xtensa", 6, EM_XTENSA, 0, 0 },
- { "aarch64", "elf_aarch64", "aarch64", 7, EM_AARCH64, ELFCLASS64, 0 },
- { "bpf", "elf_bpf", "bpf", 3, EM_BPF, 0, 0 },
- { "riscv", "elf_riscv", "riscv", 5, EM_RISCV, ELFCLASS64, ELFDATA2LSB },
- { "riscv", "elf_riscv", "riscv", 5, EM_RISCV, ELFCLASS32, ELFDATA2LSB },
- { "csky", "elf_csky", "csky", 4, EM_CSKY, ELFCLASS32, ELFDATA2LSB },
+ { sh_init, "elf_sh", "sh", 2, EM_SH, 0, 0 },
+ { arm_init, "ebl_arm", "arm", 3, EM_ARM, 0, 0 },
+ { sparc_init, "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 },
+ { sparc_init, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 },
+ { sparc_init, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 },
+ { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 },
+
+ { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 },
+ { m68k_init, "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB },
+ { NULL, "elf_m88k", "m88k", 4, EM_88K, 0, 0 },
+ { NULL, "elf_i860", "i860", 4, EM_860, 0, 0 },
+ { NULL, "ebl_s370", "s370", 4, EM_S370, 0, 0 },
+ { NULL, "elf_parisc", "parisc", 6, EM_PARISC, 0, 0 },
+ { NULL, "elf_vpp500", "vpp500", 5, EM_VPP500, 0, 0 },
+ { sparc_init, "elf_v8plus", "v8plus", 6, EM_SPARC32PLUS, 0, 0 },
+ { NULL, "elf_i960", "i960", 4, EM_960, 0, 0 },
+ { NULL, "ebl_v800", "v800", 4, EM_V800, 0, 0 },
+ { NULL, "ebl_fr20", "fr20", 4, EM_FR20, 0, 0 },
+ { NULL, "ebl_rh32", "rh32", 4, EM_RH32, 0, 0 },
+ { NULL, "ebl_rce", "rce", 3, EM_RCE, 0, 0 },
+ { NULL, "elf_tricore", "tricore", 7, EM_TRICORE, 0, 0 },
+ { NULL, "elf_arc", "arc", 3, EM_ARC, 0, 0 },
+ { NULL, "elf_h8_300", "h8_300", 6, EM_H8_300, 0, 0 },
+ { NULL, "elf_h8_300h", "h8_300h", 6, EM_H8_300H, 0, 0 },
+ { NULL, "elf_h8s", "h8s", 6, EM_H8S, 0, 0 },
+ { NULL, "elf_h8_500", "h8_500", 6, EM_H8_500, 0, 0 },
+ { NULL, "elf_coldfire", "coldfire", 8, EM_COLDFIRE, 0, 0 },
+ { m68k_init, "elf_68hc12", "68hc12", 6, EM_68HC12, 0, 0 },
+ { NULL, "elf_mma", "mma", 3, EM_MMA, 0, 0 },
+ { NULL, "elf_pcp", "pcp", 3, EM_PCP, 0, 0 },
+ { NULL, "elf_ncpu", "ncpu", 4, EM_NCPU, 0, 0 },
+ { NULL, "elf_ndr1", "ndr1", 4, EM_NDR1, 0, 0 },
+ { NULL, "elf_starcore", "starcore", 8, EM_STARCORE, 0, 0 },
+ { NULL, "elf_me16", "em16", 4, EM_ME16, 0, 0 },
+ { NULL, "elf_st100", "st100", 5, EM_ST100, 0, 0 },
+ { NULL, "elf_tinyj", "tinyj", 5, EM_TINYJ, 0, 0 },
+ { NULL, "elf_pdsp", "pdsp", 4, EM_PDSP, 0, 0 },
+ { NULL, "elf_fx66", "fx66", 4, EM_FX66, 0, 0 },
+ { NULL, "elf_st9plus", "st9plus", 7, EM_ST9PLUS, 0, 0 },
+ { NULL, "elf_st7", "st7", 3, EM_ST7, 0, 0 },
+ { m68k_init, "elf_68hc16", "68hc16", 6, EM_68HC16, 0, 0 },
+ { m68k_init, "elf_68hc11", "68hc11", 6, EM_68HC11, 0, 0 },
+ { m68k_init, "elf_68hc08", "68hc08", 6, EM_68HC08, 0, 0 },
+ { m68k_init, "elf_68hc05", "68hc05", 6, EM_68HC05, 0, 0 },
+ { NULL, "elf_svx", "svx", 3, EM_SVX, 0, 0 },
+ { NULL, "elf_st19", "st19", 4, EM_ST19, 0, 0 },
+ { NULL, "elf_vax", "vax", 3, EM_VAX, 0, 0 },
+ { NULL, "elf_cris", "cris", 4, EM_CRIS, 0, 0 },
+ { NULL, "elf_javelin", "javelin", 7, EM_JAVELIN, 0, 0 },
+ { NULL, "elf_firepath", "firepath", 8, EM_FIREPATH, 0, 0 },
+ { NULL, "elf_zsp", "zsp", 3, EM_ZSP, 0, 0 },
+ { NULL, "elf_mmix", "mmix", 4, EM_MMIX, 0, 0 },
+ { NULL, "elf_huany", "huany", 5, EM_HUANY, 0, 0 },
+ { NULL, "elf_prism", "prism", 5, EM_PRISM, 0, 0 },
+ { NULL, "elf_avr", "avr", 3, EM_AVR, 0, 0 },
+ { NULL, "elf_fr30", "fr30", 4, EM_FR30, 0, 0 },
+ { NULL, "elf_dv10", "dv10", 4, EM_D10V, 0, 0 },
+ { NULL, "elf_dv30", "dv30", 4, EM_D30V, 0, 0 },
+ { NULL, "elf_v850", "v850", 4, EM_V850, 0, 0 },
+ { NULL, "elf_m32r", "m32r", 4, EM_M32R, 0, 0 },
+ { NULL, "elf_mn10300", "mn10300", 7, EM_MN10300, 0, 0 },
+ { NULL, "elf_mn10200", "mn10200", 7, EM_MN10200, 0, 0 },
+ { NULL, "elf_pj", "pj", 2, EM_PJ, 0, 0 },
+ { NULL, "elf_openrisc", "openrisc", 8, EM_OPENRISC, 0, 0 },
+ { NULL, "elf_arc_a5", "arc_a5", 6, EM_ARC_A5, 0, 0 },
+ { NULL, "elf_xtensa", "xtensa", 6, EM_XTENSA, 0, 0 },
+ { aarch64_init, "elf_aarch64", "aarch64", 7, EM_AARCH64, ELFCLASS64, 0 },
+ { bpf_init, "elf_bpf", "bpf", 3, EM_BPF, 0, 0 },
+ { riscv_init, "elf_riscv", "riscv", 5, EM_RISCV, ELFCLASS64, ELFDATA2LSB },
+ { riscv_init, "elf_riscv", "riscv", 5, EM_RISCV, ELFCLASS32, ELFDATA2LSB },
+ { csky_init, "elf_csky", "csky", 4, EM_CSKY, ELFCLASS32, ELFDATA2LSB },
};
#define nmachines (sizeof (machines) / sizeof (machines[0]))
@@ -252,50 +268,6 @@ fill_defaults (Ebl *result)
result->sysvhash_entrysize = sizeof (Elf32_Word);
}
-static Ebl *
-try_dlopen (const char *dsoname, Elf *elf, GElf_Half machine, size_t cnt,
- Ebl *result)
-{
- void *h = dlopen (dsoname, RTLD_LAZY);
-
- if (h != NULL)
- {
- /* We managed to load the object. Now see whether the
- initialization function likes our file. */
- static const char version[] = MODVERSION;
- const char *modversion;
- ebl_bhinit_t initp;
-
- // We use a static number to help the compiler see we don't
- // overflow the stack with an arbitrary number.
- assert (machines[cnt].prefix_len <= MAX_PREFIX_LEN);
- char symname[MAX_PREFIX_LEN + sizeof "_init"];
-
- strcpy (mempcpy (symname, machines[cnt].prefix,
- machines[cnt].prefix_len), "_init");
-
- initp = (ebl_bhinit_t) dlsym (h, symname);
- if (initp != NULL
- && (modversion = initp (elf, machine, result, sizeof (Ebl)))
- && strcmp (version, modversion) == 0)
- {
- /* We found a module to handle our file. */
- result->dlhandle = h;
- result->elf = elf;
-
- /* A few entries are mandatory. */
- assert (result->destr != NULL);
-
- return result;
- }
-
- /* Not the module we need. */
- (void) dlclose (h);
- }
-
- return NULL;
-}
-
/* Find an appropriate backend for the file associated with ELF. */
static Ebl *
openbackend (Elf *elf, const char *emulation, GElf_Half machine)
@@ -357,46 +329,17 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine)
result->data = elf->state.elf32.ehdr->e_ident[EI_DATA];
}
-#ifndef LIBEBL_SUBDIR
-# define LIBEBL_SUBDIR PACKAGE
-#endif
+ if (machines[cnt].init &&
+ machines[cnt].init (elf, machine, result, sizeof(Ebl)))
+ {
+ result->elf = elf;
+ /* A few entries are mandatory. */
+ assert (result->destr != NULL);
+ return result;
+ }
-/* 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 "/"
-
- /* Give it a try. At least the machine type matches. First
- try to load the module from the (bin) origin path. */
- char dsoname[100];
- strcpy (stpcpy (stpcpy (dsoname, BINORIGINDIR "libebl_"),
- machines[cnt].dsoname),
- ".so");
- if (try_dlopen (dsoname, elf, machine, cnt, result) != NULL)
- return result;
-
- /* Retry with the (lib) origin path. */
- strcpy (stpcpy (stpcpy (dsoname, LIBORIGINDIR "libebl_"),
- machines[cnt].dsoname),
- ".so");
- if (try_dlopen (dsoname, elf, machine, cnt, result) != NULL)
- return result;
-
- /* Try without an explicit path (LD_LIBRARY_PATH or RPATH). */
- strcpy (stpcpy (stpcpy (dsoname, "libebl_"),
- machines[cnt].dsoname),
- ".so");
- if (try_dlopen (dsoname, elf, machine, cnt, result) != NULL)
- return result;
-
- /* We cannot find a DSO but the emulation/machine ID matches.
+ /* We don't have a backend but the emulation/machine ID matches.
Return that information. */
- result->dlhandle = NULL;
result->elf = elf;
fill_defaults (result);
@@ -404,7 +347,6 @@ openbackend (Elf *elf, const char *emulation, GElf_Half machine)
}
/* Nothing matched. We use only the default callbacks. */
- result->dlhandle = NULL;
result->elf = elf;
result->emulation = "<unknown>";
fill_defaults (result);
diff --git a/libebl/libebl.h b/libebl/libebl.h
index 24922eb8..06a14c45 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -30,13 +30,7 @@
/* This is the interface for the Elfutils Backend Library.
It is a completely UNSUPPORTED interface. Don't use any libebl
function directly. These are only for internal elfutils backends
- and tools. There is NO source or binary compatible guarantee.
-
- The ABI of the backend modules is not guaranteed. Really, no guarantee
- whatsoever. We are enforcing this in the code. The modules and their
- users must match. No third-party EBL module are supported or allowed.
- The only reason there are separate modules is to not have the code for
- all architectures in all the binaries. */
+ and tools. There is NO source or binary compatible guarantee. */
#ifndef _LIBEBL_H
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
index a5869685..fd0fcc98 100644
--- a/libebl/libeblP.h
+++ b/libebl/libeblP.h
@@ -77,9 +77,6 @@ struct ebl
ebl_resolve_sym_value if available for this arch. */
GElf_Addr fd_addr;
Elf_Data *fd_data;
-
- /* Internal data. */
- void *dlhandle;
};
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..9772dac8 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-28 13:23+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:3437
+#: src/readelf.c:11386 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:6154
#, 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:9902 src/readelf.c:10502
+#: src/readelf.c:10603 src/readelf.c:10785
#, 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:360
#, 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:563
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:623
+#: src/readelf.c:1435 src/readelf.c:1586 src/readelf.c:1787 src/readelf.c:1993
+#: src/readelf.c:2183 src/readelf.c:2361 src/readelf.c:2437 src/readelf.c:2695
+#: src/readelf.c:2771 src/readelf.c:2858 src/readelf.c:3456 src/readelf.c:3506
+#: src/readelf.c:3569 src/readelf.c:11218 src/readelf.c:12403
+#: src/readelf.c:12614 src/readelf.c:12682 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:568
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:2088 src/readelf.c:2280
msgid "INVALID SYMBOL"
msgstr ""
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2122 src/readelf.c:2316
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:342
msgid "yes"
msgstr "ja"
-#: src/readelf.c:329
+#: src/readelf.c:343
msgid "no"
msgstr "nein"
-#: src/readelf.c:518
+#: src/readelf.c:536
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr ""
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:607 src/readelf.c:718
#, 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:614 src/readelf.c:941 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:632 src/readelf.c:1251 src/readelf.c:1459
#, 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:641 src/readelf.c:1258 src/readelf.c:1467 src/readelf.c:12634
#: 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:649
#, 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:658 src/readelf.c:6564 src/readelf.c:10490 src/readelf.c:10592
+#: src/readelf.c:10770
#, c-format
msgid "cannot get %s content: %s"
msgstr ""
-#: src/readelf.c:656
+#: src/readelf.c:674
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/readelf.c:665
+#: src/readelf.c:683
#, 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:689 src/readelf.c:706 src/readelf.c:735
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr ""
-#: src/readelf.c:678
+#: src/readelf.c:696
#, 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:730
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr ""
-#: src/readelf.c:816
+#: src/readelf.c:834
#, c-format
msgid "cannot stat input file"
msgstr ""
-#: src/readelf.c:818
+#: src/readelf.c:836
#, c-format
msgid "input file is empty"
msgstr ""
-#: src/readelf.c:820
+#: src/readelf.c:838
#, c-format
msgid "failed reading '%s': %s"
msgstr "Konnte '%s' nicht lesen: %s"
-#: src/readelf.c:849
+#: src/readelf.c:867
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:908
+#: src/readelf.c:926
#, c-format
msgid "cannot read ELF header: %s"
msgstr ""
-#: src/readelf.c:916
+#: src/readelf.c:934
#, c-format
msgid "cannot create EBL handle"
msgstr ""
-#: src/readelf.c:929
+#: src/readelf.c:947
#, 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:979
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "Konnte %s: %s nicht lesen"
-#: src/readelf.c:1022
+#: src/readelf.c:1040
msgid "NONE (None)"
msgstr ""
-#: src/readelf.c:1023
+#: src/readelf.c:1041
msgid "REL (Relocatable file)"
msgstr ""
-#: src/readelf.c:1024
+#: src/readelf.c:1042
msgid "EXEC (Executable file)"
msgstr ""
-#: src/readelf.c:1025
+#: src/readelf.c:1043
msgid "DYN (Shared object file)"
msgstr ""
-#: src/readelf.c:1026
+#: src/readelf.c:1044
msgid "CORE (Core file)"
msgstr ""
-#: src/readelf.c:1031
+#: src/readelf.c:1049
#, c-format
msgid "OS Specific: (%x)\n"
msgstr ""
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1051
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr ""
-#: src/readelf.c:1043
+#: src/readelf.c:1061
msgid ""
"ELF Header:\n"
" Magic: "
msgstr ""
-#: src/readelf.c:1047
+#: src/readelf.c:1065
#, c-format
msgid ""
"\n"
" Class: %s\n"
msgstr ""
-#: src/readelf.c:1052
+#: src/readelf.c:1070
#, fuzzy, c-format
msgid " Data: %s\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1076
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr ""
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1078 src/readelf.c:1100
msgid "(current)"
msgstr "(aktuell)"
-#: src/readelf.c:1064
+#: src/readelf.c:1082
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: src/readelf.c:1067
+#: src/readelf.c:1085
#, c-format
msgid " ABI Version: %hhd\n"
msgstr ""
-#: src/readelf.c:1070
+#: src/readelf.c:1088
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1073
+#: src/readelf.c:1093
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: src/readelf.c:1075
+#: src/readelf.c:1095
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Daten: %s\n"
+
+#: src/readelf.c:1098
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: src/readelf.c:1079
+#: src/readelf.c:1102
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1082
+#: src/readelf.c:1105
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1083 src/readelf.c:1086
+#: src/readelf.c:1106 src/readelf.c:1109
msgid "(bytes into file)"
msgstr ""
-#: src/readelf.c:1085
+#: src/readelf.c:1108
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1088
+#: src/readelf.c:1111
#, c-format
msgid " Flags: %s\n"
msgstr ""
-#: src/readelf.c:1091
+#: src/readelf.c:1114
#, 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:1115 src/readelf.c:1118 src/readelf.c:1135
msgid "(bytes)"
msgstr "(Bytes)"
-#: src/readelf.c:1094
+#: src/readelf.c:1117
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1097
+#: src/readelf.c:1120
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1104
+#: src/readelf.c:1127
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr ""
-#: src/readelf.c:1107 src/readelf.c:1124 src/readelf.c:1138
+#: src/readelf.c:1130 src/readelf.c:1147 src/readelf.c:1161
msgid " ([0] not available)"
msgstr ""
-#: src/readelf.c:1111
+#: src/readelf.c:1134
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1114
+#: src/readelf.c:1137
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1121
+#: src/readelf.c:1144
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr ""
#. We managed to get the zeroth section.
-#: src/readelf.c:1134
+#: src/readelf.c:1157
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr ""
-#: src/readelf.c:1142
+#: src/readelf.c:1165
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
"\n"
msgstr ""
-#: src/readelf.c:1146
+#: src/readelf.c:1169
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
"\n"
msgstr ""
-#: src/readelf.c:1193 src/readelf.c:1401
+#: src/readelf.c:1216 src/readelf.c:1424
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1219
#, 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:1228
#, 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:1231
msgid "Section Headers:"
msgstr ""
-#: src/readelf.c:1211
+#: src/readelf.c:1234
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
msgstr ""
-#: src/readelf.c:1213
+#: src/readelf.c:1236
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
msgstr ""
-#: src/readelf.c:1218
+#: src/readelf.c:1241
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1243
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1319
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr ""
-#: src/readelf.c:1307
+#: src/readelf.c:1330
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr ""
-#: src/readelf.c:1325
+#: src/readelf.c:1348
msgid "Program Headers:"
msgstr "Programm-Köpfe:"
-#: src/readelf.c:1327
+#: src/readelf.c:1350
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1330
+#: src/readelf.c:1353
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1387
+#: src/readelf.c:1410
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr ""
-#: src/readelf.c:1414
+#: src/readelf.c:1437
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:1448 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:1594
#, c-format
msgid ""
"\n"
@@ -4134,7 +4139,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1576
+#: src/readelf.c:1599
#, c-format
msgid ""
"\n"
@@ -4145,31 +4150,31 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1584
+#: src/readelf.c:1607
msgid "<INVALID SYMBOL>"
msgstr ""
-#: src/readelf.c:1598
+#: src/readelf.c:1621
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:1644 src/readelf.c:2371 src/readelf.c:3472 src/readelf.c:12505
+#: src/readelf.c:12512 src/readelf.c:12556 src/readelf.c:12563
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1649 src/readelf.c:2376 src/readelf.c:3477
#, 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:1793 src/readelf.c:2443 src/readelf.c:2701 src/readelf.c:2777
+#: src/readelf.c:3081 src/readelf.c:3155 src/readelf.c:5352
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:1773
+#: src/readelf.c:1796
#, c-format
msgid ""
"\n"
@@ -4182,43 +4187,43 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1783
+#: src/readelf.c:1806
msgid " Type Value\n"
msgstr ""
-#: src/readelf.c:1807
+#: src/readelf.c:1830
#, c-format
msgid "Shared library: [%s]\n"
msgstr ""
-#: src/readelf.c:1812
+#: src/readelf.c:1835
#, c-format
msgid "Library soname: [%s]\n"
msgstr ""
-#: src/readelf.c:1817
+#: src/readelf.c:1840
#, c-format
msgid "Library rpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1822
+#: src/readelf.c:1845
#, c-format
msgid "Library runpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1842
+#: src/readelf.c:1865
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr ""
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1978 src/readelf.c:2168
#, c-format
msgid ""
"\n"
"Invalid symbol table at offset %#0<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1996 src/readelf.c:2186
#, 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:2011 src/readelf.c:2201
#, c-format
msgid ""
"\n"
@@ -4248,29 +4253,29 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1998
+#: src/readelf.c:2021
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2000
+#: src/readelf.c:2023
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:2076 src/readelf.c:2087 src/readelf.c:2100 src/readelf.c:2121
+#: src/readelf.c:2133 src/readelf.c:2267 src/readelf.c:2279 src/readelf.c:2293
+#: src/readelf.c:2315 src/readelf.c:2328
msgid "<INVALID RELOC>"
msgstr ""
-#: src/readelf.c:2188
+#: src/readelf.c:2211
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2190
+#: src/readelf.c:2213
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2428
+#: src/readelf.c:2451
#, c-format
msgid ""
"\n"
@@ -4281,40 +4286,40 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2433
+#: src/readelf.c:2456
#, 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:2464
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2443
+#: src/readelf.c:2466
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2463
+#: src/readelf.c:2486
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr ""
-#: src/readelf.c:2551
+#: src/readelf.c:2574
#, c-format
msgid "bad dynamic symbol"
msgstr ""
-#: src/readelf.c:2633
+#: src/readelf.c:2656
msgid "none"
msgstr "keine"
-#: src/readelf.c:2650
+#: src/readelf.c:2673
msgid "| <unknown>"
msgstr "| <unbekannt>"
-#: src/readelf.c:2681
+#: src/readelf.c:2704
#, c-format
msgid ""
"\n"
@@ -4327,17 +4332,17 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2702
+#: src/readelf.c:2725
#, 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:2738
#, 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:2781
#, c-format
msgid ""
"\n"
@@ -4350,18 +4355,18 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2786
+#: src/readelf.c:2809
#, c-format
msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"
msgstr ""
-#: src/readelf.c:2801
+#: src/readelf.c:2824
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr ""
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3085
#, c-format
msgid ""
"\n"
@@ -4374,15 +4379,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3090
+#: src/readelf.c:3113
msgid " 0 *local* "
msgstr " 0 *lokal* "
-#: src/readelf.c:3095
+#: src/readelf.c:3118
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3137
+#: src/readelf.c:3160
#, c-format
msgid ""
"\n"
@@ -4397,66 +4402,66 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3159
+#: src/readelf.c:3182
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr ""
-#: src/readelf.c:3161
+#: src/readelf.c:3184
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3191
#, 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:3204
#, 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:3222 src/readelf.c:3286 src/readelf.c:3352
#, c-format
msgid "cannot get data for section %d: %s"
msgstr ""
-#: src/readelf.c:3207
+#: src/readelf.c:3230
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3236
+#: src/readelf.c:3259
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3271
+#: src/readelf.c:3294
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3302
+#: src/readelf.c:3325
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3338
+#: src/readelf.c:3361
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3405
+#: src/readelf.c:3428
#, 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:3517
#, c-format
msgid ""
"\n"
@@ -4467,13 +4472,13 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3508
+#: src/readelf.c:3531
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
msgstr ""
-#: src/readelf.c:3558
+#: src/readelf.c:3583
#, c-format
msgid ""
"\n"
@@ -4481,102 +4486,102 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:3575
+#: src/readelf.c:3600
msgid " Owner Size\n"
msgstr ""
-#: src/readelf.c:3604
+#: src/readelf.c:3629
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3668
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3673
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3722
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3725
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3728
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3738
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3741
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3811
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "mprotect fehlgeschlagen"
-#: src/readelf.c:4268
+#: src/readelf.c:4293
msgid "empty block"
msgstr ""
-#: src/readelf.c:4271
+#: src/readelf.c:4296
#, c-format
msgid "%zu byte block:"
msgstr ""
-#: src/readelf.c:4749
+#: src/readelf.c:4774
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr ""
-#: src/readelf.c:4813
+#: src/readelf.c:4838
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:4820
+#: src/readelf.c:4845
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:4827
+#: src/readelf.c:4852
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:4834
+#: src/readelf.c:4859
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:4931
+#: src/readelf.c:4956
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:4939
+#: src/readelf.c:4964
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5017
+#: src/readelf.c:5042
#, c-format
msgid ""
"\n"
@@ -4584,79 +4589,79 @@ msgid ""
" [ Code]\n"
msgstr ""
-#: src/readelf.c:5025
+#: src/readelf.c:5050
#, c-format
msgid ""
"\n"
"Abbreviation section at offset %<PRIu64>:\n"
msgstr ""
-#: src/readelf.c:5038
+#: src/readelf.c:5063
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr ""
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, 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:5112 src/readelf.c:5421 src/readelf.c:5588 src/readelf.c:5973
+#: src/readelf.c:6574 src/readelf.c:8311 src/readelf.c:8997 src/readelf.c:9433
+#: src/readelf.c:9678 src/readelf.c:9844 src/readelf.c:10231
+#: src/readelf.c:10291
#, c-format
msgid ""
"\n"
"DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:5100
+#: src/readelf.c:5125
#, 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:5225 src/readelf.c:5249 src/readelf.c:5633 src/readelf.c:9042
#, 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:5227 src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055
#, 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:5228 src/readelf.c:5273 src/readelf.c:5655 src/readelf.c:9064
#, 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:5230 src/readelf.c:5283 src/readelf.c:5665 src/readelf.c:9074
#, 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:5268 src/readelf.c:5650 src/readelf.c:9059 src/readelf.c:10423
#, 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:5278 src/readelf.c:5491 src/readelf.c:5660 src/readelf.c:9069
#, 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:5289 src/readelf.c:5502 src/readelf.c:5670 src/readelf.c:9079
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5342 src/readelf.c:5416
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ""
-#: src/readelf.c:5332
+#: src/readelf.c:5357
#, c-format
msgid ""
"\n"
@@ -4667,241 +4672,241 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:5363
+#: src/readelf.c:5388
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5390
#, 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:5434 src/readelf.c:8338
#, 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:5438 src/readelf.c:5614 src/readelf.c:6598 src/readelf.c:8349
+#: src/readelf.c:9023
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:5429
+#: src/readelf.c:5454
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5441
+#: src/readelf.c:5466
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5470
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5456
+#: src/readelf.c:5481
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5462
+#: src/readelf.c:5487
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5473
+#: src/readelf.c:5498
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr ""
-#: src/readelf.c:5528
+#: src/readelf.c:5553
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5572
+#: src/readelf.c:5597
#, 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:5620 src/readelf.c:9029
#, 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:5675 src/readelf.c:9084
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5691 src/readelf.c:9100
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5693 src/readelf.c:9102
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5699 src/readelf.c:9108
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5710 src/readelf.c:9119
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5714 src/readelf.c:9123
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5766
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "Ungültige Daten"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5951 src/readelf.c:9411
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:5943
+#: src/readelf.c:5968
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ""
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6004 src/readelf.c:9466
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6006 src/readelf.c:9468
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6015 src/readelf.c:9494 src/readelf.c:9520
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6036 src/readelf.c:9600
#, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr ""
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6044 src/readelf.c:9608
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6299
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6527
+#: src/readelf.c:6552
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:6545
+#: src/readelf.c:6570
#, c-format
msgid ""
"\n"
"Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:6595
+#: src/readelf.c:6620
#, c-format
msgid ""
"\n"
" [%6tx] Zero terminator\n"
msgstr ""
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6721 src/readelf.c:6875
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ungültige Abschnittsausrichtung"
-#: src/readelf.c:6711
+#: src/readelf.c:6736
msgid "FDE address encoding: "
msgstr ""
-#: src/readelf.c:6717
+#: src/readelf.c:6742
msgid "LSDA pointer encoding: "
msgstr ""
-#: src/readelf.c:6827
+#: src/readelf.c:6852
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6834
+#: src/readelf.c:6859
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6871
+#: src/readelf.c:6896
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:6956
+#: src/readelf.c:6981
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr ""
-#: src/readelf.c:6966
+#: src/readelf.c:6991
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr ""
-#: src/readelf.c:6988
+#: src/readelf.c:7013
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr ""
-#: src/readelf.c:7321
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Ungültige Datei"
-#: src/readelf.c:7325
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:7329
+#: src/readelf.c:7351
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:7552
+#: src/readelf.c:7664
#, c-format
msgid ""
"\n"
@@ -4909,12 +4914,12 @@ msgid ""
" [Offset]\n"
msgstr ""
-#: src/readelf.c:7602
+#: src/readelf.c:7714
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7733
#, 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:7745
#, 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:7755 src/readelf.c:7918
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7782
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7811
#, c-format
msgid "cannot get DIE offset: %s"
msgstr ""
-#: src/readelf.c:7708
+#: src/readelf.c:7820
#, 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:7858
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr ""
-#: src/readelf.c:7754
+#: src/readelf.c:7866
#, c-format
msgid "cannot get next DIE: %s"
msgstr ""
-#: src/readelf.c:7798
+#: src/readelf.c:7910
#, 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:7962
#, c-format
msgid ""
"\n"
@@ -4977,18 +4982,18 @@ msgid ""
"\n"
msgstr ""
-#: src/readelf.c:8182
+#: src/readelf.c:8294
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:8213
+#: src/readelf.c:8325
#, c-format
msgid "cannot get line data section data: %s"
msgstr ""
#. Print what we got so far.
-#: src/readelf.c:8315
+#: src/readelf.c:8427
#, c-format
msgid ""
"\n"
@@ -5007,171 +5012,171 @@ msgid ""
"Opcodes:\n"
msgstr ""
-#: src/readelf.c:8337
+#: src/readelf.c:8449
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:8345
+#: src/readelf.c:8457
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:8353
+#: src/readelf.c:8465
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr ""
-#: src/readelf.c:8363
+#: src/readelf.c:8475
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:8378
+#: src/readelf.c:8490
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:8389
+#: src/readelf.c:8501
msgid ""
"\n"
"Directory table:"
msgstr ""
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8507 src/readelf.c:8584
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8466
+#: src/readelf.c:8578
msgid ""
"\n"
"File name table:"
msgstr ""
-#: src/readelf.c:8527
+#: src/readelf.c:8639
msgid " Entry Dir Time Size Name"
msgstr ""
-#: src/readelf.c:8564
+#: src/readelf.c:8676
msgid ""
"\n"
"Line number statements:"
msgstr ""
-#: src/readelf.c:8587
+#: src/readelf.c:8699
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8621
+#: src/readelf.c:8733
#, c-format
msgid " special opcode %u: address+%u = "
msgstr ""
-#: src/readelf.c:8625
+#: src/readelf.c:8737
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8628
+#: src/readelf.c:8740
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8758
#, c-format
msgid " extended opcode %u: "
msgstr ""
-#: src/readelf.c:8651
+#: src/readelf.c:8763
msgid " end of sequence"
msgstr ""
-#: src/readelf.c:8669
+#: src/readelf.c:8781
#, fuzzy, c-format
msgid " set address to "
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:8697
+#: src/readelf.c:8809
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-#: src/readelf.c:8711
+#: src/readelf.c:8823
#, c-format
msgid " set discriminator to %u\n"
msgstr ""
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8828
#, fuzzy
msgid " unknown opcode"
msgstr "unbekannter Typ"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8840
msgid " copy"
msgstr ""
-#: src/readelf.c:8739
+#: src/readelf.c:8851
#, c-format
msgid " advance address by %u to "
msgstr ""
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8855 src/readelf.c:8916
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8867
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr ""
-#: src/readelf.c:8765
+#: src/readelf.c:8877
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8776
+#: src/readelf.c:8888
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:8783
+#: src/readelf.c:8895
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8901
msgid " set basic block flag"
msgstr ""
-#: src/readelf.c:8800
+#: src/readelf.c:8912
#, c-format
msgid " advance address by constant %u to "
msgstr ""
-#: src/readelf.c:8820
+#: src/readelf.c:8932
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8830
+#: src/readelf.c:8942
msgid " set prologue end flag"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8947
msgid " set epilogue begin flag"
msgstr ""
-#: src/readelf.c:8845
+#: src/readelf.c:8957
#, 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:8966
#, 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:9006
#, 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:9175
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "Ungültige Daten"
-#: src/readelf.c:9316
+#: src/readelf.c:9428
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ""
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9635 src/readelf.c:10679
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9690 src/readelf.c:9853
#, c-format
msgid "cannot get macro information section data: %s"
msgstr ""
-#: src/readelf.c:9658
+#: src/readelf.c:9770
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr ""
-#: src/readelf.c:9681
+#: src/readelf.c:9793
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr ""
-#: src/readelf.c:9782
+#: src/readelf.c:9894
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9906
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9912 src/readelf.c:10799
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9807
+#: src/readelf.c:9919
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9948
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:9844
+#: src/readelf.c:9956
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr ""
-#: src/readelf.c:9869
+#: src/readelf.c:9981
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr ""
-#: src/readelf.c:9876
+#: src/readelf.c:9988
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:10000
#, c-format
msgid " %<PRIu8> arguments:"
msgstr ""
-#: src/readelf.c:9903
+#: src/readelf.c:10015
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10104
+#: src/readelf.c:10216
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:10148
+#: src/readelf.c:10260
#, c-format
msgid ""
"\n"
@@ -5283,72 +5288,72 @@ msgid ""
" %*s String\n"
msgstr ""
-#: src/readelf.c:10163
+#: src/readelf.c:10275
#, c-format
msgid " *** error, missing string terminator\n"
msgstr ""
-#: src/readelf.c:10192
+#: src/readelf.c:10304
#, 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:10403
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10405
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10307
+#: src/readelf.c:10419
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10428
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10370
+#: src/readelf.c:10482
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:10472
+#: src/readelf.c:10584
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:10495
+#: src/readelf.c:10607
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:10507
+#: src/readelf.c:10619
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:10522
+#: src/readelf.c:10634
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:10535
+#: src/readelf.c:10647
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:10549
+#: src/readelf.c:10661
#, 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:10734
#, c-format
msgid "invalid TType encoding"
msgstr ""
-#: src/readelf.c:10649
+#: src/readelf.c:10761
#, c-format
msgid ""
"\n"
"GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:10790
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10808
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10703
+#: src/readelf.c:10815
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10710
+#: src/readelf.c:10822
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10717
+#: src/readelf.c:10829
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10724
+#: src/readelf.c:10836
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:10738
+#: src/readelf.c:10850
#, c-format
msgid ""
"\n"
" CU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10763
+#: src/readelf.c:10875
#, c-format
msgid ""
"\n"
" TU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10792
+#: src/readelf.c:10904
#, c-format
msgid ""
"\n"
" Address list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:10824
+#: src/readelf.c:10936
#, c-format
msgid ""
"\n"
" Symbol table at offset %#<PRIx32> contains %zu slots:\n"
msgstr ""
-#: src/readelf.c:10962
+#: src/readelf.c:11074
#, 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:11437 src/readelf.c:12059 src/readelf.c:12170
+#: src/readelf.c:12228
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:11688
+#: src/readelf.c:11800
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:12195
+#: src/readelf.c:12307
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:12224
+#: src/readelf.c:12336
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:12276
+#: src/readelf.c:12388
#, 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:12422
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12326
+#: src/readelf.c:12445
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12373
+#: src/readelf.c:12492
#, 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:12519 src/readelf.c:12570
#, 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:12524
#, 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:12529
#, c-format
msgid ""
"\n"
@@ -5500,21 +5505,21 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12424
+#: src/readelf.c:12543
#, 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:12575
#, c-format
msgid ""
"\n"
"String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12461
+#: src/readelf.c:12580
#, c-format
msgid ""
"\n"
@@ -5522,45 +5527,45 @@ msgid ""
"offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12510
+#: src/readelf.c:12629
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:12539
+#: src/readelf.c:12658
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:12596
+#: src/readelf.c:12715
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:12599
+#: src/readelf.c:12718
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:12603
+#: src/readelf.c:12722
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %zu entries:\n"
msgstr ""
-#: src/readelf.c:12621
+#: src/readelf.c:12740
#, 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:12745
#, 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..9b1ce7a6 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-28 13:23+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:3437
+#: src/readelf.c:11386 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:6154
#, 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:9902 src/readelf.c:10502
+#: src/readelf.c:10603 src/readelf.c:10785
#, 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:360
#, 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:563
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:623
+#: src/readelf.c:1435 src/readelf.c:1586 src/readelf.c:1787 src/readelf.c:1993
+#: src/readelf.c:2183 src/readelf.c:2361 src/readelf.c:2437 src/readelf.c:2695
+#: src/readelf.c:2771 src/readelf.c:2858 src/readelf.c:3456 src/readelf.c:3506
+#: src/readelf.c:3569 src/readelf.c:11218 src/readelf.c:12403
+#: src/readelf.c:12614 src/readelf.c:12682 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:568
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:2088 src/readelf.c:2280
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:2122 src/readelf.c:2316
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:342
msgid "yes"
msgstr "sí"
-#: src/readelf.c:329
+#: src/readelf.c:343
msgid "no"
msgstr "no"
-#: src/readelf.c:518
+#: src/readelf.c:536
#, 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:607 src/readelf.c:718
#, 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:614 src/readelf.c:941 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:632 src/readelf.c:1251 src/readelf.c:1459
#, 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:641 src/readelf.c:1258 src/readelf.c:1467 src/readelf.c:12634
#: 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:649
#, 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:658 src/readelf.c:6564 src/readelf.c:10490 src/readelf.c:10592
+#: src/readelf.c:10770
#, c-format
msgid "cannot get %s content: %s"
msgstr "No se puede obtener el contenido %s: %s"
-#: src/readelf.c:656
+#: src/readelf.c:674
#, 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:683
#, 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:689 src/readelf.c:706 src/readelf.c:735
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:678
+#: src/readelf.c:696
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:712
+#: src/readelf.c:730
#, 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:834
#, c-format
msgid "cannot stat input file"
msgstr "no sepudo stat archivo de entrada"
-#: src/readelf.c:818
+#: src/readelf.c:836
#, c-format
msgid "input file is empty"
msgstr "archivo de entrada vacío"
-#: src/readelf.c:820
+#: src/readelf.c:838
#, c-format
msgid "failed reading '%s': %s"
msgstr "Falló lectura de '%s': %s"
-#: src/readelf.c:849
+#: src/readelf.c:867
#, 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:926
#, c-format
msgid "cannot read ELF header: %s"
msgstr "no se pudo leer encabezamiento ELF: %s"
-#: src/readelf.c:916
+#: src/readelf.c:934
#, c-format
msgid "cannot create EBL handle"
msgstr "no se puede crear EBL"
-#: src/readelf.c:929
+#: src/readelf.c:947
#, 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:979
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "no sepuede leer %s: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1040
msgid "NONE (None)"
msgstr "NONE (Ninguno)"
-#: src/readelf.c:1023
+#: src/readelf.c:1041
msgid "REL (Relocatable file)"
msgstr "REL (Fichero reubicable)"
-#: src/readelf.c:1024
+#: src/readelf.c:1042
msgid "EXEC (Executable file)"
msgstr "EXEC (Fichero ejecutable)"
-#: src/readelf.c:1025
+#: src/readelf.c:1043
msgid "DYN (Shared object file)"
msgstr "DYN (Fichero objeto compartido)"
-#: src/readelf.c:1026
+#: src/readelf.c:1044
msgid "CORE (Core file)"
msgstr "CORE (Fichero núcleo)"
-#: src/readelf.c:1031
+#: src/readelf.c:1049
#, 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:1051
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Específico del procesador: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1061
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4221,7 +4221,7 @@ msgstr ""
"Encabezamiento ELF:\n"
" Mágico: "
-#: src/readelf.c:1047
+#: src/readelf.c:1065
#, c-format
msgid ""
"\n"
@@ -4230,120 +4230,125 @@ msgstr ""
"\n"
" Clase: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1070
#, c-format
msgid " Data: %s\n"
msgstr " Datos: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1076
#, 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:1078 src/readelf.c:1100
msgid "(current)"
msgstr "(actual)"
-#: src/readelf.c:1064
+#: src/readelf.c:1082
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1085
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Versión ABI: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1088
msgid " Type: "
msgstr " Tipo: "
-#: src/readelf.c:1073
+#: src/readelf.c:1093
#, c-format
msgid " Machine: %s\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1095
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Máquina: %s\n"
+
+#: src/readelf.c:1098
#, c-format
msgid " Version: %d %s\n"
msgstr " Versión: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1102
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1105
#, 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:1106 src/readelf.c:1109
msgid "(bytes into file)"
msgstr " (bytes en el archivo)"
-#: src/readelf.c:1085
+#: src/readelf.c:1108
#, 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:1111
#, c-format
msgid " Flags: %s\n"
msgstr " Indicadores: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1114
#, 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:1115 src/readelf.c:1118 src/readelf.c:1135
msgid "(bytes)"
msgstr "(bytes)"
-#: src/readelf.c:1094
+#: src/readelf.c:1117
#, 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:1120
#, 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:1127
#, 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:1130 src/readelf.c:1147 src/readelf.c:1161
msgid " ([0] not available)"
msgstr " ([0] no disponible)"
-#: src/readelf.c:1111
+#: src/readelf.c:1134
#, 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:1137
#, 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:1144
#, 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:1157
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> en [0].sh_link)"
-#: src/readelf.c:1142
+#: src/readelf.c:1165
#, 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:1169
#, 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:1216 src/readelf.c:1424
#, 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:1219
#, 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:1228
#, 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:1231
msgid "Section Headers:"
msgstr "encabezamientos de sección:"
-#: src/readelf.c:1211
+#: src/readelf.c:1234
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:1236
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:1241
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1243
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1319
#, 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:1330
#, 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:1348
msgid "Program Headers:"
msgstr "encabezamientos de programa:"
-#: src/readelf.c:1327
+#: src/readelf.c:1350
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:1353
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:1410
#, 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:1437
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:1448 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:1594
#, 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:1599
#, 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:1607
msgid "<INVALID SYMBOL>"
msgstr "<SÃMBOLO INVÃLIDO>"
-#: src/readelf.c:1598
+#: src/readelf.c:1621
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:1644 src/readelf.c:2371 src/readelf.c:3472 src/readelf.c:12505
+#: src/readelf.c:12512 src/readelf.c:12556 src/readelf.c:12563
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1649 src/readelf.c:2376 src/readelf.c:3477
#, 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:1793 src/readelf.c:2443 src/readelf.c:2701 src/readelf.c:2777
+#: src/readelf.c:3081 src/readelf.c:3155 src/readelf.c:5352
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr ".debug_line section inválida"
-#: src/readelf.c:1773
+#: src/readelf.c:1796
#, 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:1806
msgid " Type Value\n"
msgstr " Tipo Valor\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1830
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteca compartida: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1835
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Nombre-so de la biblioteca: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1840
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath de la biblioteca: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1845
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Ruta de ejecución de la biblioteca: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1865
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bytes)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1978 src/readelf.c:2168
#, 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:1996 src/readelf.c:2186
#, 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:2011 src/readelf.c:2201
#, 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:2021
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2023
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:2076 src/readelf.c:2087 src/readelf.c:2100 src/readelf.c:2121
+#: src/readelf.c:2133 src/readelf.c:2267 src/readelf.c:2279 src/readelf.c:2293
+#: src/readelf.c:2315 src/readelf.c:2328
msgid "<INVALID RELOC>"
msgstr "<REUBIC INVÃLIDA>"
-#: src/readelf.c:2188
+#: src/readelf.c:2211
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2213
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2451
#, 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:2456
#, 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:2464
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:2466
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:2486
#, 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:2574
#, c-format
msgid "bad dynamic symbol"
msgstr "símbolo dinámico erróneo"
-#: src/readelf.c:2633
+#: src/readelf.c:2656
msgid "none"
msgstr "nada"
-#: src/readelf.c:2650
+#: src/readelf.c:2673
msgid "| <unknown>"
msgstr "| <desconocido>"
-#: src/readelf.c:2681
+#: src/readelf.c:2704
#, 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:2725
#, 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:2738
#, 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:2781
#, 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:2809
#, 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:2824
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Principal %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3085
#, 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:3113
msgid " 0 *local* "
msgstr " 0 *local* "
-#: src/readelf.c:3095
+#: src/readelf.c:3118
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3137
+#: src/readelf.c:3160
#, 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:3182
#, 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:3184
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3191
#, 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:3204
#, 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:3222 src/readelf.c:3286 src/readelf.c:3352
#, 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:3230
#, 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:3259
#, 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:3294
#, 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:3325
#, 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:3361
#, 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:3428
#, 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:3517
#, 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:3531
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:3583
#, 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:3600
msgid " Owner Size\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3629
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3668
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3673
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3722
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3725
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3728
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3738
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3741
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3811
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "mprotect falló"
-#: src/readelf.c:4268
+#: src/readelf.c:4293
msgid "empty block"
msgstr "bloque vacío"
-#: src/readelf.c:4271
+#: src/readelf.c:4296
#, c-format
msgid "%zu byte block:"
msgstr "bloque de byte %zu:"
-#: src/readelf.c:4749
+#: src/readelf.c:4774
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4838
#, 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:4845
#, 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:4852
#, 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:4859
#, 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:4956
#, 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:4964
#, 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:5042
#, 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:5050
#, 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:5063
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** error en lectura de abreviatura: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, 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:5112 src/readelf.c:5421 src/readelf.c:5588 src/readelf.c:5973
+#: src/readelf.c:6574 src/readelf.c:8311 src/readelf.c:8997 src/readelf.c:9433
+#: src/readelf.c:9678 src/readelf.c:9844 src/readelf.c:10231
+#: src/readelf.c:10291
#, 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:5125
#, 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:5225 src/readelf.c:5249 src/readelf.c:5633 src/readelf.c:9042
#, 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:5227 src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055
#, 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:5228 src/readelf.c:5273 src/readelf.c:5655 src/readelf.c:9064
#, 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:5230 src/readelf.c:5283 src/readelf.c:5665 src/readelf.c:9074
#, 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:5268 src/readelf.c:5650 src/readelf.c:9059 src/readelf.c:10423
#, 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:5278 src/readelf.c:5491 src/readelf.c:5660 src/readelf.c:9069
#, 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:5289 src/readelf.c:5502 src/readelf.c:5670 src/readelf.c:9079
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5342 src/readelf.c:5416
#, 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:5357
#, 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:5388
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5390
#, 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:5434 src/readelf.c:8338
#, 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:5438 src/readelf.c:5614 src/readelf.c:6598 src/readelf.c:8349
+#: src/readelf.c:9023
#, 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:5454
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5441
+#: src/readelf.c:5466
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5470
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5456
+#: src/readelf.c:5481
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5462
+#: src/readelf.c:5487
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5473
+#: src/readelf.c:5498
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5553
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5572
+#: src/readelf.c:5597
#, 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:5620 src/readelf.c:9029
#, 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:5675 src/readelf.c:9084
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5691 src/readelf.c:9100
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5693 src/readelf.c:9102
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5699 src/readelf.c:9108
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5710 src/readelf.c:9119
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5714 src/readelf.c:9123
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5766
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "datos inválidos"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5951 src/readelf.c:9411
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:5943
+#: src/readelf.c:5968
#, 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:6004 src/readelf.c:9466
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6006 src/readelf.c:9468
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6015 src/readelf.c:9494 src/readelf.c:9520
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6036 src/readelf.c:9600
#, 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:6044 src/readelf.c:9608
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] lista vacía\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6299
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6552
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6570
#, 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:6620
#, 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:6721 src/readelf.c:6875
#, c-format
msgid "invalid augmentation length"
msgstr "longitud de aumento inválida"
-#: src/readelf.c:6711
+#: src/readelf.c:6736
msgid "FDE address encoding: "
msgstr "Codificación de dirección FDE:"
-#: src/readelf.c:6717
+#: src/readelf.c:6742
msgid "LSDA pointer encoding: "
msgstr "Codificación de puntero LSDA:"
-#: src/readelf.c:6827
+#: src/readelf.c:6852
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6859
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6896
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr "Puntero %-26sLSDA: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6981
#, 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:6991
#, 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:7013
#, 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:7343
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Archivo inválido"
-#: src/readelf.c:7325
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7351
#, 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:7664
#, 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:7714
#, 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:7733
#, 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:7745
#, 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:7755 src/readelf.c:7918
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7782
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7811
#, 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:7820
#, 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:7858
#, 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:7866
#, c-format
msgid "cannot get next DIE: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7910
#, 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:7962
#, 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:8294
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "Forma %<PRIx64> desconocida"
-#: src/readelf.c:8213
+#: src/readelf.c:8325
#, 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:8427
#, fuzzy, c-format
msgid ""
"\n"
@@ -5474,34 +5479,34 @@ msgstr ""
"\n"
"Códigos operativos:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8449
#, 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:8457
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "no hay valor de dirección"
-#: src/readelf.c:8353
+#: src/readelf.c:8465
#, 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:8475
#, 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:8490
#, 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:8501
msgid ""
"\n"
"Directory table:"
@@ -5509,12 +5514,12 @@ msgstr ""
"\n"
"Tabla de Directorio:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8507 src/readelf.c:8584
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8466
+#: src/readelf.c:8578
#, fuzzy
msgid ""
"\n"
@@ -5523,7 +5528,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:8527
+#: src/readelf.c:8639
#, 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:8676
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:8699
#, 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:8733
#, 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:8737
#, 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:8740
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8758
#, c-format
msgid " extended opcode %u: "
msgstr " Código operativo extendido %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8763
#, fuzzy
msgid " end of sequence"
msgstr "Fin de secuencia"
-#: src/readelf.c:8669
+#: src/readelf.c:8781
#, fuzzy, c-format
msgid " set address to "
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8809
#, 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:8823
#, c-format
msgid " set discriminator to %u\n"
msgstr " establecer discriminador a %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8828
#, fuzzy
msgid " unknown opcode"
msgstr "código operativo desconocido "
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8840
msgid " copy"
msgstr "Copiar"
-#: src/readelf.c:8739
+#: src/readelf.c:8851
#, 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:8855 src/readelf.c:8916
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8867
#, 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:8877
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8888
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8895
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8901
msgid " set basic block flag"
msgstr "Establecer bandera de bloque básico"
-#: src/readelf.c:8800
+#: src/readelf.c:8912
#, 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:8932
#, 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:8942
msgid " set prologue end flag"
msgstr " Establecer bandera prologue_end"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8947
msgid " set epilogue begin flag"
msgstr " Establecer bandera epilogue_begin"
-#: src/readelf.c:8845
+#: src/readelf.c:8957
#, 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:8966
#, 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:9006
#, 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:9175
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "datos inválidos"
-#: src/readelf.c:9316
+#: src/readelf.c:9428
#, 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:9635 src/readelf.c:10679
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9690 src/readelf.c:9853
#, 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:9770
#, 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:9793
#, 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:9894
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9906
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9912 src/readelf.c:10799
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9807
+#: src/readelf.c:9919
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9948
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:9844
+#: src/readelf.c:9956
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:9869
+#: src/readelf.c:9981
#, 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:9988
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:10000
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] argumento %hhu \n"
-#: src/readelf.c:9903
+#: src/readelf.c:10015
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10104
+#: src/readelf.c:10216
#, 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:10260
#, 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:10275
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** error en lectura de cadenas: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10304
#, 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:10403
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10293
+#: src/readelf.c:10405
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10307
+#: src/readelf.c:10419
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10428
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10370
+#: src/readelf.c:10482
#, 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:10584
#, 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:10607
#, c-format
msgid " LPStart encoding: %#x "
msgstr "Codificación LPStart: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10619
#, c-format
msgid " TType encoding: %#x "
msgstr "Codificación TType: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10634
#, c-format
msgid " Call site encoding: %#x "
msgstr "Codificación de sitio de llamada: %#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10647
msgid ""
"\n"
" Call site table:"
@@ -5841,7 +5846,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:10549
+#: src/readelf.c:10661
#, 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:10734
#, c-format
msgid "invalid TType encoding"
msgstr "Codificación TType inválida"
-#: src/readelf.c:10649
+#: src/readelf.c:10761
#, 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:10790
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10808
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10703
+#: src/readelf.c:10815
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10710
+#: src/readelf.c:10822
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10717
+#: src/readelf.c:10829
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10724
+#: src/readelf.c:10836
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10738
+#: src/readelf.c:10850
#, 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:10875
#, 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:10904
#, 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:10936
#, 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:11074
#, 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:11437 src/readelf.c:12059 src/readelf.c:12170
+#: src/readelf.c:12228
#, 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:11800
#, c-format
msgid ""
"\n"
@@ -5954,21 +5959,21 @@ msgstr ""
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:12195
+#: src/readelf.c:12307
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12336
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12388
#, 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:12422
#, 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:12445
#, 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:12492
#, 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:12519 src/readelf.c:12570
#, 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:12524
#, 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:12529
#, 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:12543
#, 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:12575
#, 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:12580
#, 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:12629
#, c-format
msgid ""
"\n"
@@ -6060,7 +6065,7 @@ msgstr ""
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:12539
+#: src/readelf.c:12658
#, c-format
msgid ""
"\n"
@@ -6069,12 +6074,12 @@ msgstr ""
"\n"
"sección '%s' no existe"
-#: src/readelf.c:12596
+#: src/readelf.c:12715
#, 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:12718
#, 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:12722
#, 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:12740
#, 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:12745
#, 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..c954f3bd 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-28 13:23+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:3437
+#: src/readelf.c:11386 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:6154
#, 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:9902 src/readelf.c:10502
+#: src/readelf.c:10603 src/readelf.c:10785
#, 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:360
#, 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:563
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:623
+#: src/readelf.c:1435 src/readelf.c:1586 src/readelf.c:1787 src/readelf.c:1993
+#: src/readelf.c:2183 src/readelf.c:2361 src/readelf.c:2437 src/readelf.c:2695
+#: src/readelf.c:2771 src/readelf.c:2858 src/readelf.c:3456 src/readelf.c:3506
+#: src/readelf.c:3569 src/readelf.c:11218 src/readelf.c:12403
+#: src/readelf.c:12614 src/readelf.c:12682 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:568
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:2088 src/readelf.c:2280
msgid "INVALID SYMBOL"
msgstr "ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«"
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2122 src/readelf.c:2316
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:342
msgid "yes"
msgstr "ã¯ã„"
-#: src/readelf.c:329
+#: src/readelf.c:343
msgid "no"
msgstr "ã„ã„ãˆ"
-#: src/readelf.c:518
+#: src/readelf.c:536
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "ä¸æ˜Žãª DWARF デãƒãƒƒã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ `%s'.\n"
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:607 src/readelf.c:718
#, 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:614 src/readelf.c:941 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:632 src/readelf.c:1251 src/readelf.c:1459
#, 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:641 src/readelf.c:1258 src/readelf.c:1467 src/readelf.c:12634
#: 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:649
#, 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:658 src/readelf.c:6564 src/readelf.c:10490 src/readelf.c:10592
+#: src/readelf.c:10770
#, c-format
msgid "cannot get %s content: %s"
msgstr "%s ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:656
+#: src/readelf.c:674
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "æ–°ã—ã„ファイル '%s' を生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:665
+#: src/readelf.c:683
#, 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:689 src/readelf.c:706 src/readelf.c:735
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/readelf.c:678
+#: src/readelf.c:696
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/readelf.c:712
+#: src/readelf.c:730
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ãªãã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–索引をå°åˆ·ã§ãã¾ã›ã‚“"
-#: src/readelf.c:816
+#: src/readelf.c:834
#, c-format
msgid "cannot stat input file"
msgstr "入力ファイルを stat ã§ãã¾ã›ã‚“"
-#: src/readelf.c:818
+#: src/readelf.c:836
#, c-format
msgid "input file is empty"
msgstr "入力ファイルãŒç©ºã§ã™"
-#: src/readelf.c:820
+#: src/readelf.c:838
#, c-format
msgid "failed reading '%s': %s"
msgstr "'%s' ã®èª­è¾¼ã¿ã«å¤±æ•—: %s"
-#: src/readelf.c:849
+#: src/readelf.c:867
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:908
+#: src/readelf.c:926
#, c-format
msgid "cannot read ELF header: %s"
msgstr "ELF ヘッダーãŒèª­ã‚ã¾ã›ã‚“: %s"
-#: src/readelf.c:916
+#: src/readelf.c:934
#, c-format
msgid "cannot create EBL handle"
msgstr "EBL ヘッダーを生æˆã§ãã¾ã›ã‚“"
-#: src/readelf.c:929
+#: src/readelf.c:947
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:961
+#: src/readelf.c:979
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "%s を読ã¿ã¾ã›ã‚“: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1040
msgid "NONE (None)"
msgstr "ãªã— (ãªã—)"
-#: src/readelf.c:1023
+#: src/readelf.c:1041
msgid "REL (Relocatable file)"
msgstr "REL (リロケータブルファイル)"
-#: src/readelf.c:1024
+#: src/readelf.c:1042
msgid "EXEC (Executable file)"
msgstr "(EXEC (実行ファイル)"
-#: src/readelf.c:1025
+#: src/readelf.c:1043
msgid "DYN (Shared object file)"
msgstr "DYN (共用オブジェクトファイル)"
-#: src/readelf.c:1026
+#: src/readelf.c:1044
msgid "CORE (Core file)"
msgstr "CORE (コアファイル)"
-#: src/readelf.c:1031
+#: src/readelf.c:1049
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS 固有: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1051
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "プロセッサー固有: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1061
msgid ""
"ELF Header:\n"
" Magic: "
@@ -3995,7 +3995,7 @@ msgstr ""
"ELF ヘッダー:\n"
" マジック: "
-#: src/readelf.c:1047
+#: src/readelf.c:1065
#, c-format
msgid ""
"\n"
@@ -4004,118 +4004,123 @@ msgstr ""
"\n"
" クラス: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1070
#, c-format
msgid " Data: %s\n"
msgstr " データ: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1076
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " 識別ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd %s\n"
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1078 src/readelf.c:1100
msgid "(current)"
msgstr "(ç¾åœ¨)"
-#: src/readelf.c:1064
+#: src/readelf.c:1082
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1085
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1088
msgid " Type: "
msgstr " タイプ: "
-#: src/readelf.c:1073
+#: src/readelf.c:1093
#, c-format
msgid " Machine: %s\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1095
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " マシン : %s\n"
+
+#: src/readelf.c:1098
#, c-format
msgid " Version: %d %s\n"
msgstr " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1102
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1105
#, 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:1106 src/readelf.c:1109
msgid "(bytes into file)"
msgstr "(ファイルã¸ã®ãƒã‚¤ãƒˆæ•°)"
-#: src/readelf.c:1085
+#: src/readelf.c:1108
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " セクションヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1088
+#: src/readelf.c:1111
#, c-format
msgid " Flags: %s\n"
msgstr " フラグ: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1114
#, 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:1115 src/readelf.c:1118 src/readelf.c:1135
msgid "(bytes)"
msgstr "(ãƒã‚¤ãƒˆ)"
-#: src/readelf.c:1094
+#: src/readelf.c:1117
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " プログラムヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1097
+#: src/readelf.c:1120
#, fuzzy, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " プログラムヘッダー項目ã®æ•° : %<PRId16>\n"
-#: src/readelf.c:1104
+#: src/readelf.c:1127
#, 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:1130 src/readelf.c:1147 src/readelf.c:1161
msgid " ([0] not available)"
msgstr "([0]ã¯ä½¿ãˆã¾ã›ã‚“)"
-#: src/readelf.c:1111
+#: src/readelf.c:1134
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " セクションヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1114
+#: src/readelf.c:1137
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " セクションヘッダー項目ã®æ•° : %<PRId16>"
-#: src/readelf.c:1121
+#: src/readelf.c:1144
#, 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:1157
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1142
+#: src/readelf.c:1165
#, 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:1169
#, 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:1216 src/readelf.c:1424
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1219
#, 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:1228
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
-#: src/readelf.c:1208
+#: src/readelf.c:1231
msgid "Section Headers:"
msgstr "セクションヘッダー:"
-#: src/readelf.c:1211
+#: src/readelf.c:1234
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:1236
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:1241
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1243
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1319
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "セクションヘッダー文字列セクションを生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1307
+#: src/readelf.c:1330
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:1325
+#: src/readelf.c:1348
msgid "Program Headers:"
msgstr "プログラムヘッダー:"
-#: src/readelf.c:1327
+#: src/readelf.c:1350
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" タイプ オフセ 仮アドレス 物アドレス ãƒ•ã‚¡ã‚¤é‡ ãƒ¡ãƒ¢é‡ Flg 調整 "
-#: src/readelf.c:1330
+#: src/readelf.c:1353
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4208,12 +4213,12 @@ msgstr ""
" タイプ オフセ 仮想アドレス 物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ ファイルé‡ãƒ¡ãƒ¢"
"é‡ Flg 調整 "
-#: src/readelf.c:1387
+#: src/readelf.c:1410
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[プログラム割込ã¿ã‚’è¦æ±‚: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1437
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:1448 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:1594
#, 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:1599
#, 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:1607
msgid "<INVALID SYMBOL>"
msgstr "<ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«>"
-#: src/readelf.c:1598
+#: src/readelf.c:1621
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:1644 src/readelf.c:2371 src/readelf.c:3472 src/readelf.c:12505
+#: src/readelf.c:12512 src/readelf.c:12556 src/readelf.c:12563
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1649 src/readelf.c:2376 src/readelf.c:3477
#, 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:1793 src/readelf.c:2443 src/readelf.c:2701 src/readelf.c:2777
+#: src/readelf.c:3081 src/readelf.c:3155 src/readelf.c:5352
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ä¸å½“㪠.debug_line セクション"
-#: src/readelf.c:1773
+#: src/readelf.c:1796
#, c-format
msgid ""
"\n"
@@ -4294,36 +4299,36 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:1783
+#: src/readelf.c:1806
msgid " Type Value\n"
msgstr " タイプ 値\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1830
#, c-format
msgid "Shared library: [%s]\n"
msgstr "共用ライブラリー: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1835
#, c-format
msgid "Library soname: [%s]\n"
msgstr "ライブラリー so å: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1840
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "ライブラリー rパス: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1845
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "ライブラリー run パス: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1865
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (ãƒã‚¤ãƒˆ)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1978 src/readelf.c:2168
#, c-format
msgid ""
"\n"
@@ -4332,7 +4337,7 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1996 src/readelf.c:2186
#, 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:2011 src/readelf.c:2201
#, 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:2021
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2023
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:2076 src/readelf.c:2087 src/readelf.c:2100 src/readelf.c:2121
+#: src/readelf.c:2133 src/readelf.c:2267 src/readelf.c:2279 src/readelf.c:2293
+#: src/readelf.c:2315 src/readelf.c:2328
msgid "<INVALID RELOC>"
msgstr "<ä¸å½“ãªRELOC>"
-#: src/readelf.c:2188
+#: src/readelf.c:2211
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2213
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2451
#, c-format
msgid ""
"\n"
@@ -4400,39 +4405,39 @@ msgstr[0] ""
"\n"
"シンボルテーブル [%2u] '%s' ã«ã¯ %u 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:2433
+#: src/readelf.c:2456
#, 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:2464
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2443
+#: src/readelf.c:2466
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2463
+#: src/readelf.c:2486
#, 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:2574
#, c-format
msgid "bad dynamic symbol"
msgstr "ä¸æ­£ãªå‹•çš„シンボル"
-#: src/readelf.c:2633
+#: src/readelf.c:2656
msgid "none"
msgstr "ãªã—"
-#: src/readelf.c:2650
+#: src/readelf.c:2673
msgid "| <unknown>"
msgstr "| <ä¸æ˜Ž>"
-#: src/readelf.c:2681
+#: src/readelf.c:2704
#, c-format
msgid ""
"\n"
@@ -4448,17 +4453,17 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2702
+#: src/readelf.c:2725
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu ファイル: %s æ•°: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2738
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: åå‰: %s フラグ: %s ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2781
#, c-format
msgid ""
"\n"
@@ -4474,18 +4479,18 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2786
+#: src/readelf.c:2809
#, 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:2824
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: 親 %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3085
#, c-format
msgid ""
"\n"
@@ -4501,15 +4506,15 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'"
-#: src/readelf.c:3090
+#: src/readelf.c:3113
msgid " 0 *local* "
msgstr " 0 *ローカル* "
-#: src/readelf.c:3095
+#: src/readelf.c:3118
msgid " 1 *global* "
msgstr " 1 *グローãƒãƒ«* "
-#: src/readelf.c:3137
+#: src/readelf.c:3160
#, c-format
msgid ""
"\n"
@@ -4527,22 +4532,22 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:3159
+#: src/readelf.c:3182
#, fuzzy, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " é•·ã• æ•° 全体ã®% 範囲 \n"
-#: src/readelf.c:3161
+#: src/readelf.c:3184
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3191
#, 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:3204
#, 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:3222 src/readelf.c:3286 src/readelf.c:3352
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:3207
+#: src/readelf.c:3230
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3236
+#: src/readelf.c:3259
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3271
+#: src/readelf.c:3294
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3302
+#: src/readelf.c:3325
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3338
+#: src/readelf.c:3361
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3405
+#: src/readelf.c:3428
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4591,7 +4596,7 @@ msgstr ""
" ビットマスクã®å¤§ãã•: %zu ãƒã‚¤ãƒˆ %<PRIuFAST32>%% ビット設定 第2ãƒãƒƒã‚·ãƒ¥ã‚·ãƒ•"
"ト: %u\n"
-#: src/readelf.c:3494
+#: src/readelf.c:3517
#, 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:3531
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4612,7 +4617,7 @@ msgstr ""
" ライブラリー タイムスタンプ ãƒã‚§ãƒƒã‚¯ã‚µãƒ  ãƒãƒ¼"
"ジョン フラグ"
-#: src/readelf.c:3558
+#: src/readelf.c:3583
#, 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:3600
msgid " Owner Size\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3629
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3668
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3673
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " ファイル: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3722
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>ã€%s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3725
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3728
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3738
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3741
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3811
#, c-format
msgid "sprintf failure"
msgstr ""
-#: src/readelf.c:4268
+#: src/readelf.c:4293
msgid "empty block"
msgstr "空ブロック"
-#: src/readelf.c:4271
+#: src/readelf.c:4296
#, c-format
msgid "%zu byte block:"
msgstr "%zu ãƒã‚¤ãƒˆã®ãƒ–ロック:"
-#: src/readelf.c:4749
+#: src/readelf.c:4774
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4838
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:4820
+#: src/readelf.c:4845
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:4827
+#: src/readelf.c:4852
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:4834
+#: src/readelf.c:4859
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:4931
+#: src/readelf.c:4956
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:4939
+#: src/readelf.c:4964
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5017
+#: src/readelf.c:5042
#, 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:5050
#, c-format
msgid ""
"\n"
@@ -4738,20 +4743,20 @@ msgstr ""
"\n"
"オフセット %<PRIu64> ã®ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³:\n"
-#: src/readelf.c:5038
+#: src/readelf.c:5063
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** 略語を読んã§ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, 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:5112 src/readelf.c:5421 src/readelf.c:5588 src/readelf.c:5973
+#: src/readelf.c:6574 src/readelf.c:8311 src/readelf.c:8997 src/readelf.c:9433
+#: src/readelf.c:9678 src/readelf.c:9844 src/readelf.c:10231
+#: src/readelf.c:10291
#, 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:5125
#, 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:5225 src/readelf.c:5249 src/readelf.c:5633 src/readelf.c:9042
#, 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:5227 src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055
#, 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:5228 src/readelf.c:5273 src/readelf.c:5655 src/readelf.c:9064
#, 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:5230 src/readelf.c:5283 src/readelf.c:5665 src/readelf.c:9074
#, 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:5268 src/readelf.c:5650 src/readelf.c:9059 src/readelf.c:10423
#, 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:5278 src/readelf.c:5491 src/readelf.c:5660 src/readelf.c:9069
#, 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:5289 src/readelf.c:5502 src/readelf.c:5670 src/readelf.c:9079
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5342 src/readelf.c:5416
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ".debug_aragnes ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5332
+#: src/readelf.c:5357
#, 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:5388
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5390
#, 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:5434 src/readelf.c:8338
#, 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:5438 src/readelf.c:5614 src/readelf.c:6598 src/readelf.c:8349
+#: src/readelf.c:9023
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:5429
+#: src/readelf.c:5454
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5441
+#: src/readelf.c:5466
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5470
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5456
+#: src/readelf.c:5481
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5462
+#: src/readelf.c:5487
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5473
+#: src/readelf.c:5498
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5553
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5572
+#: src/readelf.c:5597
#, 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:5620 src/readelf.c:9029
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5650 src/readelf.c:8972
+#: src/readelf.c:5675 src/readelf.c:9084
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5691 src/readelf.c:9100
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5693 src/readelf.c:9102
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5699 src/readelf.c:9108
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5710 src/readelf.c:9119
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5714 src/readelf.c:9123
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5766
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5951 src/readelf.c:9411
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:5943
+#: src/readelf.c:5968
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6004 src/readelf.c:9466
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6006 src/readelf.c:9468
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6015 src/readelf.c:9494 src/readelf.c:9520
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6036 src/readelf.c:9600
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] ベースアドレス %s\n"
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6044 src/readelf.c:9608
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6299
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6552
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6570
#, c-format
msgid ""
"\n"
@@ -4995,7 +5000,7 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠フレーム情報呼出ã—セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:6595
+#: src/readelf.c:6620
#, c-format
msgid ""
"\n"
@@ -5004,65 +5009,65 @@ msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6721 src/readelf.c:6875
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ä¸å½“ãªæ‹¡å¤§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰"
-#: src/readelf.c:6711
+#: src/readelf.c:6736
msgid "FDE address encoding: "
msgstr "FDE アドレスエンコード"
-#: src/readelf.c:6717
+#: src/readelf.c:6742
msgid "LSDA pointer encoding: "
msgstr "LSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:6827
+#: src/readelf.c:6852
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6859
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6896
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sLSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6981
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "属性コードを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6966
+#: src/readelf.c:6991
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "属性様å¼ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6988
+#: src/readelf.c:7013
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "属性値を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7321
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«"
-#: src/readelf.c:7325
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7351
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7664
#, 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:7714
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7733
#, 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:7745
#, 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:7755 src/readelf.c:7918
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7782
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7811
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "DIE オフセットを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7820
#, 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:7858
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s\n"
-#: src/readelf.c:7754
+#: src/readelf.c:7866
#, c-format
msgid "cannot get next DIE: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7910
#, 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:7962
#, 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:8294
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "ä¸æ˜Žãªæ§˜å¼ %<PRIx64>"
-#: src/readelf.c:8213
+#: src/readelf.c:8325
#, 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:8427
#, fuzzy, c-format
msgid ""
"\n"
@@ -5195,33 +5200,33 @@ msgstr ""
"\n"
"命令コード:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8449
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8345
+#: src/readelf.c:8457
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:8353
+#: src/readelf.c:8465
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "セクションを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8363
+#: src/readelf.c:8475
#, 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:8490
#, 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:8501
msgid ""
"\n"
"Directory table:"
@@ -5229,12 +5234,12 @@ msgstr ""
"\n"
"ディレクトリーテーブル:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8507 src/readelf.c:8584
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8466
+#: src/readelf.c:8578
#, fuzzy
msgid ""
"\n"
@@ -5243,7 +5248,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:8527
+#: src/readelf.c:8639
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5251,7 +5256,7 @@ msgstr ""
"ファイルåテーブル:\n"
" Entry Dir 時刻 大ãã• åå‰"
-#: src/readelf.c:8564
+#: src/readelf.c:8676
msgid ""
"\n"
"Line number statements:"
@@ -5259,119 +5264,119 @@ msgstr ""
"\n"
"è¡Œ ç•ªå· æ–‡:"
-#: src/readelf.c:8587
+#: src/readelf.c:8699
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8621
+#: src/readelf.c:8733
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8625
+#: src/readelf.c:8737
#, 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:8740
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8758
#, c-format
msgid " extended opcode %u: "
msgstr " 拡張命令コード %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8763
#, fuzzy
msgid " end of sequence"
msgstr "列ã®çµ‚ã‚ã‚Š"
-#: src/readelf.c:8669
+#: src/readelf.c:8781
#, fuzzy, c-format
msgid " set address to "
msgstr "アドレスを %s ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8809
#, 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:8823
#, fuzzy, c-format
msgid " set discriminator to %u\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8828
#, fuzzy
msgid " unknown opcode"
msgstr "ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8840
msgid " copy"
msgstr "複写"
-#: src/readelf.c:8739
+#: src/readelf.c:8851
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "アドレスを %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8855 src/readelf.c:8916
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8867
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr "行を定数 %d ã ã‘進ã‚㦠%<PRId64> ã«ã™ã‚‹\n"
-#: src/readelf.c:8765
+#: src/readelf.c:8877
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8888
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8895
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' ã‚’ %<PRIuFAST8> ã«è¨­å®šã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8901
msgid " set basic block flag"
msgstr "基本ブロックフラグを設定ã™ã‚‹"
-#: src/readelf.c:8800
+#: src/readelf.c:8912
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "アドレスを定数 %u ã ã‘済ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:8820
+#: src/readelf.c:8932
#, 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:8942
msgid " set prologue end flag"
msgstr "プロローグ終了フラグを設定ã™ã‚‹"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8947
msgid " set epilogue begin flag"
msgstr "エピローグ開始フラグを設定ã™ã‚‹"
-#: src/readelf.c:8845
+#: src/readelf.c:8957
#, 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:8966
#, 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:9006
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9175
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:9316
+#: src/readelf.c:9428
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9635 src/readelf.c:10679
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9690 src/readelf.c:9853
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "マクロ情報セクションã®ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9658
+#: src/readelf.c:9770
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:9681
+#: src/readelf.c:9793
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:9782
+#: src/readelf.c:9894
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9906
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9912 src/readelf.c:10799
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:9807
+#: src/readelf.c:9919
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9948
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:9844
+#: src/readelf.c:9956
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:9869
+#: src/readelf.c:9981
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:9876
+#: src/readelf.c:9988
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:9888
+#: src/readelf.c:10000
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:9903
+#: src/readelf.c:10015
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10104
+#: src/readelf.c:10216
#, 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:10260
#, 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:10275
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** 文字列ã®èª­è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10304
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10403
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10293
+#: src/readelf.c:10405
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10307
+#: src/readelf.c:10419
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10428
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10370
+#: src/readelf.c:10482
#, c-format
msgid ""
"\n"
@@ -5528,7 +5533,7 @@ msgstr ""
"\n"
"呼出ã—フレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10472
+#: src/readelf.c:10584
#, c-format
msgid ""
"\n"
@@ -5537,22 +5542,22 @@ msgstr ""
"\n"
"例外å–扱ã„テーブルセクション [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10607
#, c-format
msgid " LPStart encoding: %#x "
msgstr " LPStart コード化: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10619
#, c-format
msgid " TType encoding: %#x "
msgstr "TType コード化: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10634
#, c-format
msgid " Call site encoding: %#x "
msgstr "呼出ã—サイトコード化: %#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10647
msgid ""
"\n"
" Call site table:"
@@ -5560,7 +5565,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:10549
+#: src/readelf.c:10661
#, 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:10734
#, c-format
msgid "invalid TType encoding"
msgstr "ä¸å½“㪠TType コード化"
-#: src/readelf.c:10649
+#: src/readelf.c:10761
#, 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:10790
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10808
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10703
+#: src/readelf.c:10815
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10710
+#: src/readelf.c:10822
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10717
+#: src/readelf.c:10829
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10724
+#: src/readelf.c:10836
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10738
+#: src/readelf.c:10850
#, 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:10875
#, 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:10904
#, 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:10936
#, fuzzy, c-format
msgid ""
"\n"
@@ -5657,18 +5662,18 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:10962
+#: src/readelf.c:11074
#, 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:11437 src/readelf.c:12059 src/readelf.c:12170
+#: src/readelf.c:12228
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータã®å¤‰æ›ãŒã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:11688
+#: src/readelf.c:11800
#, c-format
msgid ""
"\n"
@@ -5677,21 +5682,21 @@ msgstr ""
"\n"
"%*s... < %u 回ã®ç¹°è¿”ã—> ..."
-#: src/readelf.c:12195
+#: src/readelf.c:12307
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大ãã•ã‚¿ã‚¤ãƒ—\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12336
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12388
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "ノートセクションã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:12303
+#: src/readelf.c:12422
#, 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:12445
#, c-format
msgid ""
"\n"
@@ -5710,7 +5715,7 @@ msgstr ""
"\n"
"オフセット %2$#0<PRIx64> ã® %1$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚°ãƒ¡ãƒ³ãƒˆ:\n"
-#: src/readelf.c:12373
+#: src/readelf.c:12492
#, 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:12519 src/readelf.c:12570
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12524
#, 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:12529
#, 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:12543
#, fuzzy, c-format
msgid ""
"\n"
@@ -5754,7 +5759,7 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12456
+#: src/readelf.c:12575
#, 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:12580
#, 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:12629
#, c-format
msgid ""
"\n"
@@ -5784,7 +5789,7 @@ msgstr ""
"\n"
"セクション [%lu] ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:12539
+#: src/readelf.c:12658
#, c-format
msgid ""
"\n"
@@ -5793,12 +5798,12 @@ msgstr ""
"\n"
"セクション '%s' ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:12596
+#: src/readelf.c:12715
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼• '%s' を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:12599
+#: src/readelf.c:12718
#, c-format
msgid ""
"\n"
@@ -5807,7 +5812,7 @@ msgstr ""
"\n"
"アーカイブ '%s' ã«ã¯ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12722
#, fuzzy, c-format
msgid ""
"\n"
@@ -5816,12 +5821,12 @@ msgstr ""
"\n"
"アーカイブ '%s' ã®ç´¢å¼•ã«ã¯ %Zu é …ç›®ã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12621
+#: src/readelf.c:12740
#, 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:12745
#, 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..96d2472e 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-28 13:23+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:3437
+#: src/readelf.c:11386 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:6154
#, 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:9902 src/readelf.c:10502
+#: src/readelf.c:10603 src/readelf.c:10785
#, 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:360
#, 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:563
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:623
+#: src/readelf.c:1435 src/readelf.c:1586 src/readelf.c:1787 src/readelf.c:1993
+#: src/readelf.c:2183 src/readelf.c:2361 src/readelf.c:2437 src/readelf.c:2695
+#: src/readelf.c:2771 src/readelf.c:2858 src/readelf.c:3456 src/readelf.c:3506
+#: src/readelf.c:3569 src/readelf.c:11218 src/readelf.c:12403
+#: src/readelf.c:12614 src/readelf.c:12682 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:568
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:2088 src/readelf.c:2280
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:2122 src/readelf.c:2316
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:342
msgid "yes"
msgstr "tak"
-#: src/readelf.c:329
+#: src/readelf.c:343
msgid "no"
msgstr "nie"
-#: src/readelf.c:518
+#: src/readelf.c:536
#, 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:607 src/readelf.c:718
#, 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:614 src/readelf.c:941 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:632 src/readelf.c:1251 src/readelf.c:1459
#, 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:641 src/readelf.c:1258 src/readelf.c:1467 src/readelf.c:12634
#: 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:649
#, 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:658 src/readelf.c:6564 src/readelf.c:10490 src/readelf.c:10592
+#: src/readelf.c:10770
#, c-format
msgid "cannot get %s content: %s"
msgstr "nie można uzyskać zwartości %s: %s"
-#: src/readelf.c:656
+#: src/readelf.c:674
#, c-format
msgid "cannot create temp file '%s'"
msgstr "nie można utworzyć pliku tymczasowego „%sâ€"
-#: src/readelf.c:665
+#: src/readelf.c:683
#, 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:689 src/readelf.c:706 src/readelf.c:735
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "błąd podczas zamykania deskryptora ELF: %s"
-#: src/readelf.c:678
+#: src/readelf.c:696
#, c-format
msgid "error while rewinding file descriptor"
msgstr "błąd podczas przewijania deskryptora pliku"
-#: src/readelf.c:712
+#: src/readelf.c:730
#, 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:834
#, c-format
msgid "cannot stat input file"
msgstr "nie można wykonać stat na pliku wejściowym"
-#: src/readelf.c:818
+#: src/readelf.c:836
#, c-format
msgid "input file is empty"
msgstr "plik wejściowy jest pusty"
-#: src/readelf.c:820
+#: src/readelf.c:838
#, c-format
msgid "failed reading '%s': %s"
msgstr "odczytanie „%s†się nie powiodło: %s"
-#: src/readelf.c:849
+#: src/readelf.c:867
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "Brak sekcji „%s†w „%sâ€"
-#: src/readelf.c:908
+#: src/readelf.c:926
#, c-format
msgid "cannot read ELF header: %s"
msgstr "nie można odczytać nagłówka ELF: %s"
-#: src/readelf.c:916
+#: src/readelf.c:934
#, c-format
msgid "cannot create EBL handle"
msgstr "nie można utworzyć uchwytu EBL"
-#: src/readelf.c:929
+#: src/readelf.c:947
#, 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:979
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "nie można odczytać %s: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1040
msgid "NONE (None)"
msgstr "NONE (żaden)"
-#: src/readelf.c:1023
+#: src/readelf.c:1041
msgid "REL (Relocatable file)"
msgstr "REL (plik relokowalny)"
-#: src/readelf.c:1024
+#: src/readelf.c:1042
msgid "EXEC (Executable file)"
msgstr "EXEC (plik wykonywalny)"
-#: src/readelf.c:1025
+#: src/readelf.c:1043
msgid "DYN (Shared object file)"
msgstr "DYN (plik obiektu współdzielonego)"
-#: src/readelf.c:1026
+#: src/readelf.c:1044
msgid "CORE (Core file)"
msgstr "CORE (plik core)"
-#: src/readelf.c:1031
+#: src/readelf.c:1049
#, 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:1051
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Zależny od procesora: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1061
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4136,7 +4136,7 @@ msgstr ""
"Nagłówek ELF:\n"
" Magic: "
-#: src/readelf.c:1047
+#: src/readelf.c:1065
#, c-format
msgid ""
"\n"
@@ -4145,118 +4145,123 @@ msgstr ""
"\n"
" Klasa: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1070
#, c-format
msgid " Data: %s\n"
msgstr " Dane: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1076
#, 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:1078 src/readelf.c:1100
msgid "(current)"
msgstr "(bieżąca)"
-#: src/readelf.c:1064
+#: src/readelf.c:1082
#, c-format
msgid " OS/ABI: %s\n"
msgstr " System operacyjny/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1085
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Wersja ABI: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1088
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1073
+#: src/readelf.c:1093
#, c-format
msgid " Machine: %s\n"
msgstr " Komputer: %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1095
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Komputer: %s\n"
+
+#: src/readelf.c:1098
#, c-format
msgid " Version: %d %s\n"
msgstr " Wersja: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1102
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Adres punktu wejściowego: %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1105
#, 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:1106 src/readelf.c:1109
msgid "(bytes into file)"
msgstr "(bajtów w pliku)"
-#: src/readelf.c:1085
+#: src/readelf.c:1108
#, 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:1111
#, c-format
msgid " Flags: %s\n"
msgstr " Flagi: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1114
#, 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:1115 src/readelf.c:1118 src/readelf.c:1135
msgid "(bytes)"
msgstr "(bajtów)"
-#: src/readelf.c:1094
+#: src/readelf.c:1117
#, 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:1120
#, 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:1127
#, 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:1130 src/readelf.c:1147 src/readelf.c:1161
msgid " ([0] not available)"
msgstr " ([0] niedostępny)"
-#: src/readelf.c:1111
+#: src/readelf.c:1134
#, 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:1137
#, 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:1144
#, 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:1157
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> w [0].sh_link)"
-#: src/readelf.c:1142
+#: src/readelf.c:1165
#, 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:1169
#, 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:1216 src/readelf.c:1424
#, 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:1219
#, 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:1228
#, 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:1231
msgid "Section Headers:"
msgstr "Nagłówki sekcji:"
-#: src/readelf.c:1211
+#: src/readelf.c:1234
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:1236
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:1241
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1220
+#: src/readelf.c:1243
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1296
+#: src/readelf.c:1319
#, 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:1330
#, 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:1348
msgid "Program Headers:"
msgstr "Nagłówki programu:"
-#: src/readelf.c:1327
+#: src/readelf.c:1350
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:1353
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:1410
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Wywołanie interpretera programu: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1437
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:1448 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:1594
#, 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:1599
#, 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:1607
msgid "<INVALID SYMBOL>"
msgstr "<NIEPRAWIDÅOWY SYMBOL>"
-#: src/readelf.c:1598
+#: src/readelf.c:1621
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:1644 src/readelf.c:2371 src/readelf.c:3472 src/readelf.c:12505
+#: src/readelf.c:12512 src/readelf.c:12556 src/readelf.c:12563
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:1649 src/readelf.c:2376 src/readelf.c:3477
#, 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:1793 src/readelf.c:2443 src/readelf.c:2701 src/readelf.c:2777
+#: src/readelf.c:3081 src/readelf.c:3155 src/readelf.c:5352
#, 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:1796
#, 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:1806
msgid " Type Value\n"
msgstr " Typ Wartość\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1830
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteka współdzielona: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1835
#, c-format
msgid "Library soname: [%s]\n"
msgstr "soname biblioteki: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1840
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "rpath biblioteki: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1845
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "runpath biblioteki: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1865
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bajtów)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1978 src/readelf.c:2168
#, 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:1996 src/readelf.c:2186
#, 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:2011 src/readelf.c:2201
#, 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:2021
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2023
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:2076 src/readelf.c:2087 src/readelf.c:2100 src/readelf.c:2121
+#: src/readelf.c:2133 src/readelf.c:2267 src/readelf.c:2279 src/readelf.c:2293
+#: src/readelf.c:2315 src/readelf.c:2328
msgid "<INVALID RELOC>"
msgstr "<NIEPRAWIDÅOWA RELOKACJA>"
-#: src/readelf.c:2188
+#: src/readelf.c:2211
msgid " Offset Type Value Addend Name\n"
msgstr " Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2213
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2451
#, 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:2456
#, 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:2464
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:2466
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:2486
#, 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:2574
#, c-format
msgid "bad dynamic symbol"
msgstr "błędny symbol dynamiczny"
-#: src/readelf.c:2633
+#: src/readelf.c:2656
msgid "none"
msgstr "brak"
-#: src/readelf.c:2650
+#: src/readelf.c:2673
msgid "| <unknown>"
msgstr "| <nieznany>"
-#: src/readelf.c:2681
+#: src/readelf.c:2704
#, 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:2725
#, 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:2738
#, 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:2781
#, 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:2809
#, 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:2824
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Rodzic %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3085
#, 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:3113
msgid " 0 *local* "
msgstr " 0 *lokalny* "
-#: src/readelf.c:3095
+#: src/readelf.c:3118
msgid " 1 *global* "
msgstr " 1 *globalny* "
-#: src/readelf.c:3137
+#: src/readelf.c:3160
#, 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:3182
#, 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:3184
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3191
#, 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:3204
#, 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:3222 src/readelf.c:3286 src/readelf.c:3352
#, 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:3230
#, 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:3259
#, 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:3294
#, 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:3325
#, 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:3361
#, 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:3428
#, 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:3517
#, 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:3531
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:3583
#, 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:3600
msgid " Owner Size\n"
msgstr " Właściciel Rozmiar\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3629
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3668
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3673
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Plik: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3722
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3725
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3728
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3738
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3741
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3811
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "mprotect się nie powiodło"
-#: src/readelf.c:4268
+#: src/readelf.c:4293
msgid "empty block"
msgstr "pusty blok"
-#: src/readelf.c:4271
+#: src/readelf.c:4296
#, c-format
msgid "%zu byte block:"
msgstr "%zu bajtowy blok:"
-#: src/readelf.c:4749
+#: src/readelf.c:4774
#, 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:4838
#, 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:4845
#, 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:4852
#, 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:4859
#, 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:4956
#, 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:4964
#, 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:5042
#, 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:5050
#, 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:5063
#, 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:5079
#, 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:5112 src/readelf.c:5421 src/readelf.c:5588 src/readelf.c:5973
+#: src/readelf.c:6574 src/readelf.c:8311 src/readelf.c:8997 src/readelf.c:9433
+#: src/readelf.c:9678 src/readelf.c:9844 src/readelf.c:10231
+#: src/readelf.c:10291
#, 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:5125
#, 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:5225 src/readelf.c:5249 src/readelf.c:5633 src/readelf.c:9042
#, 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:5227 src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055
#, 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:5228 src/readelf.c:5273 src/readelf.c:5655 src/readelf.c:9064
#, 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:5230 src/readelf.c:5283 src/readelf.c:5665 src/readelf.c:9074
#, 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:5268 src/readelf.c:5650 src/readelf.c:9059 src/readelf.c:10423
#, 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:5278 src/readelf.c:5491 src/readelf.c:5660 src/readelf.c:9069
#, 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:5289 src/readelf.c:5502 src/readelf.c:5670 src/readelf.c:9079
#, c-format
msgid "unsupported segment size"
msgstr "nieobsługiwany rozmiar segmentu"
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5342 src/readelf.c:5416
#, 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:5357
#, 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:5388
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5390
#, 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:5434 src/readelf.c:8338
#, 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:5438 src/readelf.c:5614 src/readelf.c:6598 src/readelf.c:8349
+#: src/readelf.c:9023
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "nieprawidÅ‚owe dane w sekcji [%zu] „%sâ€"
-#: src/readelf.c:5429
+#: src/readelf.c:5454
#, c-format
msgid ""
"\n"
@@ -5097,27 +5102,27 @@ msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5441
+#: src/readelf.c:5466
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5470
#, c-format
msgid "unsupported aranges version"
msgstr "nieobsługiwana wersja aranges"
-#: src/readelf.c:5456
+#: src/readelf.c:5481
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Offset CU: %6<PRIx64>\n"
-#: src/readelf.c:5462
+#: src/readelf.c:5487
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5473
+#: src/readelf.c:5498
#, 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:5553
#, c-format
msgid " %zu padding bytes\n"
msgstr " bajty wypełnienia: %zu\n"
-#: src/readelf.c:5572
+#: src/readelf.c:5597
#, 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:5620 src/readelf.c:9029
#, 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:5675 src/readelf.c:9084
#, 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:5691 src/readelf.c:9100
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5693 src/readelf.c:9102
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5699 src/readelf.c:9108
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5710 src/readelf.c:9119
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5714 src/readelf.c:9123
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5766
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "nieprawidłowe dane"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5951 src/readelf.c:9411
#, fuzzy, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr " bajty wypełnienia: %zu\n"
-#: src/readelf.c:5943
+#: src/readelf.c:5968
#, 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:6004 src/readelf.c:9466
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6006 src/readelf.c:9468
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6015 src/readelf.c:9494 src/readelf.c:9520
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6036 src/readelf.c:9600
#, 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:6044 src/readelf.c:9608
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] pusta lista\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6299
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6552
#, c-format
msgid "cannot get ELF: %s"
msgstr "nie można uzyskać ELF: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6570
#, 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:6620
#, 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:6721 src/readelf.c:6875
#, c-format
msgid "invalid augmentation length"
msgstr "nieprawidłowa długość powiększenia"
-#: src/readelf.c:6711
+#: src/readelf.c:6736
msgid "FDE address encoding: "
msgstr "Kodowanie adresu FDE: "
-#: src/readelf.c:6717
+#: src/readelf.c:6742
msgid "LSDA pointer encoding: "
msgstr "Kodowanie wskaźnika LSDA: "
-#: src/readelf.c:6827
+#: src/readelf.c:6852
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (offset: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6859
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (kończący offset: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6896
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6981
#, 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:6991
#, 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:7013
#, 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:7343
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "nieprawidłowy plik"
-#: src/readelf.c:7325
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7351
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "nie można uzyskać ELF: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7664
#, 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:7714
#, 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:7733
#, 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:7745
#, 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:7755 src/readelf.c:7918
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7782
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7811
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "nie można uzyskać offsetu DIE: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7820
#, 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:7858
#, 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:7866
#, c-format
msgid "cannot get next DIE: %s"
msgstr "nie można uzyskać następnego DIE: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7910
#, 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:7962
#, 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:8294
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "nieznany błąd"
-#: src/readelf.c:8213
+#: src/readelf.c:8325
#, 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:8427
#, fuzzy, c-format
msgid ""
"\n"
@@ -5441,27 +5446,27 @@ msgstr ""
"\n"
"Instrukcje:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8449
#, 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:8457
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "nieobsługiwany rozmiar adresu"
-#: src/readelf.c:8353
+#: src/readelf.c:8465
#, 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:8475
#, 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:8490
#, 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:8501
msgid ""
"\n"
"Directory table:"
@@ -5477,12 +5482,12 @@ msgstr ""
"\n"
"Tabela katalogu:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8507 src/readelf.c:8584
#, fuzzy, c-format
msgid " ["
msgstr " PC: "
-#: src/readelf.c:8466
+#: src/readelf.c:8578
#, fuzzy
msgid ""
"\n"
@@ -5491,7 +5496,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:8527
+#: src/readelf.c:8639
#, 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:8676
msgid ""
"\n"
"Line number statements:"
@@ -5507,119 +5512,119 @@ msgstr ""
"\n"
"Instrukcje numerów wierszy:"
-#: src/readelf.c:8587
+#: src/readelf.c:8699
#, 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:8733
#, 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:8737
#, 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:8740
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8758
#, c-format
msgid " extended opcode %u: "
msgstr " instrukcja rozszerzona %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8763
msgid " end of sequence"
msgstr " koniec sekwencji"
-#: src/readelf.c:8669
+#: src/readelf.c:8781
#, fuzzy, c-format
msgid " set address to "
msgstr " ustawienie adresu na %s\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8809
#, 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:8823
#, c-format
msgid " set discriminator to %u\n"
msgstr " ustawienie dyskryminatora na %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8828
msgid " unknown opcode"
msgstr " nieznana instrukcja"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8840
msgid " copy"
msgstr " kopiowanie"
-#: src/readelf.c:8739
+#: src/readelf.c:8851
#, 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:8855 src/readelf.c:8916
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8867
#, 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:8877
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8888
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8895
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " ustawienie „%s†na %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8901
msgid " set basic block flag"
msgstr " ustawienie podstawowej flagi bloku"
-#: src/readelf.c:8800
+#: src/readelf.c:8912
#, 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:8932
#, 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:8942
msgid " set prologue end flag"
msgstr " ustawienie flagi końca prologu"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8947
msgid " set epilogue begin flag"
msgstr " ustawienie flagi poczÄ…tku epilogu"
-#: src/readelf.c:8845
+#: src/readelf.c:8957
#, 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:8966
#, 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:9006
#, 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:9175
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "nieprawidłowe dane"
-#: src/readelf.c:9316
+#: src/readelf.c:9428
#, 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:9635 src/readelf.c:10679
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9690 src/readelf.c:9853
#, 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:9770
#, 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:9793
#, 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:9894
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9906
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Wersja: %<PRIu16>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9912 src/readelf.c:10799
#, 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:9919
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Flaga: 0x%<PRIx8>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9948
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:9844
+#: src/readelf.c:9956
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:9869
+#: src/readelf.c:9981
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n"
-#: src/readelf.c:9876
+#: src/readelf.c:9988
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:9888
+#: src/readelf.c:10000
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " Parametry %<PRIu8>:"
-#: src/readelf.c:9903
+#: src/readelf.c:10015
#, c-format
msgid " no arguments."
msgstr " brak parametrów."
-#: src/readelf.c:10104
+#: src/readelf.c:10216
#, 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:10260
#, 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:10275
#, 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:10304
#, 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:10403
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10405
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:10307
+#: src/readelf.c:10419
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10428
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:10370
+#: src/readelf.c:10482
#, 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:10584
#, 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:10607
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Kodowanie LPStart: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10619
#, c-format
msgid " TType encoding: %#x "
msgstr " Kodowanie TType: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10634
#, c-format
msgid " Call site encoding: %#x "
msgstr " Kodowanie strony wywołania: %#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10647
msgid ""
"\n"
" Call site table:"
@@ -5810,7 +5815,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:10549
+#: src/readelf.c:10661
#, 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:10734
#, c-format
msgid "invalid TType encoding"
msgstr "nieprawidłowe kodowanie TType"
-#: src/readelf.c:10649
+#: src/readelf.c:10761
#, 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:10790
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Wersja: %<PRId32>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10808
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " offset CU: %#<PRIx32>\n"
-#: src/readelf.c:10703
+#: src/readelf.c:10815
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " offset TU: %#<PRIx32>\n"
-#: src/readelf.c:10710
+#: src/readelf.c:10822
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " offset adresu: %#<PRIx32>\n"
-#: src/readelf.c:10717
+#: src/readelf.c:10829
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " offset symbolu: %#<PRIx32>\n"
-#: src/readelf.c:10724
+#: src/readelf.c:10836
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " offset stałej: %#<PRIx32>\n"
-#: src/readelf.c:10738
+#: src/readelf.c:10850
#, 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:10875
#, 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:10904
#, 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:10936
#, 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:11074
#, 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:11437 src/readelf.c:12059 src/readelf.c:12170
+#: src/readelf.c:12228
#, 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:11800
#, c-format
msgid ""
"\n"
@@ -5923,21 +5928,21 @@ msgstr ""
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: src/readelf.c:12195
+#: src/readelf.c:12307
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12336
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12388
#, 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:12422
#, 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:12445
#, 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:12492
#, 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:12519 src/readelf.c:12570
#, 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:12524
#, 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:12529
#, 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:12543
#, 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:12575
#, 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:12580
#, 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:12629
#, c-format
msgid ""
"\n"
@@ -6029,7 +6034,7 @@ msgstr ""
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:12539
+#: src/readelf.c:12658
#, c-format
msgid ""
"\n"
@@ -6038,12 +6043,12 @@ msgstr ""
"\n"
"sekcja „%s†nie istnieje"
-#: src/readelf.c:12596
+#: src/readelf.c:12715
#, 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:12718
#, c-format
msgid ""
"\n"
@@ -6052,7 +6057,7 @@ msgstr ""
"\n"
"Archiwum „%s†nie ma indeksu symboli\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12722
#, 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:12740
#, 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:12745
#, 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..3f0d4ce0 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-28 13:23+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:3437
+#: src/readelf.c:11386 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:6154
#, 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:9902 src/readelf.c:10502
+#: src/readelf.c:10603 src/readelf.c:10785
#, 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:360
#, 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:563
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:623
+#: src/readelf.c:1435 src/readelf.c:1586 src/readelf.c:1787 src/readelf.c:1993
+#: src/readelf.c:2183 src/readelf.c:2361 src/readelf.c:2437 src/readelf.c:2695
+#: src/readelf.c:2771 src/readelf.c:2858 src/readelf.c:3456 src/readelf.c:3506
+#: src/readelf.c:3569 src/readelf.c:11218 src/readelf.c:12403
+#: src/readelf.c:12614 src/readelf.c:12682 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:568
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:2088 src/readelf.c:2280
msgid "INVALID SYMBOL"
msgstr "ÐЕКОРЕКТÐИЙ СИМВОЛ"
-#: src/objdump.c:378 src/readelf.c:2099 src/readelf.c:2293
+#: src/objdump.c:378 src/readelf.c:2122 src/readelf.c:2316
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:342
msgid "yes"
msgstr "так"
-#: src/readelf.c:329
+#: src/readelf.c:343
msgid "no"
msgstr "ні"
-#: src/readelf.c:518
+#: src/readelf.c:536
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Ðевідомий діагноÑтичний розділ DWARF «%s».\n"
-#: src/readelf.c:589 src/readelf.c:700
+#: src/readelf.c:607 src/readelf.c:718
#, 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:614 src/readelf.c:941 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:632 src/readelf.c:1251 src/readelf.c:1459
#, 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:641 src/readelf.c:1258 src/readelf.c:1467 src/readelf.c:12634
#: 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:649
#, 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:658 src/readelf.c:6564 src/readelf.c:10490 src/readelf.c:10592
+#: src/readelf.c:10770
#, c-format
msgid "cannot get %s content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s: %s"
-#: src/readelf.c:656
+#: src/readelf.c:674
#, c-format
msgid "cannot create temp file '%s'"
msgstr "не вдалоÑÑ Ñтворити файл тимчаÑових даних «%s»"
-#: src/readelf.c:665
+#: src/readelf.c:683
#, c-format
msgid "cannot write section data"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати дані розділу"
-#: src/readelf.c:671 src/readelf.c:688 src/readelf.c:717
+#: src/readelf.c:689 src/readelf.c:706 src/readelf.c:735
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s"
-#: src/readelf.c:678
+#: src/readelf.c:696
#, c-format
msgid "error while rewinding file descriptor"
msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початкового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла"
-#: src/readelf.c:712
+#: src/readelf.c:730
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "«%s» не Ñ” архівом, Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° архіву неможливе"
-#: src/readelf.c:816
+#: src/readelf.c:834
#, c-format
msgid "cannot stat input file"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла за допомогою stat"
-#: src/readelf.c:818
+#: src/readelf.c:836
#, c-format
msgid "input file is empty"
msgstr "вхідний файл є порожнім"
-#: src/readelf.c:820
+#: src/readelf.c:838
#, c-format
msgid "failed reading '%s': %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s"
-#: src/readelf.c:849
+#: src/readelf.c:867
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "У «%2$s» немає розділу «%1$s»"
-#: src/readelf.c:908
+#: src/readelf.c:926
#, c-format
msgid "cannot read ELF header: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s"
-#: src/readelf.c:916
+#: src/readelf.c:934
#, c-format
msgid "cannot create EBL handle"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL"
-#: src/readelf.c:929
+#: src/readelf.c:947
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/readelf.c:961
+#: src/readelf.c:979
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %s: %s"
-#: src/readelf.c:1022
+#: src/readelf.c:1040
msgid "NONE (None)"
msgstr "NONE (Ðемає)"
-#: src/readelf.c:1023
+#: src/readelf.c:1041
msgid "REL (Relocatable file)"
msgstr "REL (Придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»)"
-#: src/readelf.c:1024
+#: src/readelf.c:1042
msgid "EXEC (Executable file)"
msgstr "EXEC (Виконуваний файл)"
-#: src/readelf.c:1025
+#: src/readelf.c:1043
msgid "DYN (Shared object file)"
msgstr "DYN (Файл об’єктів Ñпільного викориÑтаннÑ)"
-#: src/readelf.c:1026
+#: src/readelf.c:1044
msgid "CORE (Core file)"
msgstr "CORE (Файл Ñдра)"
-#: src/readelf.c:1031
+#: src/readelf.c:1049
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "ОС-Ñпецифічне: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1033
+#: src/readelf.c:1051
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Специфічне Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора: (%x)\n"
-#: src/readelf.c:1043
+#: src/readelf.c:1061
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4189,7 +4189,7 @@ msgstr ""
"Заголовок ELF:\n"
" Magic: "
-#: src/readelf.c:1047
+#: src/readelf.c:1065
#, c-format
msgid ""
"\n"
@@ -4198,118 +4198,123 @@ msgstr ""
"\n"
" КлаÑ: %s\n"
-#: src/readelf.c:1052
+#: src/readelf.c:1070
#, c-format
msgid " Data: %s\n"
msgstr " Дані: %s\n"
-#: src/readelf.c:1058
+#: src/readelf.c:1076
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " ВерÑÑ–Ñ Ident: %hhd %s\n"
-#: src/readelf.c:1060 src/readelf.c:1077
+#: src/readelf.c:1078 src/readelf.c:1100
msgid "(current)"
msgstr "(поточний)"
-#: src/readelf.c:1064
+#: src/readelf.c:1082
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ABI: %s\n"
-#: src/readelf.c:1067
+#: src/readelf.c:1085
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ВерÑÑ–Ñ ABI: %hhd\n"
-#: src/readelf.c:1070
+#: src/readelf.c:1088
msgid " Type: "
msgstr " Тип: "
-#: src/readelf.c:1073
+#: src/readelf.c:1093
#, c-format
msgid " Machine: %s\n"
msgstr " Ðрхітектура: %s\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1095
+#, fuzzy, c-format
+msgid " Machine: <unknown>: 0x%x\n"
+msgstr " Ðрхітектура: %s\n"
+
+#: src/readelf.c:1098
#, c-format
msgid " Version: %d %s\n"
msgstr " ВерÑÑ–Ñ: %d %s\n"
-#: src/readelf.c:1079
+#: src/readelf.c:1102
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " ÐдреÑа вхідної точки: %#<PRIx64>\n"
-#: src/readelf.c:1082
+#: src/readelf.c:1105
#, 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:1106 src/readelf.c:1109
msgid "(bytes into file)"
msgstr "(байтів у файл)"
-#: src/readelf.c:1085
+#: src/readelf.c:1108
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Початок заголовків розділів: %<PRId64> %s\n"
-#: src/readelf.c:1088
+#: src/readelf.c:1111
#, c-format
msgid " Flags: %s\n"
msgstr " Прапорці: %s\n"
-#: src/readelf.c:1091
+#: src/readelf.c:1114
#, 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:1115 src/readelf.c:1118 src/readelf.c:1135
msgid "(bytes)"
msgstr "(байтів)"
-#: src/readelf.c:1094
+#: src/readelf.c:1117
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовка програми: %<PRId16> %s\n"
-#: src/readelf.c:1097
+#: src/readelf.c:1120
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків програми: %<PRId16>"
-#: src/readelf.c:1104
+#: src/readelf.c:1127
#, 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:1130 src/readelf.c:1147 src/readelf.c:1161
msgid " ([0] not available)"
msgstr " ([0] недоÑтупний)"
-#: src/readelf.c:1111
+#: src/readelf.c:1134
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовків розділів: %<PRId16> %s\n"
-#: src/readelf.c:1114
+#: src/readelf.c:1137
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків розділів: %<PRId16>"
-#: src/readelf.c:1121
+#: src/readelf.c:1144
#, 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:1157
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> у [0].sh_link)"
-#: src/readelf.c:1142
+#: src/readelf.c:1165
#, 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:1169
#, 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:1216 src/readelf.c:1424
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:1196
+#: src/readelf.c:1219
#, 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:1228
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків"
-#: src/readelf.c:1208
+#: src/readelf.c:1231
msgid "Section Headers:"
msgstr "Заголовки розділів:"
-#: src/readelf.c:1211
+#: src/readelf.c:1234
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:1236
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:1241
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1220
+#: src/readelf.c:1243
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1296
+#: src/readelf.c:1319
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s"
-#: src/readelf.c:1307
+#: src/readelf.c:1330
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s"
-#: src/readelf.c:1325
+#: src/readelf.c:1348
msgid "Program Headers:"
msgstr "Заголовки програми:"
-#: src/readelf.c:1327
+#: src/readelf.c:1350
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр РозмФайл РозмПам Пра Вирів"
-#: src/readelf.c:1330
+#: src/readelf.c:1353
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4402,12 +4407,12 @@ msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр "
"РозмФайлРозмПам Пра Вирів"
-#: src/readelf.c:1387
+#: src/readelf.c:1410
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Запит щодо інтерпретатора програми: %s]\n"
-#: src/readelf.c:1414
+#: src/readelf.c:1437
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:1448 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:1594
#, c-format
msgid ""
"\n"
@@ -4440,7 +4445,7 @@ msgstr[2] ""
"\n"
"Група розділів COMDAT [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1576
+#: src/readelf.c:1599
#, c-format
msgid ""
"\n"
@@ -4458,31 +4463,31 @@ msgstr[2] ""
"\n"
"Група розділів [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1584
+#: src/readelf.c:1607
msgid "<INVALID SYMBOL>"
msgstr "<ÐЕКОРЕКТÐИЙ СИМВОЛ>"
-#: src/readelf.c:1598
+#: src/readelf.c:1621
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:1644 src/readelf.c:2371 src/readelf.c:3472 src/readelf.c:12505
+#: src/readelf.c:12512 src/readelf.c:12556 src/readelf.c:12563
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1626 src/readelf.c:2353 src/readelf.c:3454
+#: src/readelf.c:1649 src/readelf.c:2376 src/readelf.c:3477
#, 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:1793 src/readelf.c:2443 src/readelf.c:2701 src/readelf.c:2777
+#: src/readelf.c:3081 src/readelf.c:3155 src/readelf.c:5352
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu"
-#: src/readelf.c:1773
+#: src/readelf.c:1796
#, 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:1806
msgid " Type Value\n"
msgstr " Тип ЗначеннÑ\n"
-#: src/readelf.c:1807
+#: src/readelf.c:1830
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Спільна бібліотека: [%s]\n"
-#: src/readelf.c:1812
+#: src/readelf.c:1835
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Ðазва so бібліотеки: [%s]\n"
-#: src/readelf.c:1817
+#: src/readelf.c:1840
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath бібліотеки: [%s]\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1845
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Runpath бібліотеки: [%s]\n"
-#: src/readelf.c:1842
+#: src/readelf.c:1865
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (байт)\n"
-#: src/readelf.c:1955 src/readelf.c:2145
+#: src/readelf.c:1978 src/readelf.c:2168
#, c-format
msgid ""
"\n"
@@ -4543,7 +4548,7 @@ msgstr ""
"\n"
"Ðекоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#0<PRIx64>\n"
-#: src/readelf.c:1973 src/readelf.c:2163
+#: src/readelf.c:1996 src/readelf.c:2186
#, 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:2011 src/readelf.c:2201
#, c-format
msgid ""
"\n"
@@ -4590,30 +4595,30 @@ msgstr[2] ""
"\n"
"Розділ переÑÑƒÐ²Ð°Ð½Ð½Ñ [%2u] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d запиÑів:\n"
-#: src/readelf.c:1998
+#: src/readelf.c:2021
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2000
+#: src/readelf.c:2023
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:2076 src/readelf.c:2087 src/readelf.c:2100 src/readelf.c:2121
+#: src/readelf.c:2133 src/readelf.c:2267 src/readelf.c:2279 src/readelf.c:2293
+#: src/readelf.c:2315 src/readelf.c:2328
msgid "<INVALID RELOC>"
msgstr "<ÐЕКОРЕКТÐЕ ПЕРЕМІЩЕÐÐЯ>"
-#: src/readelf.c:2188
+#: src/readelf.c:2211
msgid " Offset Type Value Addend Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2190
+#: src/readelf.c:2213
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2428
+#: src/readelf.c:2451
#, c-format
msgid ""
"\n"
@@ -4631,7 +4636,7 @@ msgstr[2] ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%2u] «%s» міÑтить %u запиÑів:\n"
-#: src/readelf.c:2433
+#: src/readelf.c:2456
#, 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:2464
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2443
+#: src/readelf.c:2466
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2463
+#: src/readelf.c:2486
#, 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:2574
#, c-format
msgid "bad dynamic symbol"
msgstr "помилковий динамічний Ñимвол"
-#: src/readelf.c:2633
+#: src/readelf.c:2656
msgid "none"
msgstr "немає"
-#: src/readelf.c:2650
+#: src/readelf.c:2673
msgid "| <unknown>"
msgstr "| <невідомо>"
-#: src/readelf.c:2681
+#: src/readelf.c:2704
#, 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:2725
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ВерÑÑ–Ñ: %hu Файл: %s Кть: %hu\n"
-#: src/readelf.c:2715
+#: src/readelf.c:2738
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Ðазва: %s Прап: %s ВерÑÑ–Ñ: %hu\n"
-#: src/readelf.c:2758
+#: src/readelf.c:2781
#, 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:2809
#, 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:2824
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: батьківÑький %d: %s\n"
#. Print the header.
-#: src/readelf.c:3062
+#: src/readelf.c:3085
#, 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:3113
msgid " 0 *local* "
msgstr " 0 *локальний* "
-#: src/readelf.c:3095
+#: src/readelf.c:3118
msgid " 1 *global* "
msgstr " 1 *загальний* "
-#: src/readelf.c:3137
+#: src/readelf.c:3160
#, 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:3182
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Довжина Ðомер % від загал. ПокриттÑ\n"
-#: src/readelf.c:3161
+#: src/readelf.c:3184
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3168
+#: src/readelf.c:3191
#, 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:3204
#, 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:3222 src/readelf.c:3286 src/readelf.c:3352
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s"
-#: src/readelf.c:3207
+#: src/readelf.c:3230
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "некоректні дані у розділі sysv.hash %d"
-#: src/readelf.c:3236
+#: src/readelf.c:3259
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "некоректні дані у розділі sysv.hash %d"
-#: src/readelf.c:3271
+#: src/readelf.c:3294
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "некоректні дані у розділі sysv.hash64 %d"
-#: src/readelf.c:3302
+#: src/readelf.c:3325
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "некоректні дані у розділі sysv.hash64 %d"
-#: src/readelf.c:3338
+#: src/readelf.c:3361
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "некоректні дані у розділі gnu.hash %d"
-#: src/readelf.c:3405
+#: src/readelf.c:3428
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4855,7 +4860,7 @@ msgstr ""
" Розмір бітової маÑки: %zu байтів %<PRIuFAST32>%% вÑтановлених бітів зÑув "
"2-го хешу: %u\n"
-#: src/readelf.c:3494
+#: src/readelf.c:3517
#, c-format
msgid ""
"\n"
@@ -4876,7 +4881,7 @@ msgstr[2] ""
"Розділ ÑпиÑку бібліотек [%2zu] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d "
"запиÑів:\n"
-#: src/readelf.c:3508
+#: src/readelf.c:3531
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4884,7 +4889,7 @@ msgstr ""
" Бібліотека ЧаÑовий штамп ВерÑÑ–Ñ Ñуми "
"Прапорці"
-#: src/readelf.c:3558
+#: src/readelf.c:3583
#, c-format
msgid ""
"\n"
@@ -4895,102 +4900,102 @@ msgstr ""
"Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:3575
+#: src/readelf.c:3600
msgid " Owner Size\n"
msgstr " ВлаÑник Розмір\n"
-#: src/readelf.c:3604
+#: src/readelf.c:3629
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3643
+#: src/readelf.c:3668
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3648
+#: src/readelf.c:3673
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Файл: %11<PRIu32>\n"
-#: src/readelf.c:3697
+#: src/readelf.c:3722
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3700
+#: src/readelf.c:3725
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3703
+#: src/readelf.c:3728
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3713
+#: src/readelf.c:3738
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3716
+#: src/readelf.c:3741
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3786
+#: src/readelf.c:3811
#, fuzzy, c-format
msgid "sprintf failure"
msgstr "помилка mprotect"
-#: src/readelf.c:4268
+#: src/readelf.c:4293
msgid "empty block"
msgstr "порожній блок"
-#: src/readelf.c:4271
+#: src/readelf.c:4296
#, c-format
msgid "%zu byte block:"
msgstr "%zu-байтовий блок:"
-#: src/readelf.c:4749
+#: src/readelf.c:4774
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <ОБРІЗÐÐО>\n"
-#: src/readelf.c:4813
+#: src/readelf.c:4838
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ"
-#: src/readelf.c:4820
+#: src/readelf.c:4845
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами зміщень"
-#: src/readelf.c:4827
+#: src/readelf.c:4852
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> викориÑтано з різними базовими адреÑами"
-#: src/readelf.c:4834
+#: src/readelf.c:4859
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ"
-#: src/readelf.c:4931
+#: src/readelf.c:4956
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ У РЕШТІ РОЗДІЛУ>\n"
-#: src/readelf.c:4939
+#: src/readelf.c:4964
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ> ... %<PRIu64> байтів ...\n"
-#: src/readelf.c:5017
+#: src/readelf.c:5042
#, c-format
msgid ""
"\n"
@@ -5001,7 +5006,7 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:5025
+#: src/readelf.c:5050
#, c-format
msgid ""
"\n"
@@ -5010,20 +5015,20 @@ msgstr ""
"\n"
"Розділ Ñкорочень за зміщеннÑм %<PRIu64>:\n"
-#: src/readelf.c:5038
+#: src/readelf.c:5063
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÑкороченнÑ: %s\n"
-#: src/readelf.c:5054
+#: src/readelf.c:5079
#, 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:5112 src/readelf.c:5421 src/readelf.c:5588 src/readelf.c:5973
+#: src/readelf.c:6574 src/readelf.c:8311 src/readelf.c:8997 src/readelf.c:9433
+#: src/readelf.c:9678 src/readelf.c:9844 src/readelf.c:10231
+#: src/readelf.c:10291
#, c-format
msgid ""
"\n"
@@ -5032,56 +5037,56 @@ msgstr ""
"\n"
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:5100
+#: src/readelf.c:5125
#, 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:5225 src/readelf.c:5249 src/readelf.c:5633 src/readelf.c:9042
#, 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:5227 src/readelf.c:5264 src/readelf.c:5646 src/readelf.c:9055
#, 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:5228 src/readelf.c:5273 src/readelf.c:5655 src/readelf.c:9064
#, 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:5230 src/readelf.c:5283 src/readelf.c:5665 src/readelf.c:9074
#, 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:5268 src/readelf.c:5650 src/readelf.c:9059 src/readelf.c:10423
#, 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:5278 src/readelf.c:5491 src/readelf.c:5660 src/readelf.c:9069
#, 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:5289 src/readelf.c:5502 src/readelf.c:5670 src/readelf.c:9079
#, c-format
msgid "unsupported segment size"
msgstr "непідтримуваний розмір Ñегмента"
-#: src/readelf.c:5317 src/readelf.c:5391
+#: src/readelf.c:5342 src/readelf.c:5416
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані get .debug_aranges: %s"
-#: src/readelf.c:5332
+#: src/readelf.c:5357
#, c-format
msgid ""
"\n"
@@ -5099,12 +5104,12 @@ msgstr[2] ""
"\n"
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:5363
+#: src/readelf.c:5388
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5365
+#: src/readelf.c:5390
#, 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:5434 src/readelf.c:8338
#, 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:5438 src/readelf.c:5614 src/readelf.c:6598 src/readelf.c:8349
+#: src/readelf.c:9023
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "некоректні дані у розділі [%zu] «%s»"
-#: src/readelf.c:5429
+#: src/readelf.c:5454
#, c-format
msgid ""
"\n"
@@ -5136,27 +5141,27 @@ msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5441
+#: src/readelf.c:5466
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5470
#, c-format
msgid "unsupported aranges version"
msgstr "непідтримувана верÑÑ–Ñ aranges"
-#: src/readelf.c:5456
+#: src/readelf.c:5481
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %6<PRIx64>\n"
-#: src/readelf.c:5462
+#: src/readelf.c:5487
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Розмір адреÑи: %6<PRIu64>\n"
-#: src/readelf.c:5473
+#: src/readelf.c:5498
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5165,111 +5170,111 @@ msgstr ""
" Розмір Ñегмента: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5528
+#: src/readelf.c:5553
#, c-format
msgid " %zu padding bytes\n"
msgstr " %zu байтів доповненнÑ\n"
-#: src/readelf.c:5572
+#: src/readelf.c:5597
#, 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:5620 src/readelf.c:9029
#, 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:5675 src/readelf.c:9084
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:5666 src/readelf.c:8988
+#: src/readelf.c:5691 src/readelf.c:9100
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5668 src/readelf.c:8990
+#: src/readelf.c:5693 src/readelf.c:9102
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5674 src/readelf.c:8996
+#: src/readelf.c:5699 src/readelf.c:9108
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5685 src/readelf.c:9007
+#: src/readelf.c:5710 src/readelf.c:9119
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5689 src/readelf.c:9011
+#: src/readelf.c:5714 src/readelf.c:9123
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " ЗміщеннÑ: 0x%<PRIx64>\n"
-#: src/readelf.c:5741
+#: src/readelf.c:5766
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "некоректні дані"
-#: src/readelf.c:5926 src/readelf.c:9299
+#: src/readelf.c:5951 src/readelf.c:9411
#, fuzzy, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr " %zu байтів доповненнÑ\n"
-#: src/readelf.c:5943
+#: src/readelf.c:5968
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані .debug_ranges: %s"
-#: src/readelf.c:5979 src/readelf.c:9354
+#: src/readelf.c:6004 src/readelf.c:9466
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:5981 src/readelf.c:9356
+#: src/readelf.c:6006 src/readelf.c:9468
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5990 src/readelf.c:9382 src/readelf.c:9408
+#: src/readelf.c:6015 src/readelf.c:9494 src/readelf.c:9520
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6011 src/readelf.c:9488
+#: src/readelf.c:6036 src/readelf.c:9600
#, fuzzy, c-format
msgid ""
" [%6tx] base address\n"
" "
msgstr " [%6tx] базова адреÑа %s\n"
-#: src/readelf.c:6019 src/readelf.c:9496
+#: src/readelf.c:6044 src/readelf.c:9608
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] порожній ÑпиÑок\n"
-#: src/readelf.c:6274
+#: src/readelf.c:6299
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6527
+#: src/readelf.c:6552
#, c-format
msgid "cannot get ELF: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:6545
+#: src/readelf.c:6570
#, c-format
msgid ""
"\n"
@@ -5278,7 +5283,7 @@ msgstr ""
"\n"
"Розділ відомоÑтей щодо вікна викликів [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:6595
+#: src/readelf.c:6620
#, c-format
msgid ""
"\n"
@@ -5287,65 +5292,65 @@ msgstr ""
"\n"
" [%6tx] нульовий переривач\n"
-#: src/readelf.c:6696 src/readelf.c:6850
+#: src/readelf.c:6721 src/readelf.c:6875
#, c-format
msgid "invalid augmentation length"
msgstr "некоректна довжина збільшеннÑ"
-#: src/readelf.c:6711
+#: src/readelf.c:6736
msgid "FDE address encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи FDE: "
-#: src/readelf.c:6717
+#: src/readelf.c:6742
msgid "LSDA pointer encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° LSDA: "
-#: src/readelf.c:6827
+#: src/readelf.c:6852
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (зміщеннÑ: %#<PRIx64>)"
-#: src/readelf.c:6834
+#: src/readelf.c:6859
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ кінцÑ: %#<PRIx64>)"
-#: src/readelf.c:6871
+#: src/readelf.c:6896
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sвказівник LSDA: %#<PRIx64>\n"
-#: src/readelf.c:6956
+#: src/readelf.c:6981
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ код атрибута: %s"
-#: src/readelf.c:6966
+#: src/readelf.c:6991
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ форму атрибута: %s"
-#: src/readelf.c:6988
+#: src/readelf.c:7013
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð°: %s"
-#: src/readelf.c:7321
+#: src/readelf.c:7343
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "некоректний файл"
-#: src/readelf.c:7325
+#: src/readelf.c:7347
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " вÑтановити файл у %<PRIu64>\n"
-#: src/readelf.c:7329
+#: src/readelf.c:7351
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:7552
+#: src/readelf.c:7664
#, c-format
msgid ""
"\n"
@@ -5356,12 +5361,12 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
" [ЗміщеннÑ]\n"
-#: src/readelf.c:7602
+#: src/readelf.c:7714
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s"
-#: src/readelf.c:7621
+#: src/readelf.c:7733
#, 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:7745
#, 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:7755 src/readelf.c:7918
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7670
+#: src/readelf.c:7782
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7699
+#: src/readelf.c:7811
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %s"
-#: src/readelf.c:7708
+#: src/readelf.c:7820
#, 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:7858
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s\n"
-#: src/readelf.c:7754
+#: src/readelf.c:7866
#, c-format
msgid "cannot get next DIE: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s"
-#: src/readelf.c:7798
+#: src/readelf.c:7910
#, 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:7962
#, c-format
msgid ""
"\n"
@@ -5438,18 +5443,18 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8182
+#: src/readelf.c:8294
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "невідома форма %#<PRIx64>"
-#: src/readelf.c:8213
+#: src/readelf.c:8325
#, 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:8427
#, fuzzy, c-format
msgid ""
"\n"
@@ -5480,27 +5485,27 @@ msgstr ""
"\n"
"Коди операцій:\n"
-#: src/readelf.c:8337
+#: src/readelf.c:8449
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s"
-#: src/readelf.c:8345
+#: src/readelf.c:8457
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "непідтримуваний розмір адреÑи"
-#: src/readelf.c:8353
+#: src/readelf.c:8465
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/readelf.c:8363
+#: src/readelf.c:8475
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "некоректні дані зі зміщеннÑм %tu у розділі [%zu] «%s»"
-#: src/readelf.c:8378
+#: src/readelf.c:8490
#, 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:8501
msgid ""
"\n"
"Directory table:"
@@ -5516,12 +5521,12 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ:"
-#: src/readelf.c:8395 src/readelf.c:8472
+#: src/readelf.c:8507 src/readelf.c:8584
#, fuzzy, c-format
msgid " ["
msgstr " PC: "
-#: src/readelf.c:8466
+#: src/readelf.c:8578
#, fuzzy
msgid ""
"\n"
@@ -5530,7 +5535,7 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:"
-#: src/readelf.c:8527
+#: src/readelf.c:8639
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5538,7 +5543,7 @@ msgstr ""
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð°Ð·Ð² файлів:\n"
" Ð—Ð°Ð¿Ð¸Ñ ÐšÐ°Ñ‚ Ð§Ð°Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðазва"
-#: src/readelf.c:8564
+#: src/readelf.c:8676
msgid ""
"\n"
"Line number statements:"
@@ -5546,120 +5551,120 @@ msgstr ""
"\n"
"Оператори номерів Ñ€Ñдків:"
-#: src/readelf.c:8587
+#: src/readelf.c:8699
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "некоректну кількіÑÑ‚ÑŒ операцій на інÑтрукцію прирівнÑно до нулÑ"
-#: src/readelf.c:8621
+#: src/readelf.c:8733
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " Ñпеціальний код операції %u: адреÑа+%u = %s, Ñ€Ñдок%+d = %zu\n"
-#: src/readelf.c:8625
+#: src/readelf.c:8737
#, 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:8740
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8646
+#: src/readelf.c:8758
#, c-format
msgid " extended opcode %u: "
msgstr " розширений код операції %u: "
-#: src/readelf.c:8651
+#: src/readelf.c:8763
msgid " end of sequence"
msgstr " кінець поÑлідовноÑÑ‚Ñ–"
-#: src/readelf.c:8669
+#: src/readelf.c:8781
#, fuzzy, c-format
msgid " set address to "
msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s\n"
-#: src/readelf.c:8697
+#: src/readelf.c:8809
#, 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:8823
#, c-format
msgid " set discriminator to %u\n"
msgstr " вÑтановити Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ %u\n"
#. Unknown, ignore it.
-#: src/readelf.c:8716
+#: src/readelf.c:8828
msgid " unknown opcode"
msgstr " невідомий код операції"
#. Takes no argument.
-#: src/readelf.c:8728
+#: src/readelf.c:8840
msgid " copy"
msgstr " копіÑ"
-#: src/readelf.c:8739
+#: src/readelf.c:8851
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr " Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи на %u до %s\n"
-#: src/readelf.c:8743 src/readelf.c:8804
+#: src/readelf.c:8855 src/readelf.c:8916
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:8755
+#: src/readelf.c:8867
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " проÑувати Ñ€Ñдок на Ñталу %d до %<PRId64>\n"
-#: src/readelf.c:8765
+#: src/readelf.c:8877
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " вÑтановити файл у %<PRIu64>\n"
-#: src/readelf.c:8776
+#: src/readelf.c:8888
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтовпчика %<PRIu64>\n"
-#: src/readelf.c:8783
+#: src/readelf.c:8895
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " вÑтановити «%s» у %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:8789
+#: src/readelf.c:8901
msgid " set basic block flag"
msgstr " вÑтановити прапорець базового блоку"
-#: src/readelf.c:8800
+#: src/readelf.c:8912
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr " збільшити адреÑу на Ñталу величину %u до %s\n"
-#: src/readelf.c:8820
+#: src/readelf.c:8932
#, 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:8942
msgid " set prologue end flag"
msgstr " вÑтановити прапорець ÐºÑ–Ð½Ñ†Ñ Ð²Ñтупу"
#. Takes no argument.
-#: src/readelf.c:8835
+#: src/readelf.c:8947
msgid " set epilogue begin flag"
msgstr " вÑтановити прапорець початку епілогу"
-#: src/readelf.c:8845
+#: src/readelf.c:8957
#, 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:8966
#, 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:9006
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s"
-#: src/readelf.c:9063
+#: src/readelf.c:9175
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "некоректні дані"
-#: src/readelf.c:9316
+#: src/readelf.c:9428
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s"
-#: src/readelf.c:9523 src/readelf.c:10567
+#: src/readelf.c:9635 src/readelf.c:10679
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:9578 src/readelf.c:9741
+#: src/readelf.c:9690 src/readelf.c:9853
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу відомоÑтей щодо макроÑів: %s"
-#: src/readelf.c:9658
+#: src/readelf.c:9770
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** незавершений Ñ€Ñдок наприкінці розділу"
-#: src/readelf.c:9681
+#: src/readelf.c:9793
#, 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:9894
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " ЗміщеннÑ: 0x%<PRIx64>\n"
-#: src/readelf.c:9794
+#: src/readelf.c:9906
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " ВерÑÑ–Ñ: %<PRIu16>\n"
-#: src/readelf.c:9800 src/readelf.c:10687
+#: src/readelf.c:9912 src/readelf.c:10799
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " невідома верÑÑ–Ñ, не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розділ\n"
-#: src/readelf.c:9807
+#: src/readelf.c:9919
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Прапорець: 0x%<PRIx8>\n"
-#: src/readelf.c:9836
+#: src/readelf.c:9948
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:9844
+#: src/readelf.c:9956
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:9869
+#: src/readelf.c:9981
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ¾Ð´Ñ–Ð² операцій розширень, запиÑів — %<PRIu8>:\n"
-#: src/readelf.c:9876
+#: src/readelf.c:9988
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:9888
+#: src/readelf.c:10000
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " %<PRIu8> аргументів:"
-#: src/readelf.c:9903
+#: src/readelf.c:10015
#, c-format
msgid " no arguments."
msgstr " немає аргументів."
-#: src/readelf.c:10104
+#: src/readelf.c:10216
#, 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:10260
#, c-format
msgid ""
"\n"
@@ -5776,41 +5781,41 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
" %*s РÑдок\n"
-#: src/readelf.c:10163
+#: src/readelf.c:10275
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ñдків: %s\n"
-#: src/readelf.c:10192
+#: src/readelf.c:10304
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/readelf.c:10291
+#: src/readelf.c:10403
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:10293
+#: src/readelf.c:10405
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:10307
+#: src/readelf.c:10419
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:10316
+#: src/readelf.c:10428
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:10370
+#: src/readelf.c:10482
#, c-format
msgid ""
"\n"
@@ -5819,7 +5824,7 @@ msgstr ""
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10472
+#: src/readelf.c:10584
#, c-format
msgid ""
"\n"
@@ -5828,22 +5833,22 @@ msgstr ""
"\n"
"Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10607
#, c-format
msgid " LPStart encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LPStart: %#x "
-#: src/readelf.c:10507
+#: src/readelf.c:10619
#, c-format
msgid " TType encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType: %#x "
-#: src/readelf.c:10522
+#: src/readelf.c:10634
#, c-format
msgid " Call site encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:%#x "
-#: src/readelf.c:10535
+#: src/readelf.c:10647
msgid ""
"\n"
" Call site table:"
@@ -5851,7 +5856,7 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:"
-#: src/readelf.c:10549
+#: src/readelf.c:10661
#, 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:10734
#, c-format
msgid "invalid TType encoding"
msgstr "некоректне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType"
-#: src/readelf.c:10649
+#: src/readelf.c:10761
#, c-format
msgid ""
"\n"
@@ -5878,37 +5883,37 @@ msgstr ""
"\n"
"Розділ GDB [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %<PRId64> байтів:\n"
-#: src/readelf.c:10678
+#: src/readelf.c:10790
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " ВерÑÑ–Ñ: %<PRId32>\n"
-#: src/readelf.c:10696
+#: src/readelf.c:10808
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %#<PRIx32>\n"
-#: src/readelf.c:10703
+#: src/readelf.c:10815
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ TU: %#<PRIx32>\n"
-#: src/readelf.c:10710
+#: src/readelf.c:10822
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %#<PRIx32>\n"
-#: src/readelf.c:10717
+#: src/readelf.c:10829
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñимволу: %#<PRIx32>\n"
-#: src/readelf.c:10724
+#: src/readelf.c:10836
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n"
-#: src/readelf.c:10738
+#: src/readelf.c:10850
#, c-format
msgid ""
"\n"
@@ -5917,7 +5922,7 @@ msgstr ""
"\n"
" СпиÑок CU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:10763
+#: src/readelf.c:10875
#, c-format
msgid ""
"\n"
@@ -5926,7 +5931,7 @@ msgstr ""
"\n"
" СпиÑок TU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:10792
+#: src/readelf.c:10904
#, c-format
msgid ""
"\n"
@@ -5935,7 +5940,7 @@ msgstr ""
"\n"
" СпиÑок Ð°Ð´Ñ€ÐµÑ Ð·Ñ– зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:10824
+#: src/readelf.c:10936
#, c-format
msgid ""
"\n"
@@ -5944,18 +5949,18 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n"
-#: src/readelf.c:10962
+#: src/readelf.c:11074
#, 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:11437 src/readelf.c:12059 src/readelf.c:12170
+#: src/readelf.c:12228
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані запиÑу Ñдра: %s"
-#: src/readelf.c:11688
+#: src/readelf.c:11800
#, c-format
msgid ""
"\n"
@@ -5964,21 +5969,21 @@ msgstr ""
"\n"
"%*s... <повторюєтьÑÑ %u разів> ..."
-#: src/readelf.c:12195
+#: src/readelf.c:12307
msgid " Owner Data size Type\n"
msgstr " ВлаÑник Розм. даних Тип\n"
-#: src/readelf.c:12224
+#: src/readelf.c:12336
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12276
+#: src/readelf.c:12388
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу запиÑів: %s"
-#: src/readelf.c:12303
+#: src/readelf.c:12422
#, c-format
msgid ""
"\n"
@@ -5988,7 +5993,7 @@ msgstr ""
"Розділ запиÑів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12326
+#: src/readelf.c:12445
#, c-format
msgid ""
"\n"
@@ -5997,7 +6002,7 @@ msgstr ""
"\n"
"Сегмент запиÑів з %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12373
+#: src/readelf.c:12492
#, c-format
msgid ""
"\n"
@@ -6006,12 +6011,12 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12400 src/readelf.c:12451
+#: src/readelf.c:12519 src/readelf.c:12570
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zu] «%s»: %s"
-#: src/readelf.c:12405
+#: src/readelf.c:12524
#, c-format
msgid ""
"\n"
@@ -6020,7 +6025,7 @@ msgstr ""
"\n"
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12410
+#: src/readelf.c:12529
#, fuzzy, c-format
msgid ""
"\n"
@@ -6030,7 +6035,7 @@ msgstr ""
"\n"
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12424
+#: src/readelf.c:12543
#, c-format
msgid ""
"\n"
@@ -6039,7 +6044,7 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ñ€Ñдків Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12456
+#: src/readelf.c:12575
#, c-format
msgid ""
"\n"
@@ -6048,7 +6053,7 @@ msgstr ""
"\n"
"Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12461
+#: src/readelf.c:12580
#, fuzzy, c-format
msgid ""
"\n"
@@ -6058,7 +6063,7 @@ msgstr ""
"\n"
"Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12510
+#: src/readelf.c:12629
#, c-format
msgid ""
"\n"
@@ -6067,7 +6072,7 @@ msgstr ""
"\n"
"розділу [%lu] не Ñ–Ñнує"
-#: src/readelf.c:12539
+#: src/readelf.c:12658
#, c-format
msgid ""
"\n"
@@ -6076,12 +6081,12 @@ msgstr ""
"\n"
"розділу «%s» не Ñ–Ñнує"
-#: src/readelf.c:12596
+#: src/readelf.c:12715
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ покажчик Ñимволів архіву «%s»: %s"
-#: src/readelf.c:12599
+#: src/readelf.c:12718
#, c-format
msgid ""
"\n"
@@ -6090,7 +6095,7 @@ msgstr ""
"\n"
"У архіві «%s» немає покажчика Ñимволів\n"
-#: src/readelf.c:12603
+#: src/readelf.c:12722
#, c-format
msgid ""
"\n"
@@ -6099,12 +6104,12 @@ msgstr ""
"\n"
"Покажчик архіву «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:12621
+#: src/readelf.c:12740
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ елемент за зміщеннÑм %zu у «%s»: %s"
-#: src/readelf.c:12626
+#: src/readelf.c:12745
#, 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 911ad26f..db56a136 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,49 @@
-2019-07-13 Mao Han <han_mao@c-sky.com>
+2019-09-28 Dmitry V. Levin <ldv@altlinux.org>
+
+ * elflint.c (main): When an input file cannot be opened,
+ include its name into the error diagnostics.
+ * readelf.c (main): Likewise.
+
+2019-09-02 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (PRINT_DYNSYM_TABLE): New argp key value.
+ (argp_opt): Add syn-sym.
+ (print_dynsym_table): New static bool.
+ (parse_opt): Handle PRINT_DYNSYM_TABLE.
+ (process_elf_file): Check print_dynsym_table.
+
+2019-08-27 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (for_each_section_argument): Call (*dump) also for
+ section numbers.
+
+2019-08-26 Mark Wielaard <mark@klomp.org>
+
+ * nm.c (show_symbols): Remember nentries_orig and check before
+ freeing sym_mem.
+
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am: Remove -ldl.
+ (elflint_LDADD): Add $(libdw).
+ (elfcmp_LDADD): Add $(libdw).
+ (objdump_LDADD): Add $(libdw).
+
+2019-08-26 Mark Wielaard <mark@klomp.org>
+
+ * readelf (options): Add OPTION_ARG_OPTIONAL "SECTION" for notes.
+ (notes_section): New global variable.
+ (parse_opt): Set notes_section.
+ (handle_notes): Check if notes_section is set.
+
+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.
diff --git a/src/Makefile.am b/src/Makefile.am
index 2b1c0dcb..ab72a0e9 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
@@ -40,14 +41,14 @@ CLEANFILES += make-debug-archive
if BUILD_STATIC
libasm = ../libasm/libasm.a
-libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl
+libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf)
libelf = ../libelf/libelf.a -lz
else
libasm = ../libasm/libasm.so
libdw = ../libdw/libdw.so
libelf = ../libelf/libelf.so
endif
-libebl = ../libebl/libebl.a
+libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a
libeu = ../lib/libeu.a
if DEMANGLE
@@ -67,22 +68,23 @@ ranlib_no_Wstack_usage = yes
ar_no_Wstack_usage = yes
unstrip_no_Wstack_usage = yes
-readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \
+readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD)
+nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) \
$(demanglelib)
size_LDADD = $(libelf) $(libeu) $(argp_LDADD)
-strip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
-elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
+strip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
+elflint_LDADD = $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
findtextrel_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD)
addr2line_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) $(demanglelib)
-elfcmp_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
-objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
+elfcmp_LDADD = $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
+objdump_LDADD = $(libasm) $(libebl) $(libdw) $(libelf) $(libeu) $(argp_LDADD)
ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
strings_LDADD = $(libelf) $(libeu) $(argp_LDADD)
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)
+unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
+stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(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/elflint.c b/src/elflint.c
index edb466dd..684b794e 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -151,15 +151,15 @@ main (int argc, char *argv[])
int fd = open (argv[remaining], O_RDONLY);
if (fd == -1)
{
- error (0, errno, gettext ("cannot open input file"));
+ error (0, errno, _("cannot open input file '%s'"), argv[remaining]);
continue;
}
/* Create an `Elf' descriptor. */
Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
if (elf == NULL)
- ERROR (gettext ("cannot generate Elf descriptor: %s\n"),
- elf_errmsg (-1));
+ ERROR (_("cannot generate Elf descriptor for '%s': %s\n"),
+ argv[remaining], elf_errmsg (-1));
else
{
unsigned int prev_error_count = error_count;
diff --git a/src/nm.c b/src/nm.c
index da1350b4..7f6cf2a2 100644
--- a/src/nm.c
+++ b/src/nm.c
@@ -1438,6 +1438,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr,
free (demangle_buffer);
#endif
/* Now we know the exact number. */
+ size_t nentries_orig = nentries;
nentries = nentries_used;
/* Sort the entries according to the users wishes. */
@@ -1472,7 +1473,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr,
}
/* Free all memory. */
- if (nentries * sizeof (sym_mem[0]) >= MAX_STACK_ALLOC)
+ if (nentries_orig * sizeof (sym_mem[0]) >= MAX_STACK_ALLOC)
free (sym_mem);
obstack_free (&whereob, NULL);
diff --git a/src/objdump.c b/src/objdump.c
index 6b365d5c..a619674f 100644
--- a/src/objdump.c
+++ b/src/objdump.c
@@ -717,11 +717,13 @@ show_disasm (Ebl *ebl, const char *fname, uint32_t shstrndx)
info.address_color = color_address;
info.bytes_color = color_bytes;
- if (asprintf (&fmt, "%s%%7m %s%%.1o,%s%%.2o,%s%%.3o%%34a %s%%l",
+ if (asprintf (&fmt, "%s%%7m %s%%.1o,%s%%.2o,%s%%.3o,,%s%%.4o%s%%.5o%%34a %s%%l",
color_mnemonic ?: "",
color_operand1 ?: "",
color_operand2 ?: "",
color_operand3 ?: "",
+ color_operand4 ?: "",
+ color_operand5 ?: "",
color_label ?: "") < 0)
error (EXIT_FAILURE, errno, _("cannot allocate memory"));
}
@@ -729,7 +731,7 @@ show_disasm (Ebl *ebl, const char *fname, uint32_t shstrndx)
{
info.address_color = info.bytes_color = NULL;
- fmt = "%7m %.1o,%.2o,%.3o%34a %l";
+ fmt = "%7m %.1o,%.2o,%.3o,%.4o,%.5o%34a %l";
}
disasm_cb (ctx, &info.cur, info.cur + data->d_size, info.addr,
diff --git a/src/readelf.c b/src/readelf.c
index 2084fb1f..cbb519d1 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -84,6 +84,9 @@ ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
/* argp key value for --dwarf-skeleton, non-ascii. */
#define DWARF_SKELETON 257
+/* argp key value for --dyn-syms, non-ascii. */
+#define PRINT_DYNSYM_TABLE 258
+
/* Terrible hack for hooking unrelated skeleton/split compile units,
see __libdw_link_skel_split in print_debug. */
static bool do_not_close_dwfl = false;
@@ -113,8 +116,10 @@ static const struct argp_option options[] =
{ "sections", 'S', NULL, OPTION_ALIAS | OPTION_HIDDEN, NULL, 0 },
{ "symbols", 's', "SECTION", OPTION_ARG_OPTIONAL,
N_("Display the symbol table sections"), 0 },
+ { "dyn-syms", PRINT_DYNSYM_TABLE, NULL, 0,
+ N_("Display (only) the dynamic symbol table"), 0 },
{ "version-info", 'V', NULL, 0, N_("Display versioning information"), 0 },
- { "notes", 'n', NULL, 0, N_("Display the ELF notes"), 0 },
+ { "notes", 'n', "SECTION", OPTION_ARG_OPTIONAL, N_("Display the ELF notes"), 0 },
{ "arch-specific", 'A', NULL, 0,
N_("Display architecture specific information, if any"), 0 },
{ "exception", 'e', NULL, 0,
@@ -187,9 +192,15 @@ static bool print_section_header;
/* True if the symbol table should be printed. */
static bool print_symbol_table;
+/* True if (only) the dynsym table should be printed. */
+static bool print_dynsym_table;
+
/* A specific section name, or NULL to print all symbol tables. */
static char *symbol_table_section;
+/* A specific section name, or NULL to print all ELF notes. */
+static char *notes_section;
+
/* True if the version information should be printed. */
static bool print_version_info;
@@ -354,7 +365,7 @@ main (int argc, char *argv[])
int fd = open (argv[remaining], O_RDONLY);
if (fd == -1)
{
- error (0, errno, gettext ("cannot open input file"));
+ error (0, errno, _("cannot open input file '%s'"), argv[remaining]);
continue;
}
@@ -439,6 +450,7 @@ parse_opt (int key, char *arg,
case 'n':
print_notes = true;
any_control_option = true;
+ notes_section = arg;
break;
case 'r':
print_relocations = true;
@@ -453,6 +465,10 @@ parse_opt (int key, char *arg,
any_control_option = true;
symbol_table_section = arg;
break;
+ case PRINT_DYNSYM_TABLE:
+ print_dynsym_table = true;
+ any_control_option = true;
+ break;
case 'V':
print_version_info = true;
any_control_option = true;
@@ -994,7 +1010,7 @@ process_elf_file (Dwfl_Module *dwflmod, int fd)
print_relocs (pure_ebl, ehdr);
if (print_histogram)
handle_hash (ebl);
- if (print_symbol_table)
+ if (print_symbol_table || print_dynsym_table)
print_symtab (ebl, SHT_DYNSYM);
if (print_version_info)
print_verinfo (ebl);
@@ -12408,6 +12424,13 @@ handle_notes (Ebl *ebl, GElf_Ehdr *ehdr)
/* Not what we are looking for. */
continue;
+ if (notes_section != NULL)
+ {
+ char *sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
+ if (sname == NULL || strcmp (sname, notes_section) != 0)
+ continue;
+ }
+
printf (gettext ("\
\nNote section [%2zu] '%s' of %" PRIu64 " bytes at offset %#0" PRIx64 ":\n"),
elf_ndxscn (scn),
@@ -12623,6 +12646,7 @@ for_each_section_argument (Elf *elf, const struct section_argument *list,
error (EXIT_FAILURE, 0, gettext ("cannot get section header: %s"),
elf_errmsg (-1));
name = elf_strptr (elf, shstrndx, shdr_mem.sh_name);
+ (*dump) (scn, &shdr_mem, name);
}
else
{
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 63d6af96..97b8dedb 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,36 @@
+2019-09-02 Mark Wielaard <mark@klomp.org>
+
+ * run-readelf-s.sh: Add --dyn-syms case.
+
+2019-09-07 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (EXTRA_DIST): Add run-disasm-riscv64.sh,
+ testfile-riscv64-dis1.o.bz2 and testfile-riscv64-dis1.expect.bz2.
+
+2019-08-27 Mark Wielaard <mark@klomp.org>
+
+ * run-readelf-test2.sh: Add -x num testcase.
+
+2019-08-29 Mark Wielaard <mark@klomp.org>
+
+ * test-subr.sh (self_test_files_exe): replace elfcmp, objdump and
+ readelf with elfclassify, stack and unstrip.
+ (self_test_files_lib): Replace libdw.so with libasm.so.
+
+2019-07-05 Omar Sandoval <osandov@fb.com>
+
+ * Makefile.am: Remove -ldl.
+ * tests-subr.sh (self_test_files): Remove libebl_{i386,x86_64}.so.
+
+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.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0ac35315..ad0855de 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -164,7 +164,9 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-typeiter-many.sh run-strip-test-many.sh \
run-strip-version.sh run-xlate-note.sh \
run-readelf-discr.sh \
- run-dwelf_elf_e_machine_string.sh
+ run-dwelf_elf_e_machine_string.sh \
+ run-elfclassify.sh run-elfclassify-self.sh \
+ run-disasm-riscv64.sh
if !BIARCH
export ELFUTILS_DISABLE_BIARCH = 1
@@ -435,8 +437,10 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-xlate-note.sh \
run-readelf-discr.sh \
testfile-rng.debug.bz2 testfile-urng.debug.bz2 \
- run-dwelf_elf_e_machine_string.sh
-
+ run-dwelf_elf_e_machine_string.sh \
+ run-elfclassify.sh run-elfclassify-self.sh \
+ run-disasm-riscv64.sh \
+ testfile-riscv64-dis1.o.bz2 testfile-riscv64-dis1.expect.bz2
if USE_VALGRIND
valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1'
@@ -485,7 +489,7 @@ libasm = -lasm
libebl = -lebl
else !STANDALONE
if BUILD_STATIC
-libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl
+libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl)
libelf = ../libelf/libelf.a -lz
libasm = ../libasm/libasm.a
else
@@ -493,7 +497,7 @@ libdw = ../libdw/libdw.so
libelf = ../libelf/libelf.so
libasm = ../libasm/libasm.so
endif
-libebl = ../libebl/libebl.a
+libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a
libeu = ../lib/libeu.a
endif !STANDALONE
@@ -530,27 +534,27 @@ funcretval_LDADD = $(libdw) $(argp_LDADD)
allregs_LDADD = $(libdw) $(argp_LDADD)
find_prologues_LDADD = $(libdw) $(argp_LDADD)
#show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf)
-asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst2_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst3_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst4_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst5_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst6_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst7_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst8_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-asm_tst9_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) -ldl
-dwflmodtest_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl
+asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst2_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst3_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst4_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst5_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst6_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst7_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst8_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+asm_tst9_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
+dwflmodtest_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD)
rdwrmmap_LDADD = $(libelf)
-dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf) -ldl
+dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf)
arls_LDADD = $(libelf)
-dwfl_bug_fd_leak_LDADD = $(libdw) $(libebl) $(libelf) -ldl
-dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf) -ldl
-dwfl_bug_getmodules_LDADD = $(libdw) $(libebl) $(libelf) -ldl
-dwfl_addr_sect_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl
+dwfl_bug_fd_leak_LDADD = $(libdw) $(libebl) $(libelf)
+dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf)
+dwfl_bug_getmodules_LDADD = $(libdw) $(libebl) $(libelf)
+dwfl_addr_sect_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD)
dwarf_getmacros_LDADD = $(libdw)
dwarf_ranges_LDADD = $(libdw)
dwarf_getstring_LDADD = $(libdw)
-addrcfi_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) -ldl
+addrcfi_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD)
dwarfcfi_LDADD = $(libdw) $(libelf)
test_flag_nobits_LDADD = $(libelf)
rerequest_tag_LDADD = $(libdw)
diff --git a/tests/run-disasm-riscv64.sh b/tests/run-disasm-riscv64.sh
new file mode 100755
index 00000000..5353e818
--- /dev/null
+++ b/tests/run-disasm-riscv64.sh
@@ -0,0 +1,529 @@
+#! /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
+
+testfiles testfile-riscv64-dis1.o testfile-riscv64-dis1.expect
+testrun_compare ${abs_top_builddir}/src/objdump -d testfile-riscv64-dis1.o < testfile-riscv64-dis1.expect
+
+exit $?
+
+# The following code is used to generate the test file.
+cat <<EOF | riscv64-linux-gnu-as -c -o testfile-riscv64-dis1.o -
+.text
+.word 0x80000037
+.word 0x800000b7
+.word 0x40300137
+.word 0x90000017
+.word 0x01003317
+.word 0x000000ef
+.word 0x0000116f
+.word 0x000021ef
+.word 0x0000426f
+.word 0x000082ef
+.word 0x0001036f
+.word 0x000203ef
+.word 0x0004046f
+.word 0x000804ef
+.word 0x0010056f
+.word 0x002005ef
+.word 0x0040066f
+.word 0x008006ef
+.word 0x0100076f
+.word 0x020007ef
+.word 0x0400086f
+.word 0x080008ef
+.word 0x1000096f
+.word 0x200009ef
+.word 0x40000a6f
+.word 0x80000aef
+.word 0x00000067
+.word 0x80008567
+.word 0x050109e7
+.word 0x00d30863
+.word 0x80c41463
+.word 0x40d348e3
+.word 0x20d35263
+.word 0x10d364e3
+.word 0x08d37463
+.word 0x00000003
+.word 0x83050703
+.word 0x00001003
+.word 0x850c1383
+.word 0x04012003
+.word 0xa50c2383
+.word 0x05013003
+.word 0xf50c3383
+.word 0x00004003
+.word 0x83054703
+.word 0x00005003
+.word 0x850c5383
+.word 0x04016003
+.word 0xa50c6383
+.word 0x00000023
+.word 0x5f430323
+.word 0x00001023
+.word 0x5f431323
+.word 0x00002023
+.word 0x5f432323
+.word 0x00003023
+.word 0x5f433323
+.word 0x00000013
+.word 0x00000093
+.word 0x00300093
+.word 0x00310093
+.word 0x00002013
+.word 0x00002093
+.word 0x00302093
+.word 0x00312093
+.word 0x00003013
+.word 0x00003093
+.word 0x00303093
+.word 0x00313093
+.word 0x00004013
+.word 0x00004093
+.word 0x00304093
+.word 0x00314093
+.word 0x00006013
+.word 0x00006093
+.word 0x00306093
+.word 0x00316093
+.word 0x00007013
+.word 0x00007093
+.word 0x00307093
+.word 0x00317093
+.word 0x00311093
+.word 0x00315093
+.word 0x40315093
+.word 0x00000033
+.word 0x010000b3
+.word 0x40000033
+.word 0x410000b3
+.word 0x40010033
+.word 0x410200b3
+.word 0x00001033
+.word 0x010010b3
+.word 0x00002033
+.word 0x010020b3
+.word 0x00012033
+.word 0x010220b3
+.word 0x00003033
+.word 0x010030b3
+.word 0x00043033
+.word 0x010530b3
+.word 0x00004033
+.word 0x010040b3
+.word 0x00005033
+.word 0x010050b3
+.word 0x40005033
+.word 0x410050b3
+.word 0x00006033
+.word 0x010060b3
+.word 0x00007033
+.word 0x010070b3
+.word 0x0000000f
+.word 0x0210000f
+.word 0x00000073
+.word 0x00100073
+.word 0x0000001b
+.word 0x0010001b
+.word 0x0000101b
+.word 0x0010101b
+.word 0x0000501b
+.word 0x0000501b
+.word 0x4010501b
+.word 0x4010501b
+.word 0x0000003b
+.word 0x0000003b
+.word 0x00d0833b
+.word 0x00d0833b
+.word 0x40d0833b
+.word 0x40d0833b
+.word 0x00d0933b
+.word 0x00d0933b
+.word 0x00d0d33b
+.word 0x00d0d33b
+.word 0x40d0d33b
+.word 0x40d0d33b
+.word 0x0000100f
+.word 0x00431073
+.word 0x00431ff3
+.word 0xc0132ff3
+.word 0xc8133ff3
+.word 0x00435ff3
+.word 0xc0136ff3
+.word 0xc8137ff3
+.word 0x02000033
+.word 0x02e40733
+.word 0x02001033
+.word 0x02e41733
+.word 0x02002033
+.word 0x02e42733
+.word 0x02003033
+.word 0x02e43733
+.word 0x02004033
+.word 0x02e44733
+.word 0x02005033
+.word 0x02e45733
+.word 0x02006033
+.word 0x02e46733
+.word 0x02007033
+.word 0x02e47733
+.word 0x0200003b
+.word 0x02e4073b
+.word 0x0200403b
+.word 0x02e4473b
+.word 0x0200503b
+.word 0x02e4573b
+.word 0x0200603b
+.word 0x02e4673b
+.word 0x0200703b
+.word 0x02e4773b
+.word 0x1000202f
+.word 0x1800202f
+.word 0x1000302f
+.word 0x1800302f
+.word 0x0800202f
+.word 0x0800302f
+.word 0x0000202f
+.word 0x0000302f
+.word 0x2000202f
+.word 0x2000302f
+.word 0x6000202f
+.word 0x6000302f
+.word 0x4000202f
+.word 0x4000302f
+.word 0x8000202f
+.word 0x8000302f
+.word 0xa000202f
+.word 0xa000302f
+.word 0xc000202f
+.word 0xc000302f
+.word 0xe000202f
+.word 0xe000302f
+.word 0x00002007
+.word 0x00003007
+.word 0x00004007
+.word 0x00002027
+.word 0x00003027
+.word 0x00004027
+.word 0x00002043
+.word 0x02002043
+.word 0x06002043
+.word 0x00002047
+.word 0x02002047
+.word 0x06002047
+.word 0x0000204b
+.word 0x0200204b
+.word 0x0600204b
+.word 0x0000204f
+.word 0x0200204f
+.word 0x0600204f
+.word 0x00000053
+.word 0x00001053
+.word 0x00002053
+.word 0x00003053
+.word 0x00004053
+.word 0x00007053
+.word 0x02000053
+.word 0x06000053
+.word 0x08000053
+.word 0x0a000053
+.word 0x0e000053
+.word 0x10000053
+.word 0x12000053
+.word 0x16000053
+.word 0x18000053
+.word 0x1a000053
+.word 0x1e000053
+.word 0x58000053
+.word 0x5a000053
+.word 0x5e000053
+.word 0x20000053
+.word 0x20300053
+.word 0x22000053
+.word 0x22300053
+.word 0x26000053
+.word 0x26300053
+.word 0x20001053
+.word 0x20401053
+.word 0x22001053
+.word 0x22401053
+.word 0x26001053
+.word 0x26401053
+.word 0x20002053
+.word 0x20702053
+.word 0x22002053
+.word 0x22702053
+.word 0x26002053
+.word 0x26702053
+.word 0x29700053
+.word 0x2b700053
+.word 0x2f700053
+.word 0x29701053
+.word 0x2b701053
+.word 0x2f701053
+.word 0xc00332d3
+.word 0xc02332d3
+.word 0xc20342d3
+.word 0xc22342d3
+.word 0xc60222d3
+.word 0xc62222d3
+.word 0xc01332d3
+.word 0xc03332d3
+.word 0xc21342d3
+.word 0xc23342d3
+.word 0xc61222d3
+.word 0xc63222d3
+.word 0xe00503d3
+.word 0xe20504d3
+.word 0xe60509d3
+.word 0xa0340753
+.word 0xa0341753
+.word 0xa0342753
+.word 0xa2340753
+.word 0xa2341753
+.word 0xa2342753
+.word 0xa6340753
+.word 0xa6341753
+.word 0xa6342753
+.word 0xe0091d53
+.word 0xe2091d53
+.word 0xe6091d53
+.word 0xd00e2453
+.word 0xd02e2453
+.word 0xd01e1453
+.word 0xd03e1453
+.word 0xd2030553
+.word 0xd2130553
+.word 0xd6030553
+.word 0xd6130553
+.word 0xd22e2453
+.word 0xd23e1453
+.word 0xd62e2453
+.word 0xd63e2453
+.word 0xf00c0753
+.word 0xf20c0753
+.word 0xf60c0753
+.short 0x1000
+.short 0x0800
+.short 0x0400
+.short 0x0200
+.short 0x0100
+.short 0x0080
+.short 0x0040
+.short 0x0020
+.short 0x3100
+.short 0x2900
+.short 0x2500
+.short 0x2140
+.short 0x2120
+.short 0x5100
+.short 0x4900
+.short 0x4500
+.short 0x4140
+.short 0x4120
+.short 0x7100
+.short 0x6900
+.short 0x6500
+.short 0x6140
+.short 0x6120
+.short 0xb100
+.short 0xa900
+.short 0xa500
+.short 0xa140
+.short 0xa120
+.short 0xd100
+.short 0xc900
+.short 0xc500
+.short 0xc140
+.short 0xc120
+.short 0xf100
+.short 0xe900
+.short 0xe500
+.short 0xe140
+.short 0xe120
+.short 0x1001
+.short 0x1301
+.short 0x0341
+.short 0x0321
+.short 0x0311
+.short 0x0309
+.short 0x0305
+.short 0x2081
+.short 0x3081
+.short 0x20c1
+.short 0x20a1
+.short 0x2091
+.short 0x2089
+.short 0x2085
+.short 0x2105
+.short 0x2185
+.short 0x2205
+.short 0x2285
+.short 0x2305
+.short 0x2385
+.short 0x2405
+.short 0x2485
+.short 0x2505
+.short 0x2585
+.short 0x2605
+.short 0x2685
+.short 0x2705
+.short 0x2785
+.short 0x2805
+.short 0x2885
+.short 0x2905
+.short 0x2985
+.short 0x2a05
+.short 0x2a85
+.short 0x2b05
+.short 0x2b85
+.short 0x2c05
+.short 0x2c85
+.short 0x2d05
+.short 0x2d85
+.short 0x2e05
+.short 0x2e85
+.short 0x2f05
+.short 0x2f85
+.short 0x4081
+.short 0x5081
+.short 0x40c1
+.short 0x40a1
+.short 0x4091
+.short 0x4089
+.short 0x4085
+.short 0x7101
+.short 0x6141
+.short 0x6121
+.short 0x6111
+.short 0x6109
+.short 0x6105
+.short 0x7301
+.short 0x6341
+.short 0x6321
+.short 0x6311
+.short 0x6309
+.short 0x6305
+.short 0x9001
+.short 0x8041
+.short 0x8021
+.short 0x8011
+.short 0x8009
+.short 0x8005
+.short 0x8405
+.short 0x8801
+.short 0x9801
+.short 0x8941
+.short 0x8921
+.short 0x8911
+.short 0x8909
+.short 0x8905
+.short 0x8f11
+.short 0x8f31
+.short 0x8f51
+.short 0x8f71
+.short 0x9f11
+.short 0x9f31
+.short 0xa001
+.short 0xb001
+.short 0xa801
+.short 0xa401
+.short 0xa201
+.short 0xa101
+.short 0xa081
+.short 0xa041
+.short 0xa021
+.short 0xa011
+.short 0xa009
+.short 0xa005
+.short 0xc301
+.short 0xd301
+.short 0xcb01
+.short 0xc701
+.short 0xc341
+.short 0xc321
+.short 0xc311
+.short 0xc309
+.short 0xc305
+.short 0xe301
+.short 0xf301
+.short 0xeb01
+.short 0xe701
+.short 0xe341
+.short 0xe321
+.short 0xe311
+.short 0xe309
+.short 0xe305
+.short 0x1302
+.short 0x0342
+.short 0x0322
+.short 0x0312
+.short 0x030a
+.short 0x0306
+.short 0x2702
+.short 0x3702
+.short 0x2742
+.short 0x2722
+.short 0x2712
+.short 0x270a
+.short 0x2706
+.short 0x4702
+.short 0x5702
+.short 0x4742
+.short 0x4722
+.short 0x4712
+.short 0x470a
+.short 0x4706
+.short 0x6702
+.short 0x7702
+.short 0x6742
+.short 0x6722
+.short 0x6712
+.short 0x670a
+.short 0x6706
+.short 0x8302
+.short 0x8342
+.short 0x9002
+.short 0x9502
+.short 0x9572
+.short 0xa062
+.short 0xb062
+.short 0xa862
+.short 0xa462
+.short 0xa262
+.short 0xa162
+.short 0xa0e2
+.short 0xc062
+.short 0xd062
+.short 0xc862
+.short 0xc462
+.short 0xc262
+.short 0xc162
+.short 0xc0e2
+.short 0xe062
+.short 0xf062
+.short 0xe862
+.short 0xe462
+.short 0xe262
+.short 0xe162
+.short 0xe0e2
+.word 0x00153073
+.word 0x0011d073
+.word 0x0011e073
+EOF
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-readelf-s.sh b/tests/run-readelf-s.sh
index 82c3417e..527c436c 100755
--- a/tests/run-readelf-s.sh
+++ b/tests/run-readelf-s.sh
@@ -281,6 +281,9 @@ cat testfile.dynsym.in testfile.symtab.in \
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf \
--symbols=.dynsym testfilebaztab
+cat testfile.dynsym.in \
+ | testrun_compare ${abs_top_builddir}/src/readelf \
+ --dyn-syms testfilebaztab
# Display just .symtab
cat testfile.symtab.in \
diff --git a/tests/run-readelf-test2.sh b/tests/run-readelf-test2.sh
index 90306247..e03ee8d7 100755
--- a/tests/run-readelf-test2.sh
+++ b/tests/run-readelf-test2.sh
@@ -25,4 +25,11 @@ Hex dump of section [6] '.strtab', 1 bytes at offset 0x290:
0x00000000 00 .
EOF
+testrun_compare ${abs_top_builddir}/src/readelf -x 6 testfile28 <<\EOF
+
+Hex dump of section [6] '.strtab', 1 bytes at offset 0x290:
+ 0x00000000 00 .
+EOF
+
+
exit 0
diff --git a/tests/test-subr.sh b/tests/test-subr.sh
index 09f428d1..e768c1e5 100644
--- a/tests/test-subr.sh
+++ b/tests/test-subr.sh
@@ -116,14 +116,12 @@ program_transform()
}
self_test_files_exe=`echo ${abs_top_builddir}/src/addr2line \
-${abs_top_builddir}/src/elfcmp \
-${abs_top_builddir}/src/objdump \
-${abs_top_builddir}/src/readelf`
+${abs_top_builddir}/src/elfclassify \
+${abs_top_builddir}/src/stack \
+${abs_top_builddir}/src/unstrip`
self_test_files_lib=`echo ${abs_top_builddir}/libelf/libelf.so \
-${abs_top_builddir}/libdw/libdw.so \
-${abs_top_builddir}/backends/libebl_i386.so \
-${abs_top_builddir}/backends/libebl_x86_64.so`
+${abs_top_builddir}/libasm/libasm.so`
self_test_files_obj=`echo ${abs_top_builddir}/src/size.o \
${abs_top_builddir}/src/strip.o`
diff --git a/tests/testfile-riscv64-dis1.expect.bz2 b/tests/testfile-riscv64-dis1.expect.bz2
new file mode 100644
index 00000000..2740795d
--- /dev/null
+++ b/tests/testfile-riscv64-dis1.expect.bz2
Binary files differ
diff --git a/tests/testfile-riscv64-dis1.o.bz2 b/tests/testfile-riscv64-dis1.o.bz2
new file mode 100644
index 00000000..50f95f26
--- /dev/null
+++ b/tests/testfile-riscv64-dis1.o.bz2
Binary files differ
diff --git a/tests/testfile45.expect.bz2 b/tests/testfile45.expect.bz2
index b8b33e9b..e502e15a 100644
--- a/tests/testfile45.expect.bz2
+++ b/tests/testfile45.expect.bz2
Binary files differ