diff options
author | Haibo Huang <hhb@google.com> | 2019-10-07 17:06:28 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-10-07 17:06:28 -0700 |
commit | 36a6886f1a6e2a3348271e87f784fa2011485524 (patch) | |
tree | cf73c889013f70ca0e06a7b1e0e1ec1b93d14ad8 | |
parent | 52c75b45151639cb39ecc351402d57aa92a6fb66 (diff) | |
parent | 8dbae89e8f974ca4dda3657d604e625423a7e776 (diff) | |
download | elfutils-36a6886f1a6e2a3348271e87f784fa2011485524.tar.gz |
Merge "Upgrade elfutils to 47780c9e4cbd312da6d93c9d70c554d34d83dd05" am: 6440886347 am: 7a7d85c2ad
am: 8dbae89e8f
Change-Id: I8866cc3db27671dfe52721aa73f34ea9875af888
71 files changed, 7498 insertions, 2533 deletions
@@ -56,6 +56,7 @@ Makefile.in /po/stamp-po /src/addr2line /src/ar +/src/elfclassify /src/elfcmp /src/elfcompress /src/elflint @@ -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. @@ -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 @@ -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. @@ -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 "" @@ -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 "" @@ -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 "" @@ -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" @@ -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; @@ -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 Binary files differnew file mode 100644 index 00000000..2740795d --- /dev/null +++ b/tests/testfile-riscv64-dis1.expect.bz2 diff --git a/tests/testfile-riscv64-dis1.o.bz2 b/tests/testfile-riscv64-dis1.o.bz2 Binary files differnew file mode 100644 index 00000000..50f95f26 --- /dev/null +++ b/tests/testfile-riscv64-dis1.o.bz2 diff --git a/tests/testfile45.expect.bz2 b/tests/testfile45.expect.bz2 Binary files differindex b8b33e9b..e502e15a 100644 --- a/tests/testfile45.expect.bz2 +++ b/tests/testfile45.expect.bz2 |