From 193396a9e2d564a35e1e6c5584276d8e88abf2ed Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 31 Dec 2015 22:08:23 +0100 Subject: Make make more silent. Silent rules already are the default, but automake and make both still tell which directory is being entered/build. Disable printing from make. Signed-off-by: Mark Wielaard --- ChangeLog | 4 ++++ Makefile.am | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bbe0b8cf..7b67c2e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-12-31 Mark Wielaard + + * Makefile.am (AM_MAKEFLAGS): Set --no-print-directory. + 2015-10-16 Mark Wielaard * configure.ac: Make zlib mandatory. diff --git a/Makefile.am b/Makefile.am index 1454d043..2ff444e7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to create Makefile.in ## Configure input file for elfutils. ## -## Copyright (C) 1996-2002, 2003, 2004, 2005, 2006, 2008, 2009 Red Hat, Inc. +## Copyright (C) 1996-2006, 2008, 2009, 2015 Red Hat, Inc. ## ## This file is part of elfutils. ## @@ -20,6 +20,10 @@ ## ACLOCAL_AMFLAGS = -I m4 +# automake already tells which subdir is being entered. +# Don't make make repeat. +AM_MAKEFLAGS = --no-print-directory + pkginclude_HEADERS = version.h # Add doc back when we have some real content. -- cgit v1.2.3 From 29ee512fb8a71b0d22065c369a2117ff758bdf5e Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 31 Dec 2015 23:03:20 +0100 Subject: tests: elfstrmerge warn about STT_SECTION symbol for shstrhndx. Old linkers might have created an STT_SECTION symbol for the section header string table section, which isn't actually used. For now just warn about such symbols. If such a symbol would actually really be used (but why?) then we would have to handle it by removing it and rewriting the symbol table. This is a testsuite only change, but includes an extra test with files that have such STT_SECTION symbols to make sure it will be handled in case we "upgrade" the elfstrmerge test to a real utility. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 7 +++++++ tests/Makefile.am | 4 ++-- tests/elfstrmerge.c | 9 +++++++-- tests/run-elfstrmerge-test.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100755 tests/run-elfstrmerge-test.sh diff --git a/tests/ChangeLog b/tests/ChangeLog index b8d1d954..933f7c92 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2015-12-31 Mark Wielaard + + * elfstrmerge.c (main): Warn about STT_SECTION symbol for shstrhndx. + * run-elfstrmerge-test.sh: New test. + * Makefile.am (TESTS): Add run-elfstrmerge-test.sh + (EXTRA_DIST): Likewise. + 2015-12-08 Jose E. Marchesi * run-backtrace-core-sparc.sh: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 8fca8014..54d88f25 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -80,7 +80,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-strip-test9.sh run-strip-test10.sh \ run-strip-groups.sh run-strip-reloc.sh run-strip-strmerge.sh \ run-unstrip-test.sh run-unstrip-test2.sh \ - run-unstrip-test3.sh run-unstrip-M.sh \ + run-unstrip-test3.sh run-unstrip-M.sh run-elfstrmerge-test.sh \ run-ecp-test.sh run-ecp-test2.sh run-alldts.sh \ run-elflint-test.sh run-elflint-self.sh run-ranlib-test.sh \ run-ranlib-test2.sh run-ranlib-test3.sh run-ranlib-test4.sh \ @@ -167,7 +167,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-unstrip-test.sh run-unstrip-test2.sh \ testfile-info-link.bz2 testfile-info-link.debuginfo.bz2 \ testfile-info-link.stripped.bz2 run-unstrip-test3.sh \ - run-unstrip-M.sh \ + run-unstrip-M.sh run-elfstrmerge-test.sh \ run-elflint-self.sh run-ranlib-test.sh run-ranlib-test2.sh \ run-ranlib-test3.sh run-ranlib-test4.sh \ run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \ diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c index 6b927c83..4149ca6e 100644 --- a/tests/elfstrmerge.c +++ b/tests/elfstrmerge.c @@ -518,8 +518,13 @@ main (int argc, char **argv) if (gelf_getsym (data, i, &sym) == NULL) fail_elf_idx ("Couldn't get symbol", fname, i); - if (sym.st_shndx != SHN_UNDEF - && sym.st_shndx < SHN_LORESERVE) + if (GELF_ST_TYPE (sym.st_info) == STT_SECTION + && sym.st_shndx == shdrstrndx) + fprintf (stderr, "WARNING:" + " symbol table [%zd] contains section symbol %zd" + " for old shdrstrndx %zd\n", ndx, i, shdrstrndx); + else if (sym.st_shndx != SHN_UNDEF + && sym.st_shndx < SHN_LORESERVE) sym.st_shndx = newsecndx (sym.st_shndx, "section", ndx, "symbol", i); if (update_name && sym.st_name != 0) diff --git a/tests/run-elfstrmerge-test.sh b/tests/run-elfstrmerge-test.sh new file mode 100755 index 00000000..d08b6fca --- /dev/null +++ b/tests/run-elfstrmerge-test.sh @@ -0,0 +1,40 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# Merge string tables of file and check result with elflint. +testrun_elfcompress() +{ + testfile="$1" + testfiles ${testfile} + + mergedfile="${testfile}.merged" + tempfiles ${mergedfile} + + echo "merging string tables ${testfile} -> ${mergedfile}" + testrun ${abs_top_builddir}/tests/elfstrmerge -o ${mergedfile} ${testfile} + testrun ${abs_top_builddir}/src/elflint --gnu-ld ${mergedfile} +} + +# Random ELF32 testfile with extra STT_SECTION symbols +testrun_elfcompress testfile4 + +# Random ELF64 testfile with extra STT_SECTION symbols +testrun_elfcompress testfile12 + +exit 0 -- cgit v1.2.3 From 77e1739fc53c4021f6172955b73b2dce252d0709 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Thu, 31 Dec 2015 23:16:28 +0100 Subject: elflint: Add _edata and _end to the list of possibly dangling gnuld symbols. gnuld might keep dangling/unused symbols around (see sourceware PR13621). Add _edata (end of initialized data address) and _end (end of uninitialized data address) to that list. They might have been added by gnuld even if there is no such [un]initialized data. Also add the double underscore variants which are used on some architectures. Signed-off-by: Mark Wielaard --- src/ChangeLog | 5 +++++ src/elflint.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index b5b5e4a4..0bbfa5b9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2015-12-31 Mark Wielaard + + * elflint.c (check_symtab): Add _edata and _end (plus extra underscore + variants) to to the list of possibly dangling symbols. + 2015-12-02 Mark Wielaard * nm.c (process_file): Accept fd and pass it on. diff --git a/src/elflint.c b/src/elflint.c index 7d72a1f7..bb97f598 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -801,7 +801,11 @@ section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"), && strcmp (name, "__bss_start") != 0 && strcmp (name, "__bss_start__") != 0 && strcmp (name, "__TMC_END__") != 0 - && strcmp (name, ".TOC.") != 0)) + && strcmp (name, ".TOC.") != 0 + && strcmp (name, "_edata") != 0 + && strcmp (name, "__edata") != 0 + && strcmp (name, "_end") != 0 + && strcmp (name, "__end") != 0)) ERROR (gettext ("\ section [%2d] '%s': symbol %zu: st_value out of bounds\n"), idx, section_name (ebl, idx), cnt); -- cgit v1.2.3 From 0aa60ac643cea053d03a2de2ed7757d907b5e7bb Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 4 Jan 2016 21:41:52 +0100 Subject: config: Add libelf and libdw pkg-config files. Signed-off-by: Mark Wielaard --- ChangeLog | 5 +++++ config/ChangeLog | 10 ++++++++++ config/Makefile.am | 6 +++++- config/elfutils.spec.in | 2 ++ config/libdw.pc.in | 22 ++++++++++++++++++++++ config/libelf.pc.in | 14 ++++++++++++++ configure.ac | 12 ++++++++++-- 7 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 config/libdw.pc.in create mode 100644 config/libelf.pc.in diff --git a/ChangeLog b/ChangeLog index 7b67c2e3..21862ccd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-01-04 Mark Wielaard + + * configure.ac: Add BZ2_LIBS and LIBLZMA substitutions. + Add config/libelf.pc and config/libdw.pc config files. + 2015-12-31 Mark Wielaard * Makefile.am (AM_MAKEFLAGS): Set --no-print-directory. diff --git a/config/ChangeLog b/config/ChangeLog index 428162fe..baa43030 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,13 @@ +2016-01-04 Mark Wielaard + + * libelf.pc.in: New file. + * libdw.pc.in: Likewise. + * Makefile.am (EXTRA_DIST): Add libelf.pc.in and libdw.pc.in. + (pkgconfigdir): New variable. + (pkgconfigdir_DATA): Likewise. + * elfutils.spec.in (files devel): Add libdw.pc. + (files libelf-devel): Add libelf.pc. + 2015-10-15 Mark Wielaard * elfutils.spec.in: Update for 0.164. diff --git a/config/Makefile.am b/config/Makefile.am index 23f7b655..66012d02 100644 --- a/config/Makefile.am +++ b/config/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -*-Makefile-*- ## Configure input file for elfutils. ## -## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015 Red Hat, Inc. +## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015, 2016 Red Hat, Inc. ## This file is part of elfutils. ## ## This file is free software; you can redistribute it and/or modify @@ -29,6 +29,10 @@ ## not, see . ## EXTRA_DIST = elfutils.spec.in known-dwarf.awk 10-default-yama-scope.conf + libelf.pc.in libdw.pc.in + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libelf.pc libdw.pc if MAINTAINER_MODE $(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index b718f066..40b08bf1 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -197,6 +197,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libebl.a #%{_libdir}/libasm.so %{_libdir}/libdw.so +%{_libdir}/pkgconfig/libdw.pc %files devel-static %{_libdir}/libdw.a @@ -215,6 +216,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_includedir}/nlist.h %{_includedir}/elfutils/version.h %{_libdir}/libelf.so +%{_libdir}/pkgconfig/libelf.pc %files libelf-devel-static %{_libdir}/libelf.a diff --git a/config/libdw.pc.in b/config/libdw.pc.in new file mode 100644 index 00000000..b7dc0026 --- /dev/null +++ b/config/libdw.pc.in @@ -0,0 +1,22 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libdw +Description: elfutils library for DWARF data and ELF file or process inspection +Version: @VERSION@ +URL: https://fedorahosted.org/elfutils/ + +Libs: -L${libdir} -ldw +Cflags: -I${includedir} + +# We need the exact matching elfutils libelf version since internal data +# structures are used. +Requires: libelf = @VERSION@ + +# We support various compressed ELF images, but don't export any of the +# data structures or functions. zlib (gz) is always required, bzip2 (bz2) +# and lzma (xz) are optional. But bzip2 doesn't have a pkg-config file. +Requires.private: zlib @LIBLZMA@ +Libs.private: @BZ2_LIB@ diff --git a/config/libelf.pc.in b/config/libelf.pc.in new file mode 100644 index 00000000..1fc7e4cb --- /dev/null +++ b/config/libelf.pc.in @@ -0,0 +1,14 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libelf +Description: elfutils libelf library to read and write ELF files +Version: @VERSION@ +URL: https://fedorahosted.org/elfutils/ + +Libs: -L${libdir} -lelf +Cflags: -I${includedir} + +Requires.private: zlib diff --git a/configure.ac b/configure.ac index e0107549..bc50e31a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. dnl Configure input file for elfutils. -*-autoconf-*- dnl -dnl Copyright (C) 1996-2015 Red Hat, Inc. +dnl Copyright (C) 1996-2016 Red Hat, Inc. dnl dnl This file is part of elfutils. dnl @@ -22,7 +22,7 @@ AC_INIT([elfutils],[0.164],[https://bugzilla.redhat.com/],[elfutils]) AC_CONFIG_AUX_DIR([config]) AC_CONFIG_FILES([config/Makefile]) -AC_COPYRIGHT([Copyright (C) 1996-2015 Red Hat, Inc.]) +AC_COPYRIGHT([Copyright (C) 1996-2016 Red Hat, Inc.]) AC_PREREQ(2.63) dnl Minimum Autoconf version required. dnl We use GNU make extensions; automake 1.10 defaults to -Wportability. @@ -252,7 +252,12 @@ dnl conditional and config.h USE_BZLIB/USE_LZMALIB #define. save_LIBS="$LIBS" LIBS= eu_ZIPLIB(bzlib,BZLIB,bz2,BZ2_bzdopen,bzip2) +# We need this since bzip2 doesn't have a pkgconfig file. +BZ2_LIB="$LIBS" +AC_SUBST([BZ2_LIB]) eu_ZIPLIB(lzma,LZMA,lzma,lzma_auto_decoder,[LZMA (xz)]) +AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""]) +AC_SUBST([LIBLZMA]) zip_LIBS="$LIBS" LIBS="$save_LIBS" AC_SUBST([zip_LIBS]) @@ -352,6 +357,9 @@ dnl Test suite. AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see. AC_CONFIG_FILES([tests/Makefile]) +dnl pkgconfig files +AC_CONFIG_FILES([config/libelf.pc config/libdw.pc]) + # Get the definitions necessary to create the Makefiles in the po # subdirectories. This is a small subset of the gettext rules. AC_SUBST(USE_NLS, yes) -- cgit v1.2.3 From 0c32b6f086b9838fe4b7d93575068554d0c420f7 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 17 Nov 2015 23:52:39 +0100 Subject: libdwelf: Add dwelf_scn_gnu_compressed_size. Helper function to get the size of a GNU compressed zdebug section. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 4 ++ libdw/libdw.map | 5 ++ libdwelf/ChangeLog | 7 ++ libdwelf/Makefile.am | 4 +- libdwelf/dwelf_scn_gnu_compressed_size.c | 77 ++++++++++++++++++++++ libdwelf/libdwelf.h | 9 ++- tests/ChangeLog | 12 ++++ tests/Makefile.am | 10 ++- tests/dwelfgnucompressed.c | 104 +++++++++++++++++++++++++++++ tests/run-dwelfgnucompressed.sh | 108 +++++++++++++++++++++++++++++++ tests/testfile-zgnu32.bz2 | Bin 0 -> 780 bytes tests/testfile-zgnu32be.bz2 | Bin 0 -> 779 bytes tests/testfile-zgnu64.bz2 | Bin 0 -> 785 bytes tests/testfile-zgnu64be.bz2 | Bin 0 -> 795 bytes 14 files changed, 334 insertions(+), 6 deletions(-) create mode 100644 libdwelf/dwelf_scn_gnu_compressed_size.c create mode 100644 tests/dwelfgnucompressed.c create mode 100755 tests/run-dwelfgnucompressed.sh create mode 100755 tests/testfile-zgnu32.bz2 create mode 100755 tests/testfile-zgnu32be.bz2 create mode 100755 tests/testfile-zgnu64.bz2 create mode 100755 tests/testfile-zgnu64be.bz2 diff --git a/libdw/ChangeLog b/libdw/ChangeLog index d0e97f3c..89d03269 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,7 @@ +2015-10-28 Mark Wielaard + + * libdw.map (ELFUTILS_0.165): New. Add dwelf_scn_gnu_compressed_size. + 2015-12-02 Mark Wielaard * fde.c (intern_fde): Don't leak duplicate FDEs. diff --git a/libdw/libdw.map b/libdw/libdw.map index 1d4cbb0c..1681b6b5 100644 --- a/libdw/libdw.map +++ b/libdw/libdw.map @@ -322,3 +322,8 @@ ELFUTILS_0.161 { dwarf_macro_getparamcnt; dwarf_macro_param; } ELFUTILS_0.160; + +ELFUTILS_0.165 { + global: + dwelf_scn_gnu_compressed_size; +} ELFUTILS_0.161; diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog index f182ecf4..fe8af1b4 100644 --- a/libdwelf/ChangeLog +++ b/libdwelf/ChangeLog @@ -1,3 +1,10 @@ +2015-10-28 Mark Wielaard + + * Makefile.am (libdwelf_a_SOURCES): Add + dwelf_scn_gnu_compressed_size.c. + * dwelf_scn_gnu_compressed_size.c: Likewise. + * libdwelf.h (dwelf_scn_gnu_compressed_size): New declaration. + 2015-10-14 Chih-Hung Hsieh * dwelf_elf_gnu_build_id.c (find_elf_build_id): Move nested function diff --git a/libdwelf/Makefile.am b/libdwelf/Makefile.am index cd4b7ddf..4de4b2ed 100644 --- a/libdwelf/Makefile.am +++ b/libdwelf/Makefile.am @@ -2,7 +2,7 @@ ## ## Process this file with automake to create Makefile.in ## -## Copyright (C) 2014 Red Hat, Inc. +## Copyright (C) 2014, 2015 Red Hat, Inc. ## This file is part of elfutils. ## ## This file is free software; you can redistribute it and/or modify @@ -40,7 +40,7 @@ pkginclude_HEADERS = libdwelf.h noinst_HEADERS = libdwelfP.h libdwelf_a_SOURCES = dwelf_elf_gnu_debuglink.c dwelf_dwarf_gnu_debugaltlink.c \ - dwelf_elf_gnu_build_id.c + dwelf_elf_gnu_build_id.c dwelf_scn_gnu_compressed_size.c libdwelf = $(libdw) diff --git a/libdwelf/dwelf_scn_gnu_compressed_size.c b/libdwelf/dwelf_scn_gnu_compressed_size.c new file mode 100644 index 00000000..d39b702a --- /dev/null +++ b/libdwelf/dwelf_scn_gnu_compressed_size.c @@ -0,0 +1,77 @@ +/* Return size of GNU compressed section. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "libdwelfP.h" +#include "libelfP.h" + +ssize_t +dwelf_scn_gnu_compressed_size (Elf_Scn *scn) +{ + if (scn == NULL) + return -1; + + GElf_Shdr shdr; + if (gelf_getshdr (scn, &shdr) == NULL) + return -1; + + /* Allocated or no bits sections can never be compressed. */ + if ((shdr.sh_flags & SHF_ALLOC) != 0 + || shdr.sh_type == SHT_NULL + || shdr.sh_type == SHT_NOBITS) + return -1; + + Elf_Data *d = elf_rawdata (scn, NULL); + if (d == NULL) + return -1; + + if (d->d_size >= 4 + 8 + && memcmp (d->d_buf, "ZLIB", 4) == 0) + { + /* There is a 12-byte header of "ZLIB" followed by + an 8-byte big-endian size. There is only one type and + alignment isn't preserved separately. */ + uint64_t size; + memcpy (&size, d->d_buf + 4, sizeof size); + size = be64toh (size); + + /* One more sanity check, size should be bigger than original + data size plus some overhead (4 chars ZLIB + 8 bytes size + 6 + bytes zlib stream overhead + 5 bytes overhead max for one 16K + block) and should fit into a size_t. */ + if (size + 4 + 8 + 6 + 5 < d->d_size || size > SIZE_MAX) + return -1; + + return size; + } + + return -1; +} diff --git a/libdwelf/libdwelf.h b/libdwelf/libdwelf.h index e16dc0f3..7f7f679a 100644 --- a/libdwelf/libdwelf.h +++ b/libdwelf/libdwelf.h @@ -1,5 +1,5 @@ /* Interfaces for libdwelf. DWARF ELF Low-level Functions. - Copyright (C) 2014 Red Hat, Inc. + Copyright (C) 2014, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -65,6 +65,13 @@ extern ssize_t dwelf_dwarf_gnu_debugaltlink (Dwarf *dwarf, note. Returns -1 in case of malformed data or other errors. */ extern ssize_t dwelf_elf_gnu_build_id (Elf *elf, const void **build_idp); +/* Returns the size of the uncompressed data of a GNU compressed + section. The section name should start with .zdebug (but this + isn't checked by this function). If the section isn't compressed + (the section data doesn't start with ZLIB) -1 is returned. If an + error occured -1 is returned and elf_errno is set. */ +extern ssize_t dwelf_scn_gnu_compressed_size (Elf_Scn *scn); + #ifdef __cplusplus } #endif diff --git a/tests/ChangeLog b/tests/ChangeLog index 933f7c92..5afe4bd2 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,15 @@ +2015-10-28 Mark Wielaard + + * dwelfgnucompressed.c: New file. + * run-dwelfgnucompressed.sh: New test. + * testfile-zgnu32.bz2: New testfile. + * testfile-zgnu64.bz2: Likewise. + * Makefile.am (check_PROGRAMS): Add dwelfgnucompressed. + (TESTS): Add run-dwelfgnucompressed.sh. + (EXTRA_DIST): Add run-dwelfgnucompressed.sh, testfile-zgnu32.bz2, + testfile-zgnu64.bz2, testfile-zgnu32be.bz2, testfile-zgnu64be.bz2. + (dwelfgnucompressed_LDADD): New variable. + 2015-12-31 Mark Wielaard * elfstrmerge.c (main): Warn about STT_SECTION symbol for shstrhndx. diff --git a/tests/Makefile.am b/tests/Makefile.am index 54d88f25..8e2f2833 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ backtrace-data backtrace-dwarf debuglink debugaltlink \ buildid deleted deleted-lib.so aggregate_size vdsosyms \ getsrc_die strptr newdata elfstrtab dwfl-proc-attach \ - elfshphehdr elfstrmerge + elfshphehdr elfstrmerge dwelfgnucompressed asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -120,7 +120,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-readelf-dwz-multi.sh run-allfcts-multi.sh run-deleted.sh \ run-linkmap-cut.sh run-aggregate-size.sh vdsosyms run-readelf-A.sh \ run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \ - elfshphehdr run-lfs-symbols.sh + elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -306,7 +306,10 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ testfile-x32-core.bz2 testfile-x32.bz2 \ backtrace.x32.core.bz2 backtrace.x32.exec.bz2 \ testfile-x32-s.bz2 testfile-x32-d.bz2 testfile-x32-debug.bz2 \ - run-lfs-symbols.sh lfs-symbols testfile-nolfs.bz2 + run-lfs-symbols.sh lfs-symbols testfile-nolfs.bz2 \ + testfile-zgnu32.bz2 testfile-zgnu64.bz2 \ + testfile-zgnu32be.bz2 testfile-zgnu64be.bz2 \ + run-dwelfgnucompressed.sh if USE_VALGRIND valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1' @@ -455,6 +458,7 @@ dwfl_proc_attach_LDADD = $(libdw) dwfl_proc_attach_LDFLAGS = -pthread $(AM_LDFLAGS) elfshphehdr_LDADD =$(libelf) elfstrmerge_LDADD = $(libebl) $(libelf) +dwelfgnucompressed_LDADD = $(libelf) $(libdw) if GCOV check: check-am coverage diff --git a/tests/dwelfgnucompressed.c b/tests/dwelfgnucompressed.c new file mode 100644 index 00000000..0132271c --- /dev/null +++ b/tests/dwelfgnucompressed.c @@ -0,0 +1,104 @@ +/* Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include + +#include ELFUTILS_HEADER(elf) +#include ELFUTILS_HEADER(dwelf) +#include + +#include +#include +#include + +int +main (int argc, char *argv[]) +{ + int result = 0; + int cnt; + + elf_version (EV_CURRENT); + + for (cnt = 1; cnt < argc; ++cnt) + { + int fd = open (argv[cnt], O_RDONLY); + + Elf *elf = elf_begin (fd, ELF_C_READ, NULL); + if (elf == NULL) + { + printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1)); + result = 1; + close (fd); + continue; + } + + size_t shdrstrndx; + if (elf_getshdrstrndx (elf, &shdrstrndx) == -1) + { + printf ("elf_getshdrstrnd failed %s\n", elf_errmsg (-1)); + result = 1; + close (fd); + continue; + } + + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + int idx = elf_ndxscn (scn); + GElf_Shdr shdr; + if (gelf_getshdr (scn, &shdr) == NULL) + { + printf ("gelf_getshdr failed: %s\n", elf_errmsg (-1)); + result = 1; + break; + } + + const char *sname = elf_strptr (elf, shdrstrndx, shdr.sh_name); + if (sname == NULL) + { + printf ("couldn't get section name: %s\n", elf_errmsg (-1)); + result = 1; + break; + } + + if (strncmp(".zdebug", sname, strlen (".zdebug")) == 0) + { + ssize_t size; + if ((size = dwelf_scn_gnu_compressed_size (scn)) == -1) + { + printf ("dwelf_scn_gnu_compressed_size failed: %s\n", + elf_errmsg (-1)); + result = 1; + break; + } + printf ("section %d: GNU Compressed size: %zx\n", idx, size); + } + } + + elf_end (elf); + close (fd); + } + + return result; +} diff --git a/tests/run-dwelfgnucompressed.sh b/tests/run-dwelfgnucompressed.sh new file mode 100755 index 00000000..b93a56f2 --- /dev/null +++ b/tests/run-dwelfgnucompressed.sh @@ -0,0 +1,108 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# = funcs.s = +# .globl testfunc +# testfunc: +# nop +# ret +# .type testfunc, @function +# .size testfunc, .-testfunc +# +# .globl testfunc2 +# testfunc2: +# call testfunc +# nop +# nop +# ret +# .type testfunc2, @function +# .size testfunc2, .-testfunc2 +# +# .globl functest3 +# functest3: +# jmp local +# nop +# nop +# local: +# call testfunc2 +# ret +# .type functest3, @function +# .size functest3, .-functest3 + +# = start.s = +# .global _start +# _start: +# call functest3 +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# ret +# .type _start, @function +# .size _start, .-_start + +# gas --compress-debug-sections=zlib-gnu -32 -g -o start.o start.s +# gas --compress-debug-sections=zlib-gnu -32 -g -o funcs.o funcs.s +# ld --compress-debug-sections=zlib-gnu -melf_i386 -g -o zgnu32 funcs.o start.o + +# gas --compress-debug-sections=zlib-gnu -64 -g -o start.o start.s +# gas --compress-debug-sections=zlib-gnu -64 -g -o funcs.o funcs.s +# ld --compress-debug-sections=zlib-gnu -g -o zgnu32 funcs.o start.o + +testfiles testfile-zgnu64 +testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu64 <<\EOF +section 2: GNU Compressed size: 60 +section 3: GNU Compressed size: aa +section 5: GNU Compressed size: 8d +EOF + +testfiles testfile-zgnu64be +testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu64be <<\EOF +section 3: GNU Compressed size: 60 +section 4: GNU Compressed size: 7e +section 6: GNU Compressed size: 8d +EOF + +testfiles testfile-zgnu32 +testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu32 <<\EOF +section 2: GNU Compressed size: 40 +section 3: GNU Compressed size: 9a +section 5: GNU Compressed size: 85 +EOF + +testfiles testfile-zgnu32be +testrun_compare ${abs_top_builddir}/tests/dwelfgnucompressed testfile-zgnu32be <<\EOF +section 3: GNU Compressed size: 40 +section 4: GNU Compressed size: 6e +section 6: GNU Compressed size: 85 +EOF + +exit 0 diff --git a/tests/testfile-zgnu32.bz2 b/tests/testfile-zgnu32.bz2 new file mode 100755 index 00000000..9d622cad Binary files /dev/null and b/tests/testfile-zgnu32.bz2 differ diff --git a/tests/testfile-zgnu32be.bz2 b/tests/testfile-zgnu32be.bz2 new file mode 100755 index 00000000..c1dd589e Binary files /dev/null and b/tests/testfile-zgnu32be.bz2 differ diff --git a/tests/testfile-zgnu64.bz2 b/tests/testfile-zgnu64.bz2 new file mode 100755 index 00000000..1bc2c090 Binary files /dev/null and b/tests/testfile-zgnu64.bz2 differ diff --git a/tests/testfile-zgnu64be.bz2 b/tests/testfile-zgnu64be.bz2 new file mode 100755 index 00000000..390c9c90 Binary files /dev/null and b/tests/testfile-zgnu64be.bz2 differ -- cgit v1.2.3 From 5ddb50af4a488fdec358570502cbe058acb8ae93 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 20 Nov 2015 00:12:37 +0100 Subject: libelf: Add elf32_getchdr, elf64_getchdr and gelf_getchdr. Elf_Data of a compressed section has type ELF_T_CHDR. This type can be xlated to the file or memory representation. This will make sure the Chdr is in the correct endianess. The compressed data following the Chdr isn't translated. Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 28 +++++++ libelf/Makefile.am | 8 +- libelf/abstract.h | 20 ++++- libelf/chdr_xlate.h | 33 ++++++++ libelf/elf32_getchdr.c | 83 +++++++++++++++++++ libelf/elf64_getchdr.c | 30 +++++++ libelf/elf_error.c | 20 ++++- libelf/elf_getdata.c | 20 ++++- libelf/exttypes.h | 4 +- libelf/gelf.h | 8 +- libelf/gelf_fsize.c | 1 + libelf/gelf_getchdr.c | 69 ++++++++++++++++ libelf/gelf_xlate.c | 4 +- libelf/gelf_xlate.h | 1 + libelf/libelf.h | 8 +- libelf/libelf.map | 7 ++ libelf/libelfP.h | 5 +- tests/ChangeLog | 17 ++++ tests/Makefile.am | 11 ++- tests/elfgetchdr.c | 124 ++++++++++++++++++++++++++++ tests/msg_tst.c | 5 +- tests/run-elfgetchdr.sh | 188 +++++++++++++++++++++++++++++++++++++++++++ tests/testfile-zgabi32.bz2 | Bin 0 -> 767 bytes tests/testfile-zgabi32be.bz2 | Bin 0 -> 769 bytes tests/testfile-zgabi64.bz2 | Bin 0 -> 795 bytes tests/testfile-zgabi64be.bz2 | Bin 0 -> 780 bytes 26 files changed, 676 insertions(+), 18 deletions(-) create mode 100644 libelf/chdr_xlate.h create mode 100644 libelf/elf32_getchdr.c create mode 100644 libelf/elf64_getchdr.c create mode 100644 libelf/gelf_getchdr.c create mode 100644 tests/elfgetchdr.c create mode 100755 tests/run-elfgetchdr.sh create mode 100755 tests/testfile-zgabi32.bz2 create mode 100755 tests/testfile-zgabi32be.bz2 create mode 100755 tests/testfile-zgabi64.bz2 create mode 100755 tests/testfile-zgabi64be.bz2 diff --git a/libelf/ChangeLog b/libelf/ChangeLog index fbe8e3ae..2ed4a674 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,31 @@ +2015-11-19 Mark Wielaard + + * Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c, + elf64_getchdr.c and gelf_getchdr.c. + (noinst_HEADERS): Add chdr_xlate.h. + * abstract.h: Define Chdr32 and Chdr64. + * chdr_xlate.h: New file. + * elf32_getchdr.c: New file. + * elf64_getchdr.c: New file. + * elf_error.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE + and ELF_E_INVALID_SECTION_FLAGS. + * elf_getdata.c (__libelf_set_rawdata_wrlock): Set d_type to + ELF_T_CHDR for SHF_COMPRESSED sections. + * exttypes.h: Add Chdr32 and Chdr64. + * gelf.h (GElf_Chdr): New typedef. + (gelf_getchdr): New function definition. + * gelf_fsize.c (__libelf_type_sizes): Add ELF_T_CHDR. + * gelf_getchdr.c: New file. + * gelf_xlate.c (__elf_xfctstom): Add ELF_T_CHDR cvt_chdr. + * gelf_xlate.h: Add Chdr. + * libelf.h (Elf_Type): Add ELF_T_CHDR. + (elf32_getchdr): New function definition. + (elf64_getchdr): Likewise. + * libelf.map (ELFUTILS_1.7): New sections add elf32_getchdr, + elf64_getchdr and gelf_getchdr. + * libelfP.h: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE + and ELF_E_INVALID_SECTION_FLAGS. + 2015-10-16 Mark Wielaard * Makefile.am (libelf_so_LDLIBS): Add -lz. diff --git a/libelf/Makefile.am b/libelf/Makefile.am index 4a4131c1..8a678b84 100644 --- a/libelf/Makefile.am +++ b/libelf/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to create Makefile.in ## -## Copyright (C) 1996-2010 Red Hat, Inc. +## Copyright (C) 1996-2010, 2015 Red Hat, Inc. ## This file is part of elfutils. ## ## This file is free software; you can redistribute it and/or modify @@ -88,7 +88,8 @@ libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \ elf32_offscn.c elf64_offscn.c gelf_offscn.c \ elf_getaroff.c \ elf_gnu_hash.c \ - elf_scnshndx.c + elf_scnshndx.c \ + elf32_getchdr.c elf64_getchdr.c gelf_getchdr.c libelf_pic_a_SOURCES = am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) @@ -118,7 +119,8 @@ uninstall: uninstall-am rm -f $(DESTDIR)$(libdir)/libelf.so noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \ - version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h + version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \ + chdr_xlate.h EXTRA_DIST = libelf.map CLEANFILES += $(am_libelf_pic_a_OBJECTS) libelf.so.$(VERSION) diff --git a/libelf/abstract.h b/libelf/abstract.h index 53713eec..d4515f27 100644 --- a/libelf/abstract.h +++ b/libelf/abstract.h @@ -1,5 +1,5 @@ /* Abstract description of component ELF types. - Copyright (C) 1998, 1999, 2000, 2002, 2004, 2007 Red Hat, Inc. + Copyright (C) 1998, 1999, 2000, 2002, 2004, 2007, 2015 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper , 1998. @@ -310,3 +310,21 @@ START (64, auxv_t, Ext##auxv_t) \ TYPE_XLATE (Elf64_cvt_Addr1 (&tdest->a_un.a_val, &tsrc->a_un.a_val);) \ TYPE_EXTRA (} a_un;) \ END (64, Ext##auxv_t) + +/* Note that there is actual compression data right after the Chdr. + So we also have a separate conversion function for the whole + section. */ +#define Chdr32(Ext) \ +START (32, Chdr, Ext##Chdr) \ + TYPE_NAME (ElfW2(32, Ext##Word), ch_type) \ + TYPE_NAME (ElfW2(32, Ext##Word), ch_size) \ + TYPE_NAME (ElfW2(32, Ext##Word), ch_addralign) \ +END (32, Ext##Chdr) + +#define Chdr64(Ext) \ +START (64, Chdr, Ext##Chdr) \ + TYPE_NAME (ElfW2(64, Ext##Word), ch_type) \ + TYPE_NAME (ElfW2(64, Ext##Word), ch_reserved) \ + TYPE_NAME (ElfW2(64, Ext##Xword), ch_size) \ + TYPE_NAME (ElfW2(64, Ext##Xword), ch_addralign) \ +END (64, Ext##Chdr) diff --git a/libelf/chdr_xlate.h b/libelf/chdr_xlate.h new file mode 100644 index 00000000..70782b43 --- /dev/null +++ b/libelf/chdr_xlate.h @@ -0,0 +1,33 @@ +#include "common.h" + +/* These functions convert a while section, one Chdr plus compression data. */ + +static void +Elf32_cvt_chdr (void *dest, const void *src, size_t len, int encode) +{ + if (len == 0) + return; + + /* Move everything over, if necessary, we only need to xlate the + header, not the compressed data following it. */ + if (dest != src) + memmove (dest, src, len); + + if (len >= sizeof (Elf32_Chdr)) + Elf32_cvt_Chdr (dest, src, sizeof (Elf32_Chdr), encode); +} + +static void +Elf64_cvt_chdr (void *dest, const void *src, size_t len, int encode) +{ + if (len == 0) + return; + + /* Move everything over, if necessary, we only need to xlate the + header, not the compressed data following it. */ + if (dest != src) + memmove (dest, src, len); + + if (len >= sizeof (Elf64_Chdr)) + Elf64_cvt_Chdr (dest, src, sizeof (Elf64_Chdr), encode); +} diff --git a/libelf/elf32_getchdr.c b/libelf/elf32_getchdr.c new file mode 100644 index 00000000..982a614c --- /dev/null +++ b/libelf/elf32_getchdr.c @@ -0,0 +1,83 @@ +/* Return section compression header. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "libelfP.h" +#include "common.h" + +#ifndef LIBELFBITS +# define LIBELFBITS 32 +#endif + + +ElfW2(LIBELFBITS,Chdr) * +elfw2(LIBELFBITS,getchdr) (Elf_Scn *scn) +{ + ElfW2(LIBELFBITS,Shdr) *shdr = elfw2(LIBELFBITS,getshdr) (scn); + if (shdr == NULL) + return NULL; + + /* Must have SHF_COMPRESSED flag set. Allocated or no bits sections + can never be compressed. */ + if ((shdr->sh_flags & SHF_ALLOC) != 0) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS); + return NULL; + } + + if (shdr->sh_type == SHT_NULL + || shdr->sh_type == SHT_NOBITS) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE); + return NULL; + } + + if ((shdr->sh_flags & SHF_COMPRESSED) == 0) + { + __libelf_seterrno (ELF_E_NOT_COMPRESSED); + return NULL; + } + + /* This makes sure the data is in the correct format, so we don't + need to swap fields. */ + Elf_Data *d = elf_getdata (scn, NULL); + if (d == NULL) + return NULL; + + if (d->d_size < sizeof (ElfW2(LIBELFBITS,Chdr)) || d->d_buf == NULL) + { + __libelf_seterrno (ELF_E_INVALID_DATA); + return NULL; + } + + return (ElfW2(LIBELFBITS,Chdr) *) d->d_buf; +} diff --git a/libelf/elf64_getchdr.c b/libelf/elf64_getchdr.c new file mode 100644 index 00000000..6588b791 --- /dev/null +++ b/libelf/elf64_getchdr.c @@ -0,0 +1,30 @@ +/* Return section compression header. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#define LIBELFBITS 64 +#include "elf32_getchdr.c" diff --git a/libelf/elf_error.c b/libelf/elf_error.c index d6bdaab0..d97e3bd6 100644 --- a/libelf/elf_error.c +++ b/libelf/elf_error.c @@ -230,6 +230,21 @@ core files") (ELF_E_NO_PHDR_IDX \ + sizeof "file has no program header") N_("invalid offset") + "\0" +#define ELF_E_INVALID_SECTION_TYPE_IDX \ + (ELF_E_INVALID_OFFSET_IDX \ + + sizeof "invalid offset") + N_("invalid section type") + "\0" +#define ELF_E_INVALID_SECTION_FLAGS_IDX \ + (ELF_E_INVALID_SECTION_TYPE_IDX \ + + sizeof "invalid section type") + N_("invalid section flags") + "\0" +#define ELF_E_NOT_COMPRESSED_IDX \ + (ELF_E_INVALID_SECTION_FLAGS_IDX \ + + sizeof "invalid section flags") + N_("section does not contain compressed data") }; @@ -277,7 +292,10 @@ static const uint_fast16_t msgidx[ELF_E_NUM] = [ELF_E_GROUP_NOT_REL] = ELF_E_GROUP_NOT_REL_IDX, [ELF_E_INVALID_PHDR] = ELF_E_INVALID_PHDR_IDX, [ELF_E_NO_PHDR] = ELF_E_NO_PHDR_IDX, - [ELF_E_INVALID_OFFSET] = ELF_E_INVALID_OFFSET_IDX + [ELF_E_INVALID_OFFSET] = ELF_E_INVALID_OFFSET_IDX, + [ELF_E_INVALID_SECTION_TYPE] = ELF_E_INVALID_SECTION_TYPE_IDX, + [ELF_E_INVALID_SECTION_FLAGS] = ELF_E_INVALID_SECTION_FLAGS_IDX, + [ELF_E_NOT_COMPRESSED] = ELF_E_NOT_COMPRESSED_IDX }; #define nmsgidx ((int) (sizeof (msgidx) / sizeof (msgidx[0]))) diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c index 9a567e51..bd1f0682 100644 --- a/libelf/elf_getdata.c +++ b/libelf/elf_getdata.c @@ -106,6 +106,7 @@ const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] [ELF_T_NHDR] = __alignof__ (ElfW2(Bits,Nhdr)), \ [ELF_T_GNUHASH] = __alignof__ (Elf32_Word), \ [ELF_T_AUXV] = __alignof__ (ElfW2(Bits,auxv_t)), \ + [ELF_T_CHDR] = __alignof__ (ElfW2(Bits,Chdr)), \ } [EV_CURRENT - 1] = { @@ -204,6 +205,7 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) Elf64_Off offset; Elf64_Xword size; Elf64_Xword align; + Elf64_Xword flags; int type; Elf *elf = scn->elf; @@ -220,6 +222,7 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) size = shdr->sh_size; type = shdr->sh_type; align = shdr->sh_addralign; + flags = shdr->sh_flags; } else { @@ -234,6 +237,7 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) size = shdr->sh_size; type = shdr->sh_type; align = shdr->sh_addralign; + flags = shdr->sh_flags; } /* If the section has no data (for whatever reason), leave the `d_buf' @@ -243,7 +247,10 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) /* First a test whether the section is valid at all. */ size_t entsize; - if (type == SHT_HASH) + /* Compressed data has a header, but then compressed data. */ + if ((flags & SHF_COMPRESSED) != 0) + entsize = 1; + else if (type == SHT_HASH) { GElf_Ehdr ehdr_mem; GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem); @@ -320,10 +327,15 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) } scn->rawdata.d.d_size = size; - /* Some broken ELF ABI for 64-bit machines use the wrong hash table - entry size. See elf-knowledge.h for more information. */ - if (type == SHT_HASH && elf->class == ELFCLASS64) + + /* Compressed data always has type ELF_T_CHDR regardless of the + section type. */ + if ((flags & SHF_COMPRESSED) != 0) + scn->rawdata.d.d_type = ELF_T_CHDR; + else if (type == SHT_HASH && elf->class == ELFCLASS64) { + /* Some broken ELF ABI for 64-bit machines use the wrong hash table + entry size. See elf-knowledge.h for more information. */ GElf_Ehdr ehdr_mem; GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem); scn->rawdata.d.d_type diff --git a/libelf/exttypes.h b/libelf/exttypes.h index 8cb2aaec..7bacd654 100644 --- a/libelf/exttypes.h +++ b/libelf/exttypes.h @@ -1,5 +1,5 @@ /* External ELF types. - Copyright (C) 1998-2010 Red Hat, Inc. + Copyright (C) 1998-2010, 2015 Red Hat, Inc. This file is part of elfutils. Contributed by Ulrich Drepper , 1998. @@ -75,6 +75,7 @@ Syminfo32 (Ext_); Move32 (Ext_); Lib32 (Ext_); auxv_t32 (Ext_); +Chdr32 (Ext_); Ehdr64 (Ext_); Phdr64 (Ext_); @@ -92,6 +93,7 @@ Syminfo64 (Ext_); Move64 (Ext_); Lib64 (Ext_); auxv_t64 (Ext_); +Chdr64 (Ext_); #undef START #undef END diff --git a/libelf/gelf.h b/libelf/gelf.h index e3f07404..1bc7ee72 100644 --- a/libelf/gelf.h +++ b/libelf/gelf.h @@ -1,5 +1,5 @@ /* This file defines generic ELF types, structures, and macros. - Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2007 Red Hat, Inc. + Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -85,6 +85,9 @@ typedef Elf64_Rela GElf_Rela; /* Program segment header. */ typedef Elf64_Phdr GElf_Phdr; +/* Header of a compressed section. */ +typedef Elf64_Chdr GElf_Chdr; + /* Dynamic section entry. */ typedef Elf64_Dyn GElf_Dyn; @@ -183,6 +186,9 @@ extern int gelf_update_phdr (Elf *__elf, int __ndx, GElf_Phdr *__src); /* Create new program header with PHNUM entries. */ extern unsigned long int gelf_newphdr (Elf *__elf, size_t __phnum); +/* Get compression header of section if any. Returns NULL and sets + elf_errno if the section isn't compressed or an error occurred. */ +extern GElf_Chdr *gelf_getchdr (Elf_Scn *__scn, GElf_Chdr *__dst); /* Convert data structure from the representation in the file represented by ELF to their memory representation. */ diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c index a124fa84..0c509265 100644 --- a/libelf/gelf_fsize.c +++ b/libelf/gelf_fsize.c @@ -68,6 +68,7 @@ const size_t __libelf_type_sizes[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] = [ELF_T_MOVE] = sizeof (ElfW2(LIBELFBITS, Ext_Move)), \ [ELF_T_LIB] = sizeof (ElfW2(LIBELFBITS, Ext_Lib)), \ [ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)), \ + [ELF_T_CHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Chdr)), \ [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD) TYPE_SIZES (32) }, diff --git a/libelf/gelf_getchdr.c b/libelf/gelf_getchdr.c new file mode 100644 index 00000000..394bf4b3 --- /dev/null +++ b/libelf/gelf_getchdr.c @@ -0,0 +1,69 @@ +/* Return section compression header. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "libelfP.h" +#include +#include + + +GElf_Chdr * +gelf_getchdr (Elf_Scn *scn, GElf_Chdr *dest) +{ + if (scn == NULL) + return NULL; + + if (dest == NULL) + { + __libelf_seterrno (ELF_E_INVALID_OPERAND); + return NULL; + } + + if (scn->elf->class == ELFCLASS32) + { + Elf32_Chdr *chdr = elf32_getchdr (scn); + if (chdr == NULL) + return NULL; + dest->ch_type = chdr->ch_type; + dest->ch_size = chdr->ch_size; + dest->ch_addralign = chdr->ch_addralign; + } + else + { + Elf64_Chdr *chdr = elf64_getchdr (scn); + if (chdr == NULL) + return NULL; + *dest = *chdr; + } + + return dest; +} +INTDEF(gelf_getchdr) diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c index c5805e73..f3d3b7a0 100644 --- a/libelf/gelf_xlate.c +++ b/libelf/gelf_xlate.c @@ -166,6 +166,7 @@ union unaligned #include "version_xlate.h" #include "gnuhash_xlate.h" #include "note_xlate.h" +#include "chdr_xlate.h" /* Now the externally visible table with the function pointers. */ @@ -198,7 +199,8 @@ const xfct_t __elf_xfctstom[EV_NUM - 1][EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] [ELF_T_SYMINFO] = ElfW2(Bits, cvt_Syminfo), \ [ELF_T_MOVE] = ElfW2(Bits, cvt_Move), \ [ELF_T_LIB] = ElfW2(Bits, cvt_Lib), \ - [ELF_T_AUXV] = ElfW2(Bits, cvt_auxv_t) + [ELF_T_AUXV] = ElfW2(Bits, cvt_auxv_t), \ + [ELF_T_CHDR] = ElfW2(Bits, cvt_chdr) define_xfcts (32), [ELF_T_GNUHASH] = Elf32_cvt_Word }, diff --git a/libelf/gelf_xlate.h b/libelf/gelf_xlate.h index f11eb90b..3c0e4bf6 100644 --- a/libelf/gelf_xlate.h +++ b/libelf/gelf_xlate.h @@ -50,6 +50,7 @@ TYPE (Syminfo, LIBELFBITS) TYPE (Move, LIBELFBITS) TYPE (Lib, LIBELFBITS) TYPE (auxv_t, LIBELFBITS) +TYPE (Chdr, LIBELFBITS) /* Prepare for the next round. */ diff --git a/libelf/libelf.h b/libelf/libelf.h index 54f7c29b..49234c8a 100644 --- a/libelf/libelf.h +++ b/libelf/libelf.h @@ -1,5 +1,5 @@ /* Interface for libelf. - Copyright (C) 1998-2010 Red Hat, Inc. + Copyright (C) 1998-2010, 2015 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -64,6 +64,7 @@ typedef enum ELF_T_LIB, /* Elf32_Lib, Elf64_Lib, ... */ ELF_T_GNUHASH, /* GNU-style hash section. */ ELF_T_AUXV, /* Elf32_auxv_t, Elf64_auxv_t, ... */ + ELF_T_CHDR, /* Compressed, Elf32_Chdr, Elf64_Chdr, ... */ /* Keep this the last entry. */ ELF_T_NUM } Elf_Type; @@ -267,6 +268,11 @@ extern Elf32_Shdr *elf32_getshdr (Elf_Scn *__scn); /* Similar for ELFCLASS64. */ extern Elf64_Shdr *elf64_getshdr (Elf_Scn *__scn); +/* Returns compression header for a section if section data is + compressed. Returns NULL and sets elf_errno if the section isn't + compressed or an error occurred. */ +extern Elf32_Chdr *elf32_getchdr (Elf_Scn *__scn); +extern Elf64_Chdr *elf64_getchdr (Elf_Scn *__scn); /* Set or clear flags for ELF file. */ extern unsigned int elf_flagelf (Elf *__elf, Elf_Cmd __cmd, diff --git a/libelf/libelf.map b/libelf/libelf.map index de6d912a..d402ccc0 100644 --- a/libelf/libelf.map +++ b/libelf/libelf.map @@ -138,3 +138,10 @@ ELFUTILS_1.6 { global: elf_getphdrnum; } ELFUTILS_1.5; + +ELFUTILS_1.7 { + global: + elf32_getchdr; + elf64_getchdr; + gelf_getchdr; +} ELFUTILS_1.6; \ No newline at end of file diff --git a/libelf/libelfP.h b/libelf/libelfP.h index 993c6556..8ff8478c 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -1,5 +1,5 @@ /* Internal interfaces for libelf. - Copyright (C) 1998-2010 Red Hat, Inc. + Copyright (C) 1998-2010, 2015 Red Hat, Inc. This file is part of elfutils. Contributed by Ulrich Drepper , 1998. @@ -138,6 +138,9 @@ enum ELF_E_INVALID_PHDR, ELF_E_NO_PHDR, ELF_E_INVALID_OFFSET, + ELF_E_INVALID_SECTION_TYPE, + ELF_E_INVALID_SECTION_FLAGS, + ELF_E_NOT_COMPRESSED, /* Keep this as the last entry. */ ELF_E_NUM }; diff --git a/tests/ChangeLog b/tests/ChangeLog index 5afe4bd2..7096f9f9 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,20 @@ +2015-10-28 Mark Wielaard + + * elfgetchdr.c: New file. + * run-elfgetchdr.sh: New test. + * testfile-zgabi32.bz2: New testfile. + * testfile-zgabi32be.bz2: Likewise. + * testfile-zgabi64.bz2: Likewise. + * testfile-zgabi64be.bz2: Likewise. + * Makefile.am (check_PROGRAMS): Add elfgetchdr. + (TESTS): Add run-elfgetchdr.sh. + (EXTRA_DIST): Add run-elfgetchdr.sh, testfile-zgabi32.bz2, + testfile-zgabi32be.bz2, testfile-zgabi64.bz2, testfile-zgabi64be.bz2. + (welfgetchdr_LDADD): New variable. + * msg_tst.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE + and ELF_E_INVALID_SECTION_FLAGS, + + 2015-10-28 Mark Wielaard * dwelfgnucompressed.c: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 8e2f2833..2528e1c0 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ backtrace-data backtrace-dwarf debuglink debugaltlink \ buildid deleted deleted-lib.so aggregate_size vdsosyms \ getsrc_die strptr newdata elfstrtab dwfl-proc-attach \ - elfshphehdr elfstrmerge dwelfgnucompressed + elfshphehdr elfstrmerge dwelfgnucompressed elfgetchdr asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -120,7 +120,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-readelf-dwz-multi.sh run-allfcts-multi.sh run-deleted.sh \ run-linkmap-cut.sh run-aggregate-size.sh vdsosyms run-readelf-A.sh \ run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \ - elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh + elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh \ + run-elfgetchdr.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -309,7 +310,10 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-lfs-symbols.sh lfs-symbols testfile-nolfs.bz2 \ testfile-zgnu32.bz2 testfile-zgnu64.bz2 \ testfile-zgnu32be.bz2 testfile-zgnu64be.bz2 \ - run-dwelfgnucompressed.sh + run-dwelfgnucompressed.sh \ + testfile-zgabi32.bz2 testfile-zgabi64.bz2 \ + testfile-zgabi32be.bz2 testfile-zgabi64be.bz2 \ + run-elfgetchdr.sh if USE_VALGRIND valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1' @@ -459,6 +463,7 @@ dwfl_proc_attach_LDFLAGS = -pthread $(AM_LDFLAGS) elfshphehdr_LDADD =$(libelf) elfstrmerge_LDADD = $(libebl) $(libelf) dwelfgnucompressed_LDADD = $(libelf) $(libdw) +elfgetchdr_LDADD = $(libelf) $(libdw) if GCOV check: check-am coverage diff --git a/tests/elfgetchdr.c b/tests/elfgetchdr.c new file mode 100644 index 00000000..44ba1789 --- /dev/null +++ b/tests/elfgetchdr.c @@ -0,0 +1,124 @@ +/* Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include + +#include ELFUTILS_HEADER(elf) +#include ELFUTILS_HEADER(dwelf) +#include + +#include +#include +#include + +int +main (int argc, char *argv[]) +{ + int result = 0; + int cnt; + + elf_version (EV_CURRENT); + + for (cnt = 1; cnt < argc; ++cnt) + { + int fd = open (argv[cnt], O_RDONLY); + + Elf *elf = elf_begin (fd, ELF_C_READ, NULL); + if (elf == NULL) + { + printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1)); + result = 1; + close (fd); + continue; + } + + size_t shdrstrndx; + if (elf_getshdrstrndx (elf, &shdrstrndx) == -1) + { + printf ("elf_getshdrstrnd failed %s\n", elf_errmsg (-1)); + result = 1; + close (fd); + continue; + } + + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + int idx = elf_ndxscn (scn); + GElf_Shdr shdr; + if (gelf_getshdr (scn, &shdr) == NULL) + { + printf ("gelf_getshdr failed: %s\n", elf_errmsg (-1)); + result = 1; + break; + } + + if ((shdr.sh_flags & SHF_COMPRESSED) != 0) + { + GElf_Chdr chdr; + if (gelf_getchdr (scn, &chdr) == NULL) + { + printf ("gelf_getchdr failed: %s\n", elf_errmsg (-1)); + result = 1; + break; + } + + printf ("section %d: ELF Compressed ch_type: %" PRId32 + ", ch_size: %" PRIx64 ", ch_addralign: %" PRIx64 "\n", + idx, chdr.ch_type, chdr.ch_size, chdr.ch_addralign); + } + else + { + const char *sname = elf_strptr (elf, shdrstrndx, shdr.sh_name); + if (sname == NULL) + { + printf ("couldn't get section name: %s\n", elf_errmsg (-1)); + result = 1; + break; + } + + /* This duplicates what the dwelfgnucompressed testcase does. */ + if (strncmp(".zdebug", sname, strlen (".zdebug")) == 0) + { + ssize_t size; + if ((size = dwelf_scn_gnu_compressed_size (scn)) == -1) + { + printf ("dwelf_scn_gnu_compressed_size failed: %s\n", + elf_errmsg (-1)); + result = 1; + break; + } + printf ("section %d: GNU Compressed size: %zx\n", idx, size); + } + else + printf ("section %d: NOT Compressed\n", idx); + } + } + + elf_end (elf); + close (fd); + } + + return result; +} diff --git a/tests/msg_tst.c b/tests/msg_tst.c index 10ff0f73..539c5ddb 100644 --- a/tests/msg_tst.c +++ b/tests/msg_tst.c @@ -74,7 +74,10 @@ static struct "program header only allowed in executables, shared objects, \ and core files" }, { ELF_E_NO_PHDR, "file has no program header" }, - { ELF_E_INVALID_OFFSET, "invalid offset" } + { ELF_E_INVALID_OFFSET, "invalid offset" }, + { ELF_E_INVALID_SECTION_TYPE , "invalid section type" }, + { ELF_E_INVALID_SECTION_FLAGS , "invalid section flags" }, + { ELF_E_NOT_COMPRESSED, "section does not contain compressed data" } }; diff --git a/tests/run-elfgetchdr.sh b/tests/run-elfgetchdr.sh new file mode 100755 index 00000000..7a422f39 --- /dev/null +++ b/tests/run-elfgetchdr.sh @@ -0,0 +1,188 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# = funcs.s = +# .globl testfunc +# testfunc: +# nop +# ret +# .type testfunc, @function +# .size testfunc, .-testfunc +# +# .globl testfunc2 +# testfunc2: +# call testfunc +# nop +# nop +# ret +# .type testfunc2, @function +# .size testfunc2, .-testfunc2 +# +# .globl functest3 +# functest3: +# jmp local +# nop +# nop +# local: +# call testfunc2 +# ret +# .type functest3, @function +# .size functest3, .-functest3 + +# = start.s = +# .global _start +# _start: +# call functest3 +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# nop +# ret +# .type _start, @function +# .size _start, .-_start + +# gas --compress-debug-sections=zlib-gnu -32 -g -o start.o start.s +# gas --compress-debug-sections=zlib-gnu -32 -g -o funcs.o funcs.s +# ld --compress-debug-sections=zlib-gnu -melf_i386 -g -o zgnu32 funcs.o start.o + +# gas --compress-debug-sections=zlib-gnu -64 -g -o start.o start.s +# gas --compress-debug-sections=zlib-gnu -64 -g -o funcs.o funcs.s +# ld --compress-debug-sections=zlib-gnu -g -o zgnu64 funcs.o start.o + +# gas --compress-debug-sections=zlib-gabi -32 -g -o start.o start.s +# gas --compress-debug-sections=zlib-gabi -32 -g -o funcs.o funcs.s +# ld --compress-debug-sections=zlib-gabi -melf_i386 -g -o zgabi32 funcs.o start.o + +# gas --compress-debug-sections=zlib-gabi -64 -g -o start.o start.s +# gas --compress-debug-sections=zlib-gabi -64 -g -o funcs.o funcs.s +# ld --compress-debug-sections=zlib-gabi -g -o zgabi64 funcs.o start.o + +testfiles testfile-zgnu64 +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu64 <<\EOF +section 1: NOT Compressed +section 2: GNU Compressed size: 60 +section 3: GNU Compressed size: aa +section 4: NOT Compressed +section 5: GNU Compressed size: 8d +section 6: NOT Compressed +section 7: NOT Compressed +section 8: NOT Compressed +EOF + +testfiles testfile-zgabi64 +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi64 <<\EOF +section 1: NOT Compressed +section 2: ELF Compressed ch_type: 1, ch_size: 60, ch_addralign: 10 +section 3: ELF Compressed ch_type: 1, ch_size: aa, ch_addralign: 1 +section 4: NOT Compressed +section 5: ELF Compressed ch_type: 1, ch_size: 8d, ch_addralign: 1 +section 6: NOT Compressed +section 7: NOT Compressed +section 8: NOT Compressed +EOF + +testfiles testfile-zgnu32 +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu32 <<\EOF +section 1: NOT Compressed +section 2: GNU Compressed size: 40 +section 3: GNU Compressed size: 9a +section 4: NOT Compressed +section 5: GNU Compressed size: 85 +section 6: NOT Compressed +section 7: NOT Compressed +section 8: NOT Compressed +EOF + +testfiles testfile-zgabi32 +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi32 <<\EOF +section 1: NOT Compressed +section 2: ELF Compressed ch_type: 1, ch_size: 40, ch_addralign: 8 +section 3: ELF Compressed ch_type: 1, ch_size: 9a, ch_addralign: 1 +section 4: NOT Compressed +section 5: ELF Compressed ch_type: 1, ch_size: 85, ch_addralign: 1 +section 6: NOT Compressed +section 7: NOT Compressed +section 8: NOT Compressed +EOF + +testfiles testfile-zgnu64be +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu64be <<\EOF +section 1: NOT Compressed +section 2: NOT Compressed +section 3: GNU Compressed size: 60 +section 4: GNU Compressed size: 7e +section 5: NOT Compressed +section 6: GNU Compressed size: 8d +section 7: NOT Compressed +section 8: NOT Compressed +section 9: NOT Compressed +EOF + +testfiles testfile-zgabi64be +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi64be <<\EOF +section 1: NOT Compressed +section 2: NOT Compressed +section 3: ELF Compressed ch_type: 1, ch_size: 60, ch_addralign: 10 +section 4: ELF Compressed ch_type: 1, ch_size: 7e, ch_addralign: 1 +section 5: NOT Compressed +section 6: ELF Compressed ch_type: 1, ch_size: 8d, ch_addralign: 1 +section 7: NOT Compressed +section 8: NOT Compressed +section 9: NOT Compressed +EOF + +testfiles testfile-zgnu32be +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgnu32be <<\EOF +section 1: NOT Compressed +section 2: NOT Compressed +section 3: GNU Compressed size: 40 +section 4: GNU Compressed size: 6e +section 5: NOT Compressed +section 6: GNU Compressed size: 85 +section 7: NOT Compressed +section 8: NOT Compressed +section 9: NOT Compressed +EOF + +testfiles testfile-zgabi32be +testrun_compare ${abs_top_builddir}/tests/elfgetchdr testfile-zgabi32be <<\EOF +section 1: NOT Compressed +section 2: NOT Compressed +section 3: ELF Compressed ch_type: 1, ch_size: 40, ch_addralign: 8 +section 4: ELF Compressed ch_type: 1, ch_size: 6e, ch_addralign: 1 +section 5: NOT Compressed +section 6: ELF Compressed ch_type: 1, ch_size: 85, ch_addralign: 1 +section 7: NOT Compressed +section 8: NOT Compressed +section 9: NOT Compressed +EOF + +exit 0 diff --git a/tests/testfile-zgabi32.bz2 b/tests/testfile-zgabi32.bz2 new file mode 100755 index 00000000..6159dbce Binary files /dev/null and b/tests/testfile-zgabi32.bz2 differ diff --git a/tests/testfile-zgabi32be.bz2 b/tests/testfile-zgabi32be.bz2 new file mode 100755 index 00000000..f1f5eb5c Binary files /dev/null and b/tests/testfile-zgabi32be.bz2 differ diff --git a/tests/testfile-zgabi64.bz2 b/tests/testfile-zgabi64.bz2 new file mode 100755 index 00000000..3b44f089 Binary files /dev/null and b/tests/testfile-zgabi64.bz2 differ diff --git a/tests/testfile-zgabi64be.bz2 b/tests/testfile-zgabi64be.bz2 new file mode 100755 index 00000000..d819ae3d Binary files /dev/null and b/tests/testfile-zgabi64be.bz2 differ -- cgit v1.2.3 From b7105b40ccd73a8e6b7fce6c11d2088eb1298b33 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 16 Oct 2015 22:21:23 +0200 Subject: readelf: Add -z,--decompress option. -z, --decompress Show compression information for compressed sections (when used with -S). Signed-off-by: Mark Wielaard --- src/ChangeLog | 8 ++ src/readelf.c | 66 +++++++++++++++- tests/ChangeLog | 6 ++ tests/Makefile.am | 3 +- tests/run-readelf-z.sh | 202 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 281 insertions(+), 4 deletions(-) create mode 100755 tests/run-readelf-z.sh diff --git a/src/ChangeLog b/src/ChangeLog index 0bbfa5b9..97242213 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2015-10-16 Mark Wielaard + + * readelf.c (argp_option): Describe --decompress,-z. + (print_decompress): New bool. + (parse_opt): Handle -z. + (elf_ch_type_name): New function. + (print_shdr): Print section compress information. + 2015-12-31 Mark Wielaard * elflint.c (check_symtab): Add _edata and _end (plus extra underscore diff --git a/src/readelf.c b/src/readelf.c index 5f6e4edd..1d507cf9 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -48,6 +48,7 @@ #include "../libelf/libelfP.h" #include "../libelf/common.h" #include "../libebl/libeblP.h" +#include "../libdwelf/libdwelf.h" #include "../libdw/libdwP.h" #include "../libdwfl/libdwflP.h" #include "../libdw/memory-access.h" @@ -112,6 +113,8 @@ static const struct argp_option options[] = N_("Display just offsets instead of resolving values to addresses in DWARF data"), 0 }, { "wide", 'W', NULL, 0, N_("Ignored for compatibility (lines always wide)"), 0 }, + { "decompress", 'z', NULL, 0, + N_("Show compression information for compressed sections (when used with -S)."), 0 }, { NULL, 0, NULL, 0, NULL, 0 } }; @@ -190,6 +193,9 @@ static bool decodedaranges = false; /* True if we should print the .debug_aranges section using libdw. */ static bool decodedline = false; +/* True if we want to show more information about compressed sections. */ +static bool print_decompress = false; + /* Select printing of debugging sections. */ static enum section_e { @@ -479,6 +485,9 @@ parse_opt (int key, char *arg, break; case 'W': /* Ignored. */ break; + case 'z': + print_decompress = true; + break; case ELF_INPUT_SECTION: if (arg == NULL) elf_input_section = ".gnu_debugdata"; @@ -1065,6 +1074,17 @@ get_visibility_type (int value) } } +static const char * +elf_ch_type_name (unsigned int code) +{ + if (code == 0) + return "NONE"; + + if (code == ELFCOMPRESS_ZLIB) + return "ZLIB"; + + return "UNKNOWN"; +} /* Print the section headers. */ static void @@ -1091,6 +1111,14 @@ There are %d section headers, starting at offset %#" PRIx64 ":\n\ else puts (gettext ("[Nr] Name Type Addr Off Size ES Flags Lk Inf Al")); + if (print_decompress) + { + if (ehdr->e_ident[EI_CLASS] == ELFCLASS32) + puts (gettext (" [Compression Size Al]")); + else + puts (gettext (" [Compression Size Al]")); + } + for (cnt = 0; cnt < shnum; ++cnt) { Elf_Scn *scn = elf_getscn (ebl->elf, cnt); @@ -1128,25 +1156,57 @@ There are %d section headers, starting at offset %#" PRIx64 ":\n\ *cp++ = 'G'; if (shdr->sh_flags & SHF_TLS) *cp++ = 'T'; + if (shdr->sh_flags & SHF_COMPRESSED) + *cp++ = 'C'; if (shdr->sh_flags & SHF_ORDERED) *cp++ = 'O'; if (shdr->sh_flags & SHF_EXCLUDE) *cp++ = 'E'; *cp = '\0'; + const char *sname; char buf[128]; + sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: ""; printf ("[%2zu] %-20s %-12s %0*" PRIx64 " %0*" PRIx64 " %0*" PRIx64 " %2" PRId64 " %-5s %2" PRId32 " %3" PRId32 " %2" PRId64 "\n", - cnt, - elf_strptr (ebl->elf, shstrndx, shdr->sh_name) - ?: "", + cnt, sname, ebl_section_type_name (ebl, shdr->sh_type, buf, sizeof (buf)), ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 8 : 16, shdr->sh_addr, ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, shdr->sh_offset, ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, shdr->sh_size, shdr->sh_entsize, flagbuf, shdr->sh_link, shdr->sh_info, shdr->sh_addralign); + + if (print_decompress) + { + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + GElf_Chdr chdr; + if (gelf_getchdr (scn, &chdr) != NULL) + printf (" [ELF %s (%" PRId32 ") %0*" PRIx64 + " %2" PRId64 "]\n", + elf_ch_type_name (chdr.ch_type), + chdr.ch_type, + ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, + chdr.ch_size, chdr.ch_addralign); + else + error (0, 0, + gettext ("bad compression header for section %zd: %s"), + elf_ndxscn (scn), elf_errmsg (-1)); + } + else if (strncmp(".zdebug", sname, strlen (".zdebug")) == 0) + { + ssize_t size; + if ((size = dwelf_scn_gnu_compressed_size (scn)) >= 0) + printf (" [GNU ZLIB %0*" PRIx64 " ]\n", + ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, size); + else + error (0, 0, + gettext ("bad gnu compressed size for section %zd: %s"), + elf_ndxscn (scn), elf_errmsg (-1)); + } + } } fputc_unlocked ('\n', stdout); diff --git a/tests/ChangeLog b/tests/ChangeLog index 7096f9f9..d9b92d3b 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2015-10-28 Mark Wielaard + + * run-readelf-z.sh: New test. + * Makefile.am (TESTS): Add run-readelf-z.sh. + (EXTRA_DIST): Likewise. + 2015-10-28 Mark Wielaard * elfgetchdr.c: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 2528e1c0..8ebb687b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -90,7 +90,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-readelf-test1.sh run-readelf-test2.sh run-readelf-test3.sh \ run-readelf-test4.sh run-readelf-twofiles.sh \ run-readelf-macro.sh run-readelf-loc.sh \ - run-readelf-aranges.sh run-readelf-line.sh \ + run-readelf-aranges.sh run-readelf-line.sh run-readelf-z.sh \ run-native-test.sh run-bug1-test.sh \ run-debuglink.sh run-debugaltlink.sh run-buildid.sh \ dwfl-bug-addr-overflow run-addrname-test.sh \ @@ -209,6 +209,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-readelf-macro.sh testfilemacro.bz2 \ run-readelf-loc.sh testfileloc.bz2 \ run-readelf-aranges.sh run-readelf-line.sh testfilefoobarbaz.bz2 \ + run-readelf-z.sh \ run-readelf-dwz-multi.sh libtestfile_multi_shared.so.bz2 \ testfile_multi.dwz.bz2 testfile_multi_main.bz2 \ testfile-dwzstr.bz2 testfile-dwzstr.multi.bz2 \ diff --git a/tests/run-readelf-z.sh b/tests/run-readelf-z.sh new file mode 100755 index 00000000..6dbd2f14 --- /dev/null +++ b/tests/run-readelf-z.sh @@ -0,0 +1,202 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# See run-elfgetchdr.sh for testfiles. + +testfiles testfile-zgnu64 +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu64 <<\EOF +There are 9 section headers, starting at offset 0x3e0: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 0000000000000000 00000000 00000000 0 0 0 0 +[ 1] .text PROGBITS 0000000000400078 00000078 0000002a 0 AX 0 0 1 +[ 2] .zdebug_aranges PROGBITS 0000000000000000 00000260 00000032 0 0 0 16 + [GNU ZLIB 00000060 ] +[ 3] .zdebug_info PROGBITS 0000000000000000 00000292 0000006f 0 0 0 1 + [GNU ZLIB 000000aa ] +[ 4] .debug_abbrev PROGBITS 0000000000000000 00000301 00000028 0 0 0 1 +[ 5] .zdebug_line PROGBITS 0000000000000000 00000329 0000005b 0 0 0 1 + [GNU ZLIB 0000008d ] +[ 6] .shstrtab STRTAB 0000000000000000 00000384 00000059 0 0 0 1 +[ 7] .symtab SYMTAB 0000000000000000 000000a8 00000168 24 8 8 8 +[ 8] .strtab STRTAB 0000000000000000 00000210 0000004b 0 0 0 1 + +EOF + +testfiles testfile-zgnu64be +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu64be <<\EOF +There are 10 section headers, starting at offset 0x438: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 0000000000000000 00000000 00000000 0 0 0 0 +[ 1] .text PROGBITS 0000000010000078 00000078 00000074 0 AX 0 0 8 +[ 2] .eh_frame PROGBITS 00000000100000ec 000000ec 00000000 0 A 0 0 4 +[ 3] .zdebug_aranges PROGBITS 0000000000000000 000002c0 00000034 0 0 0 16 + [GNU ZLIB 00000060 ] +[ 4] .zdebug_info PROGBITS 0000000000000000 000002f4 00000059 0 0 0 1 + [GNU ZLIB 0000007e ] +[ 5] .debug_abbrev PROGBITS 0000000000000000 0000034d 00000028 0 0 0 1 +[ 6] .zdebug_line PROGBITS 0000000000000000 00000375 0000005b 0 0 0 1 + [GNU ZLIB 0000008d ] +[ 7] .shstrtab STRTAB 0000000000000000 000003d0 00000063 0 0 0 1 +[ 8] .symtab SYMTAB 0000000000000000 000000f0 00000180 24 9 9 8 +[ 9] .strtab STRTAB 0000000000000000 00000270 00000044 0 0 0 1 + +EOF + +testfiles testfile-zgabi64 +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi64 <<\EOF +There are 9 section headers, starting at offset 0x400: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 0000000000000000 00000000 00000000 0 0 0 0 +[ 1] .text PROGBITS 0000000000400078 00000078 0000002a 0 AX 0 0 1 +[ 2] .debug_aranges PROGBITS 0000000000000000 00000260 0000003e 0 C 0 0 16 + [ELF ZLIB (1) 00000060 16] +[ 3] .debug_info PROGBITS 0000000000000000 0000029e 0000007b 0 C 0 0 1 + [ELF ZLIB (1) 000000aa 1] +[ 4] .debug_abbrev PROGBITS 0000000000000000 00000319 00000028 0 0 0 1 +[ 5] .debug_line PROGBITS 0000000000000000 00000341 00000067 0 C 0 0 1 + [ELF ZLIB (1) 0000008d 1] +[ 6] .shstrtab STRTAB 0000000000000000 000003a8 00000056 0 0 0 1 +[ 7] .symtab SYMTAB 0000000000000000 000000a8 00000168 24 8 8 8 +[ 8] .strtab STRTAB 0000000000000000 00000210 0000004b 0 0 0 1 + +EOF + +testfiles testfile-zgabi64be +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi64be <<\EOF +There are 10 section headers, starting at offset 0x458: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 0000000000000000 00000000 00000000 0 0 0 0 +[ 1] .text PROGBITS 0000000010000078 00000078 00000074 0 AX 0 0 8 +[ 2] .eh_frame PROGBITS 00000000100000ec 000000ec 00000000 0 A 0 0 4 +[ 3] .debug_aranges PROGBITS 0000000000000000 000002c0 00000040 0 C 0 0 16 + [ELF ZLIB (1) 00000060 16] +[ 4] .debug_info PROGBITS 0000000000000000 00000300 00000065 0 C 0 0 1 + [ELF ZLIB (1) 0000007e 1] +[ 5] .debug_abbrev PROGBITS 0000000000000000 00000365 00000028 0 0 0 1 +[ 6] .debug_line PROGBITS 0000000000000000 0000038d 00000067 0 C 0 0 1 + [ELF ZLIB (1) 0000008d 1] +[ 7] .shstrtab STRTAB 0000000000000000 000003f4 00000060 0 0 0 1 +[ 8] .symtab SYMTAB 0000000000000000 000000f0 00000180 24 9 9 8 +[ 9] .strtab STRTAB 0000000000000000 00000270 00000044 0 0 0 1 + +EOF + +testfiles testfile-zgnu32 +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu32 <<\EOF +There are 9 section headers, starting at offset 0x33c: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 00000000 000000 000000 0 0 0 0 +[ 1] .text PROGBITS 08048054 000054 00002a 0 AX 0 0 1 +[ 2] .zdebug_aranges PROGBITS 00000000 0001c0 000031 0 0 0 8 + [GNU ZLIB 000040 ] +[ 3] .zdebug_info PROGBITS 00000000 0001f1 00006f 0 0 0 1 + [GNU ZLIB 00009a ] +[ 4] .debug_abbrev PROGBITS 00000000 000260 000028 0 0 0 1 +[ 5] .zdebug_line PROGBITS 00000000 000288 00005a 0 0 0 1 + [GNU ZLIB 000085 ] +[ 6] .shstrtab STRTAB 00000000 0002e2 000059 0 0 0 1 +[ 7] .symtab SYMTAB 00000000 000080 0000f0 16 8 8 4 +[ 8] .strtab STRTAB 00000000 000170 00004b 0 0 0 1 + +EOF + +testfiles testfile-zgnu32be +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgnu32be <<\EOF +There are 10 section headers, starting at offset 0x390: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 00000000 000000 000000 0 0 0 0 +[ 1] .text PROGBITS 01800054 000054 000074 0 AX 0 0 1 +[ 2] .eh_frame PROGBITS 018000c8 0000c8 000000 0 A 0 0 4 +[ 3] .zdebug_aranges PROGBITS 00000000 000220 000033 0 0 0 8 + [GNU ZLIB 000040 ] +[ 4] .zdebug_info PROGBITS 00000000 000253 000058 0 0 0 1 + [GNU ZLIB 00006e ] +[ 5] .debug_abbrev PROGBITS 00000000 0002ab 000028 0 0 0 1 +[ 6] .zdebug_line PROGBITS 00000000 0002d3 000059 0 0 0 1 + [GNU ZLIB 000085 ] +[ 7] .shstrtab STRTAB 00000000 00032c 000063 0 0 0 1 +[ 8] .symtab SYMTAB 00000000 0000c8 000110 16 9 9 4 +[ 9] .strtab STRTAB 00000000 0001d8 000045 0 0 0 1 + +EOF + +testfiles testfile-zgabi32 +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi32 <<\EOF +There are 9 section headers, starting at offset 0x338: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 00000000 000000 000000 0 0 0 0 +[ 1] .text PROGBITS 08048054 000054 00002a 0 AX 0 0 1 +[ 2] .debug_aranges PROGBITS 00000000 0001c0 000031 0 C 0 0 8 + [ELF ZLIB (1) 000040 8] +[ 3] .debug_info PROGBITS 00000000 0001f1 00006f 0 C 0 0 1 + [ELF ZLIB (1) 00009a 1] +[ 4] .debug_abbrev PROGBITS 00000000 000260 000028 0 0 0 1 +[ 5] .debug_line PROGBITS 00000000 000288 00005a 0 C 0 0 1 + [ELF ZLIB (1) 000085 1] +[ 6] .shstrtab STRTAB 00000000 0002e2 000056 0 0 0 1 +[ 7] .symtab SYMTAB 00000000 000080 0000f0 16 8 8 4 +[ 8] .strtab STRTAB 00000000 000170 00004b 0 0 0 1 + +EOF + +testfiles testfile-zgabi32be +testrun_compare ${abs_top_builddir}/src/readelf -z -S testfile-zgabi32be <<\EOF +There are 10 section headers, starting at offset 0x38c: + +Section Headers: +[Nr] Name Type Addr Off Size ES Flags Lk Inf Al + [Compression Size Al] +[ 0] NULL 00000000 000000 000000 0 0 0 0 +[ 1] .text PROGBITS 01800054 000054 000074 0 AX 0 0 1 +[ 2] .eh_frame PROGBITS 018000c8 0000c8 000000 0 A 0 0 4 +[ 3] .debug_aranges PROGBITS 00000000 000220 000033 0 C 0 0 8 + [ELF ZLIB (1) 000040 8] +[ 4] .debug_info PROGBITS 00000000 000253 000058 0 C 0 0 1 + [ELF ZLIB (1) 00006e 1] +[ 5] .debug_abbrev PROGBITS 00000000 0002ab 000028 0 0 0 1 +[ 6] .debug_line PROGBITS 00000000 0002d3 000059 0 C 0 0 1 + [ELF ZLIB (1) 000085 1] +[ 7] .shstrtab STRTAB 00000000 00032c 000060 0 0 0 1 +[ 8] .symtab SYMTAB 00000000 0000c8 000110 16 9 9 4 +[ 9] .strtab STRTAB 00000000 0001d8 000045 0 0 0 1 + +EOF + +exit 0 -- cgit v1.2.3 From 272018bba1f253bae00b5ba280ad0e0f18c04006 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 19 Dec 2015 01:29:54 +0100 Subject: libelf: Add elf_compress and elf_compress_gnu. Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 30 +++ libelf/Makefile.am | 3 +- libelf/elf32_getshdr.c | 5 +- libelf/elf32_updatenull.c | 23 ++- libelf/elf_begin.c | 2 + libelf/elf_compress.c | 490 ++++++++++++++++++++++++++++++++++++++++++++++ libelf/elf_compress_gnu.c | 208 ++++++++++++++++++++ libelf/elf_end.c | 11 +- libelf/elf_error.c | 26 ++- libelf/elf_getdata.c | 27 ++- libelf/libelf.h | 64 +++++- libelf/libelf.map | 5 +- libelf/libelfP.h | 24 +++ tests/ChangeLog | 15 ++ tests/Makefile.am | 10 +- tests/elfgetzdata.c | 113 +++++++++++ tests/elfputzdata.c | 232 ++++++++++++++++++++++ tests/msg_tst.c | 6 +- tests/run-elfgetzdata.sh | 214 ++++++++++++++++++++ tests/run-elfputzdata.sh | 340 ++++++++++++++++++++++++++++++++ 20 files changed, 1822 insertions(+), 26 deletions(-) create mode 100644 libelf/elf_compress.c create mode 100644 libelf/elf_compress_gnu.c create mode 100644 tests/elfgetzdata.c create mode 100644 tests/elfputzdata.c create mode 100755 tests/run-elfgetzdata.sh create mode 100755 tests/run-elfputzdata.sh diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 2ed4a674..1e214006 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,33 @@ +2015-10-21 Mark Wielaard + + * Makefile.am (libelf_a_SOURCES): Add elf_compress.c and + elf_compress_gnu.c. + * elf_compress.c: New file. + * elf_compress_gnu.c: Likewise. + * elf_begin.c (file_read_elf): Make a writable copy of the shdrs + for ELF_C_READ_MMAP. + * elf_end.c (elf_end): Free zdata_base. + * elf_error.c: Add ELF_E_ALREADY_COMPRESSED, + ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and + ELF_E_DECOMPRESS_ERROR. + * elf_data.c (__libelf_data_type): New internal function extracted + from convert_data. + (convert_data): Handle SHF_COMPRESSED. + * elf32_updatenull.c (updatenull_wrlock): Check sh_entsize against + uncompressed section data size if SHF_COMPRESSED. + * elf32_getshdr.c (load_shdr_wrlock): Adjust assert to account for + ELF_C_READ_MMAP. + * libelf.h: Define elf_compress and elf_compress_gnu. + * libelf.map (ELFUTILS_1.7): Add elf_compress and elf_compress_gnu. + * libelfP.h: Add ELF_E_ALREADY_COMPRESSED, + ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and + ELF_E_DECOMPRESS_ERROR. Define __libelf_data_type. + (__libelf_compress): New internal function definition. + (__libelf_decompress): Likewise. + (__libelf_reset_rawdata): Likewise. + (__libelf_data_type): Likewise. + (struct Elf_Scn): Add zdata_base. + 2015-11-19 Mark Wielaard * Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c, diff --git a/libelf/Makefile.am b/libelf/Makefile.am index 8a678b84..167a8322 100644 --- a/libelf/Makefile.am +++ b/libelf/Makefile.am @@ -89,7 +89,8 @@ libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \ elf_getaroff.c \ elf_gnu_hash.c \ elf_scnshndx.c \ - elf32_getchdr.c elf64_getchdr.c gelf_getchdr.c + elf32_getchdr.c elf64_getchdr.c gelf_getchdr.c \ + elf_compress.c elf_compress_gnu.c libelf_pic_a_SOURCES = am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) diff --git a/libelf/elf32_getshdr.c b/libelf/elf32_getshdr.c index 3a6375c1..237d9122 100644 --- a/libelf/elf32_getshdr.c +++ b/libelf/elf32_getshdr.c @@ -99,6 +99,7 @@ load_shdr_wrlock (Elf_Scn *scn) assert ((elf->flags & ELF_F_MALLOCED) || ehdr->e_ident[EI_DATA] != MY_ELFDATA + || elf->cmd == ELF_C_READ_MMAP || (! ALLOW_UNALIGNED && ((uintptr_t) file_shdr & (__alignof__ (ElfW2(LIBELFBITS,Shdr)) - 1)) != 0)); @@ -106,7 +107,9 @@ load_shdr_wrlock (Elf_Scn *scn) /* Now copy the data and at the same time convert the byte order. */ if (ehdr->e_ident[EI_DATA] == MY_ELFDATA) { - assert ((elf->flags & ELF_F_MALLOCED) || ! ALLOW_UNALIGNED); + assert ((elf->flags & ELF_F_MALLOCED) + || elf->cmd == ELF_C_READ_MMAP + || ! ALLOW_UNALIGNED); memcpy (shdr, file_shdr, size); } else diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c index d3754d32..03de0321 100644 --- a/libelf/elf32_updatenull.c +++ b/libelf/elf32_updatenull.c @@ -382,12 +382,27 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum) /* Check that the section size is actually a multiple of the entry size. */ - if (shdr->sh_entsize != 0 - && unlikely (shdr->sh_size % shdr->sh_entsize != 0) + if (shdr->sh_entsize != 0 && shdr->sh_entsize != 1 && (elf->flags & ELF_F_PERMISSIVE) == 0) { - __libelf_seterrno (ELF_E_INVALID_SHENTSIZE); - return -1; + /* For compressed sections check the uncompressed size. */ + ElfW2(LIBELFBITS,Word) sh_size; + if ((shdr->sh_flags & SHF_COMPRESSED) == 0) + sh_size = shdr->sh_size; + else + { + ElfW2(LIBELFBITS,Chdr) *chdr; + chdr = elfw2(LIBELFBITS,getchdr) (scn); + if (unlikely (chdr == NULL)) + return -1; + sh_size = chdr->ch_size; + } + + if (unlikely (sh_size % shdr->sh_entsize != 0)) + { + __libelf_seterrno (ELF_E_INVALID_SHENTSIZE); + return -1; + } } } diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c index d2920c4e..147f5f4b 100644 --- a/libelf/elf_begin.c +++ b/libelf/elf_begin.c @@ -340,6 +340,7 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident, Elf32_Off e_shoff = elf->state.elf32.ehdr->e_shoff; if (map_address != NULL && e_ident[EI_DATA] == MY_ELFDATA + && cmd != ELF_C_READ_MMAP /* We need a copy to be able to write. */ && (ALLOW_UNALIGNED || (((uintptr_t) ((char *) ehdr + e_shoff) & (__alignof__ (Elf32_Shdr) - 1)) == 0))) @@ -441,6 +442,7 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident, Elf64_Off e_shoff = elf->state.elf64.ehdr->e_shoff; if (map_address != NULL && e_ident[EI_DATA] == MY_ELFDATA + && cmd != ELF_C_READ_MMAP /* We need a copy to be able to write. */ && (ALLOW_UNALIGNED || (((uintptr_t) ((char *) ehdr + e_shoff) & (__alignof__ (Elf64_Shdr) - 1)) == 0))) diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c new file mode 100644 index 00000000..17b80f2d --- /dev/null +++ b/libelf/elf_compress.c @@ -0,0 +1,490 @@ +/* Compress or decompress a section. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "libelfP.h" +#include "common.h" + +#include +#include +#include +#include +#include +#include + +#ifndef MAX +# define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif + +/* Given a section, uses the (in-memory) Elf_Data to extract the + original data size (including the given header size) and data + alignment. Returns a buffer that has at least hsize bytes (for the + caller to fill in with a header) plus zlib compressed date. Also + returns the new buffer size in new_size (hsize + compressed data + size). Returns (void *) -1 when FORCE is false and the compressed + data would be bigger than the original data. */ +void * +internal_function +__libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data, + size_t *orig_size, size_t *orig_addralign, + size_t *new_size, bool force) +{ + /* The compressed data is the on-disk data. We simplify the + implementation a bit by asking for the (converted) in-memory + data (which might be all there is if the user created it with + elf_newdata) and then convert back to raw if needed before + compressing. Should be made a bit more clever to directly + use raw if that is directly available. */ + Elf_Data *data = elf_getdata (scn, NULL); + if (data == NULL) + return NULL; + + /* When not forced and we immediately know we would use more data by + compressing, because of the header plus zlib overhead (five bytes + per 16 KB block, plus a one-time overhead of six bytes for the + entire stream), don't do anything. */ + Elf_Data *next_data = elf_getdata (scn, data); + if (next_data == NULL && !force + && data->d_size <= hsize + 5 + 6) + return (void *) -1; + + *orig_addralign = data->d_align; + *orig_size = data->d_size; + + /* Guess an output block size. 1/8th of the original Elf_Data plus + hsize. Make the first chunk twice that size (25%), then increase + by a block (12.5%) when necessary. */ + size_t block = (data->d_size / 8) + hsize; + size_t out_size = 2 * block; + void *out_buf = malloc (out_size); + if (out_buf == NULL) + { + __libelf_seterrno (ELF_E_NOMEM); + return NULL; + } + + /* Caller gets to fill in the header at the start. Just skip it here. */ + size_t used = hsize; + + z_stream z; + z.zalloc = Z_NULL; + z.zfree = Z_NULL; + z.opaque = Z_NULL; + int zrc = deflateInit (&z, Z_BEST_COMPRESSION); + if (zrc != Z_OK) + { + __libelf_seterrno (ELF_E_COMPRESS_ERROR); + return NULL; + } + + Elf_Data cdata; + cdata.d_buf = NULL; + + /* Cleanup and return result. Don't leak memory. */ + void *deflate_cleanup (void *result) + { + deflateEnd (&z); + free (out_buf); + if (ei_data != MY_ELFDATA) + free (cdata.d_buf); + return result; + } + + /* Loop over data buffers. */ + int flush = Z_NO_FLUSH; + do + { + /* Convert to raw if different endianess. */ + cdata = *data; + if (ei_data != MY_ELFDATA) + { + /* Don't do this conversion in place, we might want to keep + the original data around, caller decides. */ + cdata.d_buf = malloc (data->d_size); + if (cdata.d_buf == NULL) + { + __libelf_seterrno (ELF_E_NOMEM); + return deflate_cleanup (NULL); + } + if (gelf_xlatetof (scn->elf, &cdata, data, ei_data) == NULL) + return deflate_cleanup (NULL); + } + + z.avail_in = cdata.d_size; + z.next_in = cdata.d_buf; + + /* Get next buffer to see if this is the last one. */ + data = next_data; + if (data != NULL) + { + *orig_addralign = MAX (*orig_addralign, data->d_align); + *orig_size += data->d_size; + next_data = elf_getdata (scn, data); + } + else + flush = Z_FINISH; + + /* Flush one data buffer. */ + do + { + z.avail_out = out_size - used; + z.next_out = out_buf + used; + zrc = deflate (&z, flush); + if (zrc == Z_STREAM_ERROR) + { + __libelf_seterrno (ELF_E_COMPRESS_ERROR); + return deflate_cleanup (NULL); + } + used += (out_size - used) - z.avail_out; + + /* Bail out if we are sure the user doesn't want the + compression forced and we are using more compressed data + than original data. */ + if (!force && flush == Z_FINISH && used >= *orig_size) + return deflate_cleanup ((void *) -1); + + if (z.avail_out == 0) + { + void *bigger = realloc (out_buf, out_size + block); + if (bigger == NULL) + { + __libelf_seterrno (ELF_E_NOMEM); + return deflate_cleanup (NULL); + } + out_buf = bigger; + out_size += block; + } + } + while (z.avail_out == 0); /* Need more output buffer. */ + + if (ei_data != MY_ELFDATA) + { + free (cdata.d_buf); + cdata.d_buf = NULL; + } + } + while (flush != Z_FINISH); /* More data blocks. */ + + zrc = deflateEnd (&z); + if (zrc != Z_OK) + { + __libelf_seterrno (ELF_E_COMPRESS_ERROR); + return deflate_cleanup (NULL); + } + + *new_size = used; + return out_buf; +} + +void * +internal_function +__libelf_decompress (void *buf_in, size_t size_in, size_t size_out) +{ + void *buf_out = malloc (size_out); + if (unlikely (buf_out == NULL)) + { + __libelf_seterrno (ELF_E_NOMEM); + return NULL; + } + + z_stream z = + { + .next_in = buf_in, + .avail_in = size_in, + .next_out = buf_out, + .avail_out = size_out + }; + int zrc = inflateInit (&z); + while (z.avail_in > 0 && likely (zrc == Z_OK)) + { + z.next_out = buf_out + (size_out - z.avail_out); + zrc = inflate (&z, Z_FINISH); + if (unlikely (zrc != Z_STREAM_END)) + { + zrc = Z_DATA_ERROR; + break; + } + zrc = inflateReset (&z); + } + if (likely (zrc == Z_OK)) + zrc = inflateEnd (&z); + + if (unlikely (zrc != Z_OK) || unlikely (z.avail_out != 0)) + { + free (buf_out); + __libelf_seterrno (ELF_E_DECOMPRESS_ERROR); + return NULL; + } + + return buf_out; +} + +void +internal_function +__libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align, + Elf_Type type) +{ + /* This is the new raw data, replace and possibly free old data. */ + scn->rawdata.d.d_off = 0; + scn->rawdata.d.d_version = __libelf_version; + scn->rawdata.d.d_buf = buf; + scn->rawdata.d.d_size = size; + scn->rawdata.d.d_align = align; + scn->rawdata.d.d_type = type; + + /* Existing existing data is no longer valid. */ + scn->data_list_rear = NULL; + if (scn->data_base != scn->rawdata_base) + free (scn->data_base); + scn->data_base = NULL; + if (scn->elf->map_address == NULL + || scn->rawdata_base == scn->zdata_base) + free (scn->rawdata_base); + + scn->rawdata_base = buf; +} + +int +elf_compress (Elf_Scn *scn, int type, unsigned int flags) +{ + if (scn == NULL) + return -1; + + if ((flags & ~ELF_CHF_FORCE) != 0) + { + __libelf_seterrno (ELF_E_INVALID_OPERAND); + return -1; + } + + bool force = (flags & ELF_CHF_FORCE) != 0; + + Elf *elf = scn->elf; + GElf_Ehdr ehdr; + if (gelf_getehdr (elf, &ehdr) == NULL) + return -1; + + int elfclass = elf->class; + int elfdata = ehdr.e_ident[EI_DATA]; + + Elf64_Xword sh_flags; + Elf64_Word sh_type; + Elf64_Xword sh_addralign; + if (elfclass == ELFCLASS32) + { + Elf32_Shdr *shdr = elf32_getshdr (scn); + if (shdr == NULL) + return -1; + + sh_flags = shdr->sh_flags; + sh_type = shdr->sh_type; + sh_addralign = shdr->sh_addralign; + } + else + { + Elf64_Shdr *shdr = elf64_getshdr (scn); + if (shdr == NULL) + return -1; + + sh_flags = shdr->sh_flags; + sh_type = shdr->sh_type; + sh_addralign = shdr->sh_addralign; + } + + if ((sh_flags & SHF_ALLOC) != 0) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS); + return -1; + } + + if (sh_type == SHT_NULL || sh_type == SHT_NOBITS) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE); + return -1; + } + + int compressed = (sh_flags & SHF_COMPRESSED); + if (type == ELFCOMPRESS_ZLIB) + { + /* Compress/Deflate. */ + if (compressed == 1) + { + __libelf_seterrno (ELF_E_ALREADY_COMPRESSED); + return -1; + } + + size_t hsize = (elfclass == ELFCLASS32 + ? sizeof (Elf32_Chdr) : sizeof (Elf64_Chdr)); + size_t orig_size, orig_addralign, new_size; + void *out_buf = __libelf_compress (scn, hsize, elfdata, + &orig_size, &orig_addralign, + &new_size, force); + + /* Compression would make section larger, don't change anything. */ + if (out_buf == (void *) -1) + return 0; + + /* Compression failed, return error. */ + if (out_buf == NULL) + return -1; + + /* Put the header in front of the data. */ + if (elfclass == ELFCLASS32) + { + Elf32_Chdr chdr; + chdr.ch_type = ELFCOMPRESS_ZLIB; + chdr.ch_size = orig_size; + chdr.ch_addralign = orig_addralign; + if (elfdata != MY_ELFDATA) + { + CONVERT (chdr.ch_type); + CONVERT (chdr.ch_size); + CONVERT (chdr.ch_addralign); + } + memcpy (out_buf, &chdr, sizeof (Elf32_Chdr)); + } + else + { + Elf64_Chdr chdr; + chdr.ch_type = ELFCOMPRESS_ZLIB; + chdr.ch_reserved = 0; + chdr.ch_size = orig_size; + chdr.ch_addralign = sh_addralign; + if (elfdata != MY_ELFDATA) + { + CONVERT (chdr.ch_type); + CONVERT (chdr.ch_reserved); + CONVERT (chdr.ch_size); + CONVERT (chdr.ch_addralign); + } + memcpy (out_buf, &chdr, sizeof (Elf64_Chdr)); + } + + /* Note we keep the sh_entsize as is, we assume it is setup + correctly and ignored when SHF_COMPRESSED is set. */ + if (elfclass == ELFCLASS32) + { + Elf32_Shdr *shdr = elf32_getshdr (scn); + shdr->sh_size = new_size; + shdr->sh_addralign = 1; + shdr->sh_flags |= SHF_COMPRESSED; + } + else + { + Elf64_Shdr *shdr = elf64_getshdr (scn); + shdr->sh_size = new_size; + shdr->sh_addralign = 1; + shdr->sh_flags |= SHF_COMPRESSED; + } + + __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_CHDR); + + /* The section is now compressed, we could keep the uncompressed + data around, but since that might have been multiple Elf_Data + buffers let the user uncompress it explicitly again if they + want it to simplify bookkeeping. */ + scn->zdata_base = NULL; + + return 1; + } + else if (type == 0) + { + /* Decompress/Inflate. */ + if (compressed == 0) + { + __libelf_seterrno (ELF_E_NOT_COMPRESSED); + return -1; + } + + GElf_Chdr chdr; + if (gelf_getchdr (scn, &chdr) == NULL) + return -1; + + if (chdr.ch_type != ELFCOMPRESS_ZLIB) + { + __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE); + return -1; + } + + if (! powerof2 (chdr.ch_addralign)) + { + __libelf_seterrno (ELF_E_INVALID_ALIGN); + return -1; + } + + /* Take the in-memory representation, so we can even handle a + section that has just been constructed (maybe it was copied + over from some other ELF file first with elf_newdata). This + is slightly inefficient when the raw data needs to be + converted since then we'll be converting the whole buffer and + not just Chdr. */ + Elf_Data *data = elf_getdata (scn, NULL); + if (data == NULL) + return -1; + + size_t hsize = (elfclass == ELFCLASS32 + ? sizeof (Elf32_Chdr) : sizeof (Elf64_Chdr)); + size_t size_in = data->d_size - hsize; + void *buf_in = data->d_buf + hsize; + void *buf_out = __libelf_decompress (buf_in, size_in, chdr.ch_size); + if (buf_out == NULL) + return -1; + + /* Note we keep the sh_entsize as is, we assume it is setup + correctly and ignored when SHF_COMPRESSED is set. */ + if (elfclass == ELFCLASS32) + { + Elf32_Shdr *shdr = elf32_getshdr (scn); + shdr->sh_size = chdr.ch_size; + shdr->sh_addralign = chdr.ch_addralign; + shdr->sh_flags &= ~SHF_COMPRESSED; + } + else + { + Elf64_Shdr *shdr = elf64_getshdr (scn); + shdr->sh_size = chdr.ch_size; + shdr->sh_addralign = chdr.ch_addralign; + shdr->sh_flags &= ~SHF_COMPRESSED; + } + + __libelf_reset_rawdata (scn, buf_out, chdr.ch_size, chdr.ch_addralign, + __libelf_data_type (elf, sh_type)); + + scn->zdata_base = buf_out; + + return 1; + } + else + { + __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE); + return -1; + } +} diff --git a/libelf/elf_compress_gnu.c b/libelf/elf_compress_gnu.c new file mode 100644 index 00000000..c35dc395 --- /dev/null +++ b/libelf/elf_compress_gnu.c @@ -0,0 +1,208 @@ +/* Compress or decompress a section. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include "libelfP.h" +#include "common.h" + +int +elf_compress_gnu (Elf_Scn *scn, int inflate, unsigned int flags) +{ + if (scn == NULL) + return -1; + + if ((flags & ~ELF_CHF_FORCE) != 0) + { + __libelf_seterrno (ELF_E_INVALID_OPERAND); + return -1; + } + + bool force = (flags & ELF_CHF_FORCE) != 0; + + Elf *elf = scn->elf; + GElf_Ehdr ehdr; + if (gelf_getehdr (elf, &ehdr) == NULL) + return -1; + + int elfclass = elf->class; + int elfdata = ehdr.e_ident[EI_DATA]; + + Elf64_Xword sh_flags; + Elf64_Word sh_type; + Elf64_Xword sh_addralign; + if (elfclass == ELFCLASS32) + { + Elf32_Shdr *shdr = elf32_getshdr (scn); + if (shdr == NULL) + return -1; + + sh_flags = shdr->sh_flags; + sh_type = shdr->sh_type; + sh_addralign = shdr->sh_addralign; + } + else + { + Elf64_Shdr *shdr = elf64_getshdr (scn); + if (shdr == NULL) + return -1; + + sh_flags = shdr->sh_flags; + sh_type = shdr->sh_type; + sh_addralign = shdr->sh_addralign; + } + + if ((sh_flags & SHF_ALLOC) != 0) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS); + return -1; + } + + if (sh_type == SHT_NULL || sh_type == SHT_NOBITS) + { + __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE); + return -1; + } + + /* For GNU compression we cannot really know whether the section is + already compressed or not. Just try and see what happens... */ + // int compressed = (sh_flags & SHF_COMPRESSED); + if (inflate == 1) + { + size_t hsize = 4 + 8; /* GNU "ZLIB" + 8 byte size. */ + size_t orig_size, new_size, orig_addralign; + void *out_buf = __libelf_compress (scn, hsize, elfdata, + &orig_size, &orig_addralign, + &new_size, force); + + /* Compression would make section larger, don't change anything. */ + if (out_buf == (void *) -1) + return 0; + + /* Compression failed, return error. */ + if (out_buf == NULL) + return -1; + + uint64_t be64_size = htobe64 (orig_size); + memmove (out_buf, "ZLIB", 4); + memmove (out_buf + 4, &be64_size, sizeof (be64_size)); + + /* We don't know anything about sh_entsize, sh_addralign and + sh_flags won't have a SHF_COMPRESSED hint in the GNU format. + Just adjust the sh_size. */ + if (elfclass == ELFCLASS32) + { + Elf32_Shdr *shdr = elf32_getshdr (scn); + shdr->sh_size = new_size; + } + else + { + Elf64_Shdr *shdr = elf64_getshdr (scn); + shdr->sh_size = new_size; + } + + __libelf_reset_rawdata (scn, out_buf, new_size, 1, ELF_T_BYTE); + + /* The section is now compressed, we could keep the uncompressed + data around, but since that might have been multiple Elf_Data + buffers let the user uncompress it explicitly again if they + want it to simplify bookkeeping. */ + scn->zdata_base = NULL; + + return 1; + } + else if (inflate == 0) + { + /* In theory the user could have constucted a compressed section + by hand. But we always just take the rawdata directly and + decompress that. */ + Elf_Data *data = elf_rawdata (scn, NULL); + if (data == NULL) + return -1; + + size_t hsize = 4 + 8; /* GNU "ZLIB" + 8 byte size. */ + if (data->d_size < hsize || memcmp (data->d_buf, "ZLIB", 4) != 0) + { + __libelf_seterrno (ELF_E_NOT_COMPRESSED); + return -1; + } + + /* There is a 12-byte header of "ZLIB" followed by + an 8-byte big-endian size. There is only one type and + Alignment isn't preserved separately. */ + uint64_t gsize; + memcpy (&gsize, data->d_buf + 4, sizeof gsize); + gsize = be64toh (gsize); + + /* One more sanity check, size should be bigger than original + data size plus some overhead (4 chars ZLIB + 8 bytes size + 6 + bytes zlib stream overhead + 5 bytes overhead max for one 16K + block) and should fit into a size_t. */ + if (gsize + 4 + 8 + 6 + 5 < data->d_size || gsize > SIZE_MAX) + { + __libelf_seterrno (ELF_E_NOT_COMPRESSED); + return -1; + } + + size_t size = gsize; + size_t size_in = data->d_size - hsize; + void *buf_in = data->d_buf + hsize; + void *buf_out = __libelf_decompress (buf_in, size_in, size); + if (buf_out == NULL) + return -1; + + /* We don't know anything about sh_entsize, sh_addralign and + sh_flags won't have a SHF_COMPRESSED hint in the GNU format. + Just adjust the sh_size. */ + if (elfclass == ELFCLASS32) + { + Elf32_Shdr *shdr = elf32_getshdr (scn); + shdr->sh_size = size; + } + else + { + Elf64_Shdr *shdr = elf64_getshdr (scn); + shdr->sh_size = size; + } + + __libelf_reset_rawdata (scn, buf_out, size, sh_addralign, + __libelf_data_type (elf, sh_type)); + + scn->zdata_base = buf_out; + + return 1; + } + else + { + __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE); + return -1; + } +} diff --git a/libelf/elf_end.c b/libelf/elf_end.c index 7ea876c3..fde17b50 100644 --- a/libelf/elf_end.c +++ b/libelf/elf_end.c @@ -150,6 +150,12 @@ elf_end (Elf *elf) /* It doesn't matter which pointer. */ free (scn->shdr.e32); + /* Free zdata if uncompressed, but not yet used as + rawdata_base. If it is already used it will be + freed below. */ + if (scn->zdata_base != scn->rawdata_base) + free (scn->zdata_base); + /* If the file has the same byte order and the architecture doesn't require overly stringent alignment the raw data buffer is the same as the @@ -158,8 +164,9 @@ elf_end (Elf *elf) free (scn->data_base); /* The section data is allocated if we couldn't mmap - the file. */ - if (elf->map_address == NULL) + the file. Or if we had to decompress. */ + if (elf->map_address == NULL + || scn->rawdata_base == scn->zdata_base) free (scn->rawdata_base); /* Free the list of data buffers for the section. diff --git a/libelf/elf_error.c b/libelf/elf_error.c index d97e3bd6..888b389a 100644 --- a/libelf/elf_error.c +++ b/libelf/elf_error.c @@ -245,6 +245,26 @@ core files") (ELF_E_INVALID_SECTION_FLAGS_IDX \ + sizeof "invalid section flags") N_("section does not contain compressed data") + "\0" +#define ELF_E_ALREADY_COMPRESSED_IDX \ + (ELF_E_NOT_COMPRESSED_IDX \ + + sizeof "section does not contain compressed data") + N_("section contains compressed data") + "\0" +#define ELF_E_UNKNOWN_COMPRESSION_TYPE_IDX \ + (ELF_E_ALREADY_COMPRESSED_IDX \ + + sizeof "section contains compressed data") + N_("unknown compression type") + "\0" +#define ELF_E_COMPRESS_ERROR_IDX \ + (ELF_E_UNKNOWN_COMPRESSION_TYPE_IDX \ + + sizeof "unknown compression type") + N_("cannot compress data") + "\0" +#define ELF_E_DECOMPRESS_ERROR_IDX \ + (ELF_E_COMPRESS_ERROR_IDX \ + + sizeof "cannot compress data") + N_("cannot decompress data") }; @@ -295,7 +315,11 @@ static const uint_fast16_t msgidx[ELF_E_NUM] = [ELF_E_INVALID_OFFSET] = ELF_E_INVALID_OFFSET_IDX, [ELF_E_INVALID_SECTION_TYPE] = ELF_E_INVALID_SECTION_TYPE_IDX, [ELF_E_INVALID_SECTION_FLAGS] = ELF_E_INVALID_SECTION_FLAGS_IDX, - [ELF_E_NOT_COMPRESSED] = ELF_E_NOT_COMPRESSED_IDX + [ELF_E_NOT_COMPRESSED] = ELF_E_NOT_COMPRESSED_IDX, + [ELF_E_ALREADY_COMPRESSED] = ELF_E_ALREADY_COMPRESSED_IDX, + [ELF_E_UNKNOWN_COMPRESSION_TYPE] = ELF_E_UNKNOWN_COMPRESSION_TYPE_IDX, + [ELF_E_COMPRESS_ERROR] = ELF_E_COMPRESS_ERROR_IDX, + [ELF_E_DECOMPRESS_ERROR] = ELF_E_DECOMPRESS_ERROR_IDX }; #define nmsgidx ((int) (sizeof (msgidx) / sizeof (msgidx[0]))) diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c index bd1f0682..4ec94b98 100644 --- a/libelf/elf_getdata.c +++ b/libelf/elf_getdata.c @@ -118,6 +118,22 @@ const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_T_NUM] #endif +Elf_Type +internal_function +__libelf_data_type (Elf *elf, int sh_type) +{ + /* Some broken ELF ABI for 64-bit machines use the wrong hash table + entry size. See elf-knowledge.h for more information. */ + if (sh_type == SHT_HASH && elf->class == ELFCLASS64) + { + GElf_Ehdr ehdr_mem; + GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem); + return (SH_ENTSIZE_HASH (ehdr) == 4 ? ELF_T_WORD : ELF_T_XWORD); + } + else + return shtype_map[LIBELF_EV_IDX][TYPEIDX (sh_type)]; +} + /* Convert the data in the current section. */ static void convert_data (Elf_Scn *scn, int version __attribute__ ((unused)), int eclass, @@ -332,17 +348,8 @@ __libelf_set_rawdata_wrlock (Elf_Scn *scn) section type. */ if ((flags & SHF_COMPRESSED) != 0) scn->rawdata.d.d_type = ELF_T_CHDR; - else if (type == SHT_HASH && elf->class == ELFCLASS64) - { - /* Some broken ELF ABI for 64-bit machines use the wrong hash table - entry size. See elf-knowledge.h for more information. */ - GElf_Ehdr ehdr_mem; - GElf_Ehdr *ehdr = __gelf_getehdr_rdlock (elf, &ehdr_mem); - scn->rawdata.d.d_type - = (SH_ENTSIZE_HASH (ehdr) == 4 ? ELF_T_WORD : ELF_T_XWORD); - } else - scn->rawdata.d.d_type = shtype_map[LIBELF_EV_IDX][TYPEIDX (type)]; + scn->rawdata.d.d_type = __libelf_data_type (elf, type); scn->rawdata.d.d_off = 0; /* Make sure the alignment makes sense. d_align should be aligned both diff --git a/libelf/libelf.h b/libelf/libelf.h index 49234c8a..364e7767 100644 --- a/libelf/libelf.h +++ b/libelf/libelf.h @@ -117,6 +117,12 @@ enum #define ELF_F_PERMISSIVE ELF_F_PERMISSIVE }; +/* Flags for elf_compress[_gnu]. */ +enum +{ + ELF_CHF_FORCE = 0x1 +#define ELF_CHF_FORCE ELF_CHF_FORCE +}; /* Identification values for recognized object files. */ typedef enum @@ -274,6 +280,57 @@ extern Elf64_Shdr *elf64_getshdr (Elf_Scn *__scn); extern Elf32_Chdr *elf32_getchdr (Elf_Scn *__scn); extern Elf64_Chdr *elf64_getchdr (Elf_Scn *__scn); +/* Compress or decompress the data of a section and adjust the section + header. + + elf_compress works by setting or clearing the SHF_COMPRESS flag + from the section Shdr and will encode or decode a Elf32_Chdr or + Elf64_Chdr at the start of the section data. elf_compress_gnu will + encode or decode any section, but is traditionally only used for + sections that have a name starting with ".debug" when + uncompressed or ".zdebug" when compressed and stores just the + uncompressed size. The GNU compression method is deprecated and + should only be used for legacy support. + + elf_compress takes a compression type that should be either zero to + decompress or an ELFCOMPRESS algorithm to use for compression. + Currently only ELFCOMPRESS_ZLIB is supported. elf_compress_gnu + will compress in the traditional GNU compression format when + compress is one and decompress the section data when compress is + zero. + + The FLAGS argument can be zero or ELF_CHF_FORCE. If FLAGS contains + ELF_CHF_FORCE then it will always compress the section, even if + that would not reduce the size of the data section (including the + header). Otherwise elf_compress and elf_compress_gnu will compress + the section only if the total data size is reduced. + + On successful compression or decompression the function returns + one. If (not forced) compression is requested and the data section + would not actually reduce in size, the section is not actually + compressed and zero is returned. Otherwise -1 is returned and + elf_errno is set. + + It is an error to request compression for a section that already + has SHF_COMPRESSED set, or (for elf_compress) to request + decompression for an section that doesn't have SHF_COMPRESSED set. + It is always an error to call these functions on SHT_NOBITS + sections or if the section has the SHF_ALLOC flag set. + elf_compress_gnu will not check whether the section name starts + with ".debug" or .zdebug". It is the responsibilty of the caller + to make sure the deprecated GNU compression method is only called + on correctly named sections (and to change the name of the section + when using elf_compress_gnu). + + All previous returned Shdrs and Elf_Data buffers are invalidated by + this call and should no longer be accessed. + + Note that although this changes the header and data returned it + doesn't mark the section as dirty. To keep the changes when + calling elf_update the section has to be flagged ELF_F_DIRTY. */ +extern int elf_compress (Elf_Scn *scn, int type, unsigned int flags); +extern int elf_compress_gnu (Elf_Scn *scn, int compress, unsigned int flags); + /* Set or clear flags for ELF file. */ extern unsigned int elf_flagelf (Elf *__elf, Elf_Cmd __cmd, unsigned int __flags); @@ -294,8 +351,11 @@ extern unsigned int elf_flagshdr (Elf_Scn *__scn, Elf_Cmd __cmd, unsigned int __flags); -/* Get data from section while translating from file representation - to memory representation. */ +/* Get data from section while translating from file representation to + memory representation. The Elf_Data d_type is set based on the + section type if known. Otherwise d_type is set to ELF_T_BYTE. If + the section contains compressed data then d_type is always set to + ELF_T_CHDR. */ extern Elf_Data *elf_getdata (Elf_Scn *__scn, Elf_Data *__data); /* Get uninterpreted section content. */ diff --git a/libelf/libelf.map b/libelf/libelf.map index d402ccc0..10dc5059 100644 --- a/libelf/libelf.map +++ b/libelf/libelf.map @@ -144,4 +144,7 @@ ELFUTILS_1.7 { elf32_getchdr; elf64_getchdr; gelf_getchdr; -} ELFUTILS_1.6; \ No newline at end of file + + elf_compress; + elf_compress_gnu; +} ELFUTILS_1.6; diff --git a/libelf/libelfP.h b/libelf/libelfP.h index 8ff8478c..50f92174 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -141,6 +142,10 @@ enum ELF_E_INVALID_SECTION_TYPE, ELF_E_INVALID_SECTION_FLAGS, ELF_E_NOT_COMPRESSED, + ELF_E_ALREADY_COMPRESSED, + ELF_E_UNKNOWN_COMPRESSION_TYPE, + ELF_E_COMPRESS_ERROR, + ELF_E_DECOMPRESS_ERROR, /* Keep this as the last entry. */ ELF_E_NUM }; @@ -233,6 +238,8 @@ struct Elf_Scn char *rawdata_base; /* The unmodified data of the section. */ char *data_base; /* The converted data of the section. */ + char *zdata_base; /* The uncompressed data of the section. */ + struct Elf_ScnList *list; /* Pointer to the section list element the data is in. */ }; @@ -441,6 +448,11 @@ extern const uint_fast8_t __libelf_type_aligns[EV_NUM - 1][ELFCLASSNUM - 1][ELF_ # define __libelf_type_align(class, type) 1 #endif +/* Given an Elf handle and a section type returns the Elf_Data d_type. + Should not be called when SHF_COMPRESSED is set, the d_type should + be ELF_T_BYTE. */ +extern Elf_Type __libelf_data_type (Elf *elf, int sh_type) internal_function; + /* The libelf API does not have such a function but it is still useful. Get the memory size for the given type. @@ -581,6 +593,18 @@ extern GElf_Sym *__gelf_getsym_internal (Elf_Data *__data, int __ndx, extern uint32_t __libelf_crc32 (uint32_t crc, unsigned char *buf, size_t len) attribute_hidden; +extern void * __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data, + size_t *orig_size, size_t *orig_addralign, + size_t *size, bool force) + internal_function; + +extern void * __libelf_decompress (void *buf_in, size_t size_in, + size_t size_out) internal_function; + +extern void __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, + size_t align, Elf_Type type) + internal_function; + /* We often have to update a flag iff a value changed. Make this convenient. */ diff --git a/tests/ChangeLog b/tests/ChangeLog index d9b92d3b..25407c22 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,18 @@ +2015-10-21 Mark Wielaard + + * Makefile.am (check_PROGRAMS): Add elfgetzdata and elfputzdata. + (TESTS): Add run-elfgetzdata.sh and run-elfputzdata.sh. + (EXTRA_DIST: Likewise. + (elfgetzdata_LDADD): New variable. + (elfputzdata_LDADD): Likewise. + * elfgetzdata.c: New file. + * elfputzdata.c: Likewise. + * msg_tst.c: Handle ELF_E_ALREADY_COMPRESSED, + ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and + ELF_E_DECOMPRESS_ERROR. + * run-elfgetzdata.sh: New test. + * run-elfputzdata.sh: Likewise. + 2015-10-28 Mark Wielaard * run-readelf-z.sh: New test. diff --git a/tests/Makefile.am b/tests/Makefile.am index 8ebb687b..5131cd05 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,8 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ backtrace-data backtrace-dwarf debuglink debugaltlink \ buildid deleted deleted-lib.so aggregate_size vdsosyms \ getsrc_die strptr newdata elfstrtab dwfl-proc-attach \ - elfshphehdr elfstrmerge dwelfgnucompressed elfgetchdr + elfshphehdr elfstrmerge dwelfgnucompressed elfgetchdr \ + elfgetzdata elfputzdata asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -121,7 +122,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-linkmap-cut.sh run-aggregate-size.sh vdsosyms run-readelf-A.sh \ run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \ elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh \ - run-elfgetchdr.sh + run-elfgetchdr.sh \ + run-elfgetzdata.sh run-elfputzdata.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -314,7 +316,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-dwelfgnucompressed.sh \ testfile-zgabi32.bz2 testfile-zgabi64.bz2 \ testfile-zgabi32be.bz2 testfile-zgabi64be.bz2 \ - run-elfgetchdr.sh + run-elfgetchdr.sh run-elfgetzdata.sh run-elfputzdata.sh if USE_VALGRIND valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1' @@ -465,6 +467,8 @@ elfshphehdr_LDADD =$(libelf) elfstrmerge_LDADD = $(libebl) $(libelf) dwelfgnucompressed_LDADD = $(libelf) $(libdw) elfgetchdr_LDADD = $(libelf) $(libdw) +elfgetzdata_LDADD = $(libelf) +elfputzdata_LDADD = $(libelf) if GCOV check: check-am coverage diff --git a/tests/elfgetzdata.c b/tests/elfgetzdata.c new file mode 100644 index 00000000..82afbe52 --- /dev/null +++ b/tests/elfgetzdata.c @@ -0,0 +1,113 @@ +/* Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +int +main (int argc, char *argv[]) +{ + int result = 0; + int cnt; + + if (argc < 3 + || (strcmp (argv[1], "read") != 0 + && strcmp (argv[1], "mmap") != 0)) + { + printf ("Usage: (read|mmap) files...\n"); + return -1; + } + + bool mmap = strcmp (argv[1], "mmap") == 0; + + elf_version (EV_CURRENT); + + for (cnt = 2; cnt < argc; ++cnt) + { + int fd = open (argv[cnt], O_RDONLY); + + Elf *elf = elf_begin (fd, mmap ? ELF_C_READ_MMAP : ELF_C_READ, NULL); + if (elf == NULL) + { + printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1)); + result = 1; + close (fd); + continue; + } + + /* To get the section names. */ + size_t strndx; + elf_getshdrstrndx (elf, &strndx); + + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + size_t idx = elf_ndxscn (scn); + GElf_Shdr mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &mem); + const char *name = elf_strptr (elf, strndx, shdr->sh_name); + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + /* Real compressed section. */ + if (elf_compress (scn, 0, 0) < 0) + { + printf ("elf_compress failed for section %zd: %s\n", + idx, elf_errmsg (-1)); + return -1; + } + Elf_Data *d = elf_getdata (scn, NULL); + printf ("%zd: %s, ELF compressed, size: %zx\n", + idx, name, d->d_size); + } + else + { + /* Maybe an old GNU compressed .z section? */ + if (name[0] == '.' && name[1] == 'z') + { + if (elf_compress_gnu (scn, 0, 0) < 0) + { + printf ("elf_compress_gnu failed for section %zd: %s\n", + idx, elf_errmsg (-1)); + return -1; + } + Elf_Data *d = elf_getdata (scn, NULL); + printf ("%zd: %s, GNU compressed, size: %zx\n", + idx, name, d->d_size); + } + else + printf ("%zd: %s, NOT compressed\n", idx, name); + } + } + + elf_end (elf); + close (fd); + } + + return result; +} diff --git a/tests/elfputzdata.c b/tests/elfputzdata.c new file mode 100644 index 00000000..65654f88 --- /dev/null +++ b/tests/elfputzdata.c @@ -0,0 +1,232 @@ +/* Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +int +main (int argc, char *argv[]) +{ + int result = 0; + int cnt; + + if (argc < 3 + || (strcmp (argv[1], "elf") != 0 + && strcmp (argv[1], "gnu") != 0)) + { + printf ("Usage: (elf|gnu) files...\n"); + return -1; + } + + int gnu; + if (strcmp (argv[1], "gnu") == 0) + gnu = 1; + else + gnu = 0; + + elf_version (EV_CURRENT); + + for (cnt = 2; cnt < argc; ++cnt) + { + int fd = open (argv[cnt], O_RDONLY); + + Elf *elf = elf_begin (fd, ELF_C_READ, NULL); + if (elf == NULL) + { + printf ("%s not usable %s\n", argv[cnt], elf_errmsg (-1)); + result = 1; + close (fd); + continue; + } + + /* To get the section names. */ + size_t strndx; + elf_getshdrstrndx (elf, &strndx); + + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + size_t idx = elf_ndxscn (scn); + GElf_Shdr mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &mem); + const char *name = elf_strptr (elf, strndx, shdr->sh_name); + if (idx == strndx) + { + printf ("Not compressing section string table %zd\n", idx); + } + else if (shdr->sh_type == SHT_NOBITS + || (shdr->sh_flags & SHF_ALLOC) != 0) + { + printf ("Cannot compress %zd %s\n", idx, name); + } + else if ((shdr->sh_flags & SHF_COMPRESSED) != 0 + || strncmp (name, ".zdebug", strlen (".zdebug") == 0)) + { + printf ("Already compressed %zd %s\n", idx, name); + } + else + { + size_t orig_size = shdr->sh_size; + printf ("Lets compress %zd %s, size: %zd\n", + idx, name, shdr->sh_size); + Elf_Data *d = elf_getdata (scn, NULL); + if (d == NULL) + { + printf ("Couldn't get orig data for section %zd\n", idx); + return -1; + } + /* Make a copy so we can compare after + compression/decompression. */ + if (d->d_size != orig_size) + { + printf ("Unexpected data size for orig section %zd\n", idx); + return -1; + } + char *orig_buf = malloc (d->d_size); + if (orig_size > 0 && orig_buf == NULL) + { + printf ("No memory to copy section %zd data\n", idx); + return -1; + } + if (orig_size > 0) + memcpy (orig_buf, d->d_buf, orig_size); + + bool forced = false; + if (gnu) + { + int res = elf_compress_gnu (scn, 1, 0); + if (res == 0) + { + forced = true; + res = elf_compress_gnu (scn, 1, ELF_CHF_FORCE); + } + if (res < 0) + { + printf ("elf_compress_gnu%sfailed for section %zd: %s\n", + forced ? " (forced) " : " ", + idx, elf_errmsg (-1)); + return -1; + } + } + else + { + int res = elf_compress (scn, ELFCOMPRESS_ZLIB, 0); + if (res == 0) + { + forced = true; + res = elf_compress (scn, ELFCOMPRESS_ZLIB, ELF_CHF_FORCE); + } + if (res < 0) + { + printf ("elf_compress%sfailed for section %zd: %s\n", + forced ? " (forced) " : " ", + idx, elf_errmsg (-1)); + return -1; + } + } + GElf_Shdr newmem; + GElf_Shdr *newshdr = gelf_getshdr (scn, &newmem); + size_t new_size = newshdr->sh_size; + d = elf_getdata (scn, NULL); + // Don't check this, might depend on zlib implementation. + // fprintf (stderr, " new_size: %zd\n", new_size); + if (d->d_size != new_size) + { + printf ("Unexpected data size for compressed section %zd\n", + idx); + return -1; + } + + if (forced && new_size < orig_size) + { + printf ("section %zd forced to compress, but size smaller\n", + idx); + return -1; + } + + if (! forced && new_size >= orig_size) + { + printf ("section %zd compressed to bigger size\n", + idx); + return -1; + } + + if (new_size == orig_size + && memcmp (orig_buf, d->d_buf, orig_size) == 0) + { + printf ("section %zd didn't compress\n", idx); + return -1; + } + + if (gnu) + { + if (elf_compress_gnu (scn, 0, 0) < 0) + { + printf ("elf_[un]compress_gnu failed for section %zd: %s\n", + idx, elf_errmsg (-1)); + return -1; + } + } + else + { + if (elf_compress (scn, 0, 0) < 0) + { + printf ("elf_[un]compress failed for section %zd: %s\n", + idx, elf_errmsg (-1)); + return -1; + } + } + GElf_Shdr newermem; + GElf_Shdr *newershdr = gelf_getshdr (scn, &newermem); + size_t newer_size = newershdr->sh_size; + d = elf_getdata (scn, NULL); + // fprintf (stderr, " newer_size: %zd\n", newer_size); + if (d->d_size != newer_size) + { + printf ("Unexpected data size for compressed section %zd\n", + idx); + return -1; + } + if (newer_size != orig_size + && memcmp (orig_buf, d->d_buf, orig_size) != 0) + { + printf ("section %zd didn't correctly uncompress\n", idx); + return -1; + } + free (orig_buf); + } + } + + elf_end (elf); + close (fd); + } + + return result; +} diff --git a/tests/msg_tst.c b/tests/msg_tst.c index 539c5ddb..7baea0a2 100644 --- a/tests/msg_tst.c +++ b/tests/msg_tst.c @@ -77,7 +77,11 @@ and core files" }, { ELF_E_INVALID_OFFSET, "invalid offset" }, { ELF_E_INVALID_SECTION_TYPE , "invalid section type" }, { ELF_E_INVALID_SECTION_FLAGS , "invalid section flags" }, - { ELF_E_NOT_COMPRESSED, "section does not contain compressed data" } + { ELF_E_NOT_COMPRESSED, "section does not contain compressed data" }, + { ELF_E_ALREADY_COMPRESSED, "section contains compressed data" }, + { ELF_E_UNKNOWN_COMPRESSION_TYPE, "unknown compression type" }, + { ELF_E_COMPRESS_ERROR, "cannot compress data" }, + { ELF_E_DECOMPRESS_ERROR, "cannot decompress data" } }; diff --git a/tests/run-elfgetzdata.sh b/tests/run-elfgetzdata.sh new file mode 100755 index 00000000..e2df3081 --- /dev/null +++ b/tests/run-elfgetzdata.sh @@ -0,0 +1,214 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# See run-elfgetchdr.sh for testfiles. + +testfiles testfile-zgnu64 +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu64 <<\EOF +1: .text, NOT compressed +2: .zdebug_aranges, GNU compressed, size: 60 +3: .zdebug_info, GNU compressed, size: aa +4: .debug_abbrev, NOT compressed +5: .zdebug_line, GNU compressed, size: 8d +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu64 <<\EOF +1: .text, NOT compressed +2: .zdebug_aranges, GNU compressed, size: 60 +3: .zdebug_info, GNU compressed, size: aa +4: .debug_abbrev, NOT compressed +5: .zdebug_line, GNU compressed, size: 8d +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testfiles testfile-zgnu64be +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu64be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .zdebug_aranges, GNU compressed, size: 60 +4: .zdebug_info, GNU compressed, size: 7e +5: .debug_abbrev, NOT compressed +6: .zdebug_line, GNU compressed, size: 8d +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu64be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .zdebug_aranges, GNU compressed, size: 60 +4: .zdebug_info, GNU compressed, size: 7e +5: .debug_abbrev, NOT compressed +6: .zdebug_line, GNU compressed, size: 8d +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testfiles testfile-zgabi64 +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi64 <<\EOF +1: .text, NOT compressed +2: .debug_aranges, ELF compressed, size: 60 +3: .debug_info, ELF compressed, size: aa +4: .debug_abbrev, NOT compressed +5: .debug_line, ELF compressed, size: 8d +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi64 <<\EOF +1: .text, NOT compressed +2: .debug_aranges, ELF compressed, size: 60 +3: .debug_info, ELF compressed, size: aa +4: .debug_abbrev, NOT compressed +5: .debug_line, ELF compressed, size: 8d +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testfiles testfile-zgabi64be +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi64be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .debug_aranges, ELF compressed, size: 60 +4: .debug_info, ELF compressed, size: 7e +5: .debug_abbrev, NOT compressed +6: .debug_line, ELF compressed, size: 8d +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi64be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .debug_aranges, ELF compressed, size: 60 +4: .debug_info, ELF compressed, size: 7e +5: .debug_abbrev, NOT compressed +6: .debug_line, ELF compressed, size: 8d +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testfiles testfile-zgnu32 +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu32 <<\EOF +1: .text, NOT compressed +2: .zdebug_aranges, GNU compressed, size: 40 +3: .zdebug_info, GNU compressed, size: 9a +4: .debug_abbrev, NOT compressed +5: .zdebug_line, GNU compressed, size: 85 +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu32 <<\EOF +1: .text, NOT compressed +2: .zdebug_aranges, GNU compressed, size: 40 +3: .zdebug_info, GNU compressed, size: 9a +4: .debug_abbrev, NOT compressed +5: .zdebug_line, GNU compressed, size: 85 +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testfiles testfile-zgnu32be +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgnu32be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .zdebug_aranges, GNU compressed, size: 40 +4: .zdebug_info, GNU compressed, size: 6e +5: .debug_abbrev, NOT compressed +6: .zdebug_line, GNU compressed, size: 85 +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgnu32be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .zdebug_aranges, GNU compressed, size: 40 +4: .zdebug_info, GNU compressed, size: 6e +5: .debug_abbrev, NOT compressed +6: .zdebug_line, GNU compressed, size: 85 +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testfiles testfile-zgabi32 +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi32 <<\EOF +1: .text, NOT compressed +2: .debug_aranges, ELF compressed, size: 40 +3: .debug_info, ELF compressed, size: 9a +4: .debug_abbrev, NOT compressed +5: .debug_line, ELF compressed, size: 85 +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi32 <<\EOF +1: .text, NOT compressed +2: .debug_aranges, ELF compressed, size: 40 +3: .debug_info, ELF compressed, size: 9a +4: .debug_abbrev, NOT compressed +5: .debug_line, ELF compressed, size: 85 +6: .shstrtab, NOT compressed +7: .symtab, NOT compressed +8: .strtab, NOT compressed +EOF + +testfiles testfile-zgabi32be +testrun_compare ${abs_top_builddir}/tests/elfgetzdata read testfile-zgabi32be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .debug_aranges, ELF compressed, size: 40 +4: .debug_info, ELF compressed, size: 6e +5: .debug_abbrev, NOT compressed +6: .debug_line, ELF compressed, size: 85 +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +testrun_compare ${abs_top_builddir}/tests/elfgetzdata mmap testfile-zgabi32be <<\EOF +1: .text, NOT compressed +2: .eh_frame, NOT compressed +3: .debug_aranges, ELF compressed, size: 40 +4: .debug_info, ELF compressed, size: 6e +5: .debug_abbrev, NOT compressed +6: .debug_line, ELF compressed, size: 85 +7: .shstrtab, NOT compressed +8: .symtab, NOT compressed +9: .strtab, NOT compressed +EOF + +exit 0 diff --git a/tests/run-elfputzdata.sh b/tests/run-elfputzdata.sh new file mode 100755 index 00000000..e9a352e5 --- /dev/null +++ b/tests/run-elfputzdata.sh @@ -0,0 +1,340 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# Random ELF32 testfile +testfiles testfile4 + +testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfile4 <<\EOF +Cannot compress 1 .interp +Cannot compress 2 .note.ABI-tag +Cannot compress 3 .hash +Cannot compress 4 .dynsym +Cannot compress 5 .dynstr +Cannot compress 6 .gnu.version +Cannot compress 7 .gnu.version_r +Cannot compress 8 .rel.got +Cannot compress 9 .rel.plt +Cannot compress 10 .init +Cannot compress 11 .plt +Cannot compress 12 .text +Cannot compress 13 .fini +Cannot compress 14 .rodata +Cannot compress 15 .data +Cannot compress 16 .eh_frame +Cannot compress 17 .gcc_except_table +Cannot compress 18 .ctors +Cannot compress 19 .dtors +Cannot compress 20 .got +Cannot compress 21 .dynamic +Lets compress 22 .sbss, size: 0 +Cannot compress 23 .bss +Lets compress 24 .stab, size: 21540 +Lets compress 25 .stabstr, size: 57297 +Lets compress 26 .comment, size: 648 +Lets compress 27 .debug_aranges, size: 56 +Lets compress 28 .debug_pubnames, size: 93 +Lets compress 29 .debug_info, size: 960 +Lets compress 30 .debug_abbrev, size: 405 +Lets compress 31 .debug_line, size: 189 +Lets compress 32 .note, size: 240 +Not compressing section string table 33 +Lets compress 34 .symtab, size: 5488 +Lets compress 35 .strtab, size: 5727 +EOF + +testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfile4 <<\EOF +Cannot compress 1 .interp +Cannot compress 2 .note.ABI-tag +Cannot compress 3 .hash +Cannot compress 4 .dynsym +Cannot compress 5 .dynstr +Cannot compress 6 .gnu.version +Cannot compress 7 .gnu.version_r +Cannot compress 8 .rel.got +Cannot compress 9 .rel.plt +Cannot compress 10 .init +Cannot compress 11 .plt +Cannot compress 12 .text +Cannot compress 13 .fini +Cannot compress 14 .rodata +Cannot compress 15 .data +Cannot compress 16 .eh_frame +Cannot compress 17 .gcc_except_table +Cannot compress 18 .ctors +Cannot compress 19 .dtors +Cannot compress 20 .got +Cannot compress 21 .dynamic +Lets compress 22 .sbss, size: 0 +Cannot compress 23 .bss +Lets compress 24 .stab, size: 21540 +Lets compress 25 .stabstr, size: 57297 +Lets compress 26 .comment, size: 648 +Lets compress 27 .debug_aranges, size: 56 +Lets compress 28 .debug_pubnames, size: 93 +Lets compress 29 .debug_info, size: 960 +Lets compress 30 .debug_abbrev, size: 405 +Lets compress 31 .debug_line, size: 189 +Lets compress 32 .note, size: 240 +Not compressing section string table 33 +Lets compress 34 .symtab, size: 5488 +Lets compress 35 .strtab, size: 5727 +EOF + +# Random ELF64 testfile +testfiles testfile12 + +testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfile12 <<\EOF +Cannot compress 1 .hash +Cannot compress 2 .dynsym +Cannot compress 3 .dynstr +Cannot compress 4 .gnu.version +Cannot compress 5 .gnu.version_r +Cannot compress 6 .rela.dyn +Cannot compress 7 .rela.plt +Cannot compress 8 .init +Cannot compress 9 .plt +Cannot compress 10 .text +Cannot compress 11 .fini +Cannot compress 12 .rodata +Cannot compress 13 .eh_frame_hdr +Cannot compress 14 .eh_frame +Cannot compress 15 .data +Cannot compress 16 .dynamic +Cannot compress 17 .ctors +Cannot compress 18 .dtors +Cannot compress 19 .jcr +Cannot compress 20 .got +Cannot compress 21 .bss +Lets compress 22 .comment, size: 246 +Lets compress 23 .debug_aranges, size: 192 +Lets compress 24 .debug_pubnames, size: 26 +Lets compress 25 .debug_info, size: 3468 +Lets compress 26 .debug_abbrev, size: 341 +Lets compress 27 .debug_line, size: 709 +Lets compress 28 .debug_frame, size: 56 +Lets compress 29 .debug_str, size: 2235 +Lets compress 30 .debug_macinfo, size: 10518 +Not compressing section string table 31 +Lets compress 32 .symtab, size: 1944 +Lets compress 33 .strtab, size: 757 +EOF + +testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfile12 <<\EOF +Cannot compress 1 .hash +Cannot compress 2 .dynsym +Cannot compress 3 .dynstr +Cannot compress 4 .gnu.version +Cannot compress 5 .gnu.version_r +Cannot compress 6 .rela.dyn +Cannot compress 7 .rela.plt +Cannot compress 8 .init +Cannot compress 9 .plt +Cannot compress 10 .text +Cannot compress 11 .fini +Cannot compress 12 .rodata +Cannot compress 13 .eh_frame_hdr +Cannot compress 14 .eh_frame +Cannot compress 15 .data +Cannot compress 16 .dynamic +Cannot compress 17 .ctors +Cannot compress 18 .dtors +Cannot compress 19 .jcr +Cannot compress 20 .got +Cannot compress 21 .bss +Lets compress 22 .comment, size: 246 +Lets compress 23 .debug_aranges, size: 192 +Lets compress 24 .debug_pubnames, size: 26 +Lets compress 25 .debug_info, size: 3468 +Lets compress 26 .debug_abbrev, size: 341 +Lets compress 27 .debug_line, size: 709 +Lets compress 28 .debug_frame, size: 56 +Lets compress 29 .debug_str, size: 2235 +Lets compress 30 .debug_macinfo, size: 10518 +Not compressing section string table 31 +Lets compress 32 .symtab, size: 1944 +Lets compress 33 .strtab, size: 757 +EOF + +# Random ELF64BE testfile +testfiles testfileppc64 + +testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfileppc64 <<\EOF +Cannot compress 1 .interp +Cannot compress 2 .note.ABI-tag +Cannot compress 3 .note.gnu.build-id +Cannot compress 4 .gnu.hash +Cannot compress 5 .dynsym +Cannot compress 6 .dynstr +Cannot compress 7 .gnu.version +Cannot compress 8 .gnu.version_r +Cannot compress 9 .rela.plt +Cannot compress 10 .init +Cannot compress 11 .text +Cannot compress 12 .fini +Cannot compress 13 .rodata +Cannot compress 14 .eh_frame_hdr +Cannot compress 15 .eh_frame +Cannot compress 16 .init_array +Cannot compress 17 .fini_array +Cannot compress 18 .jcr +Cannot compress 19 .dynamic +Cannot compress 20 .data +Cannot compress 21 .opd +Cannot compress 22 .got +Cannot compress 23 .plt +Cannot compress 24 .bss +Lets compress 25 .comment, size: 88 +Lets compress 26 .debug_aranges, size: 96 +Lets compress 27 .debug_info, size: 363 +Lets compress 28 .debug_abbrev, size: 315 +Lets compress 29 .debug_line, size: 119 +Lets compress 30 .debug_frame, size: 96 +Lets compress 31 .debug_str, size: 174 +Lets compress 32 .debug_loc, size: 171 +Lets compress 33 .debug_ranges, size: 32 +Not compressing section string table 34 +Lets compress 35 .symtab, size: 1800 +Lets compress 36 .strtab, size: 602 +EOF + +testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfileppc64 <<\EOF +Cannot compress 1 .interp +Cannot compress 2 .note.ABI-tag +Cannot compress 3 .note.gnu.build-id +Cannot compress 4 .gnu.hash +Cannot compress 5 .dynsym +Cannot compress 6 .dynstr +Cannot compress 7 .gnu.version +Cannot compress 8 .gnu.version_r +Cannot compress 9 .rela.plt +Cannot compress 10 .init +Cannot compress 11 .text +Cannot compress 12 .fini +Cannot compress 13 .rodata +Cannot compress 14 .eh_frame_hdr +Cannot compress 15 .eh_frame +Cannot compress 16 .init_array +Cannot compress 17 .fini_array +Cannot compress 18 .jcr +Cannot compress 19 .dynamic +Cannot compress 20 .data +Cannot compress 21 .opd +Cannot compress 22 .got +Cannot compress 23 .plt +Cannot compress 24 .bss +Lets compress 25 .comment, size: 88 +Lets compress 26 .debug_aranges, size: 96 +Lets compress 27 .debug_info, size: 363 +Lets compress 28 .debug_abbrev, size: 315 +Lets compress 29 .debug_line, size: 119 +Lets compress 30 .debug_frame, size: 96 +Lets compress 31 .debug_str, size: 174 +Lets compress 32 .debug_loc, size: 171 +Lets compress 33 .debug_ranges, size: 32 +Not compressing section string table 34 +Lets compress 35 .symtab, size: 1800 +Lets compress 36 .strtab, size: 602 +EOF + +# Random ELF32BE testfile +testfiles testfileppc32 + +testrun_compare ${abs_top_builddir}/tests/elfputzdata gnu testfileppc32 <<\EOF +Cannot compress 1 .interp +Cannot compress 2 .note.ABI-tag +Cannot compress 3 .note.gnu.build-id +Cannot compress 4 .gnu.hash +Cannot compress 5 .dynsym +Cannot compress 6 .dynstr +Cannot compress 7 .gnu.version +Cannot compress 8 .gnu.version_r +Cannot compress 9 .rela.dyn +Cannot compress 10 .rela.plt +Cannot compress 11 .init +Cannot compress 12 .text +Cannot compress 13 .fini +Cannot compress 14 .rodata +Cannot compress 15 .eh_frame_hdr +Cannot compress 16 .eh_frame +Cannot compress 17 .init_array +Cannot compress 18 .fini_array +Cannot compress 19 .jcr +Cannot compress 20 .got2 +Cannot compress 21 .dynamic +Cannot compress 22 .got +Cannot compress 23 .plt +Cannot compress 24 .data +Cannot compress 25 .sdata +Cannot compress 26 .bss +Lets compress 27 .comment, size: 88 +Lets compress 28 .debug_aranges, size: 64 +Lets compress 29 .debug_info, size: 319 +Lets compress 30 .debug_abbrev, size: 318 +Lets compress 31 .debug_line, size: 109 +Lets compress 32 .debug_frame, size: 64 +Lets compress 33 .debug_str, size: 179 +Lets compress 34 .debug_loc, size: 99 +Lets compress 35 .debug_ranges, size: 16 +Not compressing section string table 36 +Lets compress 37 .symtab, size: 1232 +Lets compress 38 .strtab, size: 569 +EOF + +testrun_compare ${abs_top_builddir}/tests/elfputzdata elf testfileppc32 <<\EOF +Cannot compress 1 .interp +Cannot compress 2 .note.ABI-tag +Cannot compress 3 .note.gnu.build-id +Cannot compress 4 .gnu.hash +Cannot compress 5 .dynsym +Cannot compress 6 .dynstr +Cannot compress 7 .gnu.version +Cannot compress 8 .gnu.version_r +Cannot compress 9 .rela.dyn +Cannot compress 10 .rela.plt +Cannot compress 11 .init +Cannot compress 12 .text +Cannot compress 13 .fini +Cannot compress 14 .rodata +Cannot compress 15 .eh_frame_hdr +Cannot compress 16 .eh_frame +Cannot compress 17 .init_array +Cannot compress 18 .fini_array +Cannot compress 19 .jcr +Cannot compress 20 .got2 +Cannot compress 21 .dynamic +Cannot compress 22 .got +Cannot compress 23 .plt +Cannot compress 24 .data +Cannot compress 25 .sdata +Cannot compress 26 .bss +Lets compress 27 .comment, size: 88 +Lets compress 28 .debug_aranges, size: 64 +Lets compress 29 .debug_info, size: 319 +Lets compress 30 .debug_abbrev, size: 318 +Lets compress 31 .debug_line, size: 109 +Lets compress 32 .debug_frame, size: 64 +Lets compress 33 .debug_str, size: 179 +Lets compress 34 .debug_loc, size: 99 +Lets compress 35 .debug_ranges, size: 16 +Not compressing section string table 36 +Lets compress 37 .symtab, size: 1232 +Lets compress 38 .strtab, size: 569 +EOF + +exit 0 -- cgit v1.2.3 From c495d754f33bd2ce3eeaaed936d8f045fbf53f30 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 30 Dec 2015 14:18:40 +0100 Subject: libdw: Use elf_compress[_gnu] to uncompress debug section data. libdw used its own code for decompressing GNU style .zdebug sections. Using elf_compress and elf_compress_gnu instead makes it possible to transparently use either GNU style or ELF style compressed data. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 13 ++++ libdw/dwarf_begin_elf.c | 156 ++++++++++++++++-------------------------------- libdw/dwarf_end.c | 20 ------- libdw/libdwP.h | 11 ---- 4 files changed, 63 insertions(+), 137 deletions(-) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 89d03269..fc80e8d2 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,16 @@ +2015-12-18 Mark Wielaard + + * libdwP.h (struct Dwarf): Remove sectiondata_gzip_mask. + (__libdw_free_zdata): Remove. + * dwarf_begin_elf.c (inflate_section): Remove. + (check_section): Remove __libdw_free_zdata calls. Use elf_compress + and elf_compress_gnu to decompress if necessary. + (valid_p): Remove __libdw_free_zdata calls. + (scngrp_read): Use elf_compress if section is compressed. Remove + __libdw_free_zdata calls. + * dwarf_end.c (__libdw_free_zdata): Remove. + (dwarf_end): Don't call __libdw_free_zdata. + 2015-10-28 Mark Wielaard * libdw.map (ELFUTILS_0.165): New. Add dwelf_scn_gnu_compressed_size. diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c index 63532fd8..6f25e429 100644 --- a/libdw/dwarf_begin_elf.c +++ b/libdw/dwarf_begin_elf.c @@ -44,13 +44,6 @@ #include "libdwP.h" -#if USE_ZLIB -# include -# define crc32 loser_crc32 -# include -# undef crc32 -#endif - /* Section names. */ static const char dwarf_scnnames[IDX_last][18] = @@ -71,70 +64,6 @@ static const char dwarf_scnnames[IDX_last][18] = }; #define ndwarf_scnnames (sizeof (dwarf_scnnames) / sizeof (dwarf_scnnames[0])) -#if USE_ZLIB -static Elf_Data * -inflate_section (Elf_Data * data) -{ - /* There is a 12-byte header of "ZLIB" followed by - an 8-byte big-endian size. */ - - if (unlikely (data->d_size < 4 + 8) - || unlikely (memcmp (data->d_buf, "ZLIB", 4) != 0)) - return NULL; - - uint64_t size; - memcpy (&size, data->d_buf + 4, sizeof size); - size = be64toh (size); - - /* Check for unsigned overflow so malloc always allocated - enough memory for both the Elf_Data header and the - uncompressed section data. */ - if (unlikely (sizeof (Elf_Data) + size < size)) - return NULL; - - Elf_Data *zdata = malloc (sizeof (Elf_Data) + size); - if (unlikely (zdata == NULL)) - return NULL; - - zdata->d_buf = &zdata[1]; - zdata->d_type = ELF_T_BYTE; - zdata->d_version = EV_CURRENT; - zdata->d_size = size; - zdata->d_off = 0; - zdata->d_align = 1; - - z_stream z = - { - .next_in = data->d_buf + 4 + 8, - .avail_in = data->d_size - 4 - 8, - .next_out = zdata->d_buf, - .avail_out = zdata->d_size - }; - int zrc = inflateInit (&z); - while (z.avail_in > 0 && likely (zrc == Z_OK)) - { - z.next_out = zdata->d_buf + (zdata->d_size - z.avail_out); - zrc = inflate (&z, Z_FINISH); - if (unlikely (zrc != Z_STREAM_END)) - { - zrc = Z_DATA_ERROR; - break; - } - zrc = inflateReset (&z); - } - if (likely (zrc == Z_OK)) - zrc = inflateEnd (&z); - - if (unlikely (zrc != Z_OK) || unlikely (z.avail_out != 0)) - { - free (zdata); - return NULL; - } - - return zdata; -} -#endif - static Dwarf * check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp) { @@ -173,7 +102,6 @@ check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp) /* The section name must be valid. Otherwise is the ELF file invalid. */ err: - __libdw_free_zdata (result); Dwarf_Sig8_Hash_free (&result->sig8_hash); __libdw_seterrno (DWARF_E_INVALID_ELF); free (result); @@ -182,14 +110,14 @@ check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp) /* Recognize the various sections. Most names start with .debug_. */ size_t cnt; - bool compressed = false; + bool gnu_compressed = false; for (cnt = 0; cnt < ndwarf_scnnames; ++cnt) if (strcmp (scnname, dwarf_scnnames[cnt]) == 0) break; else if (scnname[0] == '.' && scnname[1] == 'z' && strcmp (&scnname[2], &dwarf_scnnames[cnt][1]) == 0) { - compressed = true; + gnu_compressed = true; break; } @@ -201,40 +129,41 @@ check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp) /* A section appears twice. That's bad. We ignore the section. */ return result; + /* We cannot know whether or not a GNU compressed section has already + been uncompressed or not, so ignore any errors. */ + if (gnu_compressed) + elf_compress_gnu (scn, 0, 0); + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + if (elf_compress (scn, 0, 0) < 0) + { + /* If we failed to decompress the section and it's the + debug_info section, then fail with specific error rather + than the generic NO_DWARF. Without debug_info we can't do + anything (see also valid_p()). */ + if (cnt == IDX_debug_info) + { + Dwarf_Sig8_Hash_free (&result->sig8_hash); + __libdw_seterrno (DWARF_E_COMPRESSED_ERROR); + free (result); + return NULL; + } + return result; + } + } + /* Get the section data. */ Elf_Data *data = elf_getdata (scn, NULL); - if (data == NULL || data->d_size == 0) + if (data == NULL) + goto err; + + if (data->d_buf == NULL || data->d_size == 0) /* No data actually available, ignore it. */ return result; /* We can now read the section data into results. */ - if (!compressed) - result->sectiondata[cnt] = data; - else - { - /* A compressed section. */ - -#if USE_ZLIB - Elf_Data *inflated = inflate_section(data); - if (inflated != NULL) - { - result->sectiondata[cnt] = inflated; - result->sectiondata_gzip_mask |= 1U << cnt; - } -#endif - - /* If we failed to decompress the section and it's the debug_info section, - * then fail with specific error rather than the generic NO_DWARF. Without - * debug_info we can't do anything (see also valid_p()). */ - if (result->sectiondata[cnt] == NULL && cnt == IDX_debug_info) - { - __libdw_free_zdata (result); - Dwarf_Sig8_Hash_free (&result->sig8_hash); - __libdw_seterrno (DWARF_E_COMPRESSED_ERROR); - free (result); - return NULL; - } - } + result->sectiondata[cnt] = data; return result; } @@ -253,7 +182,6 @@ valid_p (Dwarf *result) if (likely (result != NULL) && unlikely (result->sectiondata[IDX_debug_info] == NULL)) { - __libdw_free_zdata (result); Dwarf_Sig8_Hash_free (&result->sig8_hash); __libdw_seterrno (DWARF_E_NO_DWARF); free (result); @@ -265,7 +193,6 @@ valid_p (Dwarf *result) result->fake_loc_cu = (Dwarf_CU *) calloc (1, sizeof (Dwarf_CU)); if (unlikely (result->fake_loc_cu == NULL)) { - __libdw_free_zdata (result); Dwarf_Sig8_Hash_free (&result->sig8_hash); __libdw_seterrno (DWARF_E_NOMEM); free (result); @@ -301,13 +228,31 @@ global_read (Dwarf *result, Elf *elf, GElf_Ehdr *ehdr) static Dwarf * scngrp_read (Dwarf *result, Elf *elf, GElf_Ehdr *ehdr, Elf_Scn *scngrp) { + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scngrp, &shdr_mem); + if (shdr == NULL) + { + Dwarf_Sig8_Hash_free (&result->sig8_hash); + __libdw_seterrno (DWARF_E_INVALID_ELF); + free (result); + return NULL; + } + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0 + && elf_compress (scngrp, 0, 0) < 0) + { + Dwarf_Sig8_Hash_free (&result->sig8_hash); + __libdw_seterrno (DWARF_E_COMPRESSED_ERROR); + free (result); + return NULL; + } + /* SCNGRP is the section descriptor for a section group which might contain debug sections. */ Elf_Data *data = elf_getdata (scngrp, NULL); if (data == NULL) { /* We cannot read the section content. Fail! */ - __libdw_free_zdata (result); Dwarf_Sig8_Hash_free (&result->sig8_hash); free (result); return NULL; @@ -324,7 +269,6 @@ scngrp_read (Dwarf *result, Elf *elf, GElf_Ehdr *ehdr, Elf_Scn *scngrp) { /* A section group refers to a non-existing section. Should never happen. */ - __libdw_free_zdata (result); Dwarf_Sig8_Hash_free (&result->sig8_hash); __libdw_seterrno (DWARF_E_INVALID_ELF); free (result); diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c index 2108063d..6c6d985a 100644 --- a/libdw/dwarf_end.c +++ b/libdw/dwarf_end.c @@ -57,24 +57,6 @@ cu_free (void *arg) } -#if USE_ZLIB -void -internal_function -__libdw_free_zdata (Dwarf *dwarf) -{ - unsigned int gzip_mask = dwarf->sectiondata_gzip_mask; - while (gzip_mask != 0) - { - int i = ffs (gzip_mask); - assert (i > 0); - --i; - assert (i < IDX_last); - free (dwarf->sectiondata[i]); - gzip_mask &= ~(1U << i); - } -} -#endif - int dwarf_end (Dwarf *dwarf) { @@ -110,8 +92,6 @@ dwarf_end (Dwarf *dwarf) /* Free the pubnames helper structure. */ free (dwarf->pubnames_sets); - __libdw_free_zdata (dwarf); - /* Free the ELF descriptor if necessary. */ if (dwarf->free_elf) elf_end (dwarf->elf); diff --git a/libdw/libdwP.h b/libdw/libdwP.h index 2d233f63..5d095a7e 100644 --- a/libdw/libdwP.h +++ b/libdw/libdwP.h @@ -147,11 +147,6 @@ struct Dwarf /* The section data. */ Elf_Data *sectiondata[IDX_last]; -#if USE_ZLIB - /* The 1 << N bit is set if sectiondata[N] is malloc'd decompressed data. */ - unsigned int sectiondata_gzip_mask:IDX_last; -#endif - /* True if the file has a byte order different from the host. */ bool other_byte_order; @@ -440,12 +435,6 @@ extern void *__libdw_allocate (Dwarf *dbg, size_t minsize, size_t align) /* Default OOM handler. */ extern void __libdw_oom (void) __attribute ((noreturn, visibility ("hidden"))); -#if USE_ZLIB -extern void __libdw_free_zdata (Dwarf *dwarf) internal_function; -#else -# define __libdw_free_zdata(dwarf) ((void) (dwarf)) -#endif - /* Allocate the internal data for a unit not seen before. */ extern struct Dwarf_CU *__libdw_intern_next_unit (Dwarf *dbg, bool debug_types) __nonnull_attribute__ (1) internal_function; -- cgit v1.2.3 From d22cb04967a2396514abf28cc43e70c037ee9cf2 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 30 Dec 2015 14:39:18 +0100 Subject: libdwfl: Use elf_compress[_gnu] to decompress string, symbol and reloc data. This makes usage of the libdwfl symbol functions work out of the box even when some sections (string, symbol or xndx) are compressed. For ET_REL files this makes relocations just work by making sure the target section is decompressed first before relocations are applied. Signed-off-by: Mark Wielaard --- libdwfl/ChangeLog | 10 ++++ libdwfl/dwfl_module_getdwarf.c | 99 ++++++++++++++++++++++++++++++++--- libdwfl/relocate.c | 116 ++++++++++++++++++++++++++++++++--------- libebl/ChangeLog | 4 ++ libebl/eblopenbackend.c | 4 +- 5 files changed, 201 insertions(+), 32 deletions(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 06b8469d..7bb9b355 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,13 @@ +2015-12-18 Mark Wielaard + + * dwfl_module_getdwarf.c (find_symtab): Uncompress symstr, xndx, sym + sections and aux_str, aux_xndx and aux_sym sections if necessary. + * relocate.c (relocate_getsym): Uncompress symtab and symtab_shndx + if necessary. + (resolve_symbol): Uncompress strtab section if necessary. + (relocate_section): Uncompress the section the relocations apply to + if necessary. + 2015-11-18 Chih-Hung Hsieh * linux-proc-maps.c (proc_maps_report): Move nested function diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c index e9589b3f..0e8810b1 100644 --- a/libdwfl/dwfl_module_getdwarf.c +++ b/libdwfl/dwfl_module_getdwarf.c @@ -1130,10 +1130,39 @@ find_symtab (Dwfl_Module *mod) goto aux_cleanup; /* This cleans up some more and tries find_dynsym. */ } - /* Cache the data; MOD->syments and MOD->first_global were set above. */ + /* Cache the data; MOD->syments and MOD->first_global were set + above. If any of the sections is compressed, uncompress it + first. Only the string data setion could theoretically be + compressed GNU style (as .zdebug_str). Everything else only ELF + gabi style (SHF_COMPRESSED). */ + + Elf_Scn *symstrscn = elf_getscn (mod->symfile->elf, strshndx); + if (symstrscn == NULL) + goto elferr; + + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (symstrscn, &shdr_mem); + if (shdr == NULL) + goto elferr; + + size_t shstrndx; + if (elf_getshdrstrndx (mod->symfile->elf, &shstrndx) < 0) + goto elferr; + + const char *sname = elf_strptr (mod->symfile->elf, shstrndx, shdr->sh_name); + if (sname == NULL) + goto elferr; + + if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0) + /* Try to uncompress, but it might already have been, an error + might just indicate, already uncompressed. */ + elf_compress_gnu (symstrscn, 0, 0); - mod->symstrdata = elf_getdata (elf_getscn (mod->symfile->elf, strshndx), - NULL); + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (symstrscn, 0, 0) < 0) + goto elferr; + + mod->symstrdata = elf_getdata (symstrscn, NULL); if (mod->symstrdata == NULL || mod->symstrdata->d_buf == NULL) goto elferr; @@ -1141,17 +1170,33 @@ find_symtab (Dwfl_Module *mod) mod->symxndxdata = NULL; else { + shdr = gelf_getshdr (xndxscn, &shdr_mem); + if (shdr == NULL) + goto elferr; + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (xndxscn, 0, 0) < 0) + goto elferr; + mod->symxndxdata = elf_getdata (xndxscn, NULL); if (mod->symxndxdata == NULL || mod->symxndxdata->d_buf == NULL) goto elferr; } + shdr = gelf_getshdr (symscn, &shdr_mem); + if (shdr == NULL) + goto elferr; + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (symscn, 0, 0) < 0) + goto elferr; + mod->symdata = elf_getdata (symscn, NULL); if (mod->symdata == NULL || mod->symdata->d_buf == NULL) goto elferr; // Sanity check number of symbols. - GElf_Shdr shdr_mem, *shdr = gelf_getshdr (symscn, &shdr_mem); + shdr = gelf_getshdr (symscn, &shdr_mem); if (shdr == NULL || shdr->sh_entsize == 0 || mod->syments > mod->symdata->d_size / shdr->sh_entsize || (size_t) mod->first_global > mod->syments) @@ -1174,9 +1219,33 @@ find_symtab (Dwfl_Module *mod) return; } - mod->aux_symstrdata = elf_getdata (elf_getscn (mod->aux_sym.elf, - aux_strshndx), - NULL); + Elf_Scn *aux_strscn = elf_getscn (mod->aux_sym.elf, aux_strshndx); + if (aux_strscn == NULL) + goto elferr; + + shdr = gelf_getshdr (aux_strscn, &shdr_mem); + if (shdr == NULL) + goto elferr; + + size_t aux_shstrndx; + if (elf_getshdrstrndx (mod->aux_sym.elf, &aux_shstrndx) < 0) + goto elferr; + + sname = elf_strptr (mod->aux_sym.elf, aux_shstrndx, + shdr->sh_name); + if (sname == NULL) + goto elferr; + + if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0) + /* Try to uncompress, but it might already have been, an error + might just indicate, already uncompressed. */ + elf_compress_gnu (aux_strscn, 0, 0); + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (aux_strscn, 0, 0) < 0) + goto elferr; + + mod->aux_symstrdata = elf_getdata (aux_strscn, NULL); if (mod->aux_symstrdata == NULL || mod->aux_symstrdata->d_buf == NULL) goto aux_cleanup; @@ -1184,12 +1253,28 @@ find_symtab (Dwfl_Module *mod) mod->aux_symxndxdata = NULL; else { + shdr = gelf_getshdr (aux_xndxscn, &shdr_mem); + if (shdr == NULL) + goto elferr; + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (aux_xndxscn, 0, 0) < 0) + goto elferr; + mod->aux_symxndxdata = elf_getdata (aux_xndxscn, NULL); if (mod->aux_symxndxdata == NULL || mod->aux_symxndxdata->d_buf == NULL) goto aux_cleanup; } + shdr = gelf_getshdr (aux_symscn, &shdr_mem); + if (shdr == NULL) + goto elferr; + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (aux_symscn, 0, 0) < 0) + goto elferr; + mod->aux_symdata = elf_getdata (aux_symscn, NULL); if (mod->aux_symdata == NULL || mod->aux_symdata->d_buf == NULL) goto aux_cleanup; diff --git a/libdwfl/relocate.c b/libdwfl/relocate.c index 2dc67374..fc88df30 100644 --- a/libdwfl/relocate.c +++ b/libdwfl/relocate.c @@ -123,23 +123,32 @@ relocate_getsym (Dwfl_Module *mod, { GElf_Shdr shdr_mem, *shdr = gelf_getshdr (scn, &shdr_mem); if (shdr != NULL) - switch (shdr->sh_type) - { - default: - continue; - case SHT_SYMTAB: - cache->symelf = relocated; - cache->symdata = elf_getdata (scn, NULL); - cache->strtabndx = shdr->sh_link; - if (unlikely (cache->symdata == NULL)) - return DWFL_E_LIBELF; - break; - case SHT_SYMTAB_SHNDX: - cache->symxndxdata = elf_getdata (scn, NULL); - if (unlikely (cache->symxndxdata == NULL)) + { + /* We need uncompressed data. */ + if ((shdr->sh_type == SHT_SYMTAB + || shdr->sh_type == SHT_SYMTAB_SHNDX) + && (shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (scn, 0, 0) < 0) return DWFL_E_LIBELF; - break; - } + + switch (shdr->sh_type) + { + default: + continue; + case SHT_SYMTAB: + cache->symelf = relocated; + cache->symdata = elf_getdata (scn, NULL); + cache->strtabndx = shdr->sh_link; + if (unlikely (cache->symdata == NULL)) + return DWFL_E_LIBELF; + break; + case SHT_SYMTAB_SHNDX: + cache->symxndxdata = elf_getdata (scn, NULL); + if (unlikely (cache->symxndxdata == NULL)) + return DWFL_E_LIBELF; + break; + } + } if (cache->symdata != NULL && cache->symxndxdata != NULL) break; } @@ -203,9 +212,34 @@ resolve_symbol (Dwfl_Module *referer, struct reloc_symtab_cache *symtab, /* Cache the strtab for this symtab. */ assert (referer->symfile == NULL || referer->symfile->elf != symtab->symelf); - symtab->symstrdata = elf_getdata (elf_getscn (symtab->symelf, - symtab->strtabndx), - NULL); + + Elf_Scn *scn = elf_getscn (symtab->symelf, symtab->strtabndx); + if (scn == NULL) + return DWFL_E_LIBELF; + + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + return DWFL_E_LIBELF; + + if (symtab->symshstrndx == SHN_UNDEF + && elf_getshdrstrndx (symtab->symelf, &symtab->symshstrndx) < 0) + return DWFL_E_LIBELF; + + const char *sname = elf_strptr (symtab->symelf, symtab->symshstrndx, + shdr->sh_name); + if (sname == NULL) + return DWFL_E_LIBELF; + + /* If the section is already decompressed, that isn't an error. */ + if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0) + elf_compress_gnu (scn, 0, 0); + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (scn, 0, 0) < 0) + return DWFL_E_LIBELF; + + symtab->symstrdata = elf_getdata (scn, NULL); if (unlikely (symtab->symstrdata == NULL || symtab->symstrdata->d_buf == NULL)) return DWFL_E_LIBELF; @@ -446,22 +480,56 @@ relocate_section (Dwfl_Module *mod, Elf *relocated, const GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr, Elf_Scn *tscn, bool debugscn, bool partial) { - /* First, fetch the name of the section these relocations apply to. */ + /* First, fetch the name of the section these relocations apply to. + Then try to decompress both relocation and target section. */ GElf_Shdr tshdr_mem; GElf_Shdr *tshdr = gelf_getshdr (tscn, &tshdr_mem); + if (tshdr == NULL) + return DWFL_E_LIBELF; + const char *tname = elf_strptr (relocated, shstrndx, tshdr->sh_name); if (tname == NULL) return DWFL_E_LIBELF; - if (unlikely (tshdr->sh_type == SHT_NOBITS) || unlikely (tshdr->sh_size == 0)) - /* No contents to relocate. */ - return DWFL_E_NOERROR; - if (debugscn && ! ebl_debugscn_p (mod->ebl, tname)) /* This relocation section is not for a debugging section. Nothing to do here. */ return DWFL_E_NOERROR; + if (strncmp (tname, ".zdebug", strlen ("zdebug")) == 0) + elf_compress_gnu (tscn, 0, 0); + + if ((tshdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (tscn, 0, 0) < 0) + return DWFL_E_LIBELF; + + /* Reload Shdr in case section was just decompressed. */ + tshdr = gelf_getshdr (tscn, &tshdr_mem); + if (tshdr == NULL) + return DWFL_E_LIBELF; + + if (unlikely (tshdr->sh_type == SHT_NOBITS) + || unlikely (tshdr->sh_size == 0)) + /* No contents to relocate. */ + return DWFL_E_NOERROR; + + const char *sname = elf_strptr (relocated, shstrndx, shdr->sh_name); + if (sname == NULL) + return DWFL_E_LIBELF; + + if (strncmp (sname, ".zdebug", strlen ("zdebug")) == 0) + elf_compress_gnu (scn, 0, 0); + + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + if (elf_compress (scn, 0, 0) < 0) + return DWFL_E_LIBELF; + + /* Reload Shdr in case section was just decompressed. */ + GElf_Shdr shdr_mem; + shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + return DWFL_E_LIBELF; + /* Fetch the section data that needs the relocations applied. */ Elf_Data *tdata = elf_rawdata (tscn, NULL); if (tdata == NULL) diff --git a/libebl/ChangeLog b/libebl/ChangeLog index a1a10224..312cf90d 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -1,3 +1,7 @@ +2015-12-18 Mark Wielaard + + * eblopenbackend.c (default_debugscn_p): Also match .zdebug sections. + 2015-12-08 Jose E. Marchesi * libebl.h: Prototype for ebl_ra_offset. diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c index b3014005..372ef2a4 100644 --- a/libebl/eblopenbackend.c +++ b/libebl/eblopenbackend.c @@ -662,7 +662,9 @@ default_debugscn_p (const char *name) const size_t ndwarf_scn_names = (sizeof (dwarf_scn_names) / sizeof (dwarf_scn_names[0])); for (size_t cnt = 0; cnt < ndwarf_scn_names; ++cnt) - if (strcmp (name, dwarf_scn_names[cnt]) == 0) + if (strcmp (name, dwarf_scn_names[cnt]) == 0 + || (strncmp (name, ".zdebug", strlen (".zdebug")) == 0 + && strcmp (&name[2], &dwarf_scn_names[cnt][1]) == 0)) return true; return false; -- cgit v1.2.3 From f5013e83d5c8fcd9309c8976c3f1167d28cd07aa Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 21 Oct 2015 01:30:44 +0200 Subject: readelf: Handle compressed sections and extend -z to cover -x and -p. When printing a (non-string, non-data) section use uncompressed data when possible. For dumping hex and string sections (-x and -p) -z will dump the uncompressed data (otherwise the compressed data is dumped). -z, --decompress Show compression information for compressed sections (when used with -S); decompress section before dumping data (when used with -p or -x) Includes test cases for ET_REL files using compressed relocation (target) debug sections to test libdwfl transparent uncompression of sections. Signed-off-by: Mark Wielaard --- src/ChangeLog | 13 ++ src/readelf.c | 124 +++++++++++++++--- tests/ChangeLog | 7 + tests/Makefile.am | 7 +- tests/run-readelf-zdebug-rel.sh | 144 +++++++++++++++++++++ tests/run-readelf-zp.sh | 271 +++++++++++++++++++++++++++++++++++++++ tests/run-readelf-zx.sh | 66 ++++++++++ tests/testfile-debug-rel-g.o.bz2 | Bin 0 -> 1238 bytes tests/testfile-debug-rel-z.o.bz2 | Bin 0 -> 1225 bytes tests/testfile-debug-rel.o.bz2 | Bin 0 -> 1069 bytes 10 files changed, 609 insertions(+), 23 deletions(-) create mode 100755 tests/run-readelf-zdebug-rel.sh create mode 100755 tests/run-readelf-zp.sh create mode 100755 tests/run-readelf-zx.sh create mode 100644 tests/testfile-debug-rel-g.o.bz2 create mode 100644 tests/testfile-debug-rel-z.o.bz2 create mode 100644 tests/testfile-debug-rel.o.bz2 diff --git a/src/ChangeLog b/src/ChangeLog index 97242213..1b5be54c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,16 @@ +2015-10-20 Mark Wielaard + + * readelf.c (options): Expand -z help text. + (dump_data_section): Check whether we need and can decompress section + data and call elf_rawzdata if so, + (print_string_section): Likewise. + (elf_contains_chdrs): New function. + (process_elf_file): Rename print_unrelocated to print_unchanged, + use elf_contains_chdrs. + (print_scngrp): Check whether section is compressed before use. + (print_symtab): Likewise. + (handle_hash): Likewise. + 2015-10-16 Mark Wielaard * readelf.c (argp_option): Describe --decompress,-z. diff --git a/src/readelf.c b/src/readelf.c index 1d507cf9..85fa92bc 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -114,7 +114,7 @@ static const struct argp_option options[] = { "wide", 'W', NULL, 0, N_("Ignored for compatibility (lines always wide)"), 0 }, { "decompress", 'z', NULL, 0, - N_("Show compression information for compressed sections (when used with -S)."), 0 }, + N_("Show compression information for compressed sections (when used with -S); decompress section before dumping data (when used with -p or -x)"), 0 }, { NULL, 0, NULL, 0, NULL, 0 } }; @@ -806,6 +806,20 @@ process_file (int fd, const char *fname, bool only_one) close (fd); } +/* Check whether there are any compressed sections in the ELF file. */ +static bool +elf_contains_chdrs (Elf *elf) +{ + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr != NULL && (shdr->sh_flags & SHF_COMPRESSED) != 0) + return true; + } + return false; +} /* Process one ELF file. */ static void @@ -844,17 +858,21 @@ process_elf_file (Dwfl_Module *dwflmod, int fd) gettext ("cannot determine number of program headers: %s"), elf_errmsg (-1)); - /* For an ET_REL file, libdwfl has adjusted the in-core shdrs - and may have applied relocation to some sections. - So we need to get a fresh Elf handle on the file to display those. */ - bool print_unrelocated = (print_section_header - || print_relocations - || dump_data_sections != NULL - || print_notes); + /* For an ET_REL file, libdwfl has adjusted the in-core shdrs and + may have applied relocation to some sections. If there are any + compressed sections, any pass (or libdw/libdwfl) might have + uncompressed them. So we need to get a fresh Elf handle on the + file to display those. */ + bool print_unchanged = ((print_section_header + || print_relocations + || dump_data_sections != NULL + || print_notes) + && (ehdr->e_type == ET_REL + || elf_contains_chdrs (ebl->elf))); Elf *pure_elf = NULL; Ebl *pure_ebl = ebl; - if (ehdr->e_type == ET_REL && print_unrelocated) + if (print_unchanged) { /* Read the file afresh. */ off_t aroff = elf_getaroff (elf); @@ -1503,7 +1521,17 @@ print_scngrp (Ebl *ebl) GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); if (shdr != NULL && shdr->sh_type == SHT_GROUP) - handle_scngrp (ebl, scn, shdr); + { + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + if (elf_compress (scn, 0, 0) < 0) + printf ("WARNING: %s [%zd]\n", + gettext ("Couldn't uncompress section"), + elf_ndxscn (scn)); + shdr = gelf_getshdr (scn, &shdr_mem); + } + handle_scngrp (ebl, scn, shdr); + } } } @@ -2202,7 +2230,17 @@ print_symtab (Ebl *ebl, int type) GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); if (shdr != NULL && shdr->sh_type == (GElf_Word) type) - handle_symtab (ebl, scn, shdr); + { + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + if (elf_compress (scn, 0, 0) < 0) + printf ("WARNING: %s [%zd]\n", + gettext ("Couldn't uncompress section"), + elf_ndxscn (scn)); + shdr = gelf_getshdr (scn, &shdr_mem); + } + handle_symtab (ebl, scn, shdr); + } } } @@ -3271,6 +3309,16 @@ handle_hash (Ebl *ebl) if (likely (shdr != NULL)) { + if ((shdr->sh_type == SHT_HASH || shdr->sh_type == SHT_GNU_HASH) + && (shdr->sh_flags & SHF_COMPRESSED) != 0) + { + if (elf_compress (scn, 0, 0) < 0) + printf ("WARNING: %s [%zd]\n", + gettext ("Couldn't uncompress section"), + elf_ndxscn (scn)); + shdr = gelf_getshdr (scn, &shdr_mem); + } + if (shdr->sh_type == SHT_HASH) { if (ebl_sysvhash_entrysize (ebl) == sizeof (Elf64_Xword)) @@ -8320,11 +8368,9 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) int n; for (n = 0; n < ndebug_sections; ++n) if (strcmp (name, debug_sections[n].name) == 0 -#if USE_ZLIB || (name[0] == '.' && name[1] == 'z' && debug_sections[n].name[1] == 'd' && strcmp (&name[2], &debug_sections[n].name[1]) == 0) -#endif ) { if ((print_debug_sections | implicit_debug_sections) @@ -9456,16 +9502,34 @@ dump_data_section (Elf_Scn *scn, const GElf_Shdr *shdr, const char *name) elf_ndxscn (scn), name); else { + if (print_decompress) + { + /* We try to decompress the section, but keep the old shdr around + so we can show both the original shdr size and the uncompressed + data size. */ + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + elf_compress (scn, 0, 0); + else if (strncmp (name, ".zdebug", strlen (".zdebug")) == 0) + elf_compress_gnu (scn, 0, 0); + } + Elf_Data *data = elf_rawdata (scn, NULL); if (data == NULL) error (0, 0, gettext ("cannot get data for section [%zu] '%s': %s"), elf_ndxscn (scn), name, elf_errmsg (-1)); else { - printf (gettext ("\nHex dump of section [%zu] '%s', %" PRIu64 - " bytes at offset %#0" PRIx64 ":\n"), - elf_ndxscn (scn), name, - shdr->sh_size, shdr->sh_offset); + if (data->d_size == shdr->sh_size) + printf (gettext ("\nHex dump of section [%zu] '%s', %" PRIu64 + " bytes at offset %#0" PRIx64 ":\n"), + elf_ndxscn (scn), name, + shdr->sh_size, shdr->sh_offset); + else + printf (gettext ("\nHex dump of section [%zu] '%s', %" PRIu64 + " bytes (%zd uncompressed) at offset %#0" + PRIx64 ":\n"), + elf_ndxscn (scn), name, + shdr->sh_size, data->d_size, shdr->sh_offset); hex_dump (data->d_buf, data->d_size); } } @@ -9479,16 +9543,34 @@ print_string_section (Elf_Scn *scn, const GElf_Shdr *shdr, const char *name) elf_ndxscn (scn), name); else { + if (print_decompress) + { + /* We try to decompress the section, but keep the old shdr around + so we can show both the original shdr size and the uncompressed + data size. */ + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + elf_compress (scn, 0, 0); + else if (strncmp (name, ".zdebug", strlen (".zdebug")) == 0) + elf_compress_gnu (scn, 0, 0); + } + Elf_Data *data = elf_rawdata (scn, NULL); if (data == NULL) error (0, 0, gettext ("cannot get data for section [%zu] '%s': %s"), elf_ndxscn (scn), name, elf_errmsg (-1)); else { - printf (gettext ("\nString section [%zu] '%s' contains %" PRIu64 - " bytes at offset %#0" PRIx64 ":\n"), - elf_ndxscn (scn), name, - shdr->sh_size, shdr->sh_offset); + if (data->d_size == shdr->sh_size) + printf (gettext ("\nString section [%zu] '%s' contains %" PRIu64 + " bytes at offset %#0" PRIx64 ":\n"), + elf_ndxscn (scn), name, + shdr->sh_size, shdr->sh_offset); + else + printf (gettext ("\nString section [%zu] '%s' contains %" PRIu64 + " bytes (%zd uncompressed) at offset %#0" + PRIx64 ":\n"), + elf_ndxscn (scn), name, + shdr->sh_size, data->d_size, shdr->sh_offset); const char *start = data->d_buf; const char *const limit = start + data->d_size; diff --git a/tests/ChangeLog b/tests/ChangeLog index 25407c22..85b263fd 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2015-10-20 Mark Wielaard + + * run-readelf-zx.sh: New test. + * run-readelf-zp.sh: Likewise. + * Makefile.am (TESTS): Add run-readelf-zx.sh and run-readelf-zp.sh. + (EXTRA_DIST): Likewise. + 2015-10-21 Mark Wielaard * Makefile.am (check_PROGRAMS): Add elfgetzdata and elfputzdata. diff --git a/tests/Makefile.am b/tests/Makefile.am index 5131cd05..c86f34fb 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -117,7 +117,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-backtrace-core-s390x.sh run-backtrace-core-s390.sh \ run-backtrace-core-aarch64.sh run-backtrace-core-sparc.sh \ run-backtrace-demangle.sh run-stack-d-test.sh run-stack-i-test.sh \ - run-stack-demangled-test.sh \ + run-stack-demangled-test.sh run-readelf-zx.sh run-readelf-zp.sh \ run-readelf-dwz-multi.sh run-allfcts-multi.sh run-deleted.sh \ run-linkmap-cut.sh run-aggregate-size.sh vdsosyms run-readelf-A.sh \ run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \ @@ -143,7 +143,7 @@ TESTS += run-readelf-s.sh run-dwflsyms.sh endif if ZLIB -TESTS += run-readelf-zdebug.sh +TESTS += run-readelf-zdebug.sh run-readelf-zdebug-rel.sh endif if HAVE_LIBASM @@ -300,6 +300,9 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-stack-demangled-test.sh \ testfiledwarfinlines.bz2 testfiledwarfinlines.core.bz2 \ run-readelf-zdebug.sh testfile-debug.bz2 testfile-zdebug.bz2 \ + run-readelf-zdebug-rel.sh testfile-debug-rel.o.bz2 \ + testfile-debug-rel-g.o.bz2 testfile-debug-rel-z.o.bz2 \ + run-readelf-zx.sh run-readelf-zp.sh \ run-deleted.sh run-linkmap-cut.sh linkmap-cut-lib.so.bz2 \ linkmap-cut.bz2 linkmap-cut.core.bz2 \ run-aggregate-size.sh testfile-sizes1.o.bz2 testfile-sizes2.o.bz2 \ diff --git a/tests/run-readelf-zdebug-rel.sh b/tests/run-readelf-zdebug-rel.sh new file mode 100755 index 00000000..88ea5bf2 --- /dev/null +++ b/tests/run-readelf-zdebug-rel.sh @@ -0,0 +1,144 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# - testfile-zdebug-rel.c +# #define UINT64_MAX 18446744073709551615UL +# +# int +# main (int argc, char **argv) +# { +# unsigned long a = UINT64_MAX - 8; +# unsigned long b = 42 + argc; +# +# if ( a + b < b ) +# argc = a + argc; +# else +# b--; +# +# return a - b; +# } +# +# gcc -Og -g -Xassembler --compress-debug-sections=none \ +# -c -o testfile-debug-rel.o testfile-zdebug-rel.c +# gcc -Og -g -Xassembler --compress-debug-sections=zlib-gnu \ +# -c -o testfile-debug-rel-g.o testfile-zdebug-rel.c +# gcc -Og -g -Xassembler --compress-debug-sections=zlib-gabi \ +# -c -o testfile-debug-rel-z.o testfile-zdebug-rel.c + +testfiles testfile-debug-rel.o testfile-debug-rel-g.o testfile-debug-rel-z.o +tempfiles readelf.out +tempfiles info.out loc.out + +cat > info.out << \EOF + +DWARF section [ 4] '.debug_info' at offset 0x58: + [Offset] + Compilation unit at offset 0: + Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4 + [ b] compile_unit + producer (strp) "GNU C11 5.3.1 20151207 (Red Hat 5.3.1-2) -mtune=generic -march=x86-64 -g -Og" + language (data1) C99 (12) + name (strp) "testfile-zdebug-rel.c" + comp_dir (strp) "/tmp" + low_pc (addr) 000000000000000000 + high_pc (data8) 24 (0x0000000000000018) + stmt_list (sec_offset) 0 + [ 2d] subprogram + external (flag_present) + name (strp) "main" + decl_file (data1) 1 + decl_line (data1) 4 + prototyped (flag_present) + type (ref4) [ 80] + low_pc (addr) 000000000000000000 + high_pc (data8) 24 (0x0000000000000018) + frame_base (exprloc) + [ 0] call_frame_cfa + GNU_all_call_sites (flag_present) + sibling (ref4) [ 80] + [ 4e] formal_parameter + name (strp) "argc" + decl_file (data1) 1 + decl_line (data1) 4 + type (ref4) [ 80] + location (sec_offset) location list [ 0] + [ 5d] formal_parameter + name (strp) "argv" + decl_file (data1) 1 + decl_line (data1) 4 + type (ref4) [ 87] + location (exprloc) + [ 0] reg4 + [ 6a] variable + name (string) "a" + decl_file (data1) 1 + decl_line (data1) 6 + type (ref4) [ 9a] + const_value (sdata) -9 + [ 74] variable + name (string) "b" + decl_file (data1) 1 + decl_line (data1) 7 + type (ref4) [ 9a] + location (exprloc) + [ 0] reg5 + [ 80] base_type + byte_size (data1) 4 + encoding (data1) signed (5) + name (string) "int" + [ 87] pointer_type + byte_size (data1) 8 + type (ref4) [ 8d] + [ 8d] pointer_type + byte_size (data1) 8 + type (ref4) [ 93] + [ 93] base_type + byte_size (data1) 1 + encoding (data1) signed_char (6) + name (strp) "char" + [ 9a] base_type + byte_size (data1) 8 + encoding (data1) unsigned (7) + name (strp) "long unsigned int" +EOF + +cat info.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel.o + +cat info.out | sed -e "s/'.debug_info'/'.zdebug_info'/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-g.o + +cat info.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=info testfile-debug-rel-z.o + +cat > loc.out << \EOF + +DWARF section [ 7] '.debug_loc' at offset 0x185: + [ 0] 000000000000000000..0x0000000000000003 [ 0] reg5 + 0x0000000000000003..0x0000000000000010 [ 0] breg5 -42 + [ 2] stack_value + 0x0000000000000010..0x0000000000000018 [ 0] GNU_entry_value: + [ 0] reg5 + [ 3] stack_value +EOF + +cat loc.out | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel.o + +cat loc.out | sed -e "s/'.debug_loc' at offset 0x185/'.zdebug_loc' at offset 0x138/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-g.o + +cat loc.out | sed -e "s/at offset 0x185/at offset 0x150/" | testrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc testfile-debug-rel-z.o + +exit 0 diff --git a/tests/run-readelf-zp.sh b/tests/run-readelf-zp.sh new file mode 100755 index 00000000..872126c5 --- /dev/null +++ b/tests/run-readelf-zp.sh @@ -0,0 +1,271 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# See run-readelf-zdebug.sh for testfile. + +testfiles testfile-zdebug +testrun_compare ${abs_top_builddir}/src/readelf -z -p.zdebug_str testfile-zdebug <<\EOF + +String section [35] '.zdebug_str' contains 2431 bytes (6433 uncompressed) at offset 0x1da3: + [ 0] UINT64_MAX 18446744073709551615UL + [ 22] __DBL_DENORM_MIN__ ((double)4.94065645841246544177e-324L) + [ 5c] __linux 1 + [ 66] __SIZEOF_SIZE_T__ 8 + [ 7a] __UINTPTR_TYPE__ long unsigned int + [ 9d] __SIZEOF_POINTER__ 8 + [ b2] __UINT8_MAX__ 255 + [ c4] __PTRDIFF_MAX__ 9223372036854775807L + [ e9] __DEC64_MANT_DIG__ 16 + [ ff] __FLT_RADIX__ 2 + [ 10f] __DEC32_MIN__ 1E-95DF + [ 125] __unix__ 1 + [ 130] testfile-zdebug.c + [ 142] __UINT_LEAST64_MAX__ 18446744073709551615UL + [ 16e] __SIZEOF_WINT_T__ 4 + [ 182] __LONG_MAX__ 9223372036854775807L + [ 1a4] __LDBL_MIN__ 3.36210314311209350626e-4932L + [ 1cf] __GCC_ATOMIC_SHORT_LOCK_FREE 2 + [ 1ee] __LP64__ 1 + [ 1f9] __UINT64_C(c) c ## UL + [ 20f] __DBL_HAS_INFINITY__ 1 + [ 226] __SSE2_MATH__ 1 + [ 236] __linux__ 1 + [ 242] __STDC_HOSTED__ 1 + [ 254] __WINT_MIN__ 0U + [ 264] __x86_64__ 1 + [ 271] __UINT32_TYPE__ unsigned int + [ 28e] __UINT_LEAST8_MAX__ 255 + [ 2a6] __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD + [ 2d7] __FLT_MAX__ 3.40282346638528859812e+38F + [ 2ff] long unsigned int + [ 311] __DBL_MANT_DIG__ 53 + [ 325] linux 1 + [ 32d] __DBL_HAS_QUIET_NAN__ 1 + [ 345] __UINT8_TYPE__ unsigned char + [ 362] __DEC32_MAX_EXP__ 97 + [ 377] __INT32_TYPE__ int + [ 38a] __SIG_ATOMIC_TYPE__ int + [ 3a2] __DEC64_MAX_EXP__ 385 + [ 3b8] __DBL_MIN_EXP__ (-1021) + [ 3d0] _LP64 1 + [ 3d8] __LDBL_HAS_INFINITY__ 1 + [ 3f0] __INT_FAST64_TYPE__ long int + [ 40d] __gnu_linux__ 1 + [ 41d] __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 + [ 43e] __UINT_FAST64_TYPE__ long unsigned int + [ 465] __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ + [ 48c] __UINT16_MAX__ 65535 + [ 4a1] __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ + [ 4ce] __PRAGMA_REDEFINE_EXTNAME 1 + [ 4ea] __INT_LEAST16_TYPE__ short int + [ 509] __k8__ 1 + [ 512] __DECIMAL_DIG__ 21 + [ 525] main + [ 52a] __DBL_MAX__ ((double)1.79769313486231570815e+308L) + [ 55d] __INT16_TYPE__ short int + [ 576] __LDBL_HAS_QUIET_NAN__ 1 + [ 58f] __SIZEOF_DOUBLE__ 8 + [ 5a3] __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF + [ 5ca] __ATOMIC_SEQ_CST 5 + [ 5dd] __UINT64_TYPE__ long unsigned int + [ 5ff] __INT_LEAST32_TYPE__ int + [ 618] __INT_LEAST64_MAX__ 9223372036854775807L + [ 641] __OPTIMIZE__ 1 + [ 650] __INTMAX_C(c) c ## L + [ 665] __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 + [ 687] __INT_FAST8_MAX__ 127 + [ 69d] __PTRDIFF_TYPE__ long int + [ 6b7] __LDBL_MIN_EXP__ (-16381) + [ 6d1] __SIZEOF_LONG_LONG__ 8 + [ 6e8] __FLT_DIG__ 6 + [ 6f6] __UINTMAX_MAX__ 18446744073709551615UL + [ 71d] __SIZEOF_WCHAR_T__ 4 + [ 732] __INT64_C(c) c ## L + [ 746] __UINTPTR_MAX__ 18446744073709551615UL + [ 76d] __FLT_MAX_10_EXP__ 38 + [ 783] __FLT_MIN__ 1.17549435082228750797e-38F + [ 7ab] __UINT_LEAST64_TYPE__ long unsigned int + [ 7d3] __SIZEOF_LONG_DOUBLE__ 16 + [ 7ed] __SIZE_MAX__ 18446744073709551615UL + [ 811] __INT8_C(c) c + [ 81f] __amd64__ 1 + [ 82b] __INT_LEAST64_TYPE__ long int + [ 849] __INT_FAST64_MAX__ 9223372036854775807L + [ 871] __DEC_EVAL_METHOD__ 2 + [ 887] __DEC32_MAX__ 9.999999E96DF + [ 8a3] __GNUC_MINOR__ 8 + [ 8b4] __WCHAR_MAX__ 2147483647 + [ 8cd] __SIZE_TYPE__ long unsigned int + [ 8ed] __INT8_MAX__ 127 + [ 8fe] __INTMAX_MAX__ 9223372036854775807L + [ 922] __ATOMIC_HLE_RELEASE 131072 + [ 93e] __FLT_HAS_QUIET_NAN__ 1 + [ 956] __DBL_EPSILON__ ((double)2.22044604925031308085e-16L) + [ 98c] __FLT_MIN_EXP__ (-125) + [ 9a3] __INT_LEAST8_MAX__ 127 + [ 9ba] __SIZEOF_INT128__ 16 + [ 9cf] __INTPTR_MAX__ 9223372036854775807L + [ 9f3] __INTPTR_TYPE__ long int + [ a0c] __LDBL_MIN_10_EXP__ (-4931) + [ a28] __GCC_ATOMIC_POINTER_LOCK_FREE 2 + [ a49] __UINT_LEAST32_MAX__ 4294967295U + [ a6a] __SIZEOF_SHORT__ 2 + [ a7d] __LDBL_MAX_10_EXP__ 4932 + [ a96] __INT16_C(c) c + [ aa5] __MMX__ 1 + [ aaf] unix 1 + [ ab6] __FLT_MAX_EXP__ 128 + [ aca] __DEC64_MAX__ 9.999999999999999E384DD + [ af0] __FLT_EPSILON__ 1.19209289550781250000e-7F + [ b1b] __INT_FAST16_TYPE__ long int + [ b38] __VERSION__ "4.8.2 20140120 (Red Hat 4.8.2-15)" + [ b68] __GCC_ATOMIC_LLONG_LOCK_FREE 2 + [ b87] __DEC128_MIN_EXP__ (-6142) + [ ba2] __ATOMIC_RELEASE 3 + [ bb5] __GNUC_PATCHLEVEL__ 2 + [ bcb] __UINT_FAST64_MAX__ 18446744073709551615UL + [ bf6] __DBL_DECIMAL_DIG__ 17 + [ c0d] __DBL_DIG__ 15 + [ c1c] __FLT_MANT_DIG__ 24 + [ c30] __FLT_DECIMAL_DIG__ 9 + [ c46] __INT16_MAX__ 32767 + [ c5a] __DEC128_MIN__ 1E-6143DL + [ c73] __BIGGEST_ALIGNMENT__ 16 + [ c8c] __INT64_MAX__ 9223372036854775807L + [ caf] __INT_FAST32_TYPE__ long int + [ ccc] __GCC_ATOMIC_INT_LOCK_FREE 2 + [ ce9] __DEC128_MAX_EXP__ 6145 + [ d01] __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 + [ d26] __FXSR__ 1 + [ d31] __INT8_TYPE__ signed char + [ d4b] __ATOMIC_ACQ_REL 4 + [ d5e] __UINT_LEAST16_MAX__ 65535 + [ d79] __UINTMAX_TYPE__ long unsigned int + [ d9c] __UINT_FAST8_MAX__ 255 + [ db3] __ORDER_BIG_ENDIAN__ 4321 + [ dcd] __INT_LEAST32_MAX__ 2147483647 + [ dec] __UINT_LEAST16_TYPE__ short unsigned int + [ e15] __INT_FAST8_TYPE__ signed char + [ e34] __DBL_MAX_EXP__ 1024 + [ e49] __STDC__ 1 + [ e54] __ELF__ 1 + [ e5e] __FLT_EVAL_METHOD__ 0 + [ e74] __ATOMIC_ACQUIRE 2 + [ e87] __DEC64_EPSILON__ 1E-15DD + [ ea1] __INT32_MAX__ 2147483647 + [ eba] __GCC_ATOMIC_CHAR_LOCK_FREE 2 + [ ed8] __DEC128_EPSILON__ 1E-33DL + [ ef3] __UINT_FAST8_TYPE__ unsigned char + [ f15] __amd64 1 + [ f1f] __DEC32_MIN_EXP__ (-94) + [ f37] __GCC_HAVE_DWARF2_CFI_ASM 1 + [ f53] __LDBL_DIG__ 18 + [ f63] __UINT32_MAX__ 4294967295U + [ f7e] __GNUC_GNU_INLINE__ 1 + [ f94] __SSE2__ 1 + [ f9f] __ATOMIC_HLE_ACQUIRE 65536 + [ fba] __SSE_MATH__ 1 + [ fc9] __INT_FAST16_MAX__ 9223372036854775807L + [ ff1] __LDBL_MAX__ 1.18973149535723176502e+4932L + [ 101c] __DBL_MIN__ ((double)2.22507385850720138309e-308L) + [ 104f] __DEC128_MANT_DIG__ 34 + [ 1066] __INT32_C(c) c + [ 1075] __DEC64_MIN_EXP__ (-382) + [ 108e] __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) + [ 10b1] __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 + [ 10d3] __LDBL_MAX_EXP__ 16384 + [ 10ea] __DEC32_MANT_DIG__ 7 + [ 10ff] __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL + [ 1139] __CHAR32_TYPE__ unsigned int + [ 1156] __INT_LEAST8_TYPE__ signed char + [ 1176] __UINT16_C(c) c + [ 1186] __GCC_ATOMIC_BOOL_LOCK_FREE 2 + [ 11a4] __SIZEOF_FLOAT__ 4 + [ 11b7] __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 + [ 11dc] __DBL_MAX_10_EXP__ 308 + [ 11f3] __LDBL_EPSILON__ 1.08420217248550443401e-19L + [ 1220] __ORDER_PDP_ENDIAN__ 3412 + [ 123a] __ORDER_LITTLE_ENDIAN__ 1234 + [ 1257] __WINT_TYPE__ unsigned int + [ 1272] __unix 1 + [ 127b] __ATOMIC_RELAXED 0 + [ 128e] __UINT_FAST32_MAX__ 18446744073709551615UL + [ 12b9] __INT_FAST32_MAX__ 9223372036854775807L + [ 12e1] __SIG_ATOMIC_MAX__ 2147483647 + [ 12ff] __UINT_FAST32_TYPE__ long unsigned int + [ 1326] __INT_MAX__ 2147483647 + [ 133d] __GXX_ABI_VERSION 1002 + [ 1354] __SIZEOF_INT__ 4 + [ 1365] char + [ 136a] __UINT_FAST16_TYPE__ long unsigned int + [ 1391] __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L + [ 13c3] __WINT_MAX__ 4294967295U + [ 13dc] __FLT_HAS_INFINITY__ 1 + [ 13f3] __SHRT_MAX__ 32767 + [ 1406] __INT_LEAST16_MAX__ 32767 + [ 1420] __LONG_LONG_MAX__ 9223372036854775807LL + [ 1448] __SIZEOF_LONG__ 8 + [ 145a] __INTMAX_TYPE__ long int + [ 1473] __LDBL_HAS_DENORM__ 1 + [ 1489] __code_model_small__ 1 + [ 14a0] __REGISTER_PREFIX__ + [ 14b5] __ATOMIC_CONSUME 1 + [ 14c8] __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL + [ 150d] __GNUC__ 4 + [ 1518] __UINT16_TYPE__ short unsigned int + [ 153b] __SSE__ 1 + [ 1545] __UINT32_C(c) c ## U + [ 155a] __k8 1 + [ 1561] __UINTMAX_C(c) c ## UL + [ 1578] __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 + [ 159d] __SIZEOF_PTRDIFF_T__ 8 + [ 15b4] __CHAR_BIT__ 8 + [ 15c3] __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) + [ 15f0] __DEC32_EPSILON__ 1E-6DF + [ 1609] __UINT_LEAST32_TYPE__ unsigned int + [ 162c] __DBL_HAS_DENORM__ 1 + [ 1641] /tmp + [ 1646] __LDBL_MANT_DIG__ 64 + [ 165b] __GCC_ATOMIC_LONG_LOCK_FREE 2 + [ 1679] __DECIMAL_BID_FORMAT__ 1 + [ 1692] __FLT_MIN_10_EXP__ (-37) + [ 16ab] __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 + [ 16cf] __WCHAR_TYPE__ int + [ 16e2] __FINITE_MATH_ONLY__ 0 + [ 16f9] argc + [ 16fe] __USER_LABEL_PREFIX__ + [ 1715] __CHAR16_TYPE__ short unsigned int + [ 1738] __UINT64_MAX__ 18446744073709551615UL + [ 175e] __UINT8_C(c) c + [ 176d] __x86_64 1 + [ 1778] __UINT_LEAST8_TYPE__ unsigned char + [ 179b] __INT64_TYPE__ long int + [ 17b3] __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 + [ 17d8] argv + [ 17dd] __GNUC_RH_RELEASE__ 15 + [ 17f4] __UINT_FAST16_MAX__ 18446744073709551615UL + [ 181f] __FLT_HAS_DENORM__ 1 + [ 1834] __DEC64_MIN__ 1E-383DD + [ 184b] __DBL_MIN_10_EXP__ (-307) + [ 1865] __FLT_DENORM_MIN__ 1.40129846432481707092e-45F + [ 1894] GNU C 4.8.2 20140120 (Red Hat 4.8.2-15) -mtune=generic -march=x86-64 -g3 -O3 -fuse-ld=gold -fno-asynchronous-unwind-tables + [ 190f] __SCHAR_MAX__ 127 +EOF + +exit 0 diff --git a/tests/run-readelf-zx.sh b/tests/run-readelf-zx.sh new file mode 100755 index 00000000..994528c0 --- /dev/null +++ b/tests/run-readelf-zx.sh @@ -0,0 +1,66 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# See run-elfgetchdr.sh for testfiles. + +testfiles testfile-zgnu64 +testrun_compare ${abs_top_builddir}/src/readelf -z -x.zdebug_aranges testfile-zgnu64 <<\EOF + +Hex dump of section [2] '.zdebug_aranges', 50 bytes (96 uncompressed) at offset 0x260: + 0x00000000 2c000000 02000000 00000800 00000000 ,............... + 0x00000010 78004000 00000000 14000000 00000000 x.@............. + 0x00000020 00000000 00000000 00000000 00000000 ................ + 0x00000030 2c000000 02005500 00000800 00000000 ,.....U......... + 0x00000040 8c004000 00000000 16000000 00000000 ..@............. + 0x00000050 00000000 00000000 00000000 00000000 ................ +EOF + +testfiles testfile-zgabi64 +testrun_compare ${abs_top_builddir}/src/readelf -z -x.debug_aranges testfile-zgabi64 <<\EOF + +Hex dump of section [2] '.debug_aranges', 62 bytes (96 uncompressed) at offset 0x260: + 0x00000000 2c000000 02000000 00000800 00000000 ,............... + 0x00000010 78004000 00000000 14000000 00000000 x.@............. + 0x00000020 00000000 00000000 00000000 00000000 ................ + 0x00000030 2c000000 02005500 00000800 00000000 ,.....U......... + 0x00000040 8c004000 00000000 16000000 00000000 ..@............. + 0x00000050 00000000 00000000 00000000 00000000 ................ +EOF + +testfiles testfile-zgnu32 +testrun_compare ${abs_top_builddir}/src/readelf -z -x.zdebug_aranges testfile-zgnu32 <<\EOF + +Hex dump of section [2] '.zdebug_aranges', 49 bytes (64 uncompressed) at offset 0x1c0: + 0x00000000 1c000000 02000000 00000400 00000000 ................ + 0x00000010 54800408 14000000 00000000 00000000 T............... + 0x00000020 1c000000 02004d00 00000400 00000000 ......M......... + 0x00000030 68800408 16000000 00000000 00000000 h............... +EOF + +testfiles testfile-zgabi32 +testrun_compare ${abs_top_builddir}/src/readelf -z -x.debug_aranges testfile-zgabi32 <<\EOF + +Hex dump of section [2] '.debug_aranges', 49 bytes (64 uncompressed) at offset 0x1c0: + 0x00000000 1c000000 02000000 00000400 00000000 ................ + 0x00000010 54800408 14000000 00000000 00000000 T............... + 0x00000020 1c000000 02004d00 00000400 00000000 ......M......... + 0x00000030 68800408 16000000 00000000 00000000 h............... +EOF + +exit 0 diff --git a/tests/testfile-debug-rel-g.o.bz2 b/tests/testfile-debug-rel-g.o.bz2 new file mode 100644 index 00000000..b8c94e7e Binary files /dev/null and b/tests/testfile-debug-rel-g.o.bz2 differ diff --git a/tests/testfile-debug-rel-z.o.bz2 b/tests/testfile-debug-rel-z.o.bz2 new file mode 100644 index 00000000..1cdac790 Binary files /dev/null and b/tests/testfile-debug-rel-z.o.bz2 differ diff --git a/tests/testfile-debug-rel.o.bz2 b/tests/testfile-debug-rel.o.bz2 new file mode 100644 index 00000000..a3f8dffa Binary files /dev/null and b/tests/testfile-debug-rel.o.bz2 differ -- cgit v1.2.3 From 519c13c9c7fc591609eed405a3e952707c60ec7e Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 30 Dec 2015 01:39:29 +0100 Subject: libelf: Make elf_strptr index correctly into compressed section data. elf_strptr indexes into the section data. This is defined as index into the uncompressed data of the section. If the section is compressed make sure the uncompressed data is available, but don't really decompress the section header (elf_getdata will still return compressed data). Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 10 +++ libelf/elf_compress.c | 97 ++++++++++++++++----------- libelf/elf_strptr.c | 50 ++++++++++++-- libelf/libelfP.h | 6 ++ tests/ChangeLog | 11 ++++ tests/Makefile.am | 8 ++- tests/elfputzdata.c | 15 +++-- tests/run-elfputzdata.sh | 16 ++--- tests/run-zstrptr.sh | 167 +++++++++++++++++++++++++++++++++++++++++++++++ tests/zstrptr.c | 124 +++++++++++++++++++++++++++++++++++ 10 files changed, 445 insertions(+), 59 deletions(-) create mode 100755 tests/run-zstrptr.sh create mode 100644 tests/zstrptr.c diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 1e214006..3a1fe91d 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,13 @@ +2015-11-26 Mark Wielaard + + * elf_compress.c (__libelf_decompress_elf): New function, extracted + from... + (elf_compress): here. Check zdata_base use __libelf_decompress_elf. + * elf_strptr.c (elf_strptr): If SHF_COMPRESSED check, uncompress and + use zdata. + * libelfP.h (struct Elf_Scn): Add zdata_size and zdata_align. + (__libelf_decompress_elf): New internal function definition. + 2015-10-21 Mark Wielaard * Makefile.am (libelf_a_SOURCES): Add elf_compress.c and diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c index 17b80f2d..ec5b7174 100644 --- a/libelf/elf_compress.c +++ b/libelf/elf_compress.c @@ -248,6 +248,47 @@ __libelf_decompress (void *buf_in, size_t size_in, size_t size_out) return buf_out; } +void * +internal_function +__libelf_decompress_elf (Elf_Scn *scn, size_t *size_out, size_t *addralign) +{ + GElf_Chdr chdr; + if (gelf_getchdr (scn, &chdr) == NULL) + return NULL; + + if (chdr.ch_type != ELFCOMPRESS_ZLIB) + { + __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE); + return NULL; + } + + if (! powerof2 (chdr.ch_addralign)) + { + __libelf_seterrno (ELF_E_INVALID_ALIGN); + return NULL; + } + + /* Take the in-memory representation, so we can even handle a + section that has just been constructed (maybe it was copied + over from some other ELF file first with elf_newdata). This + is slightly inefficient when the raw data needs to be + converted since then we'll be converting the whole buffer and + not just Chdr. */ + Elf_Data *data = elf_getdata (scn, NULL); + if (data == NULL) + return NULL; + + int elfclass = scn->elf->class; + size_t hsize = (elfclass == ELFCLASS32 + ? sizeof (Elf32_Chdr) : sizeof (Elf64_Chdr)); + size_t size_in = data->d_size - hsize; + void *buf_in = data->d_buf + hsize; + void *buf_out = __libelf_decompress (buf_in, size_in, chdr.ch_size); + *size_out = chdr.ch_size; + *addralign = chdr.ch_addralign; + return buf_out; +} + void internal_function __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align, @@ -424,62 +465,42 @@ elf_compress (Elf_Scn *scn, int type, unsigned int flags) return -1; } - GElf_Chdr chdr; - if (gelf_getchdr (scn, &chdr) == NULL) - return -1; - - if (chdr.ch_type != ELFCOMPRESS_ZLIB) + /* If the data is already decompressed (by elf_strptr), then we + only need to setup the rawdata and section header. XXX what + about elf_newdata? */ + if (scn->zdata_base == NULL) { - __libelf_seterrno (ELF_E_UNKNOWN_COMPRESSION_TYPE); - return -1; + size_t size_out, addralign; + void *buf_out = __libelf_decompress_elf (scn, &size_out, &addralign); + if (buf_out == NULL) + return -1; + + scn->zdata_base = buf_out; + scn->zdata_size = size_out; + scn->zdata_align = addralign; } - if (! powerof2 (chdr.ch_addralign)) - { - __libelf_seterrno (ELF_E_INVALID_ALIGN); - return -1; - } - - /* Take the in-memory representation, so we can even handle a - section that has just been constructed (maybe it was copied - over from some other ELF file first with elf_newdata). This - is slightly inefficient when the raw data needs to be - converted since then we'll be converting the whole buffer and - not just Chdr. */ - Elf_Data *data = elf_getdata (scn, NULL); - if (data == NULL) - return -1; - - size_t hsize = (elfclass == ELFCLASS32 - ? sizeof (Elf32_Chdr) : sizeof (Elf64_Chdr)); - size_t size_in = data->d_size - hsize; - void *buf_in = data->d_buf + hsize; - void *buf_out = __libelf_decompress (buf_in, size_in, chdr.ch_size); - if (buf_out == NULL) - return -1; - /* Note we keep the sh_entsize as is, we assume it is setup correctly and ignored when SHF_COMPRESSED is set. */ if (elfclass == ELFCLASS32) { Elf32_Shdr *shdr = elf32_getshdr (scn); - shdr->sh_size = chdr.ch_size; - shdr->sh_addralign = chdr.ch_addralign; + shdr->sh_size = scn->zdata_size; + shdr->sh_addralign = scn->zdata_align; shdr->sh_flags &= ~SHF_COMPRESSED; } else { Elf64_Shdr *shdr = elf64_getshdr (scn); - shdr->sh_size = chdr.ch_size; - shdr->sh_addralign = chdr.ch_addralign; + shdr->sh_size = scn->zdata_size; + shdr->sh_addralign = scn->zdata_align; shdr->sh_flags &= ~SHF_COMPRESSED; } - __libelf_reset_rawdata (scn, buf_out, chdr.ch_size, chdr.ch_addralign, + __libelf_reset_rawdata (scn, scn->zdata_base, + scn->zdata_size, scn->zdata_align, __libelf_data_type (elf, sh_type)); - scn->zdata_base = buf_out; - return 1; } else diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c index c5138dc6..e3b5876b 100644 --- a/libelf/elf_strptr.c +++ b/libelf/elf_strptr.c @@ -83,6 +83,20 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) } } + void *get_zdata (void) + { + size_t zsize, zalign; + void *zdata = __libelf_decompress_elf (strscn, &zsize, &zalign); + if (zdata == NULL) + return NULL; + + strscn->zdata_base = zdata; + strscn->zdata_size = zsize; + strscn->zdata_align = zalign; + + return zdata; + } + size_t sh_size = 0; if (elf->class == ELFCLASS32) { @@ -94,8 +108,16 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) goto out; } - sh_size = shdr->sh_size; - if (unlikely (offset >= shdr->sh_size)) + if ((shdr->sh_flags & SHF_COMPRESSED) == 0) + sh_size = shdr->sh_size; + else + { + if (strscn->zdata_base == NULL && get_zdata () == NULL) + goto out; + sh_size = strscn->zdata_size; + } + + if (unlikely (offset >= sh_size)) { /* The given offset is too big, it is beyond this section. */ __libelf_seterrno (ELF_E_OFFSET_RANGE); @@ -112,8 +134,16 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) goto out; } - sh_size = shdr->sh_size; - if (unlikely (offset >= shdr->sh_size)) + if ((shdr->sh_flags & SHF_COMPRESSED) == 0) + sh_size = shdr->sh_size; + else + { + if (strscn->zdata_base == NULL && get_zdata () == NULL) + goto out; + sh_size = strscn->zdata_size; + } + + if (unlikely (offset >= sh_size)) { /* The given offset is too big, it is beyond this section. */ __libelf_seterrno (ELF_E_OFFSET_RANGE); @@ -131,7 +161,17 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) goto out; } - if (likely (strscn->data_list_rear == NULL)) + if (unlikely (strscn->zdata_base != NULL)) + { + /* Make sure the string is NUL terminated. Start from the end, + which very likely is a NUL char. */ + if (likely (memrchr (&strscn->zdata_base[offset], + '\0', sh_size - offset) != NULL)) + result = &strscn->zdata_base[offset]; + else + __libelf_seterrno (ELF_E_INVALID_INDEX); + } + else if (likely (strscn->data_list_rear == NULL)) { // XXX The above is currently correct since elf_newdata will // make sure to convert the rawdata into the datalist if diff --git a/libelf/libelfP.h b/libelf/libelfP.h index 50f92174..57ccbce4 100644 --- a/libelf/libelfP.h +++ b/libelf/libelfP.h @@ -239,6 +239,8 @@ struct Elf_Scn char *data_base; /* The converted data of the section. */ char *zdata_base; /* The uncompressed data of the section. */ + size_t zdata_size; /* If zdata_base != NULL, the size of data. */ + size_t zdata_align; /* If zdata_base != NULL, the addralign. */ struct Elf_ScnList *list; /* Pointer to the section list element the data is in. */ @@ -600,6 +602,10 @@ extern void * __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data, extern void * __libelf_decompress (void *buf_in, size_t size_in, size_t size_out) internal_function; +extern void * __libelf_decompress_elf (Elf_Scn *scn, + size_t *size_out, size_t *addralign) + internal_function; + extern void __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align, Elf_Type type) diff --git a/tests/ChangeLog b/tests/ChangeLog index 85b263fd..419610c4 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,14 @@ +2015-11-26 Mark Wielaard + + * zstrptr.c: New file. + * run-zstrptr.sh: New test. + * elfputzdata.c (main): (re)compress .shstrtab. + * run-elfputzdata.sh: Expect .shstrtab compression. + * Makefile.am (check_PROGRAMS): Add zstrptr. + (TESTS): Add run-zstrptr.sh. + (EXTRA_DIST): Likewise. + (zstrptr_LDADD): New variable. + 2015-10-20 Mark Wielaard * run-readelf-zx.sh: New test. diff --git a/tests/Makefile.am b/tests/Makefile.am index c86f34fb..6d666e9d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -53,7 +53,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ buildid deleted deleted-lib.so aggregate_size vdsosyms \ getsrc_die strptr newdata elfstrtab dwfl-proc-attach \ elfshphehdr elfstrmerge dwelfgnucompressed elfgetchdr \ - elfgetzdata elfputzdata + elfgetzdata elfputzdata zstrptr asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -123,7 +123,7 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \ elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh \ run-elfgetchdr.sh \ - run-elfgetzdata.sh run-elfputzdata.sh + run-elfgetzdata.sh run-elfputzdata.sh run-zstrptr.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -319,7 +319,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-dwelfgnucompressed.sh \ testfile-zgabi32.bz2 testfile-zgabi64.bz2 \ testfile-zgabi32be.bz2 testfile-zgabi64be.bz2 \ - run-elfgetchdr.sh run-elfgetzdata.sh run-elfputzdata.sh + run-elfgetchdr.sh run-elfgetzdata.sh run-elfputzdata.sh \ + run-zstrptr.sh if USE_VALGRIND valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1' @@ -472,6 +473,7 @@ dwelfgnucompressed_LDADD = $(libelf) $(libdw) elfgetchdr_LDADD = $(libelf) $(libdw) elfgetzdata_LDADD = $(libelf) elfputzdata_LDADD = $(libelf) +zstrptr_LDADD = $(libelf) if GCOV check: check-am coverage diff --git a/tests/elfputzdata.c b/tests/elfputzdata.c index 65654f88..7e6f0114 100644 --- a/tests/elfputzdata.c +++ b/tests/elfputzdata.c @@ -77,11 +77,7 @@ main (int argc, char *argv[]) GElf_Shdr mem; GElf_Shdr *shdr = gelf_getshdr (scn, &mem); const char *name = elf_strptr (elf, strndx, shdr->sh_name); - if (idx == strndx) - { - printf ("Not compressing section string table %zd\n", idx); - } - else if (shdr->sh_type == SHT_NOBITS + if (shdr->sh_type == SHT_NOBITS || (shdr->sh_flags & SHF_ALLOC) != 0) { printf ("Cannot compress %zd %s\n", idx, name); @@ -221,6 +217,15 @@ main (int argc, char *argv[]) return -1; } free (orig_buf); + // Recompress the string table, just to make sure + // everything keeps working. See elf_strptr above. + if (! gnu && idx == strndx + && elf_compress (scn, ELFCOMPRESS_ZLIB, 0) < 0) + { + printf ("couldn't recompress section header strings: %s\n", + elf_errmsg (-1)); + return -1; + } } } diff --git a/tests/run-elfputzdata.sh b/tests/run-elfputzdata.sh index e9a352e5..b882b3f0 100755 --- a/tests/run-elfputzdata.sh +++ b/tests/run-elfputzdata.sh @@ -53,7 +53,7 @@ Lets compress 29 .debug_info, size: 960 Lets compress 30 .debug_abbrev, size: 405 Lets compress 31 .debug_line, size: 189 Lets compress 32 .note, size: 240 -Not compressing section string table 33 +Lets compress 33 .shstrtab, size: 320 Lets compress 34 .symtab, size: 5488 Lets compress 35 .strtab, size: 5727 EOF @@ -91,7 +91,7 @@ Lets compress 29 .debug_info, size: 960 Lets compress 30 .debug_abbrev, size: 405 Lets compress 31 .debug_line, size: 189 Lets compress 32 .note, size: 240 -Not compressing section string table 33 +Lets compress 33 .shstrtab, size: 320 Lets compress 34 .symtab, size: 5488 Lets compress 35 .strtab, size: 5727 EOF @@ -130,7 +130,7 @@ Lets compress 27 .debug_line, size: 709 Lets compress 28 .debug_frame, size: 56 Lets compress 29 .debug_str, size: 2235 Lets compress 30 .debug_macinfo, size: 10518 -Not compressing section string table 31 +Lets compress 31 .shstrtab, size: 308 Lets compress 32 .symtab, size: 1944 Lets compress 33 .strtab, size: 757 EOF @@ -166,7 +166,7 @@ Lets compress 27 .debug_line, size: 709 Lets compress 28 .debug_frame, size: 56 Lets compress 29 .debug_str, size: 2235 Lets compress 30 .debug_macinfo, size: 10518 -Not compressing section string table 31 +Lets compress 31 .shstrtab, size: 308 Lets compress 32 .symtab, size: 1944 Lets compress 33 .strtab, size: 757 EOF @@ -208,7 +208,7 @@ Lets compress 30 .debug_frame, size: 96 Lets compress 31 .debug_str, size: 174 Lets compress 32 .debug_loc, size: 171 Lets compress 33 .debug_ranges, size: 32 -Not compressing section string table 34 +Lets compress 34 .shstrtab, size: 352 Lets compress 35 .symtab, size: 1800 Lets compress 36 .strtab, size: 602 EOF @@ -247,7 +247,7 @@ Lets compress 30 .debug_frame, size: 96 Lets compress 31 .debug_str, size: 174 Lets compress 32 .debug_loc, size: 171 Lets compress 33 .debug_ranges, size: 32 -Not compressing section string table 34 +Lets compress 34 .shstrtab, size: 352 Lets compress 35 .symtab, size: 1800 Lets compress 36 .strtab, size: 602 EOF @@ -291,7 +291,7 @@ Lets compress 32 .debug_frame, size: 64 Lets compress 33 .debug_str, size: 179 Lets compress 34 .debug_loc, size: 99 Lets compress 35 .debug_ranges, size: 16 -Not compressing section string table 36 +Lets compress 36 .shstrtab, size: 370 Lets compress 37 .symtab, size: 1232 Lets compress 38 .strtab, size: 569 EOF @@ -332,7 +332,7 @@ Lets compress 32 .debug_frame, size: 64 Lets compress 33 .debug_str, size: 179 Lets compress 34 .debug_loc, size: 99 Lets compress 35 .debug_ranges, size: 16 -Not compressing section string table 36 +Lets compress 36 .shstrtab, size: 370 Lets compress 37 .symtab, size: 1232 Lets compress 38 .strtab, size: 569 EOF diff --git a/tests/run-zstrptr.sh b/tests/run-zstrptr.sh new file mode 100755 index 00000000..254dcd85 --- /dev/null +++ b/tests/run-zstrptr.sh @@ -0,0 +1,167 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# A random 32bit and 64bit testfile +testfiles testfile testfile10 + +testrun_compare ${abs_top_builddir}/tests/zstrptr testfile <<\EOF +Strings in section 32 (compressed): +[0] '' +[1] '.symtab' +[9] '.strtab' +[11] '.shstrtab' +[1b] '.interp' +[23] '.note.ABI-tag' +[31] '.hash' +[37] '.dynsym' +[3f] '.dynstr' +[47] '.gnu.version' +[54] '.gnu.version_r' +[63] '.rel.got' +[6c] '.rel.plt' +[75] '.init' +[7b] '.plt' +[80] '.text' +[86] '.fini' +[8c] '.rodata' +[94] '.data' +[9a] '.eh_frame' +[a4] '.ctors' +[ab] '.dtors' +[b2] '.got' +[b7] '.dynamic' +[c0] '.sbss' +[c6] '.bss' +[cb] '.stab' +[d1] '.stabstr' +[da] '.comment' +[e3] '.debug_aranges' +[f2] '.debug_pubnames' +[102] '.debug_info' +[10e] '.debug_abbrev' +[11c] '.debug_line' +[128] '.note' +Strings in section 32 (uncompressed): +[0] '' +[1] '.symtab' +[9] '.strtab' +[11] '.shstrtab' +[1b] '.interp' +[23] '.note.ABI-tag' +[31] '.hash' +[37] '.dynsym' +[3f] '.dynstr' +[47] '.gnu.version' +[54] '.gnu.version_r' +[63] '.rel.got' +[6c] '.rel.plt' +[75] '.init' +[7b] '.plt' +[80] '.text' +[86] '.fini' +[8c] '.rodata' +[94] '.data' +[9a] '.eh_frame' +[a4] '.ctors' +[ab] '.dtors' +[b2] '.got' +[b7] '.dynamic' +[c0] '.sbss' +[c6] '.bss' +[cb] '.stab' +[d1] '.stabstr' +[da] '.comment' +[e3] '.debug_aranges' +[f2] '.debug_pubnames' +[102] '.debug_info' +[10e] '.debug_abbrev' +[11c] '.debug_line' +[128] '.note' +EOF + +testrun_compare ${abs_top_builddir}/tests/zstrptr testfile10 <<\EOF +Strings in section 30 (compressed): +[0] '' +[1] '.symtab' +[9] '.strtab' +[11] '.shstrtab' +[1b] '.hash' +[21] '.dynsym' +[29] '.dynstr' +[31] '.gnu.version' +[3e] '.gnu.version_r' +[4d] '.rela.dyn' +[57] '.init' +[5d] '.text' +[63] '.fini' +[69] '.eh_frame' +[73] '.data' +[79] '.dynamic' +[82] '.ctors' +[89] '.dtors' +[90] '.jcr' +[95] '.plt' +[9a] '.got' +[9f] '.sdata' +[a6] '.sbss' +[ac] '.bss' +[b1] '.comment' +[ba] '.debug_aranges' +[c9] '.debug_pubnames' +[d9] '.debug_abbrev' +[e7] '.debug_line' +[f3] '.debug_frame' +[100] '.debug_str' +[10b] '.rela.debug_info' +Strings in section 30 (uncompressed): +[0] '' +[1] '.symtab' +[9] '.strtab' +[11] '.shstrtab' +[1b] '.hash' +[21] '.dynsym' +[29] '.dynstr' +[31] '.gnu.version' +[3e] '.gnu.version_r' +[4d] '.rela.dyn' +[57] '.init' +[5d] '.text' +[63] '.fini' +[69] '.eh_frame' +[73] '.data' +[79] '.dynamic' +[82] '.ctors' +[89] '.dtors' +[90] '.jcr' +[95] '.plt' +[9a] '.got' +[9f] '.sdata' +[a6] '.sbss' +[ac] '.bss' +[b1] '.comment' +[ba] '.debug_aranges' +[c9] '.debug_pubnames' +[d9] '.debug_abbrev' +[e7] '.debug_line' +[f3] '.debug_frame' +[100] '.debug_str' +[10b] '.rela.debug_info' +EOF + +exit 0 diff --git a/tests/zstrptr.c b/tests/zstrptr.c new file mode 100644 index 00000000..6d8e19f7 --- /dev/null +++ b/tests/zstrptr.c @@ -0,0 +1,124 @@ +/* Test program for elf_strptr function. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include ELFUTILS_HEADER(elf) +#include + +int +main (int argc, char *argv[]) +{ + if (argc != 2) + { + printf ("No ELF file given as argument"); + exit (1); + } + + const char *fname = argv[1]; + + // Initialize libelf. + elf_version (EV_CURRENT); + + /* Read the ELF from disk now. */ + int fd = open (fname, O_RDONLY); + if (fd == -1) + { + printf ("cannot open `%s' read-only: %s\n", fname, strerror (errno)); + exit (1); + } + + Elf *elf = elf_begin (fd, ELF_C_READ, NULL); + if (elf == NULL) + { + printf ("cannot create ELF descriptor read-only: %s\n", elf_errmsg (-1)); + exit (1); + } + + size_t ndx; + if (elf_getshdrstrndx (elf, &ndx) != 0) + { + printf ("cannot get section header table index: %s\n", elf_errmsg (-1)); + exit (1); + } + + if (ndx == SHN_UNDEF) + { + printf ("ELF file `%s' doesn't have a section header table index", fname); + exit (1); + } + + Elf_Scn *scn = elf_getscn (elf, ndx); + if (scn == NULL) + { + printf ("Couldn't get section %zd: %s\n", ndx, elf_errmsg (-1)); + exit (1); + } + + void print_strings (void) + { + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + + printf ("Strings in section %zd (%s):\n", ndx, + ((shdr->sh_flags & SHF_COMPRESSED) != 0 + ? "compressed" : "uncompressed")); + + size_t off = 0; + const char *str = elf_strptr (elf, ndx, off); + while (str != NULL) + { + printf ("[%zx] '%s'\n", off, str); + off += strlen (str) + 1; + str = elf_strptr (elf, ndx, off); + } + } + + if (elf_compress (scn, ELFCOMPRESS_ZLIB, 0) < 0) + { + printf ("Couldn't compress section %zd: %s\n", ndx, elf_errmsg (-1)); + exit (1); + } + print_strings (); + + if (elf_compress (scn, 0, 0) < 0) + { + printf ("Couldn't decompress section %zd: %s\n", ndx, elf_errmsg (-1)); + exit (1); + } + print_strings (); + + if (elf_end (elf) != 0) + { + printf ("failure in elf_end: %s\n", elf_errmsg (-1)); + exit (1); + } + + close (fd); + + return 0; +} -- cgit v1.2.3 From e5f976bcb1b3a27bd89d8d32c0cebb0c14c0e6d2 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 18 Dec 2015 15:51:37 +0100 Subject: elflint: Recognize and check SHF_COMPRESSED section flag. SHF_COMPRESSED is a valid section flag, it can optionally be on any special section, but it cannot be used on NOBITS sections or together with SHF_ALLOC. A section that has SHF_COMPRESSED set must have a valid Chdr. Signed-off-by: Mark Wielaard --- src/ChangeLog | 8 ++++++++ src/elflint.c | 45 +++++++++++++++++++++++++++++++++++---------- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 1b5be54c..a6d4a975 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2015-12-18 Mark Wielaard + + * elflint.c (section_flags_string): Add NEWFLAG COMPRESSED. + (check_sections): SHF_COMPRESSED can be on any special section. + SHF_COMPRESSED is a valid section flag. SHF_COMPRESSED cannot + be used together with SHF_ALLOC or with SHT_NOBITS. Should have + a valid Chdr. + 2015-10-20 Mark Wielaard * readelf.c (options): Expand -z help text. diff --git a/src/elflint.c b/src/elflint.c index bb97f598..7a7b9ce4 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -1,5 +1,5 @@ /* Pedantic checking of ELF files compliance with gABI/psABI spec. - Copyright (C) 2001-2014 Red Hat, Inc. + Copyright (C) 2001-2015 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper , 2001. @@ -2750,7 +2750,8 @@ section_flags_string (GElf_Word flags, char *buf, size_t len) NEWFLAG (LINK_ORDER), NEWFLAG (OS_NONCONFORMING), NEWFLAG (GROUP), - NEWFLAG (TLS) + NEWFLAG (TLS), + NEWFLAG (COMPRESSED) }; #undef NEWFLAG const size_t nknown_flags = sizeof (known_flags) / sizeof (known_flags[0]); @@ -3698,7 +3699,8 @@ zeroth section has nonzero link value while ELF header does not signal overflow size_t versym_scnndx = 0; for (size_t cnt = 1; cnt < shnum; ++cnt) { - shdr = gelf_getshdr (elf_getscn (ebl->elf, cnt), &shdr_mem); + Elf_Scn *scn = elf_getscn (ebl->elf, cnt); + shdr = gelf_getshdr (scn, &shdr_mem); if (shdr == NULL) { ERROR (gettext ("\ @@ -3748,9 +3750,11 @@ section [%2d] '%s' has wrong type: expected %s, is %s\n"), if (special_sections[s].attrflag == exact || special_sections[s].attrflag == exact_or_gnuld) { - /* Except for the link order and group bit all the - other bits should match exactly. */ - if ((shdr->sh_flags & ~(SHF_LINK_ORDER | SHF_GROUP)) + /* Except for the link order, group bit and + compression flag all the other bits should + match exactly. */ + if ((shdr->sh_flags + & ~(SHF_LINK_ORDER | SHF_GROUP | SHF_COMPRESSED)) != special_sections[s].attr && (special_sections[s].attrflag == exact || !gnuld)) ERROR (gettext ("\ @@ -3766,9 +3770,10 @@ section [%2zu] '%s' has wrong flags: expected %s, is %s\n"), { if ((shdr->sh_flags & special_sections[s].attr) != special_sections[s].attr - || ((shdr->sh_flags & ~(SHF_LINK_ORDER | SHF_GROUP - | special_sections[s].attr - | special_sections[s].attr2)) + || ((shdr->sh_flags + & ~(SHF_LINK_ORDER | SHF_GROUP | SHF_COMPRESSED + | special_sections[s].attr + | special_sections[s].attr2)) != 0)) ERROR (gettext ("\ section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"), @@ -3871,7 +3876,8 @@ section [%2zu] '%s': size not multiple of entry size\n"), #define ALL_SH_FLAGS (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_MERGE \ | SHF_STRINGS | SHF_INFO_LINK | SHF_LINK_ORDER \ - | SHF_OS_NONCONFORMING | SHF_GROUP | SHF_TLS) + | SHF_OS_NONCONFORMING | SHF_GROUP | SHF_TLS \ + | SHF_COMPRESSED) if (shdr->sh_flags & ~(GElf_Xword) ALL_SH_FLAGS) { GElf_Xword sh_flags = shdr->sh_flags & ~(GElf_Xword) ALL_SH_FLAGS; @@ -3901,6 +3907,25 @@ section [%2zu] '%s': thread-local data sections address not zero\n"), // XXX TODO more tests!? } + if (shdr->sh_flags & SHF_COMPRESSED) + { + if (shdr->sh_flags & SHF_ALLOC) + ERROR (gettext ("\ +section [%2zu] '%s': allocated section cannot be compressed\n"), + cnt, section_name (ebl, cnt)); + + if (shdr->sh_type == SHT_NOBITS) + ERROR (gettext ("\ +section [%2zu] '%s': nobits section cannot be compressed\n"), + cnt, section_name (ebl, cnt)); + + GElf_Chdr chdr; + if (gelf_getchdr (scn, &chdr) == NULL) + ERROR (gettext ("\ +section [%2zu] '%s': compressed section with no compression header: %s\n"), + cnt, section_name (ebl, cnt), elf_errmsg (-1)); + } + if (shdr->sh_link >= shnum) ERROR (gettext ("\ section [%2zu] '%s': invalid section reference in link value\n"), -- cgit v1.2.3 From 92acb57eb0468de93c4976eb1de6bf08ede9abd0 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 1 Dec 2015 14:55:07 +0100 Subject: elfcompress: New utility. Usage: elfcompress [OPTION...] FILE... Compress or decompress sections in an ELF file. -f, --force Force compression of section even if it would become larger -n, --name=SECTION SECTION name to (de)compress, SECTION is an extended wildcard pattern (defaults to '.?(z)debug*') -o, --output=FILE Place (de)compressed output into FILE -p, --permissive Relax a few rules to handle slightly broken ELF files -q, --quiet Be silent when a section cannot be compressed -t, --type=TYPE What type of compression to apply. TYPE can be 'none' (decompress), 'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias) or 'zlib-gnu' (.zdebug GNU style compression, 'gnu' is an alias) -v, --verbose Print a message for each section being (de)compressed -?, --help Give this help list --usage Give a short usage message -V, --version Print program version Signed-off-by: Mark Wielaard --- src/ChangeLog | 6 + src/Makefile.am | 3 +- src/elfcompress.c | 1321 ++++++++++++++++++++++++++++++++++++++++++++ tests/ChangeLog | 6 + tests/Makefile.am | 5 +- tests/run-compress-test.sh | 102 ++++ 6 files changed, 1440 insertions(+), 3 deletions(-) create mode 100644 src/elfcompress.c create mode 100755 tests/run-compress-test.sh diff --git a/src/ChangeLog b/src/ChangeLog index a6d4a975..ae2129d9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2015-12-16 Mark Wielaard + + * elfcompress.c: New file. + * Makefile.am (bin_PROGRAMS): Add elfcompress. + (elfcompress_LDADD): New variable. + 2015-12-18 Mark Wielaard * elflint.c (section_flags_string): Add NEWFLAG COMPRESSED. diff --git a/src/Makefile.am b/src/Makefile.am index e2c494c0..a39df279 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,7 +35,7 @@ native_ld = @native_ld@ base_cpu = @base_cpu@ bin_PROGRAMS = readelf nm size strip ld elflint findtextrel addr2line \ - elfcmp objdump ranlib strings ar unstrip stack + elfcmp objdump ranlib strings ar unstrip stack elfcompress ld_dsos = libld_elf_i386_pic.a @@ -125,6 +125,7 @@ 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) +elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) ldlex.o: ldscript.c ldlex_no_Werror = yes diff --git a/src/elfcompress.c b/src/elfcompress.c new file mode 100644 index 00000000..5be2375d --- /dev/null +++ b/src/elfcompress.c @@ -0,0 +1,1321 @@ +/* Compress or decompress an ELF file. + Copyright (C) 2015 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include ELFUTILS_HEADER(elf) +#include ELFUTILS_HEADER(ebl) +#include +#include "system.h" + +/* Name and version of program. */ +static void print_version (FILE *stream, struct argp_state *state); +ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +/* Bug report address. */ +ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT; + +static int verbose = 0; /* < 0, no warnings, > 0 extra verbosity. */ +static bool force = false; +static bool permissive = false; +static const char *foutput = NULL; + +#define T_UNSET 0 +#define T_DECOMPRESS 1 /* none */ +#define T_COMPRESS_ZLIB 2 /* zlib */ +#define T_COMPRESS_GNU 3 /* zlib-gnu */ +static int type = T_UNSET; + +static void +print_version (FILE *stream, struct argp_state *state __attribute__ ((unused))) +{ + fprintf (stream, "elfcompress (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION); +} + +struct section_pattern +{ + char *pattern; + struct section_pattern *next; +}; + +static struct section_pattern *patterns = NULL; + +static void +add_pattern (const char *pattern) +{ + struct section_pattern *p = xmalloc (sizeof *p); + p->pattern = xstrdup (pattern); + p->next = patterns; + patterns = p; +} + +static void +free_patterns (void) +{ + struct section_pattern *pattern = patterns; + while (pattern != NULL) + { + struct section_pattern *p = pattern; + pattern = p->next; + free (p->pattern); + free (p); + } +} + +static error_t +parse_opt (int key, char *arg __attribute__ ((unused)), + struct argp_state *state __attribute__ ((unused))) +{ + switch (key) + { + case 'v': + verbose++; + break; + + case 'q': + verbose--; + + case 'f': + force = true; + break; + + case 'p': + permissive = true; + break; + + case 'n': + add_pattern (arg); + break; + + case 'o': + if (foutput != NULL) + argp_error (state, N_("-o option specified twice")); + else + foutput = arg; + break; + + case 't': + if (type != T_UNSET) + argp_error (state, N_("-t option specified twice")); + + if (strcmp ("none", arg) == 0) + type = T_DECOMPRESS; + else if (strcmp ("zlib", arg) == 0 || strcmp ("zlib-gabi", arg) == 0) + type = T_COMPRESS_ZLIB; + else if (strcmp ("zlib-gnu", arg) == 0 || strcmp ("gnu", arg) == 0) + type = T_COMPRESS_GNU; + else + argp_error (state, N_("unknown compression type '%s'"), arg); + break; + + case ARGP_KEY_SUCCESS: + if (type == T_UNSET) + type = T_COMPRESS_ZLIB; + if (patterns == NULL) + add_pattern (".?(z)debug*"); + break; + + case ARGP_KEY_NO_ARGS: + /* We need at least one input file. */ + argp_error (state, N_("No input file given")); + break; + + case ARGP_KEY_ARGS: + if (foutput != NULL && state->argc - state->next > 1) + argp_error (state, + N_("Only one input file allowed together with '-o'")); + /* We only use this for checking the number of arguments, we don't + actually want to consume them, so fallthrough. */ + default: + return ARGP_ERR_UNKNOWN; + } + return 0; +} + +static bool +section_name_matches (const char *name) +{ + struct section_pattern *pattern = patterns; + while (pattern != NULL) + { + if (fnmatch (pattern->pattern, name, FNM_EXTMATCH) == 0) + return true; + pattern = pattern->next; + } + return false; +} + +static int +setshdrstrndx (Elf *elf, GElf_Ehdr *ehdr, size_t ndx) +{ + if (ndx < SHN_LORESERVE) + ehdr->e_shstrndx = ndx; + else + { + ehdr->e_shstrndx = SHN_XINDEX; + Elf_Scn *zscn = elf_getscn (elf, 0); + GElf_Shdr zshdr_mem; + GElf_Shdr *zshdr = gelf_getshdr (zscn, &zshdr_mem); + if (zshdr == NULL) + return -1; + zshdr->sh_link = ndx; + if (gelf_update_shdr (zscn, zshdr) == 0) + return -1; + } + + if (gelf_update_ehdr (elf, ehdr) == 0) + return -1; + + return 0; +} + +static int +compress_section (Elf_Scn *scn, size_t orig_size, const char *name, + const char *newname, size_t ndx, + bool gnu, bool compress, bool report_verbose) +{ + int res; + unsigned int flags = compress && force ? ELF_CHF_FORCE : 0; + if (gnu) + res = elf_compress_gnu (scn, compress ? 1 : 0, flags); + else + res = elf_compress (scn, compress ? ELFCOMPRESS_ZLIB : 0, flags); + + if (res < 0) + error (0, 0, "Couldn't decompress section [%zd] %s: %s", + ndx, name, elf_errmsg (-1)); + else + { + if (compress && res == 0) + { + if (verbose >= 0) + printf ("[%zd] %s NOT compressed, wouldn't be smaller\n", + ndx, name); + } + + if (report_verbose && res > 0) + { + printf ("[%zd] %s %s", ndx, name, + compress ? "compressed" : "decompressed"); + if (newname != NULL) + printf (" -> %s", newname); + + /* Reload shdr, it has changed. */ + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for section [%zd]", ndx); + return -1; + } + float new = shdr->sh_size; + float orig = orig_size ?: 1; + printf (" (%" PRIu64 " => %" PRIu64 " %.2f%%)\n", + orig_size, shdr->sh_size, (new / orig) * 100); + } + } + + return res; +} + +static int +process_file (const char *fname) +{ + if (verbose > 0) + printf ("processing: %s\n", fname); + + /* The input ELF. */ + int fd = -1; + Elf *elf = NULL; + + /* The output ELF. */ + char *fnew = NULL; + int fdnew = -1; + Elf *elfnew = NULL; + + /* Buffer for (one) new section name if necessary. */ + char *snamebuf = NULL; + + /* String table (and symbol table), if section names need adjusting. */ + struct Ebl_Strtab *names = NULL; + struct Ebl_Strent **scnstrents = NULL; + struct Ebl_Strent **symstrents = NULL; + char **scnnames = NULL; + + /* Section data from names. */ + void *namesbuf = NULL; + + /* Which sections match and need to be (un)compressed. */ + unsigned int *sections = NULL; + + /* How many sections are we talking about? */ + size_t shnum = 0; + +#define WORD_BITS (8U * sizeof (unsigned int)) + void set_section (size_t ndx) + { + sections[ndx / WORD_BITS] |= (1U << (ndx % WORD_BITS)); + } + + bool get_section (size_t ndx) + { + return (sections[ndx / WORD_BITS] & (1U << (ndx % WORD_BITS))) != 0; + } + + int cleanup (int res) + { + elf_end (elf); + close (fd); + + elf_end (elfnew); + close (fdnew); + + if (fnew != NULL) + { + unlink (fnew); + free (fnew); + fnew = NULL; + } + + free (snamebuf); + if (names != NULL) + { + ebl_strtabfree (names); + free (scnstrents); + free (symstrents); + free (namesbuf); + if (scnnames != NULL) + { + for (size_t n = 0; n < shnum; n++) + free (scnnames[n]); + free (scnnames); + } + } + + free (sections); + + return res; + } + + fd = open (fname, O_RDONLY); + if (fd < 0) + { + error (0, errno, "Couldn't open %s\n", fname); + return cleanup (-1); + } + + elf = elf_begin (fd, ELF_C_READ, NULL); + if (elf == NULL) + { + error (0, 0, "Couldn't open ELF file %s for reading: %s", + fname, elf_errmsg (-1)); + return cleanup (-1); + } + + /* We dont' handle ar files (or anything else), we probably should. */ + Elf_Kind kind = elf_kind (elf); + if (kind != ELF_K_ELF) + { + if (kind == ELF_K_AR) + error (0, 0, "Cannot handle ar files: %s", fname); + else + error (0, 0, "Unknown file type: %s", fname); + return cleanup (-1); + } + + struct stat st; + if (fstat (fd, &st) != 0) + { + error (0, errno, "Couldn't fstat %s", fname); + return cleanup (-1); + } + + GElf_Ehdr ehdr; + if (gelf_getehdr (elf, &ehdr) == NULL) + { + error (0, 0, "Couldn't get ehdr for %s: %s", fname, elf_errmsg (-1)); + return cleanup (-1); + } + + /* Get the section header string table. */ + size_t shdrstrndx; + if (elf_getshdrstrndx (elf, &shdrstrndx) != 0) + { + error (0, 0, "Couldn't get section header string table index in %s: %s", + fname, elf_errmsg (-1)); + return cleanup (-1); + } + + /* How many sections are we talking about? */ + if (elf_getshdrnum (elf, &shnum) != 0) + { + error (0, 0, "Couldn't get number of sections in %s: %s", + fname, elf_errmsg (1)); + return cleanup (-1); + } + + if (shnum == 0) + { + error (0, 0, "ELF file %s has no sections", fname); + return cleanup (-1); + } + + sections = xcalloc (shnum / 8 + 1, sizeof (unsigned int)); + + size_t phnum; + if (elf_getphdrnum (elf, &phnum) != 0) + { + error (0, 0, "Couldn't get phdrnum: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + /* Whether we need to adjust any section names (going to/from GNU + naming). If so we'll need to build a new section header string + table. */ + bool adjust_names = false; + + /* If there are phdrs we want to maintain the layout of the + allocated sections in the file. */ + bool layout = phnum != 0; + + /* While going through all sections keep track of last section data + offset if needed to keep the layout. We are responsible for + adding the section offsets and headers (e_shoff) in that case + (which we will place after the last section). */ + GElf_Off last_offset = 0; + if (layout) + last_offset = (ehdr.e_phoff + + gelf_fsize (elf, ELF_T_PHDR, phnum, EV_CURRENT)); + + /* Which section, if any, is a symbol table that shares a string + table with the section header string table? */ + size_t symtabndx = 0; + + /* We do three passes over all sections. + + First an inspection pass over the old Elf to see which section + data needs to be copied and/or transformed, which sections need a + names change and whether there is a symbol table that might need + to be adjusted be if the section header name table is changed. + + Second a collection pass that creates the Elf sections and copies + the data. This pass will compress/decompress section data when + needed. And it will collect all data needed if we'll need to + construct a new string table. Afterwards the new string table is + constructed. + + Third a fixup/adjustment pass over the new Elf that will adjust + any section references (names) and adjust the layout based on the + new sizes of the sections if necessary. This pass is optional if + we aren't responsible for the layout and the section header + string table hasn't been changed. */ + + /* Inspection pass. */ + size_t maxnamelen = 0; + Elf_Scn *scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + size_t ndx = elf_ndxscn (scn); + if (ndx > shnum) + { + error (0, 0, "Unexpected section number %zd, expected only %zd", + ndx, shnum); + cleanup (-1); + } + + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for section %zd", ndx); + return cleanup (-1); + } + + const char *sname = elf_strptr (elf, shdrstrndx, shdr->sh_name); + if (sname == NULL) + { + error (0, 0, "Couldn't get name for section %zd", ndx); + return cleanup (-1); + } + + if (section_name_matches (sname)) + { + if (shdr->sh_type != SHT_NOBITS + && (shdr->sh_flags & SHF_ALLOC) == 0) + { + set_section (ndx); + /* Check if we might want to change this section name. */ + if (! adjust_names + && ((type != T_COMPRESS_GNU + && strncmp (sname, ".zdebug", + strlen (".zdebug")) == 0) + || (type == T_COMPRESS_GNU + && strncmp (sname, ".debug", + strlen (".debug")) == 0))) + adjust_names = true; + + /* We need a buffer this large if we change the names. */ + if (adjust_names) + { + size_t slen = strlen (sname); + if (slen > maxnamelen) + maxnamelen = slen; + } + } + else + if (verbose >= 0) + printf ("[%zd] %s ignoring %s section\n", ndx, sname, + (shdr->sh_type == SHT_NOBITS ? "no bits" : "allocated")); + } + + if (shdr->sh_type == SHT_SYMTAB) + { + /* Check if we might have to adjust the symbol name indexes. */ + if (shdr->sh_link == shdrstrndx) + { + if (symtabndx != 0) + { + error (0, 0, + "Multiple symbol tables (%zd, %zd) using the same string table unsupported", symtabndx, ndx); + return cleanup (-1); + } + symtabndx = ndx; + } + } + + /* Keep track of last allocated data offset. */ + if (layout) + if ((shdr->sh_flags & SHF_ALLOC) != 0) + { + GElf_Off off = shdr->sh_offset + (shdr->sh_type != SHT_NOBITS + ? shdr->sh_size : 0); + if (last_offset < off) + last_offset = off; + } + } + + if (adjust_names) + { + names = ebl_strtabinit (true); + if (names == NULL) + { + error (0, 0, "Not enough memory for new strtab"); + return cleanup (-1); + } + scnstrents = xmalloc (shnum + * sizeof (struct Ebl_Strent *)); + scnnames = xcalloc (shnum, sizeof (char *)); + } + + /* Create a new (temporary) ELF file for the result. */ + if (foutput == NULL) + { + size_t fname_len = strlen (fname); + fnew = xmalloc (fname_len + sizeof (".XXXXXX")); + strcpy (mempcpy (fnew, fname, fname_len), ".XXXXXX"); + fdnew = mkstemp (fnew); + } + else + { + fnew = xstrdup (foutput); + fdnew = open (fnew, O_WRONLY | O_CREAT, st.st_mode & ALLPERMS); + } + + if (fdnew < 0) + { + error (0, errno, "Couldn't create output file %s", fnew); + /* Since we didn't create it we don't want to try to unlink it. */ + free (fnew); + fnew = NULL; + return cleanup (-1); + } + + elfnew = elf_begin (fdnew, ELF_C_WRITE, NULL); + if (elfnew == NULL) + { + error (0, 0, "Couldn't open new ELF %s for writing: %s", + fnew, elf_errmsg (-1)); + return cleanup (-1); + } + + /* Create the new ELF header and copy over all the data. */ + if (gelf_newehdr (elfnew, gelf_getclass (elf)) == 0) + { + error (0, 0, "Couldn't create new ehdr: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + GElf_Ehdr newehdr; + if (gelf_getehdr (elfnew, &newehdr) == NULL) + { + error (0, 0, "Couldn't get new ehdr: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + newehdr.e_ident[EI_DATA] = ehdr.e_ident[EI_DATA]; + newehdr.e_type = ehdr.e_type; + newehdr.e_machine = ehdr.e_machine; + newehdr.e_version = ehdr.e_version; + newehdr.e_entry = ehdr.e_entry; + newehdr.e_flags = ehdr.e_flags; + + if (gelf_update_ehdr (elfnew, &newehdr) == 0) + { + error (0, 0, "Couldn't update ehdr: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + /* Copy over the phdrs as is. */ + if (phnum != 0) + { + if (gelf_newphdr (elfnew, phnum) == 0) + { + error (0, 0, "Couldn't create phdrs: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + for (size_t cnt = 0; cnt < phnum; ++cnt) + { + GElf_Phdr phdr_mem; + GElf_Phdr *phdr = gelf_getphdr (elf, cnt, &phdr_mem); + if (phdr == NULL) + { + error (0, 0, "Couldn't get phdr %zd: %s", cnt, elf_errmsg (-1)); + return cleanup (-1); + } + if (gelf_update_phdr (elfnew, cnt, phdr) == 0) + { + error (0, 0, "Couldn't create phdr %zd: %s", cnt, + elf_errmsg (-1)); + return cleanup (-1); + } + } + } + + /* Possibly add a 'z' and zero terminator. */ + if (maxnamelen > 0) + snamebuf = xmalloc (maxnamelen + 2); + + /* We might want to read/adjust the section header strings and + symbol tables. If so, and those sections are to be compressed + then we will have to decompress it during the collection pass and + compress it again in the fixup pass. Don't compress unnecessary + and keep track of whether or not to compress them (later in the + fixup pass). Also record the original size, so we can report the + difference later when we do compress. */ + int shstrtab_compressed = T_UNSET; + size_t shstrtab_size = 0; + char *shstrtab_name = NULL; + char *shstrtab_newname = NULL; + int symtab_compressed = T_UNSET; + size_t symtab_size = 0; + char *symtab_name = NULL; + char *symtab_newname = NULL; + + /* Collection pass. Copy over the sections, (de)compresses matching + sections, collect names of sections and symbol table if + necessary. */ + scn = NULL; + while ((scn = elf_nextscn (elf, scn)) != NULL) + { + size_t ndx = elf_ndxscn (scn); + assert (ndx < shnum); + + /* (de)compress if section matched. */ + char *sname = NULL; + char *newname = NULL; + if (get_section (ndx)) + { + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for section %zd", ndx); + return cleanup (-1); + } + + uint64_t size = shdr->sh_size; + sname = elf_strptr (elf, shdrstrndx, shdr->sh_name); + if (sname == NULL) + { + error (0, 0, "Couldn't get name for section %zd", ndx); + return cleanup (-1); + } + + /* strdup sname, the shdrstrndx section itself might be + (de)compressed, invalidating the string pointers. */ + sname = xstrdup (sname); + + /* We might want to decompress (and rename), but not + compress during this pass since we might need the section + data in later passes. Skip those sections for now and + compress them in the fixup pass. */ + bool skip_compress_section = (adjust_names + && (ndx == shdrstrndx + || ndx == symtabndx)); + + switch (type) + { + case T_DECOMPRESS: + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + if (compress_section (scn, size, sname, NULL, ndx, + false, false, verbose > 0) < 0) + return cleanup (-1); + } + else if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0) + { + snamebuf[0] = '.'; + strcpy (&snamebuf[1], &sname[2]); + newname = snamebuf; + if (compress_section (scn, size, sname, newname, ndx, + true, false, verbose > 0) < 0) + return cleanup (-1); + } + else if (verbose > 0) + printf ("[%zd] %s already decompressed\n", ndx, sname); + break; + + case T_COMPRESS_GNU: + if (strncmp (sname, ".debug", strlen (".debug")) == 0) + { + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + { + /* First decompress to recompress GNU style. + Don't report even when verbose. */ + if (compress_section (scn, size, sname, NULL, ndx, + false, false, false) < 0) + return cleanup (-1); + } + + snamebuf[0] = '.'; + snamebuf[1] = 'z'; + strcpy (&snamebuf[2], &sname[1]); + newname = snamebuf; + + if (skip_compress_section) + { + if (ndx == shdrstrndx) + { + shstrtab_size = size; + shstrtab_compressed = T_COMPRESS_GNU; + shstrtab_name = xstrdup (sname); + shstrtab_newname = xstrdup (newname); + } + else + { + symtab_size = size; + symtab_compressed = T_COMPRESS_GNU; + symtab_name = xstrdup (sname); + symtab_newname = xstrdup (newname); + } + } + else + { + int res = compress_section (scn, size, sname, newname, + ndx, true, true, + verbose > 0); + if (res < 0) + return cleanup (-1); + + if (res == 0) + newname = NULL; + } + } + else if (verbose >= 0) + { + if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0) + printf ("[%zd] %s unchanged, already GNU compressed", + ndx, sname); + else + printf ("[%zd] %s cannot GNU compress section not starting with .debug\n", + ndx, sname); + } + break; + + case T_COMPRESS_ZLIB: + if ((shdr->sh_flags & SHF_COMPRESSED) == 0) + { + if (strncmp (sname, ".zdebug", strlen (".zdebug")) == 0) + { + /* First decompress to recompress zlib style. + Don't report even when verbose. */ + if (compress_section (scn, size, sname, NULL, ndx, + true, false, false) < 0) + return cleanup (-1); + + snamebuf[0] = '.'; + strcpy (&snamebuf[1], &sname[2]); + newname = snamebuf; + } + + if (skip_compress_section) + { + if (ndx == shdrstrndx) + { + shstrtab_size = size; + shstrtab_compressed = T_COMPRESS_ZLIB; + shstrtab_name = xstrdup (sname); + shstrtab_newname = (newname == NULL + ? NULL : xstrdup (newname)); + } + else + { + symtab_size = size; + symtab_compressed = T_COMPRESS_ZLIB; + symtab_name = xstrdup (sname); + symtab_newname = (newname == NULL + ? NULL : xstrdup (newname)); + } + } + else if (compress_section (scn, size, sname, newname, ndx, + false, true, verbose > 0) < 0) + return cleanup (-1); + } + else if (verbose > 0) + printf ("[%zd] %s already compressed\n", ndx, sname); + break; + } + + free (sname); + } + + Elf_Scn *newscn = elf_newscn (elfnew); + if (newscn == NULL) + { + error (0, 0, "Couldn't create new section %zd", ndx); + return cleanup (-1); + } + + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for section %zd", ndx); + return cleanup (-1); + } + + if (gelf_update_shdr (newscn, shdr) == 0) + { + error (0, 0, "Couldn't update section header %zd", ndx); + return cleanup (-1); + } + + /* Except for the section header string table all data can be + copied as is. The section header string table will be + created later and the symbol table might be fixed up if + necessary. */ + if (! adjust_names || ndx != shdrstrndx) + { + Elf_Data *data = elf_getdata (scn, NULL); + if (data == NULL) + { + error (0, 0, "Couldn't get data from section %zd", ndx); + return cleanup (-1); + } + + Elf_Data *newdata = elf_newdata (newscn); + if (newdata == NULL) + { + error (0, 0, "Couldn't create new data for section %zd", ndx); + return cleanup (-1); + } + + *newdata = *data; + } + + /* Keep track of the (new) section names. */ + if (adjust_names) + { + char *name; + if (newname != NULL) + name = newname; + else + { + name = elf_strptr (elf, shdrstrndx, shdr->sh_name); + if (name == NULL) + { + error (0, 0, "Couldn't get name for section [%zd]", ndx); + return cleanup (-1); + } + } + + /* We need to keep a copy of the name till the strtab is done. */ + name = scnnames[ndx] = xstrdup (name); + if ((scnstrents[ndx] = ebl_strtabadd (names, name, 0)) == NULL) + { + error (0, 0, "No memory to add section name string table"); + return cleanup (-1); + } + + /* If the symtab shares strings then add those too. */ + if (ndx == symtabndx) + { + /* If the section is (still) compressed we'll need to + uncompress it first to adjust the data, then + recompress it in the fixup pass. */ + if (symtab_compressed == T_UNSET) + { + size_t size = shdr->sh_size; + if ((shdr->sh_flags == SHF_COMPRESSED) != 0) + { + /* Don't report the (internal) uncompression. */ + if (compress_section (newscn, size, sname, NULL, ndx, + false, false, false) < 0) + return cleanup (-1); + + symtab_size = size; + symtab_compressed = T_COMPRESS_ZLIB; + } + else if (strncmp (name, ".zdebug", strlen (".zdebug")) == 0) + { + /* Don't report the (internal) uncompression. */ + if (compress_section (newscn, size, sname, NULL, ndx, + true, false, false) < 0) + return cleanup (-1); + + symtab_size = size; + symtab_compressed = T_COMPRESS_GNU; + } + } + + Elf_Data *symd = elf_getdata (newscn, NULL); + if (symd == NULL) + { + error (0, 0, "Couldn't get symtab data for section [%zd] %s", + ndx, name); + return cleanup (-1); + } + size_t elsize = gelf_fsize (elfnew, ELF_T_SYM, 1, EV_CURRENT); + size_t syms = symd->d_size / elsize; + symstrents = xmalloc (syms * sizeof (struct Ebl_Strent *)); + for (size_t i = 0; i < syms; i++) + { + GElf_Sym sym_mem; + GElf_Sym *sym = gelf_getsym (symd, i, &sym_mem); + if (sym == NULL) + { + error (0, 0, "Couldn't get symbol %zd", i); + return cleanup (-1); + } + if (sym->st_name != 0) + { + /* Note we take the name from the original ELF, + since the new one will not have setup the + strtab yet. */ + const char *symname = elf_strptr (elf, shdrstrndx, + sym->st_name); + if (symname == NULL) + { + error (0, 0, "Couldn't get symbol %zd name", i); + return cleanup (-1); + } + symstrents[i] = ebl_strtabadd (names, symname, 0); + if (symstrents[i] == NULL) + { + error (0, 0, "No memory to add to symbol name"); + return cleanup (-1); + } + } + } + } + } + } + + if (adjust_names) + { + /* We got all needed strings, put the new data in the shstrtab. */ + if (verbose > 0) + printf ("[%zd] Updating section string table\n", shdrstrndx); + + scn = elf_getscn (elfnew, shdrstrndx); + if (scn == NULL) + { + error (0, 0, "Couldn't get new section header string table [%zd]", + shdrstrndx); + return cleanup (-1); + } + + Elf_Data *data = elf_newdata (scn); + if (data == NULL) + { + error (0, 0, "Couldn't create new section header string table data"); + return cleanup (-1); + } + ebl_strtabfinalize (names, data); + namesbuf = data->d_buf; + + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for new section strings %zd", + shdrstrndx); + return cleanup (-1); + } + + /* Note that we also might have to compress and possibly set + sh_off below */ + shdr->sh_name = ebl_strtaboffset (scnstrents[shdrstrndx]); + shdr->sh_type = SHT_STRTAB; + shdr->sh_flags = 0; + shdr->sh_addr = 0; + shdr->sh_offset = 0; + shdr->sh_size = data->d_size; + shdr->sh_link = SHN_UNDEF; + shdr->sh_info = SHN_UNDEF; + shdr->sh_addralign = 1; + shdr->sh_entsize = 0; + + if (gelf_update_shdr (scn, shdr) == 0) + { + error (0, 0, "Couldn't update new section strings [%zd]", + shdrstrndx); + return cleanup (-1); + } + + /* We might have to compress the data if the user asked us to, + or if the section was already compressed (and the user didn't + ask for decompression). Note somewhat identical code for + symtab below. */ + if (shstrtab_compressed == T_UNSET) + { + /* The user didn't ask for compression, but maybe it was + compressed in the original ELF file. */ + Elf_Scn *oldscn = elf_getscn (elf, shdrstrndx); + if (oldscn == NULL) + { + error (0, 0, "Couldn't get section header string table [%zd]", + shdrstrndx); + return cleanup (-1); + } + + shdr = gelf_getshdr (oldscn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for old section strings [%zd]", + shdrstrndx); + return cleanup (-1); + } + + shstrtab_name = elf_strptr (elf, shdrstrndx, shdr->sh_name); + if (shstrtab_name == NULL) + { + error (0, 0, "Couldn't get name for old section strings [%zd]", + shdrstrndx); + return cleanup (-1); + } + + shstrtab_size = shdr->sh_size; + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + shstrtab_compressed = T_COMPRESS_ZLIB; + else if (strncmp (shstrtab_name, ".zdebug", strlen (".zdebug")) == 0) + shstrtab_compressed = T_COMPRESS_GNU; + } + + /* Should we (re)compress? */ + if (shstrtab_compressed != T_UNSET) + { + if (compress_section (scn, shstrtab_size, shstrtab_name, + shstrtab_newname, shdrstrndx, + shstrtab_compressed == T_COMPRESS_GNU, + true, verbose > 0) < 0) + return cleanup (-1); + } + } + + /* Make sure to re-get the new ehdr. Adding phdrs and shdrs will + have changed it. */ + if (gelf_getehdr (elfnew, &newehdr) == NULL) + { + error (0, 0, "Couldn't re-get new ehdr: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + /* Set this after the sections have been created, otherwise section + zero might not exist yet. */ + if (setshdrstrndx (elfnew, &newehdr, shdrstrndx) != 0) + { + error (0, 0, "Couldn't set new shdrstrndx: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + /* Fixup pass. Adjust string table references, symbol table and + layout if necessary. */ + if (layout || adjust_names) + { + scn = NULL; + while ((scn = elf_nextscn (elfnew, scn)) != NULL) + { + size_t ndx = elf_ndxscn (scn); + + GElf_Shdr shdr_mem; + GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get shdr for section %zd", ndx); + return cleanup (-1); + } + + /* Keep the offset of allocated sections so they are at the + same place in the file. Add (possibly changed) + unallocated ones after the allocated ones. */ + if ((shdr->sh_flags & SHF_ALLOC) == 0) + { + /* Zero means one. No alignment constraints. */ + size_t addralign = shdr->sh_addralign ?: 1; + last_offset = (last_offset + addralign - 1) & ~(addralign - 1); + shdr->sh_offset = last_offset; + if (shdr->sh_type != SHT_NOBITS) + last_offset += shdr->sh_size; + } + + if (adjust_names) + shdr->sh_name = ebl_strtaboffset (scnstrents[ndx]); + + if (gelf_update_shdr (scn, shdr) == 0) + { + error (0, 0, "Couldn't update section header %zd", ndx); + return cleanup (-1); + } + + if (adjust_names && ndx == symtabndx) + { + if (verbose > 0) + printf ("[%zd] Updating symbol table\n", symtabndx); + + Elf_Data *symd = elf_getdata (scn, NULL); + if (symd == NULL) + { + error (0, 0, "Couldn't get new symtab data section [%zd]", + ndx); + return cleanup (-1); + } + size_t elsize = gelf_fsize (elfnew, ELF_T_SYM, 1, EV_CURRENT); + size_t syms = symd->d_size / elsize; + for (size_t i = 0; i < syms; i++) + { + GElf_Sym sym_mem; + GElf_Sym *sym = gelf_getsym (symd, i, &sym_mem); + if (sym == NULL) + { + error (0, 0, "2 Couldn't get symbol %zd", i); + return cleanup (-1); + } + + if (sym->st_name != 0) + { + sym->st_name = ebl_strtaboffset (symstrents[i]); + + if (gelf_update_sym (symd, i, sym) == 0) + { + error (0, 0, "Couldn't update symbol %zd", i); + return cleanup (-1); + } + } + } + + /* We might have to compress the data if the user asked + us to, or if the section was already compressed (and + the user didn't ask for decompression). Note + somewhat identical code for shstrtab above. */ + if (symtab_compressed == T_UNSET) + { + /* The user didn't ask for compression, but maybe it was + compressed in the original ELF file. */ + Elf_Scn *oldscn = elf_getscn (elf, symtabndx); + if (oldscn == NULL) + { + error (0, 0, "Couldn't get symbol table [%zd]", + symtabndx); + return cleanup (-1); + } + + shdr = gelf_getshdr (oldscn, &shdr_mem); + if (shdr == NULL) + { + error (0, 0, "Couldn't get old symbol table shdr [%zd]", + symtabndx); + return cleanup (-1); + } + + symtab_name = elf_strptr (elf, shdrstrndx, shdr->sh_name); + if (symtab_name == NULL) + { + error (0, 0, "Couldn't get old symbol table name [%zd]", + symtabndx); + return cleanup (-1); + } + + symtab_size = shdr->sh_size; + if ((shdr->sh_flags & SHF_COMPRESSED) != 0) + symtab_compressed = T_COMPRESS_ZLIB; + else if (strncmp (symtab_name, ".zdebug", + strlen (".zdebug")) == 0) + symtab_compressed = T_COMPRESS_GNU; + } + + /* Should we (re)compress? */ + if (symtab_compressed != T_UNSET) + { + if (compress_section (scn, symtab_size, symtab_name, + symtab_newname, symtabndx, + symtab_compressed == T_COMPRESS_GNU, + true, verbose > 0) < 0) + return cleanup (-1); + } + } + } + } + + /* If we have phdrs we want elf_update to layout the SHF_ALLOC + sections precisely as in the original file. In that case we are + also responsible for setting phoff and shoff */ + if (layout) + { + if (gelf_getehdr (elfnew, &newehdr) == NULL) + { + error (0, 0, "Couldn't get ehdr: %s", elf_errmsg (-1)); + return cleanup (-1); + } + + /* Position the shdrs after the last (unallocated) section. */ + const size_t offsize = gelf_fsize (elfnew, ELF_T_OFF, 1, EV_CURRENT); + newehdr.e_shoff = ((last_offset + offsize - 1) + & ~((GElf_Off) (offsize - 1))); + + /* The phdrs go in the same place as in the original file. + Normally right after the ELF header. */ + newehdr.e_phoff = ehdr.e_phoff; + + if (gelf_update_ehdr (elfnew, &newehdr) == 0) + { + error (0, 0, "Couldn't update ehdr: %s", elf_errmsg (-1)); + return cleanup (-1); + } + } + + elf_flagelf (elfnew, ELF_C_SET, ((layout ? ELF_F_LAYOUT : 0) + | (permissive ? ELF_F_PERMISSIVE : 0))); + + if (elf_update (elfnew, ELF_C_WRITE) < 0) + { + error (0, 0, "Couldn't write %s: %s", fnew, elf_errmsg (-1)); + return cleanup (-1); + } + + elf_end (elfnew); + elfnew = NULL; + + /* Try to match mode and owner.group of the original file. */ + if (fchmod (fdnew, st.st_mode & ALLPERMS) != 0) + if (verbose >= 0) + error (0, errno, "Couldn't fchmod %s", fnew); + if (fchown (fdnew, st.st_uid, st.st_gid) != 0) + if (verbose >= 0) + error (0, errno, "Couldn't fchown %s", fnew); + + /* Finally replace the old file with the new file. */ + if (foutput == NULL) + if (rename (fnew, fname) != 0) + { + error (0, errno, "Couldn't rename %s to %s", fnew, fname); + return cleanup (-1); + } + + /* We are finally done with the new file, don't unlink it now. */ + free (fnew); + fnew = NULL; + + return cleanup (0); +} + +int +main (int argc, char **argv) +{ + const struct argp_option options[] = + { + { "output", 'o', "FILE", 0, + N_("Place (de)compressed output into FILE"), + 0 }, + { "type", 't', "TYPE", 0, + N_("What type of compression to apply. TYPE can be 'none' (decompress), 'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias) or 'zlib-gnu' (.zdebug GNU style compression, 'gnu' is an alias)"), + 0 }, + { "name", 'n', "SECTION", 0, + N_("SECTION name to (de)compress, SECTION is an extended wildcard pattern (defaults to '.?(z)debug*')"), + 0 }, + { "verbose", 'v', NULL, 0, + N_("Print a message for each section being (de)compressed"), + 0 }, + { "force", 'f', NULL, 0, + N_("Force compression of section even if it would become larger"), + 0 }, + { "permissive", 'p', NULL, 0, + N_("Relax a few rules to handle slightly broken ELF files"), + 0 }, + { "quiet", 'q', NULL, 0, + N_("Be silent when a section cannot be compressed"), + 0 }, + { NULL, 0, NULL, 0, NULL, 0 } + }; + + const struct argp argp = + { + .options = options, + .parser = parse_opt, + .args_doc = N_("FILE..."), + .doc = N_("Compress or decompress sections in an ELF file.") + }; + + int remaining; + if (argp_parse (&argp, argc, argv, 0, &remaining, NULL) != 0) + return EXIT_FAILURE; + + /* Should already be handled by ARGP_KEY_NO_ARGS case above, + just sanity check. */ + if (remaining >= argc) + error (EXIT_FAILURE, 0, N_("No input file given")); + + /* Likewise for the ARGP_KEY_ARGS case above, an extra sanity check. */ + if (foutput != NULL && remaining + 1 < argc) + error (EXIT_FAILURE, 0, + N_("Only one input file allowed together with '-o'")); + + elf_version (EV_CURRENT); + + /* Process all the remaining files. */ + int result = 0; + do + result |= process_file (argv[remaining]); + while (++remaining < argc); + + free_patterns (); + return result; +} diff --git a/tests/ChangeLog b/tests/ChangeLog index 419610c4..3d912600 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2015-12-16 Mark Wielaard + + * run-compress-test.sh: New test. + * Makefile.am (TESTS): Add run-compress-test.sh. + (EXTRA_DISTS): Likewise. + 2015-11-26 Mark Wielaard * zstrptr.c: New file. diff --git a/tests/Makefile.am b/tests/Makefile.am index 6d666e9d..819f2d1e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -123,7 +123,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-getsrc-die.sh run-strptr.sh newdata elfstrtab dwfl-proc-attach \ elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh \ run-elfgetchdr.sh \ - run-elfgetzdata.sh run-elfputzdata.sh run-zstrptr.sh + run-elfgetzdata.sh run-elfputzdata.sh run-zstrptr.sh \ + run-compress-test.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -320,7 +321,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ testfile-zgabi32.bz2 testfile-zgabi64.bz2 \ testfile-zgabi32be.bz2 testfile-zgabi64be.bz2 \ run-elfgetchdr.sh run-elfgetzdata.sh run-elfputzdata.sh \ - run-zstrptr.sh + run-zstrptr.sh run-compress-test.sh if USE_VALGRIND valgrind_cmd='valgrind -q --leak-check=full --error-exitcode=1' diff --git a/tests/run-compress-test.sh b/tests/run-compress-test.sh new file mode 100755 index 00000000..a6a298f5 --- /dev/null +++ b/tests/run-compress-test.sh @@ -0,0 +1,102 @@ +#! /bin/sh +# Copyright (C) 2015 Red Hat, Inc. +# This file is part of elfutils. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# elfutils is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. $srcdir/test-subr.sh + +# uncompress -> gnucompress -> uncompress -> elfcompress -> uncompress +testrun_elfcompress_file() +{ + infile="$1" + uncompressedfile="${infile}.uncompressed" + tempfiles "$uncompressedfile" + + echo "uncompress $infile -> $uncompressedfile" + testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${uncompressedfile} ${infile} + testrun ${abs_top_builddir}/src/elflint --gnu-ld ${uncompressedfile} + + SIZE_uncompressed=$(stat -c%s $uncompressedfile) + + gnucompressedfile="${infile}.gnu" + tempfiles "$gnucompressedfile" + echo "compress gnu $uncompressedfile -> $gnucompressedfile" + testrun ${abs_top_builddir}/src/elfcompress -v -t gnu -o ${gnucompressedfile} ${uncompressedfile} + testrun ${abs_top_builddir}/src/elflint --gnu-ld ${gnucompressedfile} + + SIZE_gnucompressed=$(stat -c%s $gnucompressedfile) + test $SIZE_gnucompressed -lt $SIZE_uncompressed || + { echo "*** failure $gnucompressedfile not smaller"; exit -1; } + + gnuuncompressedfile="${infile}.gnu.uncompressed" + tempfiles "$gnuuncompressedfile" + echo "uncompress $gnucompressedfile -> $gnuuncompressedfile" + testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${gnuuncompressedfile} ${gnucompressedfile} + testrun ${abs_top_builddir}/src/elfcmp ${uncompressedfile} ${gnuuncompressedfile} + + elfcompressedfile="${infile}.gabi" + tempfiles "$elfcompressedfile" + echo "compress gabi $uncompressedfile -> $elfcompressedfile" + testrun ${abs_top_builddir}/src/elfcompress -v -t zlib -o ${elfcompressedfile} ${uncompressedfile} + testrun ${abs_top_builddir}/src/elflint --gnu-ld ${elfcompressedfile} + + SIZE_elfcompressed=$(stat -c%s $elfcompressedfile) + test $SIZE_elfcompressed -lt $SIZE_uncompressed || + { echo "*** failure $elfcompressedfile not smaller"; exit -1; } + + elfuncompressedfile="${infile}.gabi.uncompressed" + tempfiles "$elfuncompressedfile" + echo "uncompress $elfcompressedfile -> $elfuncompressedfile" + testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${elfuncompressedfile} ${elfcompressedfile} + testrun ${abs_top_builddir}/src/elfcmp ${uncompressedfile} ${elfuncompressedfile} +} + +testrun_elfcompress() +{ + testfile="$1" + testfiles ${testfile} + testrun_elfcompress_file ${testfile} + + # Merge the string tables to make things a little more interesting. + mergedfile="${testfile}.merged" + tempfiles ${mergedfile} + echo "merging string tables ${testfile} -> ${mergedfile}" + testrun ${abs_top_builddir}/tests/elfstrmerge -o ${mergedfile} ${testfile} + testrun_elfcompress_file ${mergedfile} +} + +# Random ELF32 testfile +testrun_elfcompress testfile4 + +# Random ELF64 testfile +testrun_elfcompress testfile12 + +# Random ELF64BE testfile +testrun_elfcompress testfileppc64 + +# Random ELF32BE testfile +testrun_elfcompress testfileppc32 + +# Already compressed files +testrun_elfcompress testfile-zgnu64 +testrun_elfcompress testfile-zgnu64be +testrun_elfcompress testfile-zgabi64 +testrun_elfcompress testfile-zgabi64be +testrun_elfcompress testfile-zgnu32 +testrun_elfcompress testfile-zgnu32be +testrun_elfcompress testfile-zgabi32 +testrun_elfcompress testfile-zgabi32be + +exit 0 -- cgit v1.2.3 From 968b592aacc1dbb47f598c58ea14df683473563a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Dr=C4=85g?= Date: Thu, 24 Dec 2015 14:16:15 +0100 Subject: Updated Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Piotr Drąg --- po/pl.po | 1383 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 724 insertions(+), 659 deletions(-) diff --git a/po/pl.po b/po/pl.po index 50eff021..a4ecb61b 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2015-10-16 13:26+0200\n" -"PO-Revision-Date: 2015-06-13 15:32+0200\n" +"POT-Creation-Date: 2015-12-24 14:09+0100\n" +"PO-Revision-Date: 2015-12-24 14:10+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -21,8 +21,8 @@ msgstr "" msgid "" "colorize the output. WHEN defaults to 'always' or can be 'auto' or 'never'" msgstr "" -"koloruje wyjście. WHEN domyślnie wynosi \"always\" lub może wynosić \"auto\" " -"lub \"never\"" +"koloruje wyjście. WHEN domyślnie wynosi „always” lub może wynosić „auto” lub " +"„never”" #: lib/color.c:127 #, c-format @@ -33,19 +33,20 @@ msgid "" " - 'never', 'no', 'none'\n" " - 'auto', 'tty', 'if-tty'\n" msgstr "" -"%s: nieprawidłowy parametr \"%s\" dla \"--color\"\n" +"%s: nieprawidłowy parametr „%s” dla „--color”\n" "prawidłowe parametry:\n" -" - \"always\", \"yes\", \"force\"\n" -" - \"never\", \"no\", \"none\"\n" -" - \"auto\", \"tty\", \"if-tty\"\n" +" • „always”, „yes”, „force”\n" +" • „never”, „no”, „none”\n" +" • „auto”, „tty”, „if-tty”\n" #: lib/color.c:190 src/objdump.c:738 #, c-format msgid "cannot allocate memory" msgstr "nie można przydzielić pamięci" -#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184 -#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403 +#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 +#: src/readelf.c:3184 src/readelf.c:3561 src/readelf.c:8310 +#: src/unstrip.c:2198 src/unstrip.c:2403 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" @@ -73,6 +74,7 @@ msgstr "nieprawidłowy parametr" msgid "cannot change mode of output file" msgstr "nie można zmienić trybu pliku wyjściowego" +#. Something went wrong. #: libasm/asm_error.c:70 src/ldgeneric.c:6990 #, c-format msgid "cannot rename output file" @@ -135,7 +137,8 @@ msgstr "nie można uzyskać nagłówka ELF" msgid "not implemented" msgstr "niezaimplementowane" -#: libdw/dwarf_error.c:70 libelf/elf_error.c:107 libelf/elf_error.c:155 +#: libdw/dwarf_error.c:70 libelf/elf_error.c:107 +#: libelf/elf_error.c:155 msgid "invalid command" msgstr "nieprawidłowe polecenie" @@ -291,6 +294,7 @@ msgstr "dopuszczalna jest tylko jedna z opcji -e, -p, -k, -K lub --core" msgid "cannot load kernel symbols" msgstr "nie można wczytać symboli jądra" +#. Non-fatal to have no modules since we do have the kernel. #: libdwfl/argp-std.c:234 msgid "cannot find kernel modules" msgstr "nie można odnaleźć modułów jądra" @@ -521,6 +525,7 @@ msgstr " Parametry: " msgid " Build ID: " msgstr " Identyfikator kopii: " +#. A non-null terminated version string. #: libebl/eblobjnote.c:151 #, c-format msgid " Linker version: %.*s\n" @@ -550,7 +555,7 @@ msgstr "nieznany typ" #: libelf/elf_error.c:75 msgid "invalid `Elf' handle" -msgstr "nieprawidłowa obsługa \"Elf\"" +msgstr "nieprawidłowa obsługa „Elf”" #: libelf/elf_error.c:79 msgid "invalid size of source operand" @@ -653,7 +658,7 @@ msgstr "nieznane kodowanie danych" #: libelf/elf_error.c:195 msgid "section `sh_size' too small for data" -msgstr "sekcja \"sh_size\" jest za mała dla danych" +msgstr "sekcja „sh_size” jest za mała dla danych" #: libelf/elf_error.c:199 msgid "invalid section alignment" @@ -743,11 +748,12 @@ msgstr "" msgid "Print all information on one line, and indent inlines" msgstr "Wyświetla wszystkie informacje w jednym wierszy i wyrównuje wstawki" -#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99 -#: src/strings.c:79 +#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 +#: src/nm.c:99 src/strings.c:79 msgid "Miscellaneous:" msgstr "Różne:" +#. Short description of program. #: src/addr2line.c:87 msgid "" "Locate source files and line information for ADDRs (in a.out by default)." @@ -755,13 +761,15 @@ msgstr "" "Odnajdywanie plików źródłowych i informacji o wierszu dla ADRESU (domyślne w " "a.out)." +#. Strings for arguments in help texts. #: src/addr2line.c:91 msgid "[ADDR...]" -msgstr "[ADRES...]" +msgstr "[ADRES…]" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235 -#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177 -#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 +#: src/elflint.c:235 src/findtextrel.c:162 src/ld.c:943 +#: src/nm.c:261 src/objdump.c:177 src/ranlib.c:124 +#: src/readelf.c:500 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -769,15 +777,16 @@ msgid "" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" -"Copyright (C) %s Red Hat, Inc.\n" +"Copyright © %s Red Hat, Inc.\n" "Niniejszy program jest wolnym oprogramowaniem; proszę zobaczyć kod źródłowy\n" "w celu poznania warunków kopiowania. Niniejszy program rozprowadzany jest\n" "BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n" "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240 -#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182 -#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 +#: src/elflint.c:240 src/findtextrel.c:167 src/ld.c:948 +#: src/nm.c:266 src/objdump.c:182 src/ranlib.c:129 +#: src/readelf.c:505 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -791,17 +800,17 @@ msgstr "Składnia sekcji wymaga dokładnie jednego modułu" #: src/addr2line.c:556 #, c-format msgid "offset %# lies outside section '%s'" -msgstr "offset %# leży poza sekcją \"%s\"" +msgstr "offset %# leży poza sekcją „%s”" #: src/addr2line.c:645 #, c-format msgid "cannot find symbol '%s'" -msgstr "nie można odnaleźć symbolu \"%s\"" +msgstr "nie można odnaleźć symbolu „%s”" #: src/addr2line.c:650 #, c-format msgid "offset %# lies outside contents of '%s'" -msgstr "offset %# leży poza zawartością \"%s\"" +msgstr "offset %# leży poza zawartością „%s”" #: src/ar.c:68 msgid "Commands:" @@ -887,28 +896,30 @@ msgstr "Używa pełnej ścieżki do dopasowywania plików." msgid "Update only older files in archive." msgstr "Aktualizuje tylko starsze pliki w archiwum." +#. Short description of program. #: src/ar.c:99 msgid "Create, modify, and extract from archives." msgstr "Tworzenie, modyfikowanie i wypakowywanie archiwów." +#. Strings for arguments in help texts. #: src/ar.c:102 msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]" -msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK...]" +msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK…]" #: src/ar.c:181 #, c-format msgid "'a', 'b', and 'i' are only allowed with the 'm' and 'r' options" -msgstr "\"a\", \"b\" i \"i\" są dozwolone tylko z opcjami \"m\" i \"r\"" +msgstr "„a”, „b” i „i” są dozwolone tylko z opcjami „m” i „r”" #: src/ar.c:186 #, c-format msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers" -msgstr "parametr ELEMENT jest wymagany dla modyfikatorów \"a\", \"b\" i \"i\"" +msgstr "parametr ELEMENT jest wymagany dla modyfikatorów „a”, „b” i „i”" #: src/ar.c:202 #, c-format msgid "'N' is only meaningful with the 'x' and 'd' options" -msgstr "\"N\" ma znaczenie tylko z opcjami \"x\" i \"d\"" +msgstr "„N” ma znaczenie tylko z opcjami „x” i „d”" #: src/ar.c:207 #, c-format @@ -923,7 +934,7 @@ msgstr "nieprawidłowy parametr LICZNIK %s" #: src/ar.c:226 #, c-format msgid "'%c' is only meaningful with the 'x' option" -msgstr "\"%c\" ma znaczenie tylko z opcją \"x\"" +msgstr "„%c” ma znaczenie tylko z opcją „x”" #: src/ar.c:232 #, c-format @@ -943,12 +954,12 @@ msgstr "Podano więcej niż jedno działanie" #: src/ar.c:404 #, c-format msgid "cannot open archive '%s'" -msgstr "nie można otworzyć archiwum \"%s\"" +msgstr "nie można otworzyć archiwum „%s”" #: src/ar.c:414 #, c-format msgid "cannot open archive '%s': %s" -msgstr "nie można otworzyć archiwum \"%s\": %s" +msgstr "nie można otworzyć archiwum „%s”: %s" #: src/ar.c:418 #, c-format @@ -958,7 +969,7 @@ msgstr "%s: nie jest plikiem archiwum" #: src/ar.c:422 #, c-format msgid "cannot stat archive '%s'" -msgstr "nie można wykonać stat na archiwum \"%s\"" +msgstr "nie można wykonać stat na archiwum „%s”" #: src/ar.c:434 #, c-format @@ -978,7 +989,7 @@ msgstr "nie można umieścić w tabeli mieszającej" #: src/ar.c:502 src/ranlib.c:164 #, c-format msgid "cannot stat '%s'" -msgstr "nie można wykonać stat na \"%s\"" +msgstr "nie można wykonać stat na „%s”" #: src/ar.c:598 #, c-format @@ -1063,10 +1074,11 @@ msgstr "Używa prawdziwe UID, GID i datę w elementach archiwum." msgid "%s (default)" msgstr "%s (domyślnie)" +#. The archive is too big. #: src/arlib.c:209 #, c-format msgid "the archive '%s' is too large" -msgstr "archiwum \"%s\" jest za duże" +msgstr "archiwum „%s” jest za duże" #: src/arlib.c:222 #, c-format @@ -1101,10 +1113,12 @@ msgstr "Ignorowanie różnic w identyfikatorze kopii" msgid "Output nothing; yield exit status only" msgstr "Bez wypisywania; przekazanie tylko kodu wyjścia" +#. Short description of program. #: src/elfcmp.c:77 msgid "Compare relevant parts of two ELF files for equality." msgstr "Porównywanie odpowiednich części dwóch plików ELF pod kątem równości." +#. Strings for arguments in help texts. #: src/elfcmp.c:81 msgid "FILE1 FILE2" msgstr "PLIK1 PLIK2" @@ -1116,7 +1130,7 @@ msgstr "Nieprawidłowa liczba parametrów.\n" #: src/elfcmp.c:174 src/elfcmp.c:179 #, c-format msgid "cannot get ELF header of '%s': %s" -msgstr "nie można uzyskać nagłówka ELF \"%s\": %s" +msgstr "nie można uzyskać nagłówka ELF „%s”: %s" #: src/elfcmp.c:205 #, c-format @@ -1126,7 +1140,7 @@ msgstr "%s %s różnią się: nagłówek ELF" #: src/elfcmp.c:212 src/elfcmp.c:215 #, c-format msgid "cannot get section count of '%s': %s" -msgstr "nie można uzyskać licznika sekcji \"%s\": %s" +msgstr "nie można uzyskać licznika sekcji „%s”: %s" #: src/elfcmp.c:220 #, c-format @@ -1136,7 +1150,7 @@ msgstr "%s %s różnią się: licznik sekcji" #: src/elfcmp.c:227 src/elfcmp.c:230 #, c-format msgid "cannot get program header count of '%s': %s" -msgstr "nie można uzyskać licznika nagłówka programu \"%s\": %s" +msgstr "nie można uzyskać licznika nagłówka programu „%s”: %s" #: src/elfcmp.c:235 #, c-format @@ -1151,22 +1165,22 @@ msgstr "%s %s różnią się: nazwa sekcji [%zu], [%zu]" #: src/elfcmp.c:316 #, c-format msgid "%s %s differ: section [%zu] '%s' header" -msgstr "%s %s różnią się: nagłówek sekcji [%zu] \"%s\"" +msgstr "%s %s różnią się: nagłówek sekcji [%zu] „%s”" #: src/elfcmp.c:324 src/elfcmp.c:330 #, c-format msgid "cannot get content of section %zu in '%s': %s" -msgstr "nie można uzyskać zawartości sekcji %zu w \"%s\": %s" +msgstr "nie można uzyskać zawartości sekcji %zu w „%s”: %s" #: src/elfcmp.c:339 #, c-format msgid "symbol table [%zu] in '%s' has zero sh_entsize" -msgstr "tabela symboli [%zu] w \"%s\" posiada zerowe sh_entsize" +msgstr "tabela symboli [%zu] w „%s” posiada zerowe sh_entsize" #: src/elfcmp.c:351 src/elfcmp.c:357 #, c-format msgid "cannot get symbol in '%s': %s" -msgstr "nie można uzyskać symbolu w \"%s\": %s" +msgstr "nie można uzyskać symbolu w „%s”: %s" #: src/elfcmp.c:379 #, c-format @@ -1181,22 +1195,22 @@ msgstr "%s %s różnią się: tabela symboli [%zu,%zu]" #: src/elfcmp.c:428 src/elfcmp.c:497 #, c-format msgid "%s %s differ: section [%zu] '%s' number of notes" -msgstr "%s %s różnią się: liczba notatek sekcji [%zu] \"%s\"" +msgstr "%s %s różnią się: liczba notatek sekcji [%zu] „%s”" #: src/elfcmp.c:436 #, c-format msgid "cannot read note section [%zu] '%s' in '%s': %s" -msgstr "nie można odczytać notatki sekcji [%zu] \"%s\" w \"%s\": %s" +msgstr "nie można odczytać notatki sekcji [%zu] „%s” w „%s”: %s" #: src/elfcmp.c:446 #, c-format msgid "%s %s differ: section [%zu] '%s' note name" -msgstr "%s %s różnią się: nazwa notatki sekcji [%zu] \"%s\"" +msgstr "%s %s różnią się: nazwa notatki sekcji [%zu] „%s”" #: src/elfcmp.c:454 #, c-format msgid "%s %s differ: section [%zu] '%s' note '%s' type" -msgstr "%s %s różnią się: sekcja [%zu] \"%s\" notatka \"%s\" typ" +msgstr "%s %s różnią się: sekcja [%zu] „%s” notatka „%s” typ" #: src/elfcmp.c:469 #, c-format @@ -1211,17 +1225,17 @@ msgstr "%s %s różnią się: zawartość identyfikatora kopii" #: src/elfcmp.c:486 #, c-format msgid "%s %s differ: section [%zu] '%s' note '%s' content" -msgstr "%s %s różnią się: sekcja [%zu] \"%s\" notatka \"%s\" zawartość" +msgstr "%s %s różnią się: sekcja [%zu] „%s” notatka „%s” zawartość" #: src/elfcmp.c:527 #, c-format msgid "%s %s differ: section [%zu] '%s' content" -msgstr "%s %s różnią się: zawartość sekcji [%zu] \"%s\"" +msgstr "%s %s różnią się: zawartość sekcji [%zu] „%s”" #: src/elfcmp.c:531 #, c-format msgid "%s %s differ: section [%zu,%zu] '%s' content" -msgstr "%s %s różnią się: zawartość sekcji [%zu,%zu] \"%s\"" +msgstr "%s %s różnią się: zawartość sekcji [%zu,%zu] „%s”" #: src/elfcmp.c:546 #, c-format @@ -1231,12 +1245,12 @@ msgstr "%s %s różnią się: różna liczba ważnych sekcji" #: src/elfcmp.c:579 src/elfcmp.c:584 #, c-format msgid "cannot load data of '%s': %s" -msgstr "nie można wczytać danych z \"%s\": %s" +msgstr "nie można wczytać danych z „%s”: %s" #: src/elfcmp.c:603 src/elfcmp.c:609 #, c-format msgid "cannot get program header entry %d of '%s': %s" -msgstr "nie można uzyskać wpisu nagłówka programu %d z \"%s\": %s" +msgstr "nie można uzyskać wpisu nagłówka programu %d z „%s”: %s" #: src/elfcmp.c:615 #, c-format @@ -1251,25 +1265,25 @@ msgstr "%s %s różnią się: luka" #: src/elfcmp.c:702 #, c-format msgid "Invalid value '%s' for --gaps parameter." -msgstr "Nieprawidłowa wartość \"%s\" dla parametru --gaps." +msgstr "Nieprawidłowa wartość „%s” dla parametru --gaps." #: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289 -#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994 -#: src/unstrip.c:2023 +#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 +#: src/size.c:289 src/strings.c:186 src/strip.c:466 src/strip.c:503 +#: src/unstrip.c:1994 src/unstrip.c:2023 #, c-format msgid "cannot open '%s'" -msgstr "nie można otworzyć \"%s\"" +msgstr "nie można otworzyć „%s”" #: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174 #, c-format msgid "cannot create ELF descriptor for '%s': %s" -msgstr "nie można utworzyć deskryptora ELF dla \"%s\": %s" +msgstr "nie można utworzyć deskryptora ELF dla „%s”: %s" #: src/elfcmp.c:739 #, c-format msgid "cannot create EBL descriptor for '%s'" -msgstr "nie można utworzyć deskryptora EBL dla \"%s\"" +msgstr "nie można utworzyć deskryptora EBL dla „%s”" #: src/elfcmp.c:757 src/findtextrel.c:409 #, c-format @@ -1306,14 +1320,16 @@ msgstr "" "Plik binarny został utworzony przez program GNU ld, przez co jest uszkodzony " "w pewien sposób" +#. Short description of program. #: src/elflint.c:74 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" "Szczegółowe sprawdzanie zgodności plików ELF ze specyfikacją gABI/psABI." +#. Strings for arguments in help texts. #: src/elflint.c:78 src/readelf.c:123 msgid "FILE..." -msgstr "PLIK..." +msgstr "PLIK…" #: src/elflint.c:155 src/readelf.c:292 #, c-format @@ -1343,10 +1359,11 @@ msgstr "Brak nazwy pliku.\n" msgid " error while freeing sub-ELF descriptor: %s\n" msgstr " błąd podczas zwalniania deskryptora pod-ELF: %s\n" +#. We cannot do anything. #: src/elflint.c:306 #, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" -msgstr "To nie jest plik ELF - posiada błędne bajty magiczne na początku\n" +msgstr "To nie jest plik ELF — posiada błędne bajty magiczne na początku\n" #: src/elflint.c:371 #, c-format @@ -1366,7 +1383,7 @@ msgstr "nieznany numer wersji nagłówka ELF e_ident[%d] == %d\n" #: src/elflint.c:386 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" -msgstr "nieobsługiwane ABI systemu operacyjnego e_ident[%d] == \"%s\"\n" +msgstr "nieobsługiwane ABI systemu operacyjnego e_ident[%d] == „%s”\n" #: src/elflint.c:392 #, c-format @@ -1470,22 +1487,22 @@ msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " "group\n" msgstr "" -"sekcja [%2d] \"%s\": sekcja z flagą SHF_GROUP nie jest częścią grupy sekcji\n" +"sekcja [%2d] „%s”: sekcja z flagą SHF_GROUP nie jest częścią grupy sekcji\n" #: src/elflint.c:575 #, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" msgstr "" -"sekcja [%2d] \"%s\": grupa sekcji [%2zu] \"%s\" nie poprzedza elementu " -"grupy\n" +"sekcja [%2d] „%s”: grupa sekcji [%2zu] „%s” nie poprzedza elementu grupy\n" -#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628 -#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056 -#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336 +#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 +#: src/elflint.c:1628 src/elflint.c:1964 src/elflint.c:2280 +#: src/elflint.c:2893 src/elflint.c:3056 src/elflint.c:3204 +#: src/elflint.c:3394 src/elflint.c:4337 #, c-format msgid "section [%2d] '%s': cannot get section data\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać danych sekcji\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji\n" #: src/elflint.c:604 src/elflint.c:1635 #, c-format @@ -1493,8 +1510,8 @@ msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " "type is not SHT_STRTAB\n" msgstr "" -"sekcja [%2d] \"%s\": użyta jako tabela ciągów dla sekcji [%2d] \"%s\", ale " -"nie jest typu SHT_STRTAB\n" +"sekcja [%2d] „%s”: użyta jako tabela ciągów dla sekcji [%2d] „%s”, ale nie " +"jest typu SHT_STRTAB\n" #: src/elflint.c:627 #, c-format @@ -1502,39 +1519,39 @@ msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " "section\n" msgstr "" -"sekcja [%2d] \"%s\": tabela symboli nie może mieć więcej niż jednej " +"sekcja [%2d] „%s”: tabela symboli nie może mieć więcej niż jednej " "rozszerzonej sekcji indeksów\n" #: src/elflint.c:639 #, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" -msgstr "sekcja [%2u] \"%s\": rozmiar wpisu nie zgadza się z ElfXX_Sym\n" +msgstr "sekcja [%2u] „%s”: rozmiar wpisu nie zgadza się z ElfXX_Sym\n" #: src/elflint.c:648 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać symbolu %d: %s\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu %d: %s\n" -#: src/elflint.c:653 src/elflint.c:656 src/elflint.c:659 src/elflint.c:662 -#: src/elflint.c:665 src/elflint.c:668 +#: src/elflint.c:653 src/elflint.c:656 src/elflint.c:659 +#: src/elflint.c:662 src/elflint.c:665 src/elflint.c:668 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" -msgstr "sekcja [%2d] \"%s\": \"%s\" w zerowym wpisie nie jest zerem\n" +msgstr "sekcja [%2d] „%s”: „%s” w zerowym wpisie nie jest zerem\n" #: src/elflint.c:671 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" -msgstr "sekcja [%2d] \"%s\": XINDEX dla zerowego wpisu nie jest zerem\n" +msgstr "sekcja [%2d] „%s”: XINDEX dla zerowego wpisu nie jest zerem\n" #: src/elflint.c:681 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać symbolu %zu: %s\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu %zu: %s\n" #: src/elflint.c:690 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: nieprawidłowa wartość nazwy\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: nieprawidłowa wartość nazwy\n" #: src/elflint.c:705 #, c-format @@ -1542,8 +1559,8 @@ msgid "" "section [%2d] '%s': symbol %zu: too large section index but no extended " "section index section\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: za duży indeks sekcji, ale nie posiada " -"sekcji rozszerzonych indeksów sekcji\n" +"sekcja [%2d] „%s”: symbol %zu: za duży indeks sekcji, ale nie posiada sekcji " +"rozszerzonych indeksów sekcji\n" #: src/elflint.c:711 #, c-format @@ -1551,53 +1568,54 @@ msgid "" "section [%2d] '%s': symbol %zu: XINDEX used for index which would fit in " "st_shndx (%)\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: XINDEX użyty dla indeksu, który zmieściłby " +"sekcja [%2d] „%s”: symbol %zu: XINDEX użyty dla indeksu, który zmieściłby " "się w st_shndx (%)\n" +#. || sym->st_shndx > SHN_HIRESERVE always false #: src/elflint.c:723 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid section index\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: nieprawidłowy indeks sekcji\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: nieprawidłowy indeks sekcji\n" #: src/elflint.c:731 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown type\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: nieznany typ\n" #: src/elflint.c:737 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown symbol binding\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznane dowiązanie symbolu\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: nieznane dowiązanie symbolu\n" #: src/elflint.c:742 #, c-format msgid "section [%2d] '%s': symbol %zu: unique symbol not of object type\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: unikalny symbol nie jest typem obiektu\n" +"sekcja [%2d] „%s”: symbol %zu: unikalny symbol nie jest typem obiektu\n" #: src/elflint.c:750 #, c-format msgid "" "section [%2d] '%s': symbol %zu: COMMON only allowed in relocatable files\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: COMMON jest dozwolone tylko w plikach " +"sekcja [%2d] „%s”: symbol %zu: COMMON jest dozwolone tylko w plikach " "relokowalnych\n" #: src/elflint.c:754 #, c-format msgid "section [%2d] '%s': symbol %zu: local COMMON symbols are nonsense\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: lokalne symbole COMMON to nonsens\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: lokalne symbole COMMON to nonsens\n" #: src/elflint.c:758 #, c-format msgid "" "section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: funkcja w sekcji COMMON to nonsens\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: funkcja w sekcji COMMON to nonsens\n" #: src/elflint.c:805 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: st_value spoza zakresu\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: st_value spoza zakresu\n" #: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885 #, c-format @@ -1605,8 +1623,8 @@ msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " "[%2d] '%s'\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu nie mieści się w całości we wskazywanej " -"sekcji [%2d] \"%s\"\n" +"sekcja [%2d] „%s”: symbol %zu nie mieści się w całości we wskazywanej sekcji " +"[%2d] „%s”\n" #: src/elflint.c:820 #, c-format @@ -1614,7 +1632,7 @@ msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " "SHF_TLS flag set\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: wskazywana sekcja [%2d] \"%s\" nie posiada " +"sekcja [%2d] „%s”: symbol %zu: wskazywana sekcja [%2d] „%s” nie posiada " "ustawionej flagi SHF_TLS\n" #: src/elflint.c:830 src/elflint.c:878 @@ -1623,25 +1641,25 @@ msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " "[%2d] '%s'\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: st_value spoza zakresu wskazywanej sekcji " -"[%2d] \"%s\"\n" +"sekcja [%2d] „%s”: symbol %zu: st_value spoza zakresu wskazywanej sekcji " +"[%2d] „%s”\n" #: src/elflint.c:857 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka " +"sekcja [%2d] „%s”: symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka " "programu\n" #: src/elflint.c:863 -#, fuzzy, c-format +#, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program " "header entry\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka " -"programu\n" +"sekcja [%2d] „%s”: symbol %zu: symbol TLS, ale nie można uzyskać wpisu TLS " +"nagłówka programu\n" #: src/elflint.c:871 #, c-format @@ -1649,8 +1667,7 @@ msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] " "'%s'\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: st_value pomija wskazywaną sekcję [%2d] \"%s" -"\"\n" +"sekcja [%2d] „%s”: symbol %zu: st_value pomija wskazywaną sekcję [%2d] „%s”\n" #: src/elflint.c:898 #, c-format @@ -1658,7 +1675,7 @@ msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " "sh_info\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: lokalny symbol spoza zakresu określonego w " +"sekcja [%2d] „%s”: symbol %zu: lokalny symbol spoza zakresu określonego w " "sh_info\n" #: src/elflint.c:905 @@ -1667,13 +1684,13 @@ msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " "sh_info\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: nielokalny symbol spoza zakresu określonego " -"w sh_info\n" +"sekcja [%2d] „%s”: symbol %zu: nielokalny symbol spoza zakresu określonego w " +"sh_info\n" #: src/elflint.c:912 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: nielokalny symbol sekcji\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: nielokalny symbol sekcji\n" #: src/elflint.c:962 #, c-format @@ -1681,8 +1698,8 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " "[%2d]\n" msgstr "" -"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do błędnej " -"sekcji [%2d]\n" +"sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ odnosi się do błędnej sekcji " +"[%2d]\n" #: src/elflint.c:969 #, c-format @@ -1690,16 +1707,19 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " "'%s'\n" msgstr "" -"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do sekcji [%2d] " -"\"%s\"\n" +"sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ odnosi się do sekcji [%2d] " +"„%s”\n" +#. This test is more strict than the psABIs which +#. usually allow the symbol to be in the middle of +#. the .got section, allowing negative offsets. #: src/elflint.c:985 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %# does not " "match %s section address %#\n" msgstr "" -"sekcja [%2d] \"%s\": wartość symbolu _GLOBAL_OFFSET_TABLE_ %# nie " +"sekcja [%2d] „%s”: wartość symbolu _GLOBAL_OFFSET_TABLE_ %# nie " "pasuje do adresu sekcji %s %#\n" #: src/elflint.c:992 @@ -1708,7 +1728,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size % does not " "match %s section size %\n" msgstr "" -"sekcja [%2d] \"%s\": rozmiar symbolu _GLOBAL_OFFSET_TABLE_ % nie " +"sekcja [%2d] „%s”: rozmiar symbolu _GLOBAL_OFFSET_TABLE_ % nie " "pasuje do rozmiaru sekcji %s %\n" #: src/elflint.c:1000 @@ -1717,7 +1737,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " "section\n" msgstr "" -"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ." +"sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ." "got\n" #: src/elflint.c:1016 @@ -1726,8 +1746,8 @@ msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %# does not match dynamic " "segment address %#\n" msgstr "" -"sekcja [%2d] \"%s\": wartość symbolu _DYNAMIC_ %# nie pasuje do " -"adresu segmentu dynamicznego %#\n" +"sekcja [%2d] „%s”: wartość symbolu _DYNAMIC_ %# nie pasuje do adresu " +"segmentu dynamicznego %#\n" #: src/elflint.c:1023 #, c-format @@ -1735,7 +1755,7 @@ msgid "" "section [%2d] '%s': _DYNAMIC symbol size % does not match dynamic " "segment size %\n" msgstr "" -"sekcja [%2d] \"%s\": rozmiar symbolu _DYNAMIC_ % nie pasuje do " +"sekcja [%2d] „%s”: rozmiar symbolu _DYNAMIC_ % nie pasuje do " "rozmiaru segmentu dynamicznego %\n" #: src/elflint.c:1036 @@ -1744,28 +1764,28 @@ msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" "default visibility\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %zu: symbol w dynamicznej tabeli symboli z " +"sekcja [%2d] „%s”: symbol %zu: symbol w dynamicznej tabeli symboli z " "niedomyślną widocznością\n" #: src/elflint.c:1040 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" -msgstr "sekcja [%2d] \"%s\": symbol %zu: ustawiono nieznany bit w st_other\n" +msgstr "sekcja [%2d] „%s”: symbol %zu: ustawiono nieznany bit w st_other\n" #: src/elflint.c:1078 #, c-format msgid "section [%2d] '%s': cannot get section data.\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać danych sekcji.\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji.\n" #: src/elflint.c:1094 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" -msgstr "sekcja [%2d] \"%s\": DT_RELCOUNT użyte dla tej sekcji RELA\n" +msgstr "sekcja [%2d] „%s”: DT_RELCOUNT użyte dla tej sekcji RELA\n" #: src/elflint.c:1105 src/elflint.c:1158 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" -msgstr "sekcja [%2d] \"%s\": DT_RELCOUNT %d za duże dla tej sekcji\n" +msgstr "sekcja [%2d] „%s”: DT_RELCOUNT %d za duże dla tej sekcji\n" #: src/elflint.c:1130 src/elflint.c:1183 #, c-format @@ -1773,7 +1793,7 @@ msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " "DT_RELCOUNT\n" msgstr "" -"sekcja [%2d] \"%s\": relokacje względne po indeksie %d podanym przez " +"sekcja [%2d] „%s”: relokacje względne po indeksie %d podanym przez " "DT_RELCOUNT\n" #: src/elflint.c:1136 src/elflint.c:1189 @@ -1782,40 +1802,40 @@ msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " "specified %d relative relocations\n" msgstr "" -"sekcja [%2d] \"%s\": relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT " -"podał %d relokacji względnych\n" +"sekcja [%2d] „%s”: relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT podał " +"%d relokacji względnych\n" #: src/elflint.c:1148 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" -msgstr "sekcja [%2d] \"%s\": DT_RELACOUNT użyte dla tej sekcji REL\n" +msgstr "sekcja [%2d] „%s”: DT_RELACOUNT użyte dla tej sekcji REL\n" #: src/elflint.c:1231 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" -msgstr "sekcja [%2d] \"%s\": nieprawidłowy indeks sekcji docelowej\n" +msgstr "sekcja [%2d] „%s”: nieprawidłowy indeks sekcji docelowej\n" #: src/elflint.c:1243 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" -msgstr "sekcja [%2d] \"%s\": nieprawidłowy typ sekcji docelowej\n" +msgstr "sekcja [%2d] „%s”: nieprawidłowy typ sekcji docelowej\n" #: src/elflint.c:1251 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" -msgstr "sekcja [%2d] \"%s\": sh_info powinno wynosić zero\n" +msgstr "sekcja [%2d] „%s”: sh_info powinno wynosić zero\n" #: src/elflint.c:1259 -#, fuzzy, c-format +#, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" -msgstr "sekcja [%2d] \"%s\": relokacje dla sekcji złączalnych są niemożliwe\n" +msgstr "" +"sekcja [%2d] „%s”: relokacje dla sekcji złączalnych ciągów są niemożliwe\n" #: src/elflint.c:1267 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "" -"sekcja [%2d] \"%s\": rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n" +msgstr "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n" #: src/elflint.c:1327 #, c-format @@ -1827,7 +1847,7 @@ msgstr "" #: src/elflint.c:1354 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" -msgstr "sekcja [%2d] \"%s\": relokacja %zu: nieprawidłowy typ\n" +msgstr "sekcja [%2d] „%s”: relokacja %zu: nieprawidłowy typ\n" #: src/elflint.c:1362 #, c-format @@ -1835,13 +1855,13 @@ msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " "type\n" msgstr "" -"sekcja [%2d] \"%s\": relokacja %zu: typ relokacji nieprawidłowy dla tego " -"typu pliku\n" +"sekcja [%2d] „%s”: relokacja %zu: typ relokacji nieprawidłowy dla tego typu " +"pliku\n" #: src/elflint.c:1370 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" -msgstr "sekcja [%2d] \"%s\": relokacja %zu: nieprawidłowy indeks symbolu\n" +msgstr "sekcja [%2d] „%s”: relokacja %zu: nieprawidłowy indeks symbolu\n" #: src/elflint.c:1388 #, c-format @@ -1849,13 +1869,13 @@ msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " "be used with %s\n" msgstr "" -"sekcja [%2d] \"%s\": relokacja %zu: z %s można użyć tylko symbolu " -"\"_GLOBAL_OFFSET_TABLE_\"\n" +"sekcja [%2d] „%s”: relokacja %zu: z %s można użyć tylko symbolu " +"„_GLOBAL_OFFSET_TABLE_”\n" #: src/elflint.c:1405 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" -msgstr "sekcja [%2d] \"%s\": relokacja %zu: offset spoza zakresu\n" +msgstr "sekcja [%2d] „%s”: relokacja %zu: offset spoza zakresu\n" #: src/elflint.c:1420 #, c-format @@ -1863,8 +1883,7 @@ msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " "%s\n" msgstr "" -"sekcja [%2d] \"%s\": relokacja %zu: relokacja kopii względem symbolu typu " -"%s\n" +"sekcja [%2d] „%s”: relokacja %zu: relokacja kopii względem symbolu typu %s\n" #: src/elflint.c:1441 #, c-format @@ -1872,19 +1891,19 @@ msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " "relocation flag not set\n" msgstr "" -"sekcja [%2d] \"%s\": relokacja %zu: sekcja tylko do odczytu została " +"sekcja [%2d] „%s”: relokacja %zu: sekcja tylko do odczytu została " "zmodyfikowana, ale nie ustawiono flagi relokacji tekstu\n" #: src/elflint.c:1456 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" -"sekcja [%2d] \"%s\": relokacje względem wczytanych i niewczytanych danych\n" +"sekcja [%2d] „%s”: relokacje względem wczytanych i niewczytanych danych\n" #: src/elflint.c:1496 src/elflint.c:1547 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać relokacji %zu: %s\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać relokacji %zu: %s\n" #: src/elflint.c:1623 #, c-format @@ -1897,52 +1916,51 @@ msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " "link value is invalid\n" msgstr "" -"sekcja [%2d]: wskazane jako tabela ciągów dla sekcji [%2d] \"%s\", ale " -"wartość dowiązania sekcji jest nieprawidłowa\n" +"sekcja [%2d]: wskazane jako tabela ciągów dla sekcji [%2d] „%s”, ale wartość " +"dowiązania sekcji jest nieprawidłowa\n" #: src/elflint.c:1649 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" -msgstr "sekcja [%2d] \"%s\": rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n" +msgstr "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n" #: src/elflint.c:1654 src/elflint.c:1943 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" -msgstr "sekcja [%2d] \"%s\": sh_info nie wynosi zero\n" +msgstr "sekcja [%2d] „%s”: sh_info nie wynosi zero\n" #: src/elflint.c:1664 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" -"sekcja [%2d] \"%s\": nie można uzyskać wpisu %zu sekcji dynamicznej: %s\n" +"sekcja [%2d] „%s”: nie można uzyskać wpisu %zu sekcji dynamicznej: %s\n" #: src/elflint.c:1672 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" -msgstr "sekcja [%2d] \"%s\": wpisy nie-DT_NULL występują po wpisie DT_NULL\n" +msgstr "sekcja [%2d] „%s”: wpisy nie-DT_NULL występują po wpisie DT_NULL\n" #: src/elflint.c:1679 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" -msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n" +msgstr "sekcja [%2d] „%s”: wpis %zu: nieznany znacznik\n" #: src/elflint.c:1690 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" -msgstr "" -"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" +msgstr "sekcja [%2d] „%s”: wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" #: src/elflint.c:1700 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" -msgstr "sekcja [%2d] \"%s\": wpis %zu: użyto znacznika %s poziomu 2\n" +msgstr "sekcja [%2d] „%s”: wpis %zu: użyto znacznika %s poziomu 2\n" #: src/elflint.c:1718 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub " +"sekcja [%2d] „%s”: wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub " "DT_RELA\n" #: src/elflint.c:1731 @@ -1951,16 +1969,15 @@ msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " "[%2d] '%s' referenced by sh_link\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] " -"\"%s\" wskazywanej przez sh_link\n" +"sekcja [%2d] „%s”: wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] „%s” " +"wskazywanej przez sh_link\n" #: src/elflint.c:1774 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi wskazywać na wczytany " -"segment\n" +"sekcja [%2d] „%s”: wpis %zu: wartość %s musi wskazywać na wczytany segment\n" #: src/elflint.c:1789 #, c-format @@ -1968,48 +1985,49 @@ msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " "[%2d] '%s'\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi być prawidłowym offsetem w " -"sekcji [%2d] \"%s\"\n" +"sekcja [%2d] „%s”: wpis %zu: wartość %s musi być prawidłowym offsetem w " +"sekcji [%2d] „%s”\n" #: src/elflint.c:1809 src/elflint.c:1837 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" -msgstr "sekcja [%2d] \"%s\": zawiera wpis %s, ale nie %s\n" +msgstr "sekcja [%2d] „%s”: zawiera wpis %s, ale nie %s\n" #: src/elflint.c:1821 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" -msgstr "sekcja [%2d] \"%s\": brak obowiązkowego znacznika %s\n" +msgstr "sekcja [%2d] „%s”: brak obowiązkowego znacznika %s\n" #: src/elflint.c:1830 #, c-format msgid "section [%2d] '%s': no hash section present\n" -msgstr "sekcja [%2d] \"%s\": brak sekcji skrótów\n" +msgstr "sekcja [%2d] „%s”: brak sekcji skrótów\n" #: src/elflint.c:1845 src/elflint.c:1852 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" -msgstr "sekcja [%2d] \"%s\": nie wszystkie z %s, %s i %s są obecne\n" +msgstr "sekcja [%2d] „%s”: nie wszystkie z %s, %s i %s są obecne\n" #: src/elflint.c:1862 src/elflint.c:1866 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" -"sekcja [%2d] \"%s\": brak znacznika %s w DSO oznaczonym podczas wstępnej " +"sekcja [%2d] „%s”: brak znacznika %s w DSO oznaczonym podczas wstępnej " "konsolidacji\n" #: src/elflint.c:1872 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" -"sekcja [%2d] \"%s\": plik nie-DSO oznaczony jako zależność podczas wstępnej " +"sekcja [%2d] „%s”: plik nie-DSO oznaczony jako zależność podczas wstępnej " "konsolidacji\n" -#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 +#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 +#: src/elflint.c:1895 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" -"sekcja [%2d] \"%s\": brak znacznika %s we wstępnie konsolidowanym pliku " +"sekcja [%2d] „%s”: brak znacznika %s we wstępnie konsolidowanym pliku " "wykonywalnym\n" #: src/elflint.c:1907 @@ -2017,7 +2035,7 @@ msgstr "" msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" msgstr "" -"sekcja [%2d] \"%s\": tylko pliki relokowalne mogą mieć rozszerzoną sekcję " +"sekcja [%2d] „%s”: tylko pliki relokowalne mogą mieć rozszerzoną sekcję " "indeksów\n" #: src/elflint.c:1917 @@ -2025,14 +2043,14 @@ msgstr "" msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" -"sekcja [%2d] \"%s\": sekcja rozszerzonych indeksów sekcji nie dla tabeli " +"sekcja [%2d] „%s”: sekcja rozszerzonych indeksów sekcji nie dla tabeli " "symboli\n" #: src/elflint.c:1921 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" -"sekcja [%2d] \"%s\": rozszerzony indeks sekcji sh_link [%2d] jest " +"sekcja [%2d] „%s”: rozszerzony indeks sekcji sh_link [%2d] jest " "nieprawidłowy\n" #: src/elflint.c:1926 @@ -2043,13 +2061,13 @@ msgstr "nie można uzyskać danych dla sekcji symboli\n" #: src/elflint.c:1929 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" -msgstr "sekcja [%2d] \"%s\": rozmiar wpisu nie zgadza się z Elf32_Word\n" +msgstr "sekcja [%2d] „%s”: rozmiar wpisu nie zgadza się z Elf32_Word\n" #: src/elflint.c:1938 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" -"sekcja [%2d] \"%s\": tabela rozszerzonych indeksów jest za mała dla tabeli " +"sekcja [%2d] „%s”: tabela rozszerzonych indeksów jest za mała dla tabeli " "symboli\n" #: src/elflint.c:1953 @@ -2058,8 +2076,8 @@ msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " "same symbol table\n" msgstr "" -"sekcja [%2d] \"%s\": rozszerzony indeks sekcji w sekcji [%2zu] \"%s\" " -"odwołuje się do tej samej tabeli symboli\n" +"sekcja [%2d] „%s”: rozszerzony indeks sekcji w sekcji [%2zu] „%s” odwołuje " +"się do tej samej tabeli symboli\n" #: src/elflint.c:1970 #, c-format @@ -2083,44 +2101,44 @@ msgstr "" msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" msgstr "" -"sekcja [%2d] \"%s\": sekcja tabeli mieszającej jest za mała (%ld, oczekiwano " +"sekcja [%2d] „%s”: sekcja tabeli mieszającej jest za mała (%ld, oczekiwano " "%ld)\n" #: src/elflint.c:2015 src/elflint.c:2066 #, c-format msgid "section [%2d] '%s': chain array too large\n" -msgstr "sekcja [%2d] \"%s\": tabela łańcuchowa jest za duża\n" +msgstr "sekcja [%2d] „%s”: tabela łańcuchowa jest za duża\n" #: src/elflint.c:2029 src/elflint.c:2080 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" -"sekcja [%2d] \"%s\": odwołanie do kubełka skrótu %zu jest spoza zakresu\n" +"sekcja [%2d] „%s”: odwołanie do kubełka skrótu %zu jest spoza zakresu\n" #: src/elflint.c:2039 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" -"sekcja [%2d] \"%s\": odwołanie do łańcucha skrótu %zu jest spoza zakresu\n" +"sekcja [%2d] „%s”: odwołanie do łańcucha skrótu %zu jest spoza zakresu\n" #: src/elflint.c:2090 #, c-format msgid "section [%2d] '%s': hash chain reference % out of bounds\n" msgstr "" -"sekcja [%2d] \"%s\": odwołanie do łańcucha skrótu % jest spoza " +"sekcja [%2d] „%s”: odwołanie do łańcucha skrótu % jest spoza " "zakresu\n" #: src/elflint.c:2103 #, c-format msgid "section [%2d] '%s': not enough data\n" -msgstr "sekcja [%2d] \"%s\": brak wystarczającej ilości danych\n" +msgstr "sekcja [%2d] „%s”: brak wystarczającej ilości danych\n" #: src/elflint.c:2115 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" -"sekcja [%2d] \"%s\": rozmiar maski bitowej wynosi zero lub nie jest potęgą " -"2: %u\n" +"sekcja [%2d] „%s”: rozmiar maski bitowej wynosi zero lub nie jest potęgą 2: " +"%u\n" #: src/elflint.c:2131 #, c-format @@ -2128,22 +2146,21 @@ msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " "least %ld)\n" msgstr "" -"sekcja [%2d] \"%s\": sekcja tabeli mieszającej jest za mała (wynosi %ld, " +"sekcja [%2d] „%s”: sekcja tabeli mieszającej jest za mała (wynosi %ld, " "oczekiwano co najmniej %ld)\n" #: src/elflint.c:2140 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" -"sekcja [%2d] \"%s\": drugie przesunięcie funkcji mieszającej jest za duże: " -"%u\n" +"sekcja [%2d] „%s”: drugie przesunięcie funkcji mieszającej jest za duże: %u\n" #: src/elflint.c:2174 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" msgstr "" -"sekcja [%2d] \"%s\": łańcuch mieszający dla kubełka %zu jest mniejszy niż " +"sekcja [%2d] „%s”: łańcuch mieszający dla kubełka %zu jest mniejszy niż " "przesunięcie indeksu symboli\n" #: src/elflint.c:2195 @@ -2152,7 +2169,7 @@ msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " "undefined\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %u wskazywany w łańcuchu dla kubełka %zu jest " +"sekcja [%2d] „%s”: symbol %u wskazywany w łańcuchu dla kubełka %zu jest " "nieokreślony\n" #: src/elflint.c:2208 @@ -2160,66 +2177,63 @@ msgstr "" msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" msgstr "" -"sekcja [%2d] \"%s\": wartość skrótu dla symbolu %u w łańcuchu dla kubełka " -"%zu jest błędna\n" +"sekcja [%2d] „%s”: wartość skrótu dla symbolu %u w łańcuchu dla kubełka %zu " +"jest błędna\n" #: src/elflint.c:2217 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" msgstr "" -"sekcja [%2d] \"%s\": indeks maski dla symbolu %u w łańcuchu dla kubełka %zu " +"sekcja [%2d] „%s”: indeks maski dla symbolu %u w łańcuchu dla kubełka %zu " "jest błędny\n" #: src/elflint.c:2247 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" -msgstr "" -"sekcja [%2d] \"%s\": łańcuch skrótu dla kubełka %zu jest spoza zakresu\n" +msgstr "sekcja [%2d] „%s”: łańcuch skrótu dla kubełka %zu jest spoza zakresu\n" #: src/elflint.c:2252 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" msgstr "" -"sekcja [%2d] \"%s\": odwołanie do symbolu w łańcuchu dla kubełka %zu jest " +"sekcja [%2d] „%s”: odwołanie do symbolu w łańcuchu dla kubełka %zu jest " "spoza zakresu\n" #: src/elflint.c:2258 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" -"sekcja [%2d] \"%s\": maska bitowa nie pasuje do nazw w tabeli mieszającej\n" +"sekcja [%2d] „%s”: maska bitowa nie pasuje do nazw w tabeli mieszającej\n" #: src/elflint.c:2271 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" -"sekcja [%2d] \"%s\": pliki relokowalne nie mogą posiadać tabeli " -"mieszających\n" +"sekcja [%2d] „%s”: pliki relokowalne nie mogą posiadać tabeli mieszających\n" #: src/elflint.c:2289 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" -"sekcja [%2d] \"%s\": tabela mieszająca nie dla tabeli dynamicznych symboli\n" +"sekcja [%2d] „%s”: tabela mieszająca nie dla tabeli dynamicznych symboli\n" #: src/elflint.c:2293 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" -"sekcja [%2d] \"%s\": nieprawidłowy indeks sekcji tabeli symboli sh_link " -"[%2d]\n" +"sekcja [%2d] „%s”: nieprawidłowy indeks sekcji tabeli symboli sh_link [%2d]\n" #: src/elflint.c:2301 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" -msgstr "sekcja [%2d] \"%s\": niepoprawny rozmiar wpisu tabeli mieszającej\n" +msgstr "sekcja [%2d] „%s”: niepoprawny rozmiar wpisu tabeli mieszającej\n" #: src/elflint.c:2306 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" -msgstr "sekcja [%2d] \"%s\": nieoznaczona do przydzielenia\n" +msgstr "sekcja [%2d] „%s”: nieoznaczona do przydzielenia\n" #: src/elflint.c:2311 #, c-format @@ -2227,30 +2241,30 @@ msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " "entries\n" msgstr "" -"sekcja [%2d] \"%s\": tabela mieszająca nie posiada miejsca nawet na " -"początkowe wpisy administracyjne\n" +"sekcja [%2d] „%s”: tabela mieszająca nie posiada miejsca nawet na początkowe " +"wpisy administracyjne\n" #: src/elflint.c:2360 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" -"sh_link w sekcjach skrótu [%2zu] \"%s\" i [%2zu] \"%s\" nie są identyczne\n" +"sh_link w sekcjach skrótu [%2zu] „%s” i [%2zu] „%s” nie są identyczne\n" #: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "" -"sekcja mieszania [%2zu] \"%s\" nie zawiera wystarczającej ilości danych\n" +"sekcja mieszania [%2zu] „%s” nie zawiera wystarczającej ilości danych\n" #: src/elflint.c:2405 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" -msgstr "sekcja mieszania [%2zu] \"%s\" posiada zerowe słowa maski bitów\n" +msgstr "sekcja mieszania [%2zu] „%s” posiada zerowe słowa maski bitów\n" #: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" -msgstr "sekcja mieszania [%2zu] \"%s\" używa za dużo danych\n" +msgstr "sekcja mieszania [%2zu] „%s” używa za dużo danych\n" #: src/elflint.c:2431 #, c-format @@ -2258,18 +2272,18 @@ msgid "" "hash section [%2zu] '%s' invalid symbol index % (max_nsyms: " "%, nentries: %\n" msgstr "" -"sekcja mieszająca [%2zu] \"%s\" nieprawidłowy indeks symboli % " +"sekcja mieszająca [%2zu] „%s” nieprawidłowy indeks symboli % " "(max_nsyms: %, nentries: %\n" #: src/elflint.c:2518 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" -msgstr "sekcja mieszania [%2zu] \"%s\" nieprawidłowe sh_entsize\n" +msgstr "sekcja mieszania [%2zu] „%s” nieprawidłowe sh_entsize\n" #: src/elflint.c:2528 src/elflint.c:2532 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" -msgstr "sekcja [%2zu] \"%s\": odwołanie do symbolu o indeksie 0\n" +msgstr "sekcja [%2zu] „%s”: odwołanie do symbolu o indeksie 0\n" #: src/elflint.c:2539 #, c-format @@ -2277,8 +2291,8 @@ msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " "table in [%2zu] '%s'\n" msgstr "" -"symbol %d wymieniony w nowej tabeli mieszającej w [%2zu] \"%s\", ale nie w " -"poprzedniej tabeli mieszającej [%2zu] \"%s\"\n" +"symbol %d wymieniony w nowej tabeli mieszającej w [%2zu] „%s”, ale nie w " +"poprzedniej tabeli mieszającej [%2zu] „%s”\n" #: src/elflint.c:2551 #, c-format @@ -2286,125 +2300,124 @@ msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " "table in [%2zu] '%s'\n" msgstr "" -"symbol %d wymieniony w poprzedniej tabeli mieszającej w [%2zu] \"%s\", ale " -"nie w nowej tabeli mieszającej w [%2zu] \"%s\"\n" +"symbol %d wymieniony w poprzedniej tabeli mieszającej w [%2zu] „%s”, ale nie " +"w nowej tabeli mieszającej w [%2zu] „%s”\n" #: src/elflint.c:2567 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" -msgstr "sekcja [%2d] \"%s\": niezerowe sh_%s dla sekcji NULL\n" +msgstr "sekcja [%2d] „%s”: niezerowe sh_%s dla sekcji NULL\n" #: src/elflint.c:2587 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" msgstr "" -"sekcja [%2d] \"%s\": w plikach obiektów relokowalnych dozwolone są tylko " -"grupy sekcji\n" +"sekcja [%2d] „%s”: w plikach obiektów relokowalnych dozwolone są tylko grupy " +"sekcji\n" #: src/elflint.c:2598 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać tabeli symboli: %s\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać tabeli symboli: %s\n" #: src/elflint.c:2603 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" -"sekcja [%2d] \"%s\": odwołanie do sekcji w sh_link nie posiada tabeli " -"symboli\n" +"sekcja [%2d] „%s”: odwołanie do sekcji w sh_link nie posiada tabeli symboli\n" #: src/elflint.c:2609 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" -msgstr "sekcja [%2d] \"%s\": nieprawidłowy indeks symbolu w sh_info\n" +msgstr "sekcja [%2d] „%s”: nieprawidłowy indeks symbolu w sh_info\n" #: src/elflint.c:2614 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" -msgstr "sekcja [%2d] \"%s\": niezerowe sh_flags\n" +msgstr "sekcja [%2d] „%s”: niezerowe sh_flags\n" #: src/elflint.c:2621 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać symbolu dla podpisu\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu dla podpisu\n" #: src/elflint.c:2625 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać nazwy symbolu dla podpisu\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać nazwy symbolu dla podpisu\n" #: src/elflint.c:2630 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" -msgstr "sekcja [%2d] \"%s\": symbol podpisu nie można być pustym ciągiem\n" +msgstr "sekcja [%2d] „%s”: symbol podpisu nie można być pustym ciągiem\n" #: src/elflint.c:2636 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" -msgstr "sekcja [%2d] \"%s\": sh_flags nie ustawione poprawnie\n" +msgstr "sekcja [%2d] „%s”: sh_flags nie ustawione poprawnie\n" #: src/elflint.c:2642 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać danych: %s\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać danych: %s\n" #: src/elflint.c:2651 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" -"sekcja [%2d] \"%s\": rozmiar sekcji nie jest wielokrotnością " +"sekcja [%2d] „%s”: rozmiar sekcji nie jest wielokrotnością " "sizeof(Elf32_Word)\n" #: src/elflint.c:2656 #, c-format msgid "section [%2d] '%s': section group without flags word\n" -msgstr "sekcja [%2d] \"%s\": grupa sekcji bez słowa flag\n" +msgstr "sekcja [%2d] „%s”: grupa sekcji bez słowa flag\n" #: src/elflint.c:2662 #, c-format msgid "section [%2d] '%s': section group without member\n" -msgstr "sekcja [%2d] \"%s\": grupa sekcji bez elementów\n" +msgstr "sekcja [%2d] „%s”: grupa sekcji bez elementów\n" #: src/elflint.c:2666 #, c-format msgid "section [%2d] '%s': section group with only one member\n" -msgstr "sekcja [%2d] \"%s\": grupa sekcji z tylko jednym elementem\n" +msgstr "sekcja [%2d] „%s”: grupa sekcji z tylko jednym elementem\n" #: src/elflint.c:2677 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" -msgstr "sekcja [%2d] \"%s\": nieznane flagi grupy sekcji\n" +msgstr "sekcja [%2d] „%s”: nieznane flagi grupy sekcji\n" #: src/elflint.c:2689 -#, fuzzy, c-format +#, c-format msgid "section [%2d] '%s': section index %zu out of range\n" -msgstr "sekcja [%2d] \"%s\": indeks sekcji %Zu jest spoza zakresu\n" +msgstr "sekcja [%2d] „%s”: indeks sekcji %zu jest spoza zakresu\n" #: src/elflint.c:2698 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" -"sekcja [%2d] \"%s\": nie można uzyskać nagłówka sekcji dla elementu %zu: %s\n" +"sekcja [%2d] „%s”: nie można uzyskać nagłówka sekcji dla elementu %zu: %s\n" #: src/elflint.c:2705 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" -msgstr "sekcja [%2d] \"%s\": grupa sekcji zawiera inną grupę [%2d] \"%s\"\n" +msgstr "sekcja [%2d] „%s”: grupa sekcji zawiera inną grupę [%2d] „%s”\n" #: src/elflint.c:2711 -#, fuzzy, c-format +#, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " "SHF_GROUP flag set\n" msgstr "" -"sekcja [%2d] \"%s\": element %Zu odwołuje się do sekcji [%2d] \"%s\" bez " -"flagi SHF_GROUP\n" +"sekcja [%2d] „%s”: element %zu odwołuje się do sekcji [%2d] „%s” bez flagi " +"SHF_GROUP\n" #: src/elflint.c:2718 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" -msgstr "sekcja [%2d] \"%s\" jest zawarta w więcej niż jednej grupie sekcji\n" +msgstr "sekcja [%2d] „%s” jest zawarta w więcej niż jednej grupie sekcji\n" #: src/elflint.c:2907 #, c-format @@ -2412,7 +2425,7 @@ msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " "dynamic symbol table\n" msgstr "" -"sekcja [%2d] \"%s\" odwołuje się w sh_link do sekcji [%2d] \"%s\", która nie " +"sekcja [%2d] „%s” odwołuje się w sh_link do sekcji [%2d] „%s”, która nie " "jest tabelą symboli dynamicznych\n" #: src/elflint.c:2919 @@ -2421,42 +2434,41 @@ msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " "'%s'\n" msgstr "" -"sekcja [%2d] \"%s\" posiada inną liczbę wpisów niż tabela symboli [%2d] \"%s" -"\"\n" +"sekcja [%2d] „%s” posiada inną liczbę wpisów niż tabela symboli [%2d] „%s”\n" #: src/elflint.c:2935 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" -msgstr "sekcja [%2d] \"%s\": symbol %d: nie można odczytać danych wersji\n" +msgstr "sekcja [%2d] „%s”: symbol %d: nie można odczytać danych wersji\n" #: src/elflint.c:2951 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" -msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z zakresem globalnym\n" +msgstr "sekcja [%2d] „%s”: symbol %d: symbol lokalny z zakresem globalnym\n" #: src/elflint.c:2959 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" -msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z wersją\n" +msgstr "sekcja [%2d] „%s”: symbol %d: symbol lokalny z wersją\n" #: src/elflint.c:2973 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" -msgstr "sekcja [%2d] \"%s\": symbol %d: nieprawidłowy indeks wersji %d\n" +msgstr "sekcja [%2d] „%s”: symbol %d: nieprawidłowy indeks wersji %d\n" #: src/elflint.c:2978 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji określonej\n" +"sekcja [%2d] „%s”: symbol %d: indeks wersji %d jest dla wersji określonej\n" #: src/elflint.c:2988 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" -"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji żądanej\n" +"sekcja [%2d] „%s”: symbol %d: indeks wersji %d jest dla wersji żądanej\n" #: src/elflint.c:3041 #, c-format @@ -2466,34 +2478,34 @@ msgstr "obecna jest więcej niż jedna sekcja odniesienia wersji\n" #: src/elflint.c:3049 src/elflint.c:3196 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" -msgstr "sekcja [%2d] \"%s\": sh_link nie łączy się z tabelą ciągów\n" +msgstr "sekcja [%2d] „%s”: sh_link nie łączy się z tabelą ciągów\n" #: src/elflint.c:3074 src/elflint.c:3250 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" -msgstr "sekcja [%2d] \"%s\": wpis %d posiada błędną wersję %d\n" +msgstr "sekcja [%2d] „%s”: wpis %d posiada błędną wersję %d\n" #: src/elflint.c:3081 src/elflint.c:3257 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada błędny offset dla danych dodatkowych\n" +"sekcja [%2d] „%s”: wpis %d posiada błędny offset dla danych dodatkowych\n" #: src/elflint.c:3091 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" -msgstr "sekcja [%2d] \"%s\": symbol %d posiada błędne odniesienie do pliku\n" +msgstr "sekcja [%2d] „%s”: symbol %d posiada błędne odniesienie do pliku\n" #: src/elflint.c:3099 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" -msgstr "sekcja [%2d] \"%s\": wpis %d odnosi się do nieznanej zależności\n" +msgstr "sekcja [%2d] „%s”: wpis %d odnosi się do nieznanej zależności\n" #: src/elflint.c:3111 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" -"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada nieznaną flagę\n" +"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada nieznaną flagę\n" #: src/elflint.c:3119 #, c-format @@ -2501,7 +2513,7 @@ msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " "reference\n" msgstr "" -"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada nieprawidłowe " +"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada nieprawidłowe " "odniesienie do nazwy\n" #: src/elflint.c:3128 @@ -2510,7 +2522,7 @@ msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " "%#x, expected %#x\n" msgstr "" -"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada błędną wartość " +"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada błędną wartość " "skrótu: %#x, oczekiwano %#x\n" #: src/elflint.c:3137 @@ -2519,22 +2531,21 @@ msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " "name '%s'\n" msgstr "" -"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada powtórzoną nazwę " -"wersji \"%s\"\n" +"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada powtórzoną nazwę " +"wersji „%s”\n" #: src/elflint.c:3148 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" -"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d posiada błędne następne " +"sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada błędne następne " "pole\n" #: src/elflint.c:3165 src/elflint.c:3341 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" -msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada błędny offset do następnego wpisu\n" +msgstr "sekcja [%2d] „%s”: wpis %d posiada błędny offset do następnego wpisu\n" #: src/elflint.c:3173 src/elflint.c:3349 #, c-format @@ -2542,7 +2553,7 @@ msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " "there are more entries\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada zerowy offset do następnego wpisu, ale " +"sekcja [%2d] „%s”: wpis %d posiada zerowy offset do następnego wpisu, ale " "sh_info zawiera informacje o więcej wpisów\n" #: src/elflint.c:3188 @@ -2553,163 +2564,161 @@ msgstr "obecna jest więcej niż jedna sekcja definicji wersji\n" #: src/elflint.c:3235 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" -msgstr "sekcja [%2d] \"%s\": jest więcej niż jedna definicja BASE\n" +msgstr "sekcja [%2d] „%s”: jest więcej niż jedna definicja BASE\n" #: src/elflint.c:3239 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" -"sekcja [%2d] \"%s\": definicja BASE musi posiadać indeks VER_NDX_GLOBAL\n" +"sekcja [%2d] „%s”: definicja BASE musi posiadać indeks VER_NDX_GLOBAL\n" #: src/elflint.c:3245 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" -msgstr "sekcja [%2d] \"%s\": wpis %d posiada nieznaną flagę\n" +msgstr "sekcja [%2d] „%s”: wpis %d posiada nieznaną flagę\n" #: src/elflint.c:3272 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada nieprawidłowe odniesienie do nazwy\n" +"sekcja [%2d] „%s”: wpis %d posiada nieprawidłowe odniesienie do nazwy\n" #: src/elflint.c:3279 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada błędną wartość skrótu: %#x, oczekiwano " +"sekcja [%2d] „%s”: wpis %d posiada błędną wartość skrótu: %#x, oczekiwano " "%#x\n" #: src/elflint.c:3287 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" -msgstr "sekcja [%2d] \"%s\": wpis %d posiada powtórzoną nazwę wersji \"%s\"\n" +msgstr "sekcja [%2d] „%s”: wpis %d posiada powtórzoną nazwę wersji „%s”\n" #: src/elflint.c:3307 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada nieprawidłowe odniesienie do nazwy w " +"sekcja [%2d] „%s”: wpis %d posiada nieprawidłowe odniesienie do nazwy w " "danych dodatkowych\n" #: src/elflint.c:3324 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" -"sekcja [%2d] \"%s\": wpis %d posiada błędne następne pole w danych " +"sekcja [%2d] „%s”: wpis %d posiada błędne następne pole w danych " "dodatkowych\n" #: src/elflint.c:3357 #, c-format msgid "section [%2d] '%s': no BASE definition\n" -msgstr "sekcja [%2d] \"%s\": brak definicji BASE\n" +msgstr "sekcja [%2d] „%s”: brak definicji BASE\n" #: src/elflint.c:3373 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" -msgstr "sekcja [%2d] \"%s\": nieznana wersja rodzica \"%s\"\n" +msgstr "sekcja [%2d] „%s”: nieznana wersja rodzica „%s”\n" #: src/elflint.c:3386 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" -msgstr "sekcja [%2d] \"%s\": pusta sekcja atrybutów obiektu\n" +msgstr "sekcja [%2d] „%s”: pusta sekcja atrybutów obiektu\n" #: src/elflint.c:3407 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" -msgstr "sekcja [%2d] \"%s\": nierozpoznany format atrybutu\n" +msgstr "sekcja [%2d] „%s”: nierozpoznany format atrybutu\n" #: src/elflint.c:3423 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: pole o zerowej długości w sekcji atrybutów\n" +"sekcja [%2d] „%s”: offset %zu: pole o zerowej długości w sekcji atrybutów\n" #: src/elflint.c:3432 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: nieprawidłowa długość w sekcji atrybutów\n" +"sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w sekcji atrybutów\n" #: src/elflint.c:3444 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" -msgstr "sekcja [%2d] \"%s\": offset %zu: niezakończony ciąg nazwy producenta\n" +msgstr "sekcja [%2d] „%s”: offset %zu: niezakończony ciąg nazwy producenta\n" #: src/elflint.c:3461 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: niekończące się ULEB128 w znaczniku " -"podsekcji atrybutów\n" +"sekcja [%2d] „%s”: offset %zu: niekończące się ULEB128 w znaczniku podsekcji " +"atrybutów\n" #: src/elflint.c:3470 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" -msgstr "sekcja [%2d] \"%s\": offset %zu: skrócona sekcja atrybutów\n" +msgstr "sekcja [%2d] „%s”: offset %zu: skrócona sekcja atrybutów\n" #: src/elflint.c:3479 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: zerowej długości pole w podsekcji " -"atrybutów\n" +"sekcja [%2d] „%s”: offset %zu: zerowej długości pole w podsekcji atrybutów\n" #: src/elflint.c:3494 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: nieprawidłowa długość w podsekcji " -"atrybutów\n" +"sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w podsekcji atrybutów\n" +#. Tag_File #: src/elflint.c:3505 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: podsekcja atrybutów posiada nieoczekiwany " +"sekcja [%2d] „%s”: offset %zu: podsekcja atrybutów posiada nieoczekiwany " "znacznik %u\n" #: src/elflint.c:3523 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: niekończące się ULEB128 w znaczniku " -"atrybutu\n" +"sekcja [%2d] „%s”: offset %zu: niekończące się ULEB128 w znaczniku atrybutu\n" #: src/elflint.c:3534 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" -msgstr "sekcja [%2d] \"%s\": offset %zu: niezakończony ciąg w atrybucie\n" +msgstr "sekcja [%2d] „%s”: offset %zu: niezakończony ciąg w atrybucie\n" #: src/elflint.c:3547 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" -msgstr "sekcja [%2d] \"%s\": offset %zu: nierozpoznany znacznik atrybutu %u\n" +msgstr "sekcja [%2d] „%s”: offset %zu: nierozpoznany znacznik atrybutu %u\n" #: src/elflint.c:3551 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: atrybut %s posiada nierozpoznaną wartość " +"sekcja [%2d] „%s”: offset %zu: atrybut %s posiada nierozpoznaną wartość " "%\n" #: src/elflint.c:3561 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" -msgstr "sekcja [%2d] \"%s\": offset %zu: producent \"%s\" jest nieznany\n" +msgstr "sekcja [%2d] „%s”: offset %zu: producent „%s” jest nieznany\n" #: src/elflint.c:3567 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -"sekcja [%2d] \"%s\": offset %zu: dodatkowe bajty po ostatniej sekcji " +"sekcja [%2d] „%s”: offset %zu: dodatkowe bajty po ostatniej sekcji " "atrybutów\n" #: src/elflint.c:3656 @@ -2782,7 +2791,7 @@ msgstr "" #: src/elflint.c:3700 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" -msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] \"%s\": %s\n" +msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] „%s”: %s\n" #: src/elflint.c:3709 #, c-format @@ -2792,32 +2801,32 @@ msgstr "sekcja [%2zu]: nieprawidłowa nazwa\n" #: src/elflint.c:3736 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" -msgstr "sekcja [%2d] \"%s\" posiada błędny typ: oczekiwano %s, jest %s\n" +msgstr "sekcja [%2d] „%s” posiada błędny typ: oczekiwano %s, jest %s\n" #: src/elflint.c:3752 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" -msgstr "sekcja [%2zu] \"%s\" posiada błędne flagi: oczekiwano %s, jest %s\n" +msgstr "sekcja [%2zu] „%s” posiada błędne flagi: oczekiwano %s, jest %s\n" #: src/elflint.c:3769 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -"sekcja [%2zu] \"%s\" posiada błędne flagi: oczekiwano %s i być może %s, jest " +"sekcja [%2zu] „%s” posiada błędne flagi: oczekiwano %s i być może %s, jest " "%s\n" #: src/elflint.c:3787 #, c-format msgid "section [%2zu] '%s' present in object file\n" -msgstr "sekcja [%2zu] \"%s\" jest obecna w pliku obiektu\n" +msgstr "sekcja [%2zu] „%s” jest obecna w pliku obiektu\n" #: src/elflint.c:3793 src/elflint.c:3825 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -"sekcja [%2zu] \"%s\" posiada flagę SHF_ALLOC, ale nie posiada segmentu " +"sekcja [%2zu] „%s” posiada flagę SHF_ALLOC, ale nie posiada segmentu " "wczytywalnego\n" #: src/elflint.c:3798 src/elflint.c:3830 @@ -2826,22 +2835,20 @@ msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -"sekcja [%2zu] \"%s\" nie posiada flagi SHF_ALLOC, ale są segmenty " -"wczytywalne\n" +"sekcja [%2zu] „%s” nie posiada flagi SHF_ALLOC, ale są segmenty wczytywalne\n" #: src/elflint.c:3806 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -"sekcja [%2zu] \"%s\" jest tabelą indeksów sekcji rozszerzeń w pliku " +"sekcja [%2zu] „%s” jest tabelą indeksów sekcji rozszerzeń w pliku " "nieobiektowym\n" #: src/elflint.c:3849 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" -msgstr "" -"sekcja [%2zu] \"%s\": rozmiar nie jest wielokrotnością rozmiaru wpisu\n" +msgstr "sekcja [%2zu] „%s”: rozmiar nie jest wielokrotnością rozmiaru wpisu\n" #: src/elflint.c:3854 #, c-format @@ -2851,152 +2858,150 @@ msgstr "nie można uzyskać nagłówka sekcji\n" #: src/elflint.c:3864 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" -msgstr "sekcja [%2zu] \"%s\" posiada nieobsługiwany typ %d\n" +msgstr "sekcja [%2zu] „%s” posiada nieobsługiwany typ %d\n" #: src/elflint.c:3878 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" msgstr "" -"sekcja [%2zu] \"%s\" zawiera nieprawidłowe flagi specyficzne dla procesora " +"sekcja [%2zu] „%s” zawiera nieprawidłowe flagi specyficzne dla procesora " "%#\n" #: src/elflint.c:3885 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" -msgstr "sekcja [%2zu] \"%s\" zawiera nieznane flagi %#\n" +msgstr "sekcja [%2zu] „%s” zawiera nieznane flagi %#\n" #: src/elflint.c:3893 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -"sekcja [%2zu] \"%s\": adres sekcji danych lokalnych dla wątków nie jest " -"zerem\n" +"sekcja [%2zu] „%s”: adres sekcji danych lokalnych dla wątków nie jest zerem\n" #: src/elflint.c:3901 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -"sekcja [%2zu] \"%s\": nieprawidłowe odwołanie do sekcji w wartości " -"dowiązania\n" +"sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości dowiązania\n" #: src/elflint.c:3906 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -"sekcja [%2zu] \"%s\": nieprawidłowe odwołanie do sekcji w wartości " +"sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości " "informacyjnej\n" #: src/elflint.c:3913 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" -msgstr "sekcja [%2zu] \"%s\": flaga ciągów jest ustawiona bez flagi merge\n" +msgstr "sekcja [%2zu] „%s”: flaga ciągów jest ustawiona bez flagi merge\n" #: src/elflint.c:3918 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -"sekcja [%2zu] \"%s\": flaga merge jest ustawiona, ale rozmiar wpisu jest " +"sekcja [%2zu] „%s”: flaga merge jest ustawiona, ale rozmiar wpisu jest " "zerowy\n" #: src/elflint.c:3936 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -"sekcja [%2zu] \"%s\" posiada nieoczekiwany typ %d dla sekcji wykonywalnej\n" +"sekcja [%2zu] „%s” posiada nieoczekiwany typ %d dla sekcji wykonywalnej\n" #: src/elflint.c:3945 -#, fuzzy, c-format +#, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" -msgstr "sekcja [%2zu] \"%s\" nie może być zapisywalna\n" +msgstr "sekcja [%2zu] „%s” musi być typu NOBITS w plikach debuginfo\n" #: src/elflint.c:3952 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" -msgstr "sekcja [%2zu] \"%s\" jest wykonywalne i zapisywalne\n" +msgstr "sekcja [%2zu] „%s” jest wykonywalne i zapisywalne\n" -#: src/elflint.c:3982 +#: src/elflint.c:3983 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -"sekcja [%2zu] \"%s\" nie jest w całości zawarta w segmencie wpisu %d " -"nagłówka programu\n" +"sekcja [%2zu] „%s” nie jest w całości zawarta w segmencie wpisu %d nagłówka " +"programu\n" -#: src/elflint.c:3992 +#: src/elflint.c:3993 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -"sekcja [%2zu] \"%s\" posiada typ NOBITS, a jest odczytywana z pliku w " +"sekcja [%2zu] „%s” posiada typ NOBITS, a jest odczytywana z pliku w " "segmencie wpisu %d nagłówka programu\n" -#: src/elflint.c:4018 -#, fuzzy, c-format +#: src/elflint.c:4019 +#, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -"sekcja [%2zu] \"%s\" posiada typ NOBITS, a jest odczytywana z pliku w " -"segmencie wpisu %d nagłówka programu\n" +"sekcja [%2zu] „%s” posiada typ NOBITS, ale jest odczytywana z pliku w " +"segmencie wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n" -#: src/elflint.c:4029 +#: src/elflint.c:4030 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -"sekcja [%2zu] \"%s\" nie posiada typu NOBITS, a nie jest odczytywana z pliku " -"w segmencie wpisu %d nagłówka programu\n" +"sekcja [%2zu] „%s” nie posiada typu NOBITS, a nie jest odczytywana z pliku w " +"segmencie wpisu %d nagłówka programu\n" -#: src/elflint.c:4040 +#: src/elflint.c:4041 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" -msgstr "sekcja [%2zu] \"%s\" jest wykonywalne w segmencie niewykonywalnym %d\n" +msgstr "sekcja [%2zu] „%s” jest wykonywalne w segmencie niewykonywalnym %d\n" -#: src/elflint.c:4050 +#: src/elflint.c:4051 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" -msgstr "sekcja [%2zu] \"%s\" jest zapisywalne w niezapisywalnym segmencie %d\n" +msgstr "sekcja [%2zu] „%s” jest zapisywalne w niezapisywalnym segmencie %d\n" -#: src/elflint.c:4060 +#: src/elflint.c:4061 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -"sekcja [%2zu] \"%s\": posiada flagę alloc, ale sekcja nie jest w żadnym " +"sekcja [%2zu] „%s”: posiada flagę alloc, ale sekcja nie jest w żadnym " "segmencie wczytywalnym\n" -#: src/elflint.c:4066 +#: src/elflint.c:4067 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -"sekcja [%2zu] \"%s\": według nagłówka ELF to jest tabela ciągów nagłówków " +"sekcja [%2zu] „%s”: według nagłówka ELF to jest tabela ciągów nagłówków " "sekcji, ale typ nie jest SHT_TYPE\n" -#: src/elflint.c:4074 +#: src/elflint.c:4075 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -"sekcja [%2zu] \"%s\": pliki relokowalne nie mogą posiadać tabeli symboli " +"sekcja [%2zu] „%s”: pliki relokowalne nie mogą posiadać tabeli symboli " "dynamicznych\n" -#: src/elflint.c:4125 +#: src/elflint.c:4126 #, c-format msgid "more than one version symbol table present\n" msgstr "obecna jest więcej niż jedna tabela symboli wersji\n" -#: src/elflint.c:4148 +#: src/elflint.c:4149 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "jest wpis nagłówka programu INTERP, ale nie posiada sekcji .interp\n" -#: src/elflint.c:4159 +#: src/elflint.c:4160 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3004,14 +3009,14 @@ msgstr "" "wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych " "sekcji\n" -#: src/elflint.c:4165 +#: src/elflint.c:4166 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "wczytywalny segment [%u] jest zapisywalny, ale nie zawiera zapisywalnych " "sekcji\n" -#: src/elflint.c:4176 +#: src/elflint.c:4177 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3020,75 +3025,75 @@ msgstr "" "brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu." "versym_r\n" -#: src/elflint.c:4189 +#: src/elflint.c:4190 #, c-format msgid "duplicate version index %d\n" msgstr "powtórzony indeks wersji %d\n" -#: src/elflint.c:4203 +#: src/elflint.c:4204 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "sekcja .gnu.versym istnieje bez .gnu.versym_d lub .gnu.versym_r\n" -#: src/elflint.c:4252 +#: src/elflint.c:4253 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: nieznany typ notatki pliku core % pod offsetem %\n" -#: src/elflint.c:4256 -#, fuzzy, c-format +#: src/elflint.c:4257 +#, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" msgstr "" -"phdr[%2d]: \"%s\": nieznany typ notatki pliku core % pod offsetem " -"%Zu\n" +"sekcja [%2d]: „%s”: nieznany typ notatki pliku core % pod offsetem " +"%zu\n" -#: src/elflint.c:4279 -#, fuzzy, c-format +#: src/elflint.c:4280 +#, c-format msgid "phdr[%d]: unknown object file note type % at offset %zu\n" msgstr "" -"phdr[%d]: nieznany typ notatki pliku obiektu % pod offsetem %Zu\n" +"phdr[%d]: nieznany typ notatki pliku obiektu % pod offsetem %zu\n" -#: src/elflint.c:4283 -#, fuzzy, c-format +#: src/elflint.c:4284 +#, c-format msgid "" "section [%2d] '%s': unknown object file note type % at offset %zu\n" msgstr "" -"sekcja [%2d] \"%s\": nieznany typ notatki pliku obiektu % pod " -"offsetem %Zu\n" +"sekcja [%2d] „%s”: nieznany typ notatki pliku obiektu % pod offsetem " +"%zu\n" -#: src/elflint.c:4300 +#: src/elflint.c:4301 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: brak określonych wpisów notatek dla typu pliku\n" -#: src/elflint.c:4319 +#: src/elflint.c:4320 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: nie można uzyskać zawartości sekcji notatki: %s\n" -#: src/elflint.c:4322 +#: src/elflint.c:4323 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: dodatkowe % bajtów po ostatniej notatce\n" -#: src/elflint.c:4343 +#: src/elflint.c:4344 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" -msgstr "sekcja [%2d] \"%s\": brak określonych wpisów notatek dla typu pliku\n" +msgstr "sekcja [%2d] „%s”: brak określonych wpisów notatek dla typu pliku\n" -#: src/elflint.c:4350 +#: src/elflint.c:4351 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" -msgstr "sekcja [%2d] \"%s\": nie można uzyskać zawartości sekcji notatek\n" +msgstr "sekcja [%2d] „%s”: nie można uzyskać zawartości sekcji notatek\n" -#: src/elflint.c:4353 +#: src/elflint.c:4354 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" -msgstr "sekcja [%2d] \"%s\": dodatkowe % bajtów po ostatniej notatce\n" +msgstr "sekcja [%2d] „%s”: dodatkowe % bajtów po ostatniej notatce\n" -#: src/elflint.c:4371 +#: src/elflint.c:4372 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3096,135 +3101,136 @@ msgstr "" "tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą posiadać " "nagłówki programu\n" -#: src/elflint.c:4386 +#: src/elflint.c:4387 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "nie można uzyskać wpisu nagłówka programu %d: %s\n" -#: src/elflint.c:4395 +#: src/elflint.c:4396 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#\n" -#: src/elflint.c:4406 +#: src/elflint.c:4407 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "więcej niż jeden wpis INTERP w nagłówku programu\n" -#: src/elflint.c:4414 +#: src/elflint.c:4415 #, c-format msgid "more than one TLS entry in program header\n" msgstr "więcej niż jeden wpis TLS w nagłówku programu\n" -#: src/elflint.c:4421 +#: src/elflint.c:4422 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "statyczny plik wykonywalny nie może posiadać sekcji dynamicznych\n" -#: src/elflint.c:4435 +#: src/elflint.c:4436 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "odniesienie sekcji dynamicznej w nagłówku programu posiada błędny offset\n" -#: src/elflint.c:4438 +#: src/elflint.c:4439 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "różne rozmiary sekcji dynamicznej w nagłówku programu i sekcji\n" -#: src/elflint.c:4448 +#: src/elflint.c:4449 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "więcej niż jeden wpis GNU_RELRO w nagłówku programu\n" -#: src/elflint.c:4469 +#: src/elflint.c:4470 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "wczytywalny segment wskazywany przez GNU_RELRO nie jest zapisywalny\n" -#: src/elflint.c:4480 +#: src/elflint.c:4481 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "flagi wczytywalnego segmentu [%u] nie pasują do flag GNU_RELRO [%u]\n" -#: src/elflint.c:4487 +#: src/elflint.c:4488 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" +"flagi GNU_RELRO [%u] nie są podzbiorem flag wczytywalnego segmentu [%u]\n" -#: src/elflint.c:4496 src/elflint.c:4519 +#: src/elflint.c:4497 src/elflint.c:4520 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "segment %s nie zawiera się we wczytywalnym segmencie\n" -#: src/elflint.c:4525 +#: src/elflint.c:4526 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" "offsety nagłówka programu w nagłówku ELF i wpisie PHDR nie zgadzają się" -#: src/elflint.c:4550 +#: src/elflint.c:4551 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "odniesienie tabeli wyszukiwania ramki wywołania w nagłówku programu posiada " "błędny offset\n" -#: src/elflint.c:4553 +#: src/elflint.c:4554 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "różne rozmiary tabel wyszukiwania ramki wywołania w nagłówku programu i " "sekcji\n" -#: src/elflint.c:4566 +#: src/elflint.c:4567 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "PT_GNU_EH_FRAME jest obecne, ale brak sekcji .eh_frame_hdr\n" -#: src/elflint.c:4574 +#: src/elflint.c:4575 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n" -#: src/elflint.c:4577 +#: src/elflint.c:4578 #, c-format msgid "section [%2zu] '%s' must be allocated\n" -msgstr "sekcja [%2zu] \"%s\": musi być przydzielona\n" +msgstr "sekcja [%2zu] „%s”: musi być przydzielona\n" -#: src/elflint.c:4581 +#: src/elflint.c:4582 #, c-format msgid "call frame search table must not be writable\n" msgstr "tabela wyszukiwania ramki wywołania nie może być zapisywalna\n" -#: src/elflint.c:4584 +#: src/elflint.c:4585 #, c-format msgid "section [%2zu] '%s' must not be writable\n" -msgstr "sekcja [%2zu] \"%s\" nie może być zapisywalna\n" +msgstr "sekcja [%2zu] „%s” nie może być zapisywalna\n" -#: src/elflint.c:4589 +#: src/elflint.c:4590 #, c-format msgid "call frame search table must not be executable\n" msgstr "tabela wyszukiwania ramki wywołania nie może być wykonywalna\n" -#: src/elflint.c:4592 +#: src/elflint.c:4593 #, c-format msgid "section [%2zu] '%s' must not be executable\n" -msgstr "sekcja [%2zu] \"%s\" nie może być wykonywalna\n" +msgstr "sekcja [%2zu] „%s” nie może być wykonywalna\n" -#: src/elflint.c:4603 +#: src/elflint.c:4604 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "wpis nagłówka programu %d: rozmiar pliku większy niż rozmiar pamięci\n" -#: src/elflint.c:4610 +#: src/elflint.c:4611 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "wpis nagłówka programu %d: wyrównanie nie jest potęgą 2\n" -#: src/elflint.c:4613 +#: src/elflint.c:4614 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3233,7 +3239,7 @@ msgstr "" "wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są " "wielokrotnością wyrównania\n" -#: src/elflint.c:4626 +#: src/elflint.c:4627 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3242,12 +3248,12 @@ msgstr "" "plik wykonywalny/DSO z sekcją .eh_frame_hdr nie posiada wpisu nagłówka " "programu PT_GNU_EH_FRAME" -#: src/elflint.c:4660 +#: src/elflint.c:4661 #, c-format msgid "cannot read ELF header: %s\n" msgstr "nie można odczytać nagłówka ELF: %s\n" -#: src/elflint.c:4686 +#: src/elflint.c:4687 #, c-format msgid "text relocation flag set but not needed\n" msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n" @@ -3264,24 +3270,26 @@ msgstr "Dołącza ŚCIEŻKĘ do wszystkich nazw plików" msgid "Use PATH as root of debuginfo hierarchy" msgstr "Używa ŚCIEŻKI jako korzenia dla hierarchii debuginfo" +#. Short description of program. #: src/findtextrel.c:72 msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "Odnajduje źródło relokacji tekstu w PLIKACH (domyślnie a.out)." +#. Strings for arguments in help texts. #: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" -msgstr "[PLIK...]" +msgstr "[PLIK…]" #: src/findtextrel.c:238 #, c-format msgid "cannot get ELF header '%s': %s" -msgstr "nie można uzyskać nagłówka ELF \"%s\": %s" +msgstr "nie można uzyskać nagłówka ELF „%s”: %s" #: src/findtextrel.c:249 #, c-format msgid "'%s' is not a DSO or PIE" -msgstr "\"%s\" nie jest DSO ani PIE" +msgstr "„%s” nie jest DSO ani PIE" #: src/findtextrel.c:269 #, c-format @@ -3296,7 +3304,7 @@ msgstr "nie można odczytać sekcji dynamicznej: %s" #: src/findtextrel.c:313 #, c-format msgid "no text relocations reported in '%s'" -msgstr "brak relokacji tekstu w \"%s\"" +msgstr "brak relokacji tekstu w „%s”" #: src/findtextrel.c:325 #, c-format @@ -3316,12 +3324,12 @@ msgstr "nie można uzyskać indeksu nagłówka programu pod offsetem %zd: %s" #: src/findtextrel.c:421 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" -msgstr "nie można uzyskać sekcji tabeli symboli %zu w \"%s\": %s" +msgstr "nie można uzyskać sekcji tabeli symboli %zu w „%s”: %s" #: src/findtextrel.c:441 src/findtextrel.c:464 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" -msgstr "nie można uzyskać relokacji pod indeksem %d w sekcji %zu w \"%s\": %s" +msgstr "nie można uzyskać relokacji pod indeksem %d w sekcji %zu w „%s”: %s" #: src/findtextrel.c:530 #, c-format @@ -3332,8 +3340,7 @@ msgstr "%s nie został skompilowany z -fpic/-fPIC\n" #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" -msgstr "" -"plik zawierający funkcję \"%s\" nie został skompilowany z -fpic/-fPIC\n" +msgstr "plik zawierający funkcję „%s” nie został skompilowany z -fpic/-fPIC\n" #: src/findtextrel.c:590 src/findtextrel.c:610 #, c-format @@ -3341,7 +3348,7 @@ msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" "fPIC\n" msgstr "" -"plik zawierający funkcję \"%s\" mógł nie zostać skompilowany z -fpic/-fPIC\n" +"plik zawierający funkcję „%s” mógł nie zostać skompilowany z -fpic/-fPIC\n" #: src/findtextrel.c:598 #, c-format @@ -3349,8 +3356,8 @@ msgid "" "either the file containing the function '%s' or the file containing the " "function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" -"plik zawierający funkcję \"%s\" lub plik zawierający funkcję \"%s\" nie " -"został skompilowany z -fpic/-fPIC\n" +"plik zawierający funkcję „%s” lub plik zawierający funkcję „%s” nie został " +"skompilowany z -fpic/-fPIC\n" #: src/findtextrel.c:618 #, c-format @@ -3487,7 +3494,7 @@ msgstr "Włącza/wyłącza flagi leniwego wczytywania dla następnych zależnoś #: src/ld.c:124 msgid "Mark object as not loadable with 'dlopen'." -msgstr "Oznacza obiekt jako niewczytywalnego przez \"dlopen\"." +msgstr "Oznacza obiekt jako niewczytywalnego przez „dlopen”." #: src/ld.c:126 msgid "Ignore/record dependencies on unused DSOs." @@ -3622,13 +3629,15 @@ msgstr "Odczytuje informacje o wersji z PLIKU." msgid "Set emulation to NAME." msgstr "Ustawia emulację na NAZWĘ." +#. Short description of program. #: src/ld.c:188 msgid "Combine object and archive files." msgstr "Łączy pliki obiektów i archiwów." +#. Strings for arguments in help texts. #: src/ld.c:191 msgid "[FILE]..." -msgstr "[PLIK]..." +msgstr "[PLIK]…" #: src/ld.c:319 #, c-format @@ -3643,7 +3652,7 @@ msgstr "błąd podczas przygotowywania konsolidowania" #: src/ld.c:342 #, c-format msgid "cannot open linker script '%s'" -msgstr "nie można otworzyć skryptu konsolidatora \"%s\"" +msgstr "nie można otworzyć skryptu konsolidatora „%s”" #: src/ld.c:383 #, c-format @@ -3658,27 +3667,27 @@ msgstr "dozwolona jest tylko jedna z opcji -G i -r" #: src/ld.c:580 #, c-format msgid "more than one '-m' parameter" -msgstr "podano więcej niż jeden parametr \"-m\"" +msgstr "podano więcej niż jeden parametr „-m”" #: src/ld.c:590 src/ld.c:999 #, c-format msgid "unknown option `-%c %s'" -msgstr "nieznana opcja \"-%c %s\"" +msgstr "nieznana opcja „-%c %s”" #: src/ld.c:632 #, c-format msgid "invalid page size value '%s': ignored" -msgstr "nieprawidłowa wartość rozmiaru strony \"%s\": zignorowano" +msgstr "nieprawidłowa wartość rozmiaru strony „%s”: zignorowano" #: src/ld.c:673 #, c-format msgid "invalid hash style '%s'" -msgstr "nieprawidłowy styl sum kontrolnych \"%s\"" +msgstr "nieprawidłowy styl sum kontrolnych „%s”" #: src/ld.c:683 #, c-format msgid "invalid build-ID style '%s'" -msgstr "nieprawidłowy styl identyfikatora kopii \"%s\"" +msgstr "nieprawidłowy styl identyfikatora kopii „%s”" #: src/ld.c:771 #, c-format @@ -3688,7 +3697,7 @@ msgstr "Podano więcej niż jeden plik wyjściowy." #: src/ld.c:788 #, c-format msgid "Invalid optimization level `%s'" -msgstr "Nieprawidłowy poziom optymalizacji \"%s\"" +msgstr "Nieprawidłowy poziom optymalizacji „%s”" #: src/ld.c:836 #, c-format @@ -3703,7 +3712,7 @@ msgstr "-) bez pasującego -(" #: src/ld.c:1032 #, c-format msgid "unknown option '-%c %s'" -msgstr "nieznana opcja \"-%c %s\"" +msgstr "nieznana opcja „-%c %s”" #: src/ld.c:1138 #, c-format @@ -3714,17 +3723,19 @@ msgstr "" #: src/ld.c:1140 #, c-format msgid "try again with an appropriate '-m' parameter" -msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem \"-m\"" +msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem „-m”" #: src/ld.c:1434 #, c-format msgid "cannot read version script '%s'" -msgstr "nie można odczytać skryptu wersji \"%s\"" +msgstr "nie można odczytać skryptu wersji „%s”" +#. The symbol is already defined and now again +#. in the linker script. This is an error. #: src/ld.c:1500 src/ld.c:1539 #, c-format msgid "duplicate definition of '%s' in linker script" -msgstr "powtórzona definicja \"%s\" w skrypcie konsolidatora" +msgstr "powtórzona definicja „%s” w skrypcie konsolidatora" #: src/ldgeneric.c:201 src/ldgeneric.c:5141 #, c-format @@ -3734,12 +3745,12 @@ msgstr "nie można utworzyć tabeli ciągów" #: src/ldgeneric.c:247 #, c-format msgid "cannot load ld backend library '%s': %s" -msgstr "nie można odczytać biblioteki zaplecza ld \"%s\": %s" +msgstr "nie można odczytać biblioteki zaplecza ld „%s”: %s" #: src/ldgeneric.c:257 #, c-format msgid "cannot find init function in ld backend library '%s': %s" -msgstr "nie można odnaleźć funkcji init w bibliotece zaplecza ld \"%s\": %s" +msgstr "nie można odnaleźć funkcji init w bibliotece zaplecza ld „%s”: %s" #: src/ldgeneric.c:300 #, c-format @@ -3759,13 +3770,13 @@ msgstr "%s (dla DT_NEEDED %s)\n" #: src/ldgeneric.c:563 #, c-format msgid "Warning: type of `%s' changed from %s in %s to %s in %s" -msgstr "Ostrzeżenie: typ \"%s\" zmienił się z %s w %s na %s w %s" +msgstr "Ostrzeżenie: typ „%s” zmienił się z %s w %s na %s w %s" #: src/ldgeneric.c:576 #, c-format msgid "Warning: size of `%s' changed from % in %s to % in %s" msgstr "" -"Ostrzeżenie: rozmiar \"%s\" zmienił się z % w %s na % w %s" +"Ostrzeżenie: rozmiar „%s” zmienił się z % w %s na % w %s" #: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527 #: src/readelf.c:829 src/strip.c:589 @@ -3788,16 +3799,20 @@ msgstr "(%s+%#): pierwszy raz określono tutaj\n" msgid "%s: cannot get section group data: %s" msgstr "%s: nie można uzyskać danych grupy sekcji: %s" +#. If we come here no section group contained the given section +#. despite the SHF_GROUP flag. This is an error in the input +#. file. #: src/ldgeneric.c:830 #, c-format msgid "%s: section '%s' with group flag set does not belong to any group" -msgstr "%s: sekcja \"%s\" z ustawioną flagą grupy nie należy do żadnej grupy" +msgstr "%s: sekcja „%s” z ustawioną flagą grupy nie należy do żadnej grupy" #: src/ldgeneric.c:875 #, c-format msgid "%s: section [%2d] '%s' is not in the correct section group" -msgstr "%s: sekcja [%2d] \"%s\" nie jest w poprawnej grupie sekcji" +msgstr "%s: sekcja [%2d] „%s” nie jest w poprawnej grupie sekcji" +#. This should never happen. #: src/ldgeneric.c:1146 src/ldgeneric.c:1403 src/ldgeneric.c:1412 #: src/ldgeneric.c:1471 src/ldgeneric.c:1480 src/ldgeneric.c:1743 #: src/ldgeneric.c:1995 @@ -3813,12 +3828,12 @@ msgstr "%s: tylko pliki typu ET_REL mogą zawierać grupy sekcji" #: src/ldgeneric.c:1292 #, c-format msgid "%s: cannot determine signature of section group [%2zd] '%s': %s" -msgstr "%s: nie można określić podpisu grupy sekcji [%2zd] \"%s\": %s" +msgstr "%s: nie można określić podpisu grupy sekcji [%2zd] „%s”: %s" #: src/ldgeneric.c:1304 #, c-format msgid "%s: cannot get content of section group [%2zd] '%s': %s'" -msgstr "%s: nie można uzyskać zawartości grupy sekcji [%2zd] \"%s\": %s" +msgstr "%s: nie można uzyskać zawartości grupy sekcji [%2zd] „%s”: %s" #: src/ldgeneric.c:1318 #, c-format @@ -3826,13 +3841,13 @@ msgid "" "%s: group member %zu of section group [%2zd] '%s' has too high index: " "%" msgstr "" -"%s: element grupy %zu grupy sekcji [%2zd] \"%s\" posiada za wysoki indeks: " +"%s: element grupy %zu grupy sekcji [%2zd] „%s” posiada za wysoki indeks: " "%" #: src/ldgeneric.c:1340 #, c-format msgid "%s: section '%s' has unknown type: %d" -msgstr "%s: sekcja \"%s\" posiada nieznany typ: %d" +msgstr "%s: sekcja „%s” posiada nieznany typ: %d" #: src/ldgeneric.c:1719 #, c-format @@ -3842,7 +3857,7 @@ msgstr "nie można uzyskać deskryptora dla pliku ELF (%s:%d): %s\n" #: src/ldgeneric.c:1889 #, c-format msgid "cannot read archive `%s': %s" -msgstr "nie można odczytać archiwum \"%s\": %s" +msgstr "nie można odczytać archiwum „%s”: %s" #: src/ldgeneric.c:2010 #, c-format @@ -3862,18 +3877,20 @@ msgstr "%s: nie można uzyskać indeksu tabeli ciągów nagłówków sekcji: %s\ #: src/ldgeneric.c:2063 #, c-format msgid "cannot use DSO '%s' when generating relocatable object file" -msgstr "" -"nie można użyć DSO \"%s\" podczas tworzenia relokowalnego pliku obiektu" +msgstr "nie można użyć DSO „%s” podczas tworzenia relokowalnego pliku obiektu" #: src/ldgeneric.c:2148 #, c-format msgid "input file '%s' ignored" -msgstr "plik wejściowy \"%s\" został zignorowany" +msgstr "plik wejściowy „%s” został zignorowany" +#. XXX The error message should get better. It should use +#. the debugging information if present to tell where in the +#. sources the undefined reference is. #: src/ldgeneric.c:2362 #, c-format msgid "undefined symbol `%s' in %s" -msgstr "nieokreślony symbol \"%s\" w %s" +msgstr "nieokreślony symbol „%s” w %s" #: src/ldgeneric.c:2692 #, c-format @@ -3896,7 +3913,7 @@ msgstr "nie można utworzyć sekcji dla pliku wyjściowego: %s" #: src/ldgeneric.c:3434 #, c-format msgid "address computation expression contains variable '%s'" -msgstr "wyrażenie obliczenia adresu zawiera zmienną \"%s\"" +msgstr "wyrażenie obliczenia adresu zawiera zmienną „%s”" #: src/ldgeneric.c:3479 #, c-format @@ -3904,14 +3921,14 @@ msgid "" "argument '%' of ALIGN in address computation expression is no power " "of two" msgstr "" -"parametr \"%\" ALIGN w wyrażeniu obliczenia adresu nie jest potęgą " +"parametr „%” ALIGN w wyrażeniu obliczenia adresu nie jest potęgą " "dwójki" #: src/ldgeneric.c:3674 #, c-format msgid "cannot find entry symbol '%s': defaulting to %#0*" msgstr "" -"nie można odnaleźć symbolu wejściowego \"%s\": użycie domyślnego %#0*" +"nie można odnaleźć symbolu wejściowego „%s”: użycie domyślnego %#0*" #: src/ldgeneric.c:3680 #, c-format @@ -4039,12 +4056,15 @@ msgstr "" "OSTRZEŻENIE: tymczasowy plik wyjściowy został zastąpiony przed ukończeniem " "konsolidowania" +#. This cannot be implemented generally. There should have been a +#. machine dependent implementation and we should never have arrived +#. here. #: src/ldgeneric.c:7053 src/ldgeneric.c:7064 src/ldgeneric.c:7075 #: src/ldgeneric.c:7086 src/ldgeneric.c:7105 src/ldgeneric.c:7118 #: src/ldgeneric.c:7130 #, c-format msgid "no machine specific '%s' implementation" -msgstr "brak implementacji \"%s\" specyficznej dla maszyny" +msgstr "brak implementacji „%s” specyficznej dla maszyny" #: src/ldscript.y:170 msgid "mode for segment invalid\n" @@ -4053,26 +4073,26 @@ msgstr "nieprawidłowy tryb dla segmentu\n" #: src/ldscript.y:457 #, c-format msgid "while reading version script '%s': %s at line %d" -msgstr "podczas odczytywania skryptu wersji \"%s\": %s w wierszu %d" +msgstr "podczas odczytywania skryptu wersji „%s”: %s w wierszu %d" #: src/ldscript.y:458 #, c-format msgid "while reading linker script '%s': %s at line %d" -msgstr "podczas odczytywania skryptu konsolidatora \"%s\": %s w wierszu %d" +msgstr "podczas odczytywania skryptu konsolidatora „%s”: %s w wierszu %d" #: src/ldscript.y:737 -#, fuzzy, c-format +#, c-format msgid "symbol '%s' is declared both local and global for unnamed version '%s'" msgstr "" -"symbol \"%s\" jest zadeklarowany jednocześnie lokalny i globalny dla " -"nienazwanej wersji" +"symbol „%s” jest zadeklarowany jednocześnie lokalny i globalny dla " +"nienazwanej wersji „%s”" #: src/ldscript.y:739 #, c-format msgid "symbol '%s' is declared both local and global for version '%s'" msgstr "" -"symbol \"%s\" jest zadeklarowany jednocześnie lokalny i globalny dla wersji " -"\"%s\"" +"symbol „%s” jest zadeklarowany jednocześnie lokalny i globalny dla wersji " +"„%s”" #: src/ldscript.y:759 src/ldscript.y:766 #, c-format @@ -4120,8 +4140,8 @@ msgid "" "Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The " "default is `sysv'" msgstr "" -"Używa FORMATU wyjściowego. Może to być \"bsd\", \"sysv\" lub \"posix\". " -"Domyślny jest format \"sysv\"" +"Używa FORMATU wyjściowego. Może to być „bsd”, „sysv” lub „posix”. Domyślny " +"jest format „sysv”" #: src/nm.c:83 msgid "Same as --format=bsd" @@ -4163,6 +4183,7 @@ msgstr "Odwraca kierunek porządkowania" msgid "Decode low-level symbol names into source code names" msgstr "Dekoduje niskopoziomowe nazwy symboli na nazwy kodu źródłowego" +#. Short description of program. #: src/nm.c:104 msgid "List symbols from FILEs (a.out by default)." msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)." @@ -4176,17 +4197,18 @@ msgstr "Formatowanie wyjścia" msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s): %s" -#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325 -#: src/strip.c:2280 +#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 +#: src/size.c:325 src/strip.c:2280 #, c-format msgid "while closing '%s'" -msgstr "podczas zamykania \"%s\"" +msgstr "podczas zamykania „%s”" #: src/nm.c:416 src/objdump.c:292 src/strip.c:391 #, c-format msgid "%s: File format not recognized" msgstr "%s: nie rozpoznano formatu pliku" +#. Note: 0 is no valid offset. #: src/nm.c:456 msgid "" "\n" @@ -4221,15 +4243,18 @@ msgid "cannot create search tree" msgstr "nie można utworzyć drzewa wyszukiwania" #: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536 -#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579 -#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460 -#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 -#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461 -#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520 +#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 +#: src/readelf.c:1579 src/readelf.c:1785 src/readelf.c:1975 +#: src/readelf.c:2202 src/readelf.c:2460 src/readelf.c:2536 +#: src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 +#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 +#: src/readelf.c:9461 src/readelf.c:9529 src/size.c:413 +#: src/size.c:482 src/strip.c:520 #, 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:781 #, c-format msgid "" @@ -4243,6 +4268,7 @@ msgstr "" "Symbole z %s:\n" "\n" +#. The header line. #: src/nm.c:784 #, c-format msgid "" @@ -4255,13 +4281,14 @@ msgstr "" #: src/nm.c:1171 #, c-format msgid "%s: entry size in section %zd `%s' is not what we expect" -msgstr "%s: rozmiar wpisu w sekcji %zd \"%s\" nie jest tym, czego oczekiwano" +msgstr "%s: rozmiar wpisu w sekcji %zd „%s” nie jest tym, czego oczekiwano" #: src/nm.c:1176 #, c-format msgid "%s: size of section %zd `%s' is not multiple of entry size" -msgstr "%s: rozmiar sekcji %zd \"%s\" nie jest wielokrotnością rozmiaru wpisu" +msgstr "%s: rozmiar sekcji %zd „%s” nie jest wielokrotnością rozmiaru wpisu" +#. XXX Add machine specific object file types. #: src/nm.c:1434 #, c-format msgid "%s%s%s%s: Invalid operation" @@ -4296,6 +4323,7 @@ msgstr "Wybór zawartości wyjścia:" msgid "Only display information for section NAME." msgstr "Wyświetla tylko informacje o sekcji NAZWA." +#. Short description of program. #: src/objdump.c:67 msgid "Show information from FILEs (a.out by default)." msgstr "Wyświetla informacje z PLIKÓW (domyślnie a.out)." @@ -4307,7 +4335,7 @@ msgstr "Nie podano działania.\n" #: src/objdump.c:270 src/objdump.c:282 #, c-format msgid "while close `%s'" -msgstr "podczas zamykania \"%s\"" +msgstr "podczas zamykania „%s”" #: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072 msgid "INVALID SYMBOL" @@ -4342,10 +4370,12 @@ msgstr "Zawartość sekcji %s:\n" msgid "cannot disassemble" msgstr "nie można deasemblować" +#. Short description of program. #: src/ranlib.c:65 msgid "Generate an index to speed access to archives." msgstr "Tworzenie indeksu w celu przyspieszenia dostępu do archiwów." +#. Strings for arguments in help texts. #: src/ranlib.c:68 msgid "ARCHIVE" msgstr "ARCHIWUM" @@ -4358,7 +4388,7 @@ msgstr "Wymagana jest nazwa archiwum" #: src/ranlib.c:182 #, c-format msgid "'%s' is no archive" -msgstr "\"%s\" nie jest archiwum" +msgstr "„%s” nie jest archiwum" #: src/ranlib.c:217 #, c-format @@ -4473,6 +4503,7 @@ msgstr "" msgid "Ignored for compatibility (lines always wide)" msgstr "Ignorowane dla zgodności (wiersze są zawsze szerokie)" +#. Short description of program. #: src/readelf.c:119 msgid "Print information from ELF file in human-readable form." msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka." @@ -4480,7 +4511,7 @@ msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka." #: src/readelf.c:441 #, c-format msgid "Unknown DWARF debug section `%s'.\n" -msgstr "Nieznana sekcja debugowania DWARF \"%s\".\n" +msgstr "Nieznana sekcja debugowania DWARF „%s”.\n" #: src/readelf.c:520 src/readelf.c:631 #, c-format @@ -4492,11 +4523,13 @@ msgstr "nie można utworzyć deskryptora ELF: %s" msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481 -#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543 -#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 -#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508 -#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855 +#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 +#: src/readelf.c:9481 src/unstrip.c:355 src/unstrip.c:386 +#: src/unstrip.c:435 src/unstrip.c:543 src/unstrip.c:560 +#: src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 +#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 +#: src/unstrip.c:1508 src/unstrip.c:1623 src/unstrip.c:1761 +#: src/unstrip.c:1855 #, c-format msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" @@ -4506,8 +4539,8 @@ msgstr "nie można uzyskać nagłówka sekcji: %s" msgid "cannot get section name" msgstr "nie można uzyskać nazwy sekcji" -#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772 -#: src/readelf.c:7949 +#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 +#: src/readelf.c:7772 src/readelf.c:7949 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartości %s: %s" @@ -4515,7 +4548,7 @@ msgstr "nie można uzyskać zwartości %s: %s" #: src/readelf.c:587 #, c-format msgid "cannot create temp file '%s'" -msgstr "nie można utworzyć pliku tymczasowego \"%s\"" +msgstr "nie można utworzyć pliku tymczasowego „%s”" #: src/readelf.c:596 #, c-format @@ -4535,12 +4568,12 @@ msgstr "błąd podczas przewijania deskryptora pliku" #: src/readelf.c:643 #, c-format msgid "'%s' is not an archive, cannot print archive index" -msgstr "\"%s\" nie jest archiwum, nie można wyświetlić indeksu archiwum" +msgstr "„%s” nie jest archiwum, nie można wyświetlić indeksu archiwum" #: src/readelf.c:742 #, c-format msgid "No such section '%s' in '%s'" -msgstr "Brak sekcji \"%s\" w \"%s\"" +msgstr "Brak sekcji „%s” w „%s”" #: src/readelf.c:769 #, c-format @@ -4555,7 +4588,7 @@ msgstr "plik wejściowy jest pusty" #: src/readelf.c:773 #, c-format msgid "failed reading '%s': %s" -msgstr "odczytanie \"%s\" się nie powiodło: %s" +msgstr "odczytanie „%s” się nie powiodło: %s" #: src/readelf.c:814 #, c-format @@ -4597,6 +4630,7 @@ msgstr "CORE (plik core)" msgid "OS Specific: (%x)\n" msgstr "Zależny od systemu: (%x)\n" +#. && e_type <= ET_HIPROC always true #: src/readelf.c:932 #, c-format msgid "Processor Specific: (%x)\n" @@ -4724,6 +4758,7 @@ msgstr " Liczba wpisów nagłówków sekcji: %" msgid " (% in [0].sh_size)" msgstr " (% w [0].sh_size)" +#. We managed to get the zeroth section. #: src/readelf.c:1033 #, c-format msgid " (% in [0].sh_link)" @@ -4808,9 +4843,10 @@ msgid "" msgstr "" "\n" " Mapowanie sekcji do segmentów:\n" -" Segment sekcji..." +" Segment sekcji…" -#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964 +#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 +#: src/unstrip.c:1964 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" @@ -4825,13 +4861,13 @@ msgid_plural "" "COMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n" msgstr[0] "" "\n" -"Grupa sekcji COMDAT [%2zu] \"%s\" z podspiem \"%s\" zawiera %zu wpis:\n" +"Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpis:\n" msgstr[1] "" "\n" -"Grupa sekcji COMDAT [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisy:\n" +"Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpisy:\n" msgstr[2] "" "\n" -"Grupa sekcji COMDAT [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisów:\n" +"Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpisów:\n" #: src/readelf.c:1406 #, c-format @@ -4843,13 +4879,13 @@ msgid_plural "" "Section group [%2zu] '%s' with signature '%s' contains %zu entries:\n" msgstr[0] "" "\n" -"Grupa sekcji [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpis:\n" +"Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpis:\n" msgstr[1] "" "\n" -"Grupa sekcji [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisy:\n" +"Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpisy:\n" msgstr[2] "" "\n" -"Grupa sekcji [%2zu] \"%s\" z podpisem \"%s\" zawiera %zu wpisów:\n" +"Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpisów:\n" #: src/readelf.c:1414 msgid "" @@ -4859,11 +4895,12 @@ msgstr "" msgid "" msgstr "" -#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542 -#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608 -#, fuzzy, c-format +#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 +#: src/readelf.c:2542 src/readelf.c:2846 src/readelf.c:2920 +#: src/readelf.c:4608 +#, c-format msgid "invalid sh_link value in section %zu" -msgstr "nieprawidłowa wartość sh_link w sekcji %Zu" +msgstr "nieprawidłowa wartość sh_link w sekcji %zu" #: src/readelf.c:1588 #, c-format @@ -4941,17 +4978,23 @@ msgid_plural "" "contains %d entries:\n" msgstr[0] "" "\n" -"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem " -"%#0 zawiera %d wpis:\n" +"Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0 " +"zawiera %d wpis:\n" msgstr[1] "" "\n" -"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem " -"%#0 zawiera %d wpisy:\n" +"Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0 " +"zawiera %d wpisy:\n" msgstr[2] "" "\n" -"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem " -"%#0 zawiera %d wpisów:\n" +"Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0 " +"zawiera %d wpisów:\n" +#. The .rel.dyn section does not refer to a specific section but +#. instead of section index zero. Do not try to print a section +#. name. +#. 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:1803 src/readelf.c:1993 #, c-format msgid "" @@ -4962,13 +5005,13 @@ msgid_plural "" "Relocation section [%2u] '%s' at offset %#0 contains %d entries:\n" msgstr[0] "" "\n" -"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0 zawiera %d wpis:\n" +"Sekcja relokacji [%2u] „%s” pod offsetem %#0 zawiera %d wpis:\n" msgstr[1] "" "\n" -"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0 zawiera %d wpisy:\n" +"Sekcja relokacji [%2u] „%s” pod offsetem %#0 zawiera %d wpisy:\n" msgstr[2] "" "\n" -"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0 zawiera %d wpisów:\n" +"Sekcja relokacji [%2u] „%s” pod offsetem %#0 zawiera %d wpisów:\n" #: src/readelf.c:1813 msgid " Offset Type Value Name\n" @@ -4978,9 +5021,10 @@ msgstr " Offset Typ Wartość Nazwa\n" msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913 -#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085 -#: src/readelf.c:2107 src/readelf.c:2120 +#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 +#: src/readelf.c:1913 src/readelf.c:1925 src/readelf.c:2059 +#: src/readelf.c:2071 src/readelf.c:2085 src/readelf.c:2107 +#: src/readelf.c:2120 msgid "" msgstr "" @@ -5003,21 +5047,21 @@ msgid_plural "" "Symbol table [%2u] '%s' contains %u entries:\n" msgstr[0] "" "\n" -"Tabela symboli [%2u] \"%s\" zawiera %u wpis:\n" +"Tabela symboli [%2u] „%s” zawiera %u wpis:\n" msgstr[1] "" "\n" -"Tabela symboli [%2u] \"%s\" zawiera %u wpisy:\n" +"Tabela symboli [%2u] „%s” zawiera %u wpisy:\n" msgstr[2] "" "\n" -"Tabela symboli [%2u] \"%s\" zawiera %u wpisów:\n" +"Tabela symboli [%2u] „%s” zawiera %u wpisów:\n" #: src/readelf.c:2221 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" -msgstr[0] " %lu symbol lokalny Tabela ciągów: [%2u] \"%s\"\n" -msgstr[1] " %lu symbole lokalne Tabela ciągów: [%2u] \"%s\"\n" -msgstr[2] " %lu symboli lokalnych Tabela ciągów: [%2u] \"%s\"\n" +msgstr[0] " %lu symbol lokalny Tabela ciągów: [%2u] „%s”\n" +msgstr[1] " %lu symbole lokalne Tabela ciągów: [%2u] „%s”\n" +msgstr[2] " %lu symboli lokalnych Tabela ciągów: [%2u] „%s”\n" #: src/readelf.c:2229 msgid " Num: Value Size Type Bind Vis Ndx Name\n" @@ -5057,19 +5101,19 @@ msgid_plural "" " Addr: %#0* Offset: %#08 Link to section: [%2u] '%s'\n" msgstr[0] "" "\n" -"Sekcja wymaganych wersji [%2u] \"%s\" zawiera %d wpis:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +"Sekcja wymaganych wersji [%2u] „%s” zawiera %d wpis:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" msgstr[1] "" "\n" -"Sekcja wymaganych wersji [%2u] \"%s\" zawiera %d wpisy:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +"Sekcja wymaganych wersji [%2u] „%s” zawiera %d wpisy:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" msgstr[2] "" "\n" -"Sekcja wymaganych wersji [%2u] \"%s\" zawiera %d wpisów:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +"Sekcja wymaganych wersji [%2u] „%s” zawiera %d wpisów:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" #: src/readelf.c:2490 #, c-format @@ -5093,19 +5137,19 @@ msgid_plural "" " Addr: %#0* Offset: %#08 Link to section: [%2u] '%s'\n" msgstr[0] "" "\n" -"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpis:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +"Sekcja definicji wersji [%2u] „%s” zawiera %d wpis:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" msgstr[1] "" "\n" -"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpisy:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +"Sekcja definicji wersji [%2u] „%s” zawiera %d wpisy:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" msgstr[2] "" "\n" -"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpisów:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +"Sekcja definicji wersji [%2u] „%s” zawiera %d wpisów:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" #: src/readelf.c:2574 #, c-format @@ -5118,6 +5162,7 @@ msgstr "" msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Rodzic %d: %s\n" +#. Print the header. #: src/readelf.c:2850 #, c-format msgid "" @@ -5130,19 +5175,16 @@ msgid_plural "" " Addr: %#0* Offset: %#08 Link to section: [%2u] '%s'" msgstr[0] "" "\n" -"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpis:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"" +"Sekcja symboli wersji [%2u] „%s” zawiera %d wpis:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] „%s”" msgstr[1] "" "\n" -"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpisy:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"" +"Sekcja symboli wersji [%2u] „%s” zawiera %d wpisy:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] „%s”" msgstr[2] "" "\n" -"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpisów:\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"" +"Sekcja symboli wersji [%2u] „%s” zawiera %d wpisów:\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] „%s”" #: src/readelf.c:2878 msgid " 0 *local* " @@ -5166,22 +5208,22 @@ msgid_plural "" " Addr: %#0* Offset: %#08 Link to section: [%2u] '%s'\n" msgstr[0] "" "\n" -"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d " +"Histogram dla długości listy kubełków w sekcji [%2u] „%s” (w sumie %d " "kubełek):\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" msgstr[1] "" "\n" -"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d " +"Histogram dla długości listy kubełków w sekcji [%2u] „%s” (w sumie %d " "kubełki):\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" msgstr[2] "" "\n" -"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d " +"Histogram dla długości listy kubełków w sekcji [%2u] „%s” (w sumie %d " "kubełków):\n" -" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] \"%s" -"\"\n" +" Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " +"„%s”\n" #: src/readelf.c:2947 #, no-c-format @@ -5247,15 +5289,15 @@ msgid_plural "" "Library list section [%2zu] '%s' at offset %#0 contains %d entries:\n" msgstr[0] "" "\n" -"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0 zawiera %d " +"Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0 zawiera %d " "wpis:\n" msgstr[1] "" "\n" -"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0 zawiera %d " +"Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0 zawiera %d " "wpisy:\n" msgstr[2] "" "\n" -"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0 zawiera %d " +"Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0 zawiera %d " "wpisów:\n" #: src/readelf.c:3264 @@ -5274,7 +5316,7 @@ msgid "" "%#0:\n" msgstr "" "\n" -"Sekcja atrybutów obiektu [%2zu] \"%s\" % bajtów pod offsetem " +"Sekcja atrybutów obiektu [%2zu] „%s” % bajtów pod offsetem " "%#0:\n" #: src/readelf.c:3331 @@ -5286,11 +5328,13 @@ msgstr " Właściciel Rozmiar\n" msgid " %-13s %4\n" msgstr " %-13s %4\n" +#. Unknown subsection, print and skip. #: src/readelf.c:3399 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" +#. Tag_File #: src/readelf.c:3404 #, c-format msgid " File: %11\n" @@ -5408,7 +5452,7 @@ msgstr " [%6tx] \n" #: src/readelf.c:4498 #, c-format msgid " [%6tx] ... % bytes ...\n" -msgstr " [%6tx] ... % bajtów...\n" +msgstr " [%6tx] … % bajtów…\n" #: src/readelf.c:4524 #, c-format @@ -5418,7 +5462,7 @@ msgid "" " [ Code]\n" msgstr "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [ Kod]\n" #: src/readelf.c:4532 @@ -5463,13 +5507,13 @@ msgid_plural "" "DWARF section [%2zu] '%s' at offset %# contains %zu entries:\n" msgstr[0] "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpis:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %# zawiera %zu wpis:\n" msgstr[1] "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpisy:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %# zawiera %zu wpisy:\n" msgstr[2] "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %# zawiera %zu wpisów:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %# zawiera %zu wpisów:\n" #: src/readelf.c:4644 #, c-format @@ -5484,29 +5528,30 @@ msgstr "" " [%*zu] początek: %0#*, długość: %5, offset CU DIE: " "%6\n" -#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360 -#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601 +#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 +#: src/readelf.c:6360 src/readelf.c:6892 src/readelf.c:7012 +#: src/readelf.c:7176 src/readelf.c:7601 #, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#:\n" msgstr "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" #: src/readelf.c:4689 src/readelf.c:6386 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Table at offset %zu:\n" msgstr "" "\n" -"Tabela pod offsetem %Zu:\n" +"Tabela pod offsetem %zu:\n" #: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397 #, c-format msgid "invalid data in section [%zu] '%s'" -msgstr "nieprawidłowe dane w sekcji [%zu] \"%s\"" +msgstr "nieprawidłowe dane w sekcji [%zu] „%s”" #: src/readelf.c:4709 #, c-format @@ -5567,9 +5612,9 @@ msgid " %s..%s\n" msgstr " %s..%s\n" #: src/readelf.c:4807 -#, fuzzy, c-format +#, c-format msgid " %zu padding bytes\n" -msgstr " bajty wypełnienia: %Zu\n" +msgstr " bajty wypełnienia: %zu\n" #: src/readelf.c:4825 #, c-format @@ -5591,15 +5636,17 @@ msgstr " [%6tx] adres podstawowy %s\n" msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" +#. We have an address range entry. +#. First address range entry in a list. #: src/readelf.c:4895 #, c-format msgid " [%6tx] %s..%s\n" -msgstr " [%6tx] %s...%s\n" +msgstr " [%6tx] %s…%s\n" #: src/readelf.c:4897 #, c-format msgid " %s..%s\n" -msgstr " %s...%s\n" +msgstr " %s…%s\n" #: src/readelf.c:5076 msgid " \n" @@ -5617,7 +5664,7 @@ msgid "" "Call frame information section [%2zu] '%s' at offset %#:\n" msgstr "" "\n" -"Sekcja informacji o ramce wywołania [%2zu] \"%s\" pod offsetem %#:\n" +"Sekcja informacji o ramce wywołania [%2zu] „%s” pod offsetem %#:\n" #: src/readelf.c:5452 #, c-format @@ -5679,7 +5726,7 @@ msgid "" " [Offset]\n" msgstr "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [Offset]\n" #: src/readelf.c:6131 @@ -5709,7 +5756,7 @@ msgstr "" #: src/readelf.c:6165 #, c-format msgid "cannot get DIE at offset % in section '%s': %s" -msgstr "nie można uzyskać DIE pod offsetem % w sekcji \"%s\": %s" +msgstr "nie można uzyskać DIE pod offsetem % w sekcji „%s”: %s" #: src/readelf.c:6179 #, c-format @@ -5720,7 +5767,7 @@ msgstr "nie można uzyskać offsetu DIE: %s" #, c-format msgid "cannot get tag of DIE at offset % in section '%s': %s" msgstr "" -"nie można uzyskać znacznika DIE pod offsetem % w sekcji \"%s\": %s" +"nie można uzyskać znacznika DIE pod offsetem % w sekcji „%s”: %s" #: src/readelf.c:6220 #, c-format @@ -5740,7 +5787,7 @@ msgid "" "\n" msgstr "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" "\n" #: src/readelf.c:6373 @@ -5748,6 +5795,7 @@ msgstr "" 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:6443 #, c-format msgid "" @@ -5770,7 +5818,7 @@ msgstr "" " Długość prologu: %\n" " Minimalna długość instrukcji: %\n" " Maksymalna liczba działań na instrukcję: %\n" -" Początkowa wartość \"%s\": %\n" +" Początkowa wartość „%s”: %\n" " Początek wiersza: %\n" " Przedział wiersza: %\n" " Początek instrukcji: %\n" @@ -5780,7 +5828,7 @@ msgstr "" #: src/readelf.c:6464 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" -msgstr "nieprawidłowe dane pod offsetem %tu w sekcji [%zu] \"%s\"" +msgstr "nieprawidłowe dane pod offsetem %tu w sekcji [%zu] „%s”" #: src/readelf.c:6479 #, c-format @@ -5858,10 +5906,12 @@ msgstr "" msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" +#. Unknown, ignore it. #: src/readelf.c:6719 msgid " unknown opcode" msgstr " nieznana instrukcja" +#. Takes no argument. #: src/readelf.c:6731 msgid " copy" msgstr " kopiowanie" @@ -5894,8 +5944,9 @@ msgstr " ustawienie kolumny na %\n" #: src/readelf.c:6782 #, c-format msgid " set '%s' to %\n" -msgstr " ustawienie \"%s\" na %\n" +msgstr " ustawienie „%s” na %\n" +#. Takes no argument. #: src/readelf.c:6788 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" @@ -5915,10 +5966,12 @@ msgstr " zwiększenie adresu o stałą %u do %s\n" msgid " advance address by fixed value %u to %s\n" msgstr " zwiększenie adresu o stałą wartość %u do %s\n" +#. Takes no argument. #: src/readelf.c:6832 msgid " set prologue end flag" msgstr " ustawienie flagi końca prologu" +#. Takes no argument. #: src/readelf.c:6837 msgid " set epilogue begin flag" msgstr " ustawienie flagi początku epilogu" @@ -5928,6 +5981,9 @@ msgstr " ustawienie flagi początku epilogu" msgid " set isa to %u\n" 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:6855 #, c-format msgid " unknown opcode with % parameter:" @@ -5941,15 +5997,16 @@ msgstr[2] " nieznana instrukcja z % parametrami:" msgid "cannot get .debug_loc content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" +#. First entry in a list. #: src/readelf.c:6962 #, c-format msgid " [%6tx] %s..%s" -msgstr " [%6tx] %s...%s" +msgstr " [%6tx] %s…%s" #: src/readelf.c:6964 #, c-format msgid " %s..%s" -msgstr " %s...%s" +msgstr " %s…%s" #: src/readelf.c:6971 src/readelf.c:7859 msgid " \n" @@ -6038,7 +6095,7 @@ msgid "" " %*s String\n" msgstr "" "\n" -"Sekcja DWARF [%2zu] \"%s\" pod offsetem %#:\n" +"Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " %*s Ciąg\n" #: src/readelf.c:7642 @@ -6053,7 +6110,7 @@ msgid "" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" "\n" -"Sekcja tabeli wyszukiwania ramki wywołania [%2zu] \".eh_frame_hdr\":\n" +"Sekcja tabeli wyszukiwania ramki wywołania [%2zu] „.eh_frame_hdr”:\n" #: src/readelf.c:7764 #, c-format @@ -6062,7 +6119,7 @@ msgid "" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" "\n" -"Sekcja tabeli obsługiwania wyjątków [%2zu] \".gcc_except_table\":\n" +"Sekcja tabeli obsługiwania wyjątków [%2zu] „.gcc_except_table”:\n" #: src/readelf.c:7787 #, c-format @@ -6112,7 +6169,7 @@ msgid "" "GDB section [%2zu] '%s' at offset %# contains % bytes :\n" msgstr "" "\n" -"Sekcja GDB [%2zu] \"%s\" pod offsetem %# zawiera % bajtów:\n" +"Sekcja GDB [%2zu] „%s” pod offsetem %# zawiera % bajtów:\n" #: src/readelf.c:7969 #, c-format @@ -6185,7 +6242,8 @@ msgstr "" msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152 +#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 +#: src/readelf.c:9152 #, c-format msgid "cannot convert core note data: %s" msgstr "nie można przekonwertować danych notatki core: %s" @@ -6197,7 +6255,7 @@ msgid "" "%*s... ..." msgstr "" "\n" -"%*s... ..." +"%*s… …" #: src/readelf.c:9231 msgid " Owner Data size Type\n" @@ -6220,7 +6278,7 @@ msgid "" "Note section [%2zu] '%s' of % bytes at offset %#0:\n" msgstr "" "\n" -"Segment notatki [%2zu] \"%s\" o długości % bajtów pod offsetem " +"Segment notatki [%2zu] „%s” o długości % bajtów pod offsetem " "%#0:\n" #: src/readelf.c:9349 @@ -6233,47 +6291,46 @@ msgstr "" "Segment notatki o długości % bajtów pod offsetem %#0:\n" #: src/readelf.c:9395 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Section [%zu] '%s' has no data to dump.\n" msgstr "" "\n" -"Sekcja [%Zu] \"%s\" nie posiada danych do zrzucenia.\n" +"Sekcja [%zu] „%s” nie posiada danych do zrzucenia.\n" #: src/readelf.c:9401 src/readelf.c:9424 -#, fuzzy, c-format +#, c-format msgid "cannot get data for section [%zu] '%s': %s" -msgstr "nie można uzyskać danych dla sekcji [%Zu] \"%s\": %s" +msgstr "nie można uzyskać danych dla sekcji [%zu] „%s”: %s" #: src/readelf.c:9405 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Hex dump of section [%zu] '%s', % bytes at offset %#0:\n" msgstr "" "\n" -"Segment zrzutu szesnastkowego [%Zu] \"%s\", % bajtów pod offsetem " +"Segment zrzutu szesnastkowego [%zu] „%s”, % bajtów pod offsetem " "%#0:\n" #: src/readelf.c:9418 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Section [%zu] '%s' has no strings to dump.\n" msgstr "" "\n" -"Sekcja [%Zu] \"%s\" nie posiada ciągów do zrzucenia.\n" +"Sekcja [%zu] „%s” nie posiada ciągów do zrzucenia.\n" #: src/readelf.c:9428 -#, fuzzy, c-format +#, c-format msgid "" "\n" "String section [%zu] '%s' contains % bytes at offset %#0:\n" msgstr "" "\n" -"Sekcja ciągów [%Zu] \"%s\" zawiera % bajtów pod offsetem " -"%#0:\n" +"Sekcja ciągów [%zu] „%s” zawiera % bajtów pod offsetem %#0:\n" #: src/readelf.c:9476 #, c-format @@ -6291,12 +6348,12 @@ msgid "" "section '%s' does not exist" msgstr "" "\n" -"sekcja \"%s\" nie istnieje" +"sekcja „%s” nie istnieje" #: src/readelf.c:9562 #, c-format msgid "cannot get symbol index of archive '%s': %s" -msgstr "nie można uzyskać indeksu symboli archiwum \"%s\": %s" +msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s" #: src/readelf.c:9565 #, c-format @@ -6305,58 +6362,57 @@ msgid "" "Archive '%s' has no symbol index\n" msgstr "" "\n" -"Archiwum \"%s\" nie posiada indeksu symboli\n" +"Archiwum „%s” nie posiada indeksu symboli\n" #: src/readelf.c:9569 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Index of archive '%s' has %zu entries:\n" msgstr "" "\n" -"Indeks archiwum \"%s\" posiada %Zu wpisów:\n" +"Indeks archiwum „%s” posiada %zu wpisów:\n" #: src/readelf.c:9587 -#, fuzzy, c-format +#, c-format msgid "cannot extract member at offset %zu in '%s': %s" -msgstr "nie można wydobyć elementów pod offsetem %Zu w \"%s\": %s" +msgstr "nie można wydobyć elementów pod offsetem %zu w „%s”: %s" #: src/readelf.c:9592 #, c-format msgid "Archive member '%s' contains:\n" -msgstr "Element archiwum \"%s\" zawiera:\n" +msgstr "Element archiwum „%s” zawiera:\n" #: src/size.c:59 msgid "" "Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default " "is `bsd'" msgstr "" -"Używa FORMATU wyjścia. Może to być \"bsd\" lub \"sysv\". Domyślny jest \"bsd" -"\"" +"Używa FORMATU wyjścia. Może to być „bsd” lub „sysv”. Domyślny jest „bsd”" #: src/size.c:61 msgid "Same as `--format=sysv'" -msgstr "To samo, co \"--format=sysv\"" +msgstr "To samo, co „--format=sysv”" #: src/size.c:62 msgid "Same as `--format=bsd'" -msgstr "To samo, co \"--format=bsd\"" +msgstr "To samo, co „--format=bsd”" #: src/size.c:65 msgid "Same as `--radix=10'" -msgstr "To samo, co \"--radix=10\"" +msgstr "To samo, co „--radix=10”" #: src/size.c:66 msgid "Same as `--radix=8'" -msgstr "To samo, co \"--radix=8\"" +msgstr "To samo, co „--radix=8”" #: src/size.c:67 msgid "Same as `--radix=16'" -msgstr "To samo, co \"--radix=16\"" +msgstr "To samo, co „--radix=16”" #: src/size.c:69 msgid "Similar to `--format=sysv' output but in one line" -msgstr "Podobne do wyjścia \"--format=sysv\", ale w jednym wierszu" +msgstr "Podobne do wyjścia „--format=sysv”, ale w jednym wierszu" #: src/size.c:73 msgid "Print size and permission flags for loadable segments" @@ -6366,6 +6422,7 @@ msgstr "Wyświetla rozmiar i flagi uprawnień dla segmentów wczytywalnych" msgid "Display the total sizes (bsd only)" msgstr "Wyświetla całkowite rozmiary (tylko bsd)" +#. Short description of program. #: src/size.c:79 msgid "List section sizes of FILEs (a.out by default)." msgstr "Wyświetla listę rozmiarów sekcji PLIKU (domyślnie a.out)." @@ -6402,7 +6459,7 @@ msgstr "-p PID powinien być dodatnim identyfikatorem procesu." #: src/stack.c:494 #, c-format msgid "Cannot open core file '%s'" -msgstr "Nie można otworzyć pliku core \"%s\"" +msgstr "Nie można otworzyć pliku core „%s”" #: src/stack.c:554 #, c-format @@ -6558,6 +6615,7 @@ msgstr "Wyświetla położenie ciągu z podstawą odpowiednio 8, 10 lub 16." msgid "Alias for --radix=o" msgstr "Alias dla --radix=o" +#. Short description of program. #: src/strings.c:84 msgid "Print the strings of printable characters in files." msgstr "Wyświetla ciągi znaków drukowalnych w plikach." @@ -6565,7 +6623,7 @@ msgstr "Wyświetla ciągi znaków drukowalnych w plikach." #: src/strings.c:271 src/strings.c:306 #, c-format msgid "invalid value '%s' for %s parameter" -msgstr "nieprawidłowa wartość \"%s\" dla parametru %s" +msgstr "nieprawidłowa wartość „%s” dla parametru %s" #: src/strings.c:317 #, c-format @@ -6573,9 +6631,9 @@ msgid "invalid minimum length of matched string size" msgstr "nieprawidłowa minimalna długość dopasowanego rozmiaru ciągu" #: src/strings.c:600 -#, fuzzy, c-format +#, c-format msgid "lseek failed" -msgstr "lseek64 się nie powiodło" +msgstr "lseek się nie powiodło" #: src/strings.c:617 src/strings.c:681 #, c-format @@ -6590,7 +6648,7 @@ msgstr "mprotect się nie powiodło" #: src/strings.c:743 #, c-format msgid "Skipping section %zd '%s' data outside file" -msgstr "Pomijanie sekcji %zd \"%s\" dane poza plikiem" +msgstr "Pomijanie sekcji %zd „%s” dane poza plikiem" #: src/strip.c:68 msgid "Place stripped output into FILE" @@ -6634,6 +6692,7 @@ msgstr "Usuwa sekcję .comment" msgid "Relax a few rules to handle slightly broken ELF files" msgstr "Łagodzi kilka reguł, aby obsłużyć lekko uszkodzone pliki ELF" +#. Short description of program. #: src/strip.c:92 msgid "Discard symbols from object files." msgstr "Odrzuca symbole z plików obiektów." @@ -6646,7 +6705,7 @@ msgstr "Użyto --reloc-debug-sections bez opcji -f" #: src/strip.c:200 #, c-format msgid "Only one input file allowed together with '-o' and '-f'" -msgstr "Tylko jeden plik wejściowy jest dozwolony z \"-o\" i \"-f\"" +msgstr "Tylko jeden plik wejściowy jest dozwolony z „-o” i „-f”" #: src/strip.c:236 #, c-format @@ -6671,18 +6730,24 @@ msgstr "Opcja -R obsługuje tylko sekcję .comment" #: src/strip.c:320 src/strip.c:344 #, c-format msgid "cannot stat input file '%s'" -msgstr "nie można wykonać stat na pliku wejściowym \"%s\"" +msgstr "nie można wykonać stat na pliku wejściowym „%s”" #: src/strip.c:334 #, c-format msgid "while opening '%s'" -msgstr "podczas otwierania \"%s\"" +msgstr "podczas otwierania „%s”" #: src/strip.c:372 #, c-format msgid "%s: cannot use -o or -f when stripping archive" msgstr "%s: nie można używać -o lub -f podczas okrajania archiwum" +#. We would like to support ar archives, but currently it just +#. doesn't work at all since we call elf_clone on the members +#. which doesn't really support ar members. +#. result = handle_ar (fd, elf, NULL, fname, +#. preserve_dates ? tv : NULL); +#. #: src/strip.c:384 #, c-format msgid "%s: no support for stripping archive" @@ -6701,12 +6766,12 @@ msgstr "nie można uzyskać liczby phdr" #: src/strip.c:544 src/strip.c:568 #, c-format msgid "cannot create new file '%s': %s" -msgstr "nie można utworzyć nowego pliku \"%s\": %s" +msgstr "nie można utworzyć nowego pliku „%s”: %s" #: src/strip.c:634 #, c-format msgid "illformed file '%s'" -msgstr "plik \"%s\" posiada błędny format" +msgstr "plik „%s” posiada błędny format" #: src/strip.c:968 src/strip.c:1067 #, c-format @@ -6721,7 +6786,7 @@ msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s" #: src/strip.c:1050 #, c-format msgid "while preparing output for '%s'" -msgstr "podczas przygotowywania wyjścia dla \"%s\"" +msgstr "podczas przygotowywania wyjścia dla „%s”" #: src/strip.c:1108 src/strip.c:1171 #, c-format @@ -6746,12 +6811,12 @@ msgstr "błędna relokacja" #: src/strip.c:1982 src/strip.c:2095 #, c-format msgid "while writing '%s': %s" -msgstr "podczas zapisywania \"%s\": %s" +msgstr "podczas zapisywania „%s”: %s" #: src/strip.c:1993 #, c-format msgid "while creating '%s'" -msgstr "podczas tworzenia \"%s\"" +msgstr "podczas tworzenia „%s”" #: src/strip.c:2016 #, c-format @@ -6766,17 +6831,17 @@ msgstr "%s: błąd podczas odczytywania pliku: %s" #: src/strip.c:2120 src/strip.c:2140 #, c-format msgid "while writing '%s'" -msgstr "podczas zapisywania \"%s\"" +msgstr "podczas zapisywania „%s”" #: src/strip.c:2177 src/strip.c:2184 #, c-format msgid "error while finishing '%s': %s" -msgstr "błąd podczas kończenia \"%s\": %s" +msgstr "błąd podczas kończenia „%s”: %s" #: src/strip.c:2201 src/strip.c:2273 #, c-format msgid "cannot set access and modification date of '%s'" -msgstr "nie można ustawić czasu dostępu i modyfikacji \"%s\"" +msgstr "nie można ustawić czasu dostępu i modyfikacji „%s”" #: src/unstrip.c:69 msgid "Match MODULE against file names, not module names" @@ -6835,7 +6900,7 @@ msgstr "opcja -n nie może być używana z jawnymi plikami albo z opcją -o lub #: src/unstrip.c:188 #, c-format msgid "output directory '%s'" -msgstr "katalog wyjściowy \"%s\"" +msgstr "katalog wyjściowy „%s”" #: src/unstrip.c:197 #, c-format @@ -6895,15 +6960,16 @@ msgstr "nie można skopiować danych sekcji: %s" #: src/unstrip.c:311 #, c-format msgid "cannot create directory '%s'" -msgstr "nie można utworzyć katalogu \"%s\"" +msgstr "nie można utworzyć katalogu „%s”" #: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575 #, c-format msgid "cannot get symbol table entry: %s" msgstr "nie można uzyskać wpisu tabeli symboli: %s" -#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618 -#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793 +#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 +#: src/unstrip.c:618 src/unstrip.c:1596 src/unstrip.c:1769 +#: src/unstrip.c:1793 #, c-format msgid "cannot update symbol table: %s" msgstr "nie można zaktualizować tabeli symboli: %s" @@ -6924,41 +6990,42 @@ msgid "cannot get symbol version: %s" msgstr "nie można uzyskać wersji symbolu: %s" #: src/unstrip.c:526 -#, fuzzy, c-format +#, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" -msgstr "nieoczekiwany typ sekcji w [%Zu] z sh_link do tabeli symboli" +msgstr "nieoczekiwany typ sekcji w [%zu] z sh_link do tabeli symboli" #: src/unstrip.c:774 -#, fuzzy, c-format +#, c-format msgid "invalid string offset in symbol [%zu]" -msgstr "nieprawidłowy offset ciągu w symbolu [%Zu]" +msgstr "nieprawidłowy offset ciągu w symbolu [%zu]" #: src/unstrip.c:932 src/unstrip.c:1278 -#, fuzzy, c-format +#, c-format msgid "cannot read section [%zu] name: %s" -msgstr "nie można odczytać nazwy sekcji [%Zu]: %s" +msgstr "nie można odczytać nazwy sekcji [%zu]: %s" #: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" -msgstr "nie można odczytać sekcji \".gnu.prelink_undo\": %s" +msgstr "nie można odczytać sekcji „.gnu.prelink_undo”: %s" #: src/unstrip.c:1013 #, c-format msgid "invalid contents in '%s' section" -msgstr "nieprawidłowa zawartość w sekcji \"%s\"" +msgstr "nieprawidłowa zawartość w sekcji „%s”" #: src/unstrip.c:1019 #, c-format msgid "overflow with shnum = %zu in '%s' section" -msgstr "" +msgstr "przepełnienie z shnum = %zu w sekcji „%s”" #: src/unstrip.c:1073 src/unstrip.c:1398 -#, fuzzy, c-format +#, c-format msgid "cannot find matching section for [%zu] '%s'" -msgstr "nie można odnaleźć pasującej sekcji dla [%Zu] \"%s\"" +msgstr "nie można odnaleźć pasującej sekcji dla [%zu] „%s”" -#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731 +#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 +#: src/unstrip.c:1731 #, c-format msgid "cannot add section name to string table: %s" msgstr "nie można nazwy sekcji do tabeli ciągów: %s" @@ -6982,7 +7049,7 @@ msgstr "nie można uzyskać licznika sekcji: %s" #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -"więcej sekcji w okrojonym pliku niż w pliku debugowania - odwrócono " +"więcej sekcji w okrojonym pliku niż w pliku debugowania — odwrócono " "parametry?" #: src/unstrip.c:1323 src/unstrip.c:1413 @@ -6996,9 +7063,9 @@ msgid "cannot add new section: %s" msgstr "nie można dodać nowej sekcji: %s" #: src/unstrip.c:1583 -#, fuzzy, c-format +#, c-format msgid "symbol [%zu] has invalid section index" -msgstr "symbol [%Zu] posiada nieprawidłowy indeks sekcji" +msgstr "symbol [%zu] posiada nieprawidłowy indeks sekcji" #: src/unstrip.c:1864 #, c-format @@ -7032,10 +7099,11 @@ msgstr "" msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -"Dane DWARF w \"%s\" nie zostały dostosowane do przesunięcia wczesnego " +"Dane DWARF w „%s” nie zostały dostosowane do przesunięcia wczesnego " "konsolidowania; proszę rozważyć polecenie prelink -u" -#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145 +#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 +#: src/unstrip.c:2145 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" @@ -7067,33 +7135,33 @@ msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony" #: src/unstrip.c:2102 #, c-format msgid "cannot find stripped file for module '%s': %s" -msgstr "nie można odnaleźć okrojonego pliku dla modułu \"%s\": %s" +msgstr "nie można odnaleźć okrojonego pliku dla modułu „%s”: %s" #: src/unstrip.c:2106 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" -msgstr "nie można otworzyć okrojonego pliku \"%s\" dla modułu \"%s\": %s" +msgstr "nie można otworzyć okrojonego pliku „%s” dla modułu „%s”: %s" #: src/unstrip.c:2121 #, c-format msgid "cannot find debug file for module '%s': %s" -msgstr "nie można odnaleźć pliku debugowania dla modułu \"%s\": %s" +msgstr "nie można odnaleźć pliku debugowania dla modułu „%s”: %s" #: src/unstrip.c:2125 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" -msgstr "nie można otworzyć pliku debugowania \"%s\" dla modułu \"%s\": %s" +msgstr "nie można otworzyć pliku debugowania „%s” dla modułu „%s”: %s" #: src/unstrip.c:2138 #, c-format msgid "module '%s' file '%s' is not stripped" -msgstr "moduł \"%s\" pliku \"%s\" nie został okrojony" +msgstr "moduł „%s” pliku „%s” nie został okrojony" #: src/unstrip.c:2169 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -"nie można utworzyć pamięci podręcznej adresów sekcji dla modułu \"%s\": %s" +"nie można utworzyć pamięci podręcznej adresów sekcji dla modułu „%s”: %s" #: src/unstrip.c:2302 #, c-format @@ -7111,7 +7179,7 @@ msgid "" "[MODULE...]" msgstr "" "OKROJONY-PLIK PLIK-DEBUGOWANIA\n" -"[MODUŁ...]" +"[MODUŁ…]" #: src/unstrip.c:2356 msgid "" @@ -7158,13 +7226,13 @@ msgstr "" "\tPOCZĄTEK+ROZMIAR IDENTYFIKATOR-KOPII PLIK PLIK-DEBUGOWANIA NAZWA-MODUŁU\n" "POCZĄTEK i ROZMIAR są liczbami szesnastkowymi podającymi zakres adresów " "modułu. IDENTYFIKATOR-KOPII jest liczbą szesnastkową dla bitów " -"identyfikatora kopii lub \"-\", jeśli identyfikator jest nieznany; liczba " +"identyfikatora kopii lub „-”, jeśli identyfikator jest nieznany; liczba " "szesnastkowa może być uzupełniona @0xADRES podającym adres, gdzie znajduje " "się identyfikator, jeśli jest to wiadome. PLIK jest nazwą pliku " -"odnalezionego dla modułu lub \"-\", jeśli go nie odnaleziono lub \".\", " -"jeśli obraz ELF jest dostępny, ale nie z żadnego nazwanego pliku. PLIK-" -"DEBUGOWANIA jest nazwą oddzielnego pliku debuginfo lub \"-\", jeśli nie " -"odnaleziono debuginfo lub \".\", jeśli PLIK zawiera informacje debugowania." +"odnalezionego dla modułu lub „-”, jeśli go nie odnaleziono lub „.”, jeśli " +"obraz ELF jest dostępny, ale nie z żadnego nazwanego pliku. PLIK-DEBUGOWANIA " +"jest nazwą oddzielnego pliku debuginfo lub „-”, jeśli nie odnaleziono " +"debuginfo lub „.”, jeśli PLIK zawiera informacje debugowania." #: tests/backtrace.c:427 msgid "Run executable" @@ -7177,6 +7245,3 @@ msgstr "Dodatkowo wyświetla nazwy funkcji" #: tests/dwflmodtest.c:214 msgid "Show instances of inlined functions" msgstr "Wyświetla wystąpienia wstawionych funkcji" - -#~ msgid "cannot get section header of section %Zu: %s" -#~ msgstr "nie można uzyskać nagłówka sekcji dla sekcji %Zu: %s" -- cgit v1.2.3 From cc888f73c3a1370d5cc91c5357ae400f3870f285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Dr=C4=85g?= Date: Thu, 7 Jan 2016 15:46:50 +0100 Subject: Updated Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Piotr Drąg --- po/pl.po | 1547 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 824 insertions(+), 723 deletions(-) diff --git a/po/pl.po b/po/pl.po index a4ecb61b..fcdfae20 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,13 +1,13 @@ # translation of pl.po to Polish # Jakub Bogusz , 2003-2007. -# Piotr Drąg , 2010-2015. +# Piotr Drąg , 2010-2016. # msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2015-12-24 14:09+0100\n" -"PO-Revision-Date: 2015-12-24 14:10+0100\n" +"POT-Creation-Date: 2016-01-07 15:42+0100\n" +"PO-Revision-Date: 2016-01-07 15:44+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -45,8 +45,8 @@ msgid "cannot allocate memory" msgstr "nie można przydzielić pamięci" #: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 -#: src/readelf.c:3184 src/readelf.c:3561 src/readelf.c:8310 -#: src/unstrip.c:2198 src/unstrip.c:2403 +#: src/readelf.c:3282 src/readelf.c:3669 src/readelf.c:8416 +#: src/unstrip.c:2233 src/unstrip.c:2438 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" @@ -123,7 +123,7 @@ msgstr "brak informacji DWARF" #: libdw/dwarf_error.c:65 msgid "cannot decompress DWARF" -msgstr "nie można zdekompresować DWARF" +msgstr "nie można dekompresować DWARF" #: libdw/dwarf_error.c:66 msgid "no ELF file" @@ -250,7 +250,7 @@ msgstr "nieprawidłowa instrukcja" msgid "not a CU (unit) DIE" msgstr "nie jest CU (jednostką) DIE" -#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345 +#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380 msgid "Input selection options:" msgstr "Opcje wyboru wejścia:" @@ -308,7 +308,11 @@ msgstr "nie można odnaleźć jądra lub modułów" msgid "cannot read ELF core file: %s" msgstr "nie można odczytać pliku core ELF: %s" -#: libdwfl/argp-std.c:311 +#: libdwfl/argp-std.c:313 +msgid "Not enough memory" +msgstr "Za mało pamięci" + +#: libdwfl/argp-std.c:323 msgid "No modules recognized in core file" msgstr "Nie rozpoznano żadnych modułów w pliku core" @@ -565,7 +569,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:5365 +#: libelf/elf_error.c:87 src/readelf.c:5473 #, c-format msgid "invalid encoding" msgstr "nieprawidłowe kodowanie" @@ -646,8 +650,8 @@ msgstr "dane/scn nie zgadzają się" msgid "invalid section header" msgstr "nieprawidłowy nagłówek sekcji" -#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682 -#: src/readelf.c:7783 src/readelf.c:7964 +#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790 +#: src/readelf.c:7891 src/readelf.c:8072 #, c-format msgid "invalid data" msgstr "nieprawidłowe dane" @@ -691,6 +695,34 @@ msgstr "" msgid "file has no program header" msgstr "plik nie posiada nagłówków programu" +#: libelf/elf_error.c:237 +msgid "invalid section type" +msgstr "nieprawidłowy typ sekcji" + +#: libelf/elf_error.c:242 +msgid "invalid section flags" +msgstr "nieprawidłowe flagi sekcji" + +#: libelf/elf_error.c:247 +msgid "section does not contain compressed data" +msgstr "sekcja nie zawiera skompresowanych danych" + +#: libelf/elf_error.c:252 +msgid "section contains compressed data" +msgstr "sekcja zawiera skompresowane dane" + +#: libelf/elf_error.c:257 +msgid "unknown compression type" +msgstr "nieznany typ kompresji" + +#: libelf/elf_error.c:262 +msgid "cannot compress data" +msgstr "nie można kompresować danych" + +#: libelf/elf_error.c:267 +msgid "cannot decompress data" +msgstr "nie można dekompresować danych" + #: src/addr2line.c:58 msgid "Input format options:" msgstr "Opcje formatowania wejścia:" @@ -749,7 +781,7 @@ msgid "Print all information on one line, and indent inlines" msgstr "Wyświetla wszystkie informacje w jednym wierszy i wyrównuje wstawki" #: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 -#: src/nm.c:99 src/strings.c:79 +#: src/nm.c:100 src/strings.c:79 msgid "Miscellaneous:" msgstr "Różne:" @@ -766,10 +798,10 @@ msgstr "" msgid "[ADDR...]" msgstr "[ADRES…]" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 #: src/elflint.c:235 src/findtextrel.c:162 src/ld.c:943 -#: src/nm.c:261 src/objdump.c:177 src/ranlib.c:124 -#: src/readelf.c:500 src/size.c:207 src/strings.c:230 +#: src/nm.c:262 src/objdump.c:177 src/ranlib.c:124 +#: src/readelf.c:509 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -783,10 +815,10 @@ msgstr "" "BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n" "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 #: src/elflint.c:240 src/findtextrel.c:167 src/ld.c:948 -#: src/nm.c:266 src/objdump.c:182 src/ranlib.c:129 -#: src/readelf.c:505 src/size.c:212 src/strings.c:235 +#: src/nm.c:267 src/objdump.c:182 src/ranlib.c:129 +#: src/readelf.c:514 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -1262,40 +1294,40 @@ msgstr "%s %s różnią się: nagłówek programu %d" msgid "%s %s differ: gap" msgstr "%s %s różnią się: luka" -#: src/elfcmp.c:702 +#: src/elfcmp.c:704 #, c-format msgid "Invalid value '%s' for --gaps parameter." msgstr "Nieprawidłowa wartość „%s” dla parametru --gaps." -#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 +#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757 +#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 #: src/size.c:289 src/strings.c:186 src/strip.c:466 src/strip.c:503 -#: src/unstrip.c:1994 src/unstrip.c:2023 +#: src/unstrip.c:2029 src/unstrip.c:2058 #, c-format msgid "cannot open '%s'" msgstr "nie można otworzyć „%s”" -#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174 +#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174 #, c-format msgid "cannot create ELF descriptor for '%s': %s" msgstr "nie można utworzyć deskryptora ELF dla „%s”: %s" -#: src/elfcmp.c:739 +#: src/elfcmp.c:741 #, c-format msgid "cannot create EBL descriptor for '%s'" msgstr "nie można utworzyć deskryptora EBL dla „%s”" -#: src/elfcmp.c:757 src/findtextrel.c:409 +#: src/elfcmp.c:759 src/findtextrel.c:409 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "nie można uzyskać nagłówka sekcji dla sekcji %zu: %s" -#: src/elfcmp.c:767 +#: src/elfcmp.c:769 #, c-format msgid "cannot get content of section %zu: %s" msgstr "nie można uzyskać zawartości sekcji %zu: %s" -#: src/elfcmp.c:777 src/elfcmp.c:791 +#: src/elfcmp.c:779 src/elfcmp.c:793 #, c-format msgid "cannot get relocation: %s" msgstr "nie można uzyskać relokacji: %s" @@ -1327,11 +1359,11 @@ msgstr "" "Szczegółowe sprawdzanie zgodności plików ELF ze specyfikacją gABI/psABI." #. Strings for arguments in help texts. -#: src/elflint.c:78 src/readelf.c:123 +#: src/elflint.c:78 src/readelf.c:126 msgid "FILE..." msgstr "PLIK…" -#: src/elflint.c:155 src/readelf.c:292 +#: src/elflint.c:155 src/readelf.c:298 #, c-format msgid "cannot open input file" msgstr "nie można otworzyć pliku wejściowego" @@ -1350,7 +1382,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:468 +#: src/elflint.c:219 src/readelf.c:474 msgid "Missing file name.\n" msgstr "Brak nazwy pliku.\n" @@ -1496,15 +1528,15 @@ msgid "" msgstr "" "sekcja [%2d] „%s”: grupa sekcji [%2zu] „%s” nie poprzedza elementu grupy\n" -#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 -#: src/elflint.c:1628 src/elflint.c:1964 src/elflint.c:2280 -#: src/elflint.c:2893 src/elflint.c:3056 src/elflint.c:3204 -#: src/elflint.c:3394 src/elflint.c:4337 +#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 +#: src/elflint.c:1632 src/elflint.c:1968 src/elflint.c:2284 +#: src/elflint.c:2898 src/elflint.c:3061 src/elflint.c:3209 +#: src/elflint.c:3399 src/elflint.c:4366 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji\n" -#: src/elflint.c:604 src/elflint.c:1635 +#: src/elflint.c:604 src/elflint.c:1639 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1612,12 +1644,12 @@ msgid "" "section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n" msgstr "sekcja [%2d] „%s”: symbol %zu: funkcja w sekcji COMMON to nonsens\n" -#: src/elflint.c:805 +#: src/elflint.c:809 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" msgstr "sekcja [%2d] „%s”: symbol %zu: st_value spoza zakresu\n" -#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885 +#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889 #, c-format msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " @@ -1626,7 +1658,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu nie mieści się w całości we wskazywanej sekcji " "[%2d] „%s”\n" -#: src/elflint.c:820 +#: src/elflint.c:824 #, c-format msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " @@ -1635,7 +1667,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: wskazywana sekcja [%2d] „%s” nie posiada " "ustawionej flagi SHF_TLS\n" -#: src/elflint.c:830 src/elflint.c:878 +#: src/elflint.c:834 src/elflint.c:882 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " @@ -1644,7 +1676,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: st_value spoza zakresu wskazywanej sekcji " "[%2d] „%s”\n" -#: src/elflint.c:857 +#: src/elflint.c:861 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" @@ -1652,7 +1684,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: symbol TLS, ale brak wpisu TLS nagłówka " "programu\n" -#: src/elflint.c:863 +#: src/elflint.c:867 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program " @@ -1661,7 +1693,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: symbol TLS, ale nie można uzyskać wpisu TLS " "nagłówka programu\n" -#: src/elflint.c:871 +#: src/elflint.c:875 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] " @@ -1669,7 +1701,7 @@ msgid "" msgstr "" "sekcja [%2d] „%s”: symbol %zu: st_value pomija wskazywaną sekcję [%2d] „%s”\n" -#: src/elflint.c:898 +#: src/elflint.c:902 #, c-format msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " @@ -1678,7 +1710,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: lokalny symbol spoza zakresu określonego w " "sh_info\n" -#: src/elflint.c:905 +#: src/elflint.c:909 #, c-format msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " @@ -1687,12 +1719,12 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: nielokalny symbol spoza zakresu określonego w " "sh_info\n" -#: src/elflint.c:912 +#: src/elflint.c:916 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" msgstr "sekcja [%2d] „%s”: symbol %zu: nielokalny symbol sekcji\n" -#: src/elflint.c:962 +#: src/elflint.c:966 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -1701,7 +1733,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ odnosi się do błędnej sekcji " "[%2d]\n" -#: src/elflint.c:969 +#: src/elflint.c:973 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -1713,7 +1745,7 @@ msgstr "" #. This test is more strict than the psABIs which #. usually allow the symbol to be in the middle of #. the .got section, allowing negative offsets. -#: src/elflint.c:985 +#: src/elflint.c:989 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %# does not " @@ -1722,7 +1754,7 @@ msgstr "" "sekcja [%2d] „%s”: wartość symbolu _GLOBAL_OFFSET_TABLE_ %# nie " "pasuje do adresu sekcji %s %#\n" -#: src/elflint.c:992 +#: src/elflint.c:996 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size % does not " @@ -1731,7 +1763,7 @@ msgstr "" "sekcja [%2d] „%s”: rozmiar symbolu _GLOBAL_OFFSET_TABLE_ % nie " "pasuje do rozmiaru sekcji %s %\n" -#: src/elflint.c:1000 +#: src/elflint.c:1004 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -1740,7 +1772,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ." "got\n" -#: src/elflint.c:1016 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %# does not match dynamic " @@ -1749,7 +1781,7 @@ msgstr "" "sekcja [%2d] „%s”: wartość symbolu _DYNAMIC_ %# nie pasuje do adresu " "segmentu dynamicznego %#\n" -#: src/elflint.c:1023 +#: src/elflint.c:1027 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size % does not match dynamic " @@ -1758,7 +1790,7 @@ msgstr "" "sekcja [%2d] „%s”: rozmiar symbolu _DYNAMIC_ % nie pasuje do " "rozmiaru segmentu dynamicznego %\n" -#: src/elflint.c:1036 +#: src/elflint.c:1040 #, c-format msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" @@ -1767,27 +1799,27 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: symbol w dynamicznej tabeli symboli z " "niedomyślną widocznością\n" -#: src/elflint.c:1040 +#: src/elflint.c:1044 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" msgstr "sekcja [%2d] „%s”: symbol %zu: ustawiono nieznany bit w st_other\n" -#: src/elflint.c:1078 +#: src/elflint.c:1082 #, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji.\n" -#: src/elflint.c:1094 +#: src/elflint.c:1098 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "sekcja [%2d] „%s”: DT_RELCOUNT użyte dla tej sekcji RELA\n" -#: src/elflint.c:1105 src/elflint.c:1158 +#: src/elflint.c:1109 src/elflint.c:1162 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "sekcja [%2d] „%s”: DT_RELCOUNT %d za duże dla tej sekcji\n" -#: src/elflint.c:1130 src/elflint.c:1183 +#: src/elflint.c:1134 src/elflint.c:1187 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -1796,7 +1828,7 @@ msgstr "" "sekcja [%2d] „%s”: relokacje względne po indeksie %d podanym przez " "DT_RELCOUNT\n" -#: src/elflint.c:1136 src/elflint.c:1189 +#: src/elflint.c:1140 src/elflint.c:1193 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -1805,51 +1837,51 @@ msgstr "" "sekcja [%2d] „%s”: relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT podał " "%d relokacji względnych\n" -#: src/elflint.c:1148 +#: src/elflint.c:1152 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "sekcja [%2d] „%s”: DT_RELACOUNT użyte dla tej sekcji REL\n" -#: src/elflint.c:1231 +#: src/elflint.c:1235 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "sekcja [%2d] „%s”: nieprawidłowy indeks sekcji docelowej\n" -#: src/elflint.c:1243 +#: src/elflint.c:1247 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "sekcja [%2d] „%s”: nieprawidłowy typ sekcji docelowej\n" -#: src/elflint.c:1251 +#: src/elflint.c:1255 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "sekcja [%2d] „%s”: sh_info powinno wynosić zero\n" -#: src/elflint.c:1259 +#: src/elflint.c:1263 #, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "sekcja [%2d] „%s”: relokacje dla sekcji złączalnych ciągów są niemożliwe\n" -#: src/elflint.c:1267 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" msgstr "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n" -#: src/elflint.c:1327 +#: src/elflint.c:1331 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" "flaga relokacji tekstu jest ustawiona, ale nie posiada segmentu tylko do " "odczytu\n" -#: src/elflint.c:1354 +#: src/elflint.c:1358 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "sekcja [%2d] „%s”: relokacja %zu: nieprawidłowy typ\n" -#: src/elflint.c:1362 +#: src/elflint.c:1366 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -1858,12 +1890,12 @@ msgstr "" "sekcja [%2d] „%s”: relokacja %zu: typ relokacji nieprawidłowy dla tego typu " "pliku\n" -#: src/elflint.c:1370 +#: src/elflint.c:1374 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "sekcja [%2d] „%s”: relokacja %zu: nieprawidłowy indeks symbolu\n" -#: src/elflint.c:1388 +#: src/elflint.c:1392 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -1872,12 +1904,12 @@ msgstr "" "sekcja [%2d] „%s”: relokacja %zu: z %s można użyć tylko symbolu " "„_GLOBAL_OFFSET_TABLE_”\n" -#: src/elflint.c:1405 +#: src/elflint.c:1409 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "sekcja [%2d] „%s”: relokacja %zu: offset spoza zakresu\n" -#: src/elflint.c:1420 +#: src/elflint.c:1424 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -1885,7 +1917,7 @@ msgid "" msgstr "" "sekcja [%2d] „%s”: relokacja %zu: relokacja kopii względem symbolu typu %s\n" -#: src/elflint.c:1441 +#: src/elflint.c:1445 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -1894,23 +1926,23 @@ msgstr "" "sekcja [%2d] „%s”: relokacja %zu: sekcja tylko do odczytu została " "zmodyfikowana, ale nie ustawiono flagi relokacji tekstu\n" -#: src/elflint.c:1456 +#: src/elflint.c:1460 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" "sekcja [%2d] „%s”: relokacje względem wczytanych i niewczytanych danych\n" -#: src/elflint.c:1496 src/elflint.c:1547 +#: src/elflint.c:1500 src/elflint.c:1551 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać relokacji %zu: %s\n" -#: src/elflint.c:1623 +#: src/elflint.c:1627 #, c-format msgid "more than one dynamic section present\n" msgstr "obecna jest więcej niż jedna sekcja dynamiczna\n" -#: src/elflint.c:1641 +#: src/elflint.c:1645 #, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -1919,43 +1951,43 @@ msgstr "" "sekcja [%2d]: wskazane jako tabela ciągów dla sekcji [%2d] „%s”, ale wartość " "dowiązania sekcji jest nieprawidłowa\n" -#: src/elflint.c:1649 +#: src/elflint.c:1653 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n" -#: src/elflint.c:1654 src/elflint.c:1943 +#: src/elflint.c:1658 src/elflint.c:1947 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "sekcja [%2d] „%s”: sh_info nie wynosi zero\n" -#: src/elflint.c:1664 +#: src/elflint.c:1668 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" "sekcja [%2d] „%s”: nie można uzyskać wpisu %zu sekcji dynamicznej: %s\n" -#: src/elflint.c:1672 +#: src/elflint.c:1676 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "sekcja [%2d] „%s”: wpisy nie-DT_NULL występują po wpisie DT_NULL\n" -#: src/elflint.c:1679 +#: src/elflint.c:1683 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "sekcja [%2d] „%s”: wpis %zu: nieznany znacznik\n" -#: src/elflint.c:1690 +#: src/elflint.c:1694 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "sekcja [%2d] „%s”: wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" -#: src/elflint.c:1700 +#: src/elflint.c:1704 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "sekcja [%2d] „%s”: wpis %zu: użyto znacznika %s poziomu 2\n" -#: src/elflint.c:1718 +#: src/elflint.c:1722 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" @@ -1963,7 +1995,7 @@ msgstr "" "sekcja [%2d] „%s”: wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub " "DT_RELA\n" -#: src/elflint.c:1731 +#: src/elflint.c:1735 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " @@ -1972,14 +2004,14 @@ msgstr "" "sekcja [%2d] „%s”: wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] „%s” " "wskazywanej przez sh_link\n" -#: src/elflint.c:1774 +#: src/elflint.c:1778 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" "sekcja [%2d] „%s”: wpis %zu: wartość %s musi wskazywać na wczytany segment\n" -#: src/elflint.c:1789 +#: src/elflint.c:1793 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " @@ -1988,49 +2020,49 @@ msgstr "" "sekcja [%2d] „%s”: wpis %zu: wartość %s musi być prawidłowym offsetem w " "sekcji [%2d] „%s”\n" -#: src/elflint.c:1809 src/elflint.c:1837 +#: src/elflint.c:1813 src/elflint.c:1841 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "sekcja [%2d] „%s”: zawiera wpis %s, ale nie %s\n" -#: src/elflint.c:1821 +#: src/elflint.c:1825 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "sekcja [%2d] „%s”: brak obowiązkowego znacznika %s\n" -#: src/elflint.c:1830 +#: src/elflint.c:1834 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "sekcja [%2d] „%s”: brak sekcji skrótów\n" -#: src/elflint.c:1845 src/elflint.c:1852 +#: src/elflint.c:1849 src/elflint.c:1856 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "sekcja [%2d] „%s”: nie wszystkie z %s, %s i %s są obecne\n" -#: src/elflint.c:1862 src/elflint.c:1866 +#: src/elflint.c:1866 src/elflint.c:1870 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" "sekcja [%2d] „%s”: brak znacznika %s w DSO oznaczonym podczas wstępnej " "konsolidacji\n" -#: src/elflint.c:1872 +#: src/elflint.c:1876 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" "sekcja [%2d] „%s”: plik nie-DSO oznaczony jako zależność podczas wstępnej " "konsolidacji\n" -#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 -#: src/elflint.c:1895 +#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 +#: src/elflint.c:1899 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" "sekcja [%2d] „%s”: brak znacznika %s we wstępnie konsolidowanym pliku " "wykonywalnym\n" -#: src/elflint.c:1907 +#: src/elflint.c:1911 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" @@ -2038,7 +2070,7 @@ msgstr "" "sekcja [%2d] „%s”: tylko pliki relokowalne mogą mieć rozszerzoną sekcję " "indeksów\n" -#: src/elflint.c:1917 +#: src/elflint.c:1921 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" @@ -2046,31 +2078,31 @@ msgstr "" "sekcja [%2d] „%s”: sekcja rozszerzonych indeksów sekcji nie dla tabeli " "symboli\n" -#: src/elflint.c:1921 +#: src/elflint.c:1925 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" "sekcja [%2d] „%s”: rozszerzony indeks sekcji sh_link [%2d] jest " "nieprawidłowy\n" -#: src/elflint.c:1926 +#: src/elflint.c:1930 #, c-format msgid "cannot get data for symbol section\n" msgstr "nie można uzyskać danych dla sekcji symboli\n" -#: src/elflint.c:1929 +#: src/elflint.c:1933 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "sekcja [%2d] „%s”: rozmiar wpisu nie zgadza się z Elf32_Word\n" -#: src/elflint.c:1938 +#: src/elflint.c:1942 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" "sekcja [%2d] „%s”: tabela rozszerzonych indeksów jest za mała dla tabeli " "symboli\n" -#: src/elflint.c:1953 +#: src/elflint.c:1957 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " @@ -2079,24 +2111,24 @@ msgstr "" "sekcja [%2d] „%s”: rozszerzony indeks sekcji w sekcji [%2zu] „%s” odwołuje " "się do tej samej tabeli symboli\n" -#: src/elflint.c:1970 +#: src/elflint.c:1974 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "symbol 0 powinien mieć zerowy rozszerzony indeks sekcji\n" -#: src/elflint.c:1982 +#: src/elflint.c:1986 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "nie można uzyskać danych dla symbolu %zu\n" -#: src/elflint.c:1987 +#: src/elflint.c:1991 #, c-format msgid "extended section index is % but symbol index is not XINDEX\n" msgstr "" "rozszerzony indeks sekcji wynosi %, ale indeks symbolu nie wynosi " "XINDEX\n" -#: src/elflint.c:2003 src/elflint.c:2054 +#: src/elflint.c:2007 src/elflint.c:2058 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" @@ -2104,43 +2136,43 @@ msgstr "" "sekcja [%2d] „%s”: sekcja tabeli mieszającej jest za mała (%ld, oczekiwano " "%ld)\n" -#: src/elflint.c:2015 src/elflint.c:2066 +#: src/elflint.c:2019 src/elflint.c:2070 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "sekcja [%2d] „%s”: tabela łańcuchowa jest za duża\n" -#: src/elflint.c:2029 src/elflint.c:2080 +#: src/elflint.c:2033 src/elflint.c:2084 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" "sekcja [%2d] „%s”: odwołanie do kubełka skrótu %zu jest spoza zakresu\n" -#: src/elflint.c:2039 +#: src/elflint.c:2043 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" "sekcja [%2d] „%s”: odwołanie do łańcucha skrótu %zu jest spoza zakresu\n" -#: src/elflint.c:2090 +#: src/elflint.c:2094 #, c-format msgid "section [%2d] '%s': hash chain reference % out of bounds\n" msgstr "" "sekcja [%2d] „%s”: odwołanie do łańcucha skrótu % jest spoza " "zakresu\n" -#: src/elflint.c:2103 +#: src/elflint.c:2107 #, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "sekcja [%2d] „%s”: brak wystarczającej ilości danych\n" -#: src/elflint.c:2115 +#: src/elflint.c:2119 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" "sekcja [%2d] „%s”: rozmiar maski bitowej wynosi zero lub nie jest potęgą 2: " "%u\n" -#: src/elflint.c:2131 +#: src/elflint.c:2135 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " @@ -2149,13 +2181,13 @@ msgstr "" "sekcja [%2d] „%s”: sekcja tabeli mieszającej jest za mała (wynosi %ld, " "oczekiwano co najmniej %ld)\n" -#: src/elflint.c:2140 +#: src/elflint.c:2144 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" "sekcja [%2d] „%s”: drugie przesunięcie funkcji mieszającej jest za duże: %u\n" -#: src/elflint.c:2174 +#: src/elflint.c:2178 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" @@ -2163,7 +2195,7 @@ msgstr "" "sekcja [%2d] „%s”: łańcuch mieszający dla kubełka %zu jest mniejszy niż " "przesunięcie indeksu symboli\n" -#: src/elflint.c:2195 +#: src/elflint.c:2199 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " @@ -2172,7 +2204,7 @@ msgstr "" "sekcja [%2d] „%s”: symbol %u wskazywany w łańcuchu dla kubełka %zu jest " "nieokreślony\n" -#: src/elflint.c:2208 +#: src/elflint.c:2212 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" @@ -2180,7 +2212,7 @@ msgstr "" "sekcja [%2d] „%s”: wartość skrótu dla symbolu %u w łańcuchu dla kubełka %zu " "jest błędna\n" -#: src/elflint.c:2217 +#: src/elflint.c:2221 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" @@ -2188,12 +2220,12 @@ msgstr "" "sekcja [%2d] „%s”: indeks maski dla symbolu %u w łańcuchu dla kubełka %zu " "jest błędny\n" -#: src/elflint.c:2247 +#: src/elflint.c:2251 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "sekcja [%2d] „%s”: łańcuch skrótu dla kubełka %zu jest spoza zakresu\n" -#: src/elflint.c:2252 +#: src/elflint.c:2256 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" @@ -2201,41 +2233,41 @@ msgstr "" "sekcja [%2d] „%s”: odwołanie do symbolu w łańcuchu dla kubełka %zu jest " "spoza zakresu\n" -#: src/elflint.c:2258 +#: src/elflint.c:2262 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" "sekcja [%2d] „%s”: maska bitowa nie pasuje do nazw w tabeli mieszającej\n" -#: src/elflint.c:2271 +#: src/elflint.c:2275 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" "sekcja [%2d] „%s”: pliki relokowalne nie mogą posiadać tabeli mieszających\n" -#: src/elflint.c:2289 +#: src/elflint.c:2293 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" "sekcja [%2d] „%s”: tabela mieszająca nie dla tabeli dynamicznych symboli\n" -#: src/elflint.c:2293 +#: src/elflint.c:2297 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" "sekcja [%2d] „%s”: nieprawidłowy indeks sekcji tabeli symboli sh_link [%2d]\n" -#: src/elflint.c:2301 +#: src/elflint.c:2305 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "sekcja [%2d] „%s”: niepoprawny rozmiar wpisu tabeli mieszającej\n" -#: src/elflint.c:2306 +#: src/elflint.c:2310 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "sekcja [%2d] „%s”: nieoznaczona do przydzielenia\n" -#: src/elflint.c:2311 +#: src/elflint.c:2315 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " @@ -2244,29 +2276,29 @@ msgstr "" "sekcja [%2d] „%s”: tabela mieszająca nie posiada miejsca nawet na początkowe " "wpisy administracyjne\n" -#: src/elflint.c:2360 +#: src/elflint.c:2364 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" "sh_link w sekcjach skrótu [%2zu] „%s” i [%2zu] „%s” nie są identyczne\n" -#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484 +#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "" "sekcja mieszania [%2zu] „%s” nie zawiera wystarczającej ilości danych\n" -#: src/elflint.c:2405 +#: src/elflint.c:2409 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "sekcja mieszania [%2zu] „%s” posiada zerowe słowa maski bitów\n" -#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497 +#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "sekcja mieszania [%2zu] „%s” używa za dużo danych\n" -#: src/elflint.c:2431 +#: src/elflint.c:2435 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index % (max_nsyms: " @@ -2275,17 +2307,17 @@ msgstr "" "sekcja mieszająca [%2zu] „%s” nieprawidłowy indeks symboli % " "(max_nsyms: %, nentries: %\n" -#: src/elflint.c:2518 +#: src/elflint.c:2522 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "sekcja mieszania [%2zu] „%s” nieprawidłowe sh_entsize\n" -#: src/elflint.c:2528 src/elflint.c:2532 +#: src/elflint.c:2532 src/elflint.c:2536 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "sekcja [%2zu] „%s”: odwołanie do symbolu o indeksie 0\n" -#: src/elflint.c:2539 +#: src/elflint.c:2543 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " @@ -2294,7 +2326,7 @@ msgstr "" "symbol %d wymieniony w nowej tabeli mieszającej w [%2zu] „%s”, ale nie w " "poprzedniej tabeli mieszającej [%2zu] „%s”\n" -#: src/elflint.c:2551 +#: src/elflint.c:2555 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " @@ -2303,12 +2335,12 @@ msgstr "" "symbol %d wymieniony w poprzedniej tabeli mieszającej w [%2zu] „%s”, ale nie " "w nowej tabeli mieszającej w [%2zu] „%s”\n" -#: src/elflint.c:2567 +#: src/elflint.c:2571 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "sekcja [%2d] „%s”: niezerowe sh_%s dla sekcji NULL\n" -#: src/elflint.c:2587 +#: src/elflint.c:2591 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" @@ -2316,96 +2348,96 @@ msgstr "" "sekcja [%2d] „%s”: w plikach obiektów relokowalnych dozwolone są tylko grupy " "sekcji\n" -#: src/elflint.c:2598 +#: src/elflint.c:2602 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać tabeli symboli: %s\n" -#: src/elflint.c:2603 +#: src/elflint.c:2607 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" "sekcja [%2d] „%s”: odwołanie do sekcji w sh_link nie posiada tabeli symboli\n" -#: src/elflint.c:2609 +#: src/elflint.c:2613 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "sekcja [%2d] „%s”: nieprawidłowy indeks symbolu w sh_info\n" -#: src/elflint.c:2614 +#: src/elflint.c:2618 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "sekcja [%2d] „%s”: niezerowe sh_flags\n" -#: src/elflint.c:2621 +#: src/elflint.c:2625 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu dla podpisu\n" -#: src/elflint.c:2625 +#: src/elflint.c:2629 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać nazwy symbolu dla podpisu\n" -#: src/elflint.c:2630 +#: src/elflint.c:2634 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "sekcja [%2d] „%s”: symbol podpisu nie można być pustym ciągiem\n" -#: src/elflint.c:2636 +#: src/elflint.c:2640 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "sekcja [%2d] „%s”: sh_flags nie ustawione poprawnie\n" -#: src/elflint.c:2642 +#: src/elflint.c:2646 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać danych: %s\n" -#: src/elflint.c:2651 +#: src/elflint.c:2655 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" "sekcja [%2d] „%s”: rozmiar sekcji nie jest wielokrotnością " "sizeof(Elf32_Word)\n" -#: src/elflint.c:2656 +#: src/elflint.c:2660 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "sekcja [%2d] „%s”: grupa sekcji bez słowa flag\n" -#: src/elflint.c:2662 +#: src/elflint.c:2666 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "sekcja [%2d] „%s”: grupa sekcji bez elementów\n" -#: src/elflint.c:2666 +#: src/elflint.c:2670 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "sekcja [%2d] „%s”: grupa sekcji z tylko jednym elementem\n" -#: src/elflint.c:2677 +#: src/elflint.c:2681 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "sekcja [%2d] „%s”: nieznane flagi grupy sekcji\n" -#: src/elflint.c:2689 +#: src/elflint.c:2693 #, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "sekcja [%2d] „%s”: indeks sekcji %zu jest spoza zakresu\n" -#: src/elflint.c:2698 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" "sekcja [%2d] „%s”: nie można uzyskać nagłówka sekcji dla elementu %zu: %s\n" -#: src/elflint.c:2705 +#: src/elflint.c:2709 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "sekcja [%2d] „%s”: grupa sekcji zawiera inną grupę [%2d] „%s”\n" -#: src/elflint.c:2711 +#: src/elflint.c:2715 #, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2414,12 +2446,12 @@ msgstr "" "sekcja [%2d] „%s”: element %zu odwołuje się do sekcji [%2d] „%s” bez flagi " "SHF_GROUP\n" -#: src/elflint.c:2718 +#: src/elflint.c:2722 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "sekcja [%2d] „%s” jest zawarta w więcej niż jednej grupie sekcji\n" -#: src/elflint.c:2907 +#: src/elflint.c:2912 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " @@ -2428,7 +2460,7 @@ msgstr "" "sekcja [%2d] „%s” odwołuje się w sh_link do sekcji [%2d] „%s”, która nie " "jest tabelą symboli dynamicznych\n" -#: src/elflint.c:2919 +#: src/elflint.c:2924 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " @@ -2436,78 +2468,78 @@ msgid "" msgstr "" "sekcja [%2d] „%s” posiada inną liczbę wpisów niż tabela symboli [%2d] „%s”\n" -#: src/elflint.c:2935 +#: src/elflint.c:2940 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "sekcja [%2d] „%s”: symbol %d: nie można odczytać danych wersji\n" -#: src/elflint.c:2951 +#: src/elflint.c:2956 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "sekcja [%2d] „%s”: symbol %d: symbol lokalny z zakresem globalnym\n" -#: src/elflint.c:2959 +#: src/elflint.c:2964 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "sekcja [%2d] „%s”: symbol %d: symbol lokalny z wersją\n" -#: src/elflint.c:2973 +#: src/elflint.c:2978 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "sekcja [%2d] „%s”: symbol %d: nieprawidłowy indeks wersji %d\n" -#: src/elflint.c:2978 +#: src/elflint.c:2983 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" "sekcja [%2d] „%s”: symbol %d: indeks wersji %d jest dla wersji określonej\n" -#: src/elflint.c:2988 +#: src/elflint.c:2993 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" "sekcja [%2d] „%s”: symbol %d: indeks wersji %d jest dla wersji żądanej\n" -#: src/elflint.c:3041 +#: src/elflint.c:3046 #, c-format msgid "more than one version reference section present\n" msgstr "obecna jest więcej niż jedna sekcja odniesienia wersji\n" -#: src/elflint.c:3049 src/elflint.c:3196 +#: src/elflint.c:3054 src/elflint.c:3201 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "sekcja [%2d] „%s”: sh_link nie łączy się z tabelą ciągów\n" -#: src/elflint.c:3074 src/elflint.c:3250 +#: src/elflint.c:3079 src/elflint.c:3255 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "sekcja [%2d] „%s”: wpis %d posiada błędną wersję %d\n" -#: src/elflint.c:3081 src/elflint.c:3257 +#: src/elflint.c:3086 src/elflint.c:3262 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" "sekcja [%2d] „%s”: wpis %d posiada błędny offset dla danych dodatkowych\n" -#: src/elflint.c:3091 +#: src/elflint.c:3096 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "sekcja [%2d] „%s”: symbol %d posiada błędne odniesienie do pliku\n" -#: src/elflint.c:3099 +#: src/elflint.c:3104 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "sekcja [%2d] „%s”: wpis %d odnosi się do nieznanej zależności\n" -#: src/elflint.c:3111 +#: src/elflint.c:3116 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" "sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada nieznaną flagę\n" -#: src/elflint.c:3119 +#: src/elflint.c:3124 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " @@ -2516,7 +2548,7 @@ msgstr "" "sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada nieprawidłowe " "odniesienie do nazwy\n" -#: src/elflint.c:3128 +#: src/elflint.c:3133 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " @@ -2525,7 +2557,7 @@ msgstr "" "sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada błędną wartość " "skrótu: %#x, oczekiwano %#x\n" -#: src/elflint.c:3137 +#: src/elflint.c:3142 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " @@ -2534,7 +2566,7 @@ msgstr "" "sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada powtórzoną nazwę " "wersji „%s”\n" -#: src/elflint.c:3148 +#: src/elflint.c:3153 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" @@ -2542,12 +2574,12 @@ msgstr "" "sekcja [%2d] „%s”: wpis dodatkowy %d do wpisu %d posiada błędne następne " "pole\n" -#: src/elflint.c:3165 src/elflint.c:3341 +#: src/elflint.c:3170 src/elflint.c:3346 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "sekcja [%2d] „%s”: wpis %d posiada błędny offset do następnego wpisu\n" -#: src/elflint.c:3173 src/elflint.c:3349 +#: src/elflint.c:3178 src/elflint.c:3354 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " @@ -2556,46 +2588,46 @@ msgstr "" "sekcja [%2d] „%s”: wpis %d posiada zerowy offset do następnego wpisu, ale " "sh_info zawiera informacje o więcej wpisów\n" -#: src/elflint.c:3188 +#: src/elflint.c:3193 #, c-format msgid "more than one version definition section present\n" msgstr "obecna jest więcej niż jedna sekcja definicji wersji\n" -#: src/elflint.c:3235 +#: src/elflint.c:3240 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "sekcja [%2d] „%s”: jest więcej niż jedna definicja BASE\n" -#: src/elflint.c:3239 +#: src/elflint.c:3244 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" "sekcja [%2d] „%s”: definicja BASE musi posiadać indeks VER_NDX_GLOBAL\n" -#: src/elflint.c:3245 +#: src/elflint.c:3250 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "sekcja [%2d] „%s”: wpis %d posiada nieznaną flagę\n" -#: src/elflint.c:3272 +#: src/elflint.c:3277 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "" "sekcja [%2d] „%s”: wpis %d posiada nieprawidłowe odniesienie do nazwy\n" -#: src/elflint.c:3279 +#: src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" "sekcja [%2d] „%s”: wpis %d posiada błędną wartość skrótu: %#x, oczekiwano " "%#x\n" -#: src/elflint.c:3287 +#: src/elflint.c:3292 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "sekcja [%2d] „%s”: wpis %d posiada powtórzoną nazwę wersji „%s”\n" -#: src/elflint.c:3307 +#: src/elflint.c:3312 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" @@ -2603,52 +2635,52 @@ msgstr "" "sekcja [%2d] „%s”: wpis %d posiada nieprawidłowe odniesienie do nazwy w " "danych dodatkowych\n" -#: src/elflint.c:3324 +#: src/elflint.c:3329 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" "sekcja [%2d] „%s”: wpis %d posiada błędne następne pole w danych " "dodatkowych\n" -#: src/elflint.c:3357 +#: src/elflint.c:3362 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "sekcja [%2d] „%s”: brak definicji BASE\n" -#: src/elflint.c:3373 +#: src/elflint.c:3378 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "sekcja [%2d] „%s”: nieznana wersja rodzica „%s”\n" -#: src/elflint.c:3386 +#: src/elflint.c:3391 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "sekcja [%2d] „%s”: pusta sekcja atrybutów obiektu\n" -#: src/elflint.c:3407 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "sekcja [%2d] „%s”: nierozpoznany format atrybutu\n" -#: src/elflint.c:3423 +#: src/elflint.c:3428 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" "sekcja [%2d] „%s”: offset %zu: pole o zerowej długości w sekcji atrybutów\n" -#: src/elflint.c:3432 +#: src/elflint.c:3437 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" "sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w sekcji atrybutów\n" -#: src/elflint.c:3444 +#: src/elflint.c:3449 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "sekcja [%2d] „%s”: offset %zu: niezakończony ciąg nazwy producenta\n" -#: src/elflint.c:3461 +#: src/elflint.c:3466 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" @@ -2656,19 +2688,19 @@ msgstr "" "sekcja [%2d] „%s”: offset %zu: niekończące się ULEB128 w znaczniku podsekcji " "atrybutów\n" -#: src/elflint.c:3470 +#: src/elflint.c:3475 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "sekcja [%2d] „%s”: offset %zu: skrócona sekcja atrybutów\n" -#: src/elflint.c:3479 +#: src/elflint.c:3484 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" "sekcja [%2d] „%s”: offset %zu: zerowej długości pole w podsekcji atrybutów\n" -#: src/elflint.c:3494 +#: src/elflint.c:3499 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" @@ -2676,7 +2708,7 @@ msgstr "" "sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w podsekcji atrybutów\n" #. Tag_File -#: src/elflint.c:3505 +#: src/elflint.c:3510 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" @@ -2684,23 +2716,23 @@ msgstr "" "sekcja [%2d] „%s”: offset %zu: podsekcja atrybutów posiada nieoczekiwany " "znacznik %u\n" -#: src/elflint.c:3523 +#: src/elflint.c:3528 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" "sekcja [%2d] „%s”: offset %zu: niekończące się ULEB128 w znaczniku atrybutu\n" -#: src/elflint.c:3534 +#: src/elflint.c:3539 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "sekcja [%2d] „%s”: offset %zu: niezakończony ciąg w atrybucie\n" -#: src/elflint.c:3547 +#: src/elflint.c:3552 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "sekcja [%2d] „%s”: offset %zu: nierozpoznany znacznik atrybutu %u\n" -#: src/elflint.c:3551 +#: src/elflint.c:3556 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %\n" @@ -2708,12 +2740,12 @@ msgstr "" "sekcja [%2d] „%s”: offset %zu: atrybut %s posiada nierozpoznaną wartość " "%\n" -#: src/elflint.c:3561 +#: src/elflint.c:3566 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "sekcja [%2d] „%s”: offset %zu: producent „%s” jest nieznany\n" -#: src/elflint.c:3567 +#: src/elflint.c:3572 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" @@ -2721,47 +2753,47 @@ msgstr "" "sekcja [%2d] „%s”: offset %zu: dodatkowe bajty po ostatniej sekcji " "atrybutów\n" -#: src/elflint.c:3656 +#: src/elflint.c:3661 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "nie można uzyskać nagłówka sekcji zerowej\n" -#: src/elflint.c:3660 +#: src/elflint.c:3665 #, c-format msgid "zeroth section has nonzero name\n" msgstr "sekcja zerowa posiada niezerową nazwę\n" -#: src/elflint.c:3662 +#: src/elflint.c:3667 #, c-format msgid "zeroth section has nonzero type\n" msgstr "sekcja zerowa posiada niezerowy typ\n" -#: src/elflint.c:3664 +#: src/elflint.c:3669 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "sekcja zerowa posiada niezerowe flagi\n" -#: src/elflint.c:3666 +#: src/elflint.c:3671 #, c-format msgid "zeroth section has nonzero address\n" msgstr "sekcja zerowa posiada niezerowy adres\n" -#: src/elflint.c:3668 +#: src/elflint.c:3673 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "sekcja zerowa posiada niezerowy offset\n" -#: src/elflint.c:3670 +#: src/elflint.c:3675 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "sekcja zerowa posiada niezerową wartość wyrównania\n" -#: src/elflint.c:3672 +#: src/elflint.c:3677 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "sekcja zerowa posiada niezerową wartość rozmiaru wpisu\n" -#: src/elflint.c:3675 +#: src/elflint.c:3680 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -2770,7 +2802,7 @@ msgstr "" "sekcja zerowa posiada niezerową wartość rozmiaru, a nagłówek ELF posiada " "niezerową wartość shnum\n" -#: src/elflint.c:3679 +#: src/elflint.c:3684 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2779,7 +2811,7 @@ msgstr "" "sekcja zerowa posiada niezerową wartość dowiązań, a nagłówek ELF nie " "wskazuje przepełnienia w shstrndx\n" -#: src/elflint.c:3683 +#: src/elflint.c:3688 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2788,27 +2820,27 @@ msgstr "" "sekcja zerowa posiada niezerową wartość dowiązań, a nagłówek ELF nie " "wskazuje przepełnienia w phnum\n" -#: src/elflint.c:3700 +#: src/elflint.c:3706 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "nie można uzyskać nagłówka sekcji dla sekcji [%2zu] „%s”: %s\n" -#: src/elflint.c:3709 +#: src/elflint.c:3715 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "sekcja [%2zu]: nieprawidłowa nazwa\n" -#: src/elflint.c:3736 +#: src/elflint.c:3742 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "sekcja [%2d] „%s” posiada błędny typ: oczekiwano %s, jest %s\n" -#: src/elflint.c:3752 +#: src/elflint.c:3760 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "sekcja [%2zu] „%s” posiada błędne flagi: oczekiwano %s, jest %s\n" -#: src/elflint.c:3769 +#: src/elflint.c:3778 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -2816,12 +2848,12 @@ msgstr "" "sekcja [%2zu] „%s” posiada błędne flagi: oczekiwano %s i być może %s, jest " "%s\n" -#: src/elflint.c:3787 +#: src/elflint.c:3796 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "sekcja [%2zu] „%s” jest obecna w pliku obiektu\n" -#: src/elflint.c:3793 src/elflint.c:3825 +#: src/elflint.c:3802 src/elflint.c:3834 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -2829,7 +2861,7 @@ msgstr "" "sekcja [%2zu] „%s” posiada flagę SHF_ALLOC, ale nie posiada segmentu " "wczytywalnego\n" -#: src/elflint.c:3798 src/elflint.c:3830 +#: src/elflint.c:3807 src/elflint.c:3839 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -2837,7 +2869,7 @@ msgid "" msgstr "" "sekcja [%2zu] „%s” nie posiada flagi SHF_ALLOC, ale są segmenty wczytywalne\n" -#: src/elflint.c:3806 +#: src/elflint.c:3815 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -2845,22 +2877,22 @@ msgstr "" "sekcja [%2zu] „%s” jest tabelą indeksów sekcji rozszerzeń w pliku " "nieobiektowym\n" -#: src/elflint.c:3849 +#: src/elflint.c:3858 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "sekcja [%2zu] „%s”: rozmiar nie jest wielokrotnością rozmiaru wpisu\n" -#: src/elflint.c:3854 +#: src/elflint.c:3863 #, c-format msgid "cannot get section header\n" msgstr "nie można uzyskać nagłówka sekcji\n" -#: src/elflint.c:3864 +#: src/elflint.c:3873 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "sekcja [%2zu] „%s” posiada nieobsługiwany typ %d\n" -#: src/elflint.c:3878 +#: src/elflint.c:3888 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" @@ -2868,59 +2900,75 @@ msgstr "" "sekcja [%2zu] „%s” zawiera nieprawidłowe flagi specyficzne dla procesora " "%#\n" -#: src/elflint.c:3885 +#: src/elflint.c:3895 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "sekcja [%2zu] „%s” zawiera nieznane flagi %#\n" -#: src/elflint.c:3893 +#: src/elflint.c:3903 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "sekcja [%2zu] „%s”: adres sekcji danych lokalnych dla wątków nie jest zerem\n" -#: src/elflint.c:3901 +#: src/elflint.c:3913 +#, c-format +msgid "section [%2zu] '%s': allocated section cannot be compressed\n" +msgstr "sekcja [%2zu] „%s”: nie można skompresować przydzielonej sekcji\n" + +#: src/elflint.c:3918 +#, c-format +msgid "section [%2zu] '%s': nobits section cannot be compressed\n" +msgstr "sekcja [%2zu] „%s”: nie można skompresować sekcji „nobits”\n" + +#: src/elflint.c:3924 +#, c-format +msgid "" +"section [%2zu] '%s': compressed section with no compression header: %s\n" +msgstr "sekcja [%2zu] „%s”: skompresowana sekcja bez nagłówka kompresji: %s\n" + +#: src/elflint.c:3930 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości dowiązania\n" -#: src/elflint.c:3906 +#: src/elflint.c:3935 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "sekcja [%2zu] „%s”: nieprawidłowe odwołanie do sekcji w wartości " "informacyjnej\n" -#: src/elflint.c:3913 +#: src/elflint.c:3942 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "sekcja [%2zu] „%s”: flaga ciągów jest ustawiona bez flagi merge\n" -#: src/elflint.c:3918 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "sekcja [%2zu] „%s”: flaga merge jest ustawiona, ale rozmiar wpisu jest " "zerowy\n" -#: src/elflint.c:3936 +#: src/elflint.c:3965 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" "sekcja [%2zu] „%s” posiada nieoczekiwany typ %d dla sekcji wykonywalnej\n" -#: src/elflint.c:3945 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "sekcja [%2zu] „%s” musi być typu NOBITS w plikach debuginfo\n" -#: src/elflint.c:3952 +#: src/elflint.c:3981 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "sekcja [%2zu] „%s” jest wykonywalne i zapisywalne\n" -#: src/elflint.c:3983 +#: src/elflint.c:4012 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -2929,7 +2977,7 @@ msgstr "" "sekcja [%2zu] „%s” nie jest w całości zawarta w segmencie wpisu %d nagłówka " "programu\n" -#: src/elflint.c:3993 +#: src/elflint.c:4022 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -2938,7 +2986,7 @@ msgstr "" "sekcja [%2zu] „%s” posiada typ NOBITS, a jest odczytywana z pliku w " "segmencie wpisu %d nagłówka programu\n" -#: src/elflint.c:4019 +#: src/elflint.c:4048 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -2947,7 +2995,7 @@ msgstr "" "sekcja [%2zu] „%s” posiada typ NOBITS, ale jest odczytywana z pliku w " "segmencie wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n" -#: src/elflint.c:4030 +#: src/elflint.c:4059 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -2956,17 +3004,17 @@ msgstr "" "sekcja [%2zu] „%s” nie posiada typu NOBITS, a nie jest odczytywana z pliku w " "segmencie wpisu %d nagłówka programu\n" -#: src/elflint.c:4041 +#: src/elflint.c:4070 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "sekcja [%2zu] „%s” jest wykonywalne w segmencie niewykonywalnym %d\n" -#: src/elflint.c:4051 +#: src/elflint.c:4080 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "sekcja [%2zu] „%s” jest zapisywalne w niezapisywalnym segmencie %d\n" -#: src/elflint.c:4061 +#: src/elflint.c:4090 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -2974,7 +3022,7 @@ msgstr "" "sekcja [%2zu] „%s”: posiada flagę alloc, ale sekcja nie jest w żadnym " "segmencie wczytywalnym\n" -#: src/elflint.c:4067 +#: src/elflint.c:4096 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -2983,7 +3031,7 @@ msgstr "" "sekcja [%2zu] „%s”: według nagłówka ELF to jest tabela ciągów nagłówków " "sekcji, ale typ nie jest SHT_TYPE\n" -#: src/elflint.c:4075 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -2991,17 +3039,17 @@ msgstr "" "sekcja [%2zu] „%s”: pliki relokowalne nie mogą posiadać tabeli symboli " "dynamicznych\n" -#: src/elflint.c:4126 +#: src/elflint.c:4155 #, c-format msgid "more than one version symbol table present\n" msgstr "obecna jest więcej niż jedna tabela symboli wersji\n" -#: src/elflint.c:4149 +#: src/elflint.c:4178 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "jest wpis nagłówka programu INTERP, ale nie posiada sekcji .interp\n" -#: src/elflint.c:4160 +#: src/elflint.c:4189 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3009,14 +3057,14 @@ msgstr "" "wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych " "sekcji\n" -#: src/elflint.c:4166 +#: src/elflint.c:4195 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "wczytywalny segment [%u] jest zapisywalny, ale nie zawiera zapisywalnych " "sekcji\n" -#: src/elflint.c:4177 +#: src/elflint.c:4206 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3025,23 +3073,23 @@ msgstr "" "brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu." "versym_r\n" -#: src/elflint.c:4190 +#: src/elflint.c:4219 #, c-format msgid "duplicate version index %d\n" msgstr "powtórzony indeks wersji %d\n" -#: src/elflint.c:4204 +#: src/elflint.c:4233 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "sekcja .gnu.versym istnieje bez .gnu.versym_d lub .gnu.versym_r\n" -#: src/elflint.c:4253 +#: src/elflint.c:4282 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: nieznany typ notatki pliku core % pod offsetem %\n" -#: src/elflint.c:4257 +#: src/elflint.c:4286 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" @@ -3049,13 +3097,13 @@ msgstr "" "sekcja [%2d]: „%s”: nieznany typ notatki pliku core % pod offsetem " "%zu\n" -#: src/elflint.c:4280 +#: src/elflint.c:4309 #, c-format msgid "phdr[%d]: unknown object file note type % at offset %zu\n" msgstr "" "phdr[%d]: nieznany typ notatki pliku obiektu % pod offsetem %zu\n" -#: src/elflint.c:4284 +#: src/elflint.c:4313 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % at offset %zu\n" @@ -3063,37 +3111,37 @@ msgstr "" "sekcja [%2d] „%s”: nieznany typ notatki pliku obiektu % pod offsetem " "%zu\n" -#: src/elflint.c:4301 +#: src/elflint.c:4330 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: brak określonych wpisów notatek dla typu pliku\n" -#: src/elflint.c:4320 +#: src/elflint.c:4349 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: nie można uzyskać zawartości sekcji notatki: %s\n" -#: src/elflint.c:4323 +#: src/elflint.c:4352 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: dodatkowe % bajtów po ostatniej notatce\n" -#: src/elflint.c:4344 +#: src/elflint.c:4373 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "sekcja [%2d] „%s”: brak określonych wpisów notatek dla typu pliku\n" -#: src/elflint.c:4351 +#: src/elflint.c:4380 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać zawartości sekcji notatek\n" -#: src/elflint.c:4354 +#: src/elflint.c:4383 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "sekcja [%2d] „%s”: dodatkowe % bajtów po ostatniej notatce\n" -#: src/elflint.c:4372 +#: src/elflint.c:4401 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3101,136 +3149,136 @@ msgstr "" "tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą posiadać " "nagłówki programu\n" -#: src/elflint.c:4387 +#: src/elflint.c:4416 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "nie można uzyskać wpisu nagłówka programu %d: %s\n" -#: src/elflint.c:4396 +#: src/elflint.c:4425 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#\n" -#: src/elflint.c:4407 +#: src/elflint.c:4436 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "więcej niż jeden wpis INTERP w nagłówku programu\n" -#: src/elflint.c:4415 +#: src/elflint.c:4444 #, c-format msgid "more than one TLS entry in program header\n" msgstr "więcej niż jeden wpis TLS w nagłówku programu\n" -#: src/elflint.c:4422 +#: src/elflint.c:4451 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "statyczny plik wykonywalny nie może posiadać sekcji dynamicznych\n" -#: src/elflint.c:4436 +#: src/elflint.c:4465 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "odniesienie sekcji dynamicznej w nagłówku programu posiada błędny offset\n" -#: src/elflint.c:4439 +#: src/elflint.c:4468 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "różne rozmiary sekcji dynamicznej w nagłówku programu i sekcji\n" -#: src/elflint.c:4449 +#: src/elflint.c:4478 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "więcej niż jeden wpis GNU_RELRO w nagłówku programu\n" -#: src/elflint.c:4470 +#: src/elflint.c:4499 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "wczytywalny segment wskazywany przez GNU_RELRO nie jest zapisywalny\n" -#: src/elflint.c:4481 +#: src/elflint.c:4510 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "flagi wczytywalnego segmentu [%u] nie pasują do flag GNU_RELRO [%u]\n" -#: src/elflint.c:4488 +#: src/elflint.c:4517 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" "flagi GNU_RELRO [%u] nie są podzbiorem flag wczytywalnego segmentu [%u]\n" -#: src/elflint.c:4497 src/elflint.c:4520 +#: src/elflint.c:4526 src/elflint.c:4549 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "segment %s nie zawiera się we wczytywalnym segmencie\n" -#: src/elflint.c:4526 +#: src/elflint.c:4555 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" "offsety nagłówka programu w nagłówku ELF i wpisie PHDR nie zgadzają się" -#: src/elflint.c:4551 +#: src/elflint.c:4580 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "odniesienie tabeli wyszukiwania ramki wywołania w nagłówku programu posiada " "błędny offset\n" -#: src/elflint.c:4554 +#: src/elflint.c:4583 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "różne rozmiary tabel wyszukiwania ramki wywołania w nagłówku programu i " "sekcji\n" -#: src/elflint.c:4567 +#: src/elflint.c:4596 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "PT_GNU_EH_FRAME jest obecne, ale brak sekcji .eh_frame_hdr\n" -#: src/elflint.c:4575 +#: src/elflint.c:4604 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n" -#: src/elflint.c:4578 +#: src/elflint.c:4607 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sekcja [%2zu] „%s”: musi być przydzielona\n" -#: src/elflint.c:4582 +#: src/elflint.c:4611 #, c-format msgid "call frame search table must not be writable\n" msgstr "tabela wyszukiwania ramki wywołania nie może być zapisywalna\n" -#: src/elflint.c:4585 +#: src/elflint.c:4614 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "sekcja [%2zu] „%s” nie może być zapisywalna\n" -#: src/elflint.c:4590 +#: src/elflint.c:4619 #, c-format msgid "call frame search table must not be executable\n" msgstr "tabela wyszukiwania ramki wywołania nie może być wykonywalna\n" -#: src/elflint.c:4593 +#: src/elflint.c:4622 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sekcja [%2zu] „%s” nie może być wykonywalna\n" -#: src/elflint.c:4604 +#: src/elflint.c:4633 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "wpis nagłówka programu %d: rozmiar pliku większy niż rozmiar pamięci\n" -#: src/elflint.c:4611 +#: src/elflint.c:4640 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "wpis nagłówka programu %d: wyrównanie nie jest potęgą 2\n" -#: src/elflint.c:4614 +#: src/elflint.c:4643 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3239,7 +3287,7 @@ msgstr "" "wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są " "wielokrotnością wyrównania\n" -#: src/elflint.c:4627 +#: src/elflint.c:4656 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3248,12 +3296,12 @@ msgstr "" "plik wykonywalny/DSO z sekcją .eh_frame_hdr nie posiada wpisu nagłówka " "programu PT_GNU_EH_FRAME" -#: src/elflint.c:4661 +#: src/elflint.c:4690 #, c-format msgid "cannot read ELF header: %s\n" msgstr "nie można odczytać nagłówka ELF: %s\n" -#: src/elflint.c:4687 +#: src/elflint.c:4716 #, c-format msgid "text relocation flag set but not needed\n" msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n" @@ -3276,7 +3324,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "Odnajduje źródło relokacji tekstu w PLIKACH (domyślnie a.out)." #. Strings for arguments in help texts. -#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83 +#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" msgstr "[PLIK…]" @@ -3778,8 +3826,8 @@ msgid "Warning: size of `%s' changed from % in %s to % in %s" msgstr "" "Ostrzeżenie: rozmiar „%s” zmienił się z % w %s na % w %s" -#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527 -#: src/readelf.c:829 src/strip.c:589 +#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 +#: src/readelf.c:852 src/strip.c:589 #, c-format msgid "cannot determine number of sections: %s" msgstr "nie można określić liczby sekcji: %s" @@ -3954,12 +4002,12 @@ msgstr "nie można utworzyć sekcji identyfikatora kopii: %s" #: src/ldgeneric.c:4181 #, c-format msgid "cannot convert section data to file format: %s" -msgstr "nie można przekonwertować danych sekcji na format pliku: %s" +msgstr "nie można konwertować danych sekcji na format pliku: %s" #: src/ldgeneric.c:4190 #, c-format msgid "cannot convert section data to memory format: %s" -msgstr "nie można przekonwertować danych sekcji na format pamięci: %s" +msgstr "nie można konwertować danych sekcji na format pamięci: %s" #: src/ldgeneric.c:4251 #, c-format @@ -4024,7 +4072,7 @@ msgstr "błąd wewnętrzny: sekcja nie będąca nobits po sekcji nobits" msgid "cannot get header of 0th section: %s" msgstr "nie można uzyskać nagłówka zerowej sekcji: %s" -#: src/ldgeneric.c:6930 src/unstrip.c:1893 +#: src/ldgeneric.c:6930 src/unstrip.c:1929 #, c-format msgid "cannot update ELF header: %s" msgstr "nie można zaktualizować nagłówka ELF: %s" @@ -4099,43 +4147,43 @@ msgstr "" msgid "default visibility set as local and global" msgstr "domyślna widoczność ustawiona jako lokalna i globalna" -#: src/nm.c:65 src/strip.c:67 +#: src/nm.c:66 src/strip.c:67 msgid "Output selection:" msgstr "Wybór wyjścia:" -#: src/nm.c:66 +#: src/nm.c:67 msgid "Display debugger-only symbols" msgstr "Wyświetla symbole wyłącznie debugowowania" -#: src/nm.c:67 +#: src/nm.c:68 msgid "Display only defined symbols" msgstr "Wyświetla tylko określone symbole" -#: src/nm.c:70 +#: src/nm.c:71 msgid "Display dynamic symbols instead of normal symbols" msgstr "Wyświetla symbole dynamiczne zamiast zwykłych" -#: src/nm.c:71 +#: src/nm.c:72 msgid "Display only external symbols" msgstr "Wyświetla tylko symbole zewnętrzne" -#: src/nm.c:72 +#: src/nm.c:73 msgid "Display only undefined symbols" msgstr "Wyświetla tylko nieokreślone symbole" -#: src/nm.c:74 +#: src/nm.c:75 msgid "Include index for symbols from archive members" msgstr "Dołącza indeks dla symboli z elementów archiwum" -#: src/nm.c:76 src/size.c:57 +#: src/nm.c:77 src/size.c:57 msgid "Output format:" msgstr "Format wyjścia:" -#: src/nm.c:78 +#: src/nm.c:79 msgid "Print name of the input file before every symbol" msgstr "Wyświetla nazwę pliku wejściowego przed każdym symbolem" -#: src/nm.c:81 +#: src/nm.c:82 msgid "" "Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The " "default is `sysv'" @@ -4143,73 +4191,73 @@ msgstr "" "Używa FORMATU wyjściowego. Może to być „bsd”, „sysv” lub „posix”. Domyślny " "jest format „sysv”" -#: src/nm.c:83 +#: src/nm.c:84 msgid "Same as --format=bsd" msgstr "To samo, co --format=bsd" -#: src/nm.c:84 +#: src/nm.c:85 msgid "Same as --format=posix" msgstr "To samo co, --format=posix" -#: src/nm.c:85 src/size.c:63 +#: src/nm.c:86 src/size.c:63 msgid "Use RADIX for printing symbol values" msgstr "Używa BAZY do wypisywania wartości symboli" -#: src/nm.c:86 +#: src/nm.c:87 msgid "Mark special symbols" msgstr "Oznacza specjalne symbole" -#: src/nm.c:88 +#: src/nm.c:89 msgid "Print size of defined symbols" msgstr "Wyświetla rozmiar określonych symboli" -#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72 +#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72 msgid "Output options:" msgstr "Opcje wyjścia:" -#: src/nm.c:91 +#: src/nm.c:92 msgid "Sort symbols numerically by address" msgstr "Porządkuje symbole numerycznie według adresu" -#: src/nm.c:93 +#: src/nm.c:94 msgid "Do not sort the symbols" msgstr "Bez porządkowania symboli" -#: src/nm.c:94 +#: src/nm.c:95 msgid "Reverse the sense of the sort" msgstr "Odwraca kierunek porządkowania" -#: src/nm.c:97 +#: src/nm.c:98 msgid "Decode low-level symbol names into source code names" msgstr "Dekoduje niskopoziomowe nazwy symboli na nazwy kodu źródłowego" #. Short description of program. -#: src/nm.c:104 +#: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)." -#: src/nm.c:115 src/objdump.c:79 +#: src/nm.c:116 src/objdump.c:79 msgid "Output formatting" msgstr "Formatowanie wyjścia" -#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127 +#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127 #, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s): %s" -#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 +#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 #: src/size.c:325 src/strip.c:2280 #, c-format msgid "while closing '%s'" msgstr "podczas zamykania „%s”" -#: src/nm.c:416 src/objdump.c:292 src/strip.c:391 +#: src/nm.c:417 src/objdump.c:292 src/strip.c:391 #, c-format msgid "%s: File format not recognized" msgstr "%s: nie rozpoznano formatu pliku" #. Note: 0 is no valid offset. -#: src/nm.c:456 +#: src/nm.c:457 msgid "" "\n" "Archive index:\n" @@ -4217,45 +4265,45 @@ msgstr "" "\n" "Indeks archiwum:\n" -#: src/nm.c:465 +#: src/nm.c:466 #, c-format msgid "invalid offset %zu for symbol %s" msgstr "nieprawidłowy offset %zu dla symbolu %s" -#: src/nm.c:470 +#: src/nm.c:471 #, c-format msgid "%s in %s\n" msgstr "%s w %s\n" -#: src/nm.c:478 +#: src/nm.c:479 #, c-format msgid "cannot reset archive offset to beginning" msgstr "nie można przywrócić offsetu w archiwum na początek" -#: src/nm.c:503 src/objdump.c:340 +#: src/nm.c:504 src/objdump.c:340 #, c-format msgid "%s%s%s: file format not recognized" msgstr "%s%s%s: nie rozpoznano formatu pliku" -#: src/nm.c:715 +#: src/nm.c:719 #, c-format msgid "cannot create search tree" msgstr "nie można utworzyć drzewa wyszukiwania" -#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536 -#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 -#: src/readelf.c:1579 src/readelf.c:1785 src/readelf.c:1975 -#: src/readelf.c:2202 src/readelf.c:2460 src/readelf.c:2536 -#: src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 -#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 -#: src/readelf.c:9461 src/readelf.c:9529 src/size.c:413 +#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545 +#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 +#: src/readelf.c:1667 src/readelf.c:1873 src/readelf.c:2063 +#: src/readelf.c:2300 src/readelf.c:2558 src/readelf.c:2634 +#: src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 +#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 +#: src/readelf.c:9603 src/readelf.c:9671 src/size.c:413 #: src/size.c:482 src/strip.c:520 #, c-format msgid "cannot get section header string table index" msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji" #. We always print this prolog. -#: src/nm.c:781 +#: src/nm.c:787 #, c-format msgid "" "\n" @@ -4269,7 +4317,7 @@ msgstr "" "\n" #. The header line. -#: src/nm.c:784 +#: src/nm.c:790 #, c-format msgid "" "%*s%-*s %-*s Class Type %-*s %*s Section\n" @@ -4278,23 +4326,23 @@ msgstr "" "%*s%-*s %-*s Klasa Typ %-*s %*s Sekcja\n" "\n" -#: src/nm.c:1171 +#: src/nm.c:1232 #, c-format msgid "%s: entry size in section %zd `%s' is not what we expect" msgstr "%s: rozmiar wpisu w sekcji %zd „%s” nie jest tym, czego oczekiwano" -#: src/nm.c:1176 +#: src/nm.c:1237 #, c-format msgid "%s: size of section %zd `%s' is not multiple of entry size" msgstr "%s: rozmiar sekcji %zd „%s” nie jest wielokrotnością rozmiaru wpisu" #. XXX Add machine specific object file types. -#: src/nm.c:1434 +#: src/nm.c:1537 #, c-format msgid "%s%s%s%s: Invalid operation" msgstr "%s%s%s%s: nieprawidłowe działanie" -#: src/nm.c:1491 +#: src/nm.c:1594 #, c-format msgid "%s%s%s: no symbols" msgstr "%s%s%s: brak symboli" @@ -4328,7 +4376,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:232 src/readelf.c:473 +#: src/objdump.c:232 src/readelf.c:479 msgid "No operation specified.\n" msgstr "Nie podano działania.\n" @@ -4337,11 +4385,11 @@ msgstr "Nie podano działania.\n" msgid "while close `%s'" msgstr "podczas zamykania „%s”" -#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072 +#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160 msgid "INVALID SYMBOL" msgstr "NIEPRAWIDŁOWY SYMBOL" -#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108 +#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196 msgid "INVALID SECTION" msgstr "NIEPRAWIDŁOWA SEKCJA" @@ -4395,74 +4443,74 @@ msgstr "„%s” nie jest archiwum" msgid "error while freeing sub-ELF descriptor: %s" msgstr "błąd podczas zwalniania deskryptora pod-ELF: %s" -#: src/readelf.c:71 +#: src/readelf.c:72 msgid "ELF input selection:" msgstr "Wybór wyjścia ELF:" -#: src/readelf.c:73 +#: src/readelf.c:74 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" "Używa podanej SEKCJI (domyślnie .gnu_debugdata) jako (skompresowanych) " "danych wejściowych ELF" -#: src/readelf.c:75 +#: src/readelf.c:76 msgid "ELF output selection:" msgstr "Wybór wyjścia ELF:" -#: src/readelf.c:77 +#: src/readelf.c:78 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "Wszystkie te plus -p .strtab -p .dynstr -p .comment" -#: src/readelf.c:78 +#: src/readelf.c:79 msgid "Display the dynamic segment" msgstr "Wyświetla segment dynamiczny" -#: src/readelf.c:79 +#: src/readelf.c:80 msgid "Display the ELF file header" msgstr "Wyświetla nagłówek pliku ELF" -#: src/readelf.c:81 +#: src/readelf.c:82 msgid "Display histogram of bucket list lengths" msgstr "Wyświetla histogram długości list kubełków" -#: src/readelf.c:82 +#: src/readelf.c:83 msgid "Display the program headers" msgstr "Wyświetla nagłówki programu" -#: src/readelf.c:84 +#: src/readelf.c:85 msgid "Display relocations" msgstr "Wyświetla relokacje" -#: src/readelf.c:85 +#: src/readelf.c:86 msgid "Display the sections' headers" msgstr "Wyświetla nagłówków sekcji" -#: src/readelf.c:87 +#: src/readelf.c:88 msgid "Display the symbol table" msgstr "Wyświetla tabelę symboli" -#: src/readelf.c:88 +#: src/readelf.c:89 msgid "Display versioning information" msgstr "Wyświetla informacje o wersjonowaniu" -#: src/readelf.c:89 +#: src/readelf.c:90 msgid "Display the ELF notes" msgstr "Wyświetla notatki ELF" -#: src/readelf.c:91 +#: src/readelf.c:92 msgid "Display architecture specific information, if any" msgstr "Wyświetla informacje specyficzne dla architektury, jeśli są" -#: src/readelf.c:93 +#: src/readelf.c:94 msgid "Display sections for exception handling" msgstr "Wyświetla sekcje do obsługi wyjątków" -#: src/readelf.c:95 +#: src/readelf.c:96 msgid "Additional output selection:" msgstr "Dodatkowy wybór wyjścia:" -#: src/readelf.c:97 +#: src/readelf.c:98 msgid "" "Display DWARF section content. SECTION can be one of abbrev, aranges, " "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, " @@ -4472,171 +4520,180 @@ msgstr "" "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, " "pubnames, str, macinfo, macro lub exception" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "Zrzuca niezinterpretowaną zawartość SEKCJI, według liczny lub nazwy" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "Print string contents of sections" msgstr "Wyświetla zawartość ciągów sekcji" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the symbol index of an archive" msgstr "Wyświetla indeks symboli archiwum" -#: src/readelf.c:108 +#: src/readelf.c:109 msgid "Output control:" msgstr "Kontrola wyjścia:" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Do not find symbol names for addresses in DWARF data" msgstr "Bez odnajdywania nazw symboli dla adresów w danych DWARF" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "" "Wyświetla tylko offsety zamiast rozwiązywania wartości na adresy w danych " "DWARF" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Ignored for compatibility (lines always wide)" msgstr "Ignorowane dla zgodności (wiersze są zawsze szerokie)" +#: src/readelf.c:117 +msgid "" +"Show compression information for compressed sections (when used with -S); " +"decompress section before dumping data (when used with -p or -x)" +msgstr "" +"Wyświetla informacje o kompresji dla skompresowanych sekcji (kiedy jest " +"używane z opcją -S); dekompresuje sekcję przed zrzuceniem danych (kiedy jest " +"używane z opcją -p lub -x)" + #. Short description of program. -#: src/readelf.c:119 +#: src/readelf.c:122 msgid "Print information from ELF file in human-readable form." msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka." -#: src/readelf.c:441 +#: src/readelf.c:447 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Nieznana sekcja debugowania DWARF „%s”.\n" -#: src/readelf.c:520 src/readelf.c:631 +#: src/readelf.c:529 src/readelf.c:640 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269 +#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347 #, c-format msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 -#: src/readelf.c:9481 src/unstrip.c:355 src/unstrip.c:386 -#: src/unstrip.c:435 src/unstrip.c:543 src/unstrip.c:560 -#: src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 -#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 -#: src/unstrip.c:1508 src/unstrip.c:1623 src/unstrip.c:1761 -#: src/unstrip.c:1855 +#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 +#: src/readelf.c:9623 src/unstrip.c:387 src/unstrip.c:418 +#: src/unstrip.c:467 src/unstrip.c:577 src/unstrip.c:594 +#: src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 +#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 +#: src/unstrip.c:1543 src/unstrip.c:1658 src/unstrip.c:1796 +#: src/unstrip.c:1891 #, c-format msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" -#: src/readelf.c:562 +#: src/readelf.c:571 #, c-format msgid "cannot get section name" msgstr "nie można uzyskać nazwy sekcji" -#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 -#: src/readelf.c:7772 src/readelf.c:7949 +#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 +#: src/readelf.c:7880 src/readelf.c:8057 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartości %s: %s" -#: src/readelf.c:587 +#: src/readelf.c:596 #, c-format msgid "cannot create temp file '%s'" msgstr "nie można utworzyć pliku tymczasowego „%s”" -#: src/readelf.c:596 +#: src/readelf.c:605 #, c-format msgid "cannot write section data" msgstr "nie można zapisać danych sekcji" -#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648 +#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "błąd podczas zamykania deskryptora ELF: %s" -#: src/readelf.c:609 +#: src/readelf.c:618 #, c-format msgid "error while rewinding file descriptor" msgstr "błąd podczas przewijania deskryptora pliku" -#: src/readelf.c:643 +#: src/readelf.c:652 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "„%s” nie jest archiwum, nie można wyświetlić indeksu archiwum" -#: src/readelf.c:742 +#: src/readelf.c:751 #, c-format msgid "No such section '%s' in '%s'" msgstr "Brak sekcji „%s” w „%s”" -#: src/readelf.c:769 +#: src/readelf.c:778 #, c-format msgid "cannot stat input file" msgstr "nie można wykonać stat na pliku wejściowym" -#: src/readelf.c:771 +#: src/readelf.c:780 #, c-format msgid "input file is empty" msgstr "plik wejściowy jest pusty" -#: src/readelf.c:773 +#: src/readelf.c:782 #, c-format msgid "failed reading '%s': %s" msgstr "odczytanie „%s” się nie powiodło: %s" -#: src/readelf.c:814 +#: src/readelf.c:837 #, c-format msgid "cannot read ELF header: %s" msgstr "nie można odczytać nagłówka ELF: %s" -#: src/readelf.c:822 +#: src/readelf.c:845 #, c-format msgid "cannot create EBL handle" msgstr "nie można utworzyć uchwytu EBL" -#: src/readelf.c:835 +#: src/readelf.c:858 #, c-format msgid "cannot determine number of program headers: %s" msgstr "nie można określić liczby nagłówków programu: %s" -#: src/readelf.c:921 +#: src/readelf.c:948 msgid "NONE (None)" msgstr "NONE (żaden)" -#: src/readelf.c:922 +#: src/readelf.c:949 msgid "REL (Relocatable file)" msgstr "REL (plik relokowalny)" -#: src/readelf.c:923 +#: src/readelf.c:950 msgid "EXEC (Executable file)" msgstr "EXEC (plik wykonywalny)" -#: src/readelf.c:924 +#: src/readelf.c:951 msgid "DYN (Shared object file)" msgstr "DYN (plik obiektu współdzielonego)" -#: src/readelf.c:925 +#: src/readelf.c:952 msgid "CORE (Core file)" msgstr "CORE (plik core)" -#: src/readelf.c:930 +#: src/readelf.c:957 #, c-format msgid "OS Specific: (%x)\n" msgstr "Zależny od systemu: (%x)\n" #. && e_type <= ET_HIPROC always true -#: src/readelf.c:932 +#: src/readelf.c:959 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Zależny od procesora: (%x)\n" -#: src/readelf.c:942 +#: src/readelf.c:969 msgid "" "ELF Header:\n" " Magic: " @@ -4644,7 +4701,7 @@ msgstr "" "Nagłówek ELF:\n" " Magic: " -#: src/readelf.c:946 +#: src/readelf.c:973 #, c-format msgid "" "\n" @@ -4653,118 +4710,118 @@ msgstr "" "\n" " Klasa: %s\n" -#: src/readelf.c:951 +#: src/readelf.c:978 #, c-format msgid " Data: %s\n" msgstr " Dane: %s\n" -#: src/readelf.c:957 +#: src/readelf.c:984 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Wersja Ident: %hhd %s\n" -#: src/readelf.c:959 src/readelf.c:976 +#: src/readelf.c:986 src/readelf.c:1003 msgid "(current)" msgstr "(bieżąca)" -#: src/readelf.c:963 +#: src/readelf.c:990 #, c-format msgid " OS/ABI: %s\n" msgstr " System operacyjny/ABI: %s\n" -#: src/readelf.c:966 +#: src/readelf.c:993 #, c-format msgid " ABI Version: %hhd\n" msgstr " Wersja ABI: %hhd\n" -#: src/readelf.c:969 +#: src/readelf.c:996 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:972 +#: src/readelf.c:999 #, c-format msgid " Machine: %s\n" msgstr " Komputer: %s\n" -#: src/readelf.c:974 +#: src/readelf.c:1001 #, c-format msgid " Version: %d %s\n" msgstr " Wersja: %d %s\n" -#: src/readelf.c:978 +#: src/readelf.c:1005 #, c-format msgid " Entry point address: %#\n" msgstr " Adres punktu wejściowego: %#\n" -#: src/readelf.c:981 +#: src/readelf.c:1008 #, c-format msgid " Start of program headers: % %s\n" msgstr " Początek nagłówków programu: % %s\n" -#: src/readelf.c:982 src/readelf.c:985 +#: src/readelf.c:1009 src/readelf.c:1012 msgid "(bytes into file)" msgstr "(bajtów w pliku)" -#: src/readelf.c:984 +#: src/readelf.c:1011 #, c-format msgid " Start of section headers: % %s\n" msgstr " Początek nagłówków sekcji: % %s\n" -#: src/readelf.c:987 +#: src/readelf.c:1014 #, c-format msgid " Flags: %s\n" msgstr " Flagi: %s\n" -#: src/readelf.c:990 +#: src/readelf.c:1017 #, c-format msgid " Size of this header: % %s\n" msgstr " Rozmiar tego nagłówka: % %s\n" -#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011 +#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038 msgid "(bytes)" msgstr "(bajtów)" -#: src/readelf.c:993 +#: src/readelf.c:1020 #, c-format msgid " Size of program header entries: % %s\n" msgstr " Rozmiar wpisów nagłówka programu: % %s\n" -#: src/readelf.c:996 +#: src/readelf.c:1023 #, c-format msgid " Number of program headers entries: %" msgstr " Liczba wpisów nagłówków programu: %" -#: src/readelf.c:1003 +#: src/readelf.c:1030 #, c-format msgid " (% in [0].sh_info)" msgstr " (% w [0].sh_info)" -#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037 +#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064 msgid " ([0] not available)" msgstr " ([0] niedostępny)" -#: src/readelf.c:1010 +#: src/readelf.c:1037 #, c-format msgid " Size of section header entries: % %s\n" msgstr " Rozmiar wpisów nagłówka sekcji: % %s\n" -#: src/readelf.c:1013 +#: src/readelf.c:1040 #, c-format msgid " Number of section headers entries: %" msgstr " Liczba wpisów nagłówków sekcji: %" -#: src/readelf.c:1020 +#: src/readelf.c:1047 #, c-format msgid " (% in [0].sh_size)" msgstr " (% w [0].sh_size)" #. We managed to get the zeroth section. -#: src/readelf.c:1033 +#: src/readelf.c:1060 #, c-format msgid " (% in [0].sh_link)" msgstr " (% w [0].sh_link)" -#: src/readelf.c:1041 +#: src/readelf.c:1068 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4773,7 +4830,7 @@ msgstr "" " Indeks tabeli ciągów nagłówków sekcji: XINDEX%s\n" "\n" -#: src/readelf.c:1045 +#: src/readelf.c:1072 #, c-format msgid "" " Section header string table index: %\n" @@ -4782,7 +4839,7 @@ msgstr "" " Indeks tabeli ciągów nagłówków sekcji: %\n" "\n" -#: src/readelf.c:1077 +#: src/readelf.c:1115 #, c-format msgid "" "There are %d section headers, starting at offset %#:\n" @@ -4791,19 +4848,19 @@ msgstr "" "Jest %d nagłówków sekcji, rozpoczynających się od offsetu %#:\n" "\n" -#: src/readelf.c:1087 +#: src/readelf.c:1125 msgid "Section Headers:" msgstr "Nagłówki sekcji:" -#: src/readelf.c:1090 +#: src/readelf.c:1128 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" msgstr "" -"[Nr] Nazwa Typ Adres Offset Rozm ES Flagi Lk " +"[Nr] Nazwa Typ Adres Offset Rozm. ES Flagi Lk " "Inf Al" -#: src/readelf.c:1092 +#: src/readelf.c:1130 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4811,18 +4868,36 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozmiar ES " "Flagi Lk Inf Al" -#: src/readelf.c:1164 +#: src/readelf.c:1135 +msgid " [Compression Size Al]" +msgstr " [Kompresja Rozmiar Al]" + +#: src/readelf.c:1137 +msgid " [Compression Size Al]" +msgstr " [Kompresja Rozmiar Al]" + +#: src/readelf.c:1213 +#, c-format +msgid "bad compression header for section %zd: %s" +msgstr "błędny nagłówek kompresji dla sekcji %zd: %s" + +#: src/readelf.c:1224 +#, c-format +msgid "bad gnu compressed size for section %zd: %s" +msgstr "błędny rozmiar kompresji gnu dla sekcji %zd: %s" + +#: src/readelf.c:1242 msgid "Program Headers:" msgstr "Nagłówki programu:" -#: src/readelf.c:1166 +#: src/readelf.c:1244 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg " "Wyrównanie" -#: src/readelf.c:1169 +#: src/readelf.c:1247 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4830,12 +4905,12 @@ msgstr "" " Typ Offset AdresWirtualny AdresFizyczny RozmPlik " "RozmPam Flg Wyrównanie" -#: src/readelf.c:1226 +#: src/readelf.c:1304 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Wywołanie interpretera programu: %s]\n" -#: src/readelf.c:1247 +#: src/readelf.c:1325 msgid "" "\n" " Section to Segment mapping:\n" @@ -4845,13 +4920,13 @@ msgstr "" " Mapowanie sekcji do segmentów:\n" " Segment sekcji…" -#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 -#: src/unstrip.c:1964 +#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 +#: src/unstrip.c:1999 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" -#: src/readelf.c:1401 +#: src/readelf.c:1479 #, c-format msgid "" "\n" @@ -4869,7 +4944,7 @@ msgstr[2] "" "\n" "Grupa sekcji COMDAT [%2zu] „%s” z podpisem „%s” zawiera %zu wpisów:\n" -#: src/readelf.c:1406 +#: src/readelf.c:1484 #, c-format msgid "" "\n" @@ -4887,22 +4962,26 @@ msgstr[2] "" "\n" "Grupa sekcji [%2zu] „%s” z podpisem „%s” zawiera %zu wpisów:\n" -#: src/readelf.c:1414 +#: src/readelf.c:1492 msgid "" msgstr "" -#: src/readelf.c:1428 +#: src/readelf.c:1506 msgid "" msgstr "" -#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 -#: src/readelf.c:2542 src/readelf.c:2846 src/readelf.c:2920 -#: src/readelf.c:4608 +#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317 +msgid "Couldn't uncompress section" +msgstr "Nie można dekompresować sekcji" + +#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 +#: src/readelf.c:2640 src/readelf.c:2944 src/readelf.c:3018 +#: src/readelf.c:4716 #, c-format msgid "invalid sh_link value in section %zu" msgstr "nieprawidłowa wartość sh_link w sekcji %zu" -#: src/readelf.c:1588 +#: src/readelf.c:1676 #, c-format msgid "" "\n" @@ -4928,36 +5007,36 @@ msgstr[2] "" " Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " "'%s'\n" -#: src/readelf.c:1598 +#: src/readelf.c:1686 msgid " Type Value\n" msgstr " Typ Wartość\n" -#: src/readelf.c:1622 +#: src/readelf.c:1710 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteka współdzielona: [%s]\n" -#: src/readelf.c:1627 +#: src/readelf.c:1715 #, c-format msgid "Library soname: [%s]\n" msgstr "soname biblioteki: [%s]\n" -#: src/readelf.c:1632 +#: src/readelf.c:1720 #, c-format msgid "Library rpath: [%s]\n" msgstr "rpath biblioteki: [%s]\n" -#: src/readelf.c:1637 +#: src/readelf.c:1725 #, c-format msgid "Library runpath: [%s]\n" msgstr "runpath biblioteki: [%s]\n" -#: src/readelf.c:1657 +#: src/readelf.c:1745 #, c-format msgid "% (bytes)\n" msgstr "% (bajtów)\n" -#: src/readelf.c:1770 src/readelf.c:1960 +#: src/readelf.c:1858 src/readelf.c:2048 #, c-format msgid "" "\n" @@ -4966,7 +5045,7 @@ msgstr "" "\n" "Nieprawidłowa tabela symboli pod offsetem %#0\n" -#: src/readelf.c:1788 src/readelf.c:1978 +#: src/readelf.c:1876 src/readelf.c:2066 #, c-format msgid "" "\n" @@ -4995,7 +5074,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:1803 src/readelf.c:1993 +#: src/readelf.c:1891 src/readelf.c:2081 #, c-format msgid "" "\n" @@ -5013,31 +5092,31 @@ msgstr[2] "" "\n" "Sekcja relokacji [%2u] „%s” pod offsetem %#0 zawiera %d wpisów:\n" -#: src/readelf.c:1813 +#: src/readelf.c:1901 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1815 +#: src/readelf.c:1903 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 -#: src/readelf.c:1913 src/readelf.c:1925 src/readelf.c:2059 -#: src/readelf.c:2071 src/readelf.c:2085 src/readelf.c:2107 -#: src/readelf.c:2120 +#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 +#: src/readelf.c:2001 src/readelf.c:2013 src/readelf.c:2147 +#: src/readelf.c:2159 src/readelf.c:2173 src/readelf.c:2195 +#: src/readelf.c:2208 msgid "" msgstr "" -#: src/readelf.c:2003 +#: src/readelf.c:2091 msgid " Offset Type Value Addend Name\n" msgstr " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:2005 +#: src/readelf.c:2093 msgid " Offset Type Value Addend Name\n" msgstr "" " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:2216 +#: src/readelf.c:2314 #, c-format msgid "" "\n" @@ -5055,7 +5134,7 @@ msgstr[2] "" "\n" "Tabela symboli [%2u] „%s” zawiera %u wpisów:\n" -#: src/readelf.c:2221 +#: src/readelf.c:2319 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -5063,33 +5142,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:2229 +#: src/readelf.c:2327 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:2231 +#: src/readelf.c:2329 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:2251 +#: src/readelf.c:2349 #, c-format msgid "%5u: %0* %6 %-7s %-6s %-9s %6s %s" msgstr "%5u: %0* %6 %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2339 +#: src/readelf.c:2437 #, c-format msgid "bad dynamic symbol" msgstr "błędny symbol dynamiczny" -#: src/readelf.c:2421 +#: src/readelf.c:2519 msgid "none" msgstr "brak" -#: src/readelf.c:2438 +#: src/readelf.c:2536 msgid "| " msgstr "| " -#: src/readelf.c:2469 +#: src/readelf.c:2567 #, c-format msgid "" "\n" @@ -5115,17 +5194,17 @@ msgstr[2] "" " Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " "„%s”\n" -#: src/readelf.c:2490 +#: src/readelf.c:2588 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n" -#: src/readelf.c:2503 +#: src/readelf.c:2601 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n" -#: src/readelf.c:2546 +#: src/readelf.c:2644 #, c-format msgid "" "\n" @@ -5151,19 +5230,19 @@ msgstr[2] "" " Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " "„%s”\n" -#: src/readelf.c:2574 +#: src/readelf.c:2672 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" " %#06x: Wersja: %hd Flagi: %s Indeks: %hd Licznik: %hd Nazwa: %s\n" -#: src/readelf.c:2589 +#: src/readelf.c:2687 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Rodzic %d: %s\n" #. Print the header. -#: src/readelf.c:2850 +#: src/readelf.c:2948 #, c-format msgid "" "\n" @@ -5186,15 +5265,15 @@ msgstr[2] "" "Sekcja symboli wersji [%2u] „%s” zawiera %d wpisów:\n" " Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] „%s”" -#: src/readelf.c:2878 +#: src/readelf.c:2976 msgid " 0 *local* " msgstr " 0 *lokalny* " -#: src/readelf.c:2883 +#: src/readelf.c:2981 msgid " 1 *global* " msgstr " 1 *globalny* " -#: src/readelf.c:2925 +#: src/readelf.c:3023 #, c-format msgid "" "\n" @@ -5225,22 +5304,22 @@ msgstr[2] "" " Adres: %#0* Offset: %#08 Dowiązanie do sekcji: [%2u] " "„%s”\n" -#: src/readelf.c:2947 +#: src/readelf.c:3045 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Długość Liczba % całości Pokrycie\n" -#: src/readelf.c:2949 +#: src/readelf.c:3047 #, c-format msgid " 0 %6 %5.1f%%\n" msgstr " 0 %6 %5.1f%%\n" -#: src/readelf.c:2956 +#: src/readelf.c:3054 #, c-format msgid "%7d %6 %5.1f%% %5.1f%%\n" msgstr "%7d %6 %5.1f%% %5.1f%%\n" -#: src/readelf.c:2969 +#: src/readelf.c:3067 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -5249,27 +5328,27 @@ msgstr "" " Średnia liczba testów: udane wyszukania: %f\n" "\t\t\t nieudane wyszukania: %f\n" -#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099 +#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197 #, c-format msgid "cannot get data for section %d: %s" msgstr "nie można uzyskać danych dla sekcji %d: %s" -#: src/readelf.c:2995 +#: src/readelf.c:3093 #, c-format msgid "invalid data in sysv.hash section %d" msgstr "nieprawidłowe dane w sekcji sysv.hash %d" -#: src/readelf.c:3050 +#: src/readelf.c:3148 #, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "nieprawidłowe dane w sekcji sysv.hash64 %d" -#: src/readelf.c:3108 +#: src/readelf.c:3206 #, c-format msgid "invalid data in gnu.hash section %d" msgstr "nieprawidłowe dane w sekcji gnu.hash %d" -#: src/readelf.c:3175 +#: src/readelf.c:3273 #, c-format msgid "" " Symbol Bias: %u\n" @@ -5279,7 +5358,7 @@ msgstr "" " Rozmiar maski bitowej: %zu bajtów %%% bitów ustawionych " "drugie przesunięcie skrótu: %u\n" -#: src/readelf.c:3250 +#: src/readelf.c:3358 #, c-format msgid "" "\n" @@ -5300,7 +5379,7 @@ msgstr[2] "" "Sekcja listy bibliotek [%2zu] „%s” pod offsetem %#0 zawiera %d " "wpisów:\n" -#: src/readelf.c:3264 +#: src/readelf.c:3372 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -5308,7 +5387,7 @@ msgstr "" " Biblioteka Oznaczenie czasu Suma k. Wersja " "Flagi" -#: src/readelf.c:3314 +#: src/readelf.c:3422 #, c-format msgid "" "\n" @@ -5319,142 +5398,142 @@ msgstr "" "Sekcja atrybutów obiektu [%2zu] „%s” % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:3331 +#: src/readelf.c:3439 msgid " Owner Size\n" msgstr " Właściciel Rozmiar\n" -#: src/readelf.c:3360 +#: src/readelf.c:3468 #, c-format msgid " %-13s %4\n" msgstr " %-13s %4\n" #. Unknown subsection, print and skip. -#: src/readelf.c:3399 +#: src/readelf.c:3507 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" #. Tag_File -#: src/readelf.c:3404 +#: src/readelf.c:3512 #, c-format msgid " File: %11\n" msgstr " Plik: %11\n" -#: src/readelf.c:3453 +#: src/readelf.c:3561 #, c-format msgid " %s: %, %s\n" msgstr " %s: %, %s\n" -#: src/readelf.c:3456 +#: src/readelf.c:3564 #, c-format msgid " %s: %\n" msgstr " %s: %\n" -#: src/readelf.c:3459 +#: src/readelf.c:3567 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3469 +#: src/readelf.c:3577 #, c-format msgid " %u: %\n" msgstr " %u: %\n" -#: src/readelf.c:3472 +#: src/readelf.c:3580 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3517 +#: src/readelf.c:3625 #, c-format msgid "%s+%# <%s+%#>" msgstr "%s+%# <%s+%#>" -#: src/readelf.c:3520 +#: src/readelf.c:3628 #, c-format msgid "%s+%#0* <%s+%#>" msgstr "%s+%#0* <%s+%#>" -#: src/readelf.c:3525 +#: src/readelf.c:3633 #, c-format msgid "%# <%s+%#>" msgstr "%# <%s+%#>" -#: src/readelf.c:3528 +#: src/readelf.c:3636 #, c-format msgid "%#0* <%s+%#>" msgstr "%#0* <%s+%#>" -#: src/readelf.c:3534 +#: src/readelf.c:3642 #, c-format msgid "%s+%# <%s>" msgstr "%s+%# <%s>" -#: src/readelf.c:3537 +#: src/readelf.c:3645 #, c-format msgid "%s+%#0* <%s>" msgstr "%s+%#0* <%s>" -#: src/readelf.c:3541 +#: src/readelf.c:3649 #, c-format msgid "%# <%s>" msgstr "%# <%s>" -#: src/readelf.c:3544 +#: src/readelf.c:3652 #, c-format msgid "%#0* <%s>" msgstr "%#0* <%s>" -#: src/readelf.c:3549 +#: src/readelf.c:3657 #, c-format msgid "%s+%#" msgstr "%s+%#" -#: src/readelf.c:3552 +#: src/readelf.c:3660 #, c-format msgid "%s+%#0*" msgstr "%s+%#0*" -#: src/readelf.c:3930 +#: src/readelf.c:4038 msgid "empty block" msgstr "pusty blok" -#: src/readelf.c:3933 +#: src/readelf.c:4041 #, c-format msgid "%zu byte block:" msgstr "%zu bajtowy blok:" -#: src/readelf.c:4330 +#: src/readelf.c:4438 #, c-format msgid "%*s[%4] %s \n" msgstr "%*s[%4] %s \n" -#: src/readelf.c:4387 +#: src/readelf.c:4495 #, c-format msgid "%s %# used with different address sizes" msgstr "%s %# zostało użyte z różnymi rozmiarami adresu" -#: src/readelf.c:4394 +#: src/readelf.c:4502 #, c-format msgid "%s %# used with different offset sizes" msgstr "%s %# zostało użyte z różnymi rozmiarami offsetu" -#: src/readelf.c:4401 +#: src/readelf.c:4509 #, c-format msgid "%s %# used with different base addresses" msgstr "%s %# zostało użyte z różnymi adresami podstawowymi" -#: src/readelf.c:4490 +#: src/readelf.c:4598 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:4498 +#: src/readelf.c:4606 #, c-format msgid " [%6tx] ... % bytes ...\n" msgstr " [%6tx] … % bajtów…\n" -#: src/readelf.c:4524 +#: src/readelf.c:4632 #, c-format msgid "" "\n" @@ -5465,7 +5544,7 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [ Kod]\n" -#: src/readelf.c:4532 +#: src/readelf.c:4640 #, c-format msgid "" "\n" @@ -5474,30 +5553,30 @@ msgstr "" "\n" "Sekcja skrótów pod offsetem %:\n" -#: src/readelf.c:4545 +#: src/readelf.c:4653 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** błąd podczas odczytywania skrótu: %s\n" -#: src/readelf.c:4561 +#: src/readelf.c:4669 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] offset: %, potomek: %s, znacznik: %s\n" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "yes" msgstr "tak" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "no" msgstr "nie" -#: src/readelf.c:4598 src/readelf.c:4671 +#: src/readelf.c:4706 src/readelf.c:4779 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "nie można uzyskać zawartości .debug_aranges: %s" -#: src/readelf.c:4613 +#: src/readelf.c:4721 #, c-format msgid "" "\n" @@ -5515,12 +5594,12 @@ msgstr[2] "" "\n" "Sekcja DWARF [%2zu] „%s” pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:4644 +#: src/readelf.c:4752 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4646 +#: src/readelf.c:4754 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" @@ -5528,9 +5607,9 @@ msgstr "" " [%*zu] początek: %0#*, długość: %5, offset CU DIE: " "%6\n" -#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 -#: src/readelf.c:6360 src/readelf.c:6892 src/readelf.c:7012 -#: src/readelf.c:7176 src/readelf.c:7601 +#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 +#: src/readelf.c:6468 src/readelf.c:7000 src/readelf.c:7120 +#: src/readelf.c:7284 src/readelf.c:7709 #, c-format msgid "" "\n" @@ -5539,7 +5618,7 @@ msgstr "" "\n" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" -#: src/readelf.c:4689 src/readelf.c:6386 +#: src/readelf.c:4797 src/readelf.c:6494 #, c-format msgid "" "\n" @@ -5548,12 +5627,12 @@ msgstr "" "\n" "Tabela pod offsetem %zu:\n" -#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397 +#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "nieprawidłowe dane w sekcji [%zu] „%s”" -#: src/readelf.c:4709 +#: src/readelf.c:4817 #, c-format msgid "" "\n" @@ -5562,32 +5641,32 @@ msgstr "" "\n" " Długość: %6\n" -#: src/readelf.c:4721 +#: src/readelf.c:4829 #, c-format msgid " DWARF version: %6\n" msgstr " Wersja DWARF: %6\n" -#: src/readelf.c:4725 +#: src/readelf.c:4833 #, c-format msgid "unsupported aranges version" msgstr "nieobsługiwana wersja aranges" -#: src/readelf.c:4736 +#: src/readelf.c:4844 #, c-format msgid " CU offset: %6\n" msgstr " Offset CU: %6\n" -#: src/readelf.c:4742 +#: src/readelf.c:4850 #, c-format msgid " Address size: %6\n" msgstr " Offset adresu: %6\n" -#: src/readelf.c:4746 +#: src/readelf.c:4854 #, c-format msgid "unsupported address size" msgstr "nieobsługiwany rozmiar adresu" -#: src/readelf.c:4751 +#: src/readelf.c:4859 #, c-format msgid "" " Segment size: %6\n" @@ -5596,68 +5675,68 @@ msgstr "" " Rozmiar segmentu: %6\n" "\n" -#: src/readelf.c:4755 +#: src/readelf.c:4863 #, c-format msgid "unsupported segment size" msgstr "nieobsługiwany rozmiar segmentu" -#: src/readelf.c:4795 +#: src/readelf.c:4903 #, c-format msgid " %s..%s (%)\n" msgstr " %s..%s (%)\n" -#: src/readelf.c:4798 +#: src/readelf.c:4906 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:4807 +#: src/readelf.c:4915 #, c-format msgid " %zu padding bytes\n" msgstr " bajty wypełnienia: %zu\n" -#: src/readelf.c:4825 +#: src/readelf.c:4933 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "nie można uzyskać zawartości .debug_ranges: %s" -#: src/readelf.c:4855 src/readelf.c:6919 +#: src/readelf.c:4963 src/readelf.c:7027 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:4877 src/readelf.c:6941 +#: src/readelf.c:4985 src/readelf.c:7049 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] adres podstawowy %s\n" -#: src/readelf.c:4884 src/readelf.c:6948 +#: src/readelf.c:4992 src/readelf.c:7056 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" #. We have an address range entry. #. First address range entry in a list. -#: src/readelf.c:4895 +#: src/readelf.c:5003 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s…%s\n" -#: src/readelf.c:4897 +#: src/readelf.c:5005 #, c-format msgid " %s..%s\n" msgstr " %s…%s\n" -#: src/readelf.c:5076 +#: src/readelf.c:5184 msgid " \n" msgstr " \n" -#: src/readelf.c:5385 +#: src/readelf.c:5493 #, c-format msgid "cannot get ELF: %s" msgstr "nie można uzyskać ELF: %s" -#: src/readelf.c:5402 +#: src/readelf.c:5510 #, c-format msgid "" "\n" @@ -5666,7 +5745,7 @@ msgstr "" "\n" "Sekcja informacji o ramce wywołania [%2zu] „%s” pod offsetem %#:\n" -#: src/readelf.c:5452 +#: src/readelf.c:5560 #, c-format msgid "" "\n" @@ -5675,50 +5754,50 @@ msgstr "" "\n" " [%6tx] Zerowy koniec\n" -#: src/readelf.c:5545 src/readelf.c:5700 +#: src/readelf.c:5653 src/readelf.c:5808 #, c-format msgid "invalid augmentation length" msgstr "nieprawidłowa długość powiększenia" -#: src/readelf.c:5560 +#: src/readelf.c:5668 msgid "FDE address encoding: " msgstr "Kodowanie adresu FDE: " -#: src/readelf.c:5566 +#: src/readelf.c:5674 msgid "LSDA pointer encoding: " msgstr "Kodowanie wskaźnika LSDA: " -#: src/readelf.c:5677 +#: src/readelf.c:5785 #, c-format msgid " (offset: %#)" msgstr " (offset: %#)" -#: src/readelf.c:5684 +#: src/readelf.c:5792 #, c-format msgid " (end offset: %#)" msgstr " (kończący offset: %#)" -#: src/readelf.c:5721 +#: src/readelf.c:5829 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sWskaźnik LSDA: %#\n" -#: src/readelf.c:5776 +#: src/readelf.c:5884 #, c-format msgid "cannot get attribute code: %s" msgstr "nie można uzyskać kodu atrybutu: %s" -#: src/readelf.c:5785 +#: src/readelf.c:5893 #, c-format msgid "cannot get attribute form: %s" msgstr "nie można uzyskać formy atrybutu: %s" -#: src/readelf.c:5800 +#: src/readelf.c:5908 #, c-format msgid "cannot get attribute value: %s" msgstr "nie można uzyskać wartości atrybutu: %s" -#: src/readelf.c:6099 +#: src/readelf.c:6207 #, c-format msgid "" "\n" @@ -5729,7 +5808,7 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " [Offset]\n" -#: src/readelf.c:6131 +#: src/readelf.c:6239 #, c-format msgid "" " Type unit at offset %:\n" @@ -5742,7 +5821,7 @@ msgstr "" "%, rozmiar offsetu: %\n" " Podpis typu: %#, offset typu: %#\n" -#: src/readelf.c:6140 +#: src/readelf.c:6248 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5753,33 +5832,33 @@ msgstr "" " Wersja: %, offset sekcji skrótów: %, rozmiar adresu: " "%, rozmiar offsetu: %\n" -#: src/readelf.c:6165 +#: src/readelf.c:6273 #, c-format msgid "cannot get DIE at offset % in section '%s': %s" msgstr "nie można uzyskać DIE pod offsetem % w sekcji „%s”: %s" -#: src/readelf.c:6179 +#: src/readelf.c:6287 #, c-format msgid "cannot get DIE offset: %s" msgstr "nie można uzyskać offsetu DIE: %s" -#: src/readelf.c:6188 +#: src/readelf.c:6296 #, c-format msgid "cannot get tag of DIE at offset % in section '%s': %s" msgstr "" "nie można uzyskać znacznika DIE pod offsetem % w sekcji „%s”: %s" -#: src/readelf.c:6220 +#: src/readelf.c:6328 #, c-format msgid "cannot get next DIE: %s\n" msgstr "nie można uzyskać następnego DIE: %s\n" -#: src/readelf.c:6228 +#: src/readelf.c:6336 #, c-format msgid "cannot get next DIE: %s" msgstr "nie można uzyskać następnego DIE: %s" -#: src/readelf.c:6264 +#: src/readelf.c:6372 #, c-format msgid "" "\n" @@ -5790,13 +5869,13 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" "\n" -#: src/readelf.c:6373 +#: src/readelf.c:6481 #, c-format msgid "cannot get line data section data: %s" msgstr "nie można uzyskać danych sekcji danych wiersza: %s" #. Print what we got so far. -#: src/readelf.c:6443 +#: src/readelf.c:6551 #, c-format msgid "" "\n" @@ -5825,12 +5904,12 @@ msgstr "" "\n" "Instrukcje:\n" -#: src/readelf.c:6464 +#: src/readelf.c:6572 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "nieprawidłowe dane pod offsetem %tu w sekcji [%zu] „%s”" -#: src/readelf.c:6479 +#: src/readelf.c:6587 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" @@ -5838,7 +5917,7 @@ msgstr[0] " [%*] %hhu parametr\n" msgstr[1] " [%*] %hhu parametry\n" msgstr[2] " [%*] %hhu parametrów\n" -#: src/readelf.c:6487 +#: src/readelf.c:6595 msgid "" "\n" "Directory table:" @@ -5846,7 +5925,7 @@ msgstr "" "\n" "Tabela katalogu:" -#: src/readelf.c:6503 +#: src/readelf.c:6611 msgid "" "\n" "File name table:\n" @@ -5856,7 +5935,7 @@ msgstr "" "Tabela nazw plików:\n" " Wpis Kat Czas Rozmiar Nazwa" -#: src/readelf.c:6538 +#: src/readelf.c:6646 msgid "" "\n" "Line number statements:" @@ -5864,119 +5943,119 @@ msgstr "" "\n" "Instrukcje numerów wierszy:" -#: src/readelf.c:6589 +#: src/readelf.c:6697 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero" -#: src/readelf.c:6625 +#: src/readelf.c:6733 #, c-format msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" msgstr "" " instrukcja specjalna %u: adres+%u = %s, op_index = %u, wiersz%+d = %zu\n" -#: src/readelf.c:6630 +#: src/readelf.c:6738 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " instrukcja specjalna %u: adres+%u = %s, wiersz%+d = %zu\n" -#: src/readelf.c:6650 +#: src/readelf.c:6758 #, c-format msgid " extended opcode %u: " msgstr " instrukcja rozszerzona %u: " -#: src/readelf.c:6655 +#: src/readelf.c:6763 msgid " end of sequence" msgstr " koniec sekwencji" -#: src/readelf.c:6674 +#: src/readelf.c:6782 #, c-format msgid " set address to %s\n" msgstr " ustawienie adresu na %s\n" -#: src/readelf.c:6701 +#: src/readelf.c:6809 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" " definicja nowego pliku: dir=%u, mtime=%, długość=%, nazwa=" "%s\n" -#: src/readelf.c:6714 +#: src/readelf.c:6822 #, c-format msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" #. Unknown, ignore it. -#: src/readelf.c:6719 +#: src/readelf.c:6827 msgid " unknown opcode" msgstr " nieznana instrukcja" #. Takes no argument. -#: src/readelf.c:6731 +#: src/readelf.c:6839 msgid " copy" msgstr " kopiowanie" -#: src/readelf.c:6742 +#: src/readelf.c:6850 #, c-format msgid " advance address by %u to %s, op_index to %u\n" msgstr " zwiększenie adresu o %u do %s, op_index do %u\n" -#: src/readelf.c:6746 +#: src/readelf.c:6854 #, c-format msgid " advance address by %u to %s\n" msgstr " zwiększenie adresu o %u do %s\n" -#: src/readelf.c:6757 +#: src/readelf.c:6865 #, c-format msgid " advance line by constant %d to %\n" msgstr " zwiększenie wiersza o stałą %d do %\n" -#: src/readelf.c:6765 +#: src/readelf.c:6873 #, c-format msgid " set file to %\n" msgstr " ustawienie pliku na %\n" -#: src/readelf.c:6775 +#: src/readelf.c:6883 #, c-format msgid " set column to %\n" msgstr " ustawienie kolumny na %\n" -#: src/readelf.c:6782 +#: src/readelf.c:6890 #, c-format msgid " set '%s' to %\n" msgstr " ustawienie „%s” na %\n" #. Takes no argument. -#: src/readelf.c:6788 +#: src/readelf.c:6896 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" -#: src/readelf.c:6801 +#: src/readelf.c:6909 #, c-format msgid " advance address by constant %u to %s, op_index to %u\n" msgstr " zwiększenie adresu o stałą %u do %s, op_index do %u\n" -#: src/readelf.c:6805 +#: src/readelf.c:6913 #, c-format msgid " advance address by constant %u to %s\n" msgstr " zwiększenie adresu o stałą %u do %s\n" -#: src/readelf.c:6823 +#: src/readelf.c:6931 #, c-format msgid " advance address by fixed value %u to %s\n" msgstr " zwiększenie adresu o stałą wartość %u do %s\n" #. Takes no argument. -#: src/readelf.c:6832 +#: src/readelf.c:6940 msgid " set prologue end flag" msgstr " ustawienie flagi końca prologu" #. Takes no argument. -#: src/readelf.c:6837 +#: src/readelf.c:6945 msgid " set epilogue begin flag" msgstr " ustawienie flagi początku epilogu" -#: src/readelf.c:6846 +#: src/readelf.c:6954 #, c-format msgid " set isa to %u\n" msgstr " ustawienie isa na %u\n" @@ -5984,7 +6063,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:6855 +#: src/readelf.c:6963 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" @@ -5992,102 +6071,102 @@ msgstr[0] " nieznana instrukcja z % parametrem:" msgstr[1] " nieznana instrukcja z % parametrami:" msgstr[2] " nieznana instrukcja z % parametrami:" -#: src/readelf.c:6887 +#: src/readelf.c:6995 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" #. First entry in a list. -#: src/readelf.c:6962 +#: src/readelf.c:7070 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s…%s" -#: src/readelf.c:6964 +#: src/readelf.c:7072 #, c-format msgid " %s..%s" msgstr " %s…%s" -#: src/readelf.c:6971 src/readelf.c:7859 +#: src/readelf.c:7079 src/readelf.c:7967 msgid " \n" msgstr " \n" -#: src/readelf.c:7023 src/readelf.c:7185 +#: src/readelf.c:7131 src/readelf.c:7293 #, c-format msgid "cannot get macro information section data: %s" msgstr "nie można uzyskać danych sekcji informacji o makrach: %s" -#: src/readelf.c:7103 +#: src/readelf.c:7211 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** niezakończony ciąg na końcu sekcji" -#: src/readelf.c:7126 +#: src/readelf.c:7234 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** brak parametru DW_MACINFO_start_file na końcu sekcji" -#: src/readelf.c:7226 +#: src/readelf.c:7334 #, c-format msgid " Offset: 0x%\n" msgstr " Offset: 0x%\n" -#: src/readelf.c:7238 +#: src/readelf.c:7346 #, c-format msgid " Version: %\n" msgstr " Wersja: %\n" -#: src/readelf.c:7244 src/readelf.c:7978 +#: src/readelf.c:7352 src/readelf.c:8086 #, c-format msgid " unknown version, cannot parse section\n" msgstr " nieznana wersja, nie można przetworzyć sekcji\n" -#: src/readelf.c:7251 +#: src/readelf.c:7359 #, c-format msgid " Flag: 0x%\n" msgstr " Flaga: 0x%\n" -#: src/readelf.c:7254 +#: src/readelf.c:7362 #, c-format msgid " Offset length: %\n" msgstr " Długość offsetu: %\n" -#: src/readelf.c:7262 +#: src/readelf.c:7370 #, c-format msgid " .debug_line offset: 0x%\n" msgstr " Offset .debug_line: 0x%\n" -#: src/readelf.c:7275 +#: src/readelf.c:7383 #, c-format msgid " extension opcode table, % items:\n" msgstr " tablica instrukcji rozszerzenia, % elementów:\n" -#: src/readelf.c:7282 +#: src/readelf.c:7390 #, c-format msgid " [%]" msgstr " [%]" -#: src/readelf.c:7294 +#: src/readelf.c:7402 #, c-format msgid " % arguments:" msgstr " Parametry %:" -#: src/readelf.c:7322 +#: src/readelf.c:7430 #, c-format msgid " no arguments." msgstr " brak parametrów." -#: src/readelf.c:7559 +#: src/readelf.c:7667 #, c-format msgid "vendor opcode not verified?" msgstr "instrukcja producenta nie została sprawdzona?" -#: src/readelf.c:7587 +#: src/readelf.c:7695 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr " [%5d] offset DIE: %6, offset CU DIE: %6, nazwa: %s\n" -#: src/readelf.c:7628 +#: src/readelf.c:7736 #, c-format msgid "" "\n" @@ -6098,12 +6177,12 @@ msgstr "" "Sekcja DWARF [%2zu] „%s” pod offsetem %#:\n" " %*s Ciąg\n" -#: src/readelf.c:7642 +#: src/readelf.c:7750 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** błąd podczas odczytywania ciągów: %s\n" -#: src/readelf.c:7662 +#: src/readelf.c:7770 #, c-format msgid "" "\n" @@ -6112,7 +6191,7 @@ msgstr "" "\n" "Sekcja tabeli wyszukiwania ramki wywołania [%2zu] „.eh_frame_hdr”:\n" -#: src/readelf.c:7764 +#: src/readelf.c:7872 #, c-format msgid "" "\n" @@ -6121,22 +6200,22 @@ msgstr "" "\n" "Sekcja tabeli obsługiwania wyjątków [%2zu] „.gcc_except_table”:\n" -#: src/readelf.c:7787 +#: src/readelf.c:7895 #, c-format msgid " LPStart encoding: %#x " msgstr " Kodowanie LPStart: %#x " -#: src/readelf.c:7799 +#: src/readelf.c:7907 #, c-format msgid " TType encoding: %#x " msgstr " Kodowanie TType: %#x " -#: src/readelf.c:7814 +#: src/readelf.c:7922 #, c-format msgid " Call site encoding: %#x " msgstr " Kodowanie strony wywołania: %#x " -#: src/readelf.c:7827 +#: src/readelf.c:7935 msgid "" "\n" " Call site table:" @@ -6144,7 +6223,7 @@ msgstr "" "\n" " Tabela strony wywołania:" -#: src/readelf.c:7841 +#: src/readelf.c:7949 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -6157,12 +6236,12 @@ msgstr "" " Lądowisko: %#\n" " Działanie: %u\n" -#: src/readelf.c:7914 +#: src/readelf.c:8022 #, c-format msgid "invalid TType encoding" msgstr "nieprawidłowe kodowanie TType" -#: src/readelf.c:7940 +#: src/readelf.c:8048 #, c-format msgid "" "\n" @@ -6171,37 +6250,37 @@ msgstr "" "\n" "Sekcja GDB [%2zu] „%s” pod offsetem %# zawiera % bajtów:\n" -#: src/readelf.c:7969 +#: src/readelf.c:8077 #, c-format msgid " Version: %\n" msgstr " Wersja: %\n" -#: src/readelf.c:7987 +#: src/readelf.c:8095 #, c-format msgid " CU offset: %#\n" msgstr " offset CU: %#\n" -#: src/readelf.c:7994 +#: src/readelf.c:8102 #, c-format msgid " TU offset: %#\n" msgstr " offset TU: %#\n" -#: src/readelf.c:8001 +#: src/readelf.c:8109 #, c-format msgid " address offset: %#\n" msgstr " offset adresu: %#\n" -#: src/readelf.c:8008 +#: src/readelf.c:8116 #, c-format msgid " symbol offset: %#\n" msgstr " offset symbolu: %#\n" -#: src/readelf.c:8015 +#: src/readelf.c:8123 #, c-format msgid " constant offset: %#\n" msgstr " offset stałej: %#\n" -#: src/readelf.c:8029 +#: src/readelf.c:8137 #, c-format msgid "" "\n" @@ -6210,7 +6289,7 @@ msgstr "" "\n" " Lista CU pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:8054 +#: src/readelf.c:8162 #, c-format msgid "" "\n" @@ -6219,7 +6298,7 @@ msgstr "" "\n" " Lista TU pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:8083 +#: src/readelf.c:8191 #, c-format msgid "" "\n" @@ -6228,7 +6307,7 @@ msgstr "" "\n" " Lista adresów pod offsetem %# zawiera %zu wpisów:\n" -#: src/readelf.c:8116 +#: src/readelf.c:8224 #, c-format msgid "" "\n" @@ -6237,18 +6316,18 @@ msgstr "" "\n" " Tabela symboli pod offsetem %# zawiera %zu gniazd:\n" -#: src/readelf.c:8203 +#: src/readelf.c:8311 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 -#: src/readelf.c:9152 +#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 +#: src/readelf.c:9258 #, c-format msgid "cannot convert core note data: %s" -msgstr "nie można przekonwertować danych notatki core: %s" +msgstr "nie można konwertować danych notatki core: %s" -#: src/readelf.c:8724 +#: src/readelf.c:8830 #, c-format msgid "" "\n" @@ -6257,21 +6336,21 @@ msgstr "" "\n" "%*s… …" -#: src/readelf.c:9231 +#: src/readelf.c:9337 msgid " Owner Data size Type\n" msgstr " Właściciel Rozmiar danych Typ\n" -#: src/readelf.c:9249 +#: src/readelf.c:9355 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:9299 +#: src/readelf.c:9405 #, c-format msgid "cannot get content of note section: %s" msgstr "nie można uzyskać zawartości sekcji notatki: %s" -#: src/readelf.c:9326 +#: src/readelf.c:9432 #, c-format msgid "" "\n" @@ -6281,7 +6360,7 @@ msgstr "" "Segment notatki [%2zu] „%s” o długości % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:9349 +#: src/readelf.c:9455 #, c-format msgid "" "\n" @@ -6290,7 +6369,7 @@ msgstr "" "\n" "Segment notatki o długości % bajtów pod offsetem %#0:\n" -#: src/readelf.c:9395 +#: src/readelf.c:9501 #, c-format msgid "" "\n" @@ -6299,12 +6378,12 @@ msgstr "" "\n" "Sekcja [%zu] „%s” nie posiada danych do zrzucenia.\n" -#: src/readelf.c:9401 src/readelf.c:9424 +#: src/readelf.c:9518 src/readelf.c:9559 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "nie można uzyskać danych dla sekcji [%zu] „%s”: %s" -#: src/readelf.c:9405 +#: src/readelf.c:9523 #, c-format msgid "" "\n" @@ -6314,7 +6393,18 @@ msgstr "" "Segment zrzutu szesnastkowego [%zu] „%s”, % bajtów pod offsetem " "%#0:\n" -#: src/readelf.c:9418 +#: src/readelf.c:9528 +#, c-format +msgid "" +"\n" +"Hex dump of section [%zu] '%s', % bytes (%zd uncompressed) at offset " +"%#0:\n" +msgstr "" +"\n" +"Zrzut szesnastkowy sekcji [%zu] „%s”, % bajtów (%zd " +"nieskompresowanych) pod offsetem %#0:\n" + +#: src/readelf.c:9542 #, c-format msgid "" "\n" @@ -6323,7 +6413,7 @@ msgstr "" "\n" "Sekcja [%zu] „%s” nie posiada ciągów do zrzucenia.\n" -#: src/readelf.c:9428 +#: src/readelf.c:9564 #, c-format msgid "" "\n" @@ -6332,7 +6422,18 @@ msgstr "" "\n" "Sekcja ciągów [%zu] „%s” zawiera % bajtów pod offsetem %#0:\n" -#: src/readelf.c:9476 +#: src/readelf.c:9569 +#, c-format +msgid "" +"\n" +"String section [%zu] '%s' contains % bytes (%zd uncompressed) at " +"offset %#0:\n" +msgstr "" +"\n" +"Sekcja ciągów [%zu] „%s” zawiera % bajtów (%zd nieskompresowanych) " +"pod offsetem %#0:\n" + +#: src/readelf.c:9618 #, c-format msgid "" "\n" @@ -6341,7 +6442,7 @@ msgstr "" "\n" "sekcja [%lu] nie istnieje" -#: src/readelf.c:9505 +#: src/readelf.c:9647 #, c-format msgid "" "\n" @@ -6350,12 +6451,12 @@ msgstr "" "\n" "sekcja „%s” nie istnieje" -#: src/readelf.c:9562 +#: src/readelf.c:9704 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "nie można uzyskać indeksu symboli archiwum „%s”: %s" -#: src/readelf.c:9565 +#: src/readelf.c:9707 #, c-format msgid "" "\n" @@ -6364,7 +6465,7 @@ msgstr "" "\n" "Archiwum „%s” nie posiada indeksu symboli\n" -#: src/readelf.c:9569 +#: src/readelf.c:9711 #, c-format msgid "" "\n" @@ -6373,12 +6474,12 @@ msgstr "" "\n" "Indeks archiwum „%s” posiada %zu wpisów:\n" -#: src/readelf.c:9587 +#: src/readelf.c:9729 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "nie można wydobyć elementów pod offsetem %zu w „%s”: %s" -#: src/readelf.c:9592 +#: src/readelf.c:9734 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Element archiwum „%s” zawiera:\n" @@ -6927,12 +7028,12 @@ msgstr "nie można utworzyć nagłówka ELF: %s" msgid "cannot copy ELF header: %s" msgstr "nie można skopiować nagłówka ELF: %s" -#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947 +#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982 #, c-format msgid "cannot get number of program headers: %s" msgstr "nie można uzyskać liczby nagłówków programu: %s" -#: src/unstrip.c:266 src/unstrip.c:1907 +#: src/unstrip.c:266 src/unstrip.c:1943 #, c-format msgid "cannot create program headers: %s" msgstr "nie można utworzyć nagłówków programu: %s" @@ -6947,12 +7048,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:285 src/unstrip.c:1541 +#: src/unstrip.c:285 src/unstrip.c:1576 #, c-format msgid "cannot get section data: %s" msgstr "nie można uzyskać danych sekcji: %s" -#: src/unstrip.c:287 src/unstrip.c:1543 +#: src/unstrip.c:287 src/unstrip.c:1578 #, c-format msgid "cannot copy section data: %s" msgstr "nie można skopiować danych sekcji: %s" @@ -6962,139 +7063,139 @@ msgstr "nie można skopiować danych sekcji: %s" msgid "cannot create directory '%s'" msgstr "nie można utworzyć katalogu „%s”" -#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575 +#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610 #, c-format msgid "cannot get symbol table entry: %s" msgstr "nie można uzyskać wpisu tabeli symboli: %s" -#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 -#: src/unstrip.c:618 src/unstrip.c:1596 src/unstrip.c:1769 -#: src/unstrip.c:1793 +#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 +#: src/unstrip.c:653 src/unstrip.c:1631 src/unstrip.c:1805 +#: src/unstrip.c:1829 #, c-format msgid "cannot update symbol table: %s" msgstr "nie można zaktualizować tabeli symboli: %s" -#: src/unstrip.c:377 +#: src/unstrip.c:409 #, c-format msgid "cannot update section header: %s" msgstr "nie można zaktualizować nagłówka sekcji: %s" -#: src/unstrip.c:416 src/unstrip.c:427 +#: src/unstrip.c:448 src/unstrip.c:459 #, c-format msgid "cannot update relocation: %s" msgstr "nie można zaktualizować relokacji: %s" -#: src/unstrip.c:514 +#: src/unstrip.c:547 #, c-format msgid "cannot get symbol version: %s" msgstr "nie można uzyskać wersji symbolu: %s" -#: src/unstrip.c:526 +#: src/unstrip.c:560 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "nieoczekiwany typ sekcji w [%zu] z sh_link do tabeli symboli" -#: src/unstrip.c:774 +#: src/unstrip.c:809 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "nieprawidłowy offset ciągu w symbolu [%zu]" -#: src/unstrip.c:932 src/unstrip.c:1278 +#: src/unstrip.c:967 src/unstrip.c:1313 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "nie można odczytać nazwy sekcji [%zu]: %s" -#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027 +#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "nie można odczytać sekcji „.gnu.prelink_undo”: %s" -#: src/unstrip.c:1013 +#: src/unstrip.c:1048 #, c-format msgid "invalid contents in '%s' section" msgstr "nieprawidłowa zawartość w sekcji „%s”" -#: src/unstrip.c:1019 +#: src/unstrip.c:1054 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "przepełnienie z shnum = %zu w sekcji „%s”" -#: src/unstrip.c:1073 src/unstrip.c:1398 +#: src/unstrip.c:1108 src/unstrip.c:1433 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "nie można odnaleźć pasującej sekcji dla [%zu] „%s”" -#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 -#: src/unstrip.c:1731 +#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 +#: src/unstrip.c:1766 #, c-format msgid "cannot add section name to string table: %s" msgstr "nie można nazwy sekcji do tabeli ciągów: %s" -#: src/unstrip.c:1222 +#: src/unstrip.c:1257 #, c-format msgid "cannot update section header string table data: %s" msgstr "nie można zaktualizować danych tabeli ciągów nagłówków sekcji: %s" -#: src/unstrip.c:1249 src/unstrip.c:1253 +#: src/unstrip.c:1284 src/unstrip.c:1288 #, c-format msgid "cannot get section header string table section index: %s" msgstr "nie można uzyskać indeksu sekcji tabeli ciągów nagłówków sekcji: %s" -#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494 +#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529 #, c-format msgid "cannot get section count: %s" msgstr "nie można uzyskać licznika sekcji: %s" -#: src/unstrip.c:1264 +#: src/unstrip.c:1299 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "więcej sekcji w okrojonym pliku niż w pliku debugowania — odwrócono " "parametry?" -#: src/unstrip.c:1323 src/unstrip.c:1413 +#: src/unstrip.c:1358 src/unstrip.c:1448 #, c-format msgid "cannot read section header string table: %s" msgstr "nie można odczytać tabeli ciągów nagłówków sekcji: %s" -#: src/unstrip.c:1473 +#: src/unstrip.c:1508 #, c-format msgid "cannot add new section: %s" msgstr "nie można dodać nowej sekcji: %s" -#: src/unstrip.c:1583 +#: src/unstrip.c:1618 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "symbol [%zu] posiada nieprawidłowy indeks sekcji" -#: src/unstrip.c:1864 +#: src/unstrip.c:1900 #, c-format msgid "cannot read section data: %s" msgstr "nie można odczytać danych sekcji: %s" -#: src/unstrip.c:1885 +#: src/unstrip.c:1921 #, c-format msgid "cannot get ELF header: %s" msgstr "nie można uzyskać nagłówka ELF: %s" -#: src/unstrip.c:1917 +#: src/unstrip.c:1953 #, c-format msgid "cannot update program header: %s" msgstr "nie można zaktualizować nagłówka programu: %s" -#: src/unstrip.c:1922 src/unstrip.c:2005 +#: src/unstrip.c:1958 src/unstrip.c:2040 #, c-format msgid "cannot write output file: %s" msgstr "nie można zapisać pliku wyjściowego: %s" -#: src/unstrip.c:1974 +#: src/unstrip.c:2009 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Dane DWARF nie zostały dostosowane do przesunięcia wczesnego konsolidowania; " "proszę rozważyć polecenie prelink -u" -#: src/unstrip.c:1977 +#: src/unstrip.c:2012 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -7102,78 +7203,78 @@ msgstr "" "Dane DWARF w „%s” nie zostały dostosowane do przesunięcia wczesnego " "konsolidowania; proszę rozważyć polecenie prelink -u" -#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 -#: src/unstrip.c:2145 +#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 +#: src/unstrip.c:2180 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" -#: src/unstrip.c:2038 +#: src/unstrip.c:2073 msgid "WARNING: " msgstr "OSTRZEŻENIE: " -#: src/unstrip.c:2040 +#: src/unstrip.c:2075 msgid ", use --force" msgstr ", należy użyć opcji --force" -#: src/unstrip.c:2063 +#: src/unstrip.c:2098 msgid "ELF header identification (e_ident) different" msgstr "Różna identyfikacja nagłówka ELF (e_ident)" -#: src/unstrip.c:2066 +#: src/unstrip.c:2101 msgid "ELF header type (e_type) different" msgstr "Różne typy nagłówka ELF (e_type)" -#: src/unstrip.c:2069 +#: src/unstrip.c:2104 msgid "ELF header machine type (e_machine) different" msgstr "Różne typy maszyny nagłówka ELF (e_machine)" -#: src/unstrip.c:2072 +#: src/unstrip.c:2107 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony" -#: src/unstrip.c:2102 +#: src/unstrip.c:2137 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "nie można odnaleźć okrojonego pliku dla modułu „%s”: %s" -#: src/unstrip.c:2106 +#: src/unstrip.c:2141 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "nie można otworzyć okrojonego pliku „%s” dla modułu „%s”: %s" -#: src/unstrip.c:2121 +#: src/unstrip.c:2156 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "nie można odnaleźć pliku debugowania dla modułu „%s”: %s" -#: src/unstrip.c:2125 +#: src/unstrip.c:2160 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "nie można otworzyć pliku debugowania „%s” dla modułu „%s”: %s" -#: src/unstrip.c:2138 +#: src/unstrip.c:2173 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "moduł „%s” pliku „%s” nie został okrojony" -#: src/unstrip.c:2169 +#: src/unstrip.c:2204 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" "nie można utworzyć pamięci podręcznej adresów sekcji dla modułu „%s”: %s" -#: src/unstrip.c:2302 +#: src/unstrip.c:2337 #, c-format msgid "no matching modules found" msgstr "nie odnaleziono pasujących modułów" -#: src/unstrip.c:2311 +#: src/unstrip.c:2346 #, c-format msgid "matched more than one module" msgstr "pasuje więcej niż jeden moduł" -#: src/unstrip.c:2355 +#: src/unstrip.c:2390 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7181,7 +7282,7 @@ msgstr "" "OKROJONY-PLIK PLIK-DEBUGOWANIA\n" "[MODUŁ…]" -#: src/unstrip.c:2356 +#: src/unstrip.c:2391 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" -- cgit v1.2.3 From dd131168e2abf2f0fc872829e1101366395cc390 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 8 Jan 2016 13:35:33 +0100 Subject: Simplify code and build now that zlib support is no longer optional. Now that we always require zlib support we don't need to conditionally build or compile code that depends on it. Signed-off-by: Mark Wielaard --- libdwfl/ChangeLog | 9 +++++++++ libdwfl/Makefile.am | 6 ++---- libdwfl/linux-kernel-modules.c | 8 -------- libdwfl/open.c | 10 ++-------- tests/ChangeLog | 5 +++++ tests/Makefile.am | 7 ++----- 6 files changed, 20 insertions(+), 25 deletions(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 7bb9b355..94c58d90 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,12 @@ +2016-01-08 Mark Wielaard + + * libdwfl_a_SOURCES: Unconditionally add gzip.c. + * linux-kernel-modules.c (vmlinux_suffixes): We always have at least + .gz support. + (try_kernel_name): Likewise. + (check_suffix): Likewise. + * open.c (decompress): Likewise. + 2015-12-18 Mark Wielaard * dwfl_module_getdwarf.c (find_symtab): Uncompress symstr, xndx, sym diff --git a/libdwfl/Makefile.am b/libdwfl/Makefile.am index 72c980bf..89ca92ed 100644 --- a/libdwfl/Makefile.am +++ b/libdwfl/Makefile.am @@ -68,11 +68,9 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_end.c dwfl_error.c dwfl_version.c \ dwfl_segment_report_module.c \ link_map.c core-file.c open.c image-header.c \ dwfl_frame.c frame_unwind.c dwfl_frame_pc.c \ - linux-pid-attach.c linux-core-attach.c dwfl_frame_regs.c + linux-pid-attach.c linux-core-attach.c dwfl_frame_regs.c \ + gzip.c -if ZLIB -libdwfl_a_SOURCES += gzip.c -endif if BZLIB libdwfl_a_SOURCES += bzip2.c endif diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index 38b5170a..79faf994 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -64,12 +64,9 @@ #define MODULE_SECT_NAME_LEN 32 /* Minimum any linux/module.h has had. */ -#if defined (USE_ZLIB) || defined (USE_BZLIB) || defined (USE_LZMA) static const char *vmlinux_suffixes[] = { -#ifdef USE_ZLIB ".gz", -#endif #ifdef USE_BZLIB ".bz2", #endif @@ -77,7 +74,6 @@ static const char *vmlinux_suffixes[] = ".xz", #endif }; -#endif /* Try to open the given file as it is or under the debuginfo directory. */ static int @@ -114,7 +110,6 @@ try_kernel_name (Dwfl *dwfl, char **fname, bool try_debug) } } -#if defined (USE_ZLIB) || defined (USE_BZLIB) || defined (USE_LZMA) if (fd < 0) for (size_t i = 0; i < sizeof vmlinux_suffixes / sizeof vmlinux_suffixes[0]; @@ -133,7 +128,6 @@ try_kernel_name (Dwfl *dwfl, char **fname, bool try_debug) } } } -#endif if (fd < 0) { @@ -303,9 +297,7 @@ check_suffix (const FTSENT *f, size_t namelen) return sizeof sfx - 1 TRY (".ko"); -#if USE_ZLIB TRY (".ko.gz"); -#endif #if USE_BZLIB TRY (".ko.bz2"); #endif diff --git a/libdwfl/open.c b/libdwfl/open.c index c1d0ed2b..92f2798b 100644 --- a/libdwfl/open.c +++ b/libdwfl/open.c @@ -1,5 +1,5 @@ -/* Decompression support for libdwfl: zlib (gzip) and/or bzlib (bzip2). - Copyright (C) 2009 Red Hat, Inc. +/* Decompression support for libdwfl: zlib (gzip), bzlib (bzip2) or lzma (xz). + Copyright (C) 2009, 2016 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -32,10 +32,6 @@ #include -#if !USE_ZLIB -# define __libdw_gunzip(...) DWFL_E_BADELF -#endif - #if !USE_BZLIB # define __libdw_bunzip2(...) DWFL_E_BADELF #endif @@ -52,7 +48,6 @@ decompress (int fd __attribute__ ((unused)), Elf **elf) void *buffer = NULL; size_t size = 0; -#if USE_ZLIB || USE_BZLIB || USE_LZMA const off_t offset = (*elf)->start_offset; void *const mapped = ((*elf)->map_address == NULL ? NULL : (*elf)->map_address + offset); @@ -65,7 +60,6 @@ decompress (int fd __attribute__ ((unused)), Elf **elf) error = __libdw_bunzip2 (fd, offset, mapped, mapped_size, &buffer, &size); if (error == DWFL_E_BADELF) error = __libdw_unlzma (fd, offset, mapped, mapped_size, &buffer, &size); -#endif if (error == DWFL_E_NOERROR) { diff --git a/tests/ChangeLog b/tests/ChangeLog index 3d912600..453c4186 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2016-01-08 Mark Wielaard + + * Makefile.am (TESTS): Always unconditionally add + run-readelf-zdebug.sh and run-readelf-zdebug-rel.sh. + 2015-12-16 Mark Wielaard * run-compress-test.sh: New test. diff --git a/tests/Makefile.am b/tests/Makefile.am index 819f2d1e..d09a6d7b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -124,7 +124,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ elfshphehdr run-lfs-symbols.sh run-dwelfgnucompressed.sh \ run-elfgetchdr.sh \ run-elfgetzdata.sh run-elfputzdata.sh run-zstrptr.sh \ - run-compress-test.sh + run-compress-test.sh \ + run-readelf-zdebug.sh run-readelf-zdebug-rel.sh if !BIARCH export ELFUTILS_DISABLE_BIARCH = 1 @@ -143,10 +144,6 @@ if LZMA TESTS += run-readelf-s.sh run-dwflsyms.sh endif -if ZLIB -TESTS += run-readelf-zdebug.sh run-readelf-zdebug-rel.sh -endif - if HAVE_LIBASM check_PROGRAMS += $(asm_TESTS) TESTS += $(asm_TESTS) -- cgit v1.2.3 From 7930054cf5628e779ceadac68cf59689ddc37cf7 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 8 Jan 2016 14:44:49 +0100 Subject: Prepare 0.165 release. Signed-off-by: Mark Wielaard --- ChangeLog | 5 + NEWS | 17 + config/ChangeLog | 4 + config/elfutils.spec.in | 27 +- configure.ac | 2 +- po/ChangeLog | 4 + po/de.po | 1506 ++++++++++++++++++++++++---------------------- po/es.po | 1514 +++++++++++++++++++++++++---------------------- po/ja.po | 1513 ++++++++++++++++++++++++---------------------- po/pl.po | 193 ++---- po/uk.po | 1512 ++++++++++++++++++++++++---------------------- 11 files changed, 3330 insertions(+), 2967 deletions(-) diff --git a/ChangeLog b/ChangeLog index 21862ccd..637bc130 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-01-08 Mark Wielaard + + * configure.ac: Set version to 0.165. + * NEWS: Add 0.164 section. + 2016-01-04 Mark Wielaard * configure.ac: Add BZ2_LIBS and LIBLZMA substitutions. diff --git a/NEWS b/NEWS index 6416a727..53fe3647 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,20 @@ +Version 0.165 + +elfcompress: New utility to compress or decompress ELF sections. + +readelf: Add -z,--decompress option. + +libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, elf64_getchdr + and gelf_getchdr. + +libdwelf: New function dwelf_scn_gnu_compressed_size. + +config: Add libelf and libdw pkg-config files. + +backends: sparc support for core and live backtraces. + +translations: Updated Polish translation. + Version 0.164 strip, unstrip: Handle ELF files with merged strtab/shstrtab tables. diff --git a/config/ChangeLog b/config/ChangeLog index baa43030..8e20f1e6 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2016-01-08 Mark Wielaard + + * elfutils.spec.in: Add elfcompress. Update for 0.165. + 2016-01-04 Mark Wielaard * libelf.pc.in: New file. diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 40b08bf1..693c2628 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -31,13 +31,15 @@ BuildRequires: gcc-c++ %define _programprefix eu- %description -Elfutils is a collection of utilities, including ld (a linker), -nm (for listing symbols from object files), size (for listing the -section sizes of an object or archive file), strip (for discarding -symbols), readelf (to see the raw ELF file structures), and elflint -(to check for well-formed ELF files). Also included are numerous -helper libraries which implement DWARF, ELF, and machine-specific ELF -handling. + +Elfutils is a collection of utilities, including stack (to show +backtraces), nm (for listing symbols from object files), size +(for listing the section sizes of an object or archive file), +strip (for discarding symbols), readelf (to see the raw ELF file +structures), elflint (to check for well-formed ELF files) and +elfcompress (to compress or decompress ELF sections). +Also included are helper libraries which implement DWARF, ELF, +and machine-specific ELF handling and process introspection. %package devel Summary: Development libraries to handle compiled objects. @@ -175,6 +177,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_bindir}/eu-unstrip %{_bindir}/eu-make-debug-archive #%{_bindir}/eu-ld +%{_bindir}/eu-elfcompress %{_libdir}/libasm-%{version}.so %{_libdir}/libdw-%{version}.so %{_libdir}/libasm.so.* @@ -225,6 +228,16 @@ rm -rf ${RPM_BUILD_ROOT} %config(noreplace) %{_sysctldir}/10-default-yama-scope.conf %changelog +* Fri Jan 8 2016 Mark Wielaard 0.165-1 +- elfcompress: New utility to compress or decompress ELF sections. +- readelf: Add -z,--decompress option. +- libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, + elf64_getchdr and gelf_getchdr. +- libdwelf: New function dwelf_scn_gnu_compressed_size. +- config: Add libelf and libdw pkg-config files. +- backends: sparc support for core and live backtraces. +- translations: Updated Polish translation. + * Thu Oct 15 2015 Mark Wielaard 0.164-1 - strip, unstrip: Handle ELF files with merged strtab/shstrtab tables. Handle missing SHF_INFO_LINK section flags. diff --git a/configure.ac b/configure.ac index bc50e31a..67062cea 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 . -AC_INIT([elfutils],[0.164],[https://bugzilla.redhat.com/],[elfutils]) +AC_INIT([elfutils],[0.165],[https://bugzilla.redhat.com/],[elfutils]) AC_CONFIG_AUX_DIR([config]) AC_CONFIG_FILES([config/Makefile]) diff --git a/po/ChangeLog b/po/ChangeLog index 10820152..6699fad4 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +2016-01-08 Mark Wielaard + + * *.po: Update for 0.165. + 2015-10-16 Mark Wielaard * *.po: Regenerate. diff --git a/po/de.po b/po/de.po index 10feb6f6..0ee0ca8c 100644 --- a/po/de.po +++ b/po/de.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils VERSION\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2015-10-16 13:26+0200\n" +"POT-Creation-Date: 2016-01-08 14:06+0100\n" "PO-Revision-Date: 2009-06-29 15:15+0200\n" "Last-Translator: Michael Münch \n" "Language-Team: German\n" @@ -42,8 +42,8 @@ msgstr "" msgid "cannot allocate memory" msgstr "konnte Verzeichnis nicht erstellen: %s" -#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184 -#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403 +#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282 +#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438 #, c-format msgid "memory exhausted" msgstr "Kein Speicher mehr verfügbar" @@ -247,7 +247,7 @@ msgstr "ungültiger Operand" msgid "not a CU (unit) DIE" msgstr "" -#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345 +#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380 msgid "Input selection options:" msgstr "Eingabeauswahloptionen:" @@ -302,7 +302,12 @@ msgstr "Konnte Kernel oder Module nicht finden" msgid "cannot read ELF core file: %s" msgstr "Konnte ELF Kerndatei %s nicht lesen" -#: libdwfl/argp-std.c:311 +#: libdwfl/argp-std.c:313 +#, fuzzy +msgid "Not enough memory" +msgstr "nicht genügend Speicher" + +#: libdwfl/argp-std.c:323 msgid "No modules recognized in core file" msgstr "Keine Module in der Kerndatei gefunden" @@ -569,7 +574,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:5365 +#: libelf/elf_error.c:87 src/readelf.c:5473 #, c-format msgid "invalid encoding" msgstr "ungültige Kodierung" @@ -652,8 +657,8 @@ msgstr "data/scn Unterschied" msgid "invalid section header" msgstr "ungültiger Abschnitts-Header" -#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682 -#: src/readelf.c:7783 src/readelf.c:7964 +#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790 +#: src/readelf.c:7891 src/readelf.c:8072 #, c-format msgid "invalid data" msgstr "Ungültige Daten" @@ -695,6 +700,39 @@ msgstr "" msgid "file has no program header" msgstr "Datei hat keinen Programm-Kopf" +#: libelf/elf_error.c:237 +#, fuzzy +msgid "invalid section type" +msgstr "ungültiger Abschnitt" + +#: libelf/elf_error.c:242 +#, fuzzy +msgid "invalid section flags" +msgstr "ungültiger Abschnitt" + +#: libelf/elf_error.c:247 +msgid "section does not contain compressed data" +msgstr "" + +#: libelf/elf_error.c:252 +msgid "section contains compressed data" +msgstr "" + +#: libelf/elf_error.c:257 +#, fuzzy +msgid "unknown compression type" +msgstr "unbekannter Typ" + +#: libelf/elf_error.c:262 +#, fuzzy +msgid "cannot compress data" +msgstr "konnte Abschnittsdaten nicht kopieren: %s" + +#: libelf/elf_error.c:267 +#, fuzzy +msgid "cannot decompress data" +msgstr "konnte Abschnittsdaten nicht kopieren: %s" + #: src/addr2line.c:58 #, fuzzy msgid "Input format options:" @@ -751,7 +789,7 @@ msgstr "" msgid "Print all information on one line, and indent inlines" msgstr "" -#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99 +#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100 #: src/strings.c:79 msgid "Miscellaneous:" msgstr "Verschiedenes:" @@ -765,9 +803,9 @@ msgstr "" msgid "[ADDR...]" msgstr "" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235 -#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177 -#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235 +#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177 +#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -780,9 +818,9 @@ msgstr "" "GARANTIE,\n" "auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240 -#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182 -#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240 +#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182 +#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -1253,40 +1291,40 @@ msgstr "" msgid "%s %s differ: gap" msgstr "" -#: src/elfcmp.c:702 +#: src/elfcmp.c:704 #, c-format msgid "Invalid value '%s' for --gaps parameter." msgstr "" -#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289 -#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994 -#: src/unstrip.c:2023 +#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757 +#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289 +#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029 +#: src/unstrip.c:2058 #, c-format msgid "cannot open '%s'" msgstr "'%s' kann nicht geöffnet werden" -#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174 +#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174 #, c-format msgid "cannot create ELF descriptor for '%s': %s" msgstr "" -#: src/elfcmp.c:739 +#: src/elfcmp.c:741 #, c-format msgid "cannot create EBL descriptor for '%s'" msgstr "" -#: src/elfcmp.c:757 src/findtextrel.c:409 +#: src/elfcmp.c:759 src/findtextrel.c:409 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "" -#: src/elfcmp.c:767 +#: src/elfcmp.c:769 #, c-format msgid "cannot get content of section %zu: %s" msgstr "" -#: src/elfcmp.c:777 src/elfcmp.c:791 +#: src/elfcmp.c:779 src/elfcmp.c:793 #, c-format msgid "cannot get relocation: %s" msgstr "" @@ -1313,11 +1351,11 @@ msgstr "" msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" -#: src/elflint.c:78 src/readelf.c:123 +#: src/elflint.c:78 src/readelf.c:126 msgid "FILE..." msgstr "DATEI..." -#: src/elflint.c:155 src/readelf.c:292 +#: src/elflint.c:155 src/readelf.c:298 #, c-format msgid "cannot open input file" msgstr "Kann Eingabedatei nicht öffnen" @@ -1336,7 +1374,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" msgid "No errors" msgstr "Keine Fehler" -#: src/elflint.c:219 src/readelf.c:468 +#: src/elflint.c:219 src/readelf.c:474 msgid "Missing file name.\n" msgstr "Dateiname fehlt.\n" @@ -1478,14 +1516,14 @@ msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" msgstr "" -#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628 -#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056 -#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336 +#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632 +#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061 +#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "" -#: src/elflint.c:604 src/elflint.c:1635 +#: src/elflint.c:604 src/elflint.c:1639 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1581,1426 +1619,1442 @@ msgid "" "section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n" msgstr "" -#: src/elflint.c:805 +#: src/elflint.c:809 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" msgstr "" -#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885 +#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889 #, c-format msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:820 +#: src/elflint.c:824 #, c-format msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " "SHF_TLS flag set\n" msgstr "" -#: src/elflint.c:830 src/elflint.c:878 +#: src/elflint.c:834 src/elflint.c:882 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:857 +#: src/elflint.c:861 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" msgstr "" -#: src/elflint.c:863 +#: src/elflint.c:867 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program " "header entry\n" msgstr "" -#: src/elflint.c:871 +#: src/elflint.c:875 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] " "'%s'\n" msgstr "" -#: src/elflint.c:898 +#: src/elflint.c:902 #, c-format msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " "sh_info\n" msgstr "" -#: src/elflint.c:905 +#: src/elflint.c:909 #, c-format msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " "sh_info\n" msgstr "" -#: src/elflint.c:912 +#: src/elflint.c:916 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" msgstr "" -#: src/elflint.c:962 +#: src/elflint.c:966 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " "[%2d]\n" msgstr "" -#: src/elflint.c:969 +#: src/elflint.c:973 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " "'%s'\n" msgstr "" -#: src/elflint.c:985 +#: src/elflint.c:989 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %# does not " "match %s section address %#\n" msgstr "" -#: src/elflint.c:992 +#: src/elflint.c:996 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size % does not " "match %s section size %\n" msgstr "" -#: src/elflint.c:1000 +#: src/elflint.c:1004 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " "section\n" msgstr "" -#: src/elflint.c:1016 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %# does not match dynamic " "segment address %#\n" msgstr "" -#: src/elflint.c:1023 +#: src/elflint.c:1027 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size % does not match dynamic " "segment size %\n" msgstr "" -#: src/elflint.c:1036 +#: src/elflint.c:1040 #, c-format msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" "default visibility\n" msgstr "" -#: src/elflint.c:1040 +#: src/elflint.c:1044 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" msgstr "" -#: src/elflint.c:1078 +#: src/elflint.c:1082 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:1094 +#: src/elflint.c:1098 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "" -#: src/elflint.c:1105 src/elflint.c:1158 +#: src/elflint.c:1109 src/elflint.c:1162 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" -#: src/elflint.c:1130 src/elflint.c:1183 +#: src/elflint.c:1134 src/elflint.c:1187 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " "DT_RELCOUNT\n" msgstr "" -#: src/elflint.c:1136 src/elflint.c:1189 +#: src/elflint.c:1140 src/elflint.c:1193 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " "specified %d relative relocations\n" msgstr "" -#: src/elflint.c:1148 +#: src/elflint.c:1152 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "" -#: src/elflint.c:1231 +#: src/elflint.c:1235 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "" -#: src/elflint.c:1243 +#: src/elflint.c:1247 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "" -#: src/elflint.c:1251 +#: src/elflint.c:1255 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "" -#: src/elflint.c:1259 +#: src/elflint.c:1263 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:1267 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" msgstr "" -#: src/elflint.c:1327 +#: src/elflint.c:1331 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" -#: src/elflint.c:1354 +#: src/elflint.c:1358 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "" -#: src/elflint.c:1362 +#: src/elflint.c:1366 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " "type\n" msgstr "" -#: src/elflint.c:1370 +#: src/elflint.c:1374 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "" -#: src/elflint.c:1388 +#: src/elflint.c:1392 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " "be used with %s\n" msgstr "" -#: src/elflint.c:1405 +#: src/elflint.c:1409 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "" -#: src/elflint.c:1420 +#: src/elflint.c:1424 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " "%s\n" msgstr "" -#: src/elflint.c:1441 +#: src/elflint.c:1445 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " "relocation flag not set\n" msgstr "" -#: src/elflint.c:1456 +#: src/elflint.c:1460 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" -#: src/elflint.c:1496 src/elflint.c:1547 +#: src/elflint.c:1500 src/elflint.c:1551 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "" -#: src/elflint.c:1623 +#: src/elflint.c:1627 #, c-format msgid "more than one dynamic section present\n" msgstr "" -#: src/elflint.c:1641 +#: src/elflint.c:1645 #, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " "link value is invalid\n" msgstr "" -#: src/elflint.c:1649 +#: src/elflint.c:1653 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" -#: src/elflint.c:1654 src/elflint.c:1943 +#: src/elflint.c:1658 src/elflint.c:1947 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "" -#: src/elflint.c:1664 +#: src/elflint.c:1668 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" -#: src/elflint.c:1672 +#: src/elflint.c:1676 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "" -#: src/elflint.c:1679 +#: src/elflint.c:1683 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "" -#: src/elflint.c:1690 +#: src/elflint.c:1694 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "" -#: src/elflint.c:1700 +#: src/elflint.c:1704 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "" -#: src/elflint.c:1718 +#: src/elflint.c:1722 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" msgstr "" -#: src/elflint.c:1731 +#: src/elflint.c:1735 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " "[%2d] '%s' referenced by sh_link\n" msgstr "" -#: src/elflint.c:1774 +#: src/elflint.c:1778 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" -#: src/elflint.c:1789 +#: src/elflint.c:1793 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:1809 src/elflint.c:1837 +#: src/elflint.c:1813 src/elflint.c:1841 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "" -#: src/elflint.c:1821 +#: src/elflint.c:1825 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "" -#: src/elflint.c:1830 +#: src/elflint.c:1834 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "" -#: src/elflint.c:1845 src/elflint.c:1852 +#: src/elflint.c:1849 src/elflint.c:1856 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "" -#: src/elflint.c:1862 src/elflint.c:1866 +#: src/elflint.c:1866 src/elflint.c:1870 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" -#: src/elflint.c:1872 +#: src/elflint.c:1876 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" -#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 +#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" -#: src/elflint.c:1907 +#: src/elflint.c:1911 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" msgstr "" -#: src/elflint.c:1917 +#: src/elflint.c:1921 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" -#: src/elflint.c:1921 +#: src/elflint.c:1925 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" -#: src/elflint.c:1926 +#: src/elflint.c:1930 #, c-format msgid "cannot get data for symbol section\n" msgstr "" -#: src/elflint.c:1929 +#: src/elflint.c:1933 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "" -#: src/elflint.c:1938 +#: src/elflint.c:1942 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" -#: src/elflint.c:1953 +#: src/elflint.c:1957 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " "same symbol table\n" msgstr "" -#: src/elflint.c:1970 +#: src/elflint.c:1974 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "" -#: src/elflint.c:1982 +#: src/elflint.c:1986 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "" -#: src/elflint.c:1987 +#: src/elflint.c:1991 #, c-format msgid "extended section index is % but symbol index is not XINDEX\n" msgstr "" -#: src/elflint.c:2003 src/elflint.c:2054 +#: src/elflint.c:2007 src/elflint.c:2058 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" msgstr "" -#: src/elflint.c:2015 src/elflint.c:2066 +#: src/elflint.c:2019 src/elflint.c:2070 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "" -#: src/elflint.c:2029 src/elflint.c:2080 +#: src/elflint.c:2033 src/elflint.c:2084 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2039 +#: src/elflint.c:2043 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2090 +#: src/elflint.c:2094 #, c-format msgid "section [%2d] '%s': hash chain reference % out of bounds\n" msgstr "" -#: src/elflint.c:2103 +#: src/elflint.c:2107 #, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "" -#: src/elflint.c:2115 +#: src/elflint.c:2119 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" -#: src/elflint.c:2131 +#: src/elflint.c:2135 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " "least %ld)\n" msgstr "" -#: src/elflint.c:2140 +#: src/elflint.c:2144 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" -#: src/elflint.c:2174 +#: src/elflint.c:2178 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" msgstr "" -#: src/elflint.c:2195 +#: src/elflint.c:2199 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " "undefined\n" msgstr "" -#: src/elflint.c:2208 +#: src/elflint.c:2212 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" msgstr "" -#: src/elflint.c:2217 +#: src/elflint.c:2221 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" msgstr "" -#: src/elflint.c:2247 +#: src/elflint.c:2251 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2252 +#: src/elflint.c:2256 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2258 +#: src/elflint.c:2262 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" -#: src/elflint.c:2271 +#: src/elflint.c:2275 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" -#: src/elflint.c:2289 +#: src/elflint.c:2293 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" -#: src/elflint.c:2293 +#: src/elflint.c:2297 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" -#: src/elflint.c:2301 +#: src/elflint.c:2305 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "" -#: src/elflint.c:2306 +#: src/elflint.c:2310 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "" -#: src/elflint.c:2311 +#: src/elflint.c:2315 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " "entries\n" msgstr "" -#: src/elflint.c:2360 +#: src/elflint.c:2364 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" -#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484 +#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "" -#: src/elflint.c:2405 +#: src/elflint.c:2409 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "" -#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497 +#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "" -#: src/elflint.c:2431 +#: src/elflint.c:2435 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index % (max_nsyms: " "%, nentries: %\n" msgstr "" -#: src/elflint.c:2518 +#: src/elflint.c:2522 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "" -#: src/elflint.c:2528 src/elflint.c:2532 +#: src/elflint.c:2532 src/elflint.c:2536 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "" -#: src/elflint.c:2539 +#: src/elflint.c:2543 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2551 +#: src/elflint.c:2555 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2567 +#: src/elflint.c:2571 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "" -#: src/elflint.c:2587 +#: src/elflint.c:2591 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" msgstr "" -#: src/elflint.c:2598 +#: src/elflint.c:2602 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "" -#: src/elflint.c:2603 +#: src/elflint.c:2607 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" -#: src/elflint.c:2609 +#: src/elflint.c:2613 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "" -#: src/elflint.c:2614 +#: src/elflint.c:2618 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "" -#: src/elflint.c:2621 +#: src/elflint.c:2625 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "" -#: src/elflint.c:2625 +#: src/elflint.c:2629 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "" -#: src/elflint.c:2630 +#: src/elflint.c:2634 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "" -#: src/elflint.c:2636 +#: src/elflint.c:2640 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "" -#: src/elflint.c:2642 +#: src/elflint.c:2646 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "" -#: src/elflint.c:2651 +#: src/elflint.c:2655 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" -#: src/elflint.c:2656 +#: src/elflint.c:2660 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "" -#: src/elflint.c:2662 +#: src/elflint.c:2666 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "" -#: src/elflint.c:2666 +#: src/elflint.c:2670 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "" -#: src/elflint.c:2677 +#: src/elflint.c:2681 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "" -#: src/elflint.c:2689 +#: src/elflint.c:2693 #, fuzzy, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/elflint.c:2698 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" -#: src/elflint.c:2705 +#: src/elflint.c:2709 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "" -#: src/elflint.c:2711 +#: src/elflint.c:2715 #, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " "SHF_GROUP flag set\n" msgstr "" -#: src/elflint.c:2718 +#: src/elflint.c:2722 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "" -#: src/elflint.c:2907 +#: src/elflint.c:2912 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " "dynamic symbol table\n" msgstr "" -#: src/elflint.c:2919 +#: src/elflint.c:2924 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " "'%s'\n" msgstr "" -#: src/elflint.c:2935 +#: src/elflint.c:2940 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "" -#: src/elflint.c:2951 +#: src/elflint.c:2956 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" -#: src/elflint.c:2959 +#: src/elflint.c:2964 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "" -#: src/elflint.c:2973 +#: src/elflint.c:2978 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "" -#: src/elflint.c:2978 +#: src/elflint.c:2983 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" -#: src/elflint.c:2988 +#: src/elflint.c:2993 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" -#: src/elflint.c:3041 +#: src/elflint.c:3046 #, c-format msgid "more than one version reference section present\n" msgstr "" -#: src/elflint.c:3049 src/elflint.c:3196 +#: src/elflint.c:3054 src/elflint.c:3201 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "" -#: src/elflint.c:3074 src/elflint.c:3250 +#: src/elflint.c:3079 src/elflint.c:3255 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "" -#: src/elflint.c:3081 src/elflint.c:3257 +#: src/elflint.c:3086 src/elflint.c:3262 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" -#: src/elflint.c:3091 +#: src/elflint.c:3096 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "" -#: src/elflint.c:3099 +#: src/elflint.c:3104 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "" -#: src/elflint.c:3111 +#: src/elflint.c:3116 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3119 +#: src/elflint.c:3124 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " "reference\n" msgstr "" -#: src/elflint.c:3128 +#: src/elflint.c:3133 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " "%#x, expected %#x\n" msgstr "" -#: src/elflint.c:3137 +#: src/elflint.c:3142 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " "name '%s'\n" msgstr "" -#: src/elflint.c:3148 +#: src/elflint.c:3153 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" -#: src/elflint.c:3165 src/elflint.c:3341 +#: src/elflint.c:3170 src/elflint.c:3346 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" -#: src/elflint.c:3173 src/elflint.c:3349 +#: src/elflint.c:3178 src/elflint.c:3354 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " "there are more entries\n" msgstr "" -#: src/elflint.c:3188 +#: src/elflint.c:3193 #, c-format msgid "more than one version definition section present\n" msgstr "" -#: src/elflint.c:3235 +#: src/elflint.c:3240 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "" -#: src/elflint.c:3239 +#: src/elflint.c:3244 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" -#: src/elflint.c:3245 +#: src/elflint.c:3250 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3272 +#: src/elflint.c:3277 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "" -#: src/elflint.c:3279 +#: src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" -#: src/elflint.c:3287 +#: src/elflint.c:3292 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "" -#: src/elflint.c:3307 +#: src/elflint.c:3312 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" msgstr "" -#: src/elflint.c:3324 +#: src/elflint.c:3329 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" -#: src/elflint.c:3357 +#: src/elflint.c:3362 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "" -#: src/elflint.c:3373 +#: src/elflint.c:3378 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "" -#: src/elflint.c:3386 +#: src/elflint.c:3391 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "" -#: src/elflint.c:3407 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "" -#: src/elflint.c:3423 +#: src/elflint.c:3428 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" -#: src/elflint.c:3432 +#: src/elflint.c:3437 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" -#: src/elflint.c:3444 +#: src/elflint.c:3449 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" -#: src/elflint.c:3461 +#: src/elflint.c:3466 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" msgstr "" -#: src/elflint.c:3470 +#: src/elflint.c:3475 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "" -#: src/elflint.c:3479 +#: src/elflint.c:3484 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" -#: src/elflint.c:3494 +#: src/elflint.c:3499 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" msgstr "" -#: src/elflint.c:3505 +#: src/elflint.c:3510 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" msgstr "" -#: src/elflint.c:3523 +#: src/elflint.c:3528 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" -#: src/elflint.c:3534 +#: src/elflint.c:3539 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "" -#: src/elflint.c:3547 +#: src/elflint.c:3552 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "" -#: src/elflint.c:3551 +#: src/elflint.c:3556 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %\n" msgstr "" -#: src/elflint.c:3561 +#: src/elflint.c:3566 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "" -#: src/elflint.c:3567 +#: src/elflint.c:3572 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -#: src/elflint.c:3656 +#: src/elflint.c:3661 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "" -#: src/elflint.c:3660 +#: src/elflint.c:3665 #, c-format msgid "zeroth section has nonzero name\n" msgstr "" -#: src/elflint.c:3662 +#: src/elflint.c:3667 #, c-format msgid "zeroth section has nonzero type\n" msgstr "" -#: src/elflint.c:3664 +#: src/elflint.c:3669 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "" -#: src/elflint.c:3666 +#: src/elflint.c:3671 #, c-format msgid "zeroth section has nonzero address\n" msgstr "" -#: src/elflint.c:3668 +#: src/elflint.c:3673 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "" -#: src/elflint.c:3670 +#: src/elflint.c:3675 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "" -#: src/elflint.c:3672 +#: src/elflint.c:3677 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "" -#: src/elflint.c:3675 +#: src/elflint.c:3680 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " "value\n" msgstr "" -#: src/elflint.c:3679 +#: src/elflint.c:3684 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in shstrndx\n" msgstr "" -#: src/elflint.c:3683 +#: src/elflint.c:3688 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in phnum\n" msgstr "" -#: src/elflint.c:3700 +#: src/elflint.c:3706 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "" -#: src/elflint.c:3709 +#: src/elflint.c:3715 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "" -#: src/elflint.c:3736 +#: src/elflint.c:3742 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3752 +#: src/elflint.c:3760 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3769 +#: src/elflint.c:3778 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -#: src/elflint.c:3787 +#: src/elflint.c:3796 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "" -#: src/elflint.c:3793 src/elflint.c:3825 +#: src/elflint.c:3802 src/elflint.c:3834 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -#: src/elflint.c:3798 src/elflint.c:3830 +#: src/elflint.c:3807 src/elflint.c:3839 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -#: src/elflint.c:3806 +#: src/elflint.c:3815 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -#: src/elflint.c:3849 +#: src/elflint.c:3858 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "" -#: src/elflint.c:3854 +#: src/elflint.c:3863 #, c-format msgid "cannot get section header\n" msgstr "" -#: src/elflint.c:3864 +#: src/elflint.c:3873 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "" -#: src/elflint.c:3878 +#: src/elflint.c:3888 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" msgstr "" -#: src/elflint.c:3885 +#: src/elflint.c:3895 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "" -#: src/elflint.c:3893 +#: src/elflint.c:3903 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -#: src/elflint.c:3901 +#: src/elflint.c:3913 +#, fuzzy, c-format +msgid "section [%2zu] '%s': allocated section cannot be compressed\n" +msgstr "konnte Abschnittsdaten nicht holen: %s" + +#: src/elflint.c:3918 +#, fuzzy, c-format +msgid "section [%2zu] '%s': nobits section cannot be compressed\n" +msgstr "konnte Abschnittsdaten nicht holen: %s" + +#: src/elflint.c:3924 +#, c-format +msgid "" +"section [%2zu] '%s': compressed section with no compression header: %s\n" +msgstr "" + +#: src/elflint.c:3930 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -#: src/elflint.c:3906 +#: src/elflint.c:3935 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -#: src/elflint.c:3913 +#: src/elflint.c:3942 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" -#: src/elflint.c:3918 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -#: src/elflint.c:3936 +#: src/elflint.c:3965 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -#: src/elflint.c:3945 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "" -#: src/elflint.c:3952 +#: src/elflint.c:3981 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "" -#: src/elflint.c:3982 +#: src/elflint.c:4012 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -#: src/elflint.c:3992 +#: src/elflint.c:4022 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -#: src/elflint.c:4018 +#: src/elflint.c:4048 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -#: src/elflint.c:4029 +#: src/elflint.c:4059 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -#: src/elflint.c:4040 +#: src/elflint.c:4070 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -#: src/elflint.c:4050 +#: src/elflint.c:4080 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" -#: src/elflint.c:4060 +#: src/elflint.c:4090 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -#: src/elflint.c:4066 +#: src/elflint.c:4096 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -#: src/elflint.c:4074 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -#: src/elflint.c:4125 +#: src/elflint.c:4155 #, c-format msgid "more than one version symbol table present\n" msgstr "" -#: src/elflint.c:4148 +#: src/elflint.c:4178 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" -#: src/elflint.c:4159 +#: src/elflint.c:4189 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" -#: src/elflint.c:4165 +#: src/elflint.c:4195 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" -#: src/elflint.c:4176 +#: src/elflint.c:4206 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " "exist\n" msgstr "" -#: src/elflint.c:4189 +#: src/elflint.c:4219 #, c-format msgid "duplicate version index %d\n" msgstr "" -#: src/elflint.c:4203 +#: src/elflint.c:4233 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" -#: src/elflint.c:4252 +#: src/elflint.c:4282 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" -#: src/elflint.c:4256 +#: src/elflint.c:4286 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4279 +#: src/elflint.c:4309 #, c-format msgid "phdr[%d]: unknown object file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4283 +#: src/elflint.c:4313 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4300 +#: src/elflint.c:4330 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4319 +#: src/elflint.c:4349 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4322 +#: src/elflint.c:4352 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4343 +#: src/elflint.c:4373 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4350 +#: src/elflint.c:4380 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4353 +#: src/elflint.c:4383 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4371 +#: src/elflint.c:4401 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4386 +#: src/elflint.c:4416 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4395 +#: src/elflint.c:4425 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" -#: src/elflint.c:4406 +#: src/elflint.c:4436 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4414 +#: src/elflint.c:4444 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4421 +#: src/elflint.c:4451 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4435 +#: src/elflint.c:4465 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4438 +#: src/elflint.c:4468 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4448 +#: src/elflint.c:4478 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4469 +#: src/elflint.c:4499 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4480 +#: src/elflint.c:4510 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4487 +#: src/elflint.c:4517 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4496 src/elflint.c:4519 +#: src/elflint.c:4526 src/elflint.c:4549 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4525 +#: src/elflint.c:4555 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4550 +#: src/elflint.c:4580 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4553 +#: src/elflint.c:4583 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4566 +#: src/elflint.c:4596 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4574 +#: src/elflint.c:4604 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4577 +#: src/elflint.c:4607 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4581 +#: src/elflint.c:4611 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4584 +#: src/elflint.c:4614 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4589 +#: src/elflint.c:4619 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4592 +#: src/elflint.c:4622 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4603 +#: src/elflint.c:4633 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4610 +#: src/elflint.c:4640 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4613 +#: src/elflint.c:4643 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4626 +#: src/elflint.c:4656 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " "program header entry" msgstr "" -#: src/elflint.c:4660 +#: src/elflint.c:4690 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4686 +#: src/elflint.c:4716 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3021,7 +3075,7 @@ msgstr "" msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "" -#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83 +#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" msgstr "" @@ -3508,8 +3562,8 @@ msgstr "" msgid "Warning: size of `%s' changed from % in %s to % in %s" msgstr "" -#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527 -#: src/readelf.c:829 src/strip.c:589 +#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852 +#: src/strip.c:589 #, c-format msgid "cannot determine number of sections: %s" msgstr "" @@ -3740,7 +3794,7 @@ msgstr "" msgid "cannot get header of 0th section: %s" msgstr "" -#: src/ldgeneric.c:6930 src/unstrip.c:1893 +#: src/ldgeneric.c:6930 src/unstrip.c:1929 #, c-format msgid "cannot update ELF header: %s" msgstr "" @@ -3806,44 +3860,44 @@ msgstr "" msgid "default visibility set as local and global" msgstr "Standard-Sichtbarkeit auf lokal und global gesetzt" -#: src/nm.c:65 src/strip.c:67 +#: src/nm.c:66 src/strip.c:67 msgid "Output selection:" msgstr "" -#: src/nm.c:66 +#: src/nm.c:67 msgid "Display debugger-only symbols" msgstr "" -#: src/nm.c:67 +#: src/nm.c:68 msgid "Display only defined symbols" msgstr "Zeige nur definierte Symbole" -#: src/nm.c:70 +#: src/nm.c:71 msgid "Display dynamic symbols instead of normal symbols" msgstr "Zeige dynamische Symbole anstelle normaler Symbole" -#: src/nm.c:71 +#: src/nm.c:72 msgid "Display only external symbols" msgstr "Zeige nur externe Symbole" -#: src/nm.c:72 +#: src/nm.c:73 msgid "Display only undefined symbols" msgstr "Zeige nur undefinierte Symbole" -#: src/nm.c:74 +#: src/nm.c:75 msgid "Include index for symbols from archive members" msgstr "" -#: src/nm.c:76 src/size.c:57 +#: src/nm.c:77 src/size.c:57 msgid "Output format:" msgstr "Ausgabeformat:" -#: src/nm.c:78 +#: src/nm.c:79 #, fuzzy msgid "Print name of the input file before every symbol" msgstr "Zeige Name der Eingabedatei vor jedem Symbol" -#: src/nm.c:81 +#: src/nm.c:82 msgid "" "Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The " "default is `sysv'" @@ -3851,74 +3905,74 @@ msgstr "" "Benutze das Ausgabeformat FORMAT. FORMAT kann `bsd', `sysv' or `posix' sein. " "Der Standard ist `sysv'" -#: src/nm.c:83 +#: src/nm.c:84 msgid "Same as --format=bsd" msgstr "Genau wie --format=bsd" -#: src/nm.c:84 +#: src/nm.c:85 msgid "Same as --format=posix" msgstr "Genau wie --format=posix" -#: src/nm.c:85 src/size.c:63 +#: src/nm.c:86 src/size.c:63 msgid "Use RADIX for printing symbol values" msgstr "Benutze RADIX zur Ausgabe von Symbolwerten" -#: src/nm.c:86 +#: src/nm.c:87 #, fuzzy msgid "Mark special symbols" msgstr "Kennzeichne schwache Symbole" -#: src/nm.c:88 +#: src/nm.c:89 #, fuzzy msgid "Print size of defined symbols" msgstr "Zeige Grösse der definierten Symbole" -#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72 +#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72 msgid "Output options:" msgstr "Ausgabeoptionen:" -#: src/nm.c:91 +#: src/nm.c:92 msgid "Sort symbols numerically by address" msgstr "Symbole anhand der Adresse numerisch sortieren" -#: src/nm.c:93 +#: src/nm.c:94 msgid "Do not sort the symbols" msgstr "Symbole nicht sortieren" -#: src/nm.c:94 +#: src/nm.c:95 msgid "Reverse the sense of the sort" msgstr "Sortierreihenfolge umkehren" -#: src/nm.c:97 +#: src/nm.c:98 msgid "Decode low-level symbol names into source code names" msgstr "" -#: src/nm.c:104 +#: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "" -#: src/nm.c:115 src/objdump.c:79 +#: src/nm.c:116 src/objdump.c:79 #, fuzzy msgid "Output formatting" msgstr "Ausgabeformat:" -#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127 +#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127 #, fuzzy, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: INTERNER FEHLER %d (%s-%s): %s" -#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325 +#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325 #: src/strip.c:2280 #, c-format msgid "while closing '%s'" msgstr "beim Schliessen von '%s'" -#: src/nm.c:416 src/objdump.c:292 src/strip.c:391 +#: src/nm.c:417 src/objdump.c:292 src/strip.c:391 #, c-format msgid "%s: File format not recognized" msgstr "%s: Dateiformat nicht erkannt" -#: src/nm.c:456 +#: src/nm.c:457 #, fuzzy msgid "" "\n" @@ -3927,42 +3981,42 @@ msgstr "" "\n" "Archiv-Index:" -#: src/nm.c:465 +#: src/nm.c:466 #, c-format msgid "invalid offset %zu for symbol %s" msgstr "ungültiger Offset %zu für Symbol %s" -#: src/nm.c:470 +#: src/nm.c:471 #, c-format msgid "%s in %s\n" msgstr "" -#: src/nm.c:478 +#: src/nm.c:479 #, c-format msgid "cannot reset archive offset to beginning" msgstr "" -#: src/nm.c:503 src/objdump.c:340 +#: src/nm.c:504 src/objdump.c:340 #, c-format msgid "%s%s%s: file format not recognized" msgstr "%s%s%s: Dateiformat nicht erkannt" -#: src/nm.c:715 +#: src/nm.c:719 #, c-format msgid "cannot create search tree" msgstr "Kann Suchbaum nicht erstellen" -#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536 -#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579 -#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460 -#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 -#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461 -#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520 +#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545 +#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667 +#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558 +#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 +#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603 +#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520 #, c-format msgid "cannot get section header string table index" msgstr "" -#: src/nm.c:781 +#: src/nm.c:787 #, c-format msgid "" "\n" @@ -3975,29 +4029,29 @@ msgstr "" "Symbole aus %s:\n" "\n" -#: src/nm.c:784 +#: src/nm.c:790 #, c-format msgid "" "%*s%-*s %-*s Class Type %-*s %*s Section\n" "\n" msgstr "" -#: src/nm.c:1171 +#: src/nm.c:1232 #, fuzzy, c-format msgid "%s: entry size in section %zd `%s' is not what we expect" msgstr "%s: entry size in section `%s' is not what we expect" -#: src/nm.c:1176 +#: src/nm.c:1237 #, fuzzy, c-format msgid "%s: size of section %zd `%s' is not multiple of entry size" msgstr "%s: entry size in section `%s' is not what we expect" -#: src/nm.c:1434 +#: src/nm.c:1537 #, c-format msgid "%s%s%s%s: Invalid operation" msgstr "%s%s%s%s: Ungültige Operation" -#: src/nm.c:1491 +#: src/nm.c:1594 #, c-format msgid "%s%s%s: no symbols" msgstr "%s%s%s: keine Symbole" @@ -4031,7 +4085,7 @@ msgstr "" msgid "Show information from FILEs (a.out by default)." msgstr "" -#: src/objdump.c:232 src/readelf.c:473 +#: src/objdump.c:232 src/readelf.c:479 msgid "No operation specified.\n" msgstr "Keine Operation angegeben.\n" @@ -4040,11 +4094,11 @@ msgstr "Keine Operation angegeben.\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072 +#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160 msgid "INVALID SYMBOL" msgstr "" -#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108 +#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196 msgid "INVALID SECTION" msgstr "" @@ -4093,435 +4147,459 @@ msgstr "'%s' ist kein Archiv" msgid "error while freeing sub-ELF descriptor: %s" msgstr "" -#: src/readelf.c:71 +#: src/readelf.c:72 #, fuzzy msgid "ELF input selection:" msgstr "Eingabeauswahloptionen:" -#: src/readelf.c:73 +#: src/readelf.c:74 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" -#: src/readelf.c:75 +#: src/readelf.c:76 #, fuzzy msgid "ELF output selection:" msgstr "Eingabeauswahloptionen:" -#: src/readelf.c:77 +#: src/readelf.c:78 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "" -#: src/readelf.c:78 +#: src/readelf.c:79 msgid "Display the dynamic segment" msgstr "" -#: src/readelf.c:79 +#: src/readelf.c:80 msgid "Display the ELF file header" msgstr "" -#: src/readelf.c:81 +#: src/readelf.c:82 msgid "Display histogram of bucket list lengths" msgstr "" -#: src/readelf.c:82 +#: src/readelf.c:83 msgid "Display the program headers" msgstr "Programm-Köpfe anzeigen" -#: src/readelf.c:84 +#: src/readelf.c:85 msgid "Display relocations" msgstr "Relocations anzeigen" -#: src/readelf.c:85 +#: src/readelf.c:86 #, fuzzy msgid "Display the sections' headers" msgstr "Programm-Köpfe anzeigen" -#: src/readelf.c:87 +#: src/readelf.c:88 msgid "Display the symbol table" msgstr "Symboltabelle anzeigen" -#: src/readelf.c:88 +#: src/readelf.c:89 msgid "Display versioning information" msgstr "Versionierungsinformationen anzeigen" -#: src/readelf.c:89 +#: src/readelf.c:90 #, fuzzy msgid "Display the ELF notes" msgstr "Kernnotizen anzeigen" -#: src/readelf.c:91 +#: src/readelf.c:92 #, fuzzy msgid "Display architecture specific information, if any" msgstr "Architekturspezifische Informationen anzeigen (falls vorhanden)" -#: src/readelf.c:93 +#: src/readelf.c:94 msgid "Display sections for exception handling" msgstr "Abschnitte für Ausnahmebehandlung anzeigen" -#: src/readelf.c:95 +#: src/readelf.c:96 msgid "Additional output selection:" msgstr "" -#: src/readelf.c:97 +#: src/readelf.c:98 msgid "" "Display DWARF section content. SECTION can be one of abbrev, aranges, " "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, " "pubnames, str, macinfo, macro or exception" msgstr "" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "Print string contents of sections" msgstr "" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the symbol index of an archive" msgstr "Symbolindex des Archivs anzeigen" -#: src/readelf.c:108 +#: src/readelf.c:109 msgid "Output control:" msgstr "Ausgabekontrolle:" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Do not find symbol names for addresses in DWARF data" msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen" -#: src/readelf.c:112 +#: src/readelf.c:113 #, fuzzy msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Ignored for compatibility (lines always wide)" msgstr "" -#: src/readelf.c:119 +#: src/readelf.c:117 +msgid "" +"Show compression information for compressed sections (when used with -S); " +"decompress section before dumping data (when used with -p or -x)" +msgstr "" + +#: src/readelf.c:122 msgid "Print information from ELF file in human-readable form." msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben." -#: src/readelf.c:441 +#: src/readelf.c:447 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "" -#: src/readelf.c:520 src/readelf.c:631 +#: src/readelf.c:529 src/readelf.c:640 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" -#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269 +#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347 #, c-format msgid "cannot get section: %s" msgstr "" -#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481 -#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543 -#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 -#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508 -#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855 +#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623 +#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577 +#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 +#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543 +#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891 #, c-format msgid "cannot get section header: %s" msgstr "" -#: src/readelf.c:562 +#: src/readelf.c:571 #, fuzzy, c-format msgid "cannot get section name" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772 -#: src/readelf.c:7949 +#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880 +#: src/readelf.c:8057 #, c-format msgid "cannot get %s content: %s" msgstr "" -#: src/readelf.c:587 +#: src/readelf.c:596 #, fuzzy, c-format msgid "cannot create temp file '%s'" msgstr "neue Datei konnte nicht angelegt werden" -#: src/readelf.c:596 +#: src/readelf.c:605 #, fuzzy, c-format msgid "cannot write section data" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648 +#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "" -#: src/readelf.c:609 +#: src/readelf.c:618 #, fuzzy, c-format msgid "error while rewinding file descriptor" msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" -#: src/readelf.c:643 +#: src/readelf.c:652 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "" -#: src/readelf.c:742 +#: src/readelf.c:751 #, fuzzy, c-format msgid "No such section '%s' in '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:769 +#: src/readelf.c:778 #, c-format msgid "cannot stat input file" msgstr "" -#: src/readelf.c:771 +#: src/readelf.c:780 #, c-format msgid "input file is empty" msgstr "" -#: src/readelf.c:773 +#: src/readelf.c:782 #, c-format msgid "failed reading '%s': %s" msgstr "Konnte '%s' nicht lesen: %s" -#: src/readelf.c:814 +#: src/readelf.c:837 #, c-format msgid "cannot read ELF header: %s" msgstr "" -#: src/readelf.c:822 +#: src/readelf.c:845 #, c-format msgid "cannot create EBL handle" msgstr "" -#: src/readelf.c:835 +#: src/readelf.c:858 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:921 +#: src/readelf.c:948 msgid "NONE (None)" msgstr "" -#: src/readelf.c:922 +#: src/readelf.c:949 msgid "REL (Relocatable file)" msgstr "" -#: src/readelf.c:923 +#: src/readelf.c:950 msgid "EXEC (Executable file)" msgstr "" -#: src/readelf.c:924 +#: src/readelf.c:951 msgid "DYN (Shared object file)" msgstr "" -#: src/readelf.c:925 +#: src/readelf.c:952 msgid "CORE (Core file)" msgstr "" -#: src/readelf.c:930 +#: src/readelf.c:957 #, c-format msgid "OS Specific: (%x)\n" msgstr "" -#: src/readelf.c:932 +#: src/readelf.c:959 #, c-format msgid "Processor Specific: (%x)\n" msgstr "" -#: src/readelf.c:942 +#: src/readelf.c:969 msgid "" "ELF Header:\n" " Magic: " msgstr "" -#: src/readelf.c:946 +#: src/readelf.c:973 #, c-format msgid "" "\n" " Class: %s\n" msgstr "" -#: src/readelf.c:951 +#: src/readelf.c:978 #, fuzzy, c-format msgid " Data: %s\n" msgstr " Daten: %s\n" -#: src/readelf.c:957 +#: src/readelf.c:984 #, c-format msgid " Ident Version: %hhd %s\n" msgstr "" -#: src/readelf.c:959 src/readelf.c:976 +#: src/readelf.c:986 src/readelf.c:1003 msgid "(current)" msgstr "(aktuell)" -#: src/readelf.c:963 +#: src/readelf.c:990 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: src/readelf.c:966 +#: src/readelf.c:993 #, c-format msgid " ABI Version: %hhd\n" msgstr "" -#: src/readelf.c:969 +#: src/readelf.c:996 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:972 +#: src/readelf.c:999 #, c-format msgid " Machine: %s\n" msgstr "" -#: src/readelf.c:974 +#: src/readelf.c:1001 #, c-format msgid " Version: %d %s\n" msgstr "" -#: src/readelf.c:978 +#: src/readelf.c:1005 #, c-format msgid " Entry point address: %#\n" msgstr "" -#: src/readelf.c:981 +#: src/readelf.c:1008 #, c-format msgid " Start of program headers: % %s\n" msgstr "" -#: src/readelf.c:982 src/readelf.c:985 +#: src/readelf.c:1009 src/readelf.c:1012 msgid "(bytes into file)" msgstr "" -#: src/readelf.c:984 +#: src/readelf.c:1011 #, c-format msgid " Start of section headers: % %s\n" msgstr "" -#: src/readelf.c:987 +#: src/readelf.c:1014 #, c-format msgid " Flags: %s\n" msgstr "" -#: src/readelf.c:990 +#: src/readelf.c:1017 #, c-format msgid " Size of this header: % %s\n" msgstr "" -#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011 +#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038 msgid "(bytes)" msgstr "(Bytes)" -#: src/readelf.c:993 +#: src/readelf.c:1020 #, c-format msgid " Size of program header entries: % %s\n" msgstr "" -#: src/readelf.c:996 +#: src/readelf.c:1023 #, c-format msgid " Number of program headers entries: %" msgstr "" -#: src/readelf.c:1003 +#: src/readelf.c:1030 #, c-format msgid " (% in [0].sh_info)" msgstr "" -#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037 +#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064 msgid " ([0] not available)" msgstr "" -#: src/readelf.c:1010 +#: src/readelf.c:1037 #, c-format msgid " Size of section header entries: % %s\n" msgstr "" -#: src/readelf.c:1013 +#: src/readelf.c:1040 #, c-format msgid " Number of section headers entries: %" msgstr "" -#: src/readelf.c:1020 +#: src/readelf.c:1047 #, c-format msgid " (% in [0].sh_size)" msgstr "" -#: src/readelf.c:1033 +#: src/readelf.c:1060 #, c-format msgid " (% in [0].sh_link)" msgstr "" -#: src/readelf.c:1041 +#: src/readelf.c:1068 #, c-format msgid "" " Section header string table index: XINDEX%s\n" "\n" msgstr "" -#: src/readelf.c:1045 +#: src/readelf.c:1072 #, c-format msgid "" " Section header string table index: %\n" "\n" msgstr "" -#: src/readelf.c:1077 +#: src/readelf.c:1115 #, c-format msgid "" "There are %d section headers, starting at offset %#:\n" "\n" msgstr "" -#: src/readelf.c:1087 +#: src/readelf.c:1125 msgid "Section Headers:" msgstr "" -#: src/readelf.c:1090 +#: src/readelf.c:1128 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" msgstr "" -#: src/readelf.c:1092 +#: src/readelf.c:1130 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" msgstr "" -#: src/readelf.c:1164 +#: src/readelf.c:1135 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1137 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1213 +#, c-format +msgid "bad compression header for section %zd: %s" +msgstr "" + +#: src/readelf.c:1224 +#, c-format +msgid "bad gnu compressed size for section %zd: %s" +msgstr "" + +#: src/readelf.c:1242 msgid "Program Headers:" msgstr "Programm-Köpfe:" -#: src/readelf.c:1166 +#: src/readelf.c:1244 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" -#: src/readelf.c:1169 +#: src/readelf.c:1247 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" msgstr "" -#: src/readelf.c:1226 +#: src/readelf.c:1304 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "" -#: src/readelf.c:1247 +#: src/readelf.c:1325 msgid "" "\n" " Section to Segment mapping:\n" " Segment Sections..." msgstr "" -#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964 +#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999 #, c-format msgid "cannot get program header: %s" msgstr "" -#: src/readelf.c:1401 +#: src/readelf.c:1479 #, c-format msgid "" "\n" @@ -4532,7 +4610,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1406 +#: src/readelf.c:1484 #, c-format msgid "" "\n" @@ -4543,21 +4621,25 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1414 +#: src/readelf.c:1492 msgid "" msgstr "" -#: src/readelf.c:1428 +#: src/readelf.c:1506 msgid "" msgstr "" -#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542 -#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608 +#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317 +msgid "Couldn't uncompress section" +msgstr "" + +#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640 +#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:1588 +#: src/readelf.c:1676 #, c-format msgid "" "\n" @@ -4570,43 +4652,43 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1598 +#: src/readelf.c:1686 msgid " Type Value\n" msgstr "" -#: src/readelf.c:1622 +#: src/readelf.c:1710 #, c-format msgid "Shared library: [%s]\n" msgstr "" -#: src/readelf.c:1627 +#: src/readelf.c:1715 #, c-format msgid "Library soname: [%s]\n" msgstr "" -#: src/readelf.c:1632 +#: src/readelf.c:1720 #, c-format msgid "Library rpath: [%s]\n" msgstr "" -#: src/readelf.c:1637 +#: src/readelf.c:1725 #, c-format msgid "Library runpath: [%s]\n" msgstr "" -#: src/readelf.c:1657 +#: src/readelf.c:1745 #, c-format msgid "% (bytes)\n" msgstr "" -#: src/readelf.c:1770 src/readelf.c:1960 +#: src/readelf.c:1858 src/readelf.c:2048 #, c-format msgid "" "\n" "Invalid symbol table at offset %#0\n" msgstr "" -#: src/readelf.c:1788 src/readelf.c:1978 +#: src/readelf.c:1876 src/readelf.c:2066 #, c-format msgid "" "\n" @@ -4619,7 +4701,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1803 src/readelf.c:1993 +#: src/readelf.c:1891 src/readelf.c:2081 #, c-format msgid "" "\n" @@ -4630,29 +4712,29 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1813 +#: src/readelf.c:1901 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:1815 +#: src/readelf.c:1903 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913 -#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085 -#: src/readelf.c:2107 src/readelf.c:2120 +#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001 +#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173 +#: src/readelf.c:2195 src/readelf.c:2208 msgid "" msgstr "" -#: src/readelf.c:2003 +#: src/readelf.c:2091 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:2005 +#: src/readelf.c:2093 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:2216 +#: src/readelf.c:2314 #, c-format msgid "" "\n" @@ -4663,40 +4745,40 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2221 +#: src/readelf.c:2319 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2229 +#: src/readelf.c:2327 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:2231 +#: src/readelf.c:2329 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:2251 +#: src/readelf.c:2349 #, c-format msgid "%5u: %0* %6 %-7s %-6s %-9s %6s %s" msgstr "" -#: src/readelf.c:2339 +#: src/readelf.c:2437 #, c-format msgid "bad dynamic symbol" msgstr "" -#: src/readelf.c:2421 +#: src/readelf.c:2519 msgid "none" msgstr "keine" -#: src/readelf.c:2438 +#: src/readelf.c:2536 msgid "| " msgstr "| " -#: src/readelf.c:2469 +#: src/readelf.c:2567 #, c-format msgid "" "\n" @@ -4709,17 +4791,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2490 +#: src/readelf.c:2588 #, fuzzy, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n" -#: src/readelf.c:2503 +#: src/readelf.c:2601 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Name: %s Flags: %s Version: %hu\n" -#: src/readelf.c:2546 +#: src/readelf.c:2644 #, c-format msgid "" "\n" @@ -4732,17 +4814,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2574 +#: src/readelf.c:2672 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" -#: src/readelf.c:2589 +#: src/readelf.c:2687 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" -#: src/readelf.c:2850 +#: src/readelf.c:2948 #, c-format msgid "" "\n" @@ -4755,15 +4837,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2878 +#: src/readelf.c:2976 msgid " 0 *local* " msgstr " 0 *lokal* " -#: src/readelf.c:2883 +#: src/readelf.c:2981 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:2925 +#: src/readelf.c:3023 #, c-format msgid "" "\n" @@ -4778,56 +4860,56 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2947 +#: src/readelf.c:3045 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr "" -#: src/readelf.c:2949 +#: src/readelf.c:3047 #, c-format msgid " 0 %6 %5.1f%%\n" msgstr " 0 %6 %5.1f%%\n" -#: src/readelf.c:2956 +#: src/readelf.c:3054 #, c-format msgid "%7d %6 %5.1f%% %5.1f%%\n" msgstr "%7d %6 %5.1f%% %5.1f%%\n" -#: src/readelf.c:2969 +#: src/readelf.c:3067 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" "\t\t\t unsuccessful lookup: %f\n" msgstr "" -#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099 +#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197 #, c-format msgid "cannot get data for section %d: %s" msgstr "" -#: src/readelf.c:2995 +#: src/readelf.c:3093 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3050 +#: src/readelf.c:3148 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3108 +#: src/readelf.c:3206 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "ungültige .debug_line Sektion" -#: src/readelf.c:3175 +#: src/readelf.c:3273 #, c-format msgid "" " Symbol Bias: %u\n" " Bitmask Size: %zu bytes %%% bits set 2nd hash shift: %u\n" msgstr "" -#: src/readelf.c:3250 +#: src/readelf.c:3358 #, c-format msgid "" "\n" @@ -4838,13 +4920,13 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:3264 +#: src/readelf.c:3372 msgid "" " Library Time Stamp Checksum Version " "Flags" msgstr "" -#: src/readelf.c:3314 +#: src/readelf.c:3422 #, c-format msgid "" "\n" @@ -4852,140 +4934,140 @@ msgid "" "%#0:\n" msgstr "" -#: src/readelf.c:3331 +#: src/readelf.c:3439 msgid " Owner Size\n" msgstr "" -#: src/readelf.c:3360 +#: src/readelf.c:3468 #, c-format msgid " %-13s %4\n" msgstr " %-13s %4\n" -#: src/readelf.c:3399 +#: src/readelf.c:3507 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" -#: src/readelf.c:3404 +#: src/readelf.c:3512 #, c-format msgid " File: %11\n" msgstr " File: %11\n" -#: src/readelf.c:3453 +#: src/readelf.c:3561 #, c-format msgid " %s: %, %s\n" msgstr " %s: %, %s\n" -#: src/readelf.c:3456 +#: src/readelf.c:3564 #, c-format msgid " %s: %\n" msgstr " %s: %\n" -#: src/readelf.c:3459 +#: src/readelf.c:3567 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3469 +#: src/readelf.c:3577 #, c-format msgid " %u: %\n" msgstr " %u: %\n" -#: src/readelf.c:3472 +#: src/readelf.c:3580 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3517 +#: src/readelf.c:3625 #, c-format msgid "%s+%# <%s+%#>" msgstr "%s+%# <%s+%#>" -#: src/readelf.c:3520 +#: src/readelf.c:3628 #, c-format msgid "%s+%#0* <%s+%#>" msgstr "%s+%#0* <%s+%#>" -#: src/readelf.c:3525 +#: src/readelf.c:3633 #, c-format msgid "%# <%s+%#>" msgstr "%# <%s+%#>" -#: src/readelf.c:3528 +#: src/readelf.c:3636 #, c-format msgid "%#0* <%s+%#>" msgstr "%#0* <%s+%#>" -#: src/readelf.c:3534 +#: src/readelf.c:3642 #, c-format msgid "%s+%# <%s>" msgstr "%s+%# <%s>" -#: src/readelf.c:3537 +#: src/readelf.c:3645 #, c-format msgid "%s+%#0* <%s>" msgstr "%s+%#0* <%s>" -#: src/readelf.c:3541 +#: src/readelf.c:3649 #, c-format msgid "%# <%s>" msgstr "%# <%s>" -#: src/readelf.c:3544 +#: src/readelf.c:3652 #, c-format msgid "%#0* <%s>" msgstr "%#0* <%s>" -#: src/readelf.c:3549 +#: src/readelf.c:3657 #, c-format msgid "%s+%#" msgstr "%s+%#" -#: src/readelf.c:3552 +#: src/readelf.c:3660 #, c-format msgid "%s+%#0*" msgstr "%s+%#0*" -#: src/readelf.c:3930 +#: src/readelf.c:4038 msgid "empty block" msgstr "" -#: src/readelf.c:3933 +#: src/readelf.c:4041 #, c-format msgid "%zu byte block:" msgstr "" -#: src/readelf.c:4330 +#: src/readelf.c:4438 #, c-format msgid "%*s[%4] %s \n" msgstr "" -#: src/readelf.c:4387 +#: src/readelf.c:4495 #, c-format msgid "%s %# used with different address sizes" msgstr "" -#: src/readelf.c:4394 +#: src/readelf.c:4502 #, c-format msgid "%s %# used with different offset sizes" msgstr "" -#: src/readelf.c:4401 +#: src/readelf.c:4509 #, c-format msgid "%s %# used with different base addresses" msgstr "" -#: src/readelf.c:4490 +#: src/readelf.c:4598 #, c-format msgid " [%6tx] \n" msgstr "" -#: src/readelf.c:4498 +#: src/readelf.c:4606 #, c-format msgid " [%6tx] ... % bytes ...\n" msgstr "" -#: src/readelf.c:4524 +#: src/readelf.c:4632 #, c-format msgid "" "\n" @@ -4993,37 +5075,37 @@ msgid "" " [ Code]\n" msgstr "" -#: src/readelf.c:4532 +#: src/readelf.c:4640 #, c-format msgid "" "\n" "Abbreviation section at offset %:\n" msgstr "" -#: src/readelf.c:4545 +#: src/readelf.c:4653 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr "" -#: src/readelf.c:4561 +#: src/readelf.c:4669 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr "" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "yes" msgstr "ja" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "no" msgstr "nein" -#: src/readelf.c:4598 src/readelf.c:4671 +#: src/readelf.c:4706 src/readelf.c:4779 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "" -#: src/readelf.c:4613 +#: src/readelf.c:4721 #, c-format msgid "" "\n" @@ -5034,193 +5116,193 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:4644 +#: src/readelf.c:4752 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4646 +#: src/readelf.c:4754 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" msgstr "" -#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360 -#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601 +#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468 +#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709 #, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#:\n" msgstr "" -#: src/readelf.c:4689 src/readelf.c:6386 +#: src/readelf.c:4797 src/readelf.c:6494 #, c-format msgid "" "\n" "Table at offset %zu:\n" msgstr "" -#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397 +#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "" -#: src/readelf.c:4709 +#: src/readelf.c:4817 #, fuzzy, c-format msgid "" "\n" " Length: %6\n" msgstr " %s: %\n" -#: src/readelf.c:4721 +#: src/readelf.c:4829 #, fuzzy, c-format msgid " DWARF version: %6\n" msgstr " %s: %\n" -#: src/readelf.c:4725 +#: src/readelf.c:4833 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:4736 +#: src/readelf.c:4844 #, fuzzy, c-format msgid " CU offset: %6\n" msgstr " %s: %\n" -#: src/readelf.c:4742 +#: src/readelf.c:4850 #, c-format msgid " Address size: %6\n" msgstr "" -#: src/readelf.c:4746 +#: src/readelf.c:4854 #, fuzzy, c-format msgid "unsupported address size" msgstr "Kein Adress-Wert" -#: src/readelf.c:4751 +#: src/readelf.c:4859 #, c-format msgid "" " Segment size: %6\n" "\n" msgstr "" -#: src/readelf.c:4755 +#: src/readelf.c:4863 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:4795 +#: src/readelf.c:4903 #, fuzzy, c-format msgid " %s..%s (%)\n" msgstr " %s: %\n" -#: src/readelf.c:4798 +#: src/readelf.c:4906 #, fuzzy, c-format msgid " %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4807 +#: src/readelf.c:4915 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:4825 +#: src/readelf.c:4933 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "" -#: src/readelf.c:4855 src/readelf.c:6919 +#: src/readelf.c:4963 src/readelf.c:7027 #, c-format msgid " [%6tx] \n" msgstr "" -#: src/readelf.c:4877 src/readelf.c:6941 +#: src/readelf.c:4985 src/readelf.c:7049 #, c-format msgid " [%6tx] base address %s\n" msgstr "" -#: src/readelf.c:4884 src/readelf.c:6948 +#: src/readelf.c:4992 src/readelf.c:7056 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4895 +#: src/readelf.c:5003 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4897 +#: src/readelf.c:5005 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:5076 +#: src/readelf.c:5184 msgid " \n" msgstr "" -#: src/readelf.c:5385 +#: src/readelf.c:5493 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "ELF Kopf konnte nicht ausgelesen werden" -#: src/readelf.c:5402 +#: src/readelf.c:5510 #, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#:\n" msgstr "" -#: src/readelf.c:5452 +#: src/readelf.c:5560 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:5545 src/readelf.c:5700 +#: src/readelf.c:5653 src/readelf.c:5808 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ungültige Abschnittsausrichtung" -#: src/readelf.c:5560 +#: src/readelf.c:5668 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:5566 +#: src/readelf.c:5674 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:5677 +#: src/readelf.c:5785 #, c-format msgid " (offset: %#)" msgstr "" -#: src/readelf.c:5684 +#: src/readelf.c:5792 #, c-format msgid " (end offset: %#)" msgstr "" -#: src/readelf.c:5721 +#: src/readelf.c:5829 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr "" -#: src/readelf.c:5776 +#: src/readelf.c:5884 #, c-format msgid "cannot get attribute code: %s" msgstr "" -#: src/readelf.c:5785 +#: src/readelf.c:5893 #, c-format msgid "cannot get attribute form: %s" msgstr "" -#: src/readelf.c:5800 +#: src/readelf.c:5908 #, c-format msgid "cannot get attribute value: %s" msgstr "" -#: src/readelf.c:6099 +#: src/readelf.c:6207 #, c-format msgid "" "\n" @@ -5228,7 +5310,7 @@ msgid "" " [Offset]\n" msgstr "" -#: src/readelf.c:6131 +#: src/readelf.c:6239 #, c-format msgid "" " Type unit at offset %:\n" @@ -5237,7 +5319,7 @@ msgid "" " Type signature: %#, Type offset: %#\n" msgstr "" -#: src/readelf.c:6140 +#: src/readelf.c:6248 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5245,32 +5327,32 @@ msgid "" "%, Offset size: %\n" msgstr "" -#: src/readelf.c:6165 +#: src/readelf.c:6273 #, c-format msgid "cannot get DIE at offset % in section '%s': %s" msgstr "" -#: src/readelf.c:6179 +#: src/readelf.c:6287 #, c-format msgid "cannot get DIE offset: %s" msgstr "" -#: src/readelf.c:6188 +#: src/readelf.c:6296 #, c-format msgid "cannot get tag of DIE at offset % in section '%s': %s" msgstr "" -#: src/readelf.c:6220 +#: src/readelf.c:6328 #, c-format msgid "cannot get next DIE: %s\n" msgstr "" -#: src/readelf.c:6228 +#: src/readelf.c:6336 #, c-format msgid "cannot get next DIE: %s" msgstr "" -#: src/readelf.c:6264 +#: src/readelf.c:6372 #, c-format msgid "" "\n" @@ -5278,12 +5360,12 @@ msgid "" "\n" msgstr "" -#: src/readelf.c:6373 +#: src/readelf.c:6481 #, c-format msgid "cannot get line data section data: %s" msgstr "" -#: src/readelf.c:6443 +#: src/readelf.c:6551 #, c-format msgid "" "\n" @@ -5300,249 +5382,249 @@ msgid "" "Opcodes:\n" msgstr "" -#: src/readelf.c:6464 +#: src/readelf.c:6572 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "" -#: src/readelf.c:6479 +#: src/readelf.c:6587 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:6487 +#: src/readelf.c:6595 msgid "" "\n" "Directory table:" msgstr "" -#: src/readelf.c:6503 +#: src/readelf.c:6611 msgid "" "\n" "File name table:\n" " Entry Dir Time Size Name" msgstr "" -#: src/readelf.c:6538 +#: src/readelf.c:6646 msgid "" "\n" "Line number statements:" msgstr "" -#: src/readelf.c:6589 +#: src/readelf.c:6697 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:6625 +#: src/readelf.c:6733 #, c-format msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" msgstr "" -#: src/readelf.c:6630 +#: src/readelf.c:6738 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr "" -#: src/readelf.c:6650 +#: src/readelf.c:6758 #, c-format msgid " extended opcode %u: " msgstr "" -#: src/readelf.c:6655 +#: src/readelf.c:6763 msgid " end of sequence" msgstr "" -#: src/readelf.c:6674 +#: src/readelf.c:6782 #, c-format msgid " set address to %s\n" msgstr "" -#: src/readelf.c:6701 +#: src/readelf.c:6809 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" -#: src/readelf.c:6714 +#: src/readelf.c:6822 #, c-format msgid " set discriminator to %u\n" msgstr "" -#: src/readelf.c:6719 +#: src/readelf.c:6827 #, fuzzy msgid " unknown opcode" msgstr "unbekannter Typ" -#: src/readelf.c:6731 +#: src/readelf.c:6839 msgid " copy" msgstr "" -#: src/readelf.c:6742 +#: src/readelf.c:6850 #, c-format msgid " advance address by %u to %s, op_index to %u\n" msgstr "" -#: src/readelf.c:6746 +#: src/readelf.c:6854 #, c-format msgid " advance address by %u to %s\n" msgstr "" -#: src/readelf.c:6757 +#: src/readelf.c:6865 #, c-format msgid " advance line by constant %d to %\n" msgstr "" -#: src/readelf.c:6765 +#: src/readelf.c:6873 #, c-format msgid " set file to %\n" msgstr "" -#: src/readelf.c:6775 +#: src/readelf.c:6883 #, c-format msgid " set column to %\n" msgstr "" -#: src/readelf.c:6782 +#: src/readelf.c:6890 #, c-format msgid " set '%s' to %\n" msgstr "" -#: src/readelf.c:6788 +#: src/readelf.c:6896 msgid " set basic block flag" msgstr "" -#: src/readelf.c:6801 +#: src/readelf.c:6909 #, c-format msgid " advance address by constant %u to %s, op_index to %u\n" msgstr "" -#: src/readelf.c:6805 +#: src/readelf.c:6913 #, c-format msgid " advance address by constant %u to %s\n" msgstr "" -#: src/readelf.c:6823 +#: src/readelf.c:6931 #, c-format msgid " advance address by fixed value %u to %s\n" msgstr "" -#: src/readelf.c:6832 +#: src/readelf.c:6940 msgid " set prologue end flag" msgstr "" -#: src/readelf.c:6837 +#: src/readelf.c:6945 msgid " set epilogue begin flag" msgstr "" -#: src/readelf.c:6846 +#: src/readelf.c:6954 #, c-format msgid " set isa to %u\n" msgstr "" -#: src/readelf.c:6855 +#: src/readelf.c:6963 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:6887 +#: src/readelf.c:6995 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "" -#: src/readelf.c:6962 +#: src/readelf.c:7070 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:6964 +#: src/readelf.c:7072 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6971 src/readelf.c:7859 +#: src/readelf.c:7079 src/readelf.c:7967 msgid " \n" msgstr "" -#: src/readelf.c:7023 src/readelf.c:7185 +#: src/readelf.c:7131 src/readelf.c:7293 #, c-format msgid "cannot get macro information section data: %s" msgstr "" -#: src/readelf.c:7103 +#: src/readelf.c:7211 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "" -#: src/readelf.c:7126 +#: src/readelf.c:7234 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "" -#: src/readelf.c:7226 +#: src/readelf.c:7334 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " %s: %\n" -#: src/readelf.c:7238 +#: src/readelf.c:7346 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:7244 src/readelf.c:7978 +#: src/readelf.c:7352 src/readelf.c:8086 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:7251 +#: src/readelf.c:7359 #, fuzzy, c-format msgid " Flag: 0x%\n" msgstr " %s: %\n" -#: src/readelf.c:7254 +#: src/readelf.c:7362 #, c-format msgid " Offset length: %\n" msgstr "" -#: src/readelf.c:7262 +#: src/readelf.c:7370 #, c-format msgid " .debug_line offset: 0x%\n" msgstr "" -#: src/readelf.c:7275 +#: src/readelf.c:7383 #, c-format msgid " extension opcode table, % items:\n" msgstr "" -#: src/readelf.c:7282 +#: src/readelf.c:7390 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:7294 +#: src/readelf.c:7402 #, c-format msgid " % arguments:" msgstr "" -#: src/readelf.c:7322 +#: src/readelf.c:7430 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:7559 +#: src/readelf.c:7667 #, c-format msgid "vendor opcode not verified?" msgstr "" -#: src/readelf.c:7587 +#: src/readelf.c:7695 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" -#: src/readelf.c:7628 +#: src/readelf.c:7736 #, c-format msgid "" "\n" @@ -5550,47 +5632,47 @@ msgid "" " %*s String\n" msgstr "" -#: src/readelf.c:7642 +#: src/readelf.c:7750 #, c-format msgid " *** error while reading strings: %s\n" msgstr "" -#: src/readelf.c:7662 +#: src/readelf.c:7770 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:7764 +#: src/readelf.c:7872 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:7787 +#: src/readelf.c:7895 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:7799 +#: src/readelf.c:7907 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:7814 +#: src/readelf.c:7922 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:7827 +#: src/readelf.c:7935 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:7841 +#: src/readelf.c:7949 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5599,193 +5681,209 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:7914 +#: src/readelf.c:8022 #, c-format msgid "invalid TType encoding" msgstr "" -#: src/readelf.c:7940 +#: src/readelf.c:8048 #, c-format msgid "" "\n" "GDB section [%2zu] '%s' at offset %# contains % bytes :\n" msgstr "" -#: src/readelf.c:7969 +#: src/readelf.c:8077 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:7987 +#: src/readelf.c:8095 #, c-format msgid " CU offset: %#\n" msgstr "" -#: src/readelf.c:7994 +#: src/readelf.c:8102 #, c-format msgid " TU offset: %#\n" msgstr "" -#: src/readelf.c:8001 +#: src/readelf.c:8109 #, c-format msgid " address offset: %#\n" msgstr "" -#: src/readelf.c:8008 +#: src/readelf.c:8116 #, c-format msgid " symbol offset: %#\n" msgstr "" -#: src/readelf.c:8015 +#: src/readelf.c:8123 #, c-format msgid " constant offset: %#\n" msgstr "" -#: src/readelf.c:8029 +#: src/readelf.c:8137 #, c-format msgid "" "\n" " CU list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:8054 +#: src/readelf.c:8162 #, c-format msgid "" "\n" " TU list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:8083 +#: src/readelf.c:8191 #, c-format msgid "" "\n" " Address list at offset %# contains %zu entries:\n" msgstr "" -#: src/readelf.c:8116 +#: src/readelf.c:8224 #, c-format msgid "" "\n" " Symbol table at offset %# contains %zu slots:\n" msgstr "" -#: src/readelf.c:8203 +#: src/readelf.c:8311 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "" -#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152 +#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258 #, c-format msgid "cannot convert core note data: %s" msgstr "" -#: src/readelf.c:8724 +#: src/readelf.c:8830 #, c-format msgid "" "\n" "%*s... ..." msgstr "" -#: src/readelf.c:9231 +#: src/readelf.c:9337 msgid " Owner Data size Type\n" msgstr "" -#: src/readelf.c:9249 +#: src/readelf.c:9355 #, c-format msgid " %-13.*s %9 %s\n" msgstr "" -#: src/readelf.c:9299 +#: src/readelf.c:9405 #, c-format msgid "cannot get content of note section: %s" msgstr "" -#: src/readelf.c:9326 +#: src/readelf.c:9432 #, c-format msgid "" "\n" "Note section [%2zu] '%s' of % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:9349 +#: src/readelf.c:9455 #, c-format msgid "" "\n" "Note segment of % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:9395 +#: src/readelf.c:9501 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no data to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:9401 src/readelf.c:9424 +#: src/readelf.c:9518 src/readelf.c:9559 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:9405 +#: src/readelf.c:9523 #, c-format msgid "" "\n" "Hex dump of section [%zu] '%s', % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:9418 +#: src/readelf.c:9528 +#, c-format +msgid "" +"\n" +"Hex dump of section [%zu] '%s', % bytes (%zd uncompressed) at offset " +"%#0:\n" +msgstr "" + +#: src/readelf.c:9542 #, fuzzy, c-format msgid "" "\n" "Section [%zu] '%s' has no strings to dump.\n" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/readelf.c:9428 +#: src/readelf.c:9564 #, c-format msgid "" "\n" "String section [%zu] '%s' contains % bytes at offset %#0:\n" msgstr "" -#: src/readelf.c:9476 +#: src/readelf.c:9569 +#, c-format +msgid "" +"\n" +"String section [%zu] '%s' contains % bytes (%zd uncompressed) at " +"offset %#0:\n" +msgstr "" + +#: src/readelf.c:9618 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:9505 +#: src/readelf.c:9647 #, c-format msgid "" "\n" "section '%s' does not exist" msgstr "" -#: src/readelf.c:9562 +#: src/readelf.c:9704 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "" -#: src/readelf.c:9565 +#: src/readelf.c:9707 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:9569 +#: src/readelf.c:9711 #, c-format msgid "" "\n" "Index of archive '%s' has %zu entries:\n" msgstr "" -#: src/readelf.c:9587 +#: src/readelf.c:9729 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:9592 +#: src/readelf.c:9734 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -6300,12 +6398,12 @@ msgstr "" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947 +#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/unstrip.c:266 src/unstrip.c:1907 +#: src/unstrip.c:266 src/unstrip.c:1943 #, c-format msgid "cannot create program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" @@ -6320,12 +6418,12 @@ msgstr "konnte Programm-Kopf nicht kopieren: %s" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:285 src/unstrip.c:1541 +#: src/unstrip.c:285 src/unstrip.c:1576 #, c-format msgid "cannot get section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:287 src/unstrip.c:1543 +#: src/unstrip.c:287 src/unstrip.c:1578 #, c-format msgid "cannot copy section data: %s" msgstr "konnte Abschnittsdaten nicht kopieren: %s" @@ -6335,214 +6433,214 @@ msgstr "konnte Abschnittsdaten nicht kopieren: %s" msgid "cannot create directory '%s'" msgstr "konnte Verzeichnis nicht erstellen: %s" -#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575 +#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610 #, c-format msgid "cannot get symbol table entry: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618 -#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793 +#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653 +#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829 #, c-format msgid "cannot update symbol table: %s" msgstr "konnte Symboltabelle nicht aktualisieren: %s" -#: src/unstrip.c:377 +#: src/unstrip.c:409 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:416 src/unstrip.c:427 +#: src/unstrip.c:448 src/unstrip.c:459 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:514 +#: src/unstrip.c:547 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:526 +#: src/unstrip.c:560 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:774 +#: src/unstrip.c:809 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "ungültiger Offset %zu für Symbol %s" -#: src/unstrip.c:932 src/unstrip.c:1278 +#: src/unstrip.c:967 src/unstrip.c:1313 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027 +#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1013 +#: src/unstrip.c:1048 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1019 +#: src/unstrip.c:1054 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 src/unstrip.c:1398 +#: src/unstrip.c:1108 src/unstrip.c:1433 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731 +#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1222 +#: src/unstrip.c:1257 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1249 src/unstrip.c:1253 +#: src/unstrip.c:1284 src/unstrip.c:1288 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494 +#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1264 +#: src/unstrip.c:1299 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1323 src/unstrip.c:1413 +#: src/unstrip.c:1358 src/unstrip.c:1448 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1473 +#: src/unstrip.c:1508 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1583 +#: src/unstrip.c:1618 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "ungültiger Abschnittsindex" -#: src/unstrip.c:1864 +#: src/unstrip.c:1900 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:1885 +#: src/unstrip.c:1921 #, c-format msgid "cannot get ELF header: %s" msgstr "" -#: src/unstrip.c:1917 +#: src/unstrip.c:1953 #, c-format msgid "cannot update program header: %s" msgstr "konnte Programm-Kopf nicht aktualisieren: %s" -#: src/unstrip.c:1922 src/unstrip.c:2005 +#: src/unstrip.c:1958 src/unstrip.c:2040 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:1974 +#: src/unstrip.c:2009 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1977 +#: src/unstrip.c:2012 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145 +#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2038 +#: src/unstrip.c:2073 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2040 +#: src/unstrip.c:2075 msgid ", use --force" msgstr "" -#: src/unstrip.c:2063 +#: src/unstrip.c:2098 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2066 +#: src/unstrip.c:2101 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2069 +#: src/unstrip.c:2104 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2072 +#: src/unstrip.c:2107 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2102 +#: src/unstrip.c:2137 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2106 +#: src/unstrip.c:2141 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2121 +#: src/unstrip.c:2156 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2125 +#: src/unstrip.c:2160 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2138 +#: src/unstrip.c:2173 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2169 +#: src/unstrip.c:2204 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2302 +#: src/unstrip.c:2337 #, c-format msgid "no matching modules found" msgstr "kein passendes Modul gefunden" -#: src/unstrip.c:2311 +#: src/unstrip.c:2346 #, c-format msgid "matched more than one module" msgstr "mehr als ein passendes Modul" -#: src/unstrip.c:2355 +#: src/unstrip.c:2390 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2356 +#: src/unstrip.c:2391 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" diff --git a/po/es.po b/po/es.po index 71aec39d..9e2c7454 100644 --- a/po/es.po +++ b/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils.master.es\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2015-10-16 13:26+0200\n" +"POT-Creation-Date: 2016-01-08 14:06+0100\n" "PO-Revision-Date: 2011-01-10 15:17-0300\n" "Last-Translator: Claudio Rodrigo Pereyra Diaz \n" @@ -44,8 +44,8 @@ msgstr "" msgid "cannot allocate memory" msgstr "No se puede asignar sección PLT: %s" -#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184 -#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403 +#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282 +#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438 #, c-format msgid "memory exhausted" msgstr "memoria agotada" @@ -248,7 +248,7 @@ msgstr "operando inválido" msgid "not a CU (unit) DIE" msgstr "" -#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345 +#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380 msgid "Input selection options:" msgstr "Opciones de selección de entrada:" @@ -305,7 +305,12 @@ msgstr "imposible encontrar kernel o módulos" msgid "cannot read ELF core file: %s" msgstr "No se puede leer archivo core ELF: %s" -#: libdwfl/argp-std.c:311 +#: libdwfl/argp-std.c:313 +#, fuzzy +msgid "Not enough memory" +msgstr "memoria agotada" + +#: libdwfl/argp-std.c:323 msgid "No modules recognized in core file" msgstr "No hay módulos reconocidos en el archivo core" @@ -566,7 +571,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:5365 +#: libelf/elf_error.c:87 src/readelf.c:5473 #, c-format msgid "invalid encoding" msgstr "codificación inválida" @@ -647,8 +652,8 @@ msgstr "no coinciden los datos/scn" msgid "invalid section header" msgstr "encabezamiento de sección inválida" -#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682 -#: src/readelf.c:7783 src/readelf.c:7964 +#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790 +#: src/readelf.c:7891 src/readelf.c:8072 #, c-format msgid "invalid data" msgstr "datos inválidos" @@ -692,6 +697,40 @@ msgstr "" msgid "file has no program header" msgstr "el archivo no tiene encabezamiento de programa" +#: libelf/elf_error.c:237 +#, fuzzy +msgid "invalid section type" +msgstr "sección inválida" + +#: libelf/elf_error.c:242 +#, fuzzy +msgid "invalid section flags" +msgstr "sección inválida" + +#: libelf/elf_error.c:247 +#, fuzzy +msgid "section does not contain compressed data" +msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" + +#: libelf/elf_error.c:252 +msgid "section contains compressed data" +msgstr "" + +#: libelf/elf_error.c:257 +#, fuzzy +msgid "unknown compression type" +msgstr "tipo desconocido" + +#: libelf/elf_error.c:262 +#, fuzzy +msgid "cannot compress data" +msgstr "no pueden copiar datos de sección: %s" + +#: libelf/elf_error.c:267 +#, fuzzy +msgid "cannot decompress data" +msgstr "no pueden copiar datos de sección: %s" + #: src/addr2line.c:58 #, fuzzy msgid "Input format options:" @@ -751,7 +790,7 @@ msgstr "" msgid "Print all information on one line, and indent inlines" msgstr "" -#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99 +#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100 #: src/strings.c:79 msgid "Miscellaneous:" msgstr "Misceláneos:" @@ -767,9 +806,9 @@ msgstr "" msgid "[ADDR...]" msgstr "[DIREC...]" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235 -#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177 -#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235 +#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177 +#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -783,9 +822,9 @@ msgstr "" "garantía, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN " "DETERMINADO.\n" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240 -#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182 -#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240 +#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182 +#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -1259,40 +1298,40 @@ msgstr "%s %s differ: encabezamiento de programa %d" msgid "%s %s differ: gap" msgstr "%s %s differ: brecha" -#: src/elfcmp.c:702 +#: src/elfcmp.c:704 #, c-format msgid "Invalid value '%s' for --gaps parameter." msgstr "Valor inválido '%s' para parámetro --gaps" -#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289 -#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994 -#: src/unstrip.c:2023 +#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757 +#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289 +#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029 +#: src/unstrip.c:2058 #, c-format msgid "cannot open '%s'" msgstr "Imposible abrir '%s'" -#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174 +#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174 #, c-format msgid "cannot create ELF descriptor for '%s': %s" msgstr "No puede crear descriptor ELF para '%s': %s" -#: src/elfcmp.c:739 +#: src/elfcmp.c:741 #, c-format msgid "cannot create EBL descriptor for '%s'" msgstr "no se puede crear el descriptor EBL para '%s'" -#: src/elfcmp.c:757 src/findtextrel.c:409 +#: src/elfcmp.c:759 src/findtextrel.c:409 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "No se puede obtener el encabezamiento de sección %zu: %s" -#: src/elfcmp.c:767 +#: src/elfcmp.c:769 #, c-format msgid "cannot get content of section %zu: %s" msgstr "No se puede obtener contenido de sección %zu: %s" -#: src/elfcmp.c:777 src/elfcmp.c:791 +#: src/elfcmp.c:779 src/elfcmp.c:793 #, c-format msgid "cannot get relocation: %s" msgstr "No se puede obtener reubicación: %s" @@ -1321,11 +1360,11 @@ 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:78 src/readelf.c:123 +#: src/elflint.c:78 src/readelf.c:126 msgid "FILE..." msgstr "FICHERO..." -#: src/elflint.c:155 src/readelf.c:292 +#: src/elflint.c:155 src/readelf.c:298 #, c-format msgid "cannot open input file" msgstr "no se puede abrir el fichero de entrada" @@ -1344,7 +1383,7 @@ msgstr "error al cerrar el descriptor ELF: %s\n" msgid "No errors" msgstr "No hay errores" -#: src/elflint.c:219 src/readelf.c:468 +#: src/elflint.c:219 src/readelf.c:474 msgid "Missing file name.\n" msgstr "Falta el nombre de archivo.\n" @@ -1494,14 +1533,14 @@ msgstr "" "sección [%2d] '%s': el grupo de sección [%2zu] '%s' no precede al miembro de " "grupo\n" -#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628 -#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056 -#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336 +#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632 +#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061 +#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n" -#: src/elflint.c:604 src/elflint.c:1635 +#: src/elflint.c:604 src/elflint.c:1639 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1610,12 +1649,12 @@ msgid "" msgstr "" "Sección [%2d] '%s': símbolo %zu: función en sección COMMON no tiene sentido\n" -#: src/elflint.c:805 +#: src/elflint.c:809 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" msgstr "sección [%2d] '%s': símbolo %zu: st_value fuera de límites\n" -#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885 +#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889 #, c-format msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " @@ -1624,7 +1663,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu no se ajusta totalmente en la sección [%2d] " "'%s'\n" -#: src/elflint.c:820 +#: src/elflint.c:824 #, c-format msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " @@ -1633,7 +1672,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: sección de referencia [%2d] '%s' no tiene " "establecida bandera SHF_TLS\n" -#: src/elflint.c:830 src/elflint.c:878 +#: src/elflint.c:834 src/elflint.c:882 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " @@ -1642,7 +1681,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: st_value fuera de límites de sección de " "referencia [%2d] '%s'\n" -#: src/elflint.c:857 +#: src/elflint.c:861 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" @@ -1650,7 +1689,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: símbolo TLS, pero no hay entrada de " "programa TLS\n" -#: src/elflint.c:863 +#: src/elflint.c:867 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program " @@ -1659,7 +1698,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: símbolo TLS, pero no hay entrada de " "programa TLS\n" -#: src/elflint.c:871 +#: src/elflint.c:875 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] " @@ -1668,7 +1707,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: st_value falta sección de referencia [%2d] " "'%s'\n" -#: src/elflint.c:898 +#: src/elflint.c:902 #, c-format msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " @@ -1677,7 +1716,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: símbolo local fuera del rango descrito en " "sh_info\n" -#: src/elflint.c:905 +#: src/elflint.c:909 #, c-format msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " @@ -1686,12 +1725,12 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: símbolo non-local fuera del rango descrito " "en sh_info\n" -#: src/elflint.c:912 +#: src/elflint.c:916 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" msgstr "Sección [%2d] '%s': símbolo %zu: símbolo de sección non-local\n" -#: src/elflint.c:962 +#: src/elflint.c:966 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -1700,7 +1739,7 @@ msgstr "" "Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ se refiere a sección " "errada [%2d]\n" -#: src/elflint.c:969 +#: src/elflint.c:973 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -1709,7 +1748,7 @@ msgstr "" "Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ se refiere a sección [%2d] " "'%s'\n" -#: src/elflint.c:985 +#: src/elflint.c:989 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %# does not " @@ -1718,7 +1757,7 @@ msgstr "" "Sección [%2d] '%s': valor del símbolo _GLOBAL_OFFSET_TABLE_ %# no " "coincide con dirección de sección %s %#\n" -#: src/elflint.c:992 +#: src/elflint.c:996 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size % does not " @@ -1727,7 +1766,7 @@ msgstr "" "Sección [%2d] '%s': tamaño de símbolo _GLOBAL_OFFSET_TABLE_ % no " "coincide con tamaño de sección %s %\n" -#: src/elflint.c:1000 +#: src/elflint.c:1004 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -1736,7 +1775,7 @@ msgstr "" "Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ presente, pero no. sección " "got\n" -#: src/elflint.c:1016 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %# does not match dynamic " @@ -1745,7 +1784,7 @@ msgstr "" "sección [%2d] '%s': Valor de símbolo _DYNAMIC_ %# no coincide con la " "dirección de segmento%#\n" -#: src/elflint.c:1023 +#: src/elflint.c:1027 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size % does not match dynamic " @@ -1754,7 +1793,7 @@ msgstr "" "Sección [%2d] '%s': tamaño de símbolo _DYNAMIC % no coincide con " "tamaño de segmento %\n" -#: src/elflint.c:1036 +#: src/elflint.c:1040 #, c-format msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" @@ -1763,29 +1802,29 @@ msgstr "" "Sección [%2d] '%s': símbolo %zu: símbolo en tabla de símbolos dinámicos sin " "visibilidad predeterminada\n" -#: src/elflint.c:1040 +#: src/elflint.c:1044 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" msgstr "" "Sección [%2d] '%s': símbolo %zu: bit desconocido establecido en st_other\n" -#: src/elflint.c:1078 +#: src/elflint.c:1082 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "Sección [%2d] '%s': No se pueden obtener datos de sección\n" -#: src/elflint.c:1094 +#: src/elflint.c:1098 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "Sección [%2d] '%s': DT_RELCOUNT utilizada para esta sección RELA\n" -#: src/elflint.c:1105 src/elflint.c:1158 +#: src/elflint.c:1109 src/elflint.c:1162 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" "Sección [%2d] '%s': valor DT_RELCOUNT %d demasiado alto para esta sección\n" -#: src/elflint.c:1130 src/elflint.c:1183 +#: src/elflint.c:1134 src/elflint.c:1187 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -1794,7 +1833,7 @@ msgstr "" "Sección [%2d] '%s': reubicaciones relativas después de que el %d de índice " "haya sido especificado por DT_RELCOUNT\n" -#: src/elflint.c:1136 src/elflint.c:1189 +#: src/elflint.c:1140 src/elflint.c:1193 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -1803,50 +1842,50 @@ msgstr "" "Sección [%2d] '%s': reubicación no-relativa en %zu de índice; DT_RELCOUNT " "especificado %d reubicaciones relativas\n" -#: src/elflint.c:1148 +#: src/elflint.c:1152 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "sección [%2d] '%s': DT_RELACOUNT utilizado para esta sección REL\n" -#: src/elflint.c:1231 +#: src/elflint.c:1235 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "Sección [%2d] '%s': índice de sección de destino inválido\n" -#: src/elflint.c:1243 +#: src/elflint.c:1247 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "Sección [%2d] '%s': tipo de sección de destino inválido\n" -#: src/elflint.c:1251 +#: src/elflint.c:1255 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "Sección [%2d] '%s': sh_info debe ser cero\n" -#: src/elflint.c:1259 +#: src/elflint.c:1263 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "Sección [%2d] '%s': no reubicaciones para secciones de fusión posibles\n" -#: src/elflint.c:1267 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" msgstr "" "Sección [%2d] '%s': tamaño de entrada de sección no coincide con ElfXX_Rela\n" -#: src/elflint.c:1327 +#: src/elflint.c:1331 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "Reubicación de bandera pero no hay segmento de sólo lectura\n" -#: src/elflint.c:1354 +#: src/elflint.c:1358 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "Sección [%2d] '%s': reubicación %zu: tipo inválido\n" -#: src/elflint.c:1362 +#: src/elflint.c:1366 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -1855,12 +1894,12 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: tipo de reubicación inválido para el " "tipo de archivo\n" -#: src/elflint.c:1370 +#: src/elflint.c:1374 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "Sección [%2d] '%s': reubicación %zu: índice de símbolo inválido\n" -#: src/elflint.c:1388 +#: src/elflint.c:1392 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -1869,12 +1908,12 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: sólo el símbolo '_GLOBAL_OFFSET_TABLE_' " "puede utilizarse con %s\n" -#: src/elflint.c:1405 +#: src/elflint.c:1409 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "Sección [%2d] '%s': reubicación %zu: compensación fuera de límites\n" -#: src/elflint.c:1420 +#: src/elflint.c:1424 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -1883,7 +1922,7 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: reubicación de copia con símbolo de " "tipo %s\n" -#: src/elflint.c:1441 +#: src/elflint.c:1445 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -1892,24 +1931,24 @@ msgstr "" "Sección [%2d] '%s': reubicación %zu: sección de sólo-lectura modificada, " "pero no se estableció bandera de reubicación\n" -#: src/elflint.c:1456 +#: src/elflint.c:1460 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" "Sección [%2d] '%s': las reubicaciones se hacen con datos cargados y " "descargados\n" -#: src/elflint.c:1496 src/elflint.c:1547 +#: src/elflint.c:1500 src/elflint.c:1551 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "Sección [%2d] '%s': no puede obtener reubicación %zu: %s\n" -#: src/elflint.c:1623 +#: src/elflint.c:1627 #, c-format msgid "more than one dynamic section present\n" msgstr "más de una sección dinámica presente\n" -#: src/elflint.c:1641 +#: src/elflint.c:1645 #, fuzzy, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -1918,44 +1957,44 @@ msgstr "" "sección [%2d] '%s': nombrado como una tabla de cadena para la sección [%2d] " "'%s' pero el tipo no es SHT_STRTAB\n" -#: src/elflint.c:1649 +#: src/elflint.c:1653 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" "Sección [%2d] '%s': tamaño de entrada de sección no coincide con ElfXX_Dyn\n" -#: src/elflint.c:1654 src/elflint.c:1943 +#: src/elflint.c:1658 src/elflint.c:1947 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "Sección [%2d] '%s': sh_info no es cero\n" -#: src/elflint.c:1664 +#: src/elflint.c:1668 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" "Sección [%2d] '%s': no puede obtener entrada de sección dinámica %zu: %s\n" -#: src/elflint.c:1672 +#: src/elflint.c:1676 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "Sección [%2d] '%s': entradas non-DT_NULL siguen a la entrada DT_NULL\n" -#: src/elflint.c:1679 +#: src/elflint.c:1683 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "Sección [%2d] '%s': entrada %zu: etiqueta desconocida\n" -#: src/elflint.c:1690 +#: src/elflint.c:1694 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "Sección [%2d] '%s': entrada %zu: más de una entrada con etiqueta %s\n" -#: src/elflint.c:1700 +#: src/elflint.c:1704 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "Sección [%2d] '%s': entrada %zu: nivel 2 etiqueta %s utilizada\n" -#: src/elflint.c:1718 +#: src/elflint.c:1722 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" @@ -1963,7 +2002,7 @@ msgstr "" "Sección [%2d] '%s': entrada %zu: el valor DT_PLTREL debe ser DT_REL or " "DT_RELA\n" -#: src/elflint.c:1731 +#: src/elflint.c:1735 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " @@ -1972,14 +2011,14 @@ msgstr "" "Sección [%2d] '%s': entrada %zu: puntero no coincide con dirección de " "sección [%2d] '%s' al que hace referencia sh_link\n" -#: src/elflint.c:1774 +#: src/elflint.c:1778 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" "Sección [%2d] '%s': entrada %zu: valor %s debe apuntar en segmento cargado\n" -#: src/elflint.c:1789 +#: src/elflint.c:1793 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " @@ -1988,46 +2027,46 @@ msgstr "" "sección [%2d] '%s': entrada %zu: valor %s debe ser compensación válida en " "sección [%2d] '%s'\n" -#: src/elflint.c:1809 src/elflint.c:1837 +#: src/elflint.c:1813 src/elflint.c:1841 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "Sección [%2d] '%s': contiene entrada %s pero no %s\n" -#: src/elflint.c:1821 +#: src/elflint.c:1825 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "Sección [%2d] '%s': etiqueta obligatoria %s no está presente\n" -#: src/elflint.c:1830 +#: src/elflint.c:1834 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n" -#: src/elflint.c:1845 src/elflint.c:1852 +#: src/elflint.c:1849 src/elflint.c:1856 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "Sección [%2d] '%s': no todas las %s, %s, y %s están presentes\n" -#: src/elflint.c:1862 src/elflint.c:1866 +#: src/elflint.c:1866 src/elflint.c:1870 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" "Sección [%2d] '%s': etiqueta %s faltante en DSO marcada durante el pre-" "enlace\n" -#: src/elflint.c:1872 +#: src/elflint.c:1876 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" "Sección [%2d] '%s': archivo no-DSO marcado como dependencia durante el pre-" "enlace\n" -#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 +#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "Sección [%2d] '%s': etiqueta %s faltante en pre-enlace ejecutable\n" -#: src/elflint.c:1907 +#: src/elflint.c:1911 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" @@ -2035,37 +2074,37 @@ msgstr "" "Sección [%2d] '%s': sólo los archivos reubicables pueden tener índice de " "sección extendido\n" -#: src/elflint.c:1917 +#: src/elflint.c:1921 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" "Sección [%2d] '%s': índice de sección extendido no para tabla de símbolos\n" -#: src/elflint.c:1921 +#: src/elflint.c:1925 #, fuzzy, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" "Sección [%2d] '%s': índice de sección extendido no para tabla de símbolos\n" -#: src/elflint.c:1926 +#: src/elflint.c:1930 #, c-format msgid "cannot get data for symbol section\n" msgstr "no se puede obtener sección para símbolos\n" -#: src/elflint.c:1929 +#: src/elflint.c:1933 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "Sección [%2d] '%s': tamaño de entrada no coincide con Elf32_Word\n" -#: src/elflint.c:1938 +#: src/elflint.c:1942 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" "Sección [%2d] '%s': tabla de índice extendida demasiado pequeña para tabla " "de símbolos\n" -#: src/elflint.c:1953 +#: src/elflint.c:1957 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " @@ -2074,24 +2113,24 @@ msgstr "" "Sección [%2d] '%s': índice de sección extendida en sección [%2zu] '%s' se " "refiere a la misma tabla de símbolos\n" -#: src/elflint.c:1970 +#: src/elflint.c:1974 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "símbolo 0 debe tener índice de sección extendida cero\n" -#: src/elflint.c:1982 +#: src/elflint.c:1986 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "no puede obtener datos para símbolo %zu\n" -#: src/elflint.c:1987 +#: src/elflint.c:1991 #, c-format msgid "extended section index is % but symbol index is not XINDEX\n" msgstr "" "índice de sección extendida es % pero índice de símbolo no es " "XINDEX\n" -#: src/elflint.c:2003 src/elflint.c:2054 +#: src/elflint.c:2007 src/elflint.c:2058 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" @@ -2099,42 +2138,42 @@ msgstr "" "Sección [%2d] '%s': sección de tabla de dispersión es demasiado pequeña (es " "%ld, se espera %ld)\n" -#: src/elflint.c:2015 src/elflint.c:2066 +#: src/elflint.c:2019 src/elflint.c:2070 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "Sección [%2d] '%s': índice de la cadena es demasiado grande\n" -#: src/elflint.c:2029 src/elflint.c:2080 +#: src/elflint.c:2033 src/elflint.c:2084 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" "Sección [%2d] '%s': referencia de cubetas de dispersión %zu fuera de " "límites\n" -#: src/elflint.c:2039 +#: src/elflint.c:2043 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" "Sección [%2d] '%s': referencia de cadena de dispersión %zu fuera de límites\n" -#: src/elflint.c:2090 +#: src/elflint.c:2094 #, c-format msgid "section [%2d] '%s': hash chain reference % out of bounds\n" msgstr "" "Sección [%2d] '%s': referencia de cadena de dispersión % fuera de " "límites\n" -#: src/elflint.c:2103 +#: src/elflint.c:2107 #, fuzzy, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "Sección [%2d] '%s': no puede obtener datos: %s\n" -#: src/elflint.c:2115 +#: src/elflint.c:2119 #, fuzzy, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "Sección [%2d] '%s': tamaño de bitmask no es potencia de 2: %u\n" -#: src/elflint.c:2131 +#: src/elflint.c:2135 #, fuzzy, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " @@ -2143,14 +2182,14 @@ msgstr "" "Sección [%2d] '%s': sección de tabla de dispersión es demasiado pequeña (es " "%ld, se espera al menos least%ld)\n" -#: src/elflint.c:2140 +#: src/elflint.c:2144 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" "Sección [%2d] '%s': segundo cambio de función de dispersión demasiado " "grande: %u\n" -#: src/elflint.c:2174 +#: src/elflint.c:2178 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" @@ -2158,7 +2197,7 @@ msgstr "" "Sección [%2d] '%s': cadena de dispersión para cubetas %zu inferior a " "polarización de índice de símbolo\n" -#: src/elflint.c:2195 +#: src/elflint.c:2199 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " @@ -2167,7 +2206,7 @@ msgstr "" "Sección [%2d] '%s': el símbolo %u al que se hace referencia en cadena para " "cubeta %zu es indefinido\n" -#: src/elflint.c:2208 +#: src/elflint.c:2212 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" @@ -2175,7 +2214,7 @@ msgstr "" "Sección [%2d] '%s': valor de dispersión para símbolo %u en cadena para " "cubeta %zu está errado\n" -#: src/elflint.c:2217 +#: src/elflint.c:2221 #, fuzzy, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" @@ -2183,13 +2222,13 @@ msgstr "" "Sección [%2d] '%s': valor de dispersión para símbolo %u en cadena para " "cubeta %zu está errado\n" -#: src/elflint.c:2247 +#: src/elflint.c:2251 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" "Sección [%2d] '%s': cadena de dispersión para cubeta %zu fuera de limites\n" -#: src/elflint.c:2252 +#: src/elflint.c:2256 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" @@ -2197,43 +2236,43 @@ msgstr "" "Sección [%2d] '%s': referencia de símbolo en cadena para cubeta %zu fuera de " "límites\n" -#: src/elflint.c:2258 +#: src/elflint.c:2262 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" "Sección [%2d] '%s': bitmask no coincide con nombres en la tabla de " "dispersión\n" -#: src/elflint.c:2271 +#: src/elflint.c:2275 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" "Sección [%2d] '%s': archivos reubicables no pueden tener tablas de " "dispersión\n" -#: src/elflint.c:2289 +#: src/elflint.c:2293 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" "Sección [%2d] '%s': tabla de dispersión no para tabla de símbolos dinámicos\n" -#: src/elflint.c:2293 +#: src/elflint.c:2297 #, fuzzy, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "Sección [%2d] '%s': índice de sección de destino inválido\n" -#: src/elflint.c:2301 +#: src/elflint.c:2305 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "" "Sección [%2d] '%s': tamaño incorrecto de entrada de tabla de dispersión\n" -#: src/elflint.c:2306 +#: src/elflint.c:2310 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "Sección [%2d] '%s': no marcada para ser asignada\n" -#: src/elflint.c:2311 +#: src/elflint.c:2315 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " @@ -2242,46 +2281,46 @@ msgstr "" "Sección [%2d] '%s': tabla de dispersión no tiene ni siquiera espacio para " "entradas administrativas iniciales\n" -#: src/elflint.c:2360 +#: src/elflint.c:2364 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" "sh_link en secciones de dispersión [%2zu] '%s' y [%2zu] '%s' no son " "idénticas\n" -#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484 +#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488 #, fuzzy, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" -#: src/elflint.c:2405 +#: src/elflint.c:2409 #, fuzzy, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "Sección [%2d] '%s': grupo de sección sin palabra de banderas\n" -#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497 +#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501 #, fuzzy, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "sección [%2zu] '%s' debe ser asignada\n" -#: src/elflint.c:2431 +#: src/elflint.c:2435 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index % (max_nsyms: " "%, nentries: %\n" msgstr "" -#: src/elflint.c:2518 +#: src/elflint.c:2522 #, fuzzy, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "Sección [%2zu]: nombre inválido\n" -#: src/elflint.c:2528 src/elflint.c:2532 +#: src/elflint.c:2532 src/elflint.c:2536 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "Sección [%2zu] '%s': referencia al índice de símbolo 0\n" -#: src/elflint.c:2539 +#: src/elflint.c:2543 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " @@ -2290,7 +2329,7 @@ msgstr "" "Símbolo %d nombrado en nueva tabla de dispersión en [%2zu] '%s' pero no en " "la tabla de dispersión anterior en [%2zu] '%s'\n" -#: src/elflint.c:2551 +#: src/elflint.c:2555 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " @@ -2299,12 +2338,12 @@ msgstr "" "Símbolo %d nombrado en la tabla de dispersión anterior en [%2zu] '%s' pero " "no en la nueva tabla de dispersión en [%2zu] '%s'\n" -#: src/elflint.c:2567 +#: src/elflint.c:2571 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "Sección [%2d] '%s': nonzero sh_%s para sección NULL\n" -#: src/elflint.c:2587 +#: src/elflint.c:2591 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" @@ -2312,99 +2351,99 @@ msgstr "" "Sección [%2d] '%s': grupos de sección sólo permitidos en archivos de objeto " "reubicables\n" -#: src/elflint.c:2598 +#: src/elflint.c:2602 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "Sección [%2d] '%s': no puede obtener tabla de símbolos: %s\n" -#: src/elflint.c:2603 +#: src/elflint.c:2607 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" "Sección [%2d] '%s': referencia de sección en sh_link no es una tabla de " "símbolos\n" -#: src/elflint.c:2609 +#: src/elflint.c:2613 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "Sección [%2d] '%s': índice de símbolo inválido en sh_info\n" -#: src/elflint.c:2614 +#: src/elflint.c:2618 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "Sección [%2d] '%s': sh_flags no cero\n" -#: src/elflint.c:2621 +#: src/elflint.c:2625 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "Sección [%2d] '%s': no puede obtener símbolo para firma\n" -#: src/elflint.c:2625 +#: src/elflint.c:2629 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "Sección [%2d] '%s': no puede obtener símbolo para firma\n" -#: src/elflint.c:2630 +#: src/elflint.c:2634 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "" "sección [%2d] '%s': el símbolo de firma no puede ser una cadena vacía\n" -#: src/elflint.c:2636 +#: src/elflint.c:2640 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "Sección [%2d] '%s': sh_flags no establecida correctamente\n" -#: src/elflint.c:2642 +#: src/elflint.c:2646 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "Sección [%2d] '%s': no puede obtener datos: %s\n" -#: src/elflint.c:2651 +#: src/elflint.c:2655 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" "Sección [%2d] '%s': tamaño de sección no es múltiplo de tamaño de " "(Elf32_Word)\n" -#: src/elflint.c:2656 +#: src/elflint.c:2660 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "Sección [%2d] '%s': grupo de sección sin palabra de banderas\n" -#: src/elflint.c:2662 +#: src/elflint.c:2666 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "Sección [%2d] '%s': grupo de sección sin miembro\n" -#: src/elflint.c:2666 +#: src/elflint.c:2670 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n" -#: src/elflint.c:2677 +#: src/elflint.c:2681 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "Sección [%2d] '%s': banderas de grupo de sección desconocido\n" -#: src/elflint.c:2689 +#: src/elflint.c:2693 #, fuzzy, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "Sección [%2d] '%s': índice de sección %Zu fuera de rango\n" -#: src/elflint.c:2698 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" "Sección [%2d] '%s': no se puede obtener encabezamiento de sección para " "elemento %zu: %s\n" -#: src/elflint.c:2705 +#: src/elflint.c:2709 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "Sección [%2d] '%s': grupo de sección contiene otro grupo [%2d] '%s'\n" -#: src/elflint.c:2711 +#: src/elflint.c:2715 #, fuzzy, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2413,12 +2452,12 @@ msgstr "" "Sección [%2d] '%s': elemento %Zu hace referencia a sección [%2d] '%s' sin " "establecer bandera SHF_GROUP\n" -#: src/elflint.c:2718 +#: src/elflint.c:2722 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "Sección [%2d] '%s' está contenida en más de un grupo de sección\n" -#: src/elflint.c:2907 +#: src/elflint.c:2912 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " @@ -2427,7 +2466,7 @@ msgstr "" "Sección [%2d] '%s' se refiere en sh_link a la sección [%2d] '%s' la cual no " "es una tabla de símbolos dinámicos\n" -#: src/elflint.c:2919 +#: src/elflint.c:2924 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " @@ -2436,29 +2475,29 @@ msgstr "" "Sección [%2d] '%s' tiene un número diferente de entradas a la de la tabla de " "símbolos [%2d] '%s'\n" -#: src/elflint.c:2935 +#: src/elflint.c:2940 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "" "Sección [%2d] '%s': el símbolo %d: no se pueden leer datos de versión\n" -#: src/elflint.c:2951 +#: src/elflint.c:2956 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" "Sección [%2d] '%s': el símbolo %d: el símbolo local con alcance mundial\n" -#: src/elflint.c:2959 +#: src/elflint.c:2964 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "Sección [%2d] '%s': símbolo %d: símbolo local con versión\n" -#: src/elflint.c:2973 +#: src/elflint.c:2978 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "Sección [%2d] '%s': símbolo %d: índice de versión inválida %d\n" -#: src/elflint.c:2978 +#: src/elflint.c:2983 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" @@ -2466,7 +2505,7 @@ msgstr "" "Sección [%2d] '%s': símbolo %d: índice de versión %d es para versión " "definida\n" -#: src/elflint.c:2988 +#: src/elflint.c:2993 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" @@ -2474,46 +2513,46 @@ msgstr "" "Sección [%2d] '%s': símbolo %d: índice de versión %d es para la versión " "solicitada\n" -#: src/elflint.c:3041 +#: src/elflint.c:3046 #, c-format msgid "more than one version reference section present\n" msgstr "Más de una sección de referencia de versión presente\n" -#: src/elflint.c:3049 src/elflint.c:3196 +#: src/elflint.c:3054 src/elflint.c:3201 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "Sección [%2d] '%s': sh_link no se enlaza a la tabla de cadenas\n" -#: src/elflint.c:3074 src/elflint.c:3250 +#: src/elflint.c:3079 src/elflint.c:3255 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "Sección [%2d] '%s': entrada %d tiene versión %d errada\n" -#: src/elflint.c:3081 src/elflint.c:3257 +#: src/elflint.c:3086 src/elflint.c:3262 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene compensación errada de datos " "auxiliares\n" -#: src/elflint.c:3091 +#: src/elflint.c:3096 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "Sección [%2d] '%s': entrada %d tiene referencia de archivo inválida\n" -#: src/elflint.c:3099 +#: src/elflint.c:3104 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "Sección [%2d] '%s': %d hace referencia a dependencia desconocida\n" -#: src/elflint.c:3111 +#: src/elflint.c:3116 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene bandera " "desconocida\n" -#: src/elflint.c:3119 +#: src/elflint.c:3124 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " @@ -2522,7 +2561,7 @@ msgstr "" "Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene referencia de " "nombre inválida\n" -#: src/elflint.c:3128 +#: src/elflint.c:3133 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " @@ -2531,7 +2570,7 @@ msgstr "" "Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene valor de " "dispersión: %#x, esperado %#x\n" -#: src/elflint.c:3137 +#: src/elflint.c:3142 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " @@ -2540,7 +2579,7 @@ msgstr "" "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene nombre duplicado " "'%s'\n" -#: src/elflint.c:3148 +#: src/elflint.c:3153 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" @@ -2548,14 +2587,14 @@ msgstr "" "sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene próximo campo " "errado\n" -#: src/elflint.c:3165 src/elflint.c:3341 +#: src/elflint.c:3170 src/elflint.c:3346 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" "sección [%2d] '%s': entrada %d tiene compensación inválida para próxima " "entrada\n" -#: src/elflint.c:3173 src/elflint.c:3349 +#: src/elflint.c:3178 src/elflint.c:3354 #, fuzzy, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " @@ -2564,46 +2603,46 @@ msgstr "" "sección [%2d] '%s': entrada %d tiene compensación inválida para próxima " "entrada\n" -#: src/elflint.c:3188 +#: src/elflint.c:3193 #, c-format msgid "more than one version definition section present\n" msgstr "más de una definición de versión presente de sección\n" -#: src/elflint.c:3235 +#: src/elflint.c:3240 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "Sección [%2d] '%s': más de una definición de BASE\n" -#: src/elflint.c:3239 +#: src/elflint.c:3244 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" "Sección [%2d] '%s': definición de BASE debe tener índice VER_NDX_GLOBAL\n" -#: src/elflint.c:3245 +#: src/elflint.c:3250 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "Sección [%2d] '%s': entrada %d tiene bandera desconocida\n" -#: src/elflint.c:3272 +#: src/elflint.c:3277 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida\n" -#: src/elflint.c:3279 +#: src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene valor de dispersión errado: %#x, " "esperado %#x\n" -#: src/elflint.c:3287 +#: src/elflint.c:3292 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene nombre de versión duplicado '%s'\n" -#: src/elflint.c:3307 +#: src/elflint.c:3312 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" @@ -2611,34 +2650,34 @@ msgstr "" "Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida en datos " "auxiliares\n" -#: src/elflint.c:3324 +#: src/elflint.c:3329 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" "Sección [%2d] '%s': entrada %d tiene próximo campo errado en datos " "auxiliares\n" -#: src/elflint.c:3357 +#: src/elflint.c:3362 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "Sección [%2d] '%s': no hay definición de BASE\n" -#: src/elflint.c:3373 +#: src/elflint.c:3378 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "Sección [%2d] '%s': desconocida versión principal '%s'\n" -#: src/elflint.c:3386 +#: src/elflint.c:3391 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "Sección [%2d] '%s': sección de atributos de objeto vacío\n" -#: src/elflint.c:3407 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "Sección[%2d] '%s': formato de atributo no reconocido\n" -#: src/elflint.c:3423 +#: src/elflint.c:3428 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" @@ -2646,21 +2685,21 @@ msgstr "" "Sección[%2d] '%s': compensación %zu: campo de longitud cero en sección de " "atributo\n" -#: src/elflint.c:3432 +#: src/elflint.c:3437 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" "Sección[%2d] '%s': compensación %zu: longitud inválida en sección de " "atributo\n" -#: src/elflint.c:3444 +#: src/elflint.c:3449 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" "Sección[%2d] '%s': compensación %zu: cadena de nombre de proveedor sin " "terminar\n" -#: src/elflint.c:3461 +#: src/elflint.c:3466 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" @@ -2668,12 +2707,12 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de sub-" "sección de atributo\n" -#: src/elflint.c:3470 +#: src/elflint.c:3475 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "Sección [%2d] '%s': compensación %zu: sección de atributo truncado\n" -#: src/elflint.c:3479 +#: src/elflint.c:3484 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" @@ -2681,7 +2720,7 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: campo de longitud cero length en sub-" "sección de atributo\n" -#: src/elflint.c:3494 +#: src/elflint.c:3499 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" @@ -2689,7 +2728,7 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: longitud inválida en sub-sección de " "atributo\n" -#: src/elflint.c:3505 +#: src/elflint.c:3510 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" @@ -2697,26 +2736,26 @@ msgstr "" "Sección[%2d] '%s': compensación %zu: sub-sección de atributo tiene etiqueta " "inesperada %u\n" -#: src/elflint.c:3523 +#: src/elflint.c:3528 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" "Sección[%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de " "atributo\n" -#: src/elflint.c:3534 +#: src/elflint.c:3539 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "" "Sección [%2d] '%s': compensación %zu: cadena sin terminar en atributo\n" -#: src/elflint.c:3547 +#: src/elflint.c:3552 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "" "Sección [%2d] '%s': compensación %zu: etiqueta de atributo no reconocida %u\n" -#: src/elflint.c:3551 +#: src/elflint.c:3556 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %\n" @@ -2724,12 +2763,12 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: no reconocido %s valor de atributo " "%\n" -#: src/elflint.c:3561 +#: src/elflint.c:3566 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "Sección [%2d] '%s': compensación %zu: proveedor '%s' desconocido\n" -#: src/elflint.c:3567 +#: src/elflint.c:3572 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" @@ -2737,47 +2776,47 @@ msgstr "" "Sección [%2d] '%s': compensación %zu: extra bytes después de la última " "sección de atributo\n" -#: src/elflint.c:3656 +#: src/elflint.c:3661 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "no puede obtener encabezamiento de sección de sección zeroth\n" -#: src/elflint.c:3660 +#: src/elflint.c:3665 #, c-format msgid "zeroth section has nonzero name\n" msgstr "Sección zeroth tiene nombre nonzero\n" -#: src/elflint.c:3662 +#: src/elflint.c:3667 #, c-format msgid "zeroth section has nonzero type\n" msgstr "Sección zeroth tiene tipo nonzero\n" -#: src/elflint.c:3664 +#: src/elflint.c:3669 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "Sección zeroth tiene banderas nonzero\n" -#: src/elflint.c:3666 +#: src/elflint.c:3671 #, c-format msgid "zeroth section has nonzero address\n" msgstr "Sección zeroth tiene dirección nonzero\n" -#: src/elflint.c:3668 +#: src/elflint.c:3673 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "Sección zeroth tiene compensación nonzero\n" -#: src/elflint.c:3670 +#: src/elflint.c:3675 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "Sección zeroth tiene valor de alineación nonzero\n" -#: src/elflint.c:3672 +#: src/elflint.c:3677 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "Sección zeroth tiene valor de tamaño de entrada nonzero\n" -#: src/elflint.c:3675 +#: src/elflint.c:3680 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -2786,7 +2825,7 @@ msgstr "" "Sección zeroth tiene valor de tamaño nonzero mientras que el encabezamiento " "ELF tiene valor shnum nonzero\n" -#: src/elflint.c:3679 +#: src/elflint.c:3684 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2795,7 +2834,7 @@ msgstr "" "Sección zeroth tiene valor de enlace nonzero mientras que el encabezamiento " "ELF no señala sobreflujo en shstrndx\n" -#: src/elflint.c:3683 +#: src/elflint.c:3688 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2804,27 +2843,27 @@ msgstr "" "la sección zeroth tiene un valor de enlace distinto a cero mientras que el " "encabezamiento ELF no señala desbordamiento en phnum\n" -#: src/elflint.c:3700 +#: src/elflint.c:3706 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "No se puede obtener encabezamiento para sección [%2zu] '%s': %s\n" -#: src/elflint.c:3709 +#: src/elflint.c:3715 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "Sección [%2zu]: nombre inválido\n" -#: src/elflint.c:3736 +#: src/elflint.c:3742 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "Sección [%2d] '%s' tiene tipo errado: %s esperado, es %s\n" -#: src/elflint.c:3752 +#: src/elflint.c:3760 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "Sección [%2zu] '%s' tiene banderas erradas: %s esperado, es %s\n" -#: src/elflint.c:3769 +#: src/elflint.c:3778 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -2832,12 +2871,12 @@ msgstr "" "Sección [%2zu] '%s' tiene banderas erradas: %s esperado y posiblemente %s, " "es %s\n" -#: src/elflint.c:3787 +#: src/elflint.c:3796 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "Sección [%2zu] '%s' presente en archivo objeto\n" -#: src/elflint.c:3793 src/elflint.c:3825 +#: src/elflint.c:3802 src/elflint.c:3834 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -2845,7 +2884,7 @@ msgstr "" "Sección [%2zu] '%s' tiene bandera SHF_ALLOC establecida pero no es un " "segmento cargable\n" -#: src/elflint.c:3798 src/elflint.c:3830 +#: src/elflint.c:3807 src/elflint.c:3839 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -2854,7 +2893,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene bandera SHF_ALLOC establecida pero hay " "segmentos cargables\n" -#: src/elflint.c:3806 +#: src/elflint.c:3815 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -2862,22 +2901,22 @@ msgstr "" "Sección [%2zu] '%s' es tabla de índice de sección de extensión en archivo no-" "objeto\n" -#: src/elflint.c:3849 +#: src/elflint.c:3858 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "Sección [%2zu] '%s': tamaño no es múltiplo de tamaño de entrada\n" -#: src/elflint.c:3854 +#: src/elflint.c:3863 #, c-format msgid "cannot get section header\n" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/elflint.c:3864 +#: src/elflint.c:3873 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n" -#: src/elflint.c:3878 +#: src/elflint.c:3888 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" @@ -2885,59 +2924,76 @@ msgstr "" "Sección [%2zu] '%s' contiene bandera(s) de procesador-específico inválidas " "%#\n" -#: src/elflint.c:3885 +#: src/elflint.c:3895 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "Sección [%2zu] '%s' contiene bandera(s) desconocidas %#\n" -#: src/elflint.c:3893 +#: src/elflint.c:3903 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" -#: src/elflint.c:3901 +#: src/elflint.c:3913 +#, fuzzy, c-format +msgid "section [%2zu] '%s': allocated section cannot be compressed\n" +msgstr "" +"Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n" + +#: src/elflint.c:3918 +#, fuzzy, c-format +msgid "section [%2zu] '%s': nobits section cannot be compressed\n" +msgstr "Sección [%2d] '%s': no hay sección de dispersión presente\n" + +#: src/elflint.c:3924 +#, fuzzy, c-format +msgid "" +"section [%2zu] '%s': compressed section with no compression header: %s\n" +msgstr "Sección [%2d] '%s': grupo de sección con sólo un miembro\n" + +#: src/elflint.c:3930 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "Sección [%2zu] '%s': referencia de sección inválida en valor de enlace\n" -#: src/elflint.c:3906 +#: src/elflint.c:3935 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "Sección [%2zu] '%s': referencia de sección inválida en valor de información\n" -#: src/elflint.c:3913 +#: src/elflint.c:3942 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" "Sección [%2zu] '%s': bandera de cadenas establecida sin bandera de fusión\n" -#: src/elflint.c:3918 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "Sección [%2zu] '%s': bandera de fusión establecida pero tamaño de entrada es " "cero\n" -#: src/elflint.c:3936 +#: src/elflint.c:3965 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" "Sección [%2zu] '%s' tiene un tipo %d inesperado para una sección ejecutable\n" -#: src/elflint.c:3945 +#: src/elflint.c:3974 #, fuzzy, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n" -#: src/elflint.c:3952 +#: src/elflint.c:3981 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "Sección [%2zu] '%s' es tanto de ejecución como de escritura\n" -#: src/elflint.c:3982 +#: src/elflint.c:4012 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -2946,7 +3002,7 @@ msgstr "" "Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de " "encabezamiento de programa %d\n" -#: src/elflint.c:3992 +#: src/elflint.c:4022 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -2955,7 +3011,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en " "segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4018 +#: src/elflint.c:4048 #, fuzzy, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -2964,7 +3020,7 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero es leída desde el archivo en " "segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4029 +#: src/elflint.c:4059 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -2973,18 +3029,18 @@ msgstr "" "Sección [%2zu] '%s' no tiene tipo NOBITS pero no es leída desde el fichero " "en segmento de entrada de encabezamiento de programa %d\n" -#: src/elflint.c:4040 +#: src/elflint.c:4070 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "Sección [%2zu] '%s' es ejecutable en segmento no ejecutable %d\n" -#: src/elflint.c:4050 +#: src/elflint.c:4080 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" "Sección [%2zu] '%s' es de escritura en segmento que no es de escritura %d\n" -#: src/elflint.c:4060 +#: src/elflint.c:4090 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -2992,7 +3048,7 @@ msgstr "" "Sección [%2zu] '%s': asignación de bandera establecida pero sección no en " "ningún segmento cargado\n" -#: src/elflint.c:4066 +#: src/elflint.c:4096 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -3001,7 +3057,7 @@ msgstr "" "Sección [%2zu] '%s': encabezamiento ELF dice esta es la tabla de cadena de " "encabezamiento de sección, pero el tipo no es SHT_TYPE\n" -#: src/elflint.c:4074 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -3009,32 +3065,32 @@ msgstr "" "sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de símbolos " "dinámicos\n" -#: src/elflint.c:4125 +#: src/elflint.c:4155 #, c-format msgid "more than one version symbol table present\n" msgstr "Más de una tabla de símbolos presente\n" -#: src/elflint.c:4148 +#: src/elflint.c:4178 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" "Entrada de encabezamiento de programa INTERP pero no la sección .interp\n" -#: src/elflint.c:4159 +#: src/elflint.c:4189 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" "segmento cargable [%u] es ejecutable pero no contiene secciones ejecutables\n" -#: src/elflint.c:4165 +#: src/elflint.c:4195 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "segmento cargable [%u] es de escritura pero contiene secciones protegidas " "contra escritura\n" -#: src/elflint.c:4176 +#: src/elflint.c:4206 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3043,26 +3099,26 @@ msgstr "" "Sección no .gnu.versym presente, pero la sección .gnu.versym_d o la sección ." "gnu.versym_r existen\n" -#: src/elflint.c:4189 +#: src/elflint.c:4219 #, c-format msgid "duplicate version index %d\n" msgstr "Duplicar índice de versión %d\n" -#: src/elflint.c:4203 +#: src/elflint.c:4233 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" "Sección .gnu.versym presente sin las secciones .gnu.versym_d o .gnu." "versym_r\n" -#: src/elflint.c:4252 +#: src/elflint.c:4282 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: tipo de nota de fichero core desconocido % en compensación " "%\n" -#: src/elflint.c:4256 +#: src/elflint.c:4286 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" @@ -3070,14 +3126,14 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero core desconocido % en " "compensación %Zu\n" -#: src/elflint.c:4279 +#: src/elflint.c:4309 #, fuzzy, c-format msgid "phdr[%d]: unknown object file note type % at offset %zu\n" msgstr "" "phdr[%d]: tipo de nota de fichero objeto desconocido % en " "compensación %Zu\n" -#: src/elflint.c:4283 +#: src/elflint.c:4313 #, fuzzy, c-format msgid "" "section [%2d] '%s': unknown object file note type % at offset %zu\n" @@ -3085,40 +3141,40 @@ msgstr "" "Sección [%2d] '%s': tipo de nota de fichero objeto desconocido % en " "compensación %Zu\n" -#: src/elflint.c:4300 +#: src/elflint.c:4330 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: no hay entradas de nota definidas para el tipo de archivo\n" -#: src/elflint.c:4319 +#: src/elflint.c:4349 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: no puede obtener contenido de sección de nota: %s\n" -#: src/elflint.c:4322 +#: src/elflint.c:4352 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: extra % bytes después de la última nota\n" -#: src/elflint.c:4343 +#: src/elflint.c:4373 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" "Sección [%2d] '%s': no hay entradas de nota definidas para el tipo de " "archivo\n" -#: src/elflint.c:4350 +#: src/elflint.c:4380 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" "Sección[%2d] '%s': no se puede obtener el contenido de sección de nota\n" -#: src/elflint.c:4353 +#: src/elflint.c:4383 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "Sección[%2d] '%s': extra % bytes después de la última nota\n" -#: src/elflint.c:4371 +#: src/elflint.c:4401 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3126,145 +3182,145 @@ msgstr "" "Sólo ejecutables, objetos compartidos y ficheros core pueden tener " "encabezamientos de programas\n" -#: src/elflint.c:4386 +#: src/elflint.c:4416 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "no se puede obtener entrada de encabezamiento %d: %s\n" -#: src/elflint.c:4395 +#: src/elflint.c:4425 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "entrada de encabezamiento de programa %d: tipo %# de entrada de " "encabezamiento de programa desconocido\n" -#: src/elflint.c:4406 +#: src/elflint.c:4436 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "Más de una entrada INTERP en encabezamiento de programa\n" -#: src/elflint.c:4414 +#: src/elflint.c:4444 #, c-format msgid "more than one TLS entry in program header\n" msgstr "más de una entrada TLS en encabezamiento de programa\n" -#: src/elflint.c:4421 +#: src/elflint.c:4451 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "ejecutable estático no puede tener secciones dinámicas\n" -#: src/elflint.c:4435 +#: src/elflint.c:4465 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "Referencia de sección dinámica en encabezamiento de programa tiene " "compensación errada\n" -#: src/elflint.c:4438 +#: src/elflint.c:4468 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" "No coinciden tamaño de sección dinámica en programa y encabezamiento de " "sección\n" -#: src/elflint.c:4448 +#: src/elflint.c:4478 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "Más de una entrada GNU_RELRO en encabezamiento de programa\n" -#: src/elflint.c:4469 +#: src/elflint.c:4499 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "Segmento cargable GNU_RELRO que se aplica no es de escritura\n" -#: src/elflint.c:4480 +#: src/elflint.c:4510 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" "Banderas de segmento cargable [%u] no coinciden con banderas GNU_RELRO [%u]\n" -#: src/elflint.c:4487 +#: src/elflint.c:4517 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4496 src/elflint.c:4519 +#: src/elflint.c:4526 src/elflint.c:4549 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "Segmento %s no contenido en un segmento cargable\n" -#: src/elflint.c:4525 +#: src/elflint.c:4555 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" "Compensación de encabezamiento de programa en encabezamiento ELF y entrada " "PHDR no coinciden" -#: src/elflint.c:4550 +#: src/elflint.c:4580 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "Referencia de tabla de búsqueda de marco de llamada en encabezamiento de " "programa tiene una compensación errada\n" -#: src/elflint.c:4553 +#: src/elflint.c:4583 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "Tamaño de tabla de búsqueda de marco de llamada no coincide con programa y " "encabezamiento de sección\n" -#: src/elflint.c:4566 +#: src/elflint.c:4596 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "PT_GNU_EH_FRAME presente pero no la sección.eh_frame_hdr\n" -#: src/elflint.c:4574 +#: src/elflint.c:4604 #, c-format msgid "call frame search table must be allocated\n" msgstr "tabla de búsqueda de marco de llamada debe ser asignada\n" -#: src/elflint.c:4577 +#: src/elflint.c:4607 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "sección [%2zu] '%s' debe ser asignada\n" -#: src/elflint.c:4581 +#: src/elflint.c:4611 #, c-format msgid "call frame search table must not be writable\n" msgstr "" "tabla de búsqueda de marco de llamada no debe tener permiso de escritura\n" -#: src/elflint.c:4584 +#: src/elflint.c:4614 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "sección [%2zu] '%s' no debe tener permiso de escritura\n" -#: src/elflint.c:4589 +#: src/elflint.c:4619 #, c-format msgid "call frame search table must not be executable\n" msgstr "tabla de búsqueda de marco de llamada no debe ser ejecutable\n" -#: src/elflint.c:4592 +#: src/elflint.c:4622 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "sección [%2zu] '%s' no debe ser ejecutable\n" -#: src/elflint.c:4603 +#: src/elflint.c:4633 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" "entrada de encabezamiento de programa %d: tamaño de fichero mayor que el " "tamaño de memoria\n" -#: src/elflint.c:4610 +#: src/elflint.c:4640 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" "entrada de encabezamiento de programa %d: alineamiento no es potencia de 2\n" -#: src/elflint.c:4613 +#: src/elflint.c:4643 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3273,7 +3329,7 @@ msgstr "" "entrada de encabezamiento de programa %d: compensación de fichero y " "dirección virtual no módulo de alineación\n" -#: src/elflint.c:4626 +#: src/elflint.c:4656 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3282,12 +3338,12 @@ msgstr "" "ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de " "encabezamiento de programa PT_GNU_EH_FRAME" -#: src/elflint.c:4660 +#: src/elflint.c:4690 #, c-format msgid "cannot read ELF header: %s\n" msgstr "No se puede leer encabezamiento ELF: %s\n" -#: src/elflint.c:4686 +#: src/elflint.c:4716 #, c-format msgid "text relocation flag set but not needed\n" msgstr "Bandera de reubicación de texto establecida pero no necesaria\n" @@ -3309,7 +3365,7 @@ msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "" "Localizar origen de reubicaciones de texto en FICHEROS (a.out por defecto)." -#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83 +#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" msgstr "[FICHERO...]" @@ -3821,8 +3877,8 @@ msgid "Warning: size of `%s' changed from % in %s to % in %s" msgstr "" "Advertencia: el tamaño de `%s' cambió de % en %s a % en %s" -#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527 -#: src/readelf.c:829 src/strip.c:589 +#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852 +#: src/strip.c:589 #, c-format msgid "cannot determine number of sections: %s" msgstr "no se pudieron determinar el número de secciones: %s" @@ -4078,7 +4134,7 @@ msgstr "error interno: sección non-nobits sigue a sección nobits" msgid "cannot get header of 0th section: %s" msgstr "No se puede obtener encabezamiento de sección 0th: %s" -#: src/ldgeneric.c:6930 src/unstrip.c:1893 +#: src/ldgeneric.c:6930 src/unstrip.c:1929 #, c-format msgid "cannot update ELF header: %s" msgstr "No se puede actualizar encabezamiento ELF: %s" @@ -4149,43 +4205,43 @@ msgstr "" msgid "default visibility set as local and global" msgstr "la visibilidad establecida por defecto establecida como local y global" -#: src/nm.c:65 src/strip.c:67 +#: src/nm.c:66 src/strip.c:67 msgid "Output selection:" msgstr "Selección de salida:" -#: src/nm.c:66 +#: src/nm.c:67 msgid "Display debugger-only symbols" msgstr "Mostrar sólo símbolos del depurador" -#: src/nm.c:67 +#: src/nm.c:68 msgid "Display only defined symbols" msgstr "Mostrar sólo símbolos definidos" -#: src/nm.c:70 +#: src/nm.c:71 msgid "Display dynamic symbols instead of normal symbols" msgstr "Mostrar símbolos dinámicos en lugar de símbolos normales" -#: src/nm.c:71 +#: src/nm.c:72 msgid "Display only external symbols" msgstr "Mostrar sólo símbolos externos" -#: src/nm.c:72 +#: src/nm.c:73 msgid "Display only undefined symbols" msgstr "Mostrar sólo símbolos indefinidos" -#: src/nm.c:74 +#: src/nm.c:75 msgid "Include index for symbols from archive members" msgstr "Incluir índices para símbolos de miembros de archivo" -#: src/nm.c:76 src/size.c:57 +#: src/nm.c:77 src/size.c:57 msgid "Output format:" msgstr "Formato de salida:" -#: src/nm.c:78 +#: src/nm.c:79 msgid "Print name of the input file before every symbol" msgstr "Imprimir nombre de archivo de entrada antes de cada símbolo" -#: src/nm.c:81 +#: src/nm.c:82 msgid "" "Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The " "default is `sysv'" @@ -4193,73 +4249,73 @@ msgstr "" "Usar el formato de salida FORMATO. FORMATO puede ser o bien `bsd', o " "`sysv', o `posix'. El establecido por defecto es `sysv'" -#: src/nm.c:83 +#: src/nm.c:84 msgid "Same as --format=bsd" msgstr "lo mismo que --format=bsd" -#: src/nm.c:84 +#: src/nm.c:85 msgid "Same as --format=posix" msgstr "lo mismo que --format=posix" -#: src/nm.c:85 src/size.c:63 +#: src/nm.c:86 src/size.c:63 msgid "Use RADIX for printing symbol values" msgstr "Utilizar RADIX para imprimir valores de símbolo" -#: src/nm.c:86 +#: src/nm.c:87 #, fuzzy msgid "Mark special symbols" msgstr "Marcar símbolos débiles" -#: src/nm.c:88 +#: src/nm.c:89 msgid "Print size of defined symbols" msgstr "Tamaño de impresión de símbolos definidos" -#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72 +#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72 msgid "Output options:" msgstr "Opciones de salida:" -#: src/nm.c:91 +#: src/nm.c:92 msgid "Sort symbols numerically by address" msgstr "Ordenar los símbolos numéricos por dirección" -#: src/nm.c:93 +#: src/nm.c:94 msgid "Do not sort the symbols" msgstr "No ordenar los símbolos" -#: src/nm.c:94 +#: src/nm.c:95 msgid "Reverse the sense of the sort" msgstr "Invertir el orden" -#: src/nm.c:97 +#: src/nm.c:98 msgid "Decode low-level symbol names into source code names" msgstr "" -#: src/nm.c:104 +#: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "Listar símbolos de FICHEROS (a.out por defecto)." -#: src/nm.c:115 src/objdump.c:79 +#: src/nm.c:116 src/objdump.c:79 #, fuzzy msgid "Output formatting" msgstr "Formato de salida:" -#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127 +#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127 #, fuzzy, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: ERROR INTERNO %d (%s-%s): %s" -#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325 +#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325 #: src/strip.c:2280 #, c-format msgid "while closing '%s'" msgstr "error al cerrar '%s'" -#: src/nm.c:416 src/objdump.c:292 src/strip.c:391 +#: src/nm.c:417 src/objdump.c:292 src/strip.c:391 #, c-format msgid "%s: File format not recognized" msgstr "%s: No se reconoce el formato del fichero" -#: src/nm.c:456 +#: src/nm.c:457 #, fuzzy msgid "" "\n" @@ -4268,42 +4324,42 @@ msgstr "" "\n" "Índice de archivo:" -#: src/nm.c:465 +#: src/nm.c:466 #, c-format msgid "invalid offset %zu for symbol %s" msgstr "Compensación %zu inválida para símbolo %s" -#: src/nm.c:470 +#: src/nm.c:471 #, c-format msgid "%s in %s\n" msgstr "%s en %s\n" -#: src/nm.c:478 +#: src/nm.c:479 #, c-format msgid "cannot reset archive offset to beginning" msgstr "imposible restablecer compensación de archivo al inicio" -#: src/nm.c:503 src/objdump.c:340 +#: src/nm.c:504 src/objdump.c:340 #, c-format msgid "%s%s%s: file format not recognized" msgstr "%s%s%s: no se reconoció el formato de fichero" -#: src/nm.c:715 +#: src/nm.c:719 #, c-format msgid "cannot create search tree" msgstr "No se puede crear el árbol de búsqueda" -#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536 -#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579 -#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460 -#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 -#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461 -#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520 +#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545 +#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667 +#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558 +#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 +#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603 +#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520 #, c-format msgid "cannot get section header string table index" msgstr "no se puede obtener índice de cadena de encabezamiento de sección" -#: src/nm.c:781 +#: src/nm.c:787 #, c-format msgid "" "\n" @@ -4316,7 +4372,7 @@ msgstr "" "Símbolos de %s:\n" "\n" -#: src/nm.c:784 +#: src/nm.c:790 #, c-format msgid "" "%*s%-*s %-*s Class Type %-*s %*s Section\n" @@ -4325,23 +4381,23 @@ msgstr "" "%*s%-*s %-*s Clase Tipo %-*s %*s Sección\n" "\n" -#: src/nm.c:1171 +#: src/nm.c:1232 #, fuzzy, c-format msgid "%s: entry size in section %zd `%s' is not what we expect" msgstr "" "%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos " -#: src/nm.c:1176 +#: src/nm.c:1237 #, fuzzy, c-format msgid "%s: size of section %zd `%s' is not multiple of entry size" msgstr "%s: Tamaño de sección `%s' no es múltiplo de tamaño de entrada" -#: src/nm.c:1434 +#: src/nm.c:1537 #, c-format msgid "%s%s%s%s: Invalid operation" msgstr "%s%s%s%s: Operación inválida" -#: src/nm.c:1491 +#: src/nm.c:1594 #, c-format msgid "%s%s%s: no symbols" msgstr "%s%s%s: No hay símbolos" @@ -4375,7 +4431,7 @@ 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:232 src/readelf.c:473 +#: src/objdump.c:232 src/readelf.c:479 msgid "No operation specified.\n" msgstr "No se especificó una operación.\n" @@ -4384,11 +4440,11 @@ msgstr "No se especificó una operación.\n" msgid "while close `%s'" msgstr "mientras cierra `%s'" -#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072 +#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160 msgid "INVALID SYMBOL" msgstr "SÍMBOLO INVÁLIDO" -#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108 +#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196 msgid "INVALID SECTION" msgstr "SECCIÓN INVÁLIDA" @@ -4440,73 +4496,73 @@ msgstr "%s: no es un archivo" msgid "error while freeing sub-ELF descriptor: %s" msgstr "error al liberar descriptor sub-ELF: %s" -#: src/readelf.c:71 +#: src/readelf.c:72 #, fuzzy msgid "ELF input selection:" msgstr "Selección de salida de ELF:" -#: src/readelf.c:73 +#: src/readelf.c:74 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" -#: src/readelf.c:75 +#: src/readelf.c:76 msgid "ELF output selection:" msgstr "Selección de salida de ELF:" -#: src/readelf.c:77 +#: src/readelf.c:78 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "Todo esto mas -p .strtab -p .dynstr -p .comment" -#: src/readelf.c:78 +#: src/readelf.c:79 msgid "Display the dynamic segment" msgstr "Mostrar el segmento dinámico" -#: src/readelf.c:79 +#: src/readelf.c:80 msgid "Display the ELF file header" msgstr "Mostrar el encabezamiento del fichero ELF" -#: src/readelf.c:81 +#: src/readelf.c:82 msgid "Display histogram of bucket list lengths" msgstr "Mostrar histograma de las longitudes de las listas de cubetas" -#: src/readelf.c:82 +#: src/readelf.c:83 msgid "Display the program headers" msgstr "Mostrar encabezamientos de programa" -#: src/readelf.c:84 +#: src/readelf.c:85 msgid "Display relocations" msgstr "Mostrar reubicaciones" -#: src/readelf.c:85 +#: src/readelf.c:86 msgid "Display the sections' headers" msgstr "Mostrar los encabezados de las secciones" -#: src/readelf.c:87 +#: src/readelf.c:88 msgid "Display the symbol table" msgstr "Mostrar la tabla de símbolos" -#: src/readelf.c:88 +#: src/readelf.c:89 msgid "Display versioning information" msgstr "Mostrar información de versión" -#: src/readelf.c:89 +#: src/readelf.c:90 msgid "Display the ELF notes" msgstr "Mostrar las notas ELF" -#: src/readelf.c:91 +#: src/readelf.c:92 msgid "Display architecture specific information, if any" msgstr "Mostrar información específica de la arquitectura (si es que la hay)" -#: src/readelf.c:93 +#: src/readelf.c:94 msgid "Display sections for exception handling" msgstr "Muestra secciones para manejo de excepciones" -#: src/readelf.c:95 +#: src/readelf.c:96 msgid "Additional output selection:" msgstr "Selección de salida adicional:" -#: src/readelf.c:97 +#: src/readelf.c:98 #, fuzzy msgid "" "Display DWARF section content. SECTION can be one of abbrev, aranges, " @@ -4517,170 +4573,176 @@ msgstr "" "siguiente: abbrev, aranges, frame, info, loc, line, ranges, pubnames, str, " "macinfo, o exception" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "Vuelca los contenidos no interpretados de SECCIÓN, por número o nombre" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "Print string contents of sections" msgstr "Imprime contenido de cadena de secciones" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the symbol index of an archive" msgstr "Muestra el índice de símbolos de un archivo" -#: src/readelf.c:108 +#: src/readelf.c:109 msgid "Output control:" msgstr "Control de salida:" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Do not find symbol names for addresses in DWARF data" msgstr "" "No se encuentran los nombres de símbolos para direcciones en datos DWARF" -#: src/readelf.c:112 +#: src/readelf.c:113 #, fuzzy msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "" "No se encuentran los nombres de símbolos para direcciones en datos DWARF" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Ignored for compatibility (lines always wide)" msgstr "" -#: src/readelf.c:119 +#: src/readelf.c:117 +msgid "" +"Show compression information for compressed sections (when used with -S); " +"decompress section before dumping data (when used with -p or -x)" +msgstr "" + +#: src/readelf.c:122 msgid "Print information from ELF file in human-readable form." msgstr "" "Imprimir información del fichero ELF en una forma comprensible para los " "seres humanos." -#: src/readelf.c:441 +#: src/readelf.c:447 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Sección de depuración DWARF desconocida `%s'.\n" -#: src/readelf.c:520 src/readelf.c:631 +#: src/readelf.c:529 src/readelf.c:640 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "no se puede crear descriptor ELF: %s" -#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269 +#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347 #, c-format msgid "cannot get section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481 -#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543 -#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 -#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508 -#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855 +#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623 +#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577 +#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 +#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543 +#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891 #, c-format msgid "cannot get section header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" -#: src/readelf.c:562 +#: src/readelf.c:571 #, fuzzy, c-format msgid "cannot get section name" msgstr "no se puede obtener encabezamiento de sección\n" -#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772 -#: src/readelf.c:7949 +#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880 +#: src/readelf.c:8057 #, c-format msgid "cannot get %s content: %s" msgstr "No se puede obtener el contenido %s: %s" -#: src/readelf.c:587 +#: src/readelf.c:596 #, fuzzy, c-format msgid "cannot create temp file '%s'" msgstr "no se puede crear fichero nuevo '%s': %s" -#: src/readelf.c:596 +#: src/readelf.c:605 #, fuzzy, c-format msgid "cannot write section data" msgstr "no se puede leer la sección de datos: %s" -#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648 +#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "error al cerrar el descriptor ELF: %s" -#: src/readelf.c:609 +#: src/readelf.c:618 #, fuzzy, c-format msgid "error while rewinding file descriptor" msgstr "error al cerrar el descriptor ELF: %s" -#: src/readelf.c:643 +#: src/readelf.c:652 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "'%s' no es un archivo, no se puede imprimir índice de archivo" -#: src/readelf.c:742 +#: src/readelf.c:751 #, fuzzy, c-format msgid "No such section '%s' in '%s'" msgstr "No se puede obtener contenido de sección %zu en '%s': %s" -#: src/readelf.c:769 +#: src/readelf.c:778 #, c-format msgid "cannot stat input file" msgstr "no sepudo stat archivo de entrada" -#: src/readelf.c:771 +#: src/readelf.c:780 #, c-format msgid "input file is empty" msgstr "archivo de entrada vacío" -#: src/readelf.c:773 +#: src/readelf.c:782 #, c-format msgid "failed reading '%s': %s" msgstr "Falló lectura de '%s': %s" -#: src/readelf.c:814 +#: src/readelf.c:837 #, c-format msgid "cannot read ELF header: %s" msgstr "no se pudo leer encabezamiento ELF: %s" -#: src/readelf.c:822 +#: src/readelf.c:845 #, c-format msgid "cannot create EBL handle" msgstr "no se puede crear EBL" -#: src/readelf.c:835 +#: src/readelf.c:858 #, c-format msgid "cannot determine number of program headers: %s" msgstr "no se pudo determinar la cantidad de encabezados de programa: %s" -#: src/readelf.c:921 +#: src/readelf.c:948 msgid "NONE (None)" msgstr "NONE (Ninguno)" -#: src/readelf.c:922 +#: src/readelf.c:949 msgid "REL (Relocatable file)" msgstr "REL (Fichero reubicable)" -#: src/readelf.c:923 +#: src/readelf.c:950 msgid "EXEC (Executable file)" msgstr "EXEC (Fichero ejecutable)" -#: src/readelf.c:924 +#: src/readelf.c:951 msgid "DYN (Shared object file)" msgstr "DYN (Fichero objeto compartido)" -#: src/readelf.c:925 +#: src/readelf.c:952 msgid "CORE (Core file)" msgstr "CORE (Fichero núcleo)" -#: src/readelf.c:930 +#: src/readelf.c:957 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS Specific: (%x)\n" -#: src/readelf.c:932 +#: src/readelf.c:959 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Específico del procesador: (%x)\n" -#: src/readelf.c:942 +#: src/readelf.c:969 msgid "" "ELF Header:\n" " Magic: " @@ -4688,7 +4750,7 @@ msgstr "" "Encabezamiento ELF:\n" " Mágico: " -#: src/readelf.c:946 +#: src/readelf.c:973 #, c-format msgid "" "\n" @@ -4697,119 +4759,119 @@ msgstr "" "\n" " Clase: %s\n" -#: src/readelf.c:951 +#: src/readelf.c:978 #, c-format msgid " Data: %s\n" msgstr " Datos: %s\n" -#: src/readelf.c:957 +#: src/readelf.c:984 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Versión ident: %hhd %s\n" -#: src/readelf.c:959 src/readelf.c:976 +#: src/readelf.c:986 src/readelf.c:1003 msgid "(current)" msgstr "(actual)" -#: src/readelf.c:963 +#: src/readelf.c:990 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:966 +#: src/readelf.c:993 #, c-format msgid " ABI Version: %hhd\n" msgstr " Versión ABI: %hhd\n" -#: src/readelf.c:969 +#: src/readelf.c:996 msgid " Type: " msgstr " Tipo: " -#: src/readelf.c:972 +#: src/readelf.c:999 #, c-format msgid " Machine: %s\n" msgstr " Máquina: %s\n" -#: src/readelf.c:974 +#: src/readelf.c:1001 #, c-format msgid " Version: %d %s\n" msgstr " Versión: %d %s\n" -#: src/readelf.c:978 +#: src/readelf.c:1005 #, c-format msgid " Entry point address: %#\n" msgstr " Dirección de punto de entrada: %#\n" -#: src/readelf.c:981 +#: src/readelf.c:1008 #, c-format msgid " Start of program headers: % %s\n" msgstr " Inicio de encabezamientos de programa: % %s\n" -#: src/readelf.c:982 src/readelf.c:985 +#: src/readelf.c:1009 src/readelf.c:1012 msgid "(bytes into file)" msgstr " (bytes en el archivo)" -#: src/readelf.c:984 +#: src/readelf.c:1011 #, c-format msgid " Start of section headers: % %s\n" msgstr " Inicio de encabezamientos de sección: % %s\n" -#: src/readelf.c:987 +#: src/readelf.c:1014 #, c-format msgid " Flags: %s\n" msgstr " Indicadores: %s\n" -#: src/readelf.c:990 +#: src/readelf.c:1017 #, c-format msgid " Size of this header: % %s\n" msgstr " Tamaño de este encabezamiento: % %s\n" -#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011 +#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038 msgid "(bytes)" msgstr "(bytes)" -#: src/readelf.c:993 +#: src/readelf.c:1020 #, c-format msgid " Size of program header entries: % %s\n" msgstr "" " Tamaño de las entradas en encabezamiento del programa: % %s\n" -#: src/readelf.c:996 +#: src/readelf.c:1023 #, c-format msgid " Number of program headers entries: %" msgstr " Cantidad de entradas de encabezados de programa: %" -#: src/readelf.c:1003 +#: src/readelf.c:1030 #, c-format msgid " (% in [0].sh_info)" msgstr " (% in [0].sh_info)" -#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037 +#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064 msgid " ([0] not available)" msgstr " ([0] no disponible)" -#: src/readelf.c:1010 +#: src/readelf.c:1037 #, c-format msgid " Size of section header entries: % %s\n" msgstr "" " Tamaño de las entradas en el encabezamiento de sección: % %s\n" -#: src/readelf.c:1013 +#: src/readelf.c:1040 #, c-format msgid " Number of section headers entries: %" msgstr " Cantidad de entradas en los encabezamientos de sección: %" -#: src/readelf.c:1020 +#: src/readelf.c:1047 #, c-format msgid " (% in [0].sh_size)" msgstr " (% en [0].sh_size)" -#: src/readelf.c:1033 +#: src/readelf.c:1060 #, c-format msgid " (% in [0].sh_link)" msgstr " (% en [0].sh_link)" -#: src/readelf.c:1041 +#: src/readelf.c:1068 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4818,14 +4880,14 @@ msgstr "" " Índice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n" "\n" -#: src/readelf.c:1045 +#: src/readelf.c:1072 #, c-format msgid "" " Section header string table index: %\n" "\n" msgstr " Índice de tabla de cadenas de sección de encabezamiento: %\n" -#: src/readelf.c:1077 +#: src/readelf.c:1115 #, c-format msgid "" "There are %d section headers, starting at offset %#:\n" @@ -4834,11 +4896,11 @@ msgstr "" "Hay %d encabezamientos de sección, comenzando en compensación %#:\n" "\n" -#: src/readelf.c:1087 +#: src/readelf.c:1125 msgid "Section Headers:" msgstr "encabezamientos de sección:" -#: src/readelf.c:1090 +#: src/readelf.c:1128 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4846,7 +4908,7 @@ msgstr "" "[Nr] Nombre Tipo Dirección Off Tamaño Inf Al " "Enlace banderas ES" -#: src/readelf.c:1092 +#: src/readelf.c:1130 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4854,18 +4916,36 @@ msgstr "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" -#: src/readelf.c:1164 +#: src/readelf.c:1135 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1137 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1213 +#, fuzzy, c-format +msgid "bad compression header for section %zd: %s" +msgstr "No se puede obtener el encabezamiento de sección %zu: %s" + +#: src/readelf.c:1224 +#, fuzzy, c-format +msgid "bad gnu compressed size for section %zd: %s" +msgstr "No se pueden obtener datos para la sección %d: %s" + +#: src/readelf.c:1242 msgid "Program Headers:" msgstr "encabezamientos de programa:" -#: src/readelf.c:1166 +#: src/readelf.c:1244 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Tipo Compensación Dirección Virtual Dirección " "Física Tamaño de Fichero Tamaño de Memoria Alineación de bandera" -#: src/readelf.c:1169 +#: src/readelf.c:1247 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4873,12 +4953,12 @@ 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:1226 +#: src/readelf.c:1304 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Solicitando intérprete de programa: %s]\n" -#: src/readelf.c:1247 +#: src/readelf.c:1325 msgid "" "\n" " Section to Segment mapping:\n" @@ -4888,12 +4968,12 @@ msgstr "" " Sección para asignación de segmento:\n" " Secciones de segmento..." -#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964 +#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999 #, c-format msgid "cannot get program header: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" -#: src/readelf.c:1401 +#: src/readelf.c:1479 #, c-format msgid "" "\n" @@ -4908,7 +4988,7 @@ msgstr[1] "" "\n" "Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1406 +#: src/readelf.c:1484 #, c-format msgid "" "\n" @@ -4923,21 +5003,25 @@ msgstr[1] "" "\n" "Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1414 +#: src/readelf.c:1492 msgid "" msgstr "" -#: src/readelf.c:1428 +#: src/readelf.c:1506 msgid "" msgstr "" -#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542 -#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608 +#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317 +msgid "Couldn't uncompress section" +msgstr "" + +#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640 +#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr ".debug_line section inválida" -#: src/readelf.c:1588 +#: src/readelf.c:1676 #, c-format msgid "" "\n" @@ -4958,36 +5042,36 @@ msgstr[1] "" " Dirección: %#0* Compensación: %#08 Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:1598 +#: src/readelf.c:1686 msgid " Type Value\n" msgstr " Tipo Valor\n" -#: src/readelf.c:1622 +#: src/readelf.c:1710 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteca compartida: [%s]\n" -#: src/readelf.c:1627 +#: src/readelf.c:1715 #, c-format msgid "Library soname: [%s]\n" msgstr "Nombre-so de la biblioteca: [%s]\n" -#: src/readelf.c:1632 +#: src/readelf.c:1720 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath de la biblioteca: [%s]\n" -#: src/readelf.c:1637 +#: src/readelf.c:1725 #, c-format msgid "Library runpath: [%s]\n" msgstr "Ruta de ejecución de la biblioteca: [%s]\n" -#: src/readelf.c:1657 +#: src/readelf.c:1745 #, c-format msgid "% (bytes)\n" msgstr "% (bytes)\n" -#: src/readelf.c:1770 src/readelf.c:1960 +#: src/readelf.c:1858 src/readelf.c:2048 #, c-format msgid "" "\n" @@ -4996,7 +5080,7 @@ msgstr "" "\n" "Tabla de símbolos inválida en compensación %#0\n" -#: src/readelf.c:1788 src/readelf.c:1978 +#: src/readelf.c:1876 src/readelf.c:2066 #, c-format msgid "" "\n" @@ -5015,7 +5099,7 @@ msgstr[1] "" "Sección de reubicación [%2zu] '%s' para sección [%2u] '%s' en compensación " "%#0 contiene entradas %d:\n" -#: src/readelf.c:1803 src/readelf.c:1993 +#: src/readelf.c:1891 src/readelf.c:2081 #, c-format msgid "" "\n" @@ -5032,29 +5116,29 @@ msgstr[1] "" "Sección de reubicación [%2u] '%s' en compensación %#0 contiene " "entradas %d:\n" -#: src/readelf.c:1813 +#: src/readelf.c:1901 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:1815 +#: src/readelf.c:1903 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913 -#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085 -#: src/readelf.c:2107 src/readelf.c:2120 +#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001 +#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173 +#: src/readelf.c:2195 src/readelf.c:2208 msgid "" msgstr "" -#: src/readelf.c:2003 +#: src/readelf.c:2091 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:2005 +#: src/readelf.c:2093 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:2216 +#: src/readelf.c:2314 #, c-format msgid "" "\n" @@ -5069,40 +5153,40 @@ msgstr[1] "" "\n" "La tabla de símbolos [%2u] '%s' contiene entradas %u:\n" -#: src/readelf.c:2221 +#: src/readelf.c:2319 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] "símbolos locales %lu Tabla de cadena: [%2u] '%s'\n" msgstr[1] " Símbolos locales %lu Tabla de cadenas: [%2u] '%s'\n" -#: src/readelf.c:2229 +#: src/readelf.c:2327 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Núm: Valor Tamaño Tipo Unión Vis Nombre Ndx\n" -#: src/readelf.c:2231 +#: src/readelf.c:2329 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Num: Valor Tamaño Tipo Unión Vis Nombre Ndx\n" -#: src/readelf.c:2251 +#: src/readelf.c:2349 #, c-format msgid "%5u: %0* %6 %-7s %-6s %-9s %6s %s" msgstr "%5u: %0* %6 %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2339 +#: src/readelf.c:2437 #, c-format msgid "bad dynamic symbol" msgstr "símbolo dinámico erróneo" -#: src/readelf.c:2421 +#: src/readelf.c:2519 msgid "none" msgstr "nada" -#: src/readelf.c:2438 +#: src/readelf.c:2536 msgid "| " msgstr "| " -#: src/readelf.c:2469 +#: src/readelf.c:2567 #, c-format msgid "" "\n" @@ -5123,17 +5207,17 @@ msgstr[1] "" " Dirección: %#0* Compensación: %#08 Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2490 +#: src/readelf.c:2588 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n" -#: src/readelf.c:2503 +#: src/readelf.c:2601 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n" -#: src/readelf.c:2546 +#: src/readelf.c:2644 #, c-format msgid "" "\n" @@ -5154,18 +5238,18 @@ msgstr[1] "" " Dirección: %#0* Compensación: %#08 Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2574 +#: src/readelf.c:2672 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" " %#06x: Versión: %hd Banderas: %s Índice: %hd Conteo: %hd Nombre: %s\n" -#: src/readelf.c:2589 +#: src/readelf.c:2687 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Principal %d: %s\n" -#: src/readelf.c:2850 +#: src/readelf.c:2948 #, c-format msgid "" "\n" @@ -5186,15 +5270,15 @@ msgstr[1] "" " Dirección: %#0* Compensación: %#08 Enlace a sección: " "[%2u] '%s'" -#: src/readelf.c:2878 +#: src/readelf.c:2976 msgid " 0 *local* " msgstr " 0 *local* " -#: src/readelf.c:2883 +#: src/readelf.c:2981 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:2925 +#: src/readelf.c:3023 #, c-format msgid "" "\n" @@ -5219,22 +5303,22 @@ msgstr[1] "" " Dirección: %#0* Compensación: %#08 Enlace a sección: " "[%2u] '%s'\n" -#: src/readelf.c:2947 +#: src/readelf.c:3045 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Longitud Número % of total Cobertura\n" -#: src/readelf.c:2949 +#: src/readelf.c:3047 #, c-format msgid " 0 %6 %5.1f%%\n" msgstr " 0 %6 %5.1f%%\n" -#: src/readelf.c:2956 +#: src/readelf.c:3054 #, c-format msgid "%7d %6 %5.1f%% %5.1f%%\n" msgstr "%7d %6 %5.1f%% %5.1f%%\n" -#: src/readelf.c:2969 +#: src/readelf.c:3067 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -5243,27 +5327,27 @@ msgstr "" " Número promedio de pruebas: búsqueda exitosa: %f\n" " búsqueda sin éxito: %f\n" -#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099 +#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197 #, c-format msgid "cannot get data for section %d: %s" msgstr "No se pueden obtener datos para la sección %d: %s" -#: src/readelf.c:2995 +#: src/readelf.c:3093 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3050 +#: src/readelf.c:3148 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3108 +#: src/readelf.c:3206 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:3175 +#: src/readelf.c:3273 #, c-format msgid "" " Symbol Bias: %u\n" @@ -5273,7 +5357,7 @@ msgstr "" " Tamaño de Bitmask: %zu bytes %%% bits establecen segundo " "cambio de dispersión: %u\n" -#: src/readelf.c:3250 +#: src/readelf.c:3358 #, c-format msgid "" "\n" @@ -5290,7 +5374,7 @@ msgstr[1] "" "Sección de lista de biblioteca [%2zu] '%s' en compensación %#0 " "contiene entradas %d:\n" -#: src/readelf.c:3264 +#: src/readelf.c:3372 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -5298,7 +5382,7 @@ msgstr "" " Biblioteca Marca de tiempo Indicadores " "de versión de suma de verificación" -#: src/readelf.c:3314 +#: src/readelf.c:3422 #, c-format msgid "" "\n" @@ -5309,140 +5393,140 @@ msgstr "" "Sección de atributos de objeto [%2zu] '%s' de % bytes con " "desplazamiento %#0:\n" -#: src/readelf.c:3331 +#: src/readelf.c:3439 msgid " Owner Size\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:3360 +#: src/readelf.c:3468 #, c-format msgid " %-13s %4\n" msgstr " %-13s %4\n" -#: src/readelf.c:3399 +#: src/readelf.c:3507 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" -#: src/readelf.c:3404 +#: src/readelf.c:3512 #, c-format msgid " File: %11\n" msgstr " File: %11\n" -#: src/readelf.c:3453 +#: src/readelf.c:3561 #, c-format msgid " %s: %, %s\n" msgstr " %s: %, %s\n" -#: src/readelf.c:3456 +#: src/readelf.c:3564 #, c-format msgid " %s: %\n" msgstr " %s: %\n" -#: src/readelf.c:3459 +#: src/readelf.c:3567 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3469 +#: src/readelf.c:3577 #, c-format msgid " %u: %\n" msgstr " %u: %\n" -#: src/readelf.c:3472 +#: src/readelf.c:3580 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3517 +#: src/readelf.c:3625 #, c-format msgid "%s+%# <%s+%#>" msgstr "%s+%# <%s+%#>" -#: src/readelf.c:3520 +#: src/readelf.c:3628 #, c-format msgid "%s+%#0* <%s+%#>" msgstr "%s+%#0* <%s+%#>" -#: src/readelf.c:3525 +#: src/readelf.c:3633 #, c-format msgid "%# <%s+%#>" msgstr "%# <%s+%#>" -#: src/readelf.c:3528 +#: src/readelf.c:3636 #, c-format msgid "%#0* <%s+%#>" msgstr "%#0* <%s+%#>" -#: src/readelf.c:3534 +#: src/readelf.c:3642 #, c-format msgid "%s+%# <%s>" msgstr "%s+%# <%s>" -#: src/readelf.c:3537 +#: src/readelf.c:3645 #, c-format msgid "%s+%#0* <%s>" msgstr "%s+%#0* <%s>" -#: src/readelf.c:3541 +#: src/readelf.c:3649 #, c-format msgid "%# <%s>" msgstr "%# <%s>" -#: src/readelf.c:3544 +#: src/readelf.c:3652 #, c-format msgid "%#0* <%s>" msgstr "%#0* <%s>" -#: src/readelf.c:3549 +#: src/readelf.c:3657 #, c-format msgid "%s+%#" msgstr "%s+%#" -#: src/readelf.c:3552 +#: src/readelf.c:3660 #, c-format msgid "%s+%#0*" msgstr "%s+%#0*" -#: src/readelf.c:3930 +#: src/readelf.c:4038 msgid "empty block" msgstr "bloque vacío" -#: src/readelf.c:3933 +#: src/readelf.c:4041 #, c-format msgid "%zu byte block:" msgstr "bloque de byte %zu:" -#: src/readelf.c:4330 +#: src/readelf.c:4438 #, c-format msgid "%*s[%4] %s \n" msgstr "%*s[%4] %s \n" -#: src/readelf.c:4387 +#: src/readelf.c:4495 #, c-format msgid "%s %# used with different address sizes" msgstr "%s %# utilizado con direcciones de diferente tamaño" -#: src/readelf.c:4394 +#: src/readelf.c:4502 #, c-format msgid "%s %# used with different offset sizes" msgstr "%s %# utilizado con offsetr de diferente tamaño" -#: src/readelf.c:4401 +#: src/readelf.c:4509 #, fuzzy, c-format msgid "%s %# used with different base addresses" msgstr "%s %# utilizado con direcciones de diferente tamaño" -#: src/readelf.c:4490 +#: src/readelf.c:4598 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:4498 +#: src/readelf.c:4606 #, c-format msgid " [%6tx] ... % bytes ...\n" msgstr " [%6tx] ... % bytes ...\n" -#: src/readelf.c:4524 +#: src/readelf.c:4632 #, c-format msgid "" "\n" @@ -5453,7 +5537,7 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " [ Código]\n" -#: src/readelf.c:4532 +#: src/readelf.c:4640 #, c-format msgid "" "\n" @@ -5462,30 +5546,30 @@ msgstr "" "\n" "Sección de abreviatura en compensación %:\n" -#: src/readelf.c:4545 +#: src/readelf.c:4653 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** error en lectura de abreviatura: %s\n" -#: src/readelf.c:4561 +#: src/readelf.c:4669 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] compensación: %, hijos: %s, etiqueta: %s\n" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "yes" msgstr "sí" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "no" msgstr "no" -#: src/readelf.c:4598 src/readelf.c:4671 +#: src/readelf.c:4706 src/readelf.c:4779 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "no se ha podido obtener contenido de .debug_aranges: %s" -#: src/readelf.c:4613 +#: src/readelf.c:4721 #, c-format msgid "" "\n" @@ -5500,12 +5584,12 @@ msgstr[1] "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entradas %zu:\n" -#: src/readelf.c:4644 +#: src/readelf.c:4752 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4646 +#: src/readelf.c:4754 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" @@ -5513,8 +5597,8 @@ msgstr "" " Inicio [%*zu]: %0#*, longitud: %5, compensación CU DIE: " "%6\n" -#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360 -#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601 +#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468 +#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709 #, c-format msgid "" "\n" @@ -5523,7 +5607,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#:\n" -#: src/readelf.c:4689 src/readelf.c:6386 +#: src/readelf.c:4797 src/readelf.c:6494 #, fuzzy, c-format msgid "" "\n" @@ -5532,111 +5616,111 @@ msgstr "" "\n" "Tabla en compensación %Zu:\n" -#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397 +#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:4709 +#: src/readelf.c:4817 #, fuzzy, c-format msgid "" "\n" " Length: %6\n" msgstr " (compensación: %#)" -#: src/readelf.c:4721 +#: src/readelf.c:4829 #, fuzzy, c-format msgid " DWARF version: %6\n" msgstr " %s: %\n" -#: src/readelf.c:4725 +#: src/readelf.c:4833 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:4736 +#: src/readelf.c:4844 #, fuzzy, c-format msgid " CU offset: %6\n" msgstr " (compensación: %#)" -#: src/readelf.c:4742 +#: src/readelf.c:4850 #, fuzzy, c-format msgid " Address size: %6\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:4746 +#: src/readelf.c:4854 #, fuzzy, c-format msgid "unsupported address size" msgstr "no hay valor de dirección" -#: src/readelf.c:4751 +#: src/readelf.c:4859 #, fuzzy, c-format msgid "" " Segment size: %6\n" "\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:4755 +#: src/readelf.c:4863 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:4795 +#: src/readelf.c:4903 #, fuzzy, c-format msgid " %s..%s (%)\n" msgstr " %s: %\n" -#: src/readelf.c:4798 +#: src/readelf.c:4906 #, fuzzy, c-format msgid " %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4807 +#: src/readelf.c:4915 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:4825 +#: src/readelf.c:4933 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:4855 src/readelf.c:6919 +#: src/readelf.c:4963 src/readelf.c:7027 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] \n" -#: src/readelf.c:4877 src/readelf.c:6941 +#: src/readelf.c:4985 src/readelf.c:7049 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] (dirección base) %s\n" -#: src/readelf.c:4884 src/readelf.c:6948 +#: src/readelf.c:4992 src/readelf.c:7056 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] lista vacía\n" -#: src/readelf.c:4895 +#: src/readelf.c:5003 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4897 +#: src/readelf.c:5005 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:5076 +#: src/readelf.c:5184 #, fuzzy msgid " \n" msgstr " \n" -#: src/readelf.c:5385 +#: src/readelf.c:5493 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/readelf.c:5402 +#: src/readelf.c:5510 #, c-format msgid "" "\n" @@ -5646,7 +5730,7 @@ msgstr "" "Sección de información de marco de llamada [%2zu] '%s' en compensación " "%#:\n" -#: src/readelf.c:5452 +#: src/readelf.c:5560 #, c-format msgid "" "\n" @@ -5655,50 +5739,50 @@ msgstr "" "\n" " [%6tx] Terminator cero\n" -#: src/readelf.c:5545 src/readelf.c:5700 +#: src/readelf.c:5653 src/readelf.c:5808 #, c-format msgid "invalid augmentation length" msgstr "longitud de aumento inválida" -#: src/readelf.c:5560 +#: src/readelf.c:5668 msgid "FDE address encoding: " msgstr "Codificación de dirección FDE:" -#: src/readelf.c:5566 +#: src/readelf.c:5674 msgid "LSDA pointer encoding: " msgstr "Codificación de puntero LSDA:" -#: src/readelf.c:5677 +#: src/readelf.c:5785 #, c-format msgid " (offset: %#)" msgstr " (compensación: %#)" -#: src/readelf.c:5684 +#: src/readelf.c:5792 #, c-format msgid " (end offset: %#)" msgstr " (fin de compensación: %#)" -#: src/readelf.c:5721 +#: src/readelf.c:5829 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr "Puntero %-26sLSDA: %#\n" -#: src/readelf.c:5776 +#: src/readelf.c:5884 #, c-format msgid "cannot get attribute code: %s" msgstr "No se puede obtener código de atributo: %s" -#: src/readelf.c:5785 +#: src/readelf.c:5893 #, c-format msgid "cannot get attribute form: %s" msgstr "No se puede obtener forma de atributo: %s" -#: src/readelf.c:5800 +#: src/readelf.c:5908 #, c-format msgid "cannot get attribute value: %s" msgstr "No se puede obtener valor: %s" -#: src/readelf.c:6099 +#: src/readelf.c:6207 #, c-format msgid "" "\n" @@ -5709,7 +5793,7 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " [Offset]\n" -#: src/readelf.c:6131 +#: src/readelf.c:6239 #, c-format msgid "" " Type unit at offset %:\n" @@ -5722,7 +5806,7 @@ msgstr "" "Tamaño de dirección: %, Tamaño de compensación: %\n" " Tipo de firma: %#, Tipo de compensación: %#\n" -#: src/readelf.c:6140 +#: src/readelf.c:6248 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5733,34 +5817,34 @@ msgstr "" " Versión: %, Compensación de sección de abreviatura: %, " "Tamaño de dirección: %, Tamaño de compensación: %\n" -#: src/readelf.c:6165 +#: src/readelf.c:6273 #, c-format msgid "cannot get DIE at offset % in section '%s': %s" msgstr "no se puede obtener DIE en compensación % en sección '%s': %s" -#: src/readelf.c:6179 +#: src/readelf.c:6287 #, c-format msgid "cannot get DIE offset: %s" msgstr "no se puede obtener DIE en compensación: %s" -#: src/readelf.c:6188 +#: src/readelf.c:6296 #, c-format msgid "cannot get tag of DIE at offset % in section '%s': %s" msgstr "" "no se ha podido obtener etiqueta de DIE en compensación% en sección " "'%s': %s" -#: src/readelf.c:6220 +#: src/readelf.c:6328 #, c-format msgid "cannot get next DIE: %s\n" msgstr "No se puede obtener próximo DIE: %s\n" -#: src/readelf.c:6228 +#: src/readelf.c:6336 #, c-format msgid "cannot get next DIE: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:6264 +#: src/readelf.c:6372 #, fuzzy, c-format msgid "" "\n" @@ -5770,12 +5854,12 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#:\n" -#: src/readelf.c:6373 +#: src/readelf.c:6481 #, c-format msgid "cannot get line data section data: %s" msgstr "No se puede obtener sección de datos de línea: %s" -#: src/readelf.c:6443 +#: src/readelf.c:6551 #, c-format msgid "" "\n" @@ -5804,19 +5888,19 @@ msgstr "" "\n" "Códigos operativos:\n" -#: src/readelf.c:6464 +#: src/readelf.c:6572 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "datos inválidos en compensación %tu en sección [%zu] '%s'" -#: src/readelf.c:6479 +#: src/readelf.c:6587 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] " [%*] argumento %hhu \n" msgstr[1] " [%*] argumento %hhu\n" -#: src/readelf.c:6487 +#: src/readelf.c:6595 msgid "" "\n" "Directory table:" @@ -5824,7 +5908,7 @@ msgstr "" "\n" "Tabla de Directorio:" -#: src/readelf.c:6503 +#: src/readelf.c:6611 msgid "" "\n" "File name table:\n" @@ -5834,7 +5918,7 @@ msgstr "" "Tabla de nombre de archivo:\n" " Directorio de entrada Tiempo Tamaño Nombre" -#: src/readelf.c:6538 +#: src/readelf.c:6646 msgid "" "\n" "Line number statements:" @@ -5842,224 +5926,224 @@ msgstr "" "\n" " Declaraciones de número de Línea:" -#: src/readelf.c:6589 +#: src/readelf.c:6697 #, fuzzy, c-format msgid "invalid maximum operations per instruction is zero" msgstr "longitud mínima inválida de tamaño de cadena coincidente" -#: src/readelf.c:6625 +#: src/readelf.c:6733 #, c-format msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" msgstr "" " opcode especial %u: dirección+%u = %s, op_index = %u, línea%+d = %zu\n" -#: src/readelf.c:6630 +#: src/readelf.c:6738 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " opcode especial %u: dirección+%u = %s, línea%+d = %zu\n" -#: src/readelf.c:6650 +#: src/readelf.c:6758 #, c-format msgid " extended opcode %u: " msgstr " Código operativo extendido %u: " -#: src/readelf.c:6655 +#: src/readelf.c:6763 #, fuzzy msgid " end of sequence" msgstr "Fin de secuencia" -#: src/readelf.c:6674 +#: src/readelf.c:6782 #, fuzzy, c-format msgid " set address to %s\n" msgstr "Establecer dirección a %s\n" -#: src/readelf.c:6701 +#: src/readelf.c:6809 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" "definir nuevo archivo: dir=%u, mtime=%, longitud=%, nombre=" "%s\n" -#: src/readelf.c:6714 +#: src/readelf.c:6822 #, c-format msgid " set discriminator to %u\n" msgstr " establecer discriminador a %u\n" -#: src/readelf.c:6719 +#: src/readelf.c:6827 #, fuzzy msgid " unknown opcode" msgstr "código operativo desconocido " -#: src/readelf.c:6731 +#: src/readelf.c:6839 msgid " copy" msgstr "Copiar" -#: src/readelf.c:6742 +#: src/readelf.c:6850 #, fuzzy, c-format msgid " advance address by %u to %s, op_index to %u\n" msgstr "dirección avanzada por %u a %s, op_index a %u\n" -#: src/readelf.c:6746 +#: src/readelf.c:6854 #, fuzzy, c-format msgid " advance address by %u to %s\n" msgstr "Dirección de avance por %u a %s\n" -#: src/readelf.c:6757 +#: src/readelf.c:6865 #, c-format msgid " advance line by constant %d to %\n" msgstr " línea de avance por la constante %d a %\n" -#: src/readelf.c:6765 +#: src/readelf.c:6873 #, c-format msgid " set file to %\n" msgstr " establecer archivo a %\n" -#: src/readelf.c:6775 +#: src/readelf.c:6883 #, c-format msgid " set column to %\n" msgstr " Establecer columna a %\n" -#: src/readelf.c:6782 +#: src/readelf.c:6890 #, c-format msgid " set '%s' to %\n" msgstr "Establecer '%s' a %\n" -#: src/readelf.c:6788 +#: src/readelf.c:6896 msgid " set basic block flag" msgstr "Establecer bandera de bloque básico" -#: src/readelf.c:6801 +#: src/readelf.c:6909 #, fuzzy, c-format msgid " advance address by constant %u to %s, op_index to %u\n" msgstr "dirección avanzada por constante %u a %s, op_index a %u\n" -#: src/readelf.c:6805 +#: src/readelf.c:6913 #, fuzzy, c-format msgid " advance address by constant %u to %s\n" msgstr "Dirección de avance por constante %u a %s\n" -#: src/readelf.c:6823 +#: src/readelf.c:6931 #, fuzzy, c-format msgid " advance address by fixed value %u to %s\n" msgstr "dirección de avance por valor corregido %u a %s\n" -#: src/readelf.c:6832 +#: src/readelf.c:6940 msgid " set prologue end flag" msgstr " Establecer bandera prologue_end" -#: src/readelf.c:6837 +#: src/readelf.c:6945 msgid " set epilogue begin flag" msgstr " Establecer bandera epilogue_begin" -#: src/readelf.c:6846 +#: src/readelf.c:6954 #, c-format msgid " set isa to %u\n" msgstr " establecer isa para %u\n" -#: src/readelf.c:6855 +#: src/readelf.c:6963 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] " opcódigo con parámetro % desconocido:" msgstr[1] " opcódigo con parámetros % desconocido:" -#: src/readelf.c:6887 +#: src/readelf.c:6995 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:6962 +#: src/readelf.c:7070 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:6964 +#: src/readelf.c:7072 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6971 src/readelf.c:7859 +#: src/readelf.c:7079 src/readelf.c:7967 msgid " \n" msgstr " \n" -#: src/readelf.c:7023 src/readelf.c:7185 +#: src/readelf.c:7131 src/readelf.c:7293 #, c-format msgid "cannot get macro information section data: %s" msgstr "no es posible obtener datos de la sección de macro información: %s" -#: src/readelf.c:7103 +#: src/readelf.c:7211 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** cadena no finalizada al final de la sección" -#: src/readelf.c:7126 +#: src/readelf.c:7234 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** cadena no finalizada al final de la sección" -#: src/readelf.c:7226 +#: src/readelf.c:7334 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:7238 +#: src/readelf.c:7346 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:7244 src/readelf.c:7978 +#: src/readelf.c:7352 src/readelf.c:8086 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:7251 +#: src/readelf.c:7359 #, fuzzy, c-format msgid " Flag: 0x%\n" msgstr " Dirección de punto de entrada: %#\n" -#: src/readelf.c:7254 +#: src/readelf.c:7362 #, fuzzy, c-format msgid " Offset length: %\n" msgstr " (compensación: %#)" -#: src/readelf.c:7262 +#: src/readelf.c:7370 #, fuzzy, c-format msgid " .debug_line offset: 0x%\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:7275 +#: src/readelf.c:7383 #, fuzzy, c-format msgid " extension opcode table, % items:\n" msgstr " opcódigo con parámetro % desconocido:" -#: src/readelf.c:7282 +#: src/readelf.c:7390 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:7294 +#: src/readelf.c:7402 #, fuzzy, c-format msgid " % arguments:" msgstr " [%*] argumento %hhu \n" -#: src/readelf.c:7322 +#: src/readelf.c:7430 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:7559 +#: src/readelf.c:7667 #, c-format msgid "vendor opcode not verified?" msgstr "" -#: src/readelf.c:7587 +#: src/readelf.c:7695 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" " Compensación [%5d] DIE: %6, Compensación CU DIE: %6, " "nombre: %s\n" -#: src/readelf.c:7628 +#: src/readelf.c:7736 #, c-format msgid "" "\n" @@ -6070,12 +6154,12 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#:\n" " %*s String\n" -#: src/readelf.c:7642 +#: src/readelf.c:7750 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** error en lectura de cadenas: %s\n" -#: src/readelf.c:7662 +#: src/readelf.c:7770 #, c-format msgid "" "\n" @@ -6084,7 +6168,7 @@ msgstr "" "\n" "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:7764 +#: src/readelf.c:7872 #, c-format msgid "" "\n" @@ -6093,22 +6177,22 @@ msgstr "" "\n" "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:7787 +#: src/readelf.c:7895 #, c-format msgid " LPStart encoding: %#x " msgstr "Codificación LPStart: %#x " -#: src/readelf.c:7799 +#: src/readelf.c:7907 #, c-format msgid " TType encoding: %#x " msgstr "Codificación TType: %#x " -#: src/readelf.c:7814 +#: src/readelf.c:7922 #, c-format msgid " Call site encoding: %#x " msgstr "Codificación de sitio de llamada: %#x " -#: src/readelf.c:7827 +#: src/readelf.c:7935 msgid "" "\n" " Call site table:" @@ -6116,7 +6200,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:7841 +#: src/readelf.c:7949 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -6129,12 +6213,12 @@ msgstr "" " Landing pad: %#\n" " Action: %u\n" -#: src/readelf.c:7914 +#: src/readelf.c:8022 #, c-format msgid "invalid TType encoding" msgstr "Codificación TType inválida" -#: src/readelf.c:7940 +#: src/readelf.c:8048 #, fuzzy, c-format msgid "" "\n" @@ -6143,37 +6227,37 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:7969 +#: src/readelf.c:8077 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:7987 +#: src/readelf.c:8095 #, fuzzy, c-format msgid " CU offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:7994 +#: src/readelf.c:8102 #, fuzzy, c-format msgid " TU offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:8001 +#: src/readelf.c:8109 #, fuzzy, c-format msgid " address offset: %#\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:8008 +#: src/readelf.c:8116 #, fuzzy, c-format msgid " symbol offset: %#\n" msgstr " (compensación: %#)" -#: src/readelf.c:8015 +#: src/readelf.c:8123 #, fuzzy, c-format msgid " constant offset: %#\n" msgstr " (fin de compensación: %#)" -#: src/readelf.c:8029 +#: src/readelf.c:8137 #, fuzzy, c-format msgid "" "\n" @@ -6182,7 +6266,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:8054 +#: src/readelf.c:8162 #, fuzzy, c-format msgid "" "\n" @@ -6191,7 +6275,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:8083 +#: src/readelf.c:8191 #, fuzzy, c-format msgid "" "\n" @@ -6200,7 +6284,7 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %# contiene entrada %zu:\n" -#: src/readelf.c:8116 +#: src/readelf.c:8224 #, fuzzy, c-format msgid "" "\n" @@ -6209,17 +6293,17 @@ msgstr "" "\n" "Tabla de símbolos inválida en compensación %#0\n" -#: src/readelf.c:8203 +#: src/readelf.c:8311 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "no se puede depurar descriptor de contexto: %s" -#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152 +#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258 #, c-format msgid "cannot convert core note data: %s" msgstr "no es posible convertir datos de la nota principal: %s" -#: src/readelf.c:8724 +#: src/readelf.c:8830 #, c-format msgid "" "\n" @@ -6228,21 +6312,21 @@ msgstr "" "\n" "%*s... ..." -#: src/readelf.c:9231 +#: src/readelf.c:9337 msgid " Owner Data size Type\n" msgstr " Owner Data size Type\n" -#: src/readelf.c:9249 +#: src/readelf.c:9355 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:9299 +#: src/readelf.c:9405 #, c-format msgid "cannot get content of note section: %s" msgstr "no se puede obtener el contenido de sección de nota: %s" -#: src/readelf.c:9326 +#: src/readelf.c:9432 #, c-format msgid "" "\n" @@ -6251,7 +6335,7 @@ msgstr "" "\n" "Sección de nota [%2zu] '%s' de % bytes en compensación %#0:\n" -#: src/readelf.c:9349 +#: src/readelf.c:9455 #, c-format msgid "" "\n" @@ -6260,7 +6344,7 @@ msgstr "" "\n" "Segmento de nota de % bytes en compensación %#0:\n" -#: src/readelf.c:9395 +#: src/readelf.c:9501 #, fuzzy, c-format msgid "" "\n" @@ -6269,12 +6353,12 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:9401 src/readelf.c:9424 +#: src/readelf.c:9518 src/readelf.c:9559 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "no se pueden obtener datos para sección [%Zu] '%s': %s" -#: src/readelf.c:9405 +#: src/readelf.c:9523 #, fuzzy, c-format msgid "" "\n" @@ -6284,7 +6368,18 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', % bytes en compensación " "%#0:\n" -#: src/readelf.c:9418 +#: src/readelf.c:9528 +#, fuzzy, c-format +msgid "" +"\n" +"Hex dump of section [%zu] '%s', % bytes (%zd uncompressed) at offset " +"%#0:\n" +msgstr "" +"\n" +"Volcado Hex de sección [%Zu] '%s', % bytes en compensación " +"%#0:\n" + +#: src/readelf.c:9542 #, fuzzy, c-format msgid "" "\n" @@ -6293,7 +6388,7 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:9428 +#: src/readelf.c:9564 #, fuzzy, c-format msgid "" "\n" @@ -6303,7 +6398,18 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene % bytes en compensación " "%#0:\n" -#: src/readelf.c:9476 +#: src/readelf.c:9569 +#, fuzzy, c-format +msgid "" +"\n" +"String section [%zu] '%s' contains % bytes (%zd uncompressed) at " +"offset %#0:\n" +msgstr "" +"\n" +"Sección de cadena [%Zu] '%s' contiene % bytes en compensación " +"%#0:\n" + +#: src/readelf.c:9618 #, c-format msgid "" "\n" @@ -6312,7 +6418,7 @@ msgstr "" "\n" "sección [%lu] no existe" -#: src/readelf.c:9505 +#: src/readelf.c:9647 #, c-format msgid "" "\n" @@ -6321,12 +6427,12 @@ msgstr "" "\n" "sección '%s' no existe" -#: src/readelf.c:9562 +#: src/readelf.c:9704 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "no se puede obtener el índice de símbolo de archivo '%s': %s" -#: src/readelf.c:9565 +#: src/readelf.c:9707 #, c-format msgid "" "\n" @@ -6335,7 +6441,7 @@ msgstr "" "\n" "Archivo '%s' no tiene índice de símbolo\n" -#: src/readelf.c:9569 +#: src/readelf.c:9711 #, fuzzy, c-format msgid "" "\n" @@ -6344,12 +6450,12 @@ msgstr "" "\n" "Índice de archivo '%s' tiene %Zu entradas:\n" -#: src/readelf.c:9587 +#: src/readelf.c:9729 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "no es posible extraer miembro en compensación %Zu en '%s': %s" -#: src/readelf.c:9592 +#: src/readelf.c:9734 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Miembro de archivo contiene '%s':\n" @@ -6873,12 +6979,12 @@ msgstr "no se puede crear el encabezamiento ELF: %s" msgid "cannot copy ELF header: %s" msgstr "no se puede copiar encabezamiento ELF: %s" -#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947 +#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "no se pudo determinar la cantidad de encabezados de programa: %s" -#: src/unstrip.c:266 src/unstrip.c:1907 +#: src/unstrip.c:266 src/unstrip.c:1943 #, c-format msgid "cannot create program headers: %s" msgstr "No pueden crear encabezamientos de programa: %s" @@ -6893,12 +6999,12 @@ 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:285 src/unstrip.c:1541 +#: src/unstrip.c:285 src/unstrip.c:1576 #, c-format msgid "cannot get section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:287 src/unstrip.c:1543 +#: src/unstrip.c:287 src/unstrip.c:1578 #, c-format msgid "cannot copy section data: %s" msgstr "no pueden copiar datos de sección: %s" @@ -6908,141 +7014,141 @@ 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:351 src/unstrip.c:768 src/unstrip.c:1575 +#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610 #, c-format msgid "cannot get symbol table entry: %s" msgstr "no se puede obtener entrada de tabla de símbolos: %s" -#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618 -#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793 +#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653 +#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829 #, c-format msgid "cannot update symbol table: %s" msgstr "no se puede actualizar tabla de símbolos: %s" -#: src/unstrip.c:377 +#: src/unstrip.c:409 #, c-format msgid "cannot update section header: %s" msgstr "no se puede actualizar encabezamiento de sección: %s" -#: src/unstrip.c:416 src/unstrip.c:427 +#: src/unstrip.c:448 src/unstrip.c:459 #, c-format msgid "cannot update relocation: %s" msgstr "no se puede actualizar reubicación: %s" -#: src/unstrip.c:514 +#: src/unstrip.c:547 #, c-format msgid "cannot get symbol version: %s" msgstr "no se puede obtener versión de símbolo: %s" -#: src/unstrip.c:526 +#: src/unstrip.c:560 #, fuzzy, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "tipo de sección inesperado en [%Zu] con sh_link para symtab" -#: src/unstrip.c:774 +#: src/unstrip.c:809 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "compensación de cadena inválida en símbolo [%Zu]" -#: src/unstrip.c:932 src/unstrip.c:1278 +#: src/unstrip.c:967 src/unstrip.c:1313 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "no se puede leer nombre [%Zu]: %s" -#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027 +#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: src/unstrip.c:1013 +#: src/unstrip.c:1048 #, c-format msgid "invalid contents in '%s' section" msgstr "contenido inválido en sección '%s'" -#: src/unstrip.c:1019 +#: src/unstrip.c:1054 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 src/unstrip.c:1398 +#: src/unstrip.c:1108 src/unstrip.c:1433 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "no se puede hallar sección coincidente para [%Zu] '%s'" -#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731 +#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766 #, c-format msgid "cannot add section name to string table: %s" msgstr "no se puede añadir nombre de sección a tabla de cadenas: %s" -#: src/unstrip.c:1222 +#: src/unstrip.c:1257 #, c-format msgid "cannot update section header string table data: %s" msgstr "" "no se pueden actualizar datos de tabla de cadenas de encabezamiento de " "sección: %s" -#: src/unstrip.c:1249 src/unstrip.c:1253 +#: src/unstrip.c:1284 src/unstrip.c:1288 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "no se puede obtener índice de sección de tabla de cadenas de encabezamiento " "de sección: %s" -#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494 +#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529 #, c-format msgid "cannot get section count: %s" msgstr "No se puede obtener cuenta de sección: %s" -#: src/unstrip.c:1264 +#: src/unstrip.c:1299 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "más secciones en el archivo despojado que en el archivo de depuración -- " "¿argumentos invertidos?" -#: src/unstrip.c:1323 src/unstrip.c:1413 +#: src/unstrip.c:1358 src/unstrip.c:1448 #, c-format msgid "cannot read section header string table: %s" msgstr "no se puede obtener tabla de cadenas de encabezamiento de sección: %s" -#: src/unstrip.c:1473 +#: src/unstrip.c:1508 #, c-format msgid "cannot add new section: %s" msgstr "No se puede añadir nueva sección: %s" -#: src/unstrip.c:1583 +#: src/unstrip.c:1618 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "símbolo [%Zu] tiene índice de sección inválido" -#: src/unstrip.c:1864 +#: src/unstrip.c:1900 #, c-format msgid "cannot read section data: %s" msgstr "no se puede leer la sección de datos: %s" -#: src/unstrip.c:1885 +#: src/unstrip.c:1921 #, c-format msgid "cannot get ELF header: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/unstrip.c:1917 +#: src/unstrip.c:1953 #, c-format msgid "cannot update program header: %s" msgstr "no se puede actualizar encabezamiento de programa: %s" -#: src/unstrip.c:1922 src/unstrip.c:2005 +#: src/unstrip.c:1958 src/unstrip.c:2040 #, c-format msgid "cannot write output file: %s" msgstr "no se puede escribir al archivo de salida: %s" -#: src/unstrip.c:1974 +#: src/unstrip.c:2009 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "datos DWARF no se ajustan para polarización de pre-enlace; considere prelink " "-u" -#: src/unstrip.c:1977 +#: src/unstrip.c:2012 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -7050,77 +7156,77 @@ msgstr "" "Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere " "prelink -u" -#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145 +#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "no se puede crear un descriptor ELF: %s" -#: src/unstrip.c:2038 +#: src/unstrip.c:2073 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2040 +#: src/unstrip.c:2075 msgid ", use --force" msgstr "" -#: src/unstrip.c:2063 +#: src/unstrip.c:2098 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2066 +#: src/unstrip.c:2101 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2069 +#: src/unstrip.c:2104 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2072 +#: src/unstrip.c:2107 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2102 +#: src/unstrip.c:2137 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "no se puede hallar archivo obtenido para módulo '%s': %s " -#: src/unstrip.c:2106 +#: src/unstrip.c:2141 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "No se puede abrir el archivo '%s' obtenido para módulo '%s': %s" -#: src/unstrip.c:2121 +#: src/unstrip.c:2156 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "no puede hallar archivo de depuración para módulo '%s': %su" -#: src/unstrip.c:2125 +#: src/unstrip.c:2160 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "No puede abrir archivo de depuración '%s' para módulo '%s': %s" -#: src/unstrip.c:2138 +#: src/unstrip.c:2173 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "No se obtuvo el archivo '%s' de módulo '%s' " -#: src/unstrip.c:2169 +#: src/unstrip.c:2204 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" "No puede almacenar en cache direcciones de sección para módulo '%s': %s" -#: src/unstrip.c:2302 +#: src/unstrip.c:2337 #, c-format msgid "no matching modules found" msgstr "No se encontraron módulos coincidentes" -#: src/unstrip.c:2311 +#: src/unstrip.c:2346 #, c-format msgid "matched more than one module" msgstr "coincidió con más de un módulo" -#: src/unstrip.c:2355 +#: src/unstrip.c:2390 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7128,7 +7234,7 @@ msgstr "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" -#: src/unstrip.c:2356 +#: src/unstrip.c:2391 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" diff --git a/po/ja.po b/po/ja.po index 3c32ee1f..76550a3a 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2015-10-16 13:26+0200\n" +"POT-Creation-Date: 2016-01-08 14:06+0100\n" "PO-Revision-Date: 2009-09-20 15:32+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi \n" "Language-Team: Japanese \n" @@ -39,8 +39,8 @@ msgstr "" msgid "cannot allocate memory" msgstr "PLT セクションを割り当てられません: %s" -#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184 -#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403 +#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282 +#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438 #, c-format msgid "memory exhausted" msgstr "メモリー消費済み" @@ -243,7 +243,7 @@ msgstr "不当なオペランド" msgid "not a CU (unit) DIE" msgstr "" -#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345 +#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380 msgid "Input selection options:" msgstr "選択オプションを入力してください:" @@ -300,7 +300,12 @@ msgstr "カーネルかモジュールを見つけられません" msgid "cannot read ELF core file: %s" msgstr "ELF コアファイルを読めません: %s" -#: libdwfl/argp-std.c:311 +#: libdwfl/argp-std.c:313 +#, fuzzy +msgid "Not enough memory" +msgstr "メモリー不足" + +#: libdwfl/argp-std.c:323 msgid "No modules recognized in core file" msgstr "コアファイルの中にモジュールを認識できません" @@ -567,7 +572,7 @@ msgstr "ソース演算子の大きさが無効" msgid "invalid size of destination operand" msgstr "宛先演算子の大きさが無効" -#: libelf/elf_error.c:87 src/readelf.c:5365 +#: libelf/elf_error.c:87 src/readelf.c:5473 #, c-format msgid "invalid encoding" msgstr "無効なエンコード" @@ -649,8 +654,8 @@ msgstr "データ/scnが不整合です" msgid "invalid section header" msgstr "不当なセクションヘッダー" -#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682 -#: src/readelf.c:7783 src/readelf.c:7964 +#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790 +#: src/readelf.c:7891 src/readelf.c:8072 #, c-format msgid "invalid data" msgstr "不当なデータ" @@ -694,6 +699,40 @@ msgstr "" msgid "file has no program header" msgstr "ファイルにプログラムヘッダーがありません" +#: libelf/elf_error.c:237 +#, fuzzy +msgid "invalid section type" +msgstr "不当なセクション" + +#: libelf/elf_error.c:242 +#, fuzzy +msgid "invalid section flags" +msgstr "不当なセクション" + +#: libelf/elf_error.c:247 +#, fuzzy +msgid "section does not contain compressed data" +msgstr "セクション [%2d] '%s': セクションデータを得られません\n" + +#: libelf/elf_error.c:252 +msgid "section contains compressed data" +msgstr "" + +#: libelf/elf_error.c:257 +#, fuzzy +msgid "unknown compression type" +msgstr "不明なタイプ" + +#: libelf/elf_error.c:262 +#, fuzzy +msgid "cannot compress data" +msgstr "セクションデータを割り当てられません: %s" + +#: libelf/elf_error.c:267 +#, fuzzy +msgid "cannot decompress data" +msgstr "セクションデータを割り当てられません: %s" + #: src/addr2line.c:58 #, fuzzy msgid "Input format options:" @@ -750,7 +789,7 @@ msgstr "" msgid "Print all information on one line, and indent inlines" msgstr "" -#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99 +#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100 #: src/strings.c:79 msgid "Miscellaneous:" msgstr "雑則:" @@ -764,9 +803,9 @@ msgstr "" msgid "[ADDR...]" msgstr "" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235 -#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177 -#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235 +#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177 +#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -778,9 +817,9 @@ 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" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240 -#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182 -#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240 +#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182 +#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -1251,40 +1290,40 @@ msgstr "" msgid "%s %s differ: gap" msgstr "" -#: src/elfcmp.c:702 +#: src/elfcmp.c:704 #, c-format msgid "Invalid value '%s' for --gaps parameter." msgstr "" -#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289 -#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994 -#: src/unstrip.c:2023 +#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757 +#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289 +#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029 +#: src/unstrip.c:2058 #, c-format msgid "cannot open '%s'" msgstr "'%s' を開けません" -#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174 +#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174 #, c-format msgid "cannot create ELF descriptor for '%s': %s" msgstr "" -#: src/elfcmp.c:739 +#: src/elfcmp.c:741 #, c-format msgid "cannot create EBL descriptor for '%s'" msgstr "" -#: src/elfcmp.c:757 src/findtextrel.c:409 +#: src/elfcmp.c:759 src/findtextrel.c:409 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "" -#: src/elfcmp.c:767 +#: src/elfcmp.c:769 #, c-format msgid "cannot get content of section %zu: %s" msgstr "" -#: src/elfcmp.c:777 src/elfcmp.c:791 +#: src/elfcmp.c:779 src/elfcmp.c:793 #, c-format msgid "cannot get relocation: %s" msgstr "" @@ -1312,11 +1351,11 @@ msgstr "" msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "ELF ファイルが gABI/psABI 仕様へ準拠しているかの厳密なチェック。" -#: src/elflint.c:78 src/readelf.c:123 +#: src/elflint.c:78 src/readelf.c:126 msgid "FILE..." msgstr "ふぁいる..." -#: src/elflint.c:155 src/readelf.c:292 +#: src/elflint.c:155 src/readelf.c:298 #, c-format msgid "cannot open input file" msgstr "入力ファイルを開けません" @@ -1335,7 +1374,7 @@ msgstr "Elf 記述子を閉じている時にエラー: %s\n" msgid "No errors" msgstr "エラーはありません" -#: src/elflint.c:219 src/readelf.c:468 +#: src/elflint.c:219 src/readelf.c:474 msgid "Missing file name.\n" msgstr "ファイル名がありません。\n" @@ -1482,14 +1521,14 @@ msgstr "" "セクション [%2d] '%s': セクショングループ [%2zu] '%s' がグループメンバーを継" "続していません\n" -#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628 -#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056 -#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336 +#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632 +#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061 +#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:604 src/elflint.c:1635 +#: src/elflint.c:604 src/elflint.c:1639 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1601,12 +1640,12 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: COMMON セクションの機能は意味がありませ" "ん\n" -#: src/elflint.c:805 +#: src/elflint.c:809 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" msgstr "セクション [%2d] '%s': シンボル %zu: st_value 境界外\n" -#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885 +#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889 #, c-format msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " @@ -1615,7 +1654,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu は参照されるセクション [%2d] '%s' とは完" "全に一致しません\n" -#: src/elflint.c:820 +#: src/elflint.c:824 #, c-format msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " @@ -1624,7 +1663,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: 参照されるセクション [%2d] '%s' は " "SHF_TLS フラグが設定されていません\n" -#: src/elflint.c:830 src/elflint.c:878 +#: src/elflint.c:834 src/elflint.c:882 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " @@ -1633,7 +1672,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: st_value 参照されるセクション [%2d] " "'%s' の境界外\n" -#: src/elflint.c:857 +#: src/elflint.c:861 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" @@ -1641,7 +1680,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目がない TLS シ" "ンボル\n" -#: src/elflint.c:863 +#: src/elflint.c:867 #, fuzzy, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program " @@ -1650,7 +1689,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目がない TLS シ" "ンボル\n" -#: src/elflint.c:871 +#: src/elflint.c:875 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] " @@ -1659,7 +1698,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: 参照されるセクション [%2d] '%s' の" "st_value 不足\n" -#: src/elflint.c:898 +#: src/elflint.c:902 #, c-format msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " @@ -1668,7 +1707,7 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: sh_info に記述された範囲外のローカルシン" "ボル\n" -#: src/elflint.c:905 +#: src/elflint.c:909 #, c-format msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " @@ -1677,12 +1716,12 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: sh_info に記述された範囲外の非ローカルシ" "ンボル\n" -#: src/elflint.c:912 +#: src/elflint.c:916 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" msgstr "セクション [%2d] '%s': シンボル %zu: 非ローカルセクションシンボル\n" -#: src/elflint.c:962 +#: src/elflint.c:966 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -1691,7 +1730,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルが間違ったセクション " "[%2d] を参照しています\n" -#: src/elflint.c:969 +#: src/elflint.c:973 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -1700,7 +1739,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルはセクション [%2d] '%s' " "を参照しています\n" -#: src/elflint.c:985 +#: src/elflint.c:989 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %# does not " @@ -1709,7 +1748,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボル値 %# は %s のセ" "クションアドレス %# と一致しません\n" -#: src/elflint.c:992 +#: src/elflint.c:996 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size % does not " @@ -1718,7 +1757,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルサイズ % は %s " "のセクションサイズ % と一致しません\n" -#: src/elflint.c:1000 +#: src/elflint.c:1004 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -1727,7 +1766,7 @@ msgstr "" "セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルはありますが、.got セク" "ションがありません\n" -#: src/elflint.c:1016 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %# does not match dynamic " @@ -1736,7 +1775,7 @@ msgstr "" "セクション [%2d] '%s': _DYNAMIC_ シンボル値 %# は動的セグメントアドレ" "ス %# と一致しません\n" -#: src/elflint.c:1023 +#: src/elflint.c:1027 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size % does not match dynamic " @@ -1745,7 +1784,7 @@ msgstr "" "セクション [%2d] '%s': _DYNAMIC シンボルサイズ % は動的セグメントサイ" "ズ % と一致しません\n" -#: src/elflint.c:1036 +#: src/elflint.c:1040 #, c-format msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" @@ -1754,29 +1793,29 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: 省略以外の可視性を持った動的シンボルテー" "ブル中のシンボル\n" -#: src/elflint.c:1040 +#: src/elflint.c:1044 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" msgstr "" "セクション [%2d] '%s': シンボル %zu: st_other 中に設定された不明なビット\n" -#: src/elflint.c:1078 +#: src/elflint.c:1082 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:1094 +#: src/elflint.c:1098 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "セクション [%2d] '%s': この RELA セクション用に使われる DT_RELCOUNT\n" -#: src/elflint.c:1105 src/elflint.c:1158 +#: src/elflint.c:1109 src/elflint.c:1162 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" "セクション [%2d] '%s': このセクション用には高すぎる DT_RELCOUNT 値 %d\n" -#: src/elflint.c:1130 src/elflint.c:1183 +#: src/elflint.c:1134 src/elflint.c:1187 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -1785,7 +1824,7 @@ msgstr "" "セクション [%2d] '%s': UT_RELOCOUNT で指定されたインデックス %d 後の相対リロ" "ケーション\n" -#: src/elflint.c:1136 src/elflint.c:1189 +#: src/elflint.c:1140 src/elflint.c:1193 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -1794,52 +1833,52 @@ msgstr "" "セクション [%2d] '%s': インデックス %zu での非相対リロケーション; %d 相対リ" "ロケーションで指定された DT_RELCOUNT\n" -#: src/elflint.c:1148 +#: src/elflint.c:1152 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "セクション [%2d] '%s': この REL セクション用に使われる DT_RELACOUNT\n" -#: src/elflint.c:1231 +#: src/elflint.c:1235 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "セクション [%2d] '%s': 不当な宛先セクションインデックス\n" -#: src/elflint.c:1243 +#: src/elflint.c:1247 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "セクション [%2d] '%s': 不当な宛先セクションタイプ\n" -#: src/elflint.c:1251 +#: src/elflint.c:1255 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "セクション [%2d] '%s': sh_info はゼロでなければなりません\n" -#: src/elflint.c:1259 +#: src/elflint.c:1263 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "セクション [%2d] '%s': マージできるセクションのリロケーションは不可能です\n" -#: src/elflint.c:1267 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" msgstr "" "セクション [%2d] '%s': セクション項目サイズが ElfXX_Rela と一致しません\n" -#: src/elflint.c:1327 +#: src/elflint.c:1331 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" "テキストリロケーションフラグが設定されていますが、読込み専用セグメントがあり" "ません\n" -#: src/elflint.c:1354 +#: src/elflint.c:1358 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "セクション [%2d] '%s': リロケーション %zu: 不当なタイプ\n" -#: src/elflint.c:1362 +#: src/elflint.c:1366 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -1848,13 +1887,13 @@ msgstr "" "セクション [%2d] '%s': リロケーション %zu: このファイル用のリロケーションタイ" "プは不当です\n" -#: src/elflint.c:1370 +#: src/elflint.c:1374 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "" "セクション [%2d] '%s': リロケーション %zu: 不当なシンボルインデックス\n" -#: src/elflint.c:1388 +#: src/elflint.c:1392 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -1863,12 +1902,12 @@ msgstr "" "セクション [%2d] '%s': リロケーション %zu: シンボル '_GLOBAL_OFFSET_TABLE_' " "のみが %s と一緒に使用できます\n" -#: src/elflint.c:1405 +#: src/elflint.c:1409 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "セクション [%2d] '%s': リロケーション %zu: オフセット境界外\n" -#: src/elflint.c:1420 +#: src/elflint.c:1424 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -1877,7 +1916,7 @@ msgstr "" "セクション [%2d] '%s': リロケーション %zu: タイプ %s のシンボルに対するコピー" "リロケーション\n" -#: src/elflint.c:1441 +#: src/elflint.c:1445 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -1886,24 +1925,24 @@ msgstr "" "セクション [%2d] '%s': リロケーション %zu: 読込み専用セクションが変更されまし" "たが、テキストリロケーションフラグが設定されていません\n" -#: src/elflint.c:1456 +#: src/elflint.c:1460 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" "セクション [%2d] '%s': リロケーションがロードされたデータとロードされなかった" "データに対してです\n" -#: src/elflint.c:1496 src/elflint.c:1547 +#: src/elflint.c:1500 src/elflint.c:1551 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "" -#: src/elflint.c:1623 +#: src/elflint.c:1627 #, c-format msgid "more than one dynamic section present\n" msgstr "" -#: src/elflint.c:1641 +#: src/elflint.c:1645 #, fuzzy, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -1912,427 +1951,427 @@ msgstr "" "セクション [%2d] '%s': セクション [%2d] '%s' 用の文字列テーブルとして参照され" "ていますが、タイプが SHT_STRTAB ではありません\n" -#: src/elflint.c:1649 +#: src/elflint.c:1653 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" -#: src/elflint.c:1654 src/elflint.c:1943 +#: src/elflint.c:1658 src/elflint.c:1947 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "" -#: src/elflint.c:1664 +#: src/elflint.c:1668 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" -#: src/elflint.c:1672 +#: src/elflint.c:1676 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "" -#: src/elflint.c:1679 +#: src/elflint.c:1683 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "" -#: src/elflint.c:1690 +#: src/elflint.c:1694 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "" -#: src/elflint.c:1700 +#: src/elflint.c:1704 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "" -#: src/elflint.c:1718 +#: src/elflint.c:1722 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" msgstr "" -#: src/elflint.c:1731 +#: src/elflint.c:1735 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " "[%2d] '%s' referenced by sh_link\n" msgstr "" -#: src/elflint.c:1774 +#: src/elflint.c:1778 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" -#: src/elflint.c:1789 +#: src/elflint.c:1793 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " "[%2d] '%s'\n" msgstr "" -#: src/elflint.c:1809 src/elflint.c:1837 +#: src/elflint.c:1813 src/elflint.c:1841 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "" -#: src/elflint.c:1821 +#: src/elflint.c:1825 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "" -#: src/elflint.c:1830 +#: src/elflint.c:1834 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "" -#: src/elflint.c:1845 src/elflint.c:1852 +#: src/elflint.c:1849 src/elflint.c:1856 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "" -#: src/elflint.c:1862 src/elflint.c:1866 +#: src/elflint.c:1866 src/elflint.c:1870 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" -#: src/elflint.c:1872 +#: src/elflint.c:1876 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" -#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 +#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" -#: src/elflint.c:1907 +#: src/elflint.c:1911 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" msgstr "" -#: src/elflint.c:1917 +#: src/elflint.c:1921 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" -#: src/elflint.c:1921 +#: src/elflint.c:1925 #, fuzzy, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "セクション [%2d] '%s': 不当な宛先セクションインデックス\n" -#: src/elflint.c:1926 +#: src/elflint.c:1930 #, c-format msgid "cannot get data for symbol section\n" msgstr "" -#: src/elflint.c:1929 +#: src/elflint.c:1933 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "" -#: src/elflint.c:1938 +#: src/elflint.c:1942 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" -#: src/elflint.c:1953 +#: src/elflint.c:1957 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " "same symbol table\n" msgstr "" -#: src/elflint.c:1970 +#: src/elflint.c:1974 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "" -#: src/elflint.c:1982 +#: src/elflint.c:1986 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "" -#: src/elflint.c:1987 +#: src/elflint.c:1991 #, c-format msgid "extended section index is % but symbol index is not XINDEX\n" msgstr "" -#: src/elflint.c:2003 src/elflint.c:2054 +#: src/elflint.c:2007 src/elflint.c:2058 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" msgstr "" -#: src/elflint.c:2015 src/elflint.c:2066 +#: src/elflint.c:2019 src/elflint.c:2070 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "" -#: src/elflint.c:2029 src/elflint.c:2080 +#: src/elflint.c:2033 src/elflint.c:2084 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2039 +#: src/elflint.c:2043 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" -#: src/elflint.c:2090 +#: src/elflint.c:2094 #, c-format msgid "section [%2d] '%s': hash chain reference % out of bounds\n" msgstr "" -#: src/elflint.c:2103 +#: src/elflint.c:2107 #, fuzzy, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:2115 +#: src/elflint.c:2119 #, fuzzy, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "セクション [%2d] '%s': 0番目の項目にある '%s' ゼロではありません\n" -#: src/elflint.c:2131 +#: src/elflint.c:2135 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " "least %ld)\n" msgstr "" -#: src/elflint.c:2140 +#: src/elflint.c:2144 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" -#: src/elflint.c:2174 +#: src/elflint.c:2178 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" msgstr "" -#: src/elflint.c:2195 +#: src/elflint.c:2199 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " "undefined\n" msgstr "" -#: src/elflint.c:2208 +#: src/elflint.c:2212 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" msgstr "" -#: src/elflint.c:2217 +#: src/elflint.c:2221 #, fuzzy, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:2247 +#: src/elflint.c:2251 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2252 +#: src/elflint.c:2256 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" msgstr "" -#: src/elflint.c:2258 +#: src/elflint.c:2262 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" -#: src/elflint.c:2271 +#: src/elflint.c:2275 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" -#: src/elflint.c:2289 +#: src/elflint.c:2293 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" -#: src/elflint.c:2293 +#: src/elflint.c:2297 #, fuzzy, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "セクション [%2d] '%s': 不当な宛先セクションインデックス\n" -#: src/elflint.c:2301 +#: src/elflint.c:2305 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "" -#: src/elflint.c:2306 +#: src/elflint.c:2310 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "" -#: src/elflint.c:2311 +#: src/elflint.c:2315 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " "entries\n" msgstr "" -#: src/elflint.c:2360 +#: src/elflint.c:2364 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "" -#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484 +#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488 #, fuzzy, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:2405 +#: src/elflint.c:2409 #, fuzzy, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497 +#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501 #, fuzzy, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:2431 +#: src/elflint.c:2435 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index % (max_nsyms: " "%, nentries: %\n" msgstr "" -#: src/elflint.c:2518 +#: src/elflint.c:2522 #, fuzzy, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "セクション [%2d] '%s': 不当な宛先セクションタイプ\n" -#: src/elflint.c:2528 src/elflint.c:2532 +#: src/elflint.c:2532 src/elflint.c:2536 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "" -#: src/elflint.c:2539 +#: src/elflint.c:2543 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2551 +#: src/elflint.c:2555 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " "table in [%2zu] '%s'\n" msgstr "" -#: src/elflint.c:2567 +#: src/elflint.c:2571 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "" -#: src/elflint.c:2587 +#: src/elflint.c:2591 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" msgstr "" -#: src/elflint.c:2598 +#: src/elflint.c:2602 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "" -#: src/elflint.c:2603 +#: src/elflint.c:2607 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" -#: src/elflint.c:2609 +#: src/elflint.c:2613 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "" -#: src/elflint.c:2614 +#: src/elflint.c:2618 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "" -#: src/elflint.c:2621 +#: src/elflint.c:2625 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "" -#: src/elflint.c:2625 +#: src/elflint.c:2629 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "セクション [%2d] '%s': シンボル %d を得られません: %s\n" -#: src/elflint.c:2630 +#: src/elflint.c:2634 #, fuzzy, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "セクション [%2d] '%s': セクションデータを得られません\n" -#: src/elflint.c:2636 +#: src/elflint.c:2640 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "" -#: src/elflint.c:2642 +#: src/elflint.c:2646 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "" -#: src/elflint.c:2651 +#: src/elflint.c:2655 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" -#: src/elflint.c:2656 +#: src/elflint.c:2660 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "" -#: src/elflint.c:2662 +#: src/elflint.c:2666 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "" -#: src/elflint.c:2666 +#: src/elflint.c:2670 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "" -#: src/elflint.c:2677 +#: src/elflint.c:2681 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "" -#: src/elflint.c:2689 +#: src/elflint.c:2693 #, fuzzy, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "セクション [%2d] '%s': リロケーション %zu: オフセット境界外\n" -#: src/elflint.c:2698 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" -#: src/elflint.c:2705 +#: src/elflint.c:2709 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "" -#: src/elflint.c:2711 +#: src/elflint.c:2715 #, fuzzy, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2341,745 +2380,761 @@ msgstr "" "セクション [%2d] '%s': シンボル %zu: 参照されるセクション [%2d] '%s' は " "SHF_TLS フラグが設定されていません\n" -#: src/elflint.c:2718 +#: src/elflint.c:2722 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "" -#: src/elflint.c:2907 +#: src/elflint.c:2912 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " "dynamic symbol table\n" msgstr "" -#: src/elflint.c:2919 +#: src/elflint.c:2924 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " "'%s'\n" msgstr "" -#: src/elflint.c:2935 +#: src/elflint.c:2940 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "" -#: src/elflint.c:2951 +#: src/elflint.c:2956 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" -#: src/elflint.c:2959 +#: src/elflint.c:2964 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "" -#: src/elflint.c:2973 +#: src/elflint.c:2978 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "" -#: src/elflint.c:2978 +#: src/elflint.c:2983 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" -#: src/elflint.c:2988 +#: src/elflint.c:2993 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" -#: src/elflint.c:3041 +#: src/elflint.c:3046 #, c-format msgid "more than one version reference section present\n" msgstr "" -#: src/elflint.c:3049 src/elflint.c:3196 +#: src/elflint.c:3054 src/elflint.c:3201 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "" -#: src/elflint.c:3074 src/elflint.c:3250 +#: src/elflint.c:3079 src/elflint.c:3255 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "" -#: src/elflint.c:3081 src/elflint.c:3257 +#: src/elflint.c:3086 src/elflint.c:3262 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" -#: src/elflint.c:3091 +#: src/elflint.c:3096 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "" -#: src/elflint.c:3099 +#: src/elflint.c:3104 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "" -#: src/elflint.c:3111 +#: src/elflint.c:3116 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3119 +#: src/elflint.c:3124 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " "reference\n" msgstr "" -#: src/elflint.c:3128 +#: src/elflint.c:3133 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " "%#x, expected %#x\n" msgstr "" -#: src/elflint.c:3137 +#: src/elflint.c:3142 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " "name '%s'\n" msgstr "" -#: src/elflint.c:3148 +#: src/elflint.c:3153 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" -#: src/elflint.c:3165 src/elflint.c:3341 +#: src/elflint.c:3170 src/elflint.c:3346 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" -#: src/elflint.c:3173 src/elflint.c:3349 +#: src/elflint.c:3178 src/elflint.c:3354 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " "there are more entries\n" msgstr "" -#: src/elflint.c:3188 +#: src/elflint.c:3193 #, c-format msgid "more than one version definition section present\n" msgstr "" -#: src/elflint.c:3235 +#: src/elflint.c:3240 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "" -#: src/elflint.c:3239 +#: src/elflint.c:3244 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" -#: src/elflint.c:3245 +#: src/elflint.c:3250 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "" -#: src/elflint.c:3272 +#: src/elflint.c:3277 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "" -#: src/elflint.c:3279 +#: src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" -#: src/elflint.c:3287 +#: src/elflint.c:3292 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "" -#: src/elflint.c:3307 +#: src/elflint.c:3312 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" msgstr "" -#: src/elflint.c:3324 +#: src/elflint.c:3329 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" -#: src/elflint.c:3357 +#: src/elflint.c:3362 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "" -#: src/elflint.c:3373 +#: src/elflint.c:3378 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "" -#: src/elflint.c:3386 +#: src/elflint.c:3391 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "" -#: src/elflint.c:3407 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "" -#: src/elflint.c:3423 +#: src/elflint.c:3428 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" -#: src/elflint.c:3432 +#: src/elflint.c:3437 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" -#: src/elflint.c:3444 +#: src/elflint.c:3449 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" -#: src/elflint.c:3461 +#: src/elflint.c:3466 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" msgstr "" -#: src/elflint.c:3470 +#: src/elflint.c:3475 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "" -#: src/elflint.c:3479 +#: src/elflint.c:3484 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" msgstr "" -#: src/elflint.c:3494 +#: src/elflint.c:3499 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" msgstr "" -#: src/elflint.c:3505 +#: src/elflint.c:3510 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" msgstr "" -#: src/elflint.c:3523 +#: src/elflint.c:3528 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" -#: src/elflint.c:3534 +#: src/elflint.c:3539 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "" -#: src/elflint.c:3547 +#: src/elflint.c:3552 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "" -#: src/elflint.c:3551 +#: src/elflint.c:3556 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %\n" msgstr "" -#: src/elflint.c:3561 +#: src/elflint.c:3566 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "" -#: src/elflint.c:3567 +#: src/elflint.c:3572 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" msgstr "" -#: src/elflint.c:3656 +#: src/elflint.c:3661 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "" -#: src/elflint.c:3660 +#: src/elflint.c:3665 #, c-format msgid "zeroth section has nonzero name\n" msgstr "" -#: src/elflint.c:3662 +#: src/elflint.c:3667 #, c-format msgid "zeroth section has nonzero type\n" msgstr "" -#: src/elflint.c:3664 +#: src/elflint.c:3669 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "" -#: src/elflint.c:3666 +#: src/elflint.c:3671 #, c-format msgid "zeroth section has nonzero address\n" msgstr "" -#: src/elflint.c:3668 +#: src/elflint.c:3673 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "" -#: src/elflint.c:3670 +#: src/elflint.c:3675 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "" -#: src/elflint.c:3672 +#: src/elflint.c:3677 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "" -#: src/elflint.c:3675 +#: src/elflint.c:3680 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " "value\n" msgstr "" -#: src/elflint.c:3679 +#: src/elflint.c:3684 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in shstrndx\n" msgstr "" -#: src/elflint.c:3683 +#: src/elflint.c:3688 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " "overflow in phnum\n" msgstr "" -#: src/elflint.c:3700 +#: src/elflint.c:3706 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "" -#: src/elflint.c:3709 +#: src/elflint.c:3715 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "" -#: src/elflint.c:3736 +#: src/elflint.c:3742 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3752 +#: src/elflint.c:3760 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "" -#: src/elflint.c:3769 +#: src/elflint.c:3778 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -#: src/elflint.c:3787 +#: src/elflint.c:3796 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "" -#: src/elflint.c:3793 src/elflint.c:3825 +#: src/elflint.c:3802 src/elflint.c:3834 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -#: src/elflint.c:3798 src/elflint.c:3830 +#: src/elflint.c:3807 src/elflint.c:3839 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" msgstr "" -#: src/elflint.c:3806 +#: src/elflint.c:3815 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -#: src/elflint.c:3849 +#: src/elflint.c:3858 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "" -#: src/elflint.c:3854 +#: src/elflint.c:3863 #, c-format msgid "cannot get section header\n" msgstr "" -#: src/elflint.c:3864 +#: src/elflint.c:3873 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "" -#: src/elflint.c:3878 +#: src/elflint.c:3888 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" msgstr "" -#: src/elflint.c:3885 +#: src/elflint.c:3895 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "" -#: src/elflint.c:3893 +#: src/elflint.c:3903 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -#: src/elflint.c:3901 +#: src/elflint.c:3913 +#, fuzzy, c-format +msgid "section [%2zu] '%s': allocated section cannot be compressed\n" +msgstr "セクション [%2d] '%s': セクションデータを得られません\n" + +#: src/elflint.c:3918 +#, fuzzy, c-format +msgid "section [%2zu] '%s': nobits section cannot be compressed\n" +msgstr "セクション [%2d] '%s': セクションデータを得られません\n" + +#: src/elflint.c:3924 +#, c-format +msgid "" +"section [%2zu] '%s': compressed section with no compression header: %s\n" +msgstr "" + +#: src/elflint.c:3930 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" -#: src/elflint.c:3906 +#: src/elflint.c:3935 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -#: src/elflint.c:3913 +#: src/elflint.c:3942 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "" -#: src/elflint.c:3918 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -#: src/elflint.c:3936 +#: src/elflint.c:3965 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "" -#: src/elflint.c:3945 +#: src/elflint.c:3974 #, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "" -#: src/elflint.c:3952 +#: src/elflint.c:3981 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "" -#: src/elflint.c:3982 +#: src/elflint.c:4012 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " "%d\n" msgstr "" -#: src/elflint.c:3992 +#: src/elflint.c:4022 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -#: src/elflint.c:4018 +#: src/elflint.c:4048 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d and file contents is non-zero\n" msgstr "" -#: src/elflint.c:4029 +#: src/elflint.c:4059 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -#: src/elflint.c:4040 +#: src/elflint.c:4070 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -#: src/elflint.c:4050 +#: src/elflint.c:4080 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" -#: src/elflint.c:4060 +#: src/elflint.c:4090 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -#: src/elflint.c:4066 +#: src/elflint.c:4096 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -#: src/elflint.c:4074 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -#: src/elflint.c:4125 +#: src/elflint.c:4155 #, c-format msgid "more than one version symbol table present\n" msgstr "" -#: src/elflint.c:4148 +#: src/elflint.c:4178 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "" -#: src/elflint.c:4159 +#: src/elflint.c:4189 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" msgstr "" -#: src/elflint.c:4165 +#: src/elflint.c:4195 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" -#: src/elflint.c:4176 +#: src/elflint.c:4206 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " "exist\n" msgstr "" -#: src/elflint.c:4189 +#: src/elflint.c:4219 #, c-format msgid "duplicate version index %d\n" msgstr "" -#: src/elflint.c:4203 +#: src/elflint.c:4233 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" -#: src/elflint.c:4252 +#: src/elflint.c:4282 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" -#: src/elflint.c:4256 +#: src/elflint.c:4286 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4279 +#: src/elflint.c:4309 #, c-format msgid "phdr[%d]: unknown object file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4283 +#: src/elflint.c:4313 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % at offset %zu\n" msgstr "" -#: src/elflint.c:4300 +#: src/elflint.c:4330 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4319 +#: src/elflint.c:4349 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "" -#: src/elflint.c:4322 +#: src/elflint.c:4352 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4343 +#: src/elflint.c:4373 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" -#: src/elflint.c:4350 +#: src/elflint.c:4380 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "" -#: src/elflint.c:4353 +#: src/elflint.c:4383 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "" -#: src/elflint.c:4371 +#: src/elflint.c:4401 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" msgstr "" -#: src/elflint.c:4386 +#: src/elflint.c:4416 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "" -#: src/elflint.c:4395 +#: src/elflint.c:4425 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" -#: src/elflint.c:4406 +#: src/elflint.c:4436 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "" -#: src/elflint.c:4414 +#: src/elflint.c:4444 #, c-format msgid "more than one TLS entry in program header\n" msgstr "" -#: src/elflint.c:4421 +#: src/elflint.c:4451 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "" -#: src/elflint.c:4435 +#: src/elflint.c:4465 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4438 +#: src/elflint.c:4468 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4448 +#: src/elflint.c:4478 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "" -#: src/elflint.c:4469 +#: src/elflint.c:4499 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" -#: src/elflint.c:4480 +#: src/elflint.c:4510 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" -#: src/elflint.c:4487 +#: src/elflint.c:4517 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4496 src/elflint.c:4519 +#: src/elflint.c:4526 src/elflint.c:4549 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "" -#: src/elflint.c:4525 +#: src/elflint.c:4555 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "" -#: src/elflint.c:4550 +#: src/elflint.c:4580 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" -#: src/elflint.c:4553 +#: src/elflint.c:4583 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" -#: src/elflint.c:4566 +#: src/elflint.c:4596 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "" -#: src/elflint.c:4574 +#: src/elflint.c:4604 #, c-format msgid "call frame search table must be allocated\n" msgstr "" -#: src/elflint.c:4577 +#: src/elflint.c:4607 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "" -#: src/elflint.c:4581 +#: src/elflint.c:4611 #, c-format msgid "call frame search table must not be writable\n" msgstr "" -#: src/elflint.c:4584 +#: src/elflint.c:4614 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "" -#: src/elflint.c:4589 +#: src/elflint.c:4619 #, c-format msgid "call frame search table must not be executable\n" msgstr "" -#: src/elflint.c:4592 +#: src/elflint.c:4622 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "" -#: src/elflint.c:4603 +#: src/elflint.c:4633 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "" -#: src/elflint.c:4610 +#: src/elflint.c:4640 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "" -#: src/elflint.c:4613 +#: src/elflint.c:4643 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " "alignment\n" msgstr "" -#: src/elflint.c:4626 +#: src/elflint.c:4656 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " "program header entry" msgstr "" -#: src/elflint.c:4660 +#: src/elflint.c:4690 #, c-format msgid "cannot read ELF header: %s\n" msgstr "" -#: src/elflint.c:4686 +#: src/elflint.c:4716 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3100,7 +3155,7 @@ msgstr "" msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "" -#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83 +#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" msgstr "[ふぁいる...]" @@ -3594,8 +3649,8 @@ msgstr "" "警告: `%1$s の大きさが %3$s の %2$ から %5$s の %4$ に変更さ" "れました" -#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527 -#: src/readelf.c:829 src/strip.c:589 +#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852 +#: src/strip.c:589 #, c-format msgid "cannot determine number of sections: %s" msgstr "セクション数を決定できません: %s" @@ -3833,7 +3888,7 @@ msgstr "内部エラー: 非 nobits セクションが nobits セクションに msgid "cannot get header of 0th section: %s" msgstr "0番目のセクションのヘッダーを得られません: %s" -#: src/ldgeneric.c:6930 src/unstrip.c:1893 +#: src/ldgeneric.c:6930 src/unstrip.c:1929 #, c-format msgid "cannot update ELF header: %s" msgstr "ELF ヘッダーを更新できません: %s" @@ -3900,43 +3955,43 @@ msgstr "バージョン '%2$s' 用のローカルとグローバルで宣言さ msgid "default visibility set as local and global" msgstr "ローカルとグローバルに設定されたデフォルトの可視性" -#: src/nm.c:65 src/strip.c:67 +#: src/nm.c:66 src/strip.c:67 msgid "Output selection:" msgstr "出力選択:" -#: src/nm.c:66 +#: src/nm.c:67 msgid "Display debugger-only symbols" msgstr "デバッガー専用シンボルを表示" -#: src/nm.c:67 +#: src/nm.c:68 msgid "Display only defined symbols" msgstr "定義されたシンボルのみを表示" -#: src/nm.c:70 +#: src/nm.c:71 msgid "Display dynamic symbols instead of normal symbols" msgstr "通常シンボルの代わりに動的シンボルを表示" -#: src/nm.c:71 +#: src/nm.c:72 msgid "Display only external symbols" msgstr "外部シンボルのみを表示" -#: src/nm.c:72 +#: src/nm.c:73 msgid "Display only undefined symbols" msgstr "未定義シンボルのみを表示" -#: src/nm.c:74 +#: src/nm.c:75 msgid "Include index for symbols from archive members" msgstr "アーカイブメンバーからのシンボルの索引を含める" -#: src/nm.c:76 src/size.c:57 +#: src/nm.c:77 src/size.c:57 msgid "Output format:" msgstr "出力形式:" -#: src/nm.c:78 +#: src/nm.c:79 msgid "Print name of the input file before every symbol" msgstr "全てのシンボルの前に入力ファイル名を印刷" -#: src/nm.c:81 +#: src/nm.c:82 msgid "" "Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The " "default is `sysv'" @@ -3944,73 +3999,73 @@ msgstr "" "出力形式として FORMATを使う。FORMAT は `bsd'か、`sysv'、`posix' のどれか。省" "略値は `sysv'" -#: src/nm.c:83 +#: src/nm.c:84 msgid "Same as --format=bsd" msgstr "--format=bsd と同じ" -#: src/nm.c:84 +#: src/nm.c:85 msgid "Same as --format=posix" msgstr "--format=posix と同じ" -#: src/nm.c:85 src/size.c:63 +#: src/nm.c:86 src/size.c:63 msgid "Use RADIX for printing symbol values" msgstr "シンボル値を印刷するために RADIX を使う" -#: src/nm.c:86 +#: src/nm.c:87 #, fuzzy msgid "Mark special symbols" msgstr "弱いシンボルに印を点ける" -#: src/nm.c:88 +#: src/nm.c:89 msgid "Print size of defined symbols" msgstr "定義されたシンボルの印刷サイズ" -#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72 +#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72 msgid "Output options:" msgstr "出力オプション:" -#: src/nm.c:91 +#: src/nm.c:92 msgid "Sort symbols numerically by address" msgstr "シンボルをアドレスにより数値的に並べ替える" -#: src/nm.c:93 +#: src/nm.c:94 msgid "Do not sort the symbols" msgstr "シンボルを並べ替えない" -#: src/nm.c:94 +#: src/nm.c:95 msgid "Reverse the sense of the sort" msgstr "並べ替えの意味を逆にする" -#: src/nm.c:97 +#: src/nm.c:98 msgid "Decode low-level symbol names into source code names" msgstr "" -#: src/nm.c:104 +#: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "ふぁいる からシンボルを表示 (デフォルトではa.out)。" -#: src/nm.c:115 src/objdump.c:79 +#: src/nm.c:116 src/objdump.c:79 #, fuzzy msgid "Output formatting" msgstr "出力形式:" -#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127 +#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127 #, fuzzy, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: 内部エラー %d (%s-%s): %s" -#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325 +#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325 #: src/strip.c:2280 #, c-format msgid "while closing '%s'" msgstr "'%s' を閉じている最中" -#: src/nm.c:416 src/objdump.c:292 src/strip.c:391 +#: src/nm.c:417 src/objdump.c:292 src/strip.c:391 #, c-format msgid "%s: File format not recognized" msgstr "%s: ファイル形式を認識できませんでした" -#: src/nm.c:456 +#: src/nm.c:457 #, fuzzy msgid "" "\n" @@ -4019,42 +4074,42 @@ msgstr "" "\n" "アーカイブ索引:" -#: src/nm.c:465 +#: src/nm.c:466 #, c-format msgid "invalid offset %zu for symbol %s" msgstr "シンボル %2$sの不正なオフセット %1$zu " -#: src/nm.c:470 +#: src/nm.c:471 #, c-format msgid "%s in %s\n" msgstr "%2$s の中の %1$s\n" -#: src/nm.c:478 +#: src/nm.c:479 #, c-format msgid "cannot reset archive offset to beginning" msgstr "アーカイブのオフセットを最初にリセットできません" -#: src/nm.c:503 src/objdump.c:340 +#: src/nm.c:504 src/objdump.c:340 #, c-format msgid "%s%s%s: file format not recognized" msgstr "%s%s%s: ファイル形式を認識できません" -#: src/nm.c:715 +#: src/nm.c:719 #, c-format msgid "cannot create search tree" msgstr "検索ツリーを生成できません" -#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536 -#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579 -#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460 -#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 -#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461 -#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520 +#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545 +#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667 +#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558 +#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 +#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603 +#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520 #, c-format msgid "cannot get section header string table index" msgstr "セクションヘッダー文字列テーブル索引が得られません" -#: src/nm.c:781 +#: src/nm.c:787 #, c-format msgid "" "\n" @@ -4067,7 +4122,7 @@ msgstr "" "%s からのシンボル:\n" "\n" -#: src/nm.c:784 +#: src/nm.c:790 #, c-format msgid "" "%*s%-*s %-*s Class Type %-*s %*s Section\n" @@ -4076,22 +4131,22 @@ msgstr "" "%*s%-*s %-*s クラス タイプ %-*s %*s セクション\n" "\n" -#: src/nm.c:1171 +#: src/nm.c:1232 #, fuzzy, c-format msgid "%s: entry size in section %zd `%s' is not what we expect" msgstr "%s: セクションの項目の大きさ `%s' は予期したものとは異なります" -#: src/nm.c:1176 +#: src/nm.c:1237 #, fuzzy, c-format msgid "%s: size of section %zd `%s' is not multiple of entry size" msgstr "%s: セクション `%s' の大きさは項目の大きさの整数倍ではありません" -#: src/nm.c:1434 +#: src/nm.c:1537 #, c-format msgid "%s%s%s%s: Invalid operation" msgstr "%s%s%s%s: 不当な操作" -#: src/nm.c:1491 +#: src/nm.c:1594 #, c-format msgid "%s%s%s: no symbols" msgstr "%s%s%s: シンボルがありません" @@ -4125,7 +4180,7 @@ msgstr "" msgid "Show information from FILEs (a.out by default)." msgstr "" -#: src/objdump.c:232 src/readelf.c:473 +#: src/objdump.c:232 src/readelf.c:479 msgid "No operation specified.\n" msgstr "操作が指定されていません。\n" @@ -4134,11 +4189,11 @@ msgstr "操作が指定されていません。\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072 +#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160 msgid "INVALID SYMBOL" msgstr "不当なシンボル" -#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108 +#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196 msgid "INVALID SECTION" msgstr "不当なセクション" @@ -4187,78 +4242,78 @@ msgstr "" msgid "error while freeing sub-ELF descriptor: %s" msgstr "" -#: src/readelf.c:71 +#: src/readelf.c:72 #, fuzzy msgid "ELF input selection:" msgstr "出力選択:" -#: src/readelf.c:73 +#: src/readelf.c:74 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" -#: src/readelf.c:75 +#: src/readelf.c:76 #, fuzzy msgid "ELF output selection:" msgstr "出力選択:" -#: src/readelf.c:77 +#: src/readelf.c:78 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "" -#: src/readelf.c:78 +#: src/readelf.c:79 msgid "Display the dynamic segment" msgstr "動的セグメントを表示" -#: src/readelf.c:79 +#: src/readelf.c:80 msgid "Display the ELF file header" msgstr "ELF ファイルヘッダーを表示" -#: src/readelf.c:81 +#: src/readelf.c:82 msgid "Display histogram of bucket list lengths" msgstr "バケットリスト長の柱状図を表示" -#: src/readelf.c:82 +#: src/readelf.c:83 msgid "Display the program headers" msgstr "プログラムヘッダーを表示" -#: src/readelf.c:84 +#: src/readelf.c:85 msgid "Display relocations" msgstr "リロケーションを表示" -#: src/readelf.c:85 +#: src/readelf.c:86 #, fuzzy msgid "Display the sections' headers" msgstr "セクションのヘッダーを表示" -#: src/readelf.c:87 +#: src/readelf.c:88 msgid "Display the symbol table" msgstr "シンボルテーブルを表示" -#: src/readelf.c:88 +#: src/readelf.c:89 msgid "Display versioning information" msgstr "バージョニング情報の表示" -#: src/readelf.c:89 +#: src/readelf.c:90 #, fuzzy msgid "Display the ELF notes" msgstr "コアノートを表示" -#: src/readelf.c:91 +#: src/readelf.c:92 #, fuzzy msgid "Display architecture specific information, if any" msgstr "(もしあれば)アーキテクチャー固有の情報を表示" -#: src/readelf.c:93 +#: src/readelf.c:94 msgid "Display sections for exception handling" msgstr "例外を取り扱うためのセクションを表示" -#: src/readelf.c:95 +#: src/readelf.c:96 #, fuzzy msgid "Additional output selection:" msgstr "出力選択:" -#: src/readelf.c:97 +#: src/readelf.c:98 #, fuzzy msgid "" "Display DWARF section content. SECTION can be one of abbrev, aranges, " @@ -4268,166 +4323,172 @@ msgstr "" "DWARF セクションの内容を表示。SECTION は addrevか、aranges、frame、info、" "loc、ranges、pubnames、str、macinfo、exception のいずれかです" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "数字か名前で解釈できないセクションの内容をダンプする" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "Print string contents of sections" msgstr "セクションの文字列内容を印刷する" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the symbol index of an archive" msgstr "アーカイブのシンボル索引を表示" -#: src/readelf.c:108 +#: src/readelf.c:109 msgid "Output control:" msgstr "出力制御:" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Do not find symbol names for addresses in DWARF data" msgstr "DWARFデータ中のアドレスのためのシンボル名を探さない" -#: src/readelf.c:112 +#: src/readelf.c:113 #, fuzzy msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "DWARFデータ中のアドレスのためのシンボル名を探さない" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Ignored for compatibility (lines always wide)" msgstr "" -#: src/readelf.c:119 +#: src/readelf.c:117 +msgid "" +"Show compression information for compressed sections (when used with -S); " +"decompress section before dumping data (when used with -p or -x)" +msgstr "" + +#: src/readelf.c:122 msgid "Print information from ELF file in human-readable form." msgstr "ELF ファイルから人間が読める形で情報を印刷する。" -#: src/readelf.c:441 +#: src/readelf.c:447 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "不明な DWARF デバッグセクション `%s'.\n" -#: src/readelf.c:520 src/readelf.c:631 +#: src/readelf.c:529 src/readelf.c:640 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "Elf 記述子を生成できません: %s" -#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269 +#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347 #, c-format msgid "cannot get section: %s" msgstr "セクションを得られません: %s" -#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481 -#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543 -#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 -#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508 -#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855 +#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623 +#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577 +#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 +#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543 +#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891 #, c-format msgid "cannot get section header: %s" msgstr "セクションヘッダーを得られません: %s" -#: src/readelf.c:562 +#: src/readelf.c:571 #, fuzzy, c-format msgid "cannot get section name" msgstr "セクションを得られません: %s" -#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772 -#: src/readelf.c:7949 +#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880 +#: src/readelf.c:8057 #, c-format msgid "cannot get %s content: %s" msgstr "%s の内容を得られません: %s" -#: src/readelf.c:587 +#: src/readelf.c:596 #, fuzzy, c-format msgid "cannot create temp file '%s'" msgstr "新しいファイル '%s' を生成できません: %s" -#: src/readelf.c:596 +#: src/readelf.c:605 #, fuzzy, c-format msgid "cannot write section data" msgstr "セクションデータを割り当てられません: %s" -#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648 +#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "Elf 記述子を閉じている時にエラー: %s" -#: src/readelf.c:609 +#: src/readelf.c:618 #, fuzzy, c-format msgid "error while rewinding file descriptor" msgstr "Elf 記述子を閉じている時にエラー: %s" -#: src/readelf.c:643 +#: src/readelf.c:652 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "'%s' はアーカイブではなく、アーカイブ索引を印刷できません" -#: src/readelf.c:742 +#: src/readelf.c:751 #, fuzzy, c-format msgid "No such section '%s' in '%s'" msgstr "セクション [%Zu] '%s' からデータが得られません: %s" -#: src/readelf.c:769 +#: src/readelf.c:778 #, c-format msgid "cannot stat input file" msgstr "入力ファイルを stat できません" -#: src/readelf.c:771 +#: src/readelf.c:780 #, c-format msgid "input file is empty" msgstr "入力ファイルが空です" -#: src/readelf.c:773 +#: src/readelf.c:782 #, c-format msgid "failed reading '%s': %s" msgstr "'%s' の読込みに失敗: %s" -#: src/readelf.c:814 +#: src/readelf.c:837 #, c-format msgid "cannot read ELF header: %s" msgstr "ELF ヘッダーが読めません: %s" -#: src/readelf.c:822 +#: src/readelf.c:845 #, c-format msgid "cannot create EBL handle" msgstr "EBL ヘッダーを生成できません" -#: src/readelf.c:835 +#: src/readelf.c:858 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "セクション数を決定できません: %s" -#: src/readelf.c:921 +#: src/readelf.c:948 msgid "NONE (None)" msgstr "なし (なし)" -#: src/readelf.c:922 +#: src/readelf.c:949 msgid "REL (Relocatable file)" msgstr "REL (リロケータブルファイル)" -#: src/readelf.c:923 +#: src/readelf.c:950 msgid "EXEC (Executable file)" msgstr "(EXEC (実行ファイル)" -#: src/readelf.c:924 +#: src/readelf.c:951 msgid "DYN (Shared object file)" msgstr "DYN (共用オブジェクトファイル)" -#: src/readelf.c:925 +#: src/readelf.c:952 msgid "CORE (Core file)" msgstr "CORE (コアファイル)" -#: src/readelf.c:930 +#: src/readelf.c:957 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS 固有: (%x)\n" -#: src/readelf.c:932 +#: src/readelf.c:959 #, c-format msgid "Processor Specific: (%x)\n" msgstr "プロセッサー固有: (%x)\n" -#: src/readelf.c:942 +#: src/readelf.c:969 msgid "" "ELF Header:\n" " Magic: " @@ -4435,7 +4496,7 @@ msgstr "" "ELF ヘッダー:\n" " マジック: " -#: src/readelf.c:946 +#: src/readelf.c:973 #, c-format msgid "" "\n" @@ -4444,117 +4505,117 @@ msgstr "" "\n" " クラス: %s\n" -#: src/readelf.c:951 +#: src/readelf.c:978 #, c-format msgid " Data: %s\n" msgstr " データ: %s\n" -#: src/readelf.c:957 +#: src/readelf.c:984 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " 識別バージョン: %hhd %s\n" -#: src/readelf.c:959 src/readelf.c:976 +#: src/readelf.c:986 src/readelf.c:1003 msgid "(current)" msgstr "(現在)" -#: src/readelf.c:963 +#: src/readelf.c:990 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:966 +#: src/readelf.c:993 #, c-format msgid " ABI Version: %hhd\n" msgstr " ABI バージョン: %hhd\n" -#: src/readelf.c:969 +#: src/readelf.c:996 msgid " Type: " msgstr " タイプ: " -#: src/readelf.c:972 +#: src/readelf.c:999 #, c-format msgid " Machine: %s\n" msgstr " マシン : %s\n" -#: src/readelf.c:974 +#: src/readelf.c:1001 #, c-format msgid " Version: %d %s\n" msgstr " バージョン: %d %s\n" -#: src/readelf.c:978 +#: src/readelf.c:1005 #, c-format msgid " Entry point address: %#\n" msgstr " 入口点アドレス : %#\n" -#: src/readelf.c:981 +#: src/readelf.c:1008 #, c-format msgid " Start of program headers: % %s\n" msgstr " プログラムヘッダーの開始: % %s\n" -#: src/readelf.c:982 src/readelf.c:985 +#: src/readelf.c:1009 src/readelf.c:1012 msgid "(bytes into file)" msgstr "(ファイルへのバイト数)" -#: src/readelf.c:984 +#: src/readelf.c:1011 #, c-format msgid " Start of section headers: % %s\n" msgstr " セクションヘッダーの開始: % %s\n" -#: src/readelf.c:987 +#: src/readelf.c:1014 #, c-format msgid " Flags: %s\n" msgstr " フラグ: %s\n" -#: src/readelf.c:990 +#: src/readelf.c:1017 #, c-format msgid " Size of this header: % %s\n" msgstr " このヘッダーの大きさ: % %s\n" -#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011 +#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038 msgid "(bytes)" msgstr "(バイト)" -#: src/readelf.c:993 +#: src/readelf.c:1020 #, c-format msgid " Size of program header entries: % %s\n" msgstr " プログラムヘッダー項目の大きさ:% %s\n" -#: src/readelf.c:996 +#: src/readelf.c:1023 #, fuzzy, c-format msgid " Number of program headers entries: %" msgstr " プログラムヘッダー項目の数 : %\n" -#: src/readelf.c:1003 +#: src/readelf.c:1030 #, fuzzy, c-format msgid " (% in [0].sh_info)" msgstr "([0].sh_link の %)" -#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037 +#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064 msgid " ([0] not available)" msgstr "([0]は使えません)" -#: src/readelf.c:1010 +#: src/readelf.c:1037 #, c-format msgid " Size of section header entries: % %s\n" msgstr " セクションヘッダー項目の大きさ:% %s\n" -#: src/readelf.c:1013 +#: src/readelf.c:1040 #, c-format msgid " Number of section headers entries: %" msgstr " セクションヘッダー項目の数 : %" -#: src/readelf.c:1020 +#: src/readelf.c:1047 #, c-format msgid " (% in [0].sh_size)" msgstr " ([0].sh_size の %)" -#: src/readelf.c:1033 +#: src/readelf.c:1060 #, c-format msgid " (% in [0].sh_link)" msgstr "([0].sh_link の %)" -#: src/readelf.c:1041 +#: src/readelf.c:1068 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4563,7 +4624,7 @@ msgstr "" " セクションヘッダー文字列テーブル索引: XINDEX%s\n" "\n" -#: src/readelf.c:1045 +#: src/readelf.c:1072 #, c-format msgid "" " Section header string table index: %\n" @@ -4572,7 +4633,7 @@ msgstr "" " セクションヘッダー文字列テーブル索引: %\n" "\n" -#: src/readelf.c:1077 +#: src/readelf.c:1115 #, c-format msgid "" "There are %d section headers, starting at offset %#:\n" @@ -4581,11 +4642,11 @@ msgstr "" "オフセット %2$# から始まる %1$d 個のセクションヘッダーがあります:\n" "\n" -#: src/readelf.c:1087 +#: src/readelf.c:1125 msgid "Section Headers:" msgstr "セクションヘッダー:" -#: src/readelf.c:1090 +#: src/readelf.c:1128 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4593,7 +4654,7 @@ msgstr "" "[番] 名前 タイプ アドレス オフセ 大きさ ES フラグLk " "Inf Al" -#: src/readelf.c:1092 +#: src/readelf.c:1130 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4601,17 +4662,35 @@ msgstr "" "[番] 名前 タイプ アドレス オフセ 大きさ ES " "フラグLk Inf Al" -#: src/readelf.c:1164 +#: src/readelf.c:1135 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1137 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1213 +#, fuzzy, c-format +msgid "bad compression header for section %zd: %s" +msgstr "セクションヘッダー文字列セクションを生成できません: %s" + +#: src/readelf.c:1224 +#, fuzzy, c-format +msgid "bad gnu compressed size for section %zd: %s" +msgstr "セクションからデータを得られません %d: %s" + +#: src/readelf.c:1242 msgid "Program Headers:" msgstr "プログラムヘッダー:" -#: src/readelf.c:1166 +#: src/readelf.c:1244 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " タイプ オフセ 仮アドレス 物アドレス ファイ量 メモ量 Flg 調整 " -#: src/readelf.c:1169 +#: src/readelf.c:1247 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4619,12 +4698,12 @@ msgstr "" " タイプ オフセ 仮想アドレス 物理アドレス ファイル量メモ" "量 Flg 調整 " -#: src/readelf.c:1226 +#: src/readelf.c:1304 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[プログラム割込みを要求: %s]\n" -#: src/readelf.c:1247 +#: src/readelf.c:1325 msgid "" "\n" " Section to Segment mapping:\n" @@ -4634,12 +4713,12 @@ msgstr "" " セクションからセグメントへのマッビング:\n" " セグメント セクション..." -#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964 +#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999 #, c-format msgid "cannot get program header: %s" msgstr "プログラムヘッダーを得られません: %s" -#: src/readelf.c:1401 +#: src/readelf.c:1479 #, c-format msgid "" "\n" @@ -4652,7 +4731,7 @@ msgstr[0] "" "署名 '%3$s' を持つ COMDAT セクショングループ [%1$2zu] '%2$s' には %4$zu 個の" "項目があります:\n" -#: src/readelf.c:1406 +#: src/readelf.c:1484 #, c-format msgid "" "\n" @@ -4665,21 +4744,25 @@ msgstr[0] "" "署名 '%3$s' を持つセクショングループ [%1$2zu] '%2$s' には %4$zu 個の項目があ" "ります:\n" -#: src/readelf.c:1414 +#: src/readelf.c:1492 msgid "" msgstr "<不当なシンボル>" -#: src/readelf.c:1428 +#: src/readelf.c:1506 msgid "" msgstr "<不当なセクション>" -#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542 -#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608 +#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317 +msgid "Couldn't uncompress section" +msgstr "" + +#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640 +#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716 #, fuzzy, c-format msgid "invalid sh_link value in section %zu" msgstr "不当な .debug_line セクション" -#: src/readelf.c:1588 +#: src/readelf.c:1676 #, c-format msgid "" "\n" @@ -4695,36 +4778,36 @@ msgstr[0] "" " アドレス: %#0* オフセット: %#08 セクションへのリンク: " "[%2u] '%s'\n" -#: src/readelf.c:1598 +#: src/readelf.c:1686 msgid " Type Value\n" msgstr " タイプ 値\n" -#: src/readelf.c:1622 +#: src/readelf.c:1710 #, c-format msgid "Shared library: [%s]\n" msgstr "共用ライブラリー: [%s]\n" -#: src/readelf.c:1627 +#: src/readelf.c:1715 #, c-format msgid "Library soname: [%s]\n" msgstr "ライブラリー so 名: [%s]\n" -#: src/readelf.c:1632 +#: src/readelf.c:1720 #, c-format msgid "Library rpath: [%s]\n" msgstr "ライブラリー rパス: [%s]\n" -#: src/readelf.c:1637 +#: src/readelf.c:1725 #, c-format msgid "Library runpath: [%s]\n" msgstr "ライブラリー run パス: [%s]\n" -#: src/readelf.c:1657 +#: src/readelf.c:1745 #, c-format msgid "% (bytes)\n" msgstr "% (バイト)\n" -#: src/readelf.c:1770 src/readelf.c:1960 +#: src/readelf.c:1858 src/readelf.c:2048 #, c-format msgid "" "\n" @@ -4733,7 +4816,7 @@ msgstr "" "\n" "オフセット %#0 に不当なシンボルテーブル\n" -#: src/readelf.c:1788 src/readelf.c:1978 +#: src/readelf.c:1876 src/readelf.c:2066 #, c-format msgid "" "\n" @@ -4748,7 +4831,7 @@ msgstr[0] "" "オフセット %5$#0 のセクション [%3$2u] '%4$s' 用のリロケーションセク" "ション [%1$2zu] '%2$s' には %6$d 個の項目があります:\n" -#: src/readelf.c:1803 src/readelf.c:1993 +#: src/readelf.c:1891 src/readelf.c:2081 #, c-format msgid "" "\n" @@ -4761,29 +4844,29 @@ msgstr[0] "" "オフセット %3$#0 のリロケーションセクション [%1$2u] '%2$s' には %4$d " "個の項目があります:\n" -#: src/readelf.c:1813 +#: src/readelf.c:1901 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 名前\n" -#: src/readelf.c:1815 +#: src/readelf.c:1903 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 名前\n" -#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913 -#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085 -#: src/readelf.c:2107 src/readelf.c:2120 +#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001 +#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173 +#: src/readelf.c:2195 src/readelf.c:2208 msgid "" msgstr "<不当なRELOC>" -#: src/readelf.c:2003 +#: src/readelf.c:2091 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 付加名\n" -#: src/readelf.c:2005 +#: src/readelf.c:2093 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 付加名\n" -#: src/readelf.c:2216 +#: src/readelf.c:2314 #, c-format msgid "" "\n" @@ -4795,39 +4878,39 @@ msgstr[0] "" "\n" "シンボルテーブル [%2u] '%s' には %u 個の項目があります:\n" -#: src/readelf.c:2221 +#: src/readelf.c:2319 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] " %lu ローカルシンボル文字列テーブル: [%2u] '%s'\n" -#: src/readelf.c:2229 +#: src/readelf.c:2327 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " 数 : 値 大き タイプ Bind Vis Ndx 名前\n" -#: src/readelf.c:2231 +#: src/readelf.c:2329 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " 数 : 値 大き タイプ Bind Vis Ndx 名前\n" -#: src/readelf.c:2251 +#: src/readelf.c:2349 #, c-format msgid "%5u: %0* %6 %-7s %-6s %-9s %6s %s" msgstr "%5u: %0* %6 %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2339 +#: src/readelf.c:2437 #, c-format msgid "bad dynamic symbol" msgstr "不正な動的シンボル" -#: src/readelf.c:2421 +#: src/readelf.c:2519 msgid "none" msgstr "なし" -#: src/readelf.c:2438 +#: src/readelf.c:2536 msgid "| " msgstr "| <不明>" -#: src/readelf.c:2469 +#: src/readelf.c:2567 #, c-format msgid "" "\n" @@ -4843,17 +4926,17 @@ msgstr[0] "" " アドレス: %#0* オフセット: %#08 セクションへのリンク: " "[%2u] '%s'\n" -#: src/readelf.c:2490 +#: src/readelf.c:2588 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: バージョン: %hu ファイル: %s 数: %hu\n" -#: src/readelf.c:2503 +#: src/readelf.c:2601 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: 名前: %s フラグ: %s バージョン: %hu\n" -#: src/readelf.c:2546 +#: src/readelf.c:2644 #, c-format msgid "" "\n" @@ -4869,17 +4952,17 @@ msgstr[0] "" " アドレス: %#0* オフセット: %#08 セクションへのリンク: " "[%2u] '%s'\n" -#: src/readelf.c:2574 +#: src/readelf.c:2672 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr " %#06x: バージョン: %hd フラグ: %s 索引: %hd 数: %hd 名前: %s\n" -#: src/readelf.c:2589 +#: src/readelf.c:2687 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: 親 %d: %s\n" -#: src/readelf.c:2850 +#: src/readelf.c:2948 #, c-format msgid "" "\n" @@ -4895,15 +4978,15 @@ msgstr[0] "" " アドレス: %#0* オフセット: %#08 セクションへのリンク: " "[%2u] '%s'" -#: src/readelf.c:2878 +#: src/readelf.c:2976 msgid " 0 *local* " msgstr " 0 *ローカル* " -#: src/readelf.c:2883 +#: src/readelf.c:2981 msgid " 1 *global* " msgstr " 1 *グローバル* " -#: src/readelf.c:2925 +#: src/readelf.c:3023 #, c-format msgid "" "\n" @@ -4921,22 +5004,22 @@ msgstr[0] "" " アドレス: %#0* オフセット: %#08 セクションへのリンク: " "[%2u] '%s'\n" -#: src/readelf.c:2947 +#: src/readelf.c:3045 #, fuzzy, no-c-format msgid " Length Number % of total Coverage\n" msgstr " 長さ 数 全体の% 範囲 \n" -#: src/readelf.c:2949 +#: src/readelf.c:3047 #, c-format msgid " 0 %6 %5.1f%%\n" msgstr " 0 %6 %5.1f%%\n" -#: src/readelf.c:2956 +#: src/readelf.c:3054 #, c-format msgid "%7d %6 %5.1f%% %5.1f%%\n" msgstr "%7d %6 %5.1f%% %5.1f%%\n" -#: src/readelf.c:2969 +#: src/readelf.c:3067 #, fuzzy, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -4945,27 +5028,27 @@ msgstr "" " テストの平均数: 検索成功: %f\n" " 検索失敗: %f\n" -#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099 +#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197 #, c-format msgid "cannot get data for section %d: %s" msgstr "セクションからデータを得られません %d: %s" -#: src/readelf.c:2995 +#: src/readelf.c:3093 #, fuzzy, c-format msgid "invalid data in sysv.hash section %d" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/readelf.c:3050 +#: src/readelf.c:3148 #, fuzzy, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/readelf.c:3108 +#: src/readelf.c:3206 #, fuzzy, c-format msgid "invalid data in gnu.hash section %d" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/readelf.c:3175 +#: src/readelf.c:3273 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4975,7 +5058,7 @@ msgstr "" " ビットマスクの大きさ: %zu バイト %%% ビット設定 第2ハッシュシフ" "ト: %u\n" -#: src/readelf.c:3250 +#: src/readelf.c:3358 #, c-format msgid "" "\n" @@ -4988,7 +5071,7 @@ msgstr[0] "" "オフセット %3$#0 のライブラリー一覧セクション [%1$2zu] '%2$s' には " "%4$d 個の項目があります:\n" -#: src/readelf.c:3264 +#: src/readelf.c:3372 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4996,7 +5079,7 @@ msgstr "" " ライブラリー タイムスタンプ チェックサム バー" "ジョン フラグ" -#: src/readelf.c:3314 +#: src/readelf.c:3422 #, c-format msgid "" "\n" @@ -5007,140 +5090,140 @@ msgstr "" "オフセット %4$#0 の %3$ バイトのオブジェクト属性セクション " "[%1$2zu] '%2$s':\n" -#: src/readelf.c:3331 +#: src/readelf.c:3439 msgid " Owner Size\n" msgstr " 所有者 大きさ\n" -#: src/readelf.c:3360 +#: src/readelf.c:3468 #, c-format msgid " %-13s %4\n" msgstr " %-13s %4\n" -#: src/readelf.c:3399 +#: src/readelf.c:3507 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" -#: src/readelf.c:3404 +#: src/readelf.c:3512 #, c-format msgid " File: %11\n" msgstr " ファイル: %11\n" -#: src/readelf.c:3453 +#: src/readelf.c:3561 #, c-format msgid " %s: %, %s\n" msgstr " %s: %、%s\n" -#: src/readelf.c:3456 +#: src/readelf.c:3564 #, c-format msgid " %s: %\n" msgstr " %s: %\n" -#: src/readelf.c:3459 +#: src/readelf.c:3567 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3469 +#: src/readelf.c:3577 #, c-format msgid " %u: %\n" msgstr " %u: %\n" -#: src/readelf.c:3472 +#: src/readelf.c:3580 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3517 +#: src/readelf.c:3625 #, c-format msgid "%s+%# <%s+%#>" msgstr "%s+%# <%s+%#>" -#: src/readelf.c:3520 +#: src/readelf.c:3628 #, c-format msgid "%s+%#0* <%s+%#>" msgstr "%s+%#0* <%s+%#>" -#: src/readelf.c:3525 +#: src/readelf.c:3633 #, c-format msgid "%# <%s+%#>" msgstr "%# <%s+%#>" -#: src/readelf.c:3528 +#: src/readelf.c:3636 #, c-format msgid "%#0* <%s+%#>" msgstr "%#0* <%s+%#>" -#: src/readelf.c:3534 +#: src/readelf.c:3642 #, c-format msgid "%s+%# <%s>" msgstr "%s+%# <%s>" -#: src/readelf.c:3537 +#: src/readelf.c:3645 #, c-format msgid "%s+%#0* <%s>" msgstr "%s+%#0* <%s>" -#: src/readelf.c:3541 +#: src/readelf.c:3649 #, c-format msgid "%# <%s>" msgstr "%# <%s>" -#: src/readelf.c:3544 +#: src/readelf.c:3652 #, c-format msgid "%#0* <%s>" msgstr "%#0* <%s>" -#: src/readelf.c:3549 +#: src/readelf.c:3657 #, c-format msgid "%s+%#" msgstr "%s+%#" -#: src/readelf.c:3552 +#: src/readelf.c:3660 #, c-format msgid "%s+%#0*" msgstr "%s+%#0*" -#: src/readelf.c:3930 +#: src/readelf.c:4038 msgid "empty block" msgstr "空ブロック" -#: src/readelf.c:3933 +#: src/readelf.c:4041 #, c-format msgid "%zu byte block:" msgstr "%zu バイトのブロック:" -#: src/readelf.c:4330 +#: src/readelf.c:4438 #, c-format msgid "%*s[%4] %s \n" msgstr "%*s[%4] %s \n" -#: src/readelf.c:4387 +#: src/readelf.c:4495 #, c-format msgid "%s %# used with different address sizes" msgstr "" -#: src/readelf.c:4394 +#: src/readelf.c:4502 #, c-format msgid "%s %# used with different offset sizes" msgstr "" -#: src/readelf.c:4401 +#: src/readelf.c:4509 #, c-format msgid "%s %# used with different base addresses" msgstr "" -#: src/readelf.c:4490 +#: src/readelf.c:4598 #, c-format msgid " [%6tx] \n" msgstr "" -#: src/readelf.c:4498 +#: src/readelf.c:4606 #, c-format msgid " [%6tx] ... % bytes ...\n" msgstr "" -#: src/readelf.c:4524 +#: src/readelf.c:4632 #, c-format msgid "" "\n" @@ -5151,7 +5234,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " [ コード]\n" -#: src/readelf.c:4532 +#: src/readelf.c:4640 #, c-format msgid "" "\n" @@ -5160,30 +5243,30 @@ msgstr "" "\n" "オフセット % の略語セクション:\n" -#: src/readelf.c:4545 +#: src/readelf.c:4653 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** 略語を読んでいる間にエラー: %s\n" -#: src/readelf.c:4561 +#: src/readelf.c:4669 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] オフセット: %、子: %s、タグ: %s\n" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "yes" msgstr "はい" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "no" msgstr "いいえ" -#: src/readelf.c:4598 src/readelf.c:4671 +#: src/readelf.c:4706 src/readelf.c:4779 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr ".debug_aragnes の内容を得られません: %s" -#: src/readelf.c:4613 +#: src/readelf.c:4721 #, c-format msgid "" "\n" @@ -5196,20 +5279,20 @@ msgstr[0] "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:4644 +#: src/readelf.c:4752 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4646 +#: src/readelf.c:4754 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" msgstr "" " [%*zu] 開始: %0#*、長さ: %5、CU DIE オフセット: %6\n" -#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360 -#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601 +#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468 +#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709 #, c-format msgid "" "\n" @@ -5218,7 +5301,7 @@ msgstr "" "\n" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:4689 src/readelf.c:6386 +#: src/readelf.c:4797 src/readelf.c:6494 #, fuzzy, c-format msgid "" "\n" @@ -5227,113 +5310,113 @@ msgstr "" "\n" "オフセット %Zu のテーブル:\n" -#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397 +#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/readelf.c:4709 +#: src/readelf.c:4817 #, fuzzy, c-format msgid "" "\n" " Length: %6\n" msgstr " (オフセット: %#)" -#: src/readelf.c:4721 +#: src/readelf.c:4829 #, fuzzy, c-format msgid " DWARF version: %6\n" msgstr " %s: %\n" -#: src/readelf.c:4725 +#: src/readelf.c:4833 #, c-format msgid "unsupported aranges version" msgstr "" -#: src/readelf.c:4736 +#: src/readelf.c:4844 #, fuzzy, c-format msgid " CU offset: %6\n" msgstr " (オフセット: %#)" -#: src/readelf.c:4742 +#: src/readelf.c:4850 #, fuzzy, c-format msgid " Address size: %6\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:4746 +#: src/readelf.c:4854 #, fuzzy, c-format msgid "unsupported address size" msgstr "アドレス値ではありません" -#: src/readelf.c:4751 +#: src/readelf.c:4859 #, fuzzy, c-format msgid "" " Segment size: %6\n" "\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:4755 +#: src/readelf.c:4863 #, c-format msgid "unsupported segment size" msgstr "" -#: src/readelf.c:4795 +#: src/readelf.c:4903 #, fuzzy, c-format msgid " %s..%s (%)\n" msgstr " %s: %\n" -#: src/readelf.c:4798 +#: src/readelf.c:4906 #, fuzzy, c-format msgid " %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4807 +#: src/readelf.c:4915 #, c-format msgid " %zu padding bytes\n" msgstr "" -#: src/readelf.c:4825 +#: src/readelf.c:4933 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:4855 src/readelf.c:6919 +#: src/readelf.c:4963 src/readelf.c:7027 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:4877 src/readelf.c:6941 +#: src/readelf.c:4985 src/readelf.c:7049 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] ベースアドレス %s\n" -#: src/readelf.c:4884 src/readelf.c:6948 +#: src/readelf.c:4992 src/readelf.c:7056 #, fuzzy, c-format msgid " [%6tx] empty list\n" msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:4895 +#: src/readelf.c:5003 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4897 +#: src/readelf.c:5005 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:5076 +#: src/readelf.c:5184 #, fuzzy msgid " \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:5385 +#: src/readelf.c:5493 #, fuzzy, c-format msgid "cannot get ELF: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:5402 +#: src/readelf.c:5510 #, c-format msgid "" "\n" @@ -5342,7 +5425,7 @@ msgstr "" "\n" "オフセット %3$# の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:5452 +#: src/readelf.c:5560 #, c-format msgid "" "\n" @@ -5351,50 +5434,50 @@ msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:5545 src/readelf.c:5700 +#: src/readelf.c:5653 src/readelf.c:5808 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "不当な拡大エンコード" -#: src/readelf.c:5560 +#: src/readelf.c:5668 msgid "FDE address encoding: " msgstr "FDE アドレスエンコード" -#: src/readelf.c:5566 +#: src/readelf.c:5674 msgid "LSDA pointer encoding: " msgstr "LSDA ポインターエンコード:" -#: src/readelf.c:5677 +#: src/readelf.c:5785 #, c-format msgid " (offset: %#)" msgstr " (オフセット: %#)" -#: src/readelf.c:5684 +#: src/readelf.c:5792 #, c-format msgid " (end offset: %#)" msgstr " (終了オフセット: %#)" -#: src/readelf.c:5721 +#: src/readelf.c:5829 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sLSDA ポインター: %#\n" -#: src/readelf.c:5776 +#: src/readelf.c:5884 #, c-format msgid "cannot get attribute code: %s" msgstr "属性コードを得られません: %s" -#: src/readelf.c:5785 +#: src/readelf.c:5893 #, c-format msgid "cannot get attribute form: %s" msgstr "属性様式を得られません: %s" -#: src/readelf.c:5800 +#: src/readelf.c:5908 #, c-format msgid "cannot get attribute value: %s" msgstr "属性値を得られません: %s" -#: src/readelf.c:6099 +#: src/readelf.c:6207 #, c-format msgid "" "\n" @@ -5405,7 +5488,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " [オフセット]\n" -#: src/readelf.c:6131 +#: src/readelf.c:6239 #, fuzzy, c-format msgid "" " Type unit at offset %:\n" @@ -5417,7 +5500,7 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:6140 +#: src/readelf.c:6248 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5428,35 +5511,35 @@ msgstr "" " バージョン: %2$、略語セクションオフセット: %3$、アドレスの大" "きさ: %4$、オフセットの大きさ: %5$\n" -#: src/readelf.c:6165 +#: src/readelf.c:6273 #, c-format msgid "cannot get DIE at offset % in section '%s': %s" msgstr "" "セクション '%2$s' の オフセット %1$ の DIE を得られません: %3$s" -#: src/readelf.c:6179 +#: src/readelf.c:6287 #, c-format msgid "cannot get DIE offset: %s" msgstr "DIE オフセットを得られません: %s" -#: src/readelf.c:6188 +#: src/readelf.c:6296 #, c-format msgid "cannot get tag of DIE at offset % in section '%s': %s" msgstr "" "セクション '%2$s' 中のオフセット %1$ の DIE のタグを得られません: " "%3$s" -#: src/readelf.c:6220 +#: src/readelf.c:6328 #, c-format msgid "cannot get next DIE: %s\n" msgstr "次の DIE を得られません: %s\n" -#: src/readelf.c:6228 +#: src/readelf.c:6336 #, c-format msgid "cannot get next DIE: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:6264 +#: src/readelf.c:6372 #, fuzzy, c-format msgid "" "\n" @@ -5466,12 +5549,12 @@ msgstr "" "\n" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:6373 +#: src/readelf.c:6481 #, c-format msgid "cannot get line data section data: %s" msgstr "ラインデータセクションデータを得られません: %s" -#: src/readelf.c:6443 +#: src/readelf.c:6551 #, fuzzy, c-format msgid "" "\n" @@ -5499,18 +5582,18 @@ msgstr "" "\n" "命令コード:\n" -#: src/readelf.c:6464 +#: src/readelf.c:6572 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "セクション [%2$zu] '%3$s' 中のオフセット %1$tu に不当なデータ" -#: src/readelf.c:6479 +#: src/readelf.c:6587 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" msgstr[0] " [%*] %hhu パラメーター\n" -#: src/readelf.c:6487 +#: src/readelf.c:6595 msgid "" "\n" "Directory table:" @@ -5518,7 +5601,7 @@ msgstr "" "\n" "ディレクトリーテーブル:" -#: src/readelf.c:6503 +#: src/readelf.c:6611 msgid "" "\n" "File name table:\n" @@ -5528,7 +5611,7 @@ msgstr "" "ファイル名テーブル:\n" " Entry Dir 時刻 大きさ 名前" -#: src/readelf.c:6538 +#: src/readelf.c:6646 msgid "" "\n" "Line number statements:" @@ -5536,215 +5619,215 @@ msgstr "" "\n" "行 番号 文:" -#: src/readelf.c:6589 +#: src/readelf.c:6697 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "" -#: src/readelf.c:6625 +#: src/readelf.c:6733 #, fuzzy, c-format msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:6630 +#: src/readelf.c:6738 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:6650 +#: src/readelf.c:6758 #, c-format msgid " extended opcode %u: " msgstr " 拡張命令コード %u: " -#: src/readelf.c:6655 +#: src/readelf.c:6763 #, fuzzy msgid " end of sequence" msgstr "列の終わり" -#: src/readelf.c:6674 +#: src/readelf.c:6782 #, fuzzy, c-format msgid " set address to %s\n" msgstr "アドレスを %s に設定する\n" -#: src/readelf.c:6701 +#: src/readelf.c:6809 #, fuzzy, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" "新ファイルを定義する: dir=%u、mtime=%、長さh=%、名前=%s\n" -#: src/readelf.c:6714 +#: src/readelf.c:6822 #, fuzzy, c-format msgid " set discriminator to %u\n" msgstr "カラムを % に設定する\n" -#: src/readelf.c:6719 +#: src/readelf.c:6827 #, fuzzy msgid " unknown opcode" msgstr "不明な命令コード" -#: src/readelf.c:6731 +#: src/readelf.c:6839 msgid " copy" msgstr "複写" -#: src/readelf.c:6742 +#: src/readelf.c:6850 #, fuzzy, c-format msgid " advance address by %u to %s, op_index to %u\n" msgstr "アドレスを %u だけ進めて %s にする\n" -#: src/readelf.c:6746 +#: src/readelf.c:6854 #, fuzzy, c-format msgid " advance address by %u to %s\n" msgstr "アドレスを %u だけ進めて %s にする\n" -#: src/readelf.c:6757 +#: src/readelf.c:6865 #, c-format msgid " advance line by constant %d to %\n" msgstr "行を定数 %d だけ進めて % にする\n" -#: src/readelf.c:6765 +#: src/readelf.c:6873 #, c-format msgid " set file to %\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:6775 +#: src/readelf.c:6883 #, c-format msgid " set column to %\n" msgstr "カラムを % に設定する\n" -#: src/readelf.c:6782 +#: src/readelf.c:6890 #, c-format msgid " set '%s' to %\n" msgstr " '%s' を % に設定する\n" -#: src/readelf.c:6788 +#: src/readelf.c:6896 msgid " set basic block flag" msgstr "基本ブロックフラグを設定する" -#: src/readelf.c:6801 +#: src/readelf.c:6909 #, fuzzy, c-format msgid " advance address by constant %u to %s, op_index to %u\n" msgstr "アドレスを定数 %u だけ済めて %s にする\n" -#: src/readelf.c:6805 +#: src/readelf.c:6913 #, fuzzy, c-format msgid " advance address by constant %u to %s\n" msgstr "アドレスを定数 %u だけ済めて %s にする\n" -#: src/readelf.c:6823 +#: src/readelf.c:6931 #, fuzzy, c-format msgid " advance address by fixed value %u to %s\n" msgstr "アドレスを固定値 %u だけ進めて %s にする\n" -#: src/readelf.c:6832 +#: src/readelf.c:6940 msgid " set prologue end flag" msgstr "プロローグ終了フラグを設定する" -#: src/readelf.c:6837 +#: src/readelf.c:6945 msgid " set epilogue begin flag" msgstr "エピローグ開始フラグを設定する" -#: src/readelf.c:6846 +#: src/readelf.c:6954 #, fuzzy, c-format msgid " set isa to %u\n" msgstr " ファイルを % に設定する\n" -#: src/readelf.c:6855 +#: src/readelf.c:6963 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" msgstr[0] " % 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:6887 +#: src/readelf.c:6995 #, c-format msgid "cannot get .debug_loc content: %s" msgstr ".debug_loc の内容を得られません: %s" -#: src/readelf.c:6962 +#: src/readelf.c:7070 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:6964 +#: src/readelf.c:7072 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6971 src/readelf.c:7859 +#: src/readelf.c:7079 src/readelf.c:7967 #, fuzzy msgid " \n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:7023 src/readelf.c:7185 +#: src/readelf.c:7131 src/readelf.c:7293 #, c-format msgid "cannot get macro information section data: %s" msgstr "マクロ情報セクションのデータを得られません: %s" -#: src/readelf.c:7103 +#: src/readelf.c:7211 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:7126 +#: src/readelf.c:7234 #, fuzzy, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:7226 +#: src/readelf.c:7334 #, fuzzy, c-format msgid " Offset: 0x%\n" msgstr " 所有者 大きさ\n" -#: src/readelf.c:7238 +#: src/readelf.c:7346 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:7244 src/readelf.c:7978 +#: src/readelf.c:7352 src/readelf.c:8086 #, c-format msgid " unknown version, cannot parse section\n" msgstr "" -#: src/readelf.c:7251 +#: src/readelf.c:7359 #, fuzzy, c-format msgid " Flag: 0x%\n" msgstr " 入口点アドレス : %#\n" -#: src/readelf.c:7254 +#: src/readelf.c:7362 #, fuzzy, c-format msgid " Offset length: %\n" msgstr " (オフセット: %#)" -#: src/readelf.c:7262 +#: src/readelf.c:7370 #, fuzzy, c-format msgid " .debug_line offset: 0x%\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:7275 +#: src/readelf.c:7383 #, fuzzy, c-format msgid " extension opcode table, % items:\n" msgstr " % 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:7282 +#: src/readelf.c:7390 #, c-format msgid " [%]" msgstr "" -#: src/readelf.c:7294 +#: src/readelf.c:7402 #, fuzzy, c-format msgid " % arguments:" msgstr " [%*] %hhu パラメーター\n" -#: src/readelf.c:7322 +#: src/readelf.c:7430 #, c-format msgid " no arguments." msgstr "" -#: src/readelf.c:7559 +#: src/readelf.c:7667 #, c-format msgid "vendor opcode not verified?" msgstr "" -#: src/readelf.c:7587 +#: src/readelf.c:7695 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" @@ -5752,7 +5835,7 @@ msgstr "" # # "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" # # " %4$*s 文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い -#: src/readelf.c:7628 +#: src/readelf.c:7736 #, fuzzy, c-format msgid "" "\n" @@ -5763,12 +5846,12 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s':\n" " %4$*s 文字列\n" -#: src/readelf.c:7642 +#: src/readelf.c:7750 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** 文字列の読込み中にエラー: %s\n" -#: src/readelf.c:7662 +#: src/readelf.c:7770 #, c-format msgid "" "\n" @@ -5777,7 +5860,7 @@ msgstr "" "\n" "呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:7764 +#: src/readelf.c:7872 #, c-format msgid "" "\n" @@ -5786,22 +5869,22 @@ msgstr "" "\n" "例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:7787 +#: src/readelf.c:7895 #, c-format msgid " LPStart encoding: %#x " msgstr " LPStart コード化: %#x " -#: src/readelf.c:7799 +#: src/readelf.c:7907 #, c-format msgid " TType encoding: %#x " msgstr "TType コード化: %#x " -#: src/readelf.c:7814 +#: src/readelf.c:7922 #, c-format msgid " Call site encoding: %#x " msgstr "呼出しサイトコード化: %#x " -#: src/readelf.c:7827 +#: src/readelf.c:7935 msgid "" "\n" " Call site table:" @@ -5809,7 +5892,7 @@ msgstr "" "\n" " 呼出しサイトテーブル:" -#: src/readelf.c:7841 +#: src/readelf.c:7949 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -5822,12 +5905,12 @@ msgstr "" " 離着陸場: %#\n" " 行動: %u\n" -#: src/readelf.c:7914 +#: src/readelf.c:8022 #, c-format msgid "invalid TType encoding" msgstr "不当な TType コード化" -#: src/readelf.c:7940 +#: src/readelf.c:8048 #, fuzzy, c-format msgid "" "\n" @@ -5837,37 +5920,37 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:7969 +#: src/readelf.c:8077 #, fuzzy, c-format msgid " Version: %\n" msgstr " %s: %\n" -#: src/readelf.c:7987 +#: src/readelf.c:8095 #, fuzzy, c-format msgid " CU offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:7994 +#: src/readelf.c:8102 #, fuzzy, c-format msgid " TU offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:8001 +#: src/readelf.c:8109 #, fuzzy, c-format msgid " address offset: %#\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:8008 +#: src/readelf.c:8116 #, fuzzy, c-format msgid " symbol offset: %#\n" msgstr " (オフセット: %#)" -#: src/readelf.c:8015 +#: src/readelf.c:8123 #, fuzzy, c-format msgid " constant offset: %#\n" msgstr " (終了オフセット: %#)" -#: src/readelf.c:8029 +#: src/readelf.c:8137 #, fuzzy, c-format msgid "" "\n" @@ -5877,7 +5960,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:8054 +#: src/readelf.c:8162 #, fuzzy, c-format msgid "" "\n" @@ -5887,7 +5970,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:8083 +#: src/readelf.c:8191 #, fuzzy, c-format msgid "" "\n" @@ -5897,7 +5980,7 @@ msgstr "" "オフセット %3$# の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:8116 +#: src/readelf.c:8224 #, fuzzy, c-format msgid "" "\n" @@ -5906,17 +5989,17 @@ msgstr "" "\n" "オフセット %#0 に不当なシンボルテーブル\n" -#: src/readelf.c:8203 +#: src/readelf.c:8311 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "デバッグ内容記述子を得られません: %s" -#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152 +#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258 #, c-format msgid "cannot convert core note data: %s" msgstr "コアノートデータの変換ができません: %s" -#: src/readelf.c:8724 +#: src/readelf.c:8830 #, c-format msgid "" "\n" @@ -5925,21 +6008,21 @@ msgstr "" "\n" "%*s... < %u 回の繰返し> ..." -#: src/readelf.c:9231 +#: src/readelf.c:9337 msgid " Owner Data size Type\n" msgstr " 所有者 データ大きさタイプ\n" -#: src/readelf.c:9249 +#: src/readelf.c:9355 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:9299 +#: src/readelf.c:9405 #, c-format msgid "cannot get content of note section: %s" msgstr "ノートセクションの内容を得られません: %s" -#: src/readelf.c:9326 +#: src/readelf.c:9432 #, c-format msgid "" "\n" @@ -5949,7 +6032,7 @@ msgstr "" "オフセット %4$#0 の %3$ バイトのノートセクション [%1$2zu] " "'%2$s':\n" -#: src/readelf.c:9349 +#: src/readelf.c:9455 #, c-format msgid "" "\n" @@ -5958,7 +6041,7 @@ msgstr "" "\n" "オフセット %2$#0 の %1$ バイトのノートセグメント:\n" -#: src/readelf.c:9395 +#: src/readelf.c:9501 #, fuzzy, c-format msgid "" "\n" @@ -5967,12 +6050,12 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:9401 src/readelf.c:9424 +#: src/readelf.c:9518 src/readelf.c:9559 #, fuzzy, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "セクション [%Zu] '%s' からデータが得られません: %s" -#: src/readelf.c:9405 +#: src/readelf.c:9523 #, fuzzy, c-format msgid "" "\n" @@ -5982,7 +6065,18 @@ msgstr "" "オフセット %4$#0 のセクション [%1$Zu] '%2$s' の16進ダン" "プ、%3$ バイト:\n" -#: src/readelf.c:9418 +#: src/readelf.c:9528 +#, fuzzy, c-format +msgid "" +"\n" +"Hex dump of section [%zu] '%s', % bytes (%zd uncompressed) at offset " +"%#0:\n" +msgstr "" +"\n" +"オフセット %4$#0 のセクション [%1$Zu] '%2$s' の16進ダン" +"プ、%3$ バイト:\n" + +#: src/readelf.c:9542 #, fuzzy, c-format msgid "" "\n" @@ -5991,7 +6085,7 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:9428 +#: src/readelf.c:9564 #, fuzzy, c-format msgid "" "\n" @@ -6001,7 +6095,18 @@ msgstr "" "オフセット %4$#0 文字列セクション [%1$Zu] '%2$s' には %3$ バ" "イトあります:\n" -#: src/readelf.c:9476 +#: src/readelf.c:9569 +#, fuzzy, c-format +msgid "" +"\n" +"String section [%zu] '%s' contains % bytes (%zd uncompressed) at " +"offset %#0:\n" +msgstr "" +"\n" +"オフセット %4$#0 文字列セクション [%1$Zu] '%2$s' には %3$ バ" +"イトあります:\n" + +#: src/readelf.c:9618 #, c-format msgid "" "\n" @@ -6010,7 +6115,7 @@ msgstr "" "\n" "セクション [%lu] がありません" -#: src/readelf.c:9505 +#: src/readelf.c:9647 #, c-format msgid "" "\n" @@ -6019,12 +6124,12 @@ msgstr "" "\n" "セクション '%s' がありません" -#: src/readelf.c:9562 +#: src/readelf.c:9704 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "アーカイブのシンボル索引 '%s' を得られません: %s" -#: src/readelf.c:9565 +#: src/readelf.c:9707 #, c-format msgid "" "\n" @@ -6033,7 +6138,7 @@ msgstr "" "\n" "アーカイブ '%s' にはシンボル索引がありません\n" -#: src/readelf.c:9569 +#: src/readelf.c:9711 #, fuzzy, c-format msgid "" "\n" @@ -6042,12 +6147,12 @@ msgstr "" "\n" "アーカイブ '%s' の索引には %Zu 項目あります:\n" -#: src/readelf.c:9587 +#: src/readelf.c:9729 #, fuzzy, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s" -#: src/readelf.c:9592 +#: src/readelf.c:9734 #, c-format msgid "Archive member '%s' contains:\n" msgstr "アーカイブメンバー '%s' には以下があります:\n" @@ -6566,12 +6671,12 @@ msgstr "" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947 +#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982 #, fuzzy, c-format msgid "cannot get number of program headers: %s" msgstr "セクション数を決定できません: %s" -#: src/unstrip.c:266 src/unstrip.c:1907 +#: src/unstrip.c:266 src/unstrip.c:1943 #, c-format msgid "cannot create program headers: %s" msgstr "" @@ -6586,12 +6691,12 @@ msgstr "" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:285 src/unstrip.c:1541 +#: src/unstrip.c:285 src/unstrip.c:1576 #, c-format msgid "cannot get section data: %s" msgstr "" -#: src/unstrip.c:287 src/unstrip.c:1543 +#: src/unstrip.c:287 src/unstrip.c:1578 #, c-format msgid "cannot copy section data: %s" msgstr "" @@ -6601,214 +6706,214 @@ msgstr "" msgid "cannot create directory '%s'" msgstr "" -#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575 +#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610 #, c-format msgid "cannot get symbol table entry: %s" msgstr "" -#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618 -#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793 +#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653 +#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829 #, c-format msgid "cannot update symbol table: %s" msgstr "" -#: src/unstrip.c:377 +#: src/unstrip.c:409 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:416 src/unstrip.c:427 +#: src/unstrip.c:448 src/unstrip.c:459 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:514 +#: src/unstrip.c:547 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:526 +#: src/unstrip.c:560 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:774 +#: src/unstrip.c:809 #, fuzzy, c-format msgid "invalid string offset in symbol [%zu]" msgstr "シンボル %2$sの不正なオフセット %1$zu " -#: src/unstrip.c:932 src/unstrip.c:1278 +#: src/unstrip.c:967 src/unstrip.c:1313 #, fuzzy, c-format msgid "cannot read section [%zu] name: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027 +#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:1013 +#: src/unstrip.c:1048 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1019 +#: src/unstrip.c:1054 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 src/unstrip.c:1398 +#: src/unstrip.c:1108 src/unstrip.c:1433 #, fuzzy, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731 +#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1222 +#: src/unstrip.c:1257 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1249 src/unstrip.c:1253 +#: src/unstrip.c:1284 src/unstrip.c:1288 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494 +#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1264 +#: src/unstrip.c:1299 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" -#: src/unstrip.c:1323 src/unstrip.c:1413 +#: src/unstrip.c:1358 src/unstrip.c:1448 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1473 +#: src/unstrip.c:1508 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1583 +#: src/unstrip.c:1618 #, fuzzy, c-format msgid "symbol [%zu] has invalid section index" msgstr "不当なセクション索引" -#: src/unstrip.c:1864 +#: src/unstrip.c:1900 #, fuzzy, c-format msgid "cannot read section data: %s" msgstr "セクションデータを割り当てられません: %s" -#: src/unstrip.c:1885 +#: src/unstrip.c:1921 #, c-format msgid "cannot get ELF header: %s" msgstr "" -#: src/unstrip.c:1917 +#: src/unstrip.c:1953 #, c-format msgid "cannot update program header: %s" msgstr "" -#: src/unstrip.c:1922 src/unstrip.c:2005 +#: src/unstrip.c:1958 src/unstrip.c:2040 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:1974 +#: src/unstrip.c:2009 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1977 +#: src/unstrip.c:2012 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145 +#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:2038 +#: src/unstrip.c:2073 msgid "WARNING: " msgstr "" -#: src/unstrip.c:2040 +#: src/unstrip.c:2075 msgid ", use --force" msgstr "" -#: src/unstrip.c:2063 +#: src/unstrip.c:2098 msgid "ELF header identification (e_ident) different" msgstr "" -#: src/unstrip.c:2066 +#: src/unstrip.c:2101 msgid "ELF header type (e_type) different" msgstr "" -#: src/unstrip.c:2069 +#: src/unstrip.c:2104 msgid "ELF header machine type (e_machine) different" msgstr "" -#: src/unstrip.c:2072 +#: src/unstrip.c:2107 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "" -#: src/unstrip.c:2102 +#: src/unstrip.c:2137 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:2106 +#: src/unstrip.c:2141 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2121 +#: src/unstrip.c:2156 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2125 +#: src/unstrip.c:2160 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2138 +#: src/unstrip.c:2173 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2169 +#: src/unstrip.c:2204 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2302 +#: src/unstrip.c:2337 #, c-format msgid "no matching modules found" msgstr "" -#: src/unstrip.c:2311 +#: src/unstrip.c:2346 #, c-format msgid "matched more than one module" msgstr "" -#: src/unstrip.c:2355 +#: src/unstrip.c:2390 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2356 +#: src/unstrip.c:2391 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" diff --git a/po/pl.po b/po/pl.po index fcdfae20..14b96053 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2016-01-07 15:42+0100\n" +"POT-Creation-Date: 2016-01-08 14:06+0100\n" "PO-Revision-Date: 2016-01-07 15:44+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" @@ -44,9 +44,8 @@ msgstr "" msgid "cannot allocate memory" msgstr "nie można przydzielić pamięci" -#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 -#: src/readelf.c:3282 src/readelf.c:3669 src/readelf.c:8416 -#: src/unstrip.c:2233 src/unstrip.c:2438 +#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282 +#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" @@ -74,7 +73,6 @@ msgstr "nieprawidłowy parametr" msgid "cannot change mode of output file" msgstr "nie można zmienić trybu pliku wyjściowego" -#. Something went wrong. #: libasm/asm_error.c:70 src/ldgeneric.c:6990 #, c-format msgid "cannot rename output file" @@ -137,8 +135,7 @@ msgstr "nie można uzyskać nagłówka ELF" msgid "not implemented" msgstr "niezaimplementowane" -#: libdw/dwarf_error.c:70 libelf/elf_error.c:107 -#: libelf/elf_error.c:155 +#: libdw/dwarf_error.c:70 libelf/elf_error.c:107 libelf/elf_error.c:155 msgid "invalid command" msgstr "nieprawidłowe polecenie" @@ -294,7 +291,6 @@ msgstr "dopuszczalna jest tylko jedna z opcji -e, -p, -k, -K lub --core" msgid "cannot load kernel symbols" msgstr "nie można wczytać symboli jądra" -#. Non-fatal to have no modules since we do have the kernel. #: libdwfl/argp-std.c:234 msgid "cannot find kernel modules" msgstr "nie można odnaleźć modułów jądra" @@ -529,7 +525,6 @@ msgstr " Parametry: " msgid " Build ID: " msgstr " Identyfikator kopii: " -#. A non-null terminated version string. #: libebl/eblobjnote.c:151 #, c-format msgid " Linker version: %.*s\n" @@ -780,12 +775,11 @@ msgstr "" msgid "Print all information on one line, and indent inlines" msgstr "Wyświetla wszystkie informacje w jednym wierszy i wyrównuje wstawki" -#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 -#: src/nm.c:100 src/strings.c:79 +#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100 +#: src/strings.c:79 msgid "Miscellaneous:" msgstr "Różne:" -#. Short description of program. #: src/addr2line.c:87 msgid "" "Locate source files and line information for ADDRs (in a.out by default)." @@ -793,15 +787,13 @@ msgstr "" "Odnajdywanie plików źródłowych i informacji o wierszu dla ADRESU (domyślne w " "a.out)." -#. Strings for arguments in help texts. #: src/addr2line.c:91 msgid "[ADDR...]" msgstr "[ADRES…]" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 -#: src/elflint.c:235 src/findtextrel.c:162 src/ld.c:943 -#: src/nm.c:262 src/objdump.c:177 src/ranlib.c:124 -#: src/readelf.c:509 src/size.c:207 src/strings.c:230 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235 +#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177 +#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -815,10 +807,9 @@ msgstr "" "BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n" "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 -#: src/elflint.c:240 src/findtextrel.c:167 src/ld.c:948 -#: src/nm.c:267 src/objdump.c:182 src/ranlib.c:129 -#: src/readelf.c:514 src/size.c:212 src/strings.c:235 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240 +#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182 +#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -928,12 +919,10 @@ msgstr "Używa pełnej ścieżki do dopasowywania plików." msgid "Update only older files in archive." msgstr "Aktualizuje tylko starsze pliki w archiwum." -#. Short description of program. #: src/ar.c:99 msgid "Create, modify, and extract from archives." msgstr "Tworzenie, modyfikowanie i wypakowywanie archiwów." -#. Strings for arguments in help texts. #: src/ar.c:102 msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]" msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK…]" @@ -1106,7 +1095,6 @@ msgstr "Używa prawdziwe UID, GID i datę w elementach archiwum." msgid "%s (default)" msgstr "%s (domyślnie)" -#. The archive is too big. #: src/arlib.c:209 #, c-format msgid "the archive '%s' is too large" @@ -1145,12 +1133,10 @@ msgstr "Ignorowanie różnic w identyfikatorze kopii" msgid "Output nothing; yield exit status only" msgstr "Bez wypisywania; przekazanie tylko kodu wyjścia" -#. Short description of program. #: src/elfcmp.c:77 msgid "Compare relevant parts of two ELF files for equality." msgstr "Porównywanie odpowiednich części dwóch plików ELF pod kątem równości." -#. Strings for arguments in help texts. #: src/elfcmp.c:81 msgid "FILE1 FILE2" msgstr "PLIK1 PLIK2" @@ -1300,9 +1286,9 @@ msgid "Invalid value '%s' for --gaps parameter." msgstr "Nieprawidłowa wartość „%s” dla parametru --gaps." #: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 -#: src/size.c:289 src/strings.c:186 src/strip.c:466 src/strip.c:503 -#: src/unstrip.c:2029 src/unstrip.c:2058 +#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289 +#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029 +#: src/unstrip.c:2058 #, c-format msgid "cannot open '%s'" msgstr "nie można otworzyć „%s”" @@ -1352,13 +1338,11 @@ msgstr "" "Plik binarny został utworzony przez program GNU ld, przez co jest uszkodzony " "w pewien sposób" -#. Short description of program. #: src/elflint.c:74 msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" "Szczegółowe sprawdzanie zgodności plików ELF ze specyfikacją gABI/psABI." -#. Strings for arguments in help texts. #: src/elflint.c:78 src/readelf.c:126 msgid "FILE..." msgstr "PLIK…" @@ -1391,7 +1375,6 @@ msgstr "Brak nazwy pliku.\n" msgid " error while freeing sub-ELF descriptor: %s\n" msgstr " błąd podczas zwalniania deskryptora pod-ELF: %s\n" -#. We cannot do anything. #: src/elflint.c:306 #, c-format msgid "Not an ELF file - it has the wrong magic bytes at the start\n" @@ -1528,10 +1511,9 @@ msgid "" msgstr "" "sekcja [%2d] „%s”: grupa sekcji [%2zu] „%s” nie poprzedza elementu grupy\n" -#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 -#: src/elflint.c:1632 src/elflint.c:1968 src/elflint.c:2284 -#: src/elflint.c:2898 src/elflint.c:3061 src/elflint.c:3209 -#: src/elflint.c:3399 src/elflint.c:4366 +#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632 +#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061 +#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać danych sekcji\n" @@ -1564,8 +1546,8 @@ msgstr "sekcja [%2u] „%s”: rozmiar wpisu nie zgadza się z ElfXX_Sym\n" msgid "section [%2d] '%s': cannot get symbol %d: %s\n" msgstr "sekcja [%2d] „%s”: nie można uzyskać symbolu %d: %s\n" -#: src/elflint.c:653 src/elflint.c:656 src/elflint.c:659 -#: src/elflint.c:662 src/elflint.c:665 src/elflint.c:668 +#: src/elflint.c:653 src/elflint.c:656 src/elflint.c:659 src/elflint.c:662 +#: src/elflint.c:665 src/elflint.c:668 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" msgstr "sekcja [%2d] „%s”: „%s” w zerowym wpisie nie jest zerem\n" @@ -1603,7 +1585,6 @@ msgstr "" "sekcja [%2d] „%s”: symbol %zu: XINDEX użyty dla indeksu, który zmieściłby " "się w st_shndx (%)\n" -#. || sym->st_shndx > SHN_HIRESERVE always false #: src/elflint.c:723 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid section index\n" @@ -1742,9 +1723,6 @@ msgstr "" "sekcja [%2d] „%s”: symbol _GLOBAL_OFFSET_TABLE_ odnosi się do sekcji [%2d] " "„%s”\n" -#. This test is more strict than the psABIs which -#. usually allow the symbol to be in the middle of -#. the .got section, allowing negative offsets. #: src/elflint.c:989 #, c-format msgid "" @@ -2054,8 +2032,7 @@ msgstr "" "sekcja [%2d] „%s”: plik nie-DSO oznaczony jako zależność podczas wstępnej " "konsolidacji\n" -#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 -#: src/elflint.c:1899 +#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" @@ -2707,7 +2684,6 @@ msgid "" msgstr "" "sekcja [%2d] „%s”: offset %zu: nieprawidłowa długość w podsekcji atrybutów\n" -#. Tag_File #: src/elflint.c:3510 #, c-format msgid "" @@ -3318,12 +3294,10 @@ msgstr "Dołącza ŚCIEŻKĘ do wszystkich nazw plików" msgid "Use PATH as root of debuginfo hierarchy" msgstr "Używa ŚCIEŻKI jako korzenia dla hierarchii debuginfo" -#. Short description of program. #: src/findtextrel.c:72 msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "Odnajduje źródło relokacji tekstu w PLIKACH (domyślnie a.out)." -#. Strings for arguments in help texts. #: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" @@ -3677,12 +3651,10 @@ msgstr "Odczytuje informacje o wersji z PLIKU." msgid "Set emulation to NAME." msgstr "Ustawia emulację na NAZWĘ." -#. Short description of program. #: src/ld.c:188 msgid "Combine object and archive files." msgstr "Łączy pliki obiektów i archiwów." -#. Strings for arguments in help texts. #: src/ld.c:191 msgid "[FILE]..." msgstr "[PLIK]…" @@ -3778,8 +3750,6 @@ msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem „-m”" msgid "cannot read version script '%s'" msgstr "nie można odczytać skryptu wersji „%s”" -#. The symbol is already defined and now again -#. in the linker script. This is an error. #: src/ld.c:1500 src/ld.c:1539 #, c-format msgid "duplicate definition of '%s' in linker script" @@ -3826,8 +3796,8 @@ msgid "Warning: size of `%s' changed from % in %s to % in %s" msgstr "" "Ostrzeżenie: rozmiar „%s” zmienił się z % w %s na % w %s" -#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 -#: src/readelf.c:852 src/strip.c:589 +#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852 +#: src/strip.c:589 #, c-format msgid "cannot determine number of sections: %s" msgstr "nie można określić liczby sekcji: %s" @@ -3847,9 +3817,6 @@ msgstr "(%s+%#): pierwszy raz określono tutaj\n" msgid "%s: cannot get section group data: %s" msgstr "%s: nie można uzyskać danych grupy sekcji: %s" -#. If we come here no section group contained the given section -#. despite the SHF_GROUP flag. This is an error in the input -#. file. #: src/ldgeneric.c:830 #, c-format msgid "%s: section '%s' with group flag set does not belong to any group" @@ -3860,7 +3827,6 @@ msgstr "%s: sekcja „%s” z ustawioną flagą grupy nie należy do żadnej gru msgid "%s: section [%2d] '%s' is not in the correct section group" msgstr "%s: sekcja [%2d] „%s” nie jest w poprawnej grupie sekcji" -#. This should never happen. #: src/ldgeneric.c:1146 src/ldgeneric.c:1403 src/ldgeneric.c:1412 #: src/ldgeneric.c:1471 src/ldgeneric.c:1480 src/ldgeneric.c:1743 #: src/ldgeneric.c:1995 @@ -3932,9 +3898,6 @@ msgstr "nie można użyć DSO „%s” podczas tworzenia relokowalnego pliku obi msgid "input file '%s' ignored" msgstr "plik wejściowy „%s” został zignorowany" -#. XXX The error message should get better. It should use -#. the debugging information if present to tell where in the -#. sources the undefined reference is. #: src/ldgeneric.c:2362 #, c-format msgid "undefined symbol `%s' in %s" @@ -4104,9 +4067,6 @@ msgstr "" "OSTRZEŻENIE: tymczasowy plik wyjściowy został zastąpiony przed ukończeniem " "konsolidowania" -#. This cannot be implemented generally. There should have been a -#. machine dependent implementation and we should never have arrived -#. here. #: src/ldgeneric.c:7053 src/ldgeneric.c:7064 src/ldgeneric.c:7075 #: src/ldgeneric.c:7086 src/ldgeneric.c:7105 src/ldgeneric.c:7118 #: src/ldgeneric.c:7130 @@ -4231,7 +4191,6 @@ msgstr "Odwraca kierunek porządkowania" msgid "Decode low-level symbol names into source code names" msgstr "Dekoduje niskopoziomowe nazwy symboli na nazwy kodu źródłowego" -#. Short description of program. #: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)." @@ -4245,8 +4204,8 @@ msgstr "Formatowanie wyjścia" msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s): %s" -#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 -#: src/size.c:325 src/strip.c:2280 +#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325 +#: src/strip.c:2280 #, c-format msgid "while closing '%s'" msgstr "podczas zamykania „%s”" @@ -4256,7 +4215,6 @@ msgstr "podczas zamykania „%s”" msgid "%s: File format not recognized" msgstr "%s: nie rozpoznano formatu pliku" -#. Note: 0 is no valid offset. #: src/nm.c:457 msgid "" "\n" @@ -4291,18 +4249,15 @@ msgid "cannot create search tree" msgstr "nie można utworzyć drzewa wyszukiwania" #: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545 -#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 -#: src/readelf.c:1667 src/readelf.c:1873 src/readelf.c:2063 -#: src/readelf.c:2300 src/readelf.c:2558 src/readelf.c:2634 -#: src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 -#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 -#: src/readelf.c:9603 src/readelf.c:9671 src/size.c:413 -#: src/size.c:482 src/strip.c:520 +#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667 +#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558 +#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 +#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603 +#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520 #, c-format msgid "cannot get section header string table index" msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji" -#. We always print this prolog. #: src/nm.c:787 #, c-format msgid "" @@ -4316,7 +4271,6 @@ msgstr "" "Symbole z %s:\n" "\n" -#. The header line. #: src/nm.c:790 #, c-format msgid "" @@ -4336,7 +4290,6 @@ msgstr "%s: rozmiar wpisu w sekcji %zd „%s” nie jest tym, czego oczekiwano" 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" -#. XXX Add machine specific object file types. #: src/nm.c:1537 #, c-format msgid "%s%s%s%s: Invalid operation" @@ -4371,7 +4324,6 @@ msgstr "Wybór zawartości wyjścia:" msgid "Only display information for section NAME." msgstr "Wyświetla tylko informacje o sekcji NAZWA." -#. Short description of program. #: src/objdump.c:67 msgid "Show information from FILEs (a.out by default)." msgstr "Wyświetla informacje z PLIKÓW (domyślnie a.out)." @@ -4418,12 +4370,10 @@ msgstr "Zawartość sekcji %s:\n" msgid "cannot disassemble" msgstr "nie można deasemblować" -#. Short description of program. #: src/ranlib.c:65 msgid "Generate an index to speed access to archives." msgstr "Tworzenie indeksu w celu przyspieszenia dostępu do archiwów." -#. Strings for arguments in help texts. #: src/ranlib.c:68 msgid "ARCHIVE" msgstr "ARCHIWUM" @@ -4560,7 +4510,6 @@ msgstr "" "używane z opcją -S); dekompresuje sekcję przed zrzuceniem danych (kiedy jest " "używane z opcją -p lub -x)" -#. Short description of program. #: src/readelf.c:122 msgid "Print information from ELF file in human-readable form." msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka." @@ -4580,13 +4529,11 @@ msgstr "nie można utworzyć deskryptora ELF: %s" msgid "cannot get section: %s" msgstr "nie można uzyskać sekcji: %s" -#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 -#: src/readelf.c:9623 src/unstrip.c:387 src/unstrip.c:418 -#: src/unstrip.c:467 src/unstrip.c:577 src/unstrip.c:594 -#: src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 -#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 -#: src/unstrip.c:1543 src/unstrip.c:1658 src/unstrip.c:1796 -#: src/unstrip.c:1891 +#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623 +#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577 +#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 +#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543 +#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891 #, c-format msgid "cannot get section header: %s" msgstr "nie można uzyskać nagłówka sekcji: %s" @@ -4596,8 +4543,8 @@ msgstr "nie można uzyskać nagłówka sekcji: %s" msgid "cannot get section name" msgstr "nie można uzyskać nazwy sekcji" -#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 -#: src/readelf.c:7880 src/readelf.c:8057 +#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880 +#: src/readelf.c:8057 #, c-format msgid "cannot get %s content: %s" msgstr "nie można uzyskać zwartości %s: %s" @@ -4687,7 +4634,6 @@ msgstr "CORE (plik core)" msgid "OS Specific: (%x)\n" msgstr "Zależny od systemu: (%x)\n" -#. && e_type <= ET_HIPROC always true #: src/readelf.c:959 #, c-format msgid "Processor Specific: (%x)\n" @@ -4815,7 +4761,6 @@ msgstr " Liczba wpisów nagłówków sekcji: %" msgid " (% in [0].sh_size)" msgstr " (% w [0].sh_size)" -#. We managed to get the zeroth section. #: src/readelf.c:1060 #, c-format msgid " (% in [0].sh_link)" @@ -4920,8 +4865,7 @@ msgstr "" " Mapowanie sekcji do segmentów:\n" " Segment sekcji…" -#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 -#: src/unstrip.c:1999 +#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999 #, c-format msgid "cannot get program header: %s" msgstr "nie można uzyskać nagłówka programu: %s" @@ -4974,9 +4918,8 @@ msgstr "" msgid "Couldn't uncompress section" msgstr "Nie można dekompresować sekcji" -#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 -#: src/readelf.c:2640 src/readelf.c:2944 src/readelf.c:3018 -#: src/readelf.c:4716 +#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640 +#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716 #, c-format msgid "invalid sh_link value in section %zu" msgstr "nieprawidłowa wartość sh_link w sekcji %zu" @@ -5068,12 +5011,6 @@ msgstr[2] "" "Sekcja relokacji [%2zu] „%s” dla sekcji [%2u] „%s” pod offsetem %#0 " "zawiera %d wpisów:\n" -#. The .rel.dyn section does not refer to a specific section but -#. instead of section index zero. Do not try to print a section -#. name. -#. 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:1891 src/readelf.c:2081 #, c-format msgid "" @@ -5100,10 +5037,9 @@ msgstr " Offset Typ Wartość Nazwa\n" msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 -#: src/readelf.c:2001 src/readelf.c:2013 src/readelf.c:2147 -#: src/readelf.c:2159 src/readelf.c:2173 src/readelf.c:2195 -#: src/readelf.c:2208 +#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001 +#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173 +#: src/readelf.c:2195 src/readelf.c:2208 msgid "" msgstr "" @@ -5241,7 +5177,6 @@ msgstr "" msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Rodzic %d: %s\n" -#. Print the header. #: src/readelf.c:2948 #, c-format msgid "" @@ -5407,13 +5342,11 @@ msgstr " Właściciel Rozmiar\n" msgid " %-13s %4\n" msgstr " %-13s %4\n" -#. Unknown subsection, print and skip. #: src/readelf.c:3507 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" -#. Tag_File #: src/readelf.c:3512 #, c-format msgid " File: %11\n" @@ -5607,9 +5540,8 @@ msgstr "" " [%*zu] początek: %0#*, długość: %5, offset CU DIE: " "%6\n" -#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 -#: src/readelf.c:6468 src/readelf.c:7000 src/readelf.c:7120 -#: src/readelf.c:7284 src/readelf.c:7709 +#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468 +#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709 #, c-format msgid "" "\n" @@ -5715,8 +5647,6 @@ msgstr " [%6tx] adres podstawowy %s\n" msgid " [%6tx] empty list\n" msgstr " [%6tx] pusta lista\n" -#. We have an address range entry. -#. First address range entry in a list. #: src/readelf.c:5003 #, c-format msgid " [%6tx] %s..%s\n" @@ -5874,7 +5804,6 @@ msgstr "" 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:6551 #, c-format msgid "" @@ -5985,12 +5914,10 @@ msgstr "" msgid " set discriminator to %u\n" msgstr " ustawienie dyskryminatora na %u\n" -#. Unknown, ignore it. #: src/readelf.c:6827 msgid " unknown opcode" msgstr " nieznana instrukcja" -#. Takes no argument. #: src/readelf.c:6839 msgid " copy" msgstr " kopiowanie" @@ -6025,7 +5952,6 @@ msgstr " ustawienie kolumny na %\n" msgid " set '%s' to %\n" msgstr " ustawienie „%s” na %\n" -#. Takes no argument. #: src/readelf.c:6896 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" @@ -6045,12 +5971,10 @@ msgstr " zwiększenie adresu o stałą %u do %s\n" msgid " advance address by fixed value %u to %s\n" msgstr " zwiększenie adresu o stałą wartość %u do %s\n" -#. Takes no argument. #: src/readelf.c:6940 msgid " set prologue end flag" msgstr " ustawienie flagi końca prologu" -#. Takes no argument. #: src/readelf.c:6945 msgid " set epilogue begin flag" msgstr " ustawienie flagi początku epilogu" @@ -6060,9 +5984,6 @@ msgstr " ustawienie flagi początku epilogu" msgid " set isa to %u\n" 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:6963 #, c-format msgid " unknown opcode with % parameter:" @@ -6076,7 +5997,6 @@ msgstr[2] " nieznana instrukcja z % parametrami:" msgid "cannot get .debug_loc content: %s" msgstr "nie można uzyskać zawartości .debug_log: %s" -#. First entry in a list. #: src/readelf.c:7070 #, c-format msgid " [%6tx] %s..%s" @@ -6321,8 +6241,7 @@ msgstr "" msgid "cannot get debug context descriptor: %s" msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s" -#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 -#: src/readelf.c:9258 +#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258 #, c-format msgid "cannot convert core note data: %s" msgstr "nie można konwertować danych notatki core: %s" @@ -6523,7 +6442,6 @@ msgstr "Wyświetla rozmiar i flagi uprawnień dla segmentów wczytywalnych" msgid "Display the total sizes (bsd only)" msgstr "Wyświetla całkowite rozmiary (tylko bsd)" -#. Short description of program. #: src/size.c:79 msgid "List section sizes of FILEs (a.out by default)." msgstr "Wyświetla listę rozmiarów sekcji PLIKU (domyślnie a.out)." @@ -6716,7 +6634,6 @@ msgstr "Wyświetla położenie ciągu z podstawą odpowiednio 8, 10 lub 16." msgid "Alias for --radix=o" msgstr "Alias dla --radix=o" -#. Short description of program. #: src/strings.c:84 msgid "Print the strings of printable characters in files." msgstr "Wyświetla ciągi znaków drukowalnych w plikach." @@ -6793,7 +6710,6 @@ msgstr "Usuwa sekcję .comment" msgid "Relax a few rules to handle slightly broken ELF files" msgstr "Łagodzi kilka reguł, aby obsłużyć lekko uszkodzone pliki ELF" -#. Short description of program. #: src/strip.c:92 msgid "Discard symbols from object files." msgstr "Odrzuca symbole z plików obiektów." @@ -6843,12 +6759,6 @@ msgstr "podczas otwierania „%s”" msgid "%s: cannot use -o or -f when stripping archive" msgstr "%s: nie można używać -o lub -f podczas okrajania archiwum" -#. We would like to support ar archives, but currently it just -#. doesn't work at all since we call elf_clone on the members -#. which doesn't really support ar members. -#. result = handle_ar (fd, elf, NULL, fname, -#. preserve_dates ? tv : NULL); -#. #: src/strip.c:384 #, c-format msgid "%s: no support for stripping archive" @@ -7068,9 +6978,8 @@ msgstr "nie można utworzyć katalogu „%s”" msgid "cannot get symbol table entry: %s" msgstr "nie można uzyskać wpisu tabeli symboli: %s" -#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 -#: src/unstrip.c:653 src/unstrip.c:1631 src/unstrip.c:1805 -#: src/unstrip.c:1829 +#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653 +#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829 #, c-format msgid "cannot update symbol table: %s" msgstr "nie można zaktualizować tabeli symboli: %s" @@ -7125,8 +7034,7 @@ msgstr "przepełnienie z shnum = %zu w sekcji „%s”" msgid "cannot find matching section for [%zu] '%s'" msgstr "nie można odnaleźć pasującej sekcji dla [%zu] „%s”" -#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 -#: src/unstrip.c:1766 +#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766 #, c-format msgid "cannot add section name to string table: %s" msgstr "nie można nazwy sekcji do tabeli ciągów: %s" @@ -7203,8 +7111,7 @@ msgstr "" "Dane DWARF w „%s” nie zostały dostosowane do przesunięcia wczesnego " "konsolidowania; proszę rozważyć polecenie prelink -u" -#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 -#: src/unstrip.c:2180 +#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "nie można utworzyć deskryptora ELF: %s" diff --git a/po/uk.po b/po/uk.po index 4cf554b0..1c5f683a 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2015-10-16 13:26+0200\n" +"POT-Creation-Date: 2016-01-08 14:06+0100\n" "PO-Revision-Date: 2015-09-26 16:41+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -46,8 +46,8 @@ msgstr "" msgid "cannot allocate memory" msgstr "не вдалося розподілити пам’ять" -#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3184 -#: src/readelf.c:3561 src/readelf.c:8310 src/unstrip.c:2198 src/unstrip.c:2403 +#: lib/xmalloc.c:53 lib/xmalloc.c:66 lib/xmalloc.c:78 src/readelf.c:3282 +#: src/readelf.c:3669 src/readelf.c:8416 src/unstrip.c:2233 src/unstrip.c:2438 #, c-format msgid "memory exhausted" msgstr "пам’ять вичерпано" @@ -249,7 +249,7 @@ msgstr "некоректний код операції" msgid "not a CU (unit) DIE" msgstr "не є DIE CU (модуля)" -#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2345 +#: libdwfl/argp-std.c:46 src/stack.c:642 src/unstrip.c:2380 msgid "Input selection options:" msgstr "Вибір параметрів виведення даних:" @@ -307,7 +307,12 @@ msgstr "не вдалося виявити ядро або модулі" msgid "cannot read ELF core file: %s" msgstr "не вдалося прочитати файл core ELF: %s" -#: libdwfl/argp-std.c:311 +#: libdwfl/argp-std.c:313 +#, fuzzy +msgid "Not enough memory" +msgstr "нестача пам'яті" + +#: libdwfl/argp-std.c:323 msgid "No modules recognized in core file" msgstr "Не вдалося виявити модулі у файлі core" @@ -563,7 +568,7 @@ msgstr "некоректна розмірність вхідного парам msgid "invalid size of destination operand" msgstr "некоректна розмірність вихідного параметра" -#: libelf/elf_error.c:87 src/readelf.c:5365 +#: libelf/elf_error.c:87 src/readelf.c:5473 #, c-format msgid "invalid encoding" msgstr "некоректне кодування" @@ -644,8 +649,8 @@ msgstr "невідповідність полів data/scn" msgid "invalid section header" msgstr "некоректний заголовок розділу" -#: libelf/elf_error.c:187 src/readelf.c:7234 src/readelf.c:7682 -#: src/readelf.c:7783 src/readelf.c:7964 +#: libelf/elf_error.c:187 src/readelf.c:7342 src/readelf.c:7790 +#: src/readelf.c:7891 src/readelf.c:8072 #, c-format msgid "invalid data" msgstr "некоректні дані" @@ -689,6 +694,40 @@ msgstr "" msgid "file has no program header" msgstr "у файлі немає заголовка програми" +#: libelf/elf_error.c:237 +#, fuzzy +msgid "invalid section type" +msgstr "некоректний розділ" + +#: libelf/elf_error.c:242 +#, fuzzy +msgid "invalid section flags" +msgstr "некоректний розділ" + +#: libelf/elf_error.c:247 +#, fuzzy +msgid "section does not contain compressed data" +msgstr "розділ хешу [%2zu] «%s» містить недостатньо даних\n" + +#: libelf/elf_error.c:252 +msgid "section contains compressed data" +msgstr "" + +#: libelf/elf_error.c:257 +#, fuzzy +msgid "unknown compression type" +msgstr "невизначений тип" + +#: libelf/elf_error.c:262 +#, fuzzy +msgid "cannot compress data" +msgstr "не вдалося розпакувати DWARF" + +#: libelf/elf_error.c:267 +#, fuzzy +msgid "cannot decompress data" +msgstr "не вдалося розпакувати DWARF" + #: src/addr2line.c:58 msgid "Input format options:" msgstr "Параметри форматування вхідних даних:" @@ -745,7 +784,7 @@ msgstr "Виводити розшифровані символи (АРГ зав msgid "Print all information on one line, and indent inlines" msgstr "Вивести усі дані у один рядок і додати відступи до перенесених рядків" -#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:99 +#: src/addr2line.c:79 src/elfcmp.c:72 src/findtextrel.c:67 src/nm.c:100 #: src/strings.c:79 msgid "Miscellaneous:" msgstr "Інше:" @@ -759,9 +798,9 @@ msgstr "Шукати АДРЕСИ у файлах кодів та даних п msgid "[ADDR...]" msgstr "[АДРЕСА...]" -#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:670 src/elflint.c:235 -#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:261 src/objdump.c:177 -#: src/ranlib.c:124 src/readelf.c:500 src/size.c:207 src/strings.c:230 +#: src/addr2line.c:216 src/ar.c:285 src/elfcmp.c:672 src/elflint.c:235 +#: src/findtextrel.c:162 src/ld.c:943 src/nm.c:262 src/objdump.c:177 +#: src/ranlib.c:124 src/readelf.c:509 src/size.c:207 src/strings.c:230 #: src/strip.c:218 src/unstrip.c:232 #, c-format msgid "" @@ -774,9 +813,9 @@ msgstr "" "початкових кодах. Умовами ліцензування програми НЕ передбачено жодних " "гарантій, зокрема гарантій працездатності або придатності для певної мети.\n" -#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:675 src/elflint.c:240 -#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:266 src/objdump.c:182 -#: src/ranlib.c:129 src/readelf.c:505 src/size.c:212 src/strings.c:235 +#: src/addr2line.c:221 src/ar.c:290 src/elfcmp.c:677 src/elflint.c:240 +#: src/findtextrel.c:167 src/ld.c:948 src/nm.c:267 src/objdump.c:182 +#: src/ranlib.c:129 src/readelf.c:514 src/size.c:212 src/strings.c:235 #: src/strip.c:223 src/unstrip.c:237 #, c-format msgid "Written by %s.\n" @@ -1253,40 +1292,40 @@ msgstr "%s %s diff: заголовок програми %d" msgid "%s %s differ: gap" msgstr "%s %s diff: проміжок" -#: src/elfcmp.c:702 +#: src/elfcmp.c:704 #, c-format msgid "Invalid value '%s' for --gaps parameter." msgstr "Некоректне значення «%s» параметра --gaps." -#: src/elfcmp.c:730 src/findtextrel.c:221 src/ldgeneric.c:1757 -#: src/ldgeneric.c:4247 src/nm.c:377 src/ranlib.c:157 src/size.c:289 -#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:1994 -#: src/unstrip.c:2023 +#: src/elfcmp.c:732 src/findtextrel.c:221 src/ldgeneric.c:1757 +#: src/ldgeneric.c:4247 src/nm.c:378 src/ranlib.c:157 src/size.c:289 +#: src/strings.c:186 src/strip.c:466 src/strip.c:503 src/unstrip.c:2029 +#: src/unstrip.c:2058 #, c-format msgid "cannot open '%s'" msgstr "не вдалося відкрити «%s»" -#: src/elfcmp.c:734 src/findtextrel.c:228 src/ranlib.c:174 +#: src/elfcmp.c:736 src/findtextrel.c:228 src/ranlib.c:174 #, c-format msgid "cannot create ELF descriptor for '%s': %s" msgstr "не вдалося створити дескриптор ELF для «%s»: %s" -#: src/elfcmp.c:739 +#: src/elfcmp.c:741 #, c-format msgid "cannot create EBL descriptor for '%s'" msgstr "не вдалося створити дескриптор EBL для «%s»" -#: src/elfcmp.c:757 src/findtextrel.c:409 +#: src/elfcmp.c:759 src/findtextrel.c:409 #, c-format msgid "cannot get section header of section %zu: %s" msgstr "не вдалося отримати заголовок розділу %zu: %s" -#: src/elfcmp.c:767 +#: src/elfcmp.c:769 #, c-format msgid "cannot get content of section %zu: %s" msgstr "не вдалося отримати вміст розділу %zu: %s" -#: src/elfcmp.c:777 src/elfcmp.c:791 +#: src/elfcmp.c:779 src/elfcmp.c:793 #, c-format msgid "cannot get relocation: %s" msgstr "не вдалося отримати пересування: %s" @@ -1316,11 +1355,11 @@ msgid "Pedantic checking of ELF files compliance with gABI/psABI spec." msgstr "" "Педантична перевірка файлів ELF на сумісність зі специфікаціями gABI/psABI." -#: src/elflint.c:78 src/readelf.c:123 +#: src/elflint.c:78 src/readelf.c:126 msgid "FILE..." msgstr "ФАЙЛ..." -#: src/elflint.c:155 src/readelf.c:292 +#: src/elflint.c:155 src/readelf.c:298 #, c-format msgid "cannot open input file" msgstr "не вдалося відкрити вхідний файл." @@ -1339,7 +1378,7 @@ msgstr "помилка під час спроби закриття дескри msgid "No errors" msgstr "Без помилок" -#: src/elflint.c:219 src/readelf.c:468 +#: src/elflint.c:219 src/readelf.c:474 msgid "Missing file name.\n" msgstr "Не вказано назви файла.\n" @@ -1487,14 +1526,14 @@ msgstr "" "розділ [%2d] «%s»: групу розділів [%2zu] «%s» мало бути визначено до розділу-" "елемента цієї групи\n" -#: src/elflint.c:591 src/elflint.c:1471 src/elflint.c:1522 src/elflint.c:1628 -#: src/elflint.c:1964 src/elflint.c:2280 src/elflint.c:2893 src/elflint.c:3056 -#: src/elflint.c:3204 src/elflint.c:3394 src/elflint.c:4336 +#: src/elflint.c:591 src/elflint.c:1475 src/elflint.c:1526 src/elflint.c:1632 +#: src/elflint.c:1968 src/elflint.c:2284 src/elflint.c:2898 src/elflint.c:3061 +#: src/elflint.c:3209 src/elflint.c:3399 src/elflint.c:4366 #, c-format msgid "section [%2d] '%s': cannot get section data\n" msgstr "розділ [%2d] «%s»: не вдалося отримати дані розділу\n" -#: src/elflint.c:604 src/elflint.c:1635 +#: src/elflint.c:604 src/elflint.c:1639 #, c-format msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " @@ -1606,13 +1645,13 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: використання функції у розділі COMMON " "позбавлене сенсу\n" -#: src/elflint.c:805 +#: src/elflint.c:809 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" msgstr "" "розділ [%2d] «%s»: символ %zu: значення st_value поза можливим діапазоном\n" -#: src/elflint.c:811 src/elflint.c:836 src/elflint.c:885 +#: src/elflint.c:815 src/elflint.c:840 src/elflint.c:889 #, c-format msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " @@ -1621,7 +1660,7 @@ msgstr "" "розділ [%2d] «%s»: символ %zu не повністю відповідає розділу, на який " "посилається, [%2d] «%s»\n" -#: src/elflint.c:820 +#: src/elflint.c:824 #, c-format msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " @@ -1630,7 +1669,7 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: для розділу посилання [%2d] «%s» не " "встановлено прапорець SHF_TLS\n" -#: src/elflint.c:830 src/elflint.c:878 +#: src/elflint.c:834 src/elflint.c:882 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " @@ -1639,14 +1678,14 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: значення st_value поза межами розділу " "посилання, [%2d] «%s»\n" -#: src/elflint.c:857 +#: src/elflint.c:861 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" msgstr "" "розділ [%2d] «%s»: символ %zu: символ TLS без запису заголовка програми TLS\n" -#: src/elflint.c:863 +#: src/elflint.c:867 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but couldn't get TLS program " @@ -1655,7 +1694,7 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: маємо символ TLS, але не вдалося отримати " "запис заголовка програми TLS\n" -#: src/elflint.c:871 +#: src/elflint.c:875 #, c-format msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] " @@ -1664,7 +1703,7 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: значення st_value перед розділом посилання, " "[%2d] «%s»\n" -#: src/elflint.c:898 +#: src/elflint.c:902 #, c-format msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " @@ -1673,7 +1712,7 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: у sh_info описано локальний символ поза " "діапазоном\n" -#: src/elflint.c:905 +#: src/elflint.c:909 #, c-format msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " @@ -1682,12 +1721,12 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: у sh_info описано нелокальний символ поза " "діапазоном\n" -#: src/elflint.c:912 +#: src/elflint.c:916 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" msgstr "розділ [%2d] «%s»: символ %zu: нелокальний символ розділу\n" -#: src/elflint.c:962 +#: src/elflint.c:966 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section " @@ -1696,7 +1735,7 @@ msgstr "" "розділ [%2d] «%s»: символ _GLOBAL_OFFSET_TABLE_ посилається на помилковий " "розділ, [%2d]\n" -#: src/elflint.c:969 +#: src/elflint.c:973 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] " @@ -1705,7 +1744,7 @@ msgstr "" "розділ [%2d] «%s»: символ _GLOBAL_OFFSET_TABLE_ посилається на розділ [%2d] " "'%s'\n" -#: src/elflint.c:985 +#: src/elflint.c:989 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %# does not " @@ -1714,7 +1753,7 @@ msgstr "" "розділ [%2d] «%s»: значення символу _GLOBAL_OFFSET_TABLE_ %# не " "відповідає адресі розділу %s %#\n" -#: src/elflint.c:992 +#: src/elflint.c:996 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size % does not " @@ -1723,7 +1762,7 @@ msgstr "" "розділ [%2d] «%s»: розмір символу _GLOBAL_OFFSET_TABLE_ % не " "відповідає розміру розділу %s %\n" -#: src/elflint.c:1000 +#: src/elflint.c:1004 #, c-format msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " @@ -1732,7 +1771,7 @@ msgstr "" "розділ [%2d] «%s»: виявлено символ _GLOBAL_OFFSET_TABLE_, але не виявлено " "розділу .got\n" -#: src/elflint.c:1016 +#: src/elflint.c:1020 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %# does not match dynamic " @@ -1741,7 +1780,7 @@ msgstr "" "розділ [%2d] «%s»: значення символу _DYNAMIC_ %# не відповідає " "адресі динамічного сегмента %#\n" -#: src/elflint.c:1023 +#: src/elflint.c:1027 #, c-format msgid "" "section [%2d] '%s': _DYNAMIC symbol size % does not match dynamic " @@ -1750,7 +1789,7 @@ msgstr "" "розділ [%2d] «%s»: розмір символу _DYNAMIC % не відповідає розміру " "динамічного сегмента %\n" -#: src/elflint.c:1036 +#: src/elflint.c:1040 #, c-format msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" @@ -1759,29 +1798,29 @@ msgstr "" "розділ [%2d] «%s»: символ %zu: символ у динамічній таблиці символів з " "нетиповою видимістю\n" -#: src/elflint.c:1040 +#: src/elflint.c:1044 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" msgstr "розділ [%2d] «%s»: символ %zu: невідомий набір бітів у st_other\n" -#: src/elflint.c:1078 +#: src/elflint.c:1082 #, c-format msgid "section [%2d] '%s': cannot get section data.\n" msgstr "розділ [%2d] «%s»: не вдалося отримати дані розділу.\n" -#: src/elflint.c:1094 +#: src/elflint.c:1098 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" msgstr "розділ [%2d] «%s»: для цього розділу RELA використано DT_RELCOUNT\n" -#: src/elflint.c:1105 src/elflint.c:1158 +#: src/elflint.c:1109 src/elflint.c:1162 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" msgstr "" "розділ [%2d] «%s»: значення DT_RELCOUNT %d є занадто високим для цього " "розділу\n" -#: src/elflint.c:1130 src/elflint.c:1183 +#: src/elflint.c:1134 src/elflint.c:1187 #, c-format msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " @@ -1790,7 +1829,7 @@ msgstr "" "розділ [%2d] «%s»: відносні пересування після позиції %d, вказаної за " "допомогою DT_RELCOUNT\n" -#: src/elflint.c:1136 src/elflint.c:1189 +#: src/elflint.c:1140 src/elflint.c:1193 #, c-format msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " @@ -1799,52 +1838,52 @@ msgstr "" "розділ [%2d] «%s»: безвідносне пересування на позиції %zu; DT_RELCOUNT " "визначено %d відносних пересування\n" -#: src/elflint.c:1148 +#: src/elflint.c:1152 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" msgstr "розділ [%2d] «%s»: для цього розділу REL використано DT_RELACOUNT\n" -#: src/elflint.c:1231 +#: src/elflint.c:1235 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" msgstr "розділ [%2d] «%s»: некоректний індекс розділу призначення\n" -#: src/elflint.c:1243 +#: src/elflint.c:1247 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" msgstr "розділ [%2d] «%s»: некоректний тип розділу призначення\n" -#: src/elflint.c:1251 +#: src/elflint.c:1255 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" msgstr "розділ [%2d] «%s»: sh_info має бути нульовим\n" -#: src/elflint.c:1259 +#: src/elflint.c:1263 #, fuzzy, c-format msgid "" "section [%2d] '%s': no relocations for merge-able string sections possible\n" msgstr "" "розділ [%2d] «%s»: пересування у придатних до об’єднання розділах неможливе\n" -#: src/elflint.c:1267 +#: src/elflint.c:1271 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" msgstr "" "розділ [%2d] «%s»: розмірність запису розділу не відповідає ElfXX_Rela\n" -#: src/elflint.c:1327 +#: src/elflint.c:1331 #, c-format msgid "text relocation flag set but there is no read-only segment\n" msgstr "" "встановлено прапорець пересування тексту, але сегмент придатний лише до " "читання\n" -#: src/elflint.c:1354 +#: src/elflint.c:1358 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" msgstr "розділ [%2d] «%s»: пересування %zu: некоректний тип\n" -#: src/elflint.c:1362 +#: src/elflint.c:1366 #, c-format msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " @@ -1853,12 +1892,12 @@ msgstr "" "розділ [%2d] «%s»: пересування %zu: некоректний тип пересування для типу " "файла\n" -#: src/elflint.c:1370 +#: src/elflint.c:1374 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" msgstr "розділ [%2d] «%s»: пересування %zu: некоректний індекс символу\n" -#: src/elflint.c:1388 +#: src/elflint.c:1392 #, c-format msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " @@ -1867,12 +1906,12 @@ msgstr "" "розділ [%2d] «%s»: пересування %zu: з %s можна використовувати лише символ " "«_GLOBAL_OFFSET_TABLE_»\n" -#: src/elflint.c:1405 +#: src/elflint.c:1409 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" msgstr "розділ [%2d] «%s»: пересування %zu: зміщення за межі діапазону\n" -#: src/elflint.c:1420 +#: src/elflint.c:1424 #, c-format msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type " @@ -1881,7 +1920,7 @@ msgstr "" "розділ [%2d] «%s»: пересування %zu: пересування копіювання для символу типу " "%s\n" -#: src/elflint.c:1441 +#: src/elflint.c:1445 #, c-format msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " @@ -1890,22 +1929,22 @@ msgstr "" "розділ [%2d] «%s»: пересування %zu: змінено придатний лише для читання " "розділ, але не встановлено прапорець пересування тексту\n" -#: src/elflint.c:1456 +#: src/elflint.c:1460 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "розділ [%2d] «%s»: пересування завантажених і незавантажених даних\n" -#: src/elflint.c:1496 src/elflint.c:1547 +#: src/elflint.c:1500 src/elflint.c:1551 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" msgstr "розділ [%2d] «%s»: не вдалося отримати зміщення %zu: %s\n" -#: src/elflint.c:1623 +#: src/elflint.c:1627 #, c-format msgid "more than one dynamic section present\n" msgstr "вказано більше одного динамічного розділу\n" -#: src/elflint.c:1641 +#: src/elflint.c:1645 #, c-format msgid "" "section [%2d]: referenced as string table for section [%2d] '%s' but section " @@ -1914,46 +1953,46 @@ msgstr "" "розділ [%2d]: надано посилання на таблицю рядків розділу [%2d] «%s», але " "значення посилання на розділ є некоректним\n" -#: src/elflint.c:1649 +#: src/elflint.c:1653 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" msgstr "" "розділ [%2d] «%s»: розмірність запису розділу не відповідає ElfXX_Dyn\n" -#: src/elflint.c:1654 src/elflint.c:1943 +#: src/elflint.c:1658 src/elflint.c:1947 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" msgstr "розділ [%2d] «%s»: sh_info не є нульовим\n" -#: src/elflint.c:1664 +#: src/elflint.c:1668 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" msgstr "" "розділ [%2d] «%s»: не вдалося отримати запис динамічного розділу %zu: %s\n" -#: src/elflint.c:1672 +#: src/elflint.c:1676 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" msgstr "" "розділ [%2d] «%s»: за записом DT_NULL вказано записи, що не належать до " "DT_NULL\n" -#: src/elflint.c:1679 +#: src/elflint.c:1683 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" msgstr "розділ [%2d] «%s»: запис %zu: невідома мітка\n" -#: src/elflint.c:1690 +#: src/elflint.c:1694 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" msgstr "розділ [%2d] «%s»: запис %zu: декілька записів з міткою %s\n" -#: src/elflint.c:1700 +#: src/elflint.c:1704 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" msgstr "розділ [%2d] «%s»: запис %zu: використано мітку рівня 2 %s\n" -#: src/elflint.c:1718 +#: src/elflint.c:1722 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" @@ -1961,7 +2000,7 @@ msgstr "" "розділ [%2d] «%s»: запис %zu: значенням DT_PLTREL має бути DT_REL або " "DT_RELA\n" -#: src/elflint.c:1731 +#: src/elflint.c:1735 #, c-format msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section " @@ -1970,7 +2009,7 @@ msgstr "" "розділ [%2d] «%s»: розділ %zu: вказівник не відповідає адресі розділу [%2d] " "«%s», на яку посилається sh_link\n" -#: src/elflint.c:1774 +#: src/elflint.c:1778 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" @@ -1978,7 +2017,7 @@ msgstr "" "розділ [%2d] «%s»: запис %zu: значення %s має вказувати на завантажений " "сегмент\n" -#: src/elflint.c:1789 +#: src/elflint.c:1793 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section " @@ -1987,48 +2026,48 @@ msgstr "" "розділ [%2d] «%s»: запис %zu: значенням %s має бути коректне зміщення у " "розділі [%2d] «%s»\n" -#: src/elflint.c:1809 src/elflint.c:1837 +#: src/elflint.c:1813 src/elflint.c:1841 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" msgstr "розділ [%2d] «%s»: містить запис %s, але не %s\n" -#: src/elflint.c:1821 +#: src/elflint.c:1825 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" msgstr "розділ [%2d] «%s»: немає обов’язкової мітки %s\n" -#: src/elflint.c:1830 +#: src/elflint.c:1834 #, c-format msgid "section [%2d] '%s': no hash section present\n" msgstr "розділ [%2d] «%s»: не виявлено розділу хешів\n" -#: src/elflint.c:1845 src/elflint.c:1852 +#: src/elflint.c:1849 src/elflint.c:1856 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" msgstr "розділ [%2d] «%s»: вказано не всі зі значень %s, %s і %s\n" -#: src/elflint.c:1862 src/elflint.c:1866 +#: src/elflint.c:1866 src/elflint.c:1870 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" "розділ [%2d] «%s»: у DSO, позначеному на кроці попереднього компонування, " "немає мітки %s\n" -#: src/elflint.c:1872 +#: src/elflint.c:1876 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" "розділ [%2d] «%s»: під час попереднього компонування як залежність позначено " "файл, який не є файлом DSO\n" -#: src/elflint.c:1883 src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 +#: src/elflint.c:1887 src/elflint.c:1891 src/elflint.c:1895 src/elflint.c:1899 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" "розділ [%2d] «%s»: у попередньо скомпонованому виконуваному файлі не " "міститься мітки %s\n" -#: src/elflint.c:1907 +#: src/elflint.c:1911 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" @@ -2036,7 +2075,7 @@ msgstr "" "розділ [%2d] «%s»: розширений розділ покажчика можуть мати лише файли, " "придатні до пересування\n" -#: src/elflint.c:1917 +#: src/elflint.c:1921 #, c-format msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" @@ -2044,29 +2083,29 @@ msgstr "" "розділ [%2d] «%s»: розділ розширеного покажчика розділів не призначено для " "таблиць символів\n" -#: src/elflint.c:1921 +#: src/elflint.c:1925 #, c-format msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n" msgstr "" "розділ [%2d] «%s»: індекс розширеного розділу sh_link [%2d] є некоректним\n" -#: src/elflint.c:1926 +#: src/elflint.c:1930 #, c-format msgid "cannot get data for symbol section\n" msgstr "не вдалося отримати дані для розділу символів\n" -#: src/elflint.c:1929 +#: src/elflint.c:1933 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" msgstr "розділ [%2d] «%s»: розмірність запису не відповідає Elf32_Word\n" -#: src/elflint.c:1938 +#: src/elflint.c:1942 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" "розділ [%2d] «%s»: розширена таблиця покажчика замала для таблиці символів\n" -#: src/elflint.c:1953 +#: src/elflint.c:1957 #, c-format msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " @@ -2075,24 +2114,24 @@ msgstr "" "розділ [%2d] «%s»: розширений покажчик розділів у розділі [%2zu] «%s» " "посилається на ту саму таблицю розділів\n" -#: src/elflint.c:1970 +#: src/elflint.c:1974 #, c-format msgid "symbol 0 should have zero extended section index\n" msgstr "символу 0 має відповідати нульовий індекс розширеного розділу\n" -#: src/elflint.c:1982 +#: src/elflint.c:1986 #, c-format msgid "cannot get data for symbol %zu\n" msgstr "не вдалося отримати дані для символу %zu\n" -#: src/elflint.c:1987 +#: src/elflint.c:1991 #, c-format msgid "extended section index is % but symbol index is not XINDEX\n" msgstr "" "індекс розширеного розділу дорівнює %, але індекс символу не є " "XINDEX\n" -#: src/elflint.c:2003 src/elflint.c:2054 +#: src/elflint.c:2007 src/elflint.c:2058 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" @@ -2100,43 +2139,43 @@ msgstr "" "розділ [%2d] «%s»: розділ таблиці хешів занадто малий (розмір %ld, мало бути " "— %ld)\n" -#: src/elflint.c:2015 src/elflint.c:2066 +#: src/elflint.c:2019 src/elflint.c:2070 #, c-format msgid "section [%2d] '%s': chain array too large\n" msgstr "розділ [%2d] «%s»: масив ланцюжка занадто великий\n" -#: src/elflint.c:2029 src/elflint.c:2080 +#: src/elflint.c:2033 src/elflint.c:2084 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" msgstr "" "розділ [%2d] «%s»: посилання на хеш блоку %zu лежить поза межами діапазону\n" -#: src/elflint.c:2039 +#: src/elflint.c:2043 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" msgstr "" "розділ [%2d] «%s»: посилання ланцюжка хешів %zu лежить поза межами " "діапазону\n" -#: src/elflint.c:2090 +#: src/elflint.c:2094 #, c-format msgid "section [%2d] '%s': hash chain reference % out of bounds\n" msgstr "" "розділ [%2d] «%s»: посилання ланцюжка хешів % лежить поза межами " "діапазону\n" -#: src/elflint.c:2103 +#: src/elflint.c:2107 #, c-format msgid "section [%2d] '%s': not enough data\n" msgstr "розділ [%2d] «%s»: недостатньо даних\n" -#: src/elflint.c:2115 +#: src/elflint.c:2119 #, c-format msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n" msgstr "" "розділ [%2d] «%s»: розмір бітової маски є нульовим або не є степенем 2: %u\n" -#: src/elflint.c:2131 +#: src/elflint.c:2135 #, c-format msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " @@ -2145,12 +2184,12 @@ msgstr "" "розділ [%2d] «%s»: розділ таблиці хешів є надто малим (маємо %ld, мало бути " "принаймні %ld)\n" -#: src/elflint.c:2140 +#: src/elflint.c:2144 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "розділ [%2d] «%s»: зсув 2-ої функції хешування занадто великий: %u\n" -#: src/elflint.c:2174 +#: src/elflint.c:2178 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" @@ -2158,7 +2197,7 @@ msgstr "" "розділ [%2d] '%s': ланцюжок хешів для блоку %zu розташовано нижче за позицію " "відхилення індексу символу\n" -#: src/elflint.c:2195 +#: src/elflint.c:2199 #, c-format msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " @@ -2167,7 +2206,7 @@ msgstr "" "розділ [%2d] «%s»: символ %u, на який посилається ланцюжок у блоці %zu не " "визначено\n" -#: src/elflint.c:2208 +#: src/elflint.c:2212 #, c-format msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" @@ -2175,7 +2214,7 @@ msgstr "" "розділ [%2d] «%s»: значення хешу для символу %u у ланцюжку для блоку %zu є " "помилковим\n" -#: src/elflint.c:2217 +#: src/elflint.c:2221 #, c-format msgid "" "section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n" @@ -2183,14 +2222,14 @@ msgstr "" "розділ [%2d] «%s»: індекс маски для символу %u у ланцюжку для блоку %zu є " "помилковим\n" -#: src/elflint.c:2247 +#: src/elflint.c:2251 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" msgstr "" "розділ [%2d] «%s»: ланцюжок хешів для блоку %zu лежить поза межами " "діапазону\n" -#: src/elflint.c:2252 +#: src/elflint.c:2256 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" @@ -2198,43 +2237,43 @@ msgstr "" "розділ [%2d] «%s»: посилання на символ у ланцюжку для блоку %zu лежить поза " "межами діапазону\n" -#: src/elflint.c:2258 +#: src/elflint.c:2262 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "розділ [%2d] «%s»: бітова маска не відповідає назвам у таблиці хешів\n" -#: src/elflint.c:2271 +#: src/elflint.c:2275 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" "розділ [%2d] «%s»: придатні до пересування файли не можуть містити таблиць " "хешів\n" -#: src/elflint.c:2289 +#: src/elflint.c:2293 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" "розділ [%2d] «%s»: таблицю хешів не призначено для зберігання таблиці " "динамічних символів\n" -#: src/elflint.c:2293 +#: src/elflint.c:2297 #, c-format msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n" msgstr "" "розділ [%2d] «%s»: некоректний індекс розділу таблиці символів sh_link " "[%2d]\n" -#: src/elflint.c:2301 +#: src/elflint.c:2305 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" msgstr "розділ [%2d] «%s»: розмірність запису таблиці хешів є некоректною\n" -#: src/elflint.c:2306 +#: src/elflint.c:2310 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" msgstr "розділ [%2d] «%s»: не позначено для пересування\n" -#: src/elflint.c:2311 +#: src/elflint.c:2315 #, c-format msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " @@ -2243,27 +2282,27 @@ msgstr "" "розділ [%2d] «%s»: у таблиці хешів виявлено незвичайне розташування " "початкових адміністративних записів\n" -#: src/elflint.c:2360 +#: src/elflint.c:2364 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" msgstr "sh_link у розділах хешів [%2zu] «%s» і [%2zu] «%s» не збігаються\n" -#: src/elflint.c:2384 src/elflint.c:2449 src/elflint.c:2484 +#: src/elflint.c:2388 src/elflint.c:2453 src/elflint.c:2488 #, c-format msgid "hash section [%2zu] '%s' does not contain enough data\n" msgstr "розділ хешу [%2zu] «%s» містить недостатньо даних\n" -#: src/elflint.c:2405 +#: src/elflint.c:2409 #, c-format msgid "hash section [%2zu] '%s' has zero bit mask words\n" msgstr "розділ хешу [%2zu] «%s» містить нульові слова бітової маски\n" -#: src/elflint.c:2416 src/elflint.c:2460 src/elflint.c:2497 +#: src/elflint.c:2420 src/elflint.c:2464 src/elflint.c:2501 #, c-format msgid "hash section [%2zu] '%s' uses too much data\n" msgstr "розділ хешу [%2zu] «%s» використовує надто багато даних\n" -#: src/elflint.c:2431 +#: src/elflint.c:2435 #, c-format msgid "" "hash section [%2zu] '%s' invalid symbol index % (max_nsyms: " @@ -2272,17 +2311,17 @@ msgstr "" "розділ хешу [%2zu] «%s» некоректний індекс символу % (макс. к-ть " "символів: %, кількість записів: %\n" -#: src/elflint.c:2518 +#: src/elflint.c:2522 #, c-format msgid "hash section [%2zu] '%s' invalid sh_entsize\n" msgstr "розділ хешу [%2zu] «%s» некоректне значення sh_entsize\n" -#: src/elflint.c:2528 src/elflint.c:2532 +#: src/elflint.c:2532 src/elflint.c:2536 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" msgstr "розділ [%2zu] «%s»: посилання на індекс символів 0\n" -#: src/elflint.c:2539 +#: src/elflint.c:2543 #, c-format msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " @@ -2291,7 +2330,7 @@ msgstr "" "виявлено посилання на символ %d у новій таблиці хешів у [%2zu] «%s», але " "його немає у старій таблиці хешів у [%2zu] «%s»\n" -#: src/elflint.c:2551 +#: src/elflint.c:2555 #, c-format msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " @@ -2300,12 +2339,12 @@ msgstr "" "виявлено посилання на символ %d у старій таблиці хешів у [%2zu] «%s», але " "його немає у новій таблиці хешів у [%2zu] «%s»\n" -#: src/elflint.c:2567 +#: src/elflint.c:2571 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" msgstr "розділ [%2d] «%s»: ненульове значення sh_%s для розділу NULL\n" -#: src/elflint.c:2587 +#: src/elflint.c:2591 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" @@ -2313,95 +2352,95 @@ msgstr "" "розділ [%2d] «%s»: групи розділів передбачено лише для придатних до " "пересування об’єктних файлах\n" -#: src/elflint.c:2598 +#: src/elflint.c:2602 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" msgstr "розділ [%2d] «%s»: не вдалося отримати таблицю символів: %s\n" -#: src/elflint.c:2603 +#: src/elflint.c:2607 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" "розділ [%2d] «%s»: посилання на розділ у sh_link не має таблиці символів\n" -#: src/elflint.c:2609 +#: src/elflint.c:2613 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" msgstr "розділ [%2d] «%s»: некоректний індекс символу у sh_info\n" -#: src/elflint.c:2614 +#: src/elflint.c:2618 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" msgstr "розділ [%2d] «%s»: sh_flags не є нульовим\n" -#: src/elflint.c:2621 +#: src/elflint.c:2625 #, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" msgstr "розділ [%2d] «%s»: не вдалося отримати символ для підпису\n" -#: src/elflint.c:2625 +#: src/elflint.c:2629 #, c-format msgid "section [%2d] '%s': cannot get symbol name for signature\n" msgstr "розділ [%2d] «%s»: не вдалося отримати назву символу для підпису\n" -#: src/elflint.c:2630 +#: src/elflint.c:2634 #, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" msgstr "розділ [%2d] «%s»: символ підпису не може бути порожнім рядком\n" -#: src/elflint.c:2636 +#: src/elflint.c:2640 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" msgstr "розділ [%2d] «%s»: для sh_flags встановлено помилкове значення\n" -#: src/elflint.c:2642 +#: src/elflint.c:2646 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" msgstr "розділ [%2d] «%s»: не вдалося отримати дані: %s\n" -#: src/elflint.c:2651 +#: src/elflint.c:2655 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "розділ [%2d] «%s»: розмір розділу не є кратним до sizeof(Elf32_Word)\n" -#: src/elflint.c:2656 +#: src/elflint.c:2660 #, c-format msgid "section [%2d] '%s': section group without flags word\n" msgstr "розділ [%2d] «%s»: група розділів без значення типу word прапорців\n" -#: src/elflint.c:2662 +#: src/elflint.c:2666 #, c-format msgid "section [%2d] '%s': section group without member\n" msgstr "розділ [%2d] «%s»: група розділів без елементів\n" -#: src/elflint.c:2666 +#: src/elflint.c:2670 #, c-format msgid "section [%2d] '%s': section group with only one member\n" msgstr "розділ [%2d] «%s»: група розділів, що містить лише один елемент\n" -#: src/elflint.c:2677 +#: src/elflint.c:2681 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" msgstr "розділ [%2d] «%s»: невідомі прапорці групи розділів\n" -#: src/elflint.c:2689 +#: src/elflint.c:2693 #, c-format msgid "section [%2d] '%s': section index %zu out of range\n" msgstr "розділ [%2d] «%s»: індекс розділу %zu поза межами діапазону\n" -#: src/elflint.c:2698 +#: src/elflint.c:2702 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" "розділ [%2d] «%s»: не вдалося отримати заголовок розділу для елемента %zu: " "%s\n" -#: src/elflint.c:2705 +#: src/elflint.c:2709 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" msgstr "розділ [%2d] «%s»: група розділів містить іншу групу [%2d] «%s»\n" -#: src/elflint.c:2711 +#: src/elflint.c:2715 #, c-format msgid "" "section [%2d] '%s': element %zu references section [%2d] '%s' without " @@ -2410,12 +2449,12 @@ msgstr "" "розділ [%2d] «%s»: елемент %zu посилається на розділ [%2d] «%s» без " "встановленого прапорця SHF_GROUP\n" -#: src/elflint.c:2718 +#: src/elflint.c:2722 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" msgstr "розділ [%2d] «%s» міститься у більше ніж одній групі розділів\n" -#: src/elflint.c:2907 +#: src/elflint.c:2912 #, c-format msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " @@ -2424,7 +2463,7 @@ msgstr "" "розділ [%2d] «%s» посилається у sh_link на розділ [%2d] «%s», який не має " "динамічної таблиці символів\n" -#: src/elflint.c:2919 +#: src/elflint.c:2924 #, c-format msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] " @@ -2433,28 +2472,28 @@ msgstr "" "кількість записів у розділі [%2d] «%s» відрізняється від кількості у таблиці " "символів [%2d] «%s»\n" -#: src/elflint.c:2935 +#: src/elflint.c:2940 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" msgstr "розділ [%2d] «%s»: символ %d: не вдалося прочитати дані щодо версії\n" -#: src/elflint.c:2951 +#: src/elflint.c:2956 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" msgstr "" "розділ [%2d] «%s»: символ %d: локальний символ у загальному контексті\n" -#: src/elflint.c:2959 +#: src/elflint.c:2964 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" msgstr "розділ [%2d] «%s»: символ %d: локальний символ з версією\n" -#: src/elflint.c:2973 +#: src/elflint.c:2978 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" msgstr "розділ [%2d] «%s»: символ %d: некоректний індекс версії %d\n" -#: src/elflint.c:2978 +#: src/elflint.c:2983 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" @@ -2462,7 +2501,7 @@ msgstr "" "розділ [%2d] «%s»: символ %d: індекси версії %d призначено до визначеної " "версії\n" -#: src/elflint.c:2988 +#: src/elflint.c:2993 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" @@ -2470,45 +2509,45 @@ msgstr "" "розділ [%2d] «%s»: символ %d: індекс версії %d призначено для версії, на яку " "надійшов запит\n" -#: src/elflint.c:3041 +#: src/elflint.c:3046 #, c-format msgid "more than one version reference section present\n" msgstr "виявлено більше за один розділ посилань на версії\n" -#: src/elflint.c:3049 src/elflint.c:3196 +#: src/elflint.c:3054 src/elflint.c:3201 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" msgstr "розділ [%2d] «%s»: sh_link не посилається на таблицю рядків\n" -#: src/elflint.c:3074 src/elflint.c:3250 +#: src/elflint.c:3079 src/elflint.c:3255 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" msgstr "розділ [%2d] «%s»: запис %d має помилкову версію %d\n" -#: src/elflint.c:3081 src/elflint.c:3257 +#: src/elflint.c:3086 src/elflint.c:3262 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" msgstr "" "розділ [%2d] «%s»: запис %d містить помилкове зміщення у допоміжних даних\n" -#: src/elflint.c:3091 +#: src/elflint.c:3096 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" msgstr "розділ [%2d] «%s»: запис %d містить некоректне посилання на файл\n" -#: src/elflint.c:3099 +#: src/elflint.c:3104 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" msgstr "розділ [%2d] «%s»: запис %d посилається на невідому залежність\n" -#: src/elflint.c:3111 +#: src/elflint.c:3116 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" msgstr "" "розділ [%2d] «%s»: допоміжний запис %d запису %d позначено невідомим " "прапорцем\n" -#: src/elflint.c:3119 +#: src/elflint.c:3124 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " @@ -2517,7 +2556,7 @@ msgstr "" "розділ [%2d] «%s»: допоміжний запис %d запису %d містить некоректне " "посилання на назву\n" -#: src/elflint.c:3128 +#: src/elflint.c:3133 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: " @@ -2526,7 +2565,7 @@ msgstr "" "розділ [%2d] «%s»: допоміжний запис %d запису %d має помилкове значення " "хешу: %#x, мало бути %#x\n" -#: src/elflint.c:3137 +#: src/elflint.c:3142 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " @@ -2535,7 +2574,7 @@ msgstr "" "розділ [%2d] «%s»: допоміжний запис %d запису %d містить дублікати назви " "версії «%s»\n" -#: src/elflint.c:3148 +#: src/elflint.c:3153 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" @@ -2543,13 +2582,13 @@ msgstr "" "розділ [%2d] «%s»: допоміжний запис %d запису %d має помилкове наступне " "поле\n" -#: src/elflint.c:3165 src/elflint.c:3341 +#: src/elflint.c:3170 src/elflint.c:3346 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" msgstr "" "розділ [%2d] «%s»: запис %d має некоректне зміщення щодо наступного запису\n" -#: src/elflint.c:3173 src/elflint.c:3349 +#: src/elflint.c:3178 src/elflint.c:3354 #, c-format msgid "" "section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says " @@ -2558,44 +2597,44 @@ msgstr "" "розділ [%2d] «%s»: запис %d має нульове зміщення щодо наступного запису, але " "за sh_info можна зрозуміти, що записів більше\n" -#: src/elflint.c:3188 +#: src/elflint.c:3193 #, c-format msgid "more than one version definition section present\n" msgstr "виявлено більше за один розділ визначення версій\n" -#: src/elflint.c:3235 +#: src/elflint.c:3240 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" msgstr "розділ [%2d] «%s»: повторне визначення BASE\n" -#: src/elflint.c:3239 +#: src/elflint.c:3244 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" msgstr "" "розділ [%2d] «%s»: визначення BASE повинно мати індекс VER_NDX_GLOBAL\n" -#: src/elflint.c:3245 +#: src/elflint.c:3250 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" msgstr "розділ [%2d] «%s»: невідомий прапорець запису %d\n" -#: src/elflint.c:3272 +#: src/elflint.c:3277 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" msgstr "розділ [%2d] «%s»: запис %d містить некоректне посилання на назву\n" -#: src/elflint.c:3279 +#: src/elflint.c:3284 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" msgstr "" "розділ [%2d] «%s»: запис %d має помилкове значення хешу: %#x, мало бути %#x\n" -#: src/elflint.c:3287 +#: src/elflint.c:3292 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" msgstr "розділ [%2d] «%s»: запис %d містить дублікати назви версії «%s»\n" -#: src/elflint.c:3307 +#: src/elflint.c:3312 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" @@ -2603,53 +2642,53 @@ msgstr "" "розділ [%2d] «%s»: запис %d містить некоректне посилання на назву у " "допоміжних даних\n" -#: src/elflint.c:3324 +#: src/elflint.c:3329 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" msgstr "" "розділ [%2d] «%s»: у допоміжних даних запису %d міститься помилкове поле " "наступного запису\n" -#: src/elflint.c:3357 +#: src/elflint.c:3362 #, c-format msgid "section [%2d] '%s': no BASE definition\n" msgstr "розділ [%2d] «%s»: немає визначення BASE\n" -#: src/elflint.c:3373 +#: src/elflint.c:3378 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" msgstr "розділ [%2d] «%s»: невідома основна версія «%s»\n" -#: src/elflint.c:3386 +#: src/elflint.c:3391 #, c-format msgid "section [%2d] '%s': empty object attributes section\n" msgstr "розділ [%2d] «%s»: порожній розділ атрибутів об’єкта\n" -#: src/elflint.c:3407 +#: src/elflint.c:3412 #, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" msgstr "розділ [%2d] «%s»: не вдалося визначити формат атрибутів\n" -#: src/elflint.c:3423 +#: src/elflint.c:3428 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" msgstr "" "розділ [%2d] «%s»: зміщення %zu: поле нульового розміру у розділі атрибутів\n" -#: src/elflint.c:3432 +#: src/elflint.c:3437 #, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" msgstr "" "розділ [%2d] «%s»: зміщення %zu: некоректна довжина у розділі атрибутів\n" -#: src/elflint.c:3444 +#: src/elflint.c:3449 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" msgstr "" "розділ [%2d] «%s»: зміщення %zu: незавершений рядок назви постачальника\n" -#: src/elflint.c:3461 +#: src/elflint.c:3466 #, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" @@ -2657,12 +2696,12 @@ msgstr "" "розділ [%2d] «%s»: зміщення %zu: незавершене поле ULEB128 у тезі підрозділу " "атрибутів\n" -#: src/elflint.c:3470 +#: src/elflint.c:3475 #, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" msgstr "розділ [%2d] «%s»: зміщення %zu: обрізаний розділ атрибутів\n" -#: src/elflint.c:3479 +#: src/elflint.c:3484 #, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" @@ -2670,14 +2709,14 @@ msgstr "" "розділ [%2d] «%s»: зміщення %zu: поле нульового розміру у підрозділі " "атрибутів\n" -#: src/elflint.c:3494 +#: src/elflint.c:3499 #, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" msgstr "" "розділ [%2d] «%s»: зміщення %zu: некоректна довжина у підрозділі атрибутів\n" -#: src/elflint.c:3505 +#: src/elflint.c:3510 #, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" @@ -2685,35 +2724,35 @@ msgstr "" "розділ [%2d] «%s»: зміщення %zu: підрозділ атрибутів містить неочікуваний " "теґ %u\n" -#: src/elflint.c:3523 +#: src/elflint.c:3528 #, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" msgstr "" "розділ [%2d] «%s»: зміщення %zu: незавершене поле ULEB128 у тезі атрибуту\n" -#: src/elflint.c:3534 +#: src/elflint.c:3539 #, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" msgstr "розділ [%2d] «%s»: зміщення %zu: незавершений рядок у атрибуті\n" -#: src/elflint.c:3547 +#: src/elflint.c:3552 #, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" msgstr "розділ [%2d] «%s»: зміщення %zu: незавершений теґ атрибуту %u\n" -#: src/elflint.c:3551 +#: src/elflint.c:3556 #, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %\n" msgstr "" "розділ [%2d] «%s»: зміщення %zu: невідоме значення %s атрибуту %\n" -#: src/elflint.c:3561 +#: src/elflint.c:3566 #, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" msgstr "розділ [%2d] «%s»: зміщення %zu: невідомий постачальник «%s»\n" -#: src/elflint.c:3567 +#: src/elflint.c:3572 #, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" @@ -2721,47 +2760,47 @@ msgstr "" "розділ [%2d] «%s»: зміщення %zu: зайві байти після останнього розділу " "атрибутів\n" -#: src/elflint.c:3656 +#: src/elflint.c:3661 #, c-format msgid "cannot get section header of zeroth section\n" msgstr "не вдалося отримати заголовок нульового розділу\n" -#: src/elflint.c:3660 +#: src/elflint.c:3665 #, c-format msgid "zeroth section has nonzero name\n" msgstr "нульовий розділ має ненульову назву\n" -#: src/elflint.c:3662 +#: src/elflint.c:3667 #, c-format msgid "zeroth section has nonzero type\n" msgstr "нульовий розділ має ненульовий тип\n" -#: src/elflint.c:3664 +#: src/elflint.c:3669 #, c-format msgid "zeroth section has nonzero flags\n" msgstr "нульовий розділ має ненульові прапорці\n" -#: src/elflint.c:3666 +#: src/elflint.c:3671 #, c-format msgid "zeroth section has nonzero address\n" msgstr "нульовий розділ має ненульову адресу\n" -#: src/elflint.c:3668 +#: src/elflint.c:3673 #, c-format msgid "zeroth section has nonzero offset\n" msgstr "нульовий розділ має ненульове зміщення\n" -#: src/elflint.c:3670 +#: src/elflint.c:3675 #, c-format msgid "zeroth section has nonzero align value\n" msgstr "нульовий розділ має ненульове значення вирівнювання\n" -#: src/elflint.c:3672 +#: src/elflint.c:3677 #, c-format msgid "zeroth section has nonzero entry size value\n" msgstr "нульовий розділ має ненульове значення розміру запису\n" -#: src/elflint.c:3675 +#: src/elflint.c:3680 #, c-format msgid "" "zeroth section has nonzero size value while ELF header has nonzero shnum " @@ -2770,7 +2809,7 @@ msgstr "" "нульовий розділ має ненульове значення розміру, хоча заголовок ELF ман " "ненульове значення shnum\n" -#: src/elflint.c:3679 +#: src/elflint.c:3684 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2779,7 +2818,7 @@ msgstr "" "нульовий розділ має ненульове значення компонування, хоча у заголовку ELF " "немає сигналу переповнення у shstrndx\n" -#: src/elflint.c:3683 +#: src/elflint.c:3688 #, c-format msgid "" "zeroth section has nonzero link value while ELF header does not signal " @@ -2788,28 +2827,28 @@ msgstr "" "нульовий розділ має ненульове значення компонування, хоча у заголовку ELF " "немає сигналу переповнення у phnum\n" -#: src/elflint.c:3700 +#: src/elflint.c:3706 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" msgstr "не вдалося отримати заголовок розділу [%2zu] «%s»: %s\n" -#: src/elflint.c:3709 +#: src/elflint.c:3715 #, c-format msgid "section [%2zu]: invalid name\n" msgstr "розділ [%2zu]: некоректна назва\n" -#: src/elflint.c:3736 +#: src/elflint.c:3742 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" msgstr "" "розділ [%2d] «%s» належить до помилкового типу: мав бути %s, маємо %s\n" -#: src/elflint.c:3752 +#: src/elflint.c:3760 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" msgstr "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, маємо %s\n" -#: src/elflint.c:3769 +#: src/elflint.c:3778 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" @@ -2817,12 +2856,12 @@ msgstr "" "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, можливо, %s, але " "маємо %s\n" -#: src/elflint.c:3787 +#: src/elflint.c:3796 #, c-format msgid "section [%2zu] '%s' present in object file\n" msgstr "у об’єктному файлі виявлено розділ [%2zu] «%s»\n" -#: src/elflint.c:3793 src/elflint.c:3825 +#: src/elflint.c:3802 src/elflint.c:3834 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" @@ -2830,7 +2869,7 @@ msgstr "" "у розділ [%2zu] «%s» встановлено прапорець SHF_ALLOC, але немає придатного " "до завантаження сегмента\n" -#: src/elflint.c:3798 src/elflint.c:3830 +#: src/elflint.c:3807 src/elflint.c:3839 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " @@ -2839,7 +2878,7 @@ msgstr "" "у розділі [%2zu] «%s» не встановлено прапорець SHF_ALLOC, але є придатні до " "завантаження сегменти\n" -#: src/elflint.c:3806 +#: src/elflint.c:3815 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" @@ -2847,22 +2886,22 @@ msgstr "" "розділ [%2zu] «%s» є таблицею-покажчиком розділу розширень у файлі, який не " "є об’єктним\n" -#: src/elflint.c:3849 +#: src/elflint.c:3858 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" msgstr "розділ [%2zu] «%s»: розмір не є кратним до розміру запису\n" -#: src/elflint.c:3854 +#: src/elflint.c:3863 #, c-format msgid "cannot get section header\n" msgstr "не вдалося отримати заголовок розділу\n" -#: src/elflint.c:3864 +#: src/elflint.c:3873 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n" -#: src/elflint.c:3878 +#: src/elflint.c:3888 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#\n" @@ -2870,57 +2909,74 @@ msgstr "" "розділ [%2zu] «%s» містить некоректні специфічні для процесора прапорці " "%#\n" -#: src/elflint.c:3885 +#: src/elflint.c:3895 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#\n" msgstr "розділ [%2zu] «%s» містить невідомі прапорці %#\n" -#: src/elflint.c:3893 +#: src/elflint.c:3903 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" "розділ [%2zu] «%s»: адреса розділів локальних даних потоків не є нульовою\n" -#: src/elflint.c:3901 +#: src/elflint.c:3913 +#, fuzzy, c-format +msgid "section [%2zu] '%s': allocated section cannot be compressed\n" +msgstr "" +"розділ [%2zu] «%s»: адреса розділів локальних даних потоків не є нульовою\n" + +#: src/elflint.c:3918 +#, fuzzy, c-format +msgid "section [%2zu] '%s': nobits section cannot be compressed\n" +msgstr "розділ [%2d] «%s»: не виявлено розділу хешів\n" + +#: src/elflint.c:3924 +#, fuzzy, c-format +msgid "" +"section [%2zu] '%s': compressed section with no compression header: %s\n" +msgstr "розділ [%2d] «%s»: група розділів, що містить лише один елемент\n" + +#: src/elflint.c:3930 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" msgstr "" "розділ [%2zu] «%s»: некоректне посилання на розділ у значенні компонування\n" -#: src/elflint.c:3906 +#: src/elflint.c:3935 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" "розділ [%2zu] «%s»: некоректне посилання на розділ у значенні відомостей\n" -#: src/elflint.c:3913 +#: src/elflint.c:3942 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" msgstr "розділ [%2zu] «%s»: встановлено прапорець strings без прапорця merge\n" -#: src/elflint.c:3918 +#: src/elflint.c:3947 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" "розділ [%2zu] «%s»: встановлено прапорець merge, але розмір запису є " "нульовим\n" -#: src/elflint.c:3936 +#: src/elflint.c:3965 #, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" msgstr "розділ [%2zu] «%s» має неочікуваний тип %d для виконуваного розділу\n" -#: src/elflint.c:3945 +#: src/elflint.c:3974 #, fuzzy, c-format msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до запису\n" -#: src/elflint.c:3952 +#: src/elflint.c:3981 #, c-format msgid "section [%2zu] '%s' is both executable and writable\n" msgstr "розділ [%2zu] «%s» є одночасно виконуваним і придатним до запису\n" -#: src/elflint.c:3982 +#: src/elflint.c:4012 #, c-format msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry " @@ -2929,7 +2985,7 @@ msgstr "" "розділ [%2zu] «%s» не повністю міститься у сегменті запису заголовка " "програми %d\n" -#: src/elflint.c:3992 +#: src/elflint.c:4022 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -2938,7 +2994,7 @@ msgstr "" "розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з " "файла у сегментів запису заголовка програми %d\n" -#: src/elflint.c:4018 +#: src/elflint.c:4048 #, c-format msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " @@ -2947,7 +3003,7 @@ msgstr "" "розділ [%2zu] «%s» належить до типу NOBITS, але його читання виконується з " "файла у сегментів запису заголовка програми %d, а вміст файла є ненульовим\n" -#: src/elflint.c:4029 +#: src/elflint.c:4059 #, c-format msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " @@ -2956,19 +3012,19 @@ msgstr "" "розділ [%2zu] «%s» не належить до типу NOBITS, але його читання не " "виконується з файла у сегментів запису заголовка програми %d\n" -#: src/elflint.c:4040 +#: src/elflint.c:4070 #, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "розділ [%2zu] «%s» є виконуваним у невиконуваному сегменті %d\n" -#: src/elflint.c:4050 +#: src/elflint.c:4080 #, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" msgstr "" "розділ [%2zu] «%s» є придатним до запису у непридатному до запису сегменті " "%d\n" -#: src/elflint.c:4060 +#: src/elflint.c:4090 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" @@ -2976,7 +3032,7 @@ msgstr "" "розділ [%2zu] «%s»: встановлено прапорець alloc, але розділ не перебуває у " "жодному завантаженому сегменті\n" -#: src/elflint.c:4066 +#: src/elflint.c:4096 #, c-format msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " @@ -2985,7 +3041,7 @@ msgstr "" "розділ [%2zu] «%s»: заголовок ELF повідомляє про те, що це таблиця рядків " "заголовка розділу, але ця таблиця не належить до типу SHT_TYPE\n" -#: src/elflint.c:4074 +#: src/elflint.c:4104 #, c-format msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" @@ -2993,17 +3049,17 @@ msgstr "" "розділ [%2zu] «%s»: придатні до пересування файли не можуть містити " "динамічних таблиць символів\n" -#: src/elflint.c:4125 +#: src/elflint.c:4155 #, c-format msgid "more than one version symbol table present\n" msgstr "виявлено більше за одну таблицю символів версій\n" -#: src/elflint.c:4148 +#: src/elflint.c:4178 #, c-format msgid "INTERP program header entry but no .interp section\n" msgstr "існує запис заголовка програми INTERP, але не розділ .interp\n" -#: src/elflint.c:4159 +#: src/elflint.c:4189 #, c-format msgid "" "loadable segment [%u] is executable but contains no executable sections\n" @@ -3011,14 +3067,14 @@ msgstr "" "придатний до завантаження сегмент [%u] є виконуваним, але не містить " "виконуваних розділів\n" -#: src/elflint.c:4165 +#: src/elflint.c:4195 #, c-format msgid "loadable segment [%u] is writable but contains no writable sections\n" msgstr "" "придатний до завантаження розділ [%u] є придатним до запису, але не містить " "придатних до запису розділів\n" -#: src/elflint.c:4176 +#: src/elflint.c:4206 #, c-format msgid "" "no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section " @@ -3027,24 +3083,24 @@ msgstr "" "немає розділу .gnu.versym, хоча існує розділ .gnu.versym_d або .gnu." "versym_r\n" -#: src/elflint.c:4189 +#: src/elflint.c:4219 #, c-format msgid "duplicate version index %d\n" msgstr "дублікат індексу версії %d\n" -#: src/elflint.c:4203 +#: src/elflint.c:4233 #, c-format msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n" msgstr "" "існує розділ .gnu.versym, але немає розділу .gnu.versym_d або .gnu.versym_r\n" -#: src/elflint.c:4252 +#: src/elflint.c:4282 #, c-format msgid "phdr[%d]: unknown core file note type % at offset %\n" msgstr "" "phdr[%d]: невідомий тип нотатки файла core % за зміщенням %\n" -#: src/elflint.c:4256 +#: src/elflint.c:4286 #, c-format msgid "" "section [%2d] '%s': unknown core file note type % at offset %zu\n" @@ -3052,13 +3108,13 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки файла core % за зміщенням " "%zu\n" -#: src/elflint.c:4279 +#: src/elflint.c:4309 #, c-format msgid "phdr[%d]: unknown object file note type % at offset %zu\n" msgstr "" "phdr[%d]: невідомий тип нотатки об’єктного файла % за зміщенням %zu\n" -#: src/elflint.c:4283 +#: src/elflint.c:4313 #, c-format msgid "" "section [%2d] '%s': unknown object file note type % at offset %zu\n" @@ -3066,39 +3122,39 @@ msgstr "" "розділ [%2d] «%s»: невідомий тип нотатки об’єктного файла % за " "зміщенням %zu\n" -#: src/elflint.c:4300 +#: src/elflint.c:4330 #, c-format msgid "phdr[%d]: no note entries defined for the type of file\n" msgstr "phdr[%d]: для цього типу файлів не визначено записів нотаток\n" -#: src/elflint.c:4319 +#: src/elflint.c:4349 #, c-format msgid "phdr[%d]: cannot get content of note section: %s\n" msgstr "phdr[%d]: не вдалося отримати вміст розділу нотаток: %s\n" -#: src/elflint.c:4322 +#: src/elflint.c:4352 #, c-format msgid "phdr[%d]: extra % bytes after last note\n" msgstr "phdr[%d]: зайві % байтів після останнього запису нотатки\n" -#: src/elflint.c:4343 +#: src/elflint.c:4373 #, c-format msgid "section [%2d] '%s': no note entries defined for the type of file\n" msgstr "" "розділ [%2d] «%s»: для цього типу файлів не визначено записів нотаток\n" -#: src/elflint.c:4350 +#: src/elflint.c:4380 #, c-format msgid "section [%2d] '%s': cannot get content of note section\n" msgstr "розділ [%2d] «%s»: не вдалося отримати вміст розділу нотаток\n" -#: src/elflint.c:4353 +#: src/elflint.c:4383 #, c-format msgid "section [%2d] '%s': extra % bytes after last note\n" msgstr "" "розділ [%2d] «%s»: додаткові % байтів після останньої нотатки\n" -#: src/elflint.c:4371 +#: src/elflint.c:4401 #, c-format msgid "" "only executables, shared objects, and core files can have program headers\n" @@ -3106,141 +3162,141 @@ msgstr "" "заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів " "спільного використання або файлів core\n" -#: src/elflint.c:4386 +#: src/elflint.c:4416 #, c-format msgid "cannot get program header entry %d: %s\n" msgstr "не вдалося отримати запис заголовка програми %d: %s\n" -#: src/elflint.c:4395 +#: src/elflint.c:4425 #, c-format msgid "program header entry %d: unknown program header entry type %#\n" msgstr "" "запис заголовка програми %d: невідомий тип запису заголовка програми " "%#\n" -#: src/elflint.c:4406 +#: src/elflint.c:4436 #, c-format msgid "more than one INTERP entry in program header\n" msgstr "більше за один запис INTERP у заголовку програми\n" -#: src/elflint.c:4414 +#: src/elflint.c:4444 #, c-format msgid "more than one TLS entry in program header\n" msgstr "більше за один запис TLS у заголовку програми\n" -#: src/elflint.c:4421 +#: src/elflint.c:4451 #, c-format msgid "static executable cannot have dynamic sections\n" msgstr "у статичному виконуваному файлі не може бути динамічних розділів\n" -#: src/elflint.c:4435 +#: src/elflint.c:4465 #, c-format msgid "dynamic section reference in program header has wrong offset\n" msgstr "" "посилання на динамічний розділ у заголовку програми має помилкове зміщення\n" -#: src/elflint.c:4438 +#: src/elflint.c:4468 #, c-format msgid "dynamic section size mismatch in program and section header\n" msgstr "" "розміри динамічного розділу у заголовку програми та у заголовку розділу не " "збігаються\n" -#: src/elflint.c:4448 +#: src/elflint.c:4478 #, c-format msgid "more than one GNU_RELRO entry in program header\n" msgstr "більше за один запис GNU_RELRO у заголовку програми\n" -#: src/elflint.c:4469 +#: src/elflint.c:4499 #, c-format msgid "loadable segment GNU_RELRO applies to is not writable\n" msgstr "" "придатний до завантаження сегмент, до якого звертається GNU_RELRO, " "непридатний до запису\n" -#: src/elflint.c:4480 +#: src/elflint.c:4510 #, c-format msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n" msgstr "" "прапорці придатного до завантаження сегмента [%u] не відповідають прапорцям " "GNU_RELRO [%u]\n" -#: src/elflint.c:4487 +#: src/elflint.c:4517 #, c-format msgid "" "GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n" msgstr "" -#: src/elflint.c:4496 src/elflint.c:4519 +#: src/elflint.c:4526 src/elflint.c:4549 #, c-format msgid "%s segment not contained in a loaded segment\n" msgstr "сегмент %s не міститься у завантаженому сегменті\n" -#: src/elflint.c:4525 +#: src/elflint.c:4555 #, c-format msgid "program header offset in ELF header and PHDR entry do not match" msgstr "зміщення заголовка програми у заголовку ELF і запис PHDR не збігаються" -#: src/elflint.c:4550 +#: src/elflint.c:4580 #, c-format msgid "call frame search table reference in program header has wrong offset\n" msgstr "" "посилання на таблицю вікон викликів у заголовку програми має помилкове " "зміщення\n" -#: src/elflint.c:4553 +#: src/elflint.c:4583 #, c-format msgid "call frame search table size mismatch in program and section header\n" msgstr "" "розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку " "розділу не збігаються\n" -#: src/elflint.c:4566 +#: src/elflint.c:4596 #, c-format msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n" msgstr "існує PT_GNU_EH_FRAME, хоча немає розділу .eh_frame_hdr\n" -#: src/elflint.c:4574 +#: src/elflint.c:4604 #, c-format msgid "call frame search table must be allocated\n" msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’яті\n" -#: src/elflint.c:4577 +#: src/elflint.c:4607 #, c-format msgid "section [%2zu] '%s' must be allocated\n" msgstr "розділ [%2zu] «%s» має бути розміщено у пам’яті\n" -#: src/elflint.c:4581 +#: src/elflint.c:4611 #, c-format msgid "call frame search table must not be writable\n" msgstr "таблиця пошуку вікон викликів не повинна бути придатною до запису\n" -#: src/elflint.c:4584 +#: src/elflint.c:4614 #, c-format msgid "section [%2zu] '%s' must not be writable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до запису\n" -#: src/elflint.c:4589 +#: src/elflint.c:4619 #, c-format msgid "call frame search table must not be executable\n" msgstr "таблиця пошуку вікон викликів не повинна бути придатною до виконання\n" -#: src/elflint.c:4592 +#: src/elflint.c:4622 #, c-format msgid "section [%2zu] '%s' must not be executable\n" msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконання\n" -#: src/elflint.c:4603 +#: src/elflint.c:4633 #, c-format msgid "program header entry %d: file size greater than memory size\n" msgstr "запис заголовка програми %d: розмір файла перевищує об’єм пам’яті\n" -#: src/elflint.c:4610 +#: src/elflint.c:4640 #, c-format msgid "program header entry %d: alignment not a power of 2\n" msgstr "запис заголовка програми %d: значення вирівнювання не є степенем 2\n" -#: src/elflint.c:4613 +#: src/elflint.c:4643 #, c-format msgid "" "program header entry %d: file offset and virtual address not module of " @@ -3249,7 +3305,7 @@ msgstr "" "запис заголовка програми %d: зміщення у файлі і віртуальна адреса не " "співвідносяться з вирівнюванням\n" -#: src/elflint.c:4626 +#: src/elflint.c:4656 #, c-format msgid "" "executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME " @@ -3258,12 +3314,12 @@ msgstr "" "виконуваний модуль/DSO з розділом .eh_frame_hdr не містить запису заголовка " "програми PT_GNU_EH_FRAME" -#: src/elflint.c:4660 +#: src/elflint.c:4690 #, c-format msgid "cannot read ELF header: %s\n" msgstr "не вдалося прочитати заголовок ELF: %s\n" -#: src/elflint.c:4686 +#: src/elflint.c:4716 #, c-format msgid "text relocation flag set but not needed\n" msgstr "" @@ -3285,7 +3341,7 @@ msgstr "Використовувати ШЛЯХ як кореневий ката msgid "Locate source of text relocations in FILEs (a.out by default)." msgstr "Шукає джерело пересуваного тексту у ФАЙЛАХ (типово, a.out)." -#: src/findtextrel.c:76 src/nm.c:107 src/objdump.c:71 src/size.c:83 +#: src/findtextrel.c:76 src/nm.c:108 src/objdump.c:71 src/size.c:83 #: src/strings.c:88 src/strip.c:95 msgid "[FILE...]" msgstr "[ФАЙЛ...]" @@ -3794,8 +3850,8 @@ msgstr "Попередження: тип «%s» змінився з %s у %s н msgid "Warning: size of `%s' changed from % in %s to % in %s" msgstr "Попередження: розмір «%s» змінено з % у %s на % у %s" -#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:527 -#: src/readelf.c:829 src/strip.c:589 +#: src/ldgeneric.c:651 src/ldgeneric.c:1112 src/readelf.c:536 src/readelf.c:852 +#: src/strip.c:589 #, c-format msgid "cannot determine number of sections: %s" msgstr "не вдалося визначити кількість розділів: %s" @@ -4037,7 +4093,7 @@ msgstr "внутрішня помилка: небезбітовий розділ msgid "cannot get header of 0th section: %s" msgstr "не вдалося отримати заголовок 0-го розділу: %s" -#: src/ldgeneric.c:6930 src/unstrip.c:1893 +#: src/ldgeneric.c:6930 src/unstrip.c:1929 #, c-format msgid "cannot update ELF header: %s" msgstr "не вдалося оновити заголовок ELF: %s" @@ -4107,43 +4163,43 @@ msgstr "символ «%s» оголошено локально і на зага msgid "default visibility set as local and global" msgstr "типову видимість визначено як локальну і загальну" -#: src/nm.c:65 src/strip.c:67 +#: src/nm.c:66 src/strip.c:67 msgid "Output selection:" msgstr "Вибір виводу:" -#: src/nm.c:66 +#: src/nm.c:67 msgid "Display debugger-only symbols" msgstr "Показувати лише діагностичні символи" -#: src/nm.c:67 +#: src/nm.c:68 msgid "Display only defined symbols" msgstr "Показувати лише визначені символи" -#: src/nm.c:70 +#: src/nm.c:71 msgid "Display dynamic symbols instead of normal symbols" msgstr "Показувати динамічні символи замість звичайних символів" -#: src/nm.c:71 +#: src/nm.c:72 msgid "Display only external symbols" msgstr "Показувати лише зовнішні символи" -#: src/nm.c:72 +#: src/nm.c:73 msgid "Display only undefined symbols" msgstr "Показувати лише невизначені символи" -#: src/nm.c:74 +#: src/nm.c:75 msgid "Include index for symbols from archive members" msgstr "Включити покажчик для символів з елементів архіву" -#: src/nm.c:76 src/size.c:57 +#: src/nm.c:77 src/size.c:57 msgid "Output format:" msgstr "Формат виводу:" -#: src/nm.c:78 +#: src/nm.c:79 msgid "Print name of the input file before every symbol" msgstr "Виводити перед кожним символом назву вхідного файла" -#: src/nm.c:81 +#: src/nm.c:82 msgid "" "Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The " "default is `sysv'" @@ -4151,71 +4207,71 @@ msgstr "" "Використовувати формат виводу ФОРМАТ. ФОРМАТом може бути «bsd», «sysv» або " "«posix». Типовим форматом є «sysv»" -#: src/nm.c:83 +#: src/nm.c:84 msgid "Same as --format=bsd" msgstr "Те саме, що і --format=bsd" -#: src/nm.c:84 +#: src/nm.c:85 msgid "Same as --format=posix" msgstr "Те саме, що і --format=posix" -#: src/nm.c:85 src/size.c:63 +#: src/nm.c:86 src/size.c:63 msgid "Use RADIX for printing symbol values" msgstr "Використовувати ОСНОВУ числення для виводу символьних значень" -#: src/nm.c:86 +#: src/nm.c:87 msgid "Mark special symbols" msgstr "Позначати спеціальні символи" -#: src/nm.c:88 +#: src/nm.c:89 msgid "Print size of defined symbols" msgstr "Вивести розмір визначених символів" -#: src/nm.c:90 src/size.c:71 src/strip.c:72 src/unstrip.c:72 +#: src/nm.c:91 src/size.c:71 src/strip.c:72 src/unstrip.c:72 msgid "Output options:" msgstr "Параметри виводу:" -#: src/nm.c:91 +#: src/nm.c:92 msgid "Sort symbols numerically by address" msgstr "Числове впорядкування символів за адресою" -#: src/nm.c:93 +#: src/nm.c:94 msgid "Do not sort the symbols" msgstr "Не впорядковувати символи" -#: src/nm.c:94 +#: src/nm.c:95 msgid "Reverse the sense of the sort" msgstr "Змінити порядок на протилежний" -#: src/nm.c:97 +#: src/nm.c:98 msgid "Decode low-level symbol names into source code names" msgstr "Визначати за низькорівневими назвами символів назви у початковому коді" -#: src/nm.c:104 +#: src/nm.c:105 msgid "List symbols from FILEs (a.out by default)." msgstr "Показати список символів з ФАЙЛів (типово з a.out)." -#: src/nm.c:115 src/objdump.c:79 +#: src/nm.c:116 src/objdump.c:79 msgid "Output formatting" msgstr "Форматування виводу" -#: src/nm.c:139 src/objdump.c:103 src/size.c:108 src/strip.c:127 +#: src/nm.c:140 src/objdump.c:103 src/size.c:108 src/strip.c:127 #, c-format msgid "%s: INTERNAL ERROR %d (%s): %s" msgstr "%s: ВНУТРІШНЯ ПОМИЛКА %d (%s): %s" -#: src/nm.c:394 src/nm.c:406 src/size.c:305 src/size.c:314 src/size.c:325 +#: src/nm.c:395 src/nm.c:407 src/size.c:305 src/size.c:314 src/size.c:325 #: src/strip.c:2280 #, c-format msgid "while closing '%s'" msgstr "під час закриття «%s»" -#: src/nm.c:416 src/objdump.c:292 src/strip.c:391 +#: src/nm.c:417 src/objdump.c:292 src/strip.c:391 #, c-format msgid "%s: File format not recognized" msgstr "%s: не вдалося розпізнати формат файла" -#: src/nm.c:456 +#: src/nm.c:457 msgid "" "\n" "Archive index:\n" @@ -4223,42 +4279,42 @@ msgstr "" "\n" "Покажчик архіву:\n" -#: src/nm.c:465 +#: src/nm.c:466 #, c-format msgid "invalid offset %zu for symbol %s" msgstr "некоректне зміщення %zu для символу %s" -#: src/nm.c:470 +#: src/nm.c:471 #, c-format msgid "%s in %s\n" msgstr "%s у %s\n" -#: src/nm.c:478 +#: src/nm.c:479 #, c-format msgid "cannot reset archive offset to beginning" msgstr "не вдалося відновити зміщення початку архіву" -#: src/nm.c:503 src/objdump.c:340 +#: src/nm.c:504 src/objdump.c:340 #, c-format msgid "%s%s%s: file format not recognized" msgstr "%s%s%s: не вдалося розпізнати формат файла" -#: src/nm.c:715 +#: src/nm.c:719 #, c-format msgid "cannot create search tree" msgstr "не вдалося створити дерево пошуку" -#: src/nm.c:754 src/nm.c:1160 src/objdump.c:789 src/readelf.c:536 -#: src/readelf.c:1085 src/readelf.c:1245 src/readelf.c:1393 src/readelf.c:1579 -#: src/readelf.c:1785 src/readelf.c:1975 src/readelf.c:2202 src/readelf.c:2460 -#: src/readelf.c:2536 src/readelf.c:2623 src/readelf.c:3203 src/readelf.c:3239 -#: src/readelf.c:3302 src/readelf.c:8212 src/readelf.c:9314 src/readelf.c:9461 -#: src/readelf.c:9529 src/size.c:413 src/size.c:482 src/strip.c:520 +#: src/nm.c:760 src/nm.c:1221 src/objdump.c:789 src/readelf.c:545 +#: src/readelf.c:1123 src/readelf.c:1323 src/readelf.c:1471 src/readelf.c:1667 +#: src/readelf.c:1873 src/readelf.c:2063 src/readelf.c:2300 src/readelf.c:2558 +#: src/readelf.c:2634 src/readelf.c:2721 src/readelf.c:3301 src/readelf.c:3347 +#: src/readelf.c:3410 src/readelf.c:8320 src/readelf.c:9420 src/readelf.c:9603 +#: src/readelf.c:9671 src/size.c:413 src/size.c:482 src/strip.c:520 #, c-format msgid "cannot get section header string table index" msgstr "не вдалося визначити індекс заголовка розділу у таблиці рядків" -#: src/nm.c:781 +#: src/nm.c:787 #, c-format msgid "" "\n" @@ -4271,7 +4327,7 @@ msgstr "" "Символи з %s:\n" "\n" -#: src/nm.c:784 +#: src/nm.c:790 #, c-format msgid "" "%*s%-*s %-*s Class Type %-*s %*s Section\n" @@ -4280,22 +4336,22 @@ msgstr "" "%*s%-*s %-*s Клас Тип %-*s %*s Розділ\n" "\n" -#: src/nm.c:1171 +#: src/nm.c:1232 #, c-format msgid "%s: entry size in section %zd `%s' is not what we expect" msgstr "%s: розмір запису у розділі %zd «%s» не є очікуваним" -#: src/nm.c:1176 +#: src/nm.c:1237 #, c-format msgid "%s: size of section %zd `%s' is not multiple of entry size" msgstr "%s: розмір розділу %zd «%s» не є кратним до розміру запису" -#: src/nm.c:1434 +#: src/nm.c:1537 #, c-format msgid "%s%s%s%s: Invalid operation" msgstr "%s%s%s%s: некоректна дія" -#: src/nm.c:1491 +#: src/nm.c:1594 #, c-format msgid "%s%s%s: no symbols" msgstr "%s%s%s: немає символів" @@ -4328,7 +4384,7 @@ msgstr "Показати інформацію лише з розділу НАЗ msgid "Show information from FILEs (a.out by default)." msgstr "Показати інформацію з ФАЙЛів (типово a.out)." -#: src/objdump.c:232 src/readelf.c:473 +#: src/objdump.c:232 src/readelf.c:479 msgid "No operation specified.\n" msgstr "Не вказано дії.\n" @@ -4337,11 +4393,11 @@ msgstr "Не вказано дії.\n" msgid "while close `%s'" msgstr "під час закриття «%s»" -#: src/objdump.c:375 src/readelf.c:1880 src/readelf.c:2072 +#: src/objdump.c:375 src/readelf.c:1968 src/readelf.c:2160 msgid "INVALID SYMBOL" msgstr "НЕКОРЕКТНИЙ СИМВОЛ" -#: src/objdump.c:390 src/readelf.c:1914 src/readelf.c:2108 +#: src/objdump.c:390 src/readelf.c:2002 src/readelf.c:2196 msgid "INVALID SECTION" msgstr "НЕКОРЕКТНИЙ РОЗДІЛ" @@ -4393,74 +4449,74 @@ msgstr "«%s» не є архівом" msgid "error while freeing sub-ELF descriptor: %s" msgstr "помилка під час спроби вивільнення дескриптора під-ELF: %s" -#: src/readelf.c:71 +#: src/readelf.c:72 msgid "ELF input selection:" msgstr "Вибір вихідних даних ELF:" -#: src/readelf.c:73 +#: src/readelf.c:74 msgid "" "Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data" msgstr "" "Використовувати вказаний за іменем РОЗДІЛ (типово .gnu_debugdata) як " "(стиснені) вхідні дані ELF" -#: src/readelf.c:75 +#: src/readelf.c:76 msgid "ELF output selection:" msgstr "Вибір виводу ELF:" -#: src/readelf.c:77 +#: src/readelf.c:78 msgid "All these plus -p .strtab -p .dynstr -p .comment" msgstr "Все це плюс -p .strtab -p .dynstr -p .comment" -#: src/readelf.c:78 +#: src/readelf.c:79 msgid "Display the dynamic segment" msgstr "Показувати динамічний сегмент" -#: src/readelf.c:79 +#: src/readelf.c:80 msgid "Display the ELF file header" msgstr "Показувати заголовок файла ELF" -#: src/readelf.c:81 +#: src/readelf.c:82 msgid "Display histogram of bucket list lengths" msgstr "Показати гістограму довжин списку блоків" -#: src/readelf.c:82 +#: src/readelf.c:83 msgid "Display the program headers" msgstr "Показувати заголовки програми" -#: src/readelf.c:84 +#: src/readelf.c:85 msgid "Display relocations" msgstr "Показувати пересування" -#: src/readelf.c:85 +#: src/readelf.c:86 msgid "Display the sections' headers" msgstr "Показувати заголовки розділів" -#: src/readelf.c:87 +#: src/readelf.c:88 msgid "Display the symbol table" msgstr "Показувати таблицю символів" -#: src/readelf.c:88 +#: src/readelf.c:89 msgid "Display versioning information" msgstr "Показувати відомості щодо версії" -#: src/readelf.c:89 +#: src/readelf.c:90 msgid "Display the ELF notes" msgstr "Показувати нотатки ELF" -#: src/readelf.c:91 +#: src/readelf.c:92 msgid "Display architecture specific information, if any" msgstr "Показувати специфічні для архітектури дані, якщо такі буде виявлено" -#: src/readelf.c:93 +#: src/readelf.c:94 msgid "Display sections for exception handling" msgstr "Показувати розділи для обробки виключень" -#: src/readelf.c:95 +#: src/readelf.c:96 msgid "Additional output selection:" msgstr "Додатковий вибір виводу:" -#: src/readelf.c:97 +#: src/readelf.c:98 msgid "" "Display DWARF section content. SECTION can be one of abbrev, aranges, " "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, " @@ -4470,167 +4526,173 @@ msgstr "" "decodedaranges, frame, gdb_index, info, loc, line, decodedline, ranges, " "pubnames, str, macinfo, macro або exception" -#: src/readelf.c:101 +#: src/readelf.c:102 msgid "Dump the uninterpreted contents of SECTION, by number or name" msgstr "" "Створити дамп даних РОЗДІЛ, які не вдалося інтерпретувати, за номером або " "назвами" -#: src/readelf.c:103 +#: src/readelf.c:104 msgid "Print string contents of sections" msgstr "Виводити вміст рядків розділів" -#: src/readelf.c:106 +#: src/readelf.c:107 msgid "Display the symbol index of an archive" msgstr "Показувати покажчик символів архіву" -#: src/readelf.c:108 +#: src/readelf.c:109 msgid "Output control:" msgstr "Керування виводом:" -#: src/readelf.c:110 +#: src/readelf.c:111 msgid "Do not find symbol names for addresses in DWARF data" msgstr "Не шукати назви символів для адрес у даних DWARF" -#: src/readelf.c:112 +#: src/readelf.c:113 msgid "" "Display just offsets instead of resolving values to addresses in DWARF data" msgstr "Показати лише зміщення, а не визначені значення адреси у даних DWARF" -#: src/readelf.c:114 +#: src/readelf.c:115 msgid "Ignored for compatibility (lines always wide)" msgstr "Ігнорується з міркувань сумісності (рядки завжди широкі)" -#: src/readelf.c:119 +#: src/readelf.c:117 +msgid "" +"Show compression information for compressed sections (when used with -S); " +"decompress section before dumping data (when used with -p or -x)" +msgstr "" + +#: src/readelf.c:122 msgid "Print information from ELF file in human-readable form." msgstr "Виводити відомості з файла ELF у придатному для читання форматі." -#: src/readelf.c:441 +#: src/readelf.c:447 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Невідомий діагностичний розділ DWARF «%s».\n" -#: src/readelf.c:520 src/readelf.c:631 +#: src/readelf.c:529 src/readelf.c:640 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "не вдалося створити дескриптор Elf: %s" -#: src/readelf.c:545 src/readelf.c:1099 src/readelf.c:1269 +#: src/readelf.c:554 src/readelf.c:1145 src/readelf.c:1347 #, c-format msgid "cannot get section: %s" msgstr "не вдалося отримати розділ: %s" -#: src/readelf.c:554 src/readelf.c:1106 src/readelf.c:1277 src/readelf.c:9481 -#: src/unstrip.c:355 src/unstrip.c:386 src/unstrip.c:435 src/unstrip.c:543 -#: src/unstrip.c:560 src/unstrip.c:596 src/unstrip.c:794 src/unstrip.c:1083 -#: src/unstrip.c:1274 src/unstrip.c:1334 src/unstrip.c:1455 src/unstrip.c:1508 -#: src/unstrip.c:1623 src/unstrip.c:1761 src/unstrip.c:1855 +#: src/readelf.c:563 src/readelf.c:1152 src/readelf.c:1355 src/readelf.c:9623 +#: src/unstrip.c:387 src/unstrip.c:418 src/unstrip.c:467 src/unstrip.c:577 +#: src/unstrip.c:594 src/unstrip.c:631 src/unstrip.c:829 src/unstrip.c:1118 +#: src/unstrip.c:1309 src/unstrip.c:1369 src/unstrip.c:1490 src/unstrip.c:1543 +#: src/unstrip.c:1658 src/unstrip.c:1796 src/unstrip.c:1891 #, c-format msgid "cannot get section header: %s" msgstr "не вдалося отримати заголовок розділу: %s" -#: src/readelf.c:562 +#: src/readelf.c:571 #, c-format msgid "cannot get section name" msgstr "не вдалося отримати назву розділу" -#: src/readelf.c:571 src/readelf.c:5396 src/readelf.c:7670 src/readelf.c:7772 -#: src/readelf.c:7949 +#: src/readelf.c:580 src/readelf.c:5504 src/readelf.c:7778 src/readelf.c:7880 +#: src/readelf.c:8057 #, c-format msgid "cannot get %s content: %s" msgstr "не вдалося отримати дані %s: %s" -#: src/readelf.c:587 +#: src/readelf.c:596 #, c-format msgid "cannot create temp file '%s'" msgstr "не вдалося створити файл тимчасових даних «%s»" -#: src/readelf.c:596 +#: src/readelf.c:605 #, c-format msgid "cannot write section data" msgstr "не вдалося записати дані розділу" -#: src/readelf.c:602 src/readelf.c:619 src/readelf.c:648 +#: src/readelf.c:611 src/readelf.c:628 src/readelf.c:657 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "помилка під час спроби закриття дескриптора Elf: %s" -#: src/readelf.c:609 +#: src/readelf.c:618 #, c-format msgid "error while rewinding file descriptor" msgstr "помилка під час повернення до початкового значення дескриптора файла" -#: src/readelf.c:643 +#: src/readelf.c:652 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "«%s» не є архівом, виведення покажчика архіву неможливе" -#: src/readelf.c:742 +#: src/readelf.c:751 #, c-format msgid "No such section '%s' in '%s'" msgstr "У «%2$s» немає розділу «%1$s»" -#: src/readelf.c:769 +#: src/readelf.c:778 #, c-format msgid "cannot stat input file" msgstr "не вдалося отримати дані з вхідного файла за допомогою stat" -#: src/readelf.c:771 +#: src/readelf.c:780 #, c-format msgid "input file is empty" msgstr "вхідний файл є порожнім" -#: src/readelf.c:773 +#: src/readelf.c:782 #, c-format msgid "failed reading '%s': %s" msgstr "не вдалося прочитати «%s»: %s" -#: src/readelf.c:814 +#: src/readelf.c:837 #, c-format msgid "cannot read ELF header: %s" msgstr "не вдалося прочитати заголовок ELF: %s" -#: src/readelf.c:822 +#: src/readelf.c:845 #, c-format msgid "cannot create EBL handle" msgstr "не вдалося створити дескриптор EBL" -#: src/readelf.c:835 +#: src/readelf.c:858 #, c-format msgid "cannot determine number of program headers: %s" msgstr "не вдалося визначити кількість заголовків програми: %s" -#: src/readelf.c:921 +#: src/readelf.c:948 msgid "NONE (None)" msgstr "NONE (Немає)" -#: src/readelf.c:922 +#: src/readelf.c:949 msgid "REL (Relocatable file)" msgstr "REL (Придатний до пересування файл)" -#: src/readelf.c:923 +#: src/readelf.c:950 msgid "EXEC (Executable file)" msgstr "EXEC (Виконуваний файл)" -#: src/readelf.c:924 +#: src/readelf.c:951 msgid "DYN (Shared object file)" msgstr "DYN (Файл об’єктів спільного використання)" -#: src/readelf.c:925 +#: src/readelf.c:952 msgid "CORE (Core file)" msgstr "CORE (Файл ядра)" -#: src/readelf.c:930 +#: src/readelf.c:957 #, c-format msgid "OS Specific: (%x)\n" msgstr "ОС-специфічне: (%x)\n" -#: src/readelf.c:932 +#: src/readelf.c:959 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Специфічне для процесора: (%x)\n" -#: src/readelf.c:942 +#: src/readelf.c:969 msgid "" "ELF Header:\n" " Magic: " @@ -4638,7 +4700,7 @@ msgstr "" "Заголовок ELF:\n" " Magic: " -#: src/readelf.c:946 +#: src/readelf.c:973 #, c-format msgid "" "\n" @@ -4647,117 +4709,117 @@ msgstr "" "\n" " Клас: %s\n" -#: src/readelf.c:951 +#: src/readelf.c:978 #, c-format msgid " Data: %s\n" msgstr " Дані: %s\n" -#: src/readelf.c:957 +#: src/readelf.c:984 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Версія Ident: %hhd %s\n" -#: src/readelf.c:959 src/readelf.c:976 +#: src/readelf.c:986 src/readelf.c:1003 msgid "(current)" msgstr "(поточний)" -#: src/readelf.c:963 +#: src/readelf.c:990 #, c-format msgid " OS/ABI: %s\n" msgstr " ОС/ABI: %s\n" -#: src/readelf.c:966 +#: src/readelf.c:993 #, c-format msgid " ABI Version: %hhd\n" msgstr " Версія ABI: %hhd\n" -#: src/readelf.c:969 +#: src/readelf.c:996 msgid " Type: " msgstr " Тип: " -#: src/readelf.c:972 +#: src/readelf.c:999 #, c-format msgid " Machine: %s\n" msgstr " Архітектура: %s\n" -#: src/readelf.c:974 +#: src/readelf.c:1001 #, c-format msgid " Version: %d %s\n" msgstr " Версія: %d %s\n" -#: src/readelf.c:978 +#: src/readelf.c:1005 #, c-format msgid " Entry point address: %#\n" msgstr " Адреса вхідної точки: %#\n" -#: src/readelf.c:981 +#: src/readelf.c:1008 #, c-format msgid " Start of program headers: % %s\n" msgstr " Початок заголовків програм: % %s\n" -#: src/readelf.c:982 src/readelf.c:985 +#: src/readelf.c:1009 src/readelf.c:1012 msgid "(bytes into file)" msgstr "(байтів у файл)" -#: src/readelf.c:984 +#: src/readelf.c:1011 #, c-format msgid " Start of section headers: % %s\n" msgstr " Початок заголовків розділів: % %s\n" -#: src/readelf.c:987 +#: src/readelf.c:1014 #, c-format msgid " Flags: %s\n" msgstr " Прапорці: %s\n" -#: src/readelf.c:990 +#: src/readelf.c:1017 #, c-format msgid " Size of this header: % %s\n" msgstr " Розмір цього заголовка: % %s\n" -#: src/readelf.c:991 src/readelf.c:994 src/readelf.c:1011 +#: src/readelf.c:1018 src/readelf.c:1021 src/readelf.c:1038 msgid "(bytes)" msgstr "(байтів)" -#: src/readelf.c:993 +#: src/readelf.c:1020 #, c-format msgid " Size of program header entries: % %s\n" msgstr " Розмір записів заголовка програми: % %s\n" -#: src/readelf.c:996 +#: src/readelf.c:1023 #, c-format msgid " Number of program headers entries: %" msgstr " Кількість записів заголовків програми: %" -#: src/readelf.c:1003 +#: src/readelf.c:1030 #, c-format msgid " (% in [0].sh_info)" msgstr " (% у [0].sh_info)" -#: src/readelf.c:1006 src/readelf.c:1023 src/readelf.c:1037 +#: src/readelf.c:1033 src/readelf.c:1050 src/readelf.c:1064 msgid " ([0] not available)" msgstr " ([0] недоступний)" -#: src/readelf.c:1010 +#: src/readelf.c:1037 #, c-format msgid " Size of section header entries: % %s\n" msgstr " Розмір записів заголовків розділів: % %s\n" -#: src/readelf.c:1013 +#: src/readelf.c:1040 #, c-format msgid " Number of section headers entries: %" msgstr " Кількість записів заголовків розділів: %" -#: src/readelf.c:1020 +#: src/readelf.c:1047 #, c-format msgid " (% in [0].sh_size)" msgstr " (% у [0].sh_size)" -#: src/readelf.c:1033 +#: src/readelf.c:1060 #, c-format msgid " (% in [0].sh_link)" msgstr " (% у [0].sh_link)" -#: src/readelf.c:1041 +#: src/readelf.c:1068 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4766,7 +4828,7 @@ msgstr "" " Індекс заголовка розділу у таблиці рядків: XINDEX%s\n" "\n" -#: src/readelf.c:1045 +#: src/readelf.c:1072 #, c-format msgid "" " Section header string table index: %\n" @@ -4775,7 +4837,7 @@ msgstr "" " Індекс заголовка розділу у таблиці рядків: %\n" "\n" -#: src/readelf.c:1077 +#: src/readelf.c:1115 #, c-format msgid "" "There are %d section headers, starting at offset %#:\n" @@ -4784,11 +4846,11 @@ msgstr "" "Виявлено %d заголовків розділів, зміщення початку — %#:\n" "\n" -#: src/readelf.c:1087 +#: src/readelf.c:1125 msgid "Section Headers:" msgstr "Заголовки розділів:" -#: src/readelf.c:1090 +#: src/readelf.c:1128 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4796,7 +4858,7 @@ msgstr "" "[№ ] Назва Тип Адр Змі Розмір ES Прап Lk " "Інф Al" -#: src/readelf.c:1092 +#: src/readelf.c:1130 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4804,17 +4866,35 @@ msgstr "" "[№ ] Назва Тип Адр Змі Розмір ES " "Прап Lk Інф Al" -#: src/readelf.c:1164 +#: src/readelf.c:1135 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1137 +msgid " [Compression Size Al]" +msgstr "" + +#: src/readelf.c:1213 +#, fuzzy, c-format +msgid "bad compression header for section %zd: %s" +msgstr "не вдалося отримати заголовок розділу %zu: %s" + +#: src/readelf.c:1224 +#, fuzzy, c-format +msgid "bad gnu compressed size for section %zd: %s" +msgstr "не вдалося отримати дані для розділу %d: %s" + +#: src/readelf.c:1242 msgid "Program Headers:" msgstr "Заголовки програми:" -#: src/readelf.c:1166 +#: src/readelf.c:1244 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Тип Зміщен ВіртАдр ФізАдр РозмФайл РозмПам Пра Вирів" -#: src/readelf.c:1169 +#: src/readelf.c:1247 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4822,12 +4902,12 @@ msgstr "" " Тип Зміщен ВіртАдр ФізАдр " "РозмФайлРозмПам Пра Вирів" -#: src/readelf.c:1226 +#: src/readelf.c:1304 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Запит щодо інтерпретатора програми: %s]\n" -#: src/readelf.c:1247 +#: src/readelf.c:1325 msgid "" "\n" " Section to Segment mapping:\n" @@ -4837,12 +4917,12 @@ msgstr "" " Відображення розділів на сегмент:\n" " Розділи сегмента..." -#: src/readelf.c:1258 src/unstrip.c:1914 src/unstrip.c:1957 src/unstrip.c:1964 +#: src/readelf.c:1336 src/unstrip.c:1950 src/unstrip.c:1992 src/unstrip.c:1999 #, c-format msgid "cannot get program header: %s" msgstr "не вдалося отримати заголовок програми: %s" -#: src/readelf.c:1401 +#: src/readelf.c:1479 #, c-format msgid "" "\n" @@ -4860,7 +4940,7 @@ msgstr[2] "" "\n" "Група розділів COMDAT [%2zu] «%s» з підписом «%s» містить %zu записів:\n" -#: src/readelf.c:1406 +#: src/readelf.c:1484 #, c-format msgid "" "\n" @@ -4878,21 +4958,25 @@ msgstr[2] "" "\n" "Група розділів [%2zu] «%s» з підписом «%s» містить %zu записів:\n" -#: src/readelf.c:1414 +#: src/readelf.c:1492 msgid "" msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>" -#: src/readelf.c:1428 +#: src/readelf.c:1506 msgid "" msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>" -#: src/readelf.c:1585 src/readelf.c:2208 src/readelf.c:2466 src/readelf.c:2542 -#: src/readelf.c:2846 src/readelf.c:2920 src/readelf.c:4608 +#: src/readelf.c:1529 src/readelf.c:2238 src/readelf.c:3317 +msgid "Couldn't uncompress section" +msgstr "" + +#: src/readelf.c:1673 src/readelf.c:2306 src/readelf.c:2564 src/readelf.c:2640 +#: src/readelf.c:2944 src/readelf.c:3018 src/readelf.c:4716 #, c-format msgid "invalid sh_link value in section %zu" msgstr "некоректне значення sh_link у розділі %zu" -#: src/readelf.c:1588 +#: src/readelf.c:1676 #, c-format msgid "" "\n" @@ -4915,36 +4999,36 @@ msgstr[2] "" "Динамічний сегмент містить %lu записів:\n" " Адр: %#0* Зміщення: %#08 Пос. на розділ: [%2u] '%s'\n" -#: src/readelf.c:1598 +#: src/readelf.c:1686 msgid " Type Value\n" msgstr " Тип Значення\n" -#: src/readelf.c:1622 +#: src/readelf.c:1710 #, c-format msgid "Shared library: [%s]\n" msgstr "Спільна бібліотека: [%s]\n" -#: src/readelf.c:1627 +#: src/readelf.c:1715 #, c-format msgid "Library soname: [%s]\n" msgstr "Назва so бібліотеки: [%s]\n" -#: src/readelf.c:1632 +#: src/readelf.c:1720 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath бібліотеки: [%s]\n" -#: src/readelf.c:1637 +#: src/readelf.c:1725 #, c-format msgid "Library runpath: [%s]\n" msgstr "Runpath бібліотеки: [%s]\n" -#: src/readelf.c:1657 +#: src/readelf.c:1745 #, c-format msgid "% (bytes)\n" msgstr "% (байт)\n" -#: src/readelf.c:1770 src/readelf.c:1960 +#: src/readelf.c:1858 src/readelf.c:2048 #, c-format msgid "" "\n" @@ -4953,7 +5037,7 @@ msgstr "" "\n" "Некоректна таблиця символів за зміщенням %#0\n" -#: src/readelf.c:1788 src/readelf.c:1978 +#: src/readelf.c:1876 src/readelf.c:2066 #, c-format msgid "" "\n" @@ -4976,7 +5060,7 @@ msgstr[2] "" "Розділ пересування [%2zu] «%s» для розділу [%2u] «%s» за зміщенням " "%#0 містить %d записів:\n" -#: src/readelf.c:1803 src/readelf.c:1993 +#: src/readelf.c:1891 src/readelf.c:2081 #, c-format msgid "" "\n" @@ -4994,30 +5078,30 @@ msgstr[2] "" "\n" "Розділ пересування [%2u] «%s» за зміщенням %#0 містить %d записів:\n" -#: src/readelf.c:1813 +#: src/readelf.c:1901 msgid " Offset Type Value Name\n" msgstr " Зміщення Тип Значення Назва\n" -#: src/readelf.c:1815 +#: src/readelf.c:1903 msgid " Offset Type Value Name\n" msgstr " Зміщення Тип Значення Назва\n" -#: src/readelf.c:1868 src/readelf.c:1879 src/readelf.c:1892 src/readelf.c:1913 -#: src/readelf.c:1925 src/readelf.c:2059 src/readelf.c:2071 src/readelf.c:2085 -#: src/readelf.c:2107 src/readelf.c:2120 +#: src/readelf.c:1956 src/readelf.c:1967 src/readelf.c:1980 src/readelf.c:2001 +#: src/readelf.c:2013 src/readelf.c:2147 src/readelf.c:2159 src/readelf.c:2173 +#: src/readelf.c:2195 src/readelf.c:2208 msgid "" msgstr "<НЕКОРЕКТНЕ ПЕРЕМІЩЕННЯ>" -#: src/readelf.c:2003 +#: src/readelf.c:2091 msgid " Offset Type Value Addend Name\n" msgstr " Зміщення Тип Значення Назва додатка\n" -#: src/readelf.c:2005 +#: src/readelf.c:2093 msgid " Offset Type Value Addend Name\n" msgstr "" " Зміщення Тип Значення Назва додатка\n" -#: src/readelf.c:2216 +#: src/readelf.c:2314 #, c-format msgid "" "\n" @@ -5035,7 +5119,7 @@ msgstr[2] "" "\n" "Таблиця символів [%2u] «%s» містить %u записів:\n" -#: src/readelf.c:2221 +#: src/readelf.c:2319 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -5043,33 +5127,33 @@ msgstr[0] " %lu лок. символ Таблиця символів: [%2u] « msgstr[1] " %lu лок. символи Таблиця символів: [%2u] «%s»\n" msgstr[2] " %lu лок. символів Таблиця символів: [%2u] «%s»\n" -#: src/readelf.c:2229 +#: src/readelf.c:2327 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " №№ Знач. Роз. Тип Зв’яз Вид. Інд Назва\n" -#: src/readelf.c:2231 +#: src/readelf.c:2329 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " №№ Знач. Роз. Тип Зв’яз Вид. Інд Назва\n" -#: src/readelf.c:2251 +#: src/readelf.c:2349 #, c-format msgid "%5u: %0* %6 %-7s %-6s %-9s %6s %s" msgstr "%5u: %0* %6 %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2339 +#: src/readelf.c:2437 #, c-format msgid "bad dynamic symbol" msgstr "помилковий динамічний символ" -#: src/readelf.c:2421 +#: src/readelf.c:2519 msgid "none" msgstr "немає" -#: src/readelf.c:2438 +#: src/readelf.c:2536 msgid "| " msgstr "| <невідомо>" -#: src/readelf.c:2469 +#: src/readelf.c:2567 #, c-format msgid "" "\n" @@ -5092,17 +5176,17 @@ msgstr[2] "" "Розділ потреби у версіях [%2u] «%s», що містить %d записів:\n" " Адр.: %#0* Зміщ.: %#08 Посилання на розділ: [%2u] «%s»\n" -#: src/readelf.c:2490 +#: src/readelf.c:2588 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Версія: %hu Файл: %s Кть: %hu\n" -#: src/readelf.c:2503 +#: src/readelf.c:2601 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Назва: %s Прап: %s Версія: %hu\n" -#: src/readelf.c:2546 +#: src/readelf.c:2644 #, c-format msgid "" "\n" @@ -5125,17 +5209,17 @@ msgstr[2] "" "Розділ визначення версії [%2u] «%s», що містить %d записів:\n" " Адр.: %#0* Зміщ.: %#08 Посилання на розділ: [%2u] «%s»\n" -#: src/readelf.c:2574 +#: src/readelf.c:2672 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr " %#06x: Версія: %hd Прап.: %s Індекс: %hd К-ть: %hd Назва: %s\n" -#: src/readelf.c:2589 +#: src/readelf.c:2687 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: батьківський %d: %s\n" -#: src/readelf.c:2850 +#: src/readelf.c:2948 #, c-format msgid "" "\n" @@ -5158,15 +5242,15 @@ msgstr[2] "" "Розділ символів версій [%2u] «%s», що містить %d записів:\n" " Адр.: %#0* Зміщ.: %#08 Посилання на розділ: [%2u] «%s»" -#: src/readelf.c:2878 +#: src/readelf.c:2976 msgid " 0 *local* " msgstr " 0 *локальний* " -#: src/readelf.c:2883 +#: src/readelf.c:2981 msgid " 1 *global* " msgstr " 1 *загальний* " -#: src/readelf.c:2925 +#: src/readelf.c:3023 #, c-format msgid "" "\n" @@ -5194,22 +5278,22 @@ msgstr[2] "" "блоками):\n" " Адр.: %#0* Зміщ.: %#08 Посилання на розділ: [%2u] «%s»\n" -#: src/readelf.c:2947 +#: src/readelf.c:3045 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Довжина Номер % від загал. Покриття\n" -#: src/readelf.c:2949 +#: src/readelf.c:3047 #, c-format msgid " 0 %6 %5.1f%%\n" msgstr " 0 %6 %5.1f%%\n" -#: src/readelf.c:2956 +#: src/readelf.c:3054 #, c-format msgid "%7d %6 %5.1f%% %5.1f%%\n" msgstr "%7d %6 %5.1f%% %5.1f%%\n" -#: src/readelf.c:2969 +#: src/readelf.c:3067 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" @@ -5218,27 +5302,27 @@ msgstr "" " Середня кількість тестів: успішний пошук: %f\n" "\t\t\t неуспішний пошук: %f\n" -#: src/readelf.c:2987 src/readelf.c:3042 src/readelf.c:3099 +#: src/readelf.c:3085 src/readelf.c:3140 src/readelf.c:3197 #, c-format msgid "cannot get data for section %d: %s" msgstr "не вдалося отримати дані для розділу %d: %s" -#: src/readelf.c:2995 +#: src/readelf.c:3093 #, c-format msgid "invalid data in sysv.hash section %d" msgstr "некоректні дані у розділі sysv.hash %d" -#: src/readelf.c:3050 +#: src/readelf.c:3148 #, c-format msgid "invalid data in sysv.hash64 section %d" msgstr "некоректні дані у розділі sysv.hash64 %d" -#: src/readelf.c:3108 +#: src/readelf.c:3206 #, c-format msgid "invalid data in gnu.hash section %d" msgstr "некоректні дані у розділі gnu.hash %d" -#: src/readelf.c:3175 +#: src/readelf.c:3273 #, c-format msgid "" " Symbol Bias: %u\n" @@ -5248,7 +5332,7 @@ msgstr "" " Розмір бітової маски: %zu байтів %%% встановлених бітів зсув " "2-го хешу: %u\n" -#: src/readelf.c:3250 +#: src/readelf.c:3358 #, c-format msgid "" "\n" @@ -5269,7 +5353,7 @@ msgstr[2] "" "Розділ списку бібліотек [%2zu] «%s» за зміщенням %#0 містить %d " "записів:\n" -#: src/readelf.c:3264 +#: src/readelf.c:3372 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -5277,7 +5361,7 @@ msgstr "" " Бібліотека Часовий штамп Версія суми " "Прапорці" -#: src/readelf.c:3314 +#: src/readelf.c:3422 #, c-format msgid "" "\n" @@ -5288,140 +5372,140 @@ msgstr "" "Розділ атрибутів об’єктів [%2zu] «%s» з % байтів за зміщенням " "%#0:\n" -#: src/readelf.c:3331 +#: src/readelf.c:3439 msgid " Owner Size\n" msgstr " Власник Розмір\n" -#: src/readelf.c:3360 +#: src/readelf.c:3468 #, c-format msgid " %-13s %4\n" msgstr " %-13s %4\n" -#: src/readelf.c:3399 +#: src/readelf.c:3507 #, c-format msgid " %-4u %12\n" msgstr " %-4u %12\n" -#: src/readelf.c:3404 +#: src/readelf.c:3512 #, c-format msgid " File: %11\n" msgstr " Файл: %11\n" -#: src/readelf.c:3453 +#: src/readelf.c:3561 #, c-format msgid " %s: %, %s\n" msgstr " %s: %, %s\n" -#: src/readelf.c:3456 +#: src/readelf.c:3564 #, c-format msgid " %s: %\n" msgstr " %s: %\n" -#: src/readelf.c:3459 +#: src/readelf.c:3567 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3469 +#: src/readelf.c:3577 #, c-format msgid " %u: %\n" msgstr " %u: %\n" -#: src/readelf.c:3472 +#: src/readelf.c:3580 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3517 +#: src/readelf.c:3625 #, c-format msgid "%s+%# <%s+%#>" msgstr "%s+%# <%s+%#>" -#: src/readelf.c:3520 +#: src/readelf.c:3628 #, c-format msgid "%s+%#0* <%s+%#>" msgstr "%s+%#0* <%s+%#>" -#: src/readelf.c:3525 +#: src/readelf.c:3633 #, c-format msgid "%# <%s+%#>" msgstr "%# <%s+%#>" -#: src/readelf.c:3528 +#: src/readelf.c:3636 #, c-format msgid "%#0* <%s+%#>" msgstr "%#0* <%s+%#>" -#: src/readelf.c:3534 +#: src/readelf.c:3642 #, c-format msgid "%s+%# <%s>" msgstr "%s+%# <%s>" -#: src/readelf.c:3537 +#: src/readelf.c:3645 #, c-format msgid "%s+%#0* <%s>" msgstr "%s+%#0* <%s>" -#: src/readelf.c:3541 +#: src/readelf.c:3649 #, c-format msgid "%# <%s>" msgstr "%# <%s>" -#: src/readelf.c:3544 +#: src/readelf.c:3652 #, c-format msgid "%#0* <%s>" msgstr "%#0* <%s>" -#: src/readelf.c:3549 +#: src/readelf.c:3657 #, c-format msgid "%s+%#" msgstr "%s+%#" -#: src/readelf.c:3552 +#: src/readelf.c:3660 #, c-format msgid "%s+%#0*" msgstr "%s+%#0*" -#: src/readelf.c:3930 +#: src/readelf.c:4038 msgid "empty block" msgstr "порожній блок" -#: src/readelf.c:3933 +#: src/readelf.c:4041 #, c-format msgid "%zu byte block:" msgstr "%zu-байтовий блок:" -#: src/readelf.c:4330 +#: src/readelf.c:4438 #, c-format msgid "%*s[%4] %s \n" msgstr "%*s[%4] %s <ОБРІЗАНО>\n" -#: src/readelf.c:4387 +#: src/readelf.c:4495 #, c-format msgid "%s %# used with different address sizes" msgstr "%s %# використано з різними розмірами адрес" -#: src/readelf.c:4394 +#: src/readelf.c:4502 #, c-format msgid "%s %# used with different offset sizes" msgstr "%s %# використано з різними розмірами зміщень" -#: src/readelf.c:4401 +#: src/readelf.c:4509 #, c-format msgid "%s %# used with different base addresses" msgstr "%s %# використано з різними базовими адресами" -#: src/readelf.c:4490 +#: src/readelf.c:4598 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <НЕВИКОРИСТОВУВАНІ ДАНІ У РЕШТІ РОЗДІЛУ>\n" -#: src/readelf.c:4498 +#: src/readelf.c:4606 #, c-format msgid " [%6tx] ... % bytes ...\n" msgstr " [%6tx] <НЕВИКОРИСТОВУВАНІ ДАНІ> ... % байтів ...\n" -#: src/readelf.c:4524 +#: src/readelf.c:4632 #, c-format msgid "" "\n" @@ -5432,7 +5516,7 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" " [ Код]\n" -#: src/readelf.c:4532 +#: src/readelf.c:4640 #, c-format msgid "" "\n" @@ -5441,30 +5525,30 @@ msgstr "" "\n" "Розділ скорочень за зміщенням %:\n" -#: src/readelf.c:4545 +#: src/readelf.c:4653 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** помилка під час читання скорочення: %s\n" -#: src/readelf.c:4561 +#: src/readelf.c:4669 #, c-format msgid " [%5u] offset: %, children: %s, tag: %s\n" msgstr " [%5u] зміщення: %, дочірній: %s, мітка: %s\n" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "yes" msgstr "так" -#: src/readelf.c:4564 +#: src/readelf.c:4672 msgid "no" msgstr "ні" -#: src/readelf.c:4598 src/readelf.c:4671 +#: src/readelf.c:4706 src/readelf.c:4779 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "не вдалося отримати дані get .debug_aranges: %s" -#: src/readelf.c:4613 +#: src/readelf.c:4721 #, c-format msgid "" "\n" @@ -5482,12 +5566,12 @@ msgstr[2] "" "\n" "Розділ DWARF [%2zu] «%s» за зміщенням %# містить %zu записів:\n" -#: src/readelf.c:4644 +#: src/readelf.c:4752 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4646 +#: src/readelf.c:4754 #, c-format msgid "" " [%*zu] start: %0#*, length: %5, CU DIE offset: %6\n" @@ -5495,8 +5579,8 @@ msgstr "" " [%*zu] початок: %0#*, довжина: %5, зміщення CU DIE: " "%6\n" -#: src/readelf.c:4676 src/readelf.c:4830 src/readelf.c:5406 src/readelf.c:6360 -#: src/readelf.c:6892 src/readelf.c:7012 src/readelf.c:7176 src/readelf.c:7601 +#: src/readelf.c:4784 src/readelf.c:4938 src/readelf.c:5514 src/readelf.c:6468 +#: src/readelf.c:7000 src/readelf.c:7120 src/readelf.c:7284 src/readelf.c:7709 #, c-format msgid "" "\n" @@ -5505,7 +5589,7 @@ msgstr "" "\n" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" -#: src/readelf.c:4689 src/readelf.c:6386 +#: src/readelf.c:4797 src/readelf.c:6494 #, c-format msgid "" "\n" @@ -5514,12 +5598,12 @@ msgstr "" "\n" "Таблиця за зміщенням %zu:\n" -#: src/readelf.c:4693 src/readelf.c:5430 src/readelf.c:6397 +#: src/readelf.c:4801 src/readelf.c:5538 src/readelf.c:6505 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "некоректні дані у розділі [%zu] «%s»" -#: src/readelf.c:4709 +#: src/readelf.c:4817 #, c-format msgid "" "\n" @@ -5528,32 +5612,32 @@ msgstr "" "\n" " Довжина: %6\n" -#: src/readelf.c:4721 +#: src/readelf.c:4829 #, c-format msgid " DWARF version: %6\n" msgstr " версія DWARF: %6\n" -#: src/readelf.c:4725 +#: src/readelf.c:4833 #, c-format msgid "unsupported aranges version" msgstr "непідтримувана версія aranges" -#: src/readelf.c:4736 +#: src/readelf.c:4844 #, c-format msgid " CU offset: %6\n" msgstr " зміщення CU: %6\n" -#: src/readelf.c:4742 +#: src/readelf.c:4850 #, c-format msgid " Address size: %6\n" msgstr " Розмір адреси: %6\n" -#: src/readelf.c:4746 +#: src/readelf.c:4854 #, c-format msgid "unsupported address size" msgstr "непідтримуваний розмір адреси" -#: src/readelf.c:4751 +#: src/readelf.c:4859 #, c-format msgid "" " Segment size: %6\n" @@ -5562,66 +5646,66 @@ msgstr "" " Розмір сегмента: %6\n" "\n" -#: src/readelf.c:4755 +#: src/readelf.c:4863 #, c-format msgid "unsupported segment size" msgstr "непідтримуваний розмір сегмента" -#: src/readelf.c:4795 +#: src/readelf.c:4903 #, c-format msgid " %s..%s (%)\n" msgstr " %s..%s (%)\n" -#: src/readelf.c:4798 +#: src/readelf.c:4906 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:4807 +#: src/readelf.c:4915 #, c-format msgid " %zu padding bytes\n" msgstr " %zu байтів доповнення\n" -#: src/readelf.c:4825 +#: src/readelf.c:4933 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "не вдалося отримати дані .debug_ranges: %s" -#: src/readelf.c:4855 src/readelf.c:6919 +#: src/readelf.c:4963 src/readelf.c:7027 #, c-format msgid " [%6tx] \n" msgstr " [%6tx] <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:4877 src/readelf.c:6941 +#: src/readelf.c:4985 src/readelf.c:7049 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] базова адреса %s\n" -#: src/readelf.c:4884 src/readelf.c:6948 +#: src/readelf.c:4992 src/readelf.c:7056 #, c-format msgid " [%6tx] empty list\n" msgstr " [%6tx] порожній список\n" -#: src/readelf.c:4895 +#: src/readelf.c:5003 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4897 +#: src/readelf.c:5005 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:5076 +#: src/readelf.c:5184 msgid " \n" msgstr " <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:5385 +#: src/readelf.c:5493 #, c-format msgid "cannot get ELF: %s" msgstr "не вдалося отримати ELF: %s" -#: src/readelf.c:5402 +#: src/readelf.c:5510 #, c-format msgid "" "\n" @@ -5630,7 +5714,7 @@ msgstr "" "\n" "Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#:\n" -#: src/readelf.c:5452 +#: src/readelf.c:5560 #, c-format msgid "" "\n" @@ -5639,50 +5723,50 @@ msgstr "" "\n" " [%6tx] нульовий переривач\n" -#: src/readelf.c:5545 src/readelf.c:5700 +#: src/readelf.c:5653 src/readelf.c:5808 #, c-format msgid "invalid augmentation length" msgstr "некоректна довжина збільшення" -#: src/readelf.c:5560 +#: src/readelf.c:5668 msgid "FDE address encoding: " msgstr "Кодування адреси FDE: " -#: src/readelf.c:5566 +#: src/readelf.c:5674 msgid "LSDA pointer encoding: " msgstr "Кодування вказівника LSDA: " -#: src/readelf.c:5677 +#: src/readelf.c:5785 #, c-format msgid " (offset: %#)" msgstr " (зміщення: %#)" -#: src/readelf.c:5684 +#: src/readelf.c:5792 #, c-format msgid " (end offset: %#)" msgstr " (зміщення від кінця: %#)" -#: src/readelf.c:5721 +#: src/readelf.c:5829 #, c-format msgid " %-26sLSDA pointer: %#\n" msgstr " %-26sвказівник LSDA: %#\n" -#: src/readelf.c:5776 +#: src/readelf.c:5884 #, c-format msgid "cannot get attribute code: %s" msgstr "не вдалося отримати код атрибута: %s" -#: src/readelf.c:5785 +#: src/readelf.c:5893 #, c-format msgid "cannot get attribute form: %s" msgstr "не вдалося отримати форму атрибута: %s" -#: src/readelf.c:5800 +#: src/readelf.c:5908 #, c-format msgid "cannot get attribute value: %s" msgstr "не вдалося отримати значення атрибута: %s" -#: src/readelf.c:6099 +#: src/readelf.c:6207 #, c-format msgid "" "\n" @@ -5693,7 +5777,7 @@ msgstr "" "Розділ DWARF [%2zu] «%s» за зміщенням %#:\n" " [Зміщення]\n" -#: src/readelf.c:6131 +#: src/readelf.c:6239 #, c-format msgid "" " Type unit at offset %:\n" @@ -5706,7 +5790,7 @@ msgstr "" "Зміщення: %\n" " Підпис типу: %#, Зміщення типу: %#\n" -#: src/readelf.c:6140 +#: src/readelf.c:6248 #, c-format msgid "" " Compilation unit at offset %:\n" @@ -5717,33 +5801,33 @@ msgstr "" " Версія: %, Зміщення розділу скорочень: %, Адреса: %, " "Зміщення: %\n" -#: src/readelf.c:6165 +#: src/readelf.c:6273 #, c-format msgid "cannot get DIE at offset % in section '%s': %s" msgstr "не вдалося отримати DIE за зміщенням % у розділі «%s»: %s" -#: src/readelf.c:6179 +#: src/readelf.c:6287 #, c-format msgid "cannot get DIE offset: %s" msgstr "не вдалося отримати зміщення DIE: %s" -#: src/readelf.c:6188 +#: src/readelf.c:6296 #, c-format msgid "cannot get tag of DIE at offset % in section '%s': %s" msgstr "" "не вдалося отримати мітку DIE за зміщенням % у розділі «%s»: %s" -#: src/readelf.c:6220 +#: src/readelf.c:6328 #, c-format msgid "cannot get next DIE: %s\n" msgstr "не вдалося визначити наступний DIE: %s\n" -#: src/readelf.c:6228 +#: src/readelf.c:6336 #, c-format msgid "cannot get next DIE: %s" msgstr "не вдалося визначити наступний DIE: %s" -#: src/readelf.c:6264 +#: src/readelf.c:6372 #, c-format msgid "" "\n" @@ -5754,12 +5838,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" "\n" -#: src/readelf.c:6373 +#: src/readelf.c:6481 #, c-format msgid "cannot get line data section data: %s" msgstr "не вдалося отримати дані розділу лінійних даних: %s" -#: src/readelf.c:6443 +#: src/readelf.c:6551 #, c-format msgid "" "\n" @@ -5788,12 +5872,12 @@ msgstr "" "\n" "Коди операцій:\n" -#: src/readelf.c:6464 +#: src/readelf.c:6572 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "некоректні дані зі зміщенням %tu у розділі [%zu] «%s»" -#: src/readelf.c:6479 +#: src/readelf.c:6587 #, c-format msgid " [%*] %hhu argument\n" msgid_plural " [%*] %hhu arguments\n" @@ -5801,7 +5885,7 @@ msgstr[0] " [%*] %hhu аргумент\n" msgstr[1] " [%*] %hhu аргументи\n" msgstr[2] " [%*] %hhu аргументів\n" -#: src/readelf.c:6487 +#: src/readelf.c:6595 msgid "" "\n" "Directory table:" @@ -5809,7 +5893,7 @@ msgstr "" "\n" "Таблиця каталогу:" -#: src/readelf.c:6503 +#: src/readelf.c:6611 msgid "" "\n" "File name table:\n" @@ -5819,7 +5903,7 @@ msgstr "" "Таблиця назв файлів:\n" " Запис Кат Час Розмір Назва" -#: src/readelf.c:6538 +#: src/readelf.c:6646 msgid "" "\n" "Line number statements:" @@ -5827,120 +5911,120 @@ msgstr "" "\n" "Оператори номерів рядків:" -#: src/readelf.c:6589 +#: src/readelf.c:6697 #, c-format msgid "invalid maximum operations per instruction is zero" msgstr "некоректну кількість операцій на інструкцію прирівняно до нуля" -#: src/readelf.c:6625 +#: src/readelf.c:6733 #, c-format msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" msgstr "" " спеціальний код операції %u: адреса+%u = %s, індекс_оп = %u, рядок%+d = " "%zu\n" -#: src/readelf.c:6630 +#: src/readelf.c:6738 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " спеціальний код операції %u: адреса+%u = %s, рядок%+d = %zu\n" -#: src/readelf.c:6650 +#: src/readelf.c:6758 #, c-format msgid " extended opcode %u: " msgstr " розширений код операції %u: " -#: src/readelf.c:6655 +#: src/readelf.c:6763 msgid " end of sequence" msgstr " кінець послідовності" -#: src/readelf.c:6674 +#: src/readelf.c:6782 #, c-format msgid " set address to %s\n" msgstr " встановити адресу у значення %s\n" -#: src/readelf.c:6701 +#: src/readelf.c:6809 #, c-format msgid " define new file: dir=%u, mtime=%, length=%, name=%s\n" msgstr "" " визначення нового файла: dir=%u, mtime=%, довжина=%, назва=" "%s\n" -#: src/readelf.c:6714 +#: src/readelf.c:6822 #, c-format msgid " set discriminator to %u\n" msgstr " встановити розрізнення для %u\n" -#: src/readelf.c:6719 +#: src/readelf.c:6827 msgid " unknown opcode" msgstr " невідомий код операції" -#: src/readelf.c:6731 +#: src/readelf.c:6839 msgid " copy" msgstr " копія" -#: src/readelf.c:6742 +#: src/readelf.c:6850 #, c-format msgid " advance address by %u to %s, op_index to %u\n" msgstr " збільшення адреси на %u до %s, індекс_оп до %u\n" -#: src/readelf.c:6746 +#: src/readelf.c:6854 #, c-format msgid " advance address by %u to %s\n" msgstr " збільшення адреси на %u до %s\n" -#: src/readelf.c:6757 +#: src/readelf.c:6865 #, c-format msgid " advance line by constant %d to %\n" msgstr " просувати рядок на сталу %d до %\n" -#: src/readelf.c:6765 +#: src/readelf.c:6873 #, c-format msgid " set file to %\n" msgstr " встановити файл у %\n" -#: src/readelf.c:6775 +#: src/readelf.c:6883 #, c-format msgid " set column to %\n" msgstr " встановити значення стовпчика %\n" -#: src/readelf.c:6782 +#: src/readelf.c:6890 #, c-format msgid " set '%s' to %\n" msgstr " встановити «%s» у %\n" -#: src/readelf.c:6788 +#: src/readelf.c:6896 msgid " set basic block flag" msgstr " встановити прапорець базового блоку" -#: src/readelf.c:6801 +#: src/readelf.c:6909 #, c-format msgid " advance address by constant %u to %s, op_index to %u\n" msgstr " збільшити адресу на сталу величину %u до %s, індекс_оп до %u\n" -#: src/readelf.c:6805 +#: src/readelf.c:6913 #, c-format msgid " advance address by constant %u to %s\n" msgstr " збільшити адресу на сталу величину %u до %s\n" -#: src/readelf.c:6823 +#: src/readelf.c:6931 #, c-format msgid " advance address by fixed value %u to %s\n" msgstr " збільшити адресу на фіксовану величину %u до %s\n" -#: src/readelf.c:6832 +#: src/readelf.c:6940 msgid " set prologue end flag" msgstr " встановити прапорець кінця вступу" -#: src/readelf.c:6837 +#: src/readelf.c:6945 msgid " set epilogue begin flag" msgstr " встановити прапорець початку епілогу" -#: src/readelf.c:6846 +#: src/readelf.c:6954 #, c-format msgid " set isa to %u\n" msgstr " встановити isa у %u\n" -#: src/readelf.c:6855 +#: src/readelf.c:6963 #, c-format msgid " unknown opcode with % parameter:" msgid_plural " unknown opcode with % parameters:" @@ -5948,102 +6032,102 @@ msgstr[0] " невідомий код операції з % параме msgstr[1] " невідомий код операції з % параметрами:" msgstr[2] " невідомий код операції з % параметрами:" -#: src/readelf.c:6887 +#: src/readelf.c:6995 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "не вдалося отримати вміст .debug_loc: %s" -#: src/readelf.c:6962 +#: src/readelf.c:7070 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:6964 +#: src/readelf.c:7072 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6971 src/readelf.c:7859 +#: src/readelf.c:7079 src/readelf.c:7967 msgid " \n" msgstr " <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:7023 src/readelf.c:7185 +#: src/readelf.c:7131 src/readelf.c:7293 #, c-format msgid "cannot get macro information section data: %s" msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s" -#: src/readelf.c:7103 +#: src/readelf.c:7211 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** незавершений рядок наприкінці розділу" -#: src/readelf.c:7126 +#: src/readelf.c:7234 #, c-format msgid "%*s*** missing DW_MACINFO_start_file argument at end of section" msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу" -#: src/readelf.c:7226 +#: src/readelf.c:7334 #, c-format msgid " Offset: 0x%\n" msgstr " Зміщення: 0x%\n" -#: src/readelf.c:7238 +#: src/readelf.c:7346 #, c-format msgid " Version: %\n" msgstr " Версія: %\n" -#: src/readelf.c:7244 src/readelf.c:7978 +#: src/readelf.c:7352 src/readelf.c:8086 #, c-format msgid " unknown version, cannot parse section\n" msgstr " невідома версія, не вдалося обробити розділ\n" -#: src/readelf.c:7251 +#: src/readelf.c:7359 #, c-format msgid " Flag: 0x%\n" msgstr " Прапорець: 0x%\n" -#: src/readelf.c:7254 +#: src/readelf.c:7362 #, c-format msgid " Offset length: %\n" msgstr " Довжина зміщення: %\n" -#: src/readelf.c:7262 +#: src/readelf.c:7370 #, c-format msgid " .debug_line offset: 0x%\n" msgstr " зміщення .debug_line: 0x%\n" -#: src/readelf.c:7275 +#: src/readelf.c:7383 #, c-format msgid " extension opcode table, % items:\n" msgstr " таблиця кодів операцій розширень, записів — %:\n" -#: src/readelf.c:7282 +#: src/readelf.c:7390 #, c-format msgid " [%]" msgstr " [%]" -#: src/readelf.c:7294 +#: src/readelf.c:7402 #, c-format msgid " % arguments:" msgstr " % аргументів:" -#: src/readelf.c:7322 +#: src/readelf.c:7430 #, c-format msgid " no arguments." msgstr " немає аргументів." -#: src/readelf.c:7559 +#: src/readelf.c:7667 #, c-format msgid "vendor opcode not verified?" msgstr "код операції постачальника не перевірено?" -#: src/readelf.c:7587 +#: src/readelf.c:7695 #, c-format msgid " [%5d] DIE offset: %6, CU DIE offset: %6, name: %s\n" msgstr "" " [%5d] зміщення DIE: %6, зміщення CU DIE: %6, назва: %s\n" -#: src/readelf.c:7628 +#: src/readelf.c:7736 #, c-format msgid "" "\n" @@ -6054,12 +6138,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#:\n" " %*s Рядок\n" -#: src/readelf.c:7642 +#: src/readelf.c:7750 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** помилка під час читання рядків: %s\n" -#: src/readelf.c:7662 +#: src/readelf.c:7770 #, c-format msgid "" "\n" @@ -6068,7 +6152,7 @@ msgstr "" "\n" "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:7764 +#: src/readelf.c:7872 #, c-format msgid "" "\n" @@ -6077,22 +6161,22 @@ msgstr "" "\n" "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:7787 +#: src/readelf.c:7895 #, c-format msgid " LPStart encoding: %#x " msgstr " Кодування LPStart: %#x " -#: src/readelf.c:7799 +#: src/readelf.c:7907 #, c-format msgid " TType encoding: %#x " msgstr " Кодування TType: %#x " -#: src/readelf.c:7814 +#: src/readelf.c:7922 #, c-format msgid " Call site encoding: %#x " msgstr " Кодування місця виклику:%#x " -#: src/readelf.c:7827 +#: src/readelf.c:7935 msgid "" "\n" " Call site table:" @@ -6100,7 +6184,7 @@ msgstr "" "\n" " Таблиця місця виклику:" -#: src/readelf.c:7841 +#: src/readelf.c:7949 #, c-format msgid "" " [%4u] Call site start: %#\n" @@ -6113,12 +6197,12 @@ msgstr "" " Місце застосування: %#\n" " Дія: %u\n" -#: src/readelf.c:7914 +#: src/readelf.c:8022 #, c-format msgid "invalid TType encoding" msgstr "некоректне кодування TType" -#: src/readelf.c:7940 +#: src/readelf.c:8048 #, c-format msgid "" "\n" @@ -6127,37 +6211,37 @@ msgstr "" "\n" "Розділ GDB [%2zu] «%s» за зміщенням %# містить % байтів:\n" -#: src/readelf.c:7969 +#: src/readelf.c:8077 #, c-format msgid " Version: %\n" msgstr " Версія: %\n" -#: src/readelf.c:7987 +#: src/readelf.c:8095 #, c-format msgid " CU offset: %#\n" msgstr " зміщення CU: %#\n" -#: src/readelf.c:7994 +#: src/readelf.c:8102 #, c-format msgid " TU offset: %#\n" msgstr " зміщення TU: %#\n" -#: src/readelf.c:8001 +#: src/readelf.c:8109 #, c-format msgid " address offset: %#\n" msgstr " зміщення адреси: %#\n" -#: src/readelf.c:8008 +#: src/readelf.c:8116 #, c-format msgid " symbol offset: %#\n" msgstr " зміщення символу: %#\n" -#: src/readelf.c:8015 +#: src/readelf.c:8123 #, c-format msgid " constant offset: %#\n" msgstr " стале зміщення: %#\n" -#: src/readelf.c:8029 +#: src/readelf.c:8137 #, c-format msgid "" "\n" @@ -6166,7 +6250,7 @@ msgstr "" "\n" " Список CU зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:8054 +#: src/readelf.c:8162 #, c-format msgid "" "\n" @@ -6175,7 +6259,7 @@ msgstr "" "\n" " Список TU зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:8083 +#: src/readelf.c:8191 #, c-format msgid "" "\n" @@ -6184,7 +6268,7 @@ msgstr "" "\n" " Список адрес зі зміщенням %# містить %zu записів:\n" -#: src/readelf.c:8116 +#: src/readelf.c:8224 #, c-format msgid "" "\n" @@ -6193,17 +6277,17 @@ msgstr "" "\n" " Таблиця символів за зміщенням %# містить %zu позицій:\n" -#: src/readelf.c:8203 +#: src/readelf.c:8311 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "не вдалося отримати дескриптор контексту зневаджування: %s" -#: src/readelf.c:8361 src/readelf.c:8983 src/readelf.c:9094 src/readelf.c:9152 +#: src/readelf.c:8467 src/readelf.c:9089 src/readelf.c:9200 src/readelf.c:9258 #, c-format msgid "cannot convert core note data: %s" msgstr "не вдалося перетворити дані запису ядра: %s" -#: src/readelf.c:8724 +#: src/readelf.c:8830 #, c-format msgid "" "\n" @@ -6212,21 +6296,21 @@ msgstr "" "\n" "%*s... <повторюється %u разів> ..." -#: src/readelf.c:9231 +#: src/readelf.c:9337 msgid " Owner Data size Type\n" msgstr " Власник Розм. даних Тип\n" -#: src/readelf.c:9249 +#: src/readelf.c:9355 #, c-format msgid " %-13.*s %9 %s\n" msgstr " %-13.*s %9 %s\n" -#: src/readelf.c:9299 +#: src/readelf.c:9405 #, c-format msgid "cannot get content of note section: %s" msgstr "не вдалося отримати вміст розділу записів: %s" -#: src/readelf.c:9326 +#: src/readelf.c:9432 #, c-format msgid "" "\n" @@ -6236,7 +6320,7 @@ msgstr "" "Розділ записів (note) [%2zu] «%s» з % байтів за зміщенням " "%#0:\n" -#: src/readelf.c:9349 +#: src/readelf.c:9455 #, c-format msgid "" "\n" @@ -6245,7 +6329,7 @@ msgstr "" "\n" "Сегмент записів з % байтів за зміщенням %#0:\n" -#: src/readelf.c:9395 +#: src/readelf.c:9501 #, c-format msgid "" "\n" @@ -6254,12 +6338,12 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міститься даних для створення дампу.\n" -#: src/readelf.c:9401 src/readelf.c:9424 +#: src/readelf.c:9518 src/readelf.c:9559 #, c-format msgid "cannot get data for section [%zu] '%s': %s" msgstr "не вдалося отримати дані для розділу [%zu] «%s»: %s" -#: src/readelf.c:9405 +#: src/readelf.c:9523 #, c-format msgid "" "\n" @@ -6268,7 +6352,17 @@ msgstr "" "\n" "Шіст. дамп розділу [%zu] «%s», % байтів за зміщенням %#0:\n" -#: src/readelf.c:9418 +#: src/readelf.c:9528 +#, fuzzy, c-format +msgid "" +"\n" +"Hex dump of section [%zu] '%s', % bytes (%zd uncompressed) at offset " +"%#0:\n" +msgstr "" +"\n" +"Шіст. дамп розділу [%zu] «%s», % байтів за зміщенням %#0:\n" + +#: src/readelf.c:9542 #, c-format msgid "" "\n" @@ -6277,7 +6371,7 @@ msgstr "" "\n" "У розділі [%zu] «%s» не міститься рядків для створення дампу.\n" -#: src/readelf.c:9428 +#: src/readelf.c:9564 #, c-format msgid "" "\n" @@ -6286,7 +6380,17 @@ msgstr "" "\n" "Розділ рядків [%zu] «%s» містить % байтів за зміщенням %#0:\n" -#: src/readelf.c:9476 +#: src/readelf.c:9569 +#, fuzzy, c-format +msgid "" +"\n" +"String section [%zu] '%s' contains % bytes (%zd uncompressed) at " +"offset %#0:\n" +msgstr "" +"\n" +"Розділ рядків [%zu] «%s» містить % байтів за зміщенням %#0:\n" + +#: src/readelf.c:9618 #, c-format msgid "" "\n" @@ -6295,7 +6399,7 @@ msgstr "" "\n" "розділу [%lu] не існує" -#: src/readelf.c:9505 +#: src/readelf.c:9647 #, c-format msgid "" "\n" @@ -6304,12 +6408,12 @@ msgstr "" "\n" "розділу «%s» не існує" -#: src/readelf.c:9562 +#: src/readelf.c:9704 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "не вдалося отримати покажчик символів архіву «%s»: %s" -#: src/readelf.c:9565 +#: src/readelf.c:9707 #, c-format msgid "" "\n" @@ -6318,7 +6422,7 @@ msgstr "" "\n" "У архіві «%s» немає покажчика символів\n" -#: src/readelf.c:9569 +#: src/readelf.c:9711 #, c-format msgid "" "\n" @@ -6327,12 +6431,12 @@ msgstr "" "\n" "Покажчик архіву «%s» містить %zu записів:\n" -#: src/readelf.c:9587 +#: src/readelf.c:9729 #, c-format msgid "cannot extract member at offset %zu in '%s': %s" msgstr "не вдалося видобути елемент за зміщенням %zu у «%s»: %s" -#: src/readelf.c:9592 +#: src/readelf.c:9734 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Елемент архіву «%s» містить:\n" @@ -6886,12 +6990,12 @@ msgstr "не вдалося створити заголовок ELF: %s" msgid "cannot copy ELF header: %s" msgstr "не вдалося скопіювати заголовок ELF: %s" -#: src/unstrip.c:261 src/unstrip.c:1903 src/unstrip.c:1947 +#: src/unstrip.c:261 src/unstrip.c:1939 src/unstrip.c:1982 #, c-format msgid "cannot get number of program headers: %s" msgstr "не вдалося отримати кількість заголовків програми: %s" -#: src/unstrip.c:266 src/unstrip.c:1907 +#: src/unstrip.c:266 src/unstrip.c:1943 #, c-format msgid "cannot create program headers: %s" msgstr "не вдалося створити заголовки програми: %s" @@ -6906,12 +7010,12 @@ msgstr "не вдалося скопіювати заголовок програ msgid "cannot copy section header: %s" msgstr "не вдалося скопіювати заголовок розділу: %s" -#: src/unstrip.c:285 src/unstrip.c:1541 +#: src/unstrip.c:285 src/unstrip.c:1576 #, c-format msgid "cannot get section data: %s" msgstr "не вдалося отримати дані розділу: %s" -#: src/unstrip.c:287 src/unstrip.c:1543 +#: src/unstrip.c:287 src/unstrip.c:1578 #, c-format msgid "cannot copy section data: %s" msgstr "не вдалося скопіювати дані розділу: %s" @@ -6921,138 +7025,138 @@ msgstr "не вдалося скопіювати дані розділу: %s" msgid "cannot create directory '%s'" msgstr "не вдалося створити каталог «%s»" -#: src/unstrip.c:351 src/unstrip.c:768 src/unstrip.c:1575 +#: src/unstrip.c:383 src/unstrip.c:803 src/unstrip.c:1610 #, c-format msgid "cannot get symbol table entry: %s" msgstr "не вдалося отримати запис таблиці символів: %s" -#: src/unstrip.c:367 src/unstrip.c:585 src/unstrip.c:606 src/unstrip.c:618 -#: src/unstrip.c:1596 src/unstrip.c:1769 src/unstrip.c:1793 +#: src/unstrip.c:399 src/unstrip.c:620 src/unstrip.c:641 src/unstrip.c:653 +#: src/unstrip.c:1631 src/unstrip.c:1805 src/unstrip.c:1829 #, c-format msgid "cannot update symbol table: %s" msgstr "не вдалося оновити таблицю символів: %s" -#: src/unstrip.c:377 +#: src/unstrip.c:409 #, c-format msgid "cannot update section header: %s" msgstr "не вдалося оновити заголовок розділу: %s" -#: src/unstrip.c:416 src/unstrip.c:427 +#: src/unstrip.c:448 src/unstrip.c:459 #, c-format msgid "cannot update relocation: %s" msgstr "не вдалося оновити пересування: %s" -#: src/unstrip.c:514 +#: src/unstrip.c:547 #, c-format msgid "cannot get symbol version: %s" msgstr "не вдалося отримати версію символу: %s" -#: src/unstrip.c:526 +#: src/unstrip.c:560 #, c-format msgid "unexpected section type in [%zu] with sh_link to symtab" msgstr "неочікуваний тип розділу у [%zu] з посиланням sh_link на symtab" -#: src/unstrip.c:774 +#: src/unstrip.c:809 #, c-format msgid "invalid string offset in symbol [%zu]" msgstr "некоректне зміщення рядка у символі [%zu]" -#: src/unstrip.c:932 src/unstrip.c:1278 +#: src/unstrip.c:967 src/unstrip.c:1313 #, c-format msgid "cannot read section [%zu] name: %s" msgstr "не вдалося прочитати назву розділу [%zu]: %s" -#: src/unstrip.c:973 src/unstrip.c:992 src/unstrip.c:1027 +#: src/unstrip.c:1008 src/unstrip.c:1027 src/unstrip.c:1062 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s" -#: src/unstrip.c:1013 +#: src/unstrip.c:1048 #, c-format msgid "invalid contents in '%s' section" msgstr "некоректний вміст розділу «%s»" -#: src/unstrip.c:1019 +#: src/unstrip.c:1054 #, c-format msgid "overflow with shnum = %zu in '%s' section" msgstr "" -#: src/unstrip.c:1073 src/unstrip.c:1398 +#: src/unstrip.c:1108 src/unstrip.c:1433 #, c-format msgid "cannot find matching section for [%zu] '%s'" msgstr "не вдалося знайти відповідний розділ для [%zu] «%s»" -#: src/unstrip.c:1198 src/unstrip.c:1213 src/unstrip.c:1479 src/unstrip.c:1731 +#: src/unstrip.c:1233 src/unstrip.c:1248 src/unstrip.c:1514 src/unstrip.c:1766 #, c-format msgid "cannot add section name to string table: %s" msgstr "не вдалося додати назву розділу до таблиці рядків: %s" -#: src/unstrip.c:1222 +#: src/unstrip.c:1257 #, c-format msgid "cannot update section header string table data: %s" msgstr "не вдалося оновити дані заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1249 src/unstrip.c:1253 +#: src/unstrip.c:1284 src/unstrip.c:1288 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "не вдалося визначити індекс розділу заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1257 src/unstrip.c:1261 src/unstrip.c:1494 +#: src/unstrip.c:1292 src/unstrip.c:1296 src/unstrip.c:1529 #, c-format msgid "cannot get section count: %s" msgstr "не вдалося отримати кількість розділів: %s" -#: src/unstrip.c:1264 +#: src/unstrip.c:1299 #, c-format msgid "more sections in stripped file than debug file -- arguments reversed?" msgstr "" "у очищеному файлі більше розділів ніж у файлі з даними для зневаджування — " "помилковий порядок параметрів?" -#: src/unstrip.c:1323 src/unstrip.c:1413 +#: src/unstrip.c:1358 src/unstrip.c:1448 #, c-format msgid "cannot read section header string table: %s" msgstr "не вдалося прочитати таблицю рядків заголовка розділу: %s" -#: src/unstrip.c:1473 +#: src/unstrip.c:1508 #, c-format msgid "cannot add new section: %s" msgstr "не вдалося додати новий розділ: %s" -#: src/unstrip.c:1583 +#: src/unstrip.c:1618 #, c-format msgid "symbol [%zu] has invalid section index" msgstr "символ [%zu] має некоректний індекс розділу" -#: src/unstrip.c:1864 +#: src/unstrip.c:1900 #, c-format msgid "cannot read section data: %s" msgstr "не вдалося прочитати дані розділу: %s" -#: src/unstrip.c:1885 +#: src/unstrip.c:1921 #, c-format msgid "cannot get ELF header: %s" msgstr "не вдалося отримати заголовок ELF: %s" -#: src/unstrip.c:1917 +#: src/unstrip.c:1953 #, c-format msgid "cannot update program header: %s" msgstr "не вдалося оновити заголовок програми: %s" -#: src/unstrip.c:1922 src/unstrip.c:2005 +#: src/unstrip.c:1958 src/unstrip.c:2040 #, c-format msgid "cannot write output file: %s" msgstr "не вдалося записати файл виведених даних: %s" -#: src/unstrip.c:1974 +#: src/unstrip.c:2009 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Дані DWARF не скориговано відповідно до відхилення перед компонуванням; " "спробуйте виправити це командою prelink -u" -#: src/unstrip.c:1977 +#: src/unstrip.c:2012 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -7060,76 +7164,76 @@ msgstr "" "Дані DWARF у «%s» не скориговано відповідно до відхилення перед " "компонуванням; спробуйте виправити це командою prelink -u" -#: src/unstrip.c:1996 src/unstrip.c:2047 src/unstrip.c:2059 src/unstrip.c:2145 +#: src/unstrip.c:2031 src/unstrip.c:2082 src/unstrip.c:2094 src/unstrip.c:2180 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "не вдалося створити дескриптор ELF: %s" -#: src/unstrip.c:2038 +#: src/unstrip.c:2073 msgid "WARNING: " msgstr "УВАГА: " -#: src/unstrip.c:2040 +#: src/unstrip.c:2075 msgid ", use --force" msgstr ", скористайтеся --force" -#: src/unstrip.c:2063 +#: src/unstrip.c:2098 msgid "ELF header identification (e_ident) different" msgstr "Різні ідентифікатори заголовків ELF (e_ident)" -#: src/unstrip.c:2066 +#: src/unstrip.c:2101 msgid "ELF header type (e_type) different" msgstr "Різні типи заголовків ELF (e_type)" -#: src/unstrip.c:2069 +#: src/unstrip.c:2104 msgid "ELF header machine type (e_machine) different" msgstr "Різні типи архітектур заголовків ELF (e_machine)" -#: src/unstrip.c:2072 +#: src/unstrip.c:2107 msgid "stripped program header (e_phnum) smaller than unstripped" msgstr "очищений заголовок програми (e_phnum) є меншим за неочищений" -#: src/unstrip.c:2102 +#: src/unstrip.c:2137 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "не вдалося знайти очищений файл для модуля «%s»: %s" -#: src/unstrip.c:2106 +#: src/unstrip.c:2141 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "не вдалося відкрити очищений файл «%s» для модуля «%s»: %s" -#: src/unstrip.c:2121 +#: src/unstrip.c:2156 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "не вдалося знайти файл діагностичних даних для модуля «%s»: %s" -#: src/unstrip.c:2125 +#: src/unstrip.c:2160 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "не вдалося відкрити файл діагностичних даних «%s» для модуля «%s»: %s" -#: src/unstrip.c:2138 +#: src/unstrip.c:2173 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "у модулі «%s» файл «%s» не очищено strip" -#: src/unstrip.c:2169 +#: src/unstrip.c:2204 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "не вдалося кешувати адреси розділів для модуля «%s»: %s" -#: src/unstrip.c:2302 +#: src/unstrip.c:2337 #, c-format msgid "no matching modules found" msgstr "відповідних модулів не виявлено" -#: src/unstrip.c:2311 +#: src/unstrip.c:2346 #, c-format msgid "matched more than one module" msgstr "встановлено відповідність декількох модулів" -#: src/unstrip.c:2355 +#: src/unstrip.c:2390 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -7137,7 +7241,7 @@ msgstr "" "ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n" "[МОДУЛЬ...]" -#: src/unstrip.c:2356 +#: src/unstrip.c:2391 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" -- cgit v1.2.3 From 3a5fc51573ae88a06d2050ef8425336e23013852 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 8 Jan 2016 16:45:12 +0100 Subject: Fix build on 32bit systems. size_t has a different size on 32 and 64 bit systems. Signed-off-by: Mark Wielaard --- src/ChangeLog | 5 +++++ src/elfcompress.c | 2 +- src/readelf.c | 2 +- tests/ChangeLog | 4 ++++ tests/elfputzdata.c | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index ae2129d9..af98c4de 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2016-01-08 Mark Wielaard + + * elfcompress.c (compress_section): Use %zu to print size_t. + * readelf.c (print_shdr): Use %zx to print size_t. + 2015-12-16 Mark Wielaard * elfcompress.c: New file. diff --git a/src/elfcompress.c b/src/elfcompress.c index 5be2375d..23939db8 100644 --- a/src/elfcompress.c +++ b/src/elfcompress.c @@ -237,7 +237,7 @@ compress_section (Elf_Scn *scn, size_t orig_size, const char *name, } float new = shdr->sh_size; float orig = orig_size ?: 1; - printf (" (%" PRIu64 " => %" PRIu64 " %.2f%%)\n", + printf (" (%zu => %" PRIu64 " %.2f%%)\n", orig_size, shdr->sh_size, (new / orig) * 100); } } diff --git a/src/readelf.c b/src/readelf.c index 85fa92bc..0db192ee 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -1217,7 +1217,7 @@ There are %d section headers, starting at offset %#" PRIx64 ":\n\ { ssize_t size; if ((size = dwelf_scn_gnu_compressed_size (scn)) >= 0) - printf (" [GNU ZLIB %0*" PRIx64 " ]\n", + printf (" [GNU ZLIB %0*zx ]\n", ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 6 : 8, size); else error (0, 0, diff --git a/tests/ChangeLog b/tests/ChangeLog index 453c4186..3d9353c4 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2016-01-08 Mark Wielaard + + * elfputzdata.c (main): Use PRId64 to print 64 bit value. + 2016-01-08 Mark Wielaard * Makefile.am (TESTS): Always unconditionally add diff --git a/tests/elfputzdata.c b/tests/elfputzdata.c index 7e6f0114..67c60908 100644 --- a/tests/elfputzdata.c +++ b/tests/elfputzdata.c @@ -90,7 +90,7 @@ main (int argc, char *argv[]) else { size_t orig_size = shdr->sh_size; - printf ("Lets compress %zd %s, size: %zd\n", + printf ("Lets compress %zd %s, size: %" PRId64 "\n", idx, name, shdr->sh_size); Elf_Data *d = elf_getdata (scn, NULL); if (d == NULL) -- cgit v1.2.3 From 53e447113b60b56fb88109884749133d1b2e0d75 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 8 Jan 2016 21:55:58 +0100 Subject: tests: Fix parentheses in elfputzdata strncmp test. We were checking strlen () == 0 instead of strncmp () == 0. Oops. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 4 ++++ tests/elfputzdata.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/ChangeLog b/tests/ChangeLog index 3d9353c4..366aea9c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2016-01-08 Mark Wielaard + + * elfputzdata.c (main): Fix parentheses in strncmp test. + 2016-01-08 Mark Wielaard * elfputzdata.c (main): Use PRId64 to print 64 bit value. diff --git a/tests/elfputzdata.c b/tests/elfputzdata.c index 67c60908..66ab77ba 100644 --- a/tests/elfputzdata.c +++ b/tests/elfputzdata.c @@ -83,7 +83,7 @@ main (int argc, char *argv[]) printf ("Cannot compress %zd %s\n", idx, name); } else if ((shdr->sh_flags & SHF_COMPRESSED) != 0 - || strncmp (name, ".zdebug", strlen (".zdebug") == 0)) + || strncmp (name, ".zdebug", strlen (".zdebug")) == 0) { printf ("Already compressed %zd %s\n", idx, name); } -- cgit v1.2.3 From c5da7c9e08c2bdb6dba8e115dcc09ed51a07f0e4 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sat, 9 Jan 2016 22:09:48 +0100 Subject: libebl: Fix missing brackets around if statement body. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC6 [will have] a nice new warning that showed a real bug: elfutils/libebl/eblobjnote.c: In function ‘ebl_object_note’: elfutils/libebl/eblobjnote.c:135:5: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation] switch (type) ^~~~~~ elfutils/libebl/eblobjnote.c:45:3: note: ...this ‘if’ clause, but it is not if (! ebl->object_note (name, type, descsz, desc)) ^~ And indeed, it should have been under the if, but wasn't because of missing brackets. Added brackets (and reindent). Signed-off-by: Mark Wielaard --- libebl/ChangeLog | 5 + libebl/eblobjnote.c | 362 ++++++++++++++++++++++++++-------------------------- 2 files changed, 187 insertions(+), 180 deletions(-) diff --git a/libebl/ChangeLog b/libebl/ChangeLog index 312cf90d..aa3d6867 100644 --- a/libebl/ChangeLog +++ b/libebl/ChangeLog @@ -1,3 +1,8 @@ +2016-01-09 Mark Wielaard + + * eblobjnote.c (ebl_object_note): Add brackets around if statement + body. + 2015-12-18 Mark Wielaard * eblopenbackend.c (default_debugscn_p): Also match .zdebug sections. diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c index fa1eb93a..f80a1a57 100644 --- a/libebl/eblobjnote.c +++ b/libebl/eblobjnote.c @@ -1,5 +1,5 @@ /* Print contents of object file note. - Copyright (C) 2002, 2007, 2009, 2011, 2015 Red Hat, Inc. + Copyright (C) 2002, 2007, 2009, 2011, 2015, 2016 Red Hat, Inc. This file is part of elfutils. Written by Ulrich Drepper , 2002. @@ -43,189 +43,191 @@ ebl_object_note (Ebl *ebl, const char *name, uint32_t type, uint32_t descsz, const char *desc) { if (! ebl->object_note (name, type, descsz, desc)) - /* The machine specific function did not know this type. */ + { + /* The machine specific function did not know this type. */ - if (strcmp ("stapsdt", name) == 0) - { - if (type != 3) - { - printf (gettext ("unknown SDT version %u\n"), type); - return; - } - - /* Descriptor starts with three addresses, pc, base ref and - semaphore. Then three zero terminated strings provider, - name and arguments. */ - - union + if (strcmp ("stapsdt", name) == 0) { - Elf64_Addr a64[3]; - Elf32_Addr a32[3]; - } addrs; + if (type != 3) + { + printf (gettext ("unknown SDT version %u\n"), type); + return; + } - size_t addrs_size = gelf_fsize (ebl->elf, ELF_T_ADDR, 3, EV_CURRENT); - if (descsz < addrs_size + 3) - { - invalid_sdt: - printf (gettext ("invalid SDT probe descriptor\n")); - return; - } + /* Descriptor starts with three addresses, pc, base ref and + semaphore. Then three zero terminated strings provider, + name and arguments. */ - Elf_Data src = + union { - .d_type = ELF_T_ADDR, .d_version = EV_CURRENT, - .d_buf = (void *) desc, .d_size = addrs_size - }; - - Elf_Data dst = - { - .d_type = ELF_T_ADDR, .d_version = EV_CURRENT, - .d_buf = &addrs, .d_size = addrs_size - }; - - if (gelf_xlatetom (ebl->elf, &dst, &src, - elf_getident (ebl->elf, NULL)[EI_DATA]) == NULL) - { - printf ("%s\n", elf_errmsg (-1)); - return; - } - - const char *provider = desc + addrs_size; - const char *pname = memchr (provider, '\0', desc + descsz - provider); - if (pname == NULL) - goto invalid_sdt; - - ++pname; - const char *args = memchr (pname, '\0', desc + descsz - pname); - if (args == NULL || - memchr (++args, '\0', desc + descsz - pname) != desc + descsz - 1) - goto invalid_sdt; - - GElf_Addr pc; - GElf_Addr base; - GElf_Addr sem; - if (gelf_getclass (ebl->elf) == ELFCLASS32) - { - pc = addrs.a32[0]; - base = addrs.a32[1]; - sem = addrs.a32[2]; - } - else - { - pc = addrs.a64[0]; - base = addrs.a64[1]; - sem = addrs.a64[2]; - } - - printf (gettext (" PC: ")); - printf ("%#" PRIx64 ",", pc); - printf (gettext (" Base: ")); - printf ("%#" PRIx64 ",", base); - printf (gettext (" Semaphore: ")); - printf ("%#" PRIx64 "\n", sem); - printf (gettext (" Provider: ")); - printf ("%s,", provider); - printf (gettext (" Name: ")); - printf ("%s,", pname); - printf (gettext (" Args: ")); - printf ("'%s'\n", args); - return; - } - - switch (type) - { - case NT_GNU_BUILD_ID: - if (strcmp (name, "GNU") == 0 && descsz > 0) - { - printf (gettext (" Build ID: ")); - uint_fast32_t i; - for (i = 0; i < descsz - 1; ++i) - printf ("%02" PRIx8, (uint8_t) desc[i]); - printf ("%02" PRIx8 "\n", (uint8_t) desc[i]); - } - break; - - case NT_GNU_GOLD_VERSION: - if (strcmp (name, "GNU") == 0 && descsz > 0) - /* A non-null terminated version string. */ - printf (gettext (" Linker version: %.*s\n"), - (int) descsz, desc); - break; - - case NT_GNU_ABI_TAG: - if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0) - { - Elf_Data in = - { - .d_version = EV_CURRENT, - .d_type = ELF_T_WORD, - .d_size = descsz, - .d_buf = (void *) desc - }; - /* Normally NT_GNU_ABI_TAG is just 4 words (16 bytes). If it - is much (4*) larger dynamically allocate memory to convert. */ + Elf64_Addr a64[3]; + Elf32_Addr a32[3]; + } addrs; + + size_t addrs_size = gelf_fsize (ebl->elf, ELF_T_ADDR, 3, EV_CURRENT); + if (descsz < addrs_size + 3) + { + invalid_sdt: + printf (gettext ("invalid SDT probe descriptor\n")); + return; + } + + Elf_Data src = + { + .d_type = ELF_T_ADDR, .d_version = EV_CURRENT, + .d_buf = (void *) desc, .d_size = addrs_size + }; + + Elf_Data dst = + { + .d_type = ELF_T_ADDR, .d_version = EV_CURRENT, + .d_buf = &addrs, .d_size = addrs_size + }; + + if (gelf_xlatetom (ebl->elf, &dst, &src, + elf_getident (ebl->elf, NULL)[EI_DATA]) == NULL) + { + printf ("%s\n", elf_errmsg (-1)); + return; + } + + const char *provider = desc + addrs_size; + const char *pname = memchr (provider, '\0', desc + descsz - provider); + if (pname == NULL) + goto invalid_sdt; + + ++pname; + const char *args = memchr (pname, '\0', desc + descsz - pname); + if (args == NULL || + memchr (++args, '\0', desc + descsz - pname) != desc + descsz - 1) + goto invalid_sdt; + + GElf_Addr pc; + GElf_Addr base; + GElf_Addr sem; + if (gelf_getclass (ebl->elf) == ELFCLASS32) + { + pc = addrs.a32[0]; + base = addrs.a32[1]; + sem = addrs.a32[2]; + } + else + { + pc = addrs.a64[0]; + base = addrs.a64[1]; + sem = addrs.a64[2]; + } + + printf (gettext (" PC: ")); + printf ("%#" PRIx64 ",", pc); + printf (gettext (" Base: ")); + printf ("%#" PRIx64 ",", base); + printf (gettext (" Semaphore: ")); + printf ("%#" PRIx64 "\n", sem); + printf (gettext (" Provider: ")); + printf ("%s,", provider); + printf (gettext (" Name: ")); + printf ("%s,", pname); + printf (gettext (" Args: ")); + printf ("'%s'\n", args); + return; + } + + switch (type) + { + case NT_GNU_BUILD_ID: + if (strcmp (name, "GNU") == 0 && descsz > 0) + { + printf (gettext (" Build ID: ")); + uint_fast32_t i; + for (i = 0; i < descsz - 1; ++i) + printf ("%02" PRIx8, (uint8_t) desc[i]); + printf ("%02" PRIx8 "\n", (uint8_t) desc[i]); + } + break; + + case NT_GNU_GOLD_VERSION: + if (strcmp (name, "GNU") == 0 && descsz > 0) + /* A non-null terminated version string. */ + printf (gettext (" Linker version: %.*s\n"), + (int) descsz, desc); + break; + + case NT_GNU_ABI_TAG: + if (strcmp (name, "GNU") == 0 && descsz >= 8 && descsz % 4 == 0) + { + Elf_Data in = + { + .d_version = EV_CURRENT, + .d_type = ELF_T_WORD, + .d_size = descsz, + .d_buf = (void *) desc + }; + /* Normally NT_GNU_ABI_TAG is just 4 words (16 bytes). If it + is much (4*) larger dynamically allocate memory to convert. */ #define FIXED_TAG_BYTES 16 - uint32_t sbuf[FIXED_TAG_BYTES]; - uint32_t *buf; - if (unlikely (descsz / 4 > FIXED_TAG_BYTES)) - { - buf = malloc (descsz); - if (unlikely (buf == NULL)) - return; - } - else - buf = sbuf; - Elf_Data out = - { - .d_version = EV_CURRENT, - .d_type = ELF_T_WORD, - .d_size = descsz, - .d_buf = buf - }; - - if (elf32_xlatetom (&out, &in, ebl->data) != NULL) - { - const char *os; - switch (buf[0]) - { - case ELF_NOTE_OS_LINUX: - os = "Linux"; - break; - - case ELF_NOTE_OS_GNU: - os = "GNU"; - break; - - case ELF_NOTE_OS_SOLARIS2: - os = "Solaris"; - break; - - case ELF_NOTE_OS_FREEBSD: - os = "FreeBSD"; - break; - - default: - os = "???"; - break; - } - - printf (gettext (" OS: %s, ABI: "), os); - for (size_t cnt = 1; cnt < descsz / 4; ++cnt) - { - if (cnt > 1) - putchar_unlocked ('.'); - printf ("%" PRIu32, buf[cnt]); - } - putchar_unlocked ('\n'); - } - if (descsz / 4 > FIXED_TAG_BYTES) - free (buf); - break; - } - /* FALLTHROUGH */ - - default: - /* Unknown type. */ - break; - } + uint32_t sbuf[FIXED_TAG_BYTES]; + uint32_t *buf; + if (unlikely (descsz / 4 > FIXED_TAG_BYTES)) + { + buf = malloc (descsz); + if (unlikely (buf == NULL)) + return; + } + else + buf = sbuf; + Elf_Data out = + { + .d_version = EV_CURRENT, + .d_type = ELF_T_WORD, + .d_size = descsz, + .d_buf = buf + }; + + if (elf32_xlatetom (&out, &in, ebl->data) != NULL) + { + const char *os; + switch (buf[0]) + { + case ELF_NOTE_OS_LINUX: + os = "Linux"; + break; + + case ELF_NOTE_OS_GNU: + os = "GNU"; + break; + + case ELF_NOTE_OS_SOLARIS2: + os = "Solaris"; + break; + + case ELF_NOTE_OS_FREEBSD: + os = "FreeBSD"; + break; + + default: + os = "???"; + break; + } + + printf (gettext (" OS: %s, ABI: "), os); + for (size_t cnt = 1; cnt < descsz / 4; ++cnt) + { + if (cnt > 1) + putchar_unlocked ('.'); + printf ("%" PRIu32, buf[cnt]); + } + putchar_unlocked ('\n'); + } + if (descsz / 4 > FIXED_TAG_BYTES) + free (buf); + break; + } + /* FALLTHROUGH */ + + default: + /* Unknown type. */ + break; + } + } } -- cgit v1.2.3 From 9b4bce40709611875754cf4931eb91d394042122 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 11 Jan 2016 11:11:44 +0100 Subject: Regenerate .po files. Signed-off-by: Mark Wielaard --- po/ChangeLog | 4 ++++ po/de.po | 24 ++++++++++++------------ po/es.po | 24 ++++++++++++------------ po/ja.po | 24 ++++++++++++------------ po/pl.po | 24 ++++++++++++------------ po/uk.po | 24 ++++++++++++------------ 6 files changed, 64 insertions(+), 60 deletions(-) diff --git a/po/ChangeLog b/po/ChangeLog index 6699fad4..0acdda6c 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +2016-01-11 Mark Wielaard + + * *.po: Regenerate. + 2016-01-08 Mark Wielaard * *.po: Update for 0.165. diff --git a/po/de.po b/po/de.po index 0ee0ca8c..2b937ac8 100644 --- a/po/de.po +++ b/po/de.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils VERSION\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2016-01-08 14:06+0100\n" +"POT-Creation-Date: 2016-01-11 08:48+0100\n" "PO-Revision-Date: 2009-06-29 15:15+0200\n" "Last-Translator: Michael Münch \n" "Language-Team: German\n" @@ -490,57 +490,57 @@ msgstr "" msgid ": %#" msgstr ": %#" -#: libebl/eblobjnote.c:52 +#: libebl/eblobjnote.c:53 #, fuzzy, c-format msgid "unknown SDT version %u\n" msgstr "unbekannte Version" -#: libebl/eblobjnote.c:70 +#: libebl/eblobjnote.c:71 #, fuzzy, c-format msgid "invalid SDT probe descriptor\n" msgstr "ungültiger Datei-Deskriptor" -#: libebl/eblobjnote.c:120 +#: libebl/eblobjnote.c:121 #, c-format msgid " PC: " msgstr "" -#: libebl/eblobjnote.c:122 +#: libebl/eblobjnote.c:123 #, c-format msgid " Base: " msgstr "" -#: libebl/eblobjnote.c:124 +#: libebl/eblobjnote.c:125 #, c-format msgid " Semaphore: " msgstr "" -#: libebl/eblobjnote.c:126 +#: libebl/eblobjnote.c:127 #, c-format msgid " Provider: " msgstr "" -#: libebl/eblobjnote.c:128 +#: libebl/eblobjnote.c:129 #, c-format msgid " Name: " msgstr "" -#: libebl/eblobjnote.c:130 +#: libebl/eblobjnote.c:131 #, c-format msgid " Args: " msgstr "" -#: libebl/eblobjnote.c:140 +#: libebl/eblobjnote.c:141 #, c-format msgid " Build ID: " msgstr " Build ID: " -#: libebl/eblobjnote.c:151 +#: libebl/eblobjnote.c:152 #, c-format msgid " Linker version: %.*s\n" msgstr "" -#: libebl/eblobjnote.c:212 +#: libebl/eblobjnote.c:213 #, c-format msgid " OS: %s, ABI: " msgstr " OS: %s, ABI: " diff --git a/po/es.po b/po/es.po index 9e2c7454..ba586537 100644 --- a/po/es.po +++ b/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils.master.es\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2016-01-08 14:06+0100\n" +"POT-Creation-Date: 2016-01-11 08:48+0100\n" "PO-Revision-Date: 2011-01-10 15:17-0300\n" "Last-Translator: Claudio Rodrigo Pereyra Diaz \n" @@ -487,57 +487,57 @@ msgstr "" msgid ": %#" msgstr ": %#" -#: libebl/eblobjnote.c:52 +#: libebl/eblobjnote.c:53 #, fuzzy, c-format msgid "unknown SDT version %u\n" msgstr "versión desconocida" -#: libebl/eblobjnote.c:70 +#: libebl/eblobjnote.c:71 #, fuzzy, c-format msgid "invalid SDT probe descriptor\n" msgstr "descriptor de archivo inválido" -#: libebl/eblobjnote.c:120 +#: libebl/eblobjnote.c:121 #, c-format msgid " PC: " msgstr "" -#: libebl/eblobjnote.c:122 +#: libebl/eblobjnote.c:123 #, c-format msgid " Base: " msgstr "" -#: libebl/eblobjnote.c:124 +#: libebl/eblobjnote.c:125 #, c-format msgid " Semaphore: " msgstr "" -#: libebl/eblobjnote.c:126 +#: libebl/eblobjnote.c:127 #, c-format msgid " Provider: " msgstr "" -#: libebl/eblobjnote.c:128 +#: libebl/eblobjnote.c:129 #, c-format msgid " Name: " msgstr "" -#: libebl/eblobjnote.c:130 +#: libebl/eblobjnote.c:131 #, c-format msgid " Args: " msgstr "" -#: libebl/eblobjnote.c:140 +#: libebl/eblobjnote.c:141 #, c-format msgid " Build ID: " msgstr " Build ID: " -#: libebl/eblobjnote.c:151 +#: libebl/eblobjnote.c:152 #, c-format msgid " Linker version: %.*s\n" msgstr " Versión del Enlazador: %.*s\n" -#: libebl/eblobjnote.c:212 +#: libebl/eblobjnote.c:213 #, c-format msgid " OS: %s, ABI: " msgstr " OS: %s, ABI: " diff --git a/po/ja.po b/po/ja.po index 76550a3a..6d99a25e 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2016-01-08 14:06+0100\n" +"POT-Creation-Date: 2016-01-11 08:48+0100\n" "PO-Revision-Date: 2009-09-20 15:32+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi \n" "Language-Team: Japanese \n" @@ -488,57 +488,57 @@ msgstr "<不明>" msgid ": %#" msgstr "<不明>: %#" -#: libebl/eblobjnote.c:52 +#: libebl/eblobjnote.c:53 #, fuzzy, c-format msgid "unknown SDT version %u\n" msgstr "不明なバージョン" -#: libebl/eblobjnote.c:70 +#: libebl/eblobjnote.c:71 #, fuzzy, c-format msgid "invalid SDT probe descriptor\n" msgstr "不当なファイル記述子" -#: libebl/eblobjnote.c:120 +#: libebl/eblobjnote.c:121 #, c-format msgid " PC: " msgstr "" -#: libebl/eblobjnote.c:122 +#: libebl/eblobjnote.c:123 #, c-format msgid " Base: " msgstr "" -#: libebl/eblobjnote.c:124 +#: libebl/eblobjnote.c:125 #, c-format msgid " Semaphore: " msgstr "" -#: libebl/eblobjnote.c:126 +#: libebl/eblobjnote.c:127 #, c-format msgid " Provider: " msgstr "" -#: libebl/eblobjnote.c:128 +#: libebl/eblobjnote.c:129 #, c-format msgid " Name: " msgstr "" -#: libebl/eblobjnote.c:130 +#: libebl/eblobjnote.c:131 #, c-format msgid " Args: " msgstr "" -#: libebl/eblobjnote.c:140 +#: libebl/eblobjnote.c:141 #, c-format msgid " Build ID: " msgstr " ビルト ID: " -#: libebl/eblobjnote.c:151 +#: libebl/eblobjnote.c:152 #, c-format msgid " Linker version: %.*s\n" msgstr "" -#: libebl/eblobjnote.c:212 +#: libebl/eblobjnote.c:213 #, c-format msgid " OS: %s, ABI: " msgstr " OS: %s、ABI: " diff --git a/po/pl.po b/po/pl.po index 14b96053..66c4f59f 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2016-01-08 14:06+0100\n" +"POT-Creation-Date: 2016-01-11 08:48+0100\n" "PO-Revision-Date: 2016-01-07 15:44+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" @@ -480,57 +480,57 @@ msgstr "" msgid ": %#" msgstr ": %#" -#: libebl/eblobjnote.c:52 +#: libebl/eblobjnote.c:53 #, c-format msgid "unknown SDT version %u\n" msgstr "nieznana wersja SDT %u\n" -#: libebl/eblobjnote.c:70 +#: libebl/eblobjnote.c:71 #, c-format msgid "invalid SDT probe descriptor\n" msgstr "nieprawidłowy deskryptor sondy SDT\n" -#: libebl/eblobjnote.c:120 +#: libebl/eblobjnote.c:121 #, c-format msgid " PC: " msgstr " PC: " -#: libebl/eblobjnote.c:122 +#: libebl/eblobjnote.c:123 #, c-format msgid " Base: " msgstr " Podstawa: " -#: libebl/eblobjnote.c:124 +#: libebl/eblobjnote.c:125 #, c-format msgid " Semaphore: " msgstr " Semafor: " -#: libebl/eblobjnote.c:126 +#: libebl/eblobjnote.c:127 #, c-format msgid " Provider: " msgstr " Dostawca: " -#: libebl/eblobjnote.c:128 +#: libebl/eblobjnote.c:129 #, c-format msgid " Name: " msgstr " Nazwa: " -#: libebl/eblobjnote.c:130 +#: libebl/eblobjnote.c:131 #, c-format msgid " Args: " msgstr " Parametry: " -#: libebl/eblobjnote.c:140 +#: libebl/eblobjnote.c:141 #, c-format msgid " Build ID: " msgstr " Identyfikator kopii: " -#: libebl/eblobjnote.c:151 +#: libebl/eblobjnote.c:152 #, c-format msgid " Linker version: %.*s\n" msgstr " Wersja konsolidatora: %.*s\n" -#: libebl/eblobjnote.c:212 +#: libebl/eblobjnote.c:213 #, c-format msgid " OS: %s, ABI: " msgstr " System operacyjny: %s, ABI: " diff --git a/po/uk.po b/po/uk.po index 1c5f683a..7e875e2b 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2016-01-08 14:06+0100\n" +"POT-Creation-Date: 2016-01-11 08:48+0100\n" "PO-Revision-Date: 2015-09-26 16:41+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -484,57 +484,57 @@ msgstr "<невідомо>" msgid ": %#" msgstr "<невідомо>: %#" -#: libebl/eblobjnote.c:52 +#: libebl/eblobjnote.c:53 #, c-format msgid "unknown SDT version %u\n" msgstr "невідома версія SDT, %u\n" -#: libebl/eblobjnote.c:70 +#: libebl/eblobjnote.c:71 #, c-format msgid "invalid SDT probe descriptor\n" msgstr "некоректний дескриптор зондування SDT\n" -#: libebl/eblobjnote.c:120 +#: libebl/eblobjnote.c:121 #, c-format msgid " PC: " msgstr " PC: " -#: libebl/eblobjnote.c:122 +#: libebl/eblobjnote.c:123 #, c-format msgid " Base: " msgstr "Основа: " -#: libebl/eblobjnote.c:124 +#: libebl/eblobjnote.c:125 #, c-format msgid " Semaphore: " msgstr " Семафор: " -#: libebl/eblobjnote.c:126 +#: libebl/eblobjnote.c:127 #, c-format msgid " Provider: " msgstr " Постачальник: " -#: libebl/eblobjnote.c:128 +#: libebl/eblobjnote.c:129 #, c-format msgid " Name: " msgstr "Назва: " -#: libebl/eblobjnote.c:130 +#: libebl/eblobjnote.c:131 #, c-format msgid " Args: " msgstr " Арг.: " -#: libebl/eblobjnote.c:140 +#: libebl/eblobjnote.c:141 #, c-format msgid " Build ID: " msgstr " Ід. збирання: " -#: libebl/eblobjnote.c:151 +#: libebl/eblobjnote.c:152 #, c-format msgid " Linker version: %.*s\n" msgstr " Версія компонувальника: %.*s\n" -#: libebl/eblobjnote.c:212 +#: libebl/eblobjnote.c:213 #, c-format msgid " OS: %s, ABI: " msgstr " ОС: %s, ABI: " -- cgit v1.2.3 From 344ca0775da729e1bfdd61bb88ba4c64befece07 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 13 Jan 2016 17:16:48 +0100 Subject: libelf: Add ELF compression types and defines to libelf.h for older glibc. Older glibc elf.h might not define the new ELF compression defines and types. If not just define them in libelf.h directly to make the libelf headers work on older glibc systems. Also include a testcase to check the libelf headers build against the system elf.h. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810885 Signed-off-by: Mark Wielaard --- libelf/ChangeLog | 5 +++++ libelf/libelf.h | 28 ++++++++++++++++++++++++++++ tests/ChangeLog | 8 ++++++++ tests/Makefile.am | 9 +++++++-- tests/system-elf-libelf-test.c | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 tests/system-elf-libelf-test.c diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 3a1fe91d..aabf6f6d 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,8 @@ +2016-01-13 Mark Wielaard + + * libelf.h: Check SHF_COMPRESSED is defined. If not define it and the + associated ELF compression types/defines. + 2015-11-26 Mark Wielaard * elf_compress.c (__libelf_decompress_elf): New function, extracted diff --git a/libelf/libelf.h b/libelf/libelf.h index 364e7767..c0d6389f 100644 --- a/libelf/libelf.h +++ b/libelf/libelf.h @@ -35,6 +35,34 @@ /* Get the ELF types. */ #include +#ifndef SHF_COMPRESSED + /* Older glibc elf.h might not yet define the ELF compression types. */ + #define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */ + + /* Section compression header. Used when SHF_COMPRESSED is set. */ + + typedef struct + { + Elf32_Word ch_type; /* Compression format. */ + Elf32_Word ch_size; /* Uncompressed data size. */ + Elf32_Word ch_addralign; /* Uncompressed data alignment. */ + } Elf32_Chdr; + + typedef struct + { + Elf64_Word ch_type; /* Compression format. */ + Elf64_Word ch_reserved; + Elf64_Xword ch_size; /* Uncompressed data size. */ + Elf64_Xword ch_addralign; /* Uncompressed data alignment. */ + } Elf64_Chdr; + + /* Legal values for ch_type (compression algorithm). */ + #define ELFCOMPRESS_ZLIB 1 /* ZLIB/DEFLATE algorithm. */ + #define ELFCOMPRESS_LOOS 0x60000000 /* Start of OS-specific. */ + #define ELFCOMPRESS_HIOS 0x6fffffff /* End of OS-specific. */ + #define ELFCOMPRESS_LOPROC 0x70000000 /* Start of processor-specific. */ + #define ELFCOMPRESS_HIPROC 0x7fffffff /* End of processor-specific. */ +#endif /* Known translation types. */ typedef enum diff --git a/tests/ChangeLog b/tests/ChangeLog index 366aea9c..234ae562 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,11 @@ +2016-01-13 Mark Wielaard + + * system-elf-libelf-test.c: New test. + * Makefile.am (TESTS): Add system-elf-libelf-test, if !STANDALONE. + (check_PROGRAMS): Likewise. + (system_elf_libelf_test_CPPFLAGS): New variable. + (system_elf_libelf_test_LDADD): Likewise. + 2016-01-08 Mark Wielaard * elfputzdata.c (main): Fix parentheses in strncmp test. diff --git a/tests/Makefile.am b/tests/Makefile.am index d09a6d7b..7b9e1083 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -136,8 +136,8 @@ export ELFUTILS_DISABLE_DEMANGLE = 1 endif if !STANDALONE -check_PROGRAMS += msg_tst md5-sha1-test -TESTS += msg_tst md5-sha1-test +check_PROGRAMS += msg_tst md5-sha1-test system-elf-libelf-test +TESTS += msg_tst md5-sha1-test system-elf-libelf-test endif if LZMA @@ -473,6 +473,11 @@ elfgetzdata_LDADD = $(libelf) elfputzdata_LDADD = $(libelf) zstrptr_LDADD = $(libelf) +# We want to test the libelf header against the system elf.h header. +# Don't include any -I CPPFLAGS. +system_elf_libelf_test_CPPFLAGS = +system_elf_libelf_test_LDADD = $(libelf) + if GCOV check: check-am coverage .PHONY: coverage diff --git a/tests/system-elf-libelf-test.c b/tests/system-elf-libelf-test.c new file mode 100644 index 00000000..7dfe4989 --- /dev/null +++ b/tests/system-elf-libelf-test.c @@ -0,0 +1,35 @@ +/* Explicit test compiling with system elf.h header plus libelf header. + + Copyright (C) 2016 Red Hat, Inc. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include +#include +#include "../libelf/libelf.h" + +int +main (void) +{ + /* Trivial test, this is really a compile test anyway. */ + if (elf_version (EV_CURRENT) == EV_NONE) + return -1; + + /* This will obviously fail. It is just to check that Elf32_Chdr and + elf32_getchdr are available (both at compile time and runtime). */ + Elf32_Chdr *chdr = elf32_getchdr (NULL); + + return chdr == NULL ? 0 : -1; +} -- cgit v1.2.3 From 7f036dd381506ef9f8422210d74cf38868413d3c Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 14 Jan 2016 13:46:12 -0500 Subject: gitignore: update Signed-off-by: Mike Frysinger --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index a9447621..75043fe4 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,8 @@ Makefile.in /config/config.sub /config/depcomp /config/install-sh +/config/libdw.pc +/config/libelf.pc /config/missing /config/test-driver /config/ylwrap @@ -55,6 +57,7 @@ Makefile.in /src/addr2line /src/ar /src/elfcmp +/src/elfcompress /src/elflint /src/findtextrel /src/ld -- cgit v1.2.3 From 2d703bf188cf434255854d8e3c077f2fac55d623 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 14 Jan 2016 13:46:18 -0500 Subject: configure: clarify zlib error message Also drop the spurious quotes. Signed-off-by: Mike Frysinger --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 67062cea..9a3301f5 100644 --- a/configure.ac +++ b/configure.ac @@ -244,7 +244,7 @@ dnl zlib is mandatory. save_LIBS="$LIBS" LIBS= eu_ZIPLIB(zlib,ZLIB,z,gzdirect,gzip) -AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR("zlib not found")]) +AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR([zlib not found but is required])]) LIBS="$save_LIBS" dnl Test for bzlib and xz/lzma, gives BZLIB/LZMALIB .am -- cgit v1.2.3 From d460773dd4fdeb98d9271f741e0a54f05ced876d Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 13 Jan 2016 22:49:02 +0100 Subject: tests: Guard linux specific header includes with ifdef __linux__. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 4 ++++ tests/dwfl-proc-attach.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/tests/ChangeLog b/tests/ChangeLog index 234ae562..34104ffe 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2016-01-13 Mark Wielaard + + * dwfl-proc-attach.c: Guard linux specific header. + 2016-01-13 Mark Wielaard * system-elf-libelf-test.c: New test. diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c index 0ba0be24..e7bb2010 100644 --- a/tests/dwfl-proc-attach.c +++ b/tests/dwfl-proc-attach.c @@ -22,6 +22,7 @@ #include #include #include +#ifdef __linux__ #include #include #include @@ -29,6 +30,7 @@ #include #include ELFUTILS_HEADER(dwfl) #include +#endif #ifndef __linux__ int -- cgit v1.2.3 From 624e3cb81d436282fa9f6ce4fa63203bad236057 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 13 Jan 2016 22:57:03 +0100 Subject: elflint: Recognize ELFOSABI_FREEBSD which Debian kFreeBSD uses. Signed-off-by: Mark Wielaard --- src/ChangeLog | 4 ++++ src/elflint.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index af98c4de..707c2717 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2016-01-13 Mark Wielaard + + * elflint.c (check_elf_header): Recognize ELFOSABI_FREEBSD. + 2016-01-08 Mark Wielaard * elfcompress.c (compress_section): Use %zu to print size_t. diff --git a/src/elflint.c b/src/elflint.c index 7a7b9ce4..eae77614 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -380,9 +380,11 @@ check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) ERROR (gettext ("unknown ELF header version number e_ident[%d] == %d\n"), EI_VERSION, ehdr->e_ident[EI_VERSION]); - /* We currently don't handle any OS ABIs other than Linux. */ + /* We currently don't handle any OS ABIs other than Linux and the + kFreeBSD variant of Debian. */ if (ehdr->e_ident[EI_OSABI] != ELFOSABI_NONE - && ehdr->e_ident[EI_OSABI] != ELFOSABI_LINUX) + && ehdr->e_ident[EI_OSABI] != ELFOSABI_LINUX + && ehdr->e_ident[EI_OSABI] != ELFOSABI_FREEBSD) ERROR (gettext ("unsupported OS ABI e_ident[%d] == '%s'\n"), EI_OSABI, ebl_osabi_name (ebl, ehdr->e_ident[EI_OSABI], buf, sizeof (buf))); -- cgit v1.2.3 From 0cd02dcafcfdaff56f483f41c0ec45de756c7083 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 13 Jan 2016 23:06:33 +0100 Subject: tests: Skip dwfl-bug-fd-leak test if dwfl_linux_proc_report is unsupported. Signed-off-by: Mark Wielaard --- tests/ChangeLog | 4 ++++ tests/dwfl-bug-fd-leak.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/tests/ChangeLog b/tests/ChangeLog index 34104ffe..37f98112 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2016-01-13 Mark Wielaard + + * dwfl-bug-fd-leak.c: Skip test unless on __linux__. + 2016-01-13 Mark Wielaard * dwfl-proc-attach.c: Guard linux specific header. diff --git a/tests/dwfl-bug-fd-leak.c b/tests/dwfl-bug-fd-leak.c index bcbfb290..689cdd79 100644 --- a/tests/dwfl-bug-fd-leak.c +++ b/tests/dwfl-bug-fd-leak.c @@ -27,6 +27,15 @@ #include #include #include + +#ifndef __linux__ +int +main (void) +{ + return 77; /* dwfl_linux_proc_report is linux specific. */ +} +#else + #include #include ELFUTILS_HEADER(dwfl) @@ -104,3 +113,4 @@ main (void) return 0; } +#endif -- cgit v1.2.3 From 203f0a3eec8c630c5183fb9984d66339c1ea3c31 Mon Sep 17 00:00:00 2001 From: Chih-Hung Hsieh Date: Fri, 22 Jan 2016 10:04:33 -0800 Subject: Move nested functions in elf_compress.c and elf_strptr.c. * elf_compress.c (__libelf_compress): do_deflate_cleanup * elf_strptr.c (elf_strptr): get_zdata Signed-off-by: Chih-Hung Hsieh --- libelf/ChangeLog | 7 +++++++ libelf/elf_compress.c | 25 +++++++++++++++---------- libelf/elf_strptr.c | 33 +++++++++++++++++---------------- 3 files changed, 39 insertions(+), 26 deletions(-) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index aabf6f6d..afe6a6a5 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,10 @@ +2016-01-22 Chih-Hung Hsieh + + * elf_compress.c (__libelf_compress): Move nested function + 'do_deflate_cleanup' to file scope to compile with clang. + * elf_strptr.c (elf_strptr): Move nested function 'get_zdata' + to file scope to compile with clang. + 2016-01-13 Mark Wielaard * libelf.h: Check SHF_COMPRESSED is defined. If not define it and the diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c index ec5b7174..4c7c35e1 100644 --- a/libelf/elf_compress.c +++ b/libelf/elf_compress.c @@ -45,6 +45,21 @@ # define MAX(a, b) ((a) > (b) ? (a) : (b)) #endif +/* Cleanup and return result. Don't leak memory. */ +static void * +do_deflate_cleanup (void *result, z_stream *z, void *out_buf, + int ei_data, Elf_Data *cdatap) +{ + deflateEnd (z); + free (out_buf); + if (ei_data != MY_ELFDATA) + free (cdatap->d_buf); + return result; +} + +#define deflate_cleanup(result) \ + do_deflate_cleanup(result, &z, out_buf, ei_data, &cdata) + /* Given a section, uses the (in-memory) Elf_Data to extract the original data size (including the given header size) and data alignment. Returns a buffer that has at least hsize bytes (for the @@ -109,16 +124,6 @@ __libelf_compress (Elf_Scn *scn, size_t hsize, int ei_data, Elf_Data cdata; cdata.d_buf = NULL; - /* Cleanup and return result. Don't leak memory. */ - void *deflate_cleanup (void *result) - { - deflateEnd (&z); - free (out_buf); - if (ei_data != MY_ELFDATA) - free (cdata.d_buf); - return result; - } - /* Loop over data buffers. */ int flush = Z_NO_FLUSH; do diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c index e3b5876b..ea210459 100644 --- a/libelf/elf_strptr.c +++ b/libelf/elf_strptr.c @@ -37,6 +37,21 @@ #include "libelfP.h" +static void * +get_zdata (Elf_Scn *strscn) +{ + size_t zsize, zalign; + void *zdata = __libelf_decompress_elf (strscn, &zsize, &zalign); + if (zdata == NULL) + return NULL; + + strscn->zdata_base = zdata; + strscn->zdata_size = zsize; + strscn->zdata_align = zalign; + + return zdata; +} + char * elf_strptr (Elf *elf, size_t idx, size_t offset) { @@ -83,20 +98,6 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) } } - void *get_zdata (void) - { - size_t zsize, zalign; - void *zdata = __libelf_decompress_elf (strscn, &zsize, &zalign); - if (zdata == NULL) - return NULL; - - strscn->zdata_base = zdata; - strscn->zdata_size = zsize; - strscn->zdata_align = zalign; - - return zdata; - } - size_t sh_size = 0; if (elf->class == ELFCLASS32) { @@ -112,7 +113,7 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) sh_size = shdr->sh_size; else { - if (strscn->zdata_base == NULL && get_zdata () == NULL) + if (strscn->zdata_base == NULL && get_zdata (strscn) == NULL) goto out; sh_size = strscn->zdata_size; } @@ -138,7 +139,7 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) sh_size = shdr->sh_size; else { - if (strscn->zdata_base == NULL && get_zdata () == NULL) + if (strscn->zdata_base == NULL && get_zdata (strscn) == NULL) goto out; sh_size = strscn->zdata_size; } -- cgit v1.2.3