aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:01:46 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:01:46 +0000
commit247d16f6259e3b591028d2cdc609feb407e8b317 (patch)
tree006ab572b95c18c72bd50d787eb0bf4970fd63a2
parent79e60315c7033a9e6a2c4c54d33fa30c7e755875 (diff)
parentbe1288d30f9ed61f81be05146a8282461a7e61ac (diff)
downloadelfutils-aml_per_341614000.tar.gz
Change-Id: I34ad87d0e1f1a1e11c1619b57507a6f35b428f4b
-rw-r--r--.mailmap25
-rw-r--r--AUTHORS106
-rw-r--r--AUTHORS.sh12
-rw-r--r--ChangeLog86
-rw-r--r--METADATA8
-rw-r--r--Makefile.am3
-rw-r--r--NEWS32
-rw-r--r--backends/ChangeLog20
-rw-r--r--backends/Makefile.am3
-rw-r--r--backends/arm_init.c1
-rw-r--r--backends/arm_machineflagname.c156
-rw-r--r--backends/ppc_initreg.c66
-rw-r--r--backends/riscv_init.c4
-rw-r--r--backends/riscv_symbol.c45
-rw-r--r--config.h9
-rw-r--r--config/ChangeLog54
-rw-r--r--config/debuginfod.service2
-rw-r--r--config/debuginfod.sysconfig21
-rw-r--r--config/elfutils.spec.in38
-rw-r--r--config/eu.am2
-rw-r--r--config/profile.csh.in10
-rw-r--r--config/profile.sh.in9
-rw-r--r--configure.ac83
-rw-r--r--debuginfod/ChangeLog262
-rw-r--r--debuginfod/Makefile.am4
-rw-r--r--debuginfod/debuginfod-client.c837
-rw-r--r--debuginfod/debuginfod-find.c23
-rw-r--r--debuginfod/debuginfod.cxx714
-rw-r--r--debuginfod/debuginfod.h.in11
-rw-r--r--debuginfod/libdebuginfod.map4
-rw-r--r--doc/ChangeLog46
-rw-r--r--doc/Makefile.am3
-rw-r--r--doc/debuginfod-client-config.711
-rw-r--r--doc/debuginfod.870
-rw-r--r--doc/debuginfod.service.830
-rw-r--r--doc/debuginfod_find_debuginfo.349
-rw-r--r--doc/debuginfod_find_section.31
-rw-r--r--doc/debuginfod_get_headers.32
-rw-r--r--doc/readelf.15
-rw-r--r--lib/ChangeLog34
-rw-r--r--lib/color.c2
-rw-r--r--lib/dynamicsizehash_concurrent.c26
-rw-r--r--lib/eu-config.h1
-rw-r--r--lib/printversion.c3
-rw-r--r--lib/system.h25
-rw-r--r--lib/xasprintf.c1
-rw-r--r--lib/xmalloc.c1
-rw-r--r--libasm/ChangeLog8
-rw-r--r--libasm/asm_abort.c1
-rw-r--r--libasm/asm_addint8.c2
-rw-r--r--libasm/asm_begin.c2
-rw-r--r--libasm/asm_end.c3
-rw-r--r--libasm/asm_error.c1
-rw-r--r--libasm/asm_newscn.c1
-rw-r--r--libasm/libasmP.h3
-rw-r--r--libcpu/ChangeLog16
-rw-r--r--libcpu/Makefile.am10
-rw-r--r--libcpu/i386_disasm.c3
-rw-r--r--libcpu/i386_lex.l1
-rw-r--r--libcpu/i386_parse.y1
-rw-r--r--libcpu/memory-access.h29
-rw-r--r--libcpu/riscv_disasm.c2
-rw-r--r--libdw/ChangeLog51
-rw-r--r--libdw/dwarf.h19
-rw-r--r--libdw/dwarf_begin_elf.c2
-rw-r--r--libdw/dwarf_end.c1
-rw-r--r--libdw/dwarf_getlocation.c5
-rw-r--r--libdw/dwarf_next_cfi.c61
-rw-r--r--libdw/dwarf_setalt.c2
-rw-r--r--libdw/libdw.map7
-rw-r--r--libdw/libdwP.h2
-rw-r--r--libdw/libdw_find_split_unit.c1
-rw-r--r--libdw/memory-access.h11
-rw-r--r--libdwelf/ChangeLog15
-rw-r--r--libdwelf/dwelf_elf_begin.c2
-rw-r--r--libdwelf/dwelf_elf_e_machine_string.c4
-rw-r--r--libdwelf/dwelf_strtab.c1
-rw-r--r--libdwfl/ChangeLog242
-rw-r--r--libdwfl/Makefile.am5
-rw-r--r--libdwfl/argp-std.c2
-rw-r--r--libdwfl/core-file.c39
-rw-r--r--libdwfl/debuginfod-client.c36
-rw-r--r--libdwfl/dwfl_build_id_find_debuginfo.c2
-rw-r--r--libdwfl/dwfl_build_id_find_elf.c1
-rw-r--r--libdwfl/dwfl_end.c1
-rw-r--r--libdwfl/dwfl_error.c1
-rw-r--r--libdwfl/dwfl_frame.c1
-rw-r--r--libdwfl/dwfl_frame_regs.c12
-rw-r--r--libdwfl/dwfl_module.c1
-rw-r--r--libdwfl/dwfl_module_getdwarf.c1
-rw-r--r--libdwfl/dwfl_report_elf.c2
-rw-r--r--libdwfl/dwfl_segment_report_module.c186
-rw-r--r--libdwfl/find-debuginfo.c1
-rw-r--r--libdwfl/frame_unwind.c40
-rw-r--r--libdwfl/gzip.c2
-rw-r--r--libdwfl/image-header.c28
-rw-r--r--libdwfl/libdwfl.h52
-rw-r--r--libdwfl/libdwflP.h18
-rw-r--r--libdwfl/libdwfl_crc32.c1
-rw-r--r--libdwfl/link_map.c94
-rw-r--r--libdwfl/linux-core-attach.c2
-rw-r--r--libdwfl/linux-pid-attach.c1
-rw-r--r--libdwfl/offline.c35
-rw-r--r--libdwfl/open.c32
-rw-r--r--libebl/ChangeLog25
-rw-r--r--libebl/ebl-hooks.h2
-rw-r--r--libebl/eblclosebackend.c1
-rw-r--r--libebl/ebldynamictagname.c2
-rw-r--r--libebl/eblmachineflagname.c11
-rw-r--r--libebl/eblobjnote.c4
-rw-r--r--libebl/eblobjnotetypename.c3
-rw-r--r--libebl/eblopenbackend.c6
-rw-r--r--libebl/libeblP.h1
-rw-r--r--libelf/ChangeLog110
-rw-r--r--libelf/common.h5
-rw-r--r--libelf/elf.h224
-rw-r--r--libelf/elf32_checksum.c5
-rw-r--r--libelf/elf32_getphdr.c2
-rw-r--r--libelf/elf32_getshdr.c2
-rw-r--r--libelf/elf32_updatefile.c3
-rw-r--r--libelf/elf32_updatenull.c2
-rw-r--r--libelf/elf32_xlatetof.c5
-rw-r--r--libelf/elf32_xlatetom.c1
-rw-r--r--libelf/elf_begin.c70
-rw-r--r--libelf/elf_cntl.c2
-rw-r--r--libelf/elf_compress.c2
-rw-r--r--libelf/elf_end.c1
-rw-r--r--libelf/elf_error.c1
-rw-r--r--libelf/elf_getarsym.c10
-rw-r--r--libelf/elf_getdata.c18
-rw-r--r--libelf/elf_getdata_rawchunk.c18
-rw-r--r--libelf/elf_getshdrstrndx.c2
-rw-r--r--libelf/elf_readall.c2
-rw-r--r--libelf/elf_update.c4
-rw-r--r--libelf/gelf_xlate.c11
-rw-r--r--libelf/libelfP.h6
-rw-r--r--libelf/libelf_crc32.c1
-rw-r--r--libelf/nlist.c1
-rw-r--r--libelf/version_xlate.h73
-rw-r--r--m4/ChangeLog9
-rw-r--r--m4/biarch.m44
-rw-r--r--m4/zip.m42
-rw-r--r--po/ChangeLog15
-rw-r--r--po/de.po2441
-rw-r--r--po/es.po2470
-rw-r--r--po/ja.po2450
-rw-r--r--po/pl.po2470
-rw-r--r--po/uk.po2466
-rw-r--r--src/ChangeLog100
-rw-r--r--src/addr2line.c18
-rw-r--r--src/ar.c46
-rw-r--r--src/arlib-argp.c1
-rw-r--r--src/arlib.c9
-rw-r--r--src/arlib.h2
-rw-r--r--src/arlib2.c1
-rw-r--r--src/elfclassify.c2
-rw-r--r--src/elfcmp.c1
-rw-r--r--src/elfcompress.c29
-rw-r--r--src/elflint.c13
-rw-r--r--src/findtextrel.c1
-rw-r--r--src/nm.c25
-rw-r--r--src/objdump.c17
-rw-r--r--src/ranlib.c1
-rw-r--r--src/readelf.c421
-rw-r--r--src/size.c23
-rw-r--r--src/strings.c12
-rw-r--r--src/strip.c71
-rw-r--r--src/unstrip.c167
-rw-r--r--tests/ChangeLog186
-rw-r--r--tests/Makefile.am103
-rw-r--r--tests/alldts.c5
-rw-r--r--tests/backtrace-subr.sh4
-rw-r--r--tests/debuginfod-rpms/hello2.specfile (renamed from tests/debuginfod-rpms/hello2.spec.)0
-rw-r--r--tests/debuginfod-rpms/hello3.specfile (renamed from tests/debuginfod-rpms/hello3.spec.)0
-rwxr-xr-xtests/debuginfod-subr.sh14
-rw-r--r--tests/dwfl-report-offline-memory.c102
-rw-r--r--tests/low_high_pc.c2
-rwxr-xr-xtests/run-alldts.sh2
-rwxr-xr-xtests/run-ar-N.sh65
-rwxr-xr-xtests/run-debuginfod-archive-groom.sh1
-rwxr-xr-xtests/run-debuginfod-archive-rename.sh3
-rwxr-xr-xtests/run-debuginfod-archive-test.sh1
-rwxr-xr-xtests/run-debuginfod-artifact-running.sh3
-rwxr-xr-xtests/run-debuginfod-dlopen.sh3
-rwxr-xr-xtests/run-debuginfod-extraction-passive.sh4
-rwxr-xr-xtests/run-debuginfod-extraction.sh3
-rwxr-xr-xtests/run-debuginfod-fd-prefetch-caches.sh126
-rwxr-xr-xtests/run-debuginfod-federation-link.sh5
-rwxr-xr-xtests/run-debuginfod-federation-metrics.sh5
-rwxr-xr-xtests/run-debuginfod-federation-sqlite.sh22
-rwxr-xr-xtests/run-debuginfod-malformed.sh3
-rwxr-xr-xtests/run-debuginfod-negative-cache.sh (renamed from tests/run-debuginfod-000-permission.sh)9
-rwxr-xr-xtests/run-debuginfod-percent-escape.sh5
-rwxr-xr-xtests/run-debuginfod-query-retry.sh2
-rwxr-xr-xtests/run-debuginfod-response-headers.sh61
-rwxr-xr-xtests/run-debuginfod-section.sh135
-rwxr-xr-xtests/run-debuginfod-sizetime.sh4
-rwxr-xr-xtests/run-debuginfod-tmp-home.sh5
-rwxr-xr-xtests/run-debuginfod-webapi-concurrency.sh69
-rwxr-xr-xtests/run-debuginfod-writable.sh3
-rwxr-xr-xtests/run-dwfl-report-offline-memory.sh26
-rwxr-xr-xtests/run-large-elf-file.sh11
-rwxr-xr-xtests/run-readelf-Dd.sh66
-rwxr-xr-xtests/run-readelf-arm-flags.sh30
-rwxr-xr-xtests/run-readelf-d.sh7
-rwxr-xr-xtests/run-readelf-s.sh6
-rwxr-xr-xtests/run-strip-test.sh2
-rwxr-xr-xtests/testfile-arm-flags.bz2bin0 -> 2593 bytes
-rw-r--r--tests/varlocs.c11
-rw-r--r--version.h2
210 files changed, 11677 insertions, 7427 deletions
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 00000000..fd42169b
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,25 @@
+# help out git with erroneous or incomplete email address mappings
+
+Piotr DrÄ…g <raven@fedoraproject.org>
+Domingo Becker <beckerde@fedoraproject.org>
+Ulrich Drepper <drepper@x201.akkadia.org>
+Ulrich Drepper <drepper@redhat.com.roland>
+Hyu_gabaru Ryu_ichi <hyuuga@fedoraproject.org>
+kiyoto hashida <khasida@fedoraproject.org>
+Claudio Rodrigo Pereyra Diaz <elsupergomez@fedoraproject.org>
+Gladys Guerrero <gguerrer@fedoraproject.org>
+Wei Liu <leahliu@fedoraproject.org>
+Michael Münch <micm@fedoraproject.org>
+Noah Sanci <nsanci@redhat.com>
+Noriko Mizumoto <noriko@fedoraproject.org>
+Cornelius Neckenig <tbull@fedoraproject.org>
+Francesco Tombolini <tombo@fedoraproject.org>
+Thomas Spura <tomspur@fedoraproject.org>
+Geert Warrink <warrink@fedoraproject.org>
+Yulia Poyarkova <ypoyarko@fedoraproject.org>
+Yuri Chornoivan <yurchor@fedoraproject.org>
+Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
+Daniel Cabrera <logan@fedoraproject.org>
+Thomas Canniot <mrtom@fedoraproject.org>
+Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> наб via Elfutils-devel <elfutils-devel@sourceware.org>
+
diff --git a/AUTHORS b/AUTHORS
index ef3c5430..45cb1f8d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,104 @@
-For Now:
-Ulrich Drepper.
-Roland McGrath
+Aaron Merey
+Adam Markey
+Adrian Ratiu
+Ahelenia Ziemiańska
+Akihiko Odaki
+Alexander Cherepanov
+Alexander Kanavin
+Alexander Miller
+Alice Zhang
+Andreas Krebbel
+Andreas Schwab
+Andrei Homescu
+Anthony G. Basile
+Ben Woodard
+Chih-Hung Hsieh
+Claudio Rodrigo Pereyra Diaz
+Colin Cross
+Cornelius Neckenig
+Daniel Cabrera
+David Abdurachmanov
+Di Chen
+Dima Kogan
+Dimitris Glezos
+Dmitry V. Levin
+Dodji Seketeli
+Domingo Becker
+Eduardo Santiago
+Eli Schwartz
+Érico Nogueira
+Érico Rolim
+Filipe Brandenburger
+Florian Weimer
+Francesco Tombolini
+Frank Ch. Eigler
+Geert Warrink
+Gladys Guerrero
+Gustavo Romero
+Hayatsu Shunsuke
+H.J. Lu
+Hyu_gabaru Ryu_ichi
+Jakub Jelinek
+Jan Kratochvil
+Jan Pokorný
+Jason P. Leasure
+Jean Pihet
+Jeff Kenton
+Jim Wilson
+John M Mellor-Crummey
+John Ogness
+Jonathan Lebon
+Jonathon Anderson
+Jose E. Marchesi
+Josh Stone
+Joshua Watt
+Kevin Cernekee
+kiyoto hashida
+Konrad Kleine
+Kurt Roeckx
+Kyle McMartin
+Lei Zhang
+Lubomir Rintel
+Luca Boccassi
+Luiz Angelo Daros de Luca
+Mao Han
+Marek Polacek
+Mark Wielaard
+Martin Liska
+Masatake YAMATO
+Matt Fleming
+Matthias Klose
+Matthias Maennich
+Max Filippov
+Michael Forney
+Michael Münch
+Mike Frysinger
+Milian Wolff
+Namhyung Kim
+Noah Sanci
+Noriko Mizumoto
+Omar Sandoval
Petr Machata
+Pino Toscano
+Piotr DrÄ…g
+Ravi Bangoria
+Richard Henderson
+Roland McGrath
+Rosen Penev
+Ross Burton
+Saleem Abdulrasool
+Sergei Trofimovich
+Srđan Milaković
+Steven Chamberlain
+Thomas Canniot
+Thomas Spura
+Timm Bäder
+Tom Tromey
+Ulf Hermann
+Ulrich Drepper
+Wei Liu
+William Cohen
+Yonghong Song
+Yulia Poyarkova
+Yunlian Jiang
+Yuri Chornoivan
diff --git a/AUTHORS.sh b/AUTHORS.sh
new file mode 100644
index 00000000..ff048a64
--- /dev/null
+++ b/AUTHORS.sh
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+# Create the AUTHORS file, by searching the git history.
+
+# Run as "AUTHORS.sh" to get complete history
+# Run with "AUTHORS.sh commitish..commitish" for history between tags
+
+# shortlog will canonicalize the names using the file .mailmap
+git shortlog -s ${1-} |
+sed -e 's, via Elfutils-devel,,' |
+cut -b8- | # strip the commit counts
+sort | uniq
diff --git a/ChangeLog b/ChangeLog
index d61b21c7..52efca04 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,89 @@
+2022-11-02 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac (AC_INIT): Set version to 0.188.
+ * NEWS: Likewise.
+
+2022-10-31 Aaron Merey <amerey@redhat.com>
+
+ * NEWS: Add debuginfod_find_section.
+
+2022-10-20 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (rpm): Remove --sign.
+
+2022-10-22 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Use AC_PROG_CC with autoconf 2.70, or AC_PROG_CC_C99
+ for earlier versions. Use AC_PROG_LEX([noyywrap]).
+
+2022-09-13 Aleksei Vetrov <vvvvvv@google.com>
+
+ * NEWS (libdwfl): Add dwfl_report_offline_memory.
+
+2022-09-27 Taketo Kabe <kabe@sra-tohoku.co.jp>
+
+ * debuginfod/debuginfod-client.c: Correctly get timestamp when
+ compiling with -D_TIME_BITS=64 on 32bit environment.
+
+2022-04-28 Di Chen <dichen@redhat.com>
+
+ * NEWS: Add readefl -D, --use-dynamic.
+
+2022-07-28 Di Chen <dichen@redhat.com>
+
+ * NEWS: Add dwfl_frame_reg.
+
+2022-07-13 Mark Wielaard <mark@klomp.org>
+
+ * NEWS: Add dwfl_get_debuginfod_client.
+
+2022-06-02 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac (OLD_LIBMICROHTTPD): New AM_CONDITIONAL based on
+ libmicrohttpd < 0.9.51.
+
+2022-05-02 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Remove
+ --enable-valgrind --enable-sanitize-undefined.
+
+2022-04-25 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac (AC_INIT): Set version to 0.187.
+ * NEWS: Add some more 0.187 items.
+
+2022-04-24 Frank Ch. Eigler <fche@redhat.com>
+
+ * AUTHORS.sh, .mailmap: New files.
+ * AUTHORS: Regenerated to cover entire history of elfutils.
+
+2022-04-24 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac (AC_CHECK_FUNCS): Add mremap.
+
+2021-03-20 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Remove -m64 on 32bit target comments for
+ utrace_BIARCH check.
+
+2021-03-14 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Use AS_HELP_STRING instead of AC_HELP_STRING.
+
+2021-03-11 Mark Wielaard <mark@klomp.org>
+
+ * NEWS: Document new --relative option for addr2line.
+
+2022-03-10 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Move AC_PROG_CXX earlier. Check for both
+ -D_FORTIFY_SOURCE=3 and -D_FORTIFY_SOURCE=2 support. Also
+ set CXXFLAGS. Output final CFLAGS and CXXFLAGS setting.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * configure.ac: Add --enable-sanitize-address.
+
2021-11-10 Mark Wielaard <mark@klomp.org>
* configure.ac (AC_INIT): Set version to 0.186.
diff --git a/METADATA b/METADATA
index 55c6e00a..be92a0d2 100644
--- a/METADATA
+++ b/METADATA
@@ -12,12 +12,12 @@ third_party {
type: GIT
value: "git://sourceware.org/git/elfutils.git"
}
- version: "elfutils-0.183"
+ version: "elfutils-0.188"
license_type: BY_EXCEPTION_ONLY
license_note: "Would be RESTRICTED save for doc/COPYING-GFDL"
last_upgrade_date {
- year: 2021
- month: 2
- day: 16
+ year: 2022
+ month: 6
+ day: 17
}
}
diff --git a/Makefile.am b/Makefile.am
index 9c47afa9..e92e05c2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,14 +38,13 @@ EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
# Run all tests under valgrind.
AM_DISTCHECK_CONFIGURE_FLAGS = \
--libdir=`echo $(libdir) | sed "s,^$(exec_prefix),$$dc_install_base,"`\
- --enable-valgrind --enable-sanitize-undefined \
CC="$(CC)"
distcheck-hook:
chmod -R u+w $(distdir)
rpm: dist
- rpmbuild -ts --sign elfutils-@PACKAGE_VERSION@.tar.bz2
+ rpmbuild -ts elfutils-@PACKAGE_VERSION@.tar.bz2
if GCOV
diff --git a/NEWS b/NEWS
index 490932ae..71534b8c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,35 @@
+Version 0.188
+
+readelf: Add -D, --use-dynamic option.
+
+debuginfod-client: Add $DEBUGINFOD_HEADERS_FILE setting to supply outgoing
+ HTTP headers. Add new function debuginfod_find_section.
+
+debuginfod: Add --disable-source-scan option.
+
+libdwfl: Add new function dwfl_get_debuginfod_client.
+ Add new function dwfl_frame_reg.
+ Add new function dwfl_report_offline_memory.
+
+Version 0.187
+
+debuginfod: Support -C option for connection thread pooling.
+
+debuginfod-client: Negative cache file are now zero sized instead of
+ no-permission files.
+
+addr2line: The -A, --absolute option, which shows file names including
+ the full compilation directory is now the default. To get the
+ old behavior use the new option --relative.
+
+readelf, elflint: Recognize FDO Packaging Metadata ELF notes
+
+libdw, debuginfo-client: Load libcurl lazily only when files need to
+ be fetched remotely. libcurl is now never
+ loaded when DEBUGINFOD_URLS is unset. And when
+ DEBUGINFOD_URLS is set, libcurl is only loaded
+ when the debuginfod_begin function is called.
+
Version 0.186
debuginfod-client: Default $DEBUGINFOD_URLS is computed from drop-in files
diff --git a/backends/ChangeLog b/backends/ChangeLog
index b48af4e1..5b0daffe 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,23 @@
+2022-08-09 Andreas Schwab <schwab@suse.de>
+
+ * riscv_init.c (riscv_init): HOOK segment_type_name,
+ section_type_name, dynamic_tag_name and dynamic_tag_check.
+ * riscv_symbol.c (riscv_segment_type_name): New function.
+ (riscv_section_type_name): Likewise.
+ (riscv_dynamic_tag_name): Likewise.
+ (riscv_dynamic_tag_check): Likewise.
+
+2022-06-01 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile.am (arm_SRCS): Add arm_machineflagname.c.
+ * arm_init.c (arm_init): Hook in arm_machine_flag_name.
+ * arm_machineflagname.c: New file.
+
+2022-02-16 Mark Wielaard <mark@klomp.org>
+
+ * ppc_initreg.c (ppc_set_initial_registers_tid): Define struct
+ pt_regs32. Use PTRACE_GETREGSET.
+
2021-09-29 William Cohen <wcohen@redhat.com>
* riscv_init.c (riscv_return_value_location_lp64f): New function
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 62916c9c..9566377f 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -56,7 +56,8 @@ alpha_SRCS = alpha_init.c alpha_symbol.c alpha_retval.c alpha_regs.c \
alpha_corenote.c alpha_auxv.c
arm_SRCS = arm_init.c arm_symbol.c arm_regs.c arm_corenote.c \
- arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c arm_initreg.c
+ arm_auxv.c arm_attrs.c arm_retval.c arm_cfi.c arm_initreg.c \
+ arm_machineflagname.c
aarch64_SRCS = aarch64_init.c aarch64_regs.c aarch64_symbol.c \
aarch64_corenote.c aarch64_retval.c aarch64_cfi.c \
diff --git a/backends/arm_init.c b/backends/arm_init.c
index edd53b75..70b75942 100644
--- a/backends/arm_init.c
+++ b/backends/arm_init.c
@@ -59,6 +59,7 @@ arm_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, check_reloc_target_type);
HOOK (eh, symbol_type_name);
HOOK (eh, data_marker_symbol);
+ HOOK (eh, machine_flag_name);
/* We only unwind the core integer registers. */
eh->frame_nregs = 16;
diff --git a/backends/arm_machineflagname.c b/backends/arm_machineflagname.c
new file mode 100644
index 00000000..e93092ae
--- /dev/null
+++ b/backends/arm_machineflagname.c
@@ -0,0 +1,156 @@
+/* Arm-specific ELF flag names.
+ Copyright (C) 2022 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define BACKEND arm_
+#include "libebl_CPU.h"
+
+const char *
+arm_machine_flag_name (Elf64_Word orig, Elf64_Word *flagref)
+{
+ unsigned version = EF_ARM_EABI_VERSION (*flagref) >> 24;
+ if (version != 0)
+ {
+ static const char vername[5][14] =
+ {
+ "Version1 EABI",
+ "Version2 EABI",
+ "Version3 EABI",
+ "Version4 EABI",
+ "Version5 EABI",
+ };
+ *flagref &= ~((Elf64_Word) EF_ARM_EABIMASK);
+ return vername[version - 1];
+ }
+ switch (EF_ARM_EABI_VERSION (orig))
+ {
+ case EF_ARM_EABI_VER2:
+ if ((*flagref & EF_ARM_DYNSYMSUSESEGIDX) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_DYNSYMSUSESEGIDX);
+ return "dynamic symbols use segment index";
+ }
+ if ((*flagref & EF_ARM_MAPSYMSFIRST) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_MAPSYMSFIRST);
+ return "mapping symbols precede others";
+ }
+ FALLTHROUGH;
+ case EF_ARM_EABI_VER1:
+ if ((*flagref & EF_ARM_SYMSARESORTED) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_SYMSARESORTED);
+ return "sorted symbol tables";
+ }
+ break;
+ case EF_ARM_EABI_VER3:
+ break;
+ case EF_ARM_EABI_VER5:
+ if ((*flagref & EF_ARM_SOFT_FLOAT) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_SOFT_FLOAT);
+ return "soft-float ABI";
+ }
+ if ((*flagref & EF_ARM_VFP_FLOAT) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_VFP_FLOAT);
+ return "hard-float ABI";
+ }
+ FALLTHROUGH;
+ case EF_ARM_EABI_VER4:
+ if ((*flagref & EF_ARM_BE8) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_BE8);
+ return "BE8";
+ }
+ if ((*flagref & EF_ARM_LE8) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_LE8);
+ return "LE8";
+ }
+ break;
+ case EF_ARM_EABI_UNKNOWN:
+ if ((*flagref & EF_ARM_INTERWORK) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_INTERWORK);
+ return "interworking enabled";
+ }
+ if ((*flagref & EF_ARM_APCS_26) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_APCS_26);
+ return "uses APCS/26";
+ }
+ if ((*flagref & EF_ARM_APCS_FLOAT) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_APCS_FLOAT);
+ return "uses APCS/float";
+ }
+ if ((*flagref & EF_ARM_PIC) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_PIC);
+ return "position independent";
+ }
+ if ((*flagref & EF_ARM_ALIGN8) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_ALIGN8);
+ return "8 bit structure alignment";
+ }
+ if ((*flagref & EF_ARM_NEW_ABI) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_NEW_ABI);
+ return "uses new ABI";
+ }
+ if ((*flagref & EF_ARM_OLD_ABI) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_OLD_ABI);
+ return "uses old ABI";
+ }
+ if ((*flagref & EF_ARM_SOFT_FLOAT) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_SOFT_FLOAT);
+ return "software FP";
+ }
+ if ((*flagref & EF_ARM_VFP_FLOAT) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_VFP_FLOAT);
+ return "VFP";
+ }
+ if ((*flagref & EF_ARM_MAVERICK_FLOAT) != 0)
+ {
+ *flagref &= ~((Elf64_Word) EF_ARM_MAVERICK_FLOAT);
+ return "Maverick FP";
+ }
+ break;
+ default:
+ break;
+ }
+ return NULL;
+}
diff --git a/backends/ppc_initreg.c b/backends/ppc_initreg.c
index e5cca7e1..8ed72fb4 100644
--- a/backends/ppc_initreg.c
+++ b/backends/ppc_initreg.c
@@ -1,5 +1,6 @@
/* Fetch live process registers from TID.
Copyright (C) 2013 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -34,7 +35,11 @@
#if defined(__powerpc__) && defined(__linux__)
# include <sys/ptrace.h>
# include <asm/ptrace.h>
+# ifndef PTRACE_GETREGSET
+# include <linux/ptrace.h>
+# endif
# include <sys/user.h>
+# include <sys/uio.h>
#endif
#include "system.h"
@@ -75,39 +80,50 @@ ppc_set_initial_registers_tid (pid_t tid __attribute__ ((unused)),
#if !defined(__powerpc__) || !defined(__linux__)
return false;
#else /* __powerpc__ */
- union
- {
- struct pt_regs r;
- long l[sizeof (struct pt_regs) / sizeof (long)];
- }
- user_regs;
- eu_static_assert (sizeof (struct pt_regs) % sizeof (long) == 0);
- /* PTRACE_GETREGS is EIO on kernel-2.6.18-308.el5.ppc64. */
- errno = 0;
- for (unsigned regno = 0; regno < sizeof (user_regs) / sizeof (long);
- regno++)
- {
- user_regs.l[regno] = ptrace (PTRACE_PEEKUSER, tid,
- (void *) (uintptr_t) (regno
- * sizeof (long)),
- NULL);
- if (errno != 0)
- return false;
- }
-#define GPRS (sizeof (user_regs.r.gpr) / sizeof (*user_regs.r.gpr))
+
+/* pt_regs for 32bit processes. Same as 64bit pt_regs but all registers
+ are 32bit instead of 64bit long. */
+#define GPRS 32
+ struct pt_regs32
+ {
+ uint32_t gpr[GPRS];
+ uint32_t nip;
+ uint32_t msr;
+ uint32_t orig_gpr3;
+ uint32_t ctr;
+ uint32_t link;
+ uint32_t xer;
+ uint32_t ccr;
+ uint32_t mq;
+ uint32_t trap;
+ uint32_t dar;
+ uint32_t dsisr;
+ uint32_t result;
+ };
+
+ struct pt_regs regs;
+ struct pt_regs32 *regs32 = (struct pt_regs32 *) &regs;
+ struct iovec iovec;
+ iovec.iov_base = &regs;
+ iovec.iov_len = sizeof (regs);
+ if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iovec) != 0)
+ return false;
+
+ /* Did we get the full pt_regs or less (the 32bit pt_regs)? */
+ bool get32 = iovec.iov_len < sizeof (struct pt_regs);
Dwarf_Word dwarf_regs[GPRS];
for (unsigned gpr = 0; gpr < GPRS; gpr++)
- dwarf_regs[gpr] = user_regs.r.gpr[gpr];
+ dwarf_regs[gpr] = get32 ? regs32->gpr[gpr] : regs.gpr[gpr];
if (! setfunc (0, GPRS, dwarf_regs, arg))
return false;
- dwarf_regs[0] = user_regs.r.link;
// LR uses both 65 and 108 numbers, there is no consistency for it.
- if (! setfunc (65, 1, dwarf_regs, arg))
+ Dwarf_Word link = get32 ? regs32->link : regs.link;
+ if (! setfunc (65, 1, &link, arg))
return false;
/* Registers like msr, ctr, xer, dar, dsisr etc. are probably irrelevant
for CFI. */
- dwarf_regs[0] = user_regs.r.nip;
- return setfunc (-1, 1, dwarf_regs, arg);
+ Dwarf_Word pc = get32 ? (Dwarf_Word) regs32->nip : regs.nip;
+ return setfunc (-1, 1, &pc, arg);
#endif /* __powerpc__ */
}
diff --git a/backends/riscv_init.c b/backends/riscv_init.c
index 141e0821..f2d46082 100644
--- a/backends/riscv_init.c
+++ b/backends/riscv_init.c
@@ -65,6 +65,10 @@ riscv_init (Elf *elf,
HOOK (eh, check_special_symbol);
HOOK (eh, machine_flag_check);
HOOK (eh, set_initial_registers_tid);
+ HOOK (eh, segment_type_name);
+ HOOK (eh, section_type_name);
+ HOOK (eh, dynamic_tag_name);
+ HOOK (eh, dynamic_tag_check);
if (eh->class == ELFCLASS64)
eh->core_note = riscv64_core_note;
else
diff --git a/backends/riscv_symbol.c b/backends/riscv_symbol.c
index c34b7702..c149b8ba 100644
--- a/backends/riscv_symbol.c
+++ b/backends/riscv_symbol.c
@@ -119,3 +119,48 @@ riscv_check_special_symbol (Elf *elf, const GElf_Sym *sym,
return false;
}
+
+const char *
+riscv_segment_type_name (int segment, char *buf __attribute__ ((unused)),
+ size_t len __attribute__ ((unused)))
+{
+ switch (segment)
+ {
+ case PT_RISCV_ATTRIBUTES:
+ return "RISCV_ATTRIBUTES";
+ }
+ return NULL;
+}
+
+/* Return symbolic representation of section type. */
+const char *
+riscv_section_type_name (int type,
+ char *buf __attribute__ ((unused)),
+ size_t len __attribute__ ((unused)))
+{
+ switch (type)
+ {
+ case SHT_RISCV_ATTRIBUTES:
+ return "RISCV_ATTRIBUTES";
+ }
+
+ return NULL;
+}
+
+const char *
+riscv_dynamic_tag_name (int64_t tag, char *buf __attribute__ ((unused)),
+ size_t len __attribute__ ((unused)))
+{
+ switch (tag)
+ {
+ case DT_RISCV_VARIANT_CC:
+ return "RISCV_VARIANT_CC";
+ }
+ return NULL;
+}
+
+bool
+riscv_dynamic_tag_check (int64_t tag)
+{
+ return tag == DT_RISCV_VARIANT_CC;
+}
diff --git a/config.h b/config.h
index ea861944..8dfbb6ba 100644
--- a/config.h
+++ b/config.h
@@ -82,6 +82,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
+/* Define to 1 if you have the `mremap' function. */
+#define HAVE_MREMAP 1
+
/* Define to 1 if you have the `process_vm_readv' function. */
#define HAVE_PROCESS_VM_READV 1
@@ -134,7 +137,7 @@
#define PACKAGE_NAME "elfutils"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "elfutils 0.186"
+#define PACKAGE_STRING "elfutils 0.188"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "elfutils"
@@ -143,7 +146,7 @@
#define PACKAGE_URL "http://elfutils.org/"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.186"
+#define PACKAGE_VERSION "0.188"
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
@@ -177,7 +180,7 @@
/* #undef USE_ZSTD */
/* Version number of package */
-#define VERSION "0.186"
+#define VERSION "0.188"
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
diff --git a/config/ChangeLog b/config/ChangeLog
index acbaaa88..c63caa0c 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,57 @@
+2022-10-02 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Update for 0.188.
+ Include %{_mandir}/man8/debuginfod*.8* for new
+ debuginfod-service.8 man page.
+ Remove duplicate %{_sysconfdir}/sysconfig/debuginfod.
+
+2022-10-20 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Escape % in comments.
+
+2022-10-27 Mark Wielaard <mark@klomp.org>
+
+ * eu.am: Use grep -F instead of fgrep.
+
+2022-10-27 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Add BuildRequires socat.
+
+2022-08-17 Martin Liska <mliska@suse.cz>
+
+ * debuginfod.service: Add new debuginfod.sysconfig
+ value DEBUGINFOD_EXTRA_ARGS.
+ * debuginfod.sysconfig: Likewise.
+
+2022-08-16 Martin Liska <mliska@suse.cz>
+
+ * profile.csh.in: Support nullglob in profile.*.in files.
+ * profile.sh.in: Likewise.
+
+2022-08-17 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.sysconfig: Clarify cmdline vs client-env variables.
+
+2022-05-03 Mark Wielaard <mark@klomp.org>
+
+ * profile.csh.in: Move the 2>/dev/null inside the sh -c '' quotes.
+
+2022-04-25 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in: Update for 0.187.
+
+2022-01-19 Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
+
+ * profile.csh.in: Set DEBUGINFOD_URLS directly. Use "$0" and :
+ in sh -c.
+ * profile.sh.in: Set DEBUGINFOD_URLS directly. Don't use sh -c.
+ Use $() instead of ``.
+
+2022-04-07 Mark Wielaard <mark@klomp.org>
+
+ * elfutils.spec.in (debuginfod-client): Add an explicit requires
+ on elfutils-libs and elfutils-libelf.
+
2021-11-10 Mark Wielaard <mark@klomp.org>
* elfutils.spec.in: Update for 0.186.
diff --git a/config/debuginfod.service b/config/debuginfod.service
index b64d8cb9..4c7785a9 100644
--- a/config/debuginfod.service
+++ b/config/debuginfod.service
@@ -8,7 +8,7 @@ EnvironmentFile=/etc/sysconfig/debuginfod
User=debuginfod
Group=debuginfod
#CacheDirectory=debuginfod
-ExecStart=/usr/bin/debuginfod -d /var/cache/debuginfod/debuginfod.sqlite -p $DEBUGINFOD_PORT $DEBUGINFOD_VERBOSE $DEBUGINFOD_PRAGMAS $DEBUGINFOD_PATHS
+ExecStart=/usr/bin/debuginfod -d /var/cache/debuginfod/debuginfod.sqlite -p $DEBUGINFOD_PORT $DEBUGINFOD_VERBOSE $DEBUGINFOD_PRAGMAS $DEBUGINFOD_PATHS $DEBUGINFOD_EXTRA_ARGS
# Stopping can take a long time if scanning of large archives is in progress
TimeoutStopSec=60
PrivateTmp=yes
diff --git a/config/debuginfod.sysconfig b/config/debuginfod.sysconfig
index 890a1a25..4ffb7e02 100644
--- a/config/debuginfod.sysconfig
+++ b/config/debuginfod.sysconfig
@@ -1,15 +1,26 @@
-#
+#################
+# debuginfod command line options
+# see [man debuginfod]
+
+# required
DEBUGINFOD_PORT="8002"
-#DEBUGINFOD_VERBOSE="-v"
+
+# add more -v for more verbosity
+DEBUGINFOD_EXTRA_ARGS="-t43200 -F -R"
# some common places to find trustworthy ELF/DWARF files and RPMs
-DEBUGINFOD_PATHS="-t43200 -F -R /usr/lib/debug /usr/bin /usr/libexec /usr/sbin /usr/lib /usr/lib64 /var/cache/yum /var/cache/dnf /var/lib/pulp"
+DEBUGINFOD_PATHS="/usr/lib/debug /usr/bin /usr/libexec /usr/sbin /usr/lib /usr/lib64 /var/cache/yum /var/cache/dnf /var/lib/pulp"
-# prefer reliability/durability over performance
+# prefer sqlite database durability over performance
#DEBUGINFOD_PRAGMAS="-D 'pragma synchronous=full;'"
-# upstream debuginfods
+#################
+# these environment variables affect federated queries to upstream servers
+# see [man debuginfod-client-config]
+
#DEBUGINFOD_URLS="http://secondhost:8002 http://thirdhost:8002"
#DEBUGINFOD_TIMEOUT="5"
#DEBUGINFOD_RETRY_LIMIT="2"
#DEBUGINFOD_CACHE_DIR=""
+#DEBUGINFOD_VERBOSE="1"
+#DEBUGINFOD_PROGRESS="1"
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index aac0dffc..c444d1f5 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -40,6 +40,8 @@ BuildRequires: iproute
BuildRequires: procps
BuildRequires: bsdtar
BuildRequires: curl
+# For run-debuginfod-response-headers.sh test case
+BuildRequires: socat
%define _gnu %{nil}
%define _programprefix eu-
@@ -141,6 +143,9 @@ profiling) of processes.
%package debuginfod-client
Summary: Library and command line client for build-id HTTP ELF/DWARF server
License: GPLv3+ and (GPLv2+ or LGPLv3+)
+# For debuginfod-find binary
+Requires: elfutils-libs = %{version}-%{release}
+Requires: elfutils-libelf = %{version}-%{release}
%package debuginfod-client-devel
Summary: Libraries and headers to build debuginfod client applications
@@ -260,18 +265,18 @@ fi
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/elf-knowledge.h
%{_includedir}/elfutils/known-dwarf.h
-#%{_includedir}/elfutils/libasm.h
+#%%{_includedir}/elfutils/libasm.h
%{_includedir}/elfutils/libdw.h
%{_includedir}/elfutils/libdwfl.h
%{_includedir}/elfutils/libdwelf.h
%{_includedir}/elfutils/version.h
-#%{_libdir}/libasm.so
+#%%{_libdir}/libasm.so
%{_libdir}/libdw.so
%{_libdir}/pkgconfig/libdw.pc
%files devel-static
%{_libdir}/libdw.a
-#%{_libdir}/libasm.a
+#%%{_libdir}/libasm.a
%files libelf
%license COPYING-GPLV2 COPYING-LGPLV3
@@ -316,8 +321,7 @@ fi
%{_bindir}/debuginfod
%config(noreplace) %{_sysconfdir}/sysconfig/debuginfod
%{_unitdir}/debuginfod.service
-%{_sysconfdir}/sysconfig/debuginfod
-%{_mandir}/man8/debuginfod.8*
+%{_mandir}/man8/debuginfod*.8*
%{_mandir}/man7/debuginfod*.7*
%dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
@@ -337,6 +341,30 @@ exit 0
%systemd_postun_with_restart debuginfod.service
%changelog
+* Wed Nov 2 2022 Mark Wielaard <mark@klomp.org> 0.188-1
+- readelf: Add -D, --use-dynamic option.
+- debuginfod-client: Add $DEBUGINFOD_HEADERS_FILE setting to supply
+ outgoing HTTP headers.
+ Add new function debuginfod_find_section.
+- debuginfod: Add --disable-source-scan option.
+- libdwfl: Add new function dwfl_get_debuginfod_client.
+ Add new function dwfl_frame_reg.
+ Add new function dwfl_report_offline_memory.
+
+* Mon Apr 25 2022 Mark Wielaard <mark@klomp.org> 0.187-1
+- debuginfod: Support -C option for connection thread pooling.
+- debuginfod-client: Negative cache file are now zero sized instead
+ of no-permission files.
+- addr2line: The -A, --absolute option, which shows file names
+ includingthe full compilation directory is now the
+ default. To get theold behavior use the new option --relative.
+- readelf, elflint: Recognize FDO Packaging Metadata ELF notes
+- libdw, debuginfo-client: Load libcurl lazily only when files need
+ to be fetched remotely. libcurl is now never loaded when
+ DEBUGINFOD_URLS is unset. And whenDEBUGINFOD_URLS is set,
+ libcurl is only loaded when the debuginfod_begin function is
+ called.
+
* Wed Nov 10 2021 Mark Wielaard <mark@klomp.org> 0.186-1
- debuginfod-client: Default $DEBUGINFOD_URLS is computed from
drop-in files /etc/debuginfod/*.urls rather than
diff --git a/config/eu.am b/config/eu.am
index 58cd3c4f..c3cefe7e 100644
--- a/config/eu.am
+++ b/config/eu.am
@@ -135,7 +135,7 @@ textrel_found = $(textrel_msg); exit 1
else
textrel_found = $(textrel_msg)
endif
-textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi
+textrel_check = if $(READELF) -d $@ | grep -F -q TEXTREL; then $(textrel_found); fi
print-%:
@echo $*=$($*)
diff --git a/config/profile.csh.in b/config/profile.csh.in
index 01f7c2f2..d962d969 100644
--- a/config/profile.csh.in
+++ b/config/profile.csh.in
@@ -1,4 +1,3 @@
-
# $HOME/.login* or similar files may first set $DEBUGINFOD_URLS.
# If $DEBUGINFOD_URLS is not set there, we set it from system *.url files.
# $HOME/.*rc or similar files may then amend $DEBUGINFOD_URLS.
@@ -7,10 +6,11 @@
if (! $?DEBUGINFOD_URLS) then
set prefix="@prefix@"
- set debuginfod_urls=`sh -c "cat @sysconfdir@/debuginfod/*.urls 2>/dev/null" | tr '\n' ' '`
- if ( "$debuginfod_urls" != "" ) then
- setenv DEBUGINFOD_URLS "$debuginfod_urls"
+ set DEBUGINFOD_URLS=`sh -c 'cat /dev/null "$0"/*.urls 2>/dev/null; :' "@sysconfdir@/debuginfod" | tr '\n' ' '`
+ if ( "$DEBUGINFOD_URLS" != "" ) then
+ setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS"
+ else
+ unset DEBUGINFOD_URLS
endif
- unset debuginfod_urls
unset prefix
endif
diff --git a/config/profile.sh.in b/config/profile.sh.in
index afce3963..3f4397dc 100644
--- a/config/profile.sh.in
+++ b/config/profile.sh.in
@@ -1,4 +1,3 @@
-
# $HOME/.profile* or similar files may first set $DEBUGINFOD_URLS.
# If $DEBUGINFOD_URLS is not set there, we set it from system *.url files.
# $HOME/.*rc or similar files may then amend $DEBUGINFOD_URLS.
@@ -7,11 +6,7 @@
if [ -z "$DEBUGINFOD_URLS" ]; then
prefix="@prefix@"
- debuginfod_urls=`sh -c "cat @sysconfdir@/debuginfod/*.urls 2>/dev/null" | tr '\n' ' '`
- if [ -n "$debuginfod_urls" ]; then
- DEBUGINFOD_URLS="$debuginfod_urls"
- export DEBUGINFOD_URLS
- fi
- unset debuginfod_urls
+ DEBUGINFOD_URLS=$(cat /dev/null "@sysconfdir@/debuginfod"/*.urls 2>/dev/null | tr '\n' ' ')
+ [ -n "$DEBUGINFOD_URLS" ] && export DEBUGINFOD_URLS || unset DEBUGINFOD_URLS
unset prefix
fi
diff --git a/configure.ac b/configure.ac
index ff9581d2..59be27ac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
dnl Configure input file for elfutils. -*-autoconf-*-
dnl
dnl Copyright (C) 1996-2019 Red Hat, Inc.
+dnl Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
dnl
dnl This file is part of elfutils.
dnl
@@ -17,7 +18,7 @@ dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([elfutils],[0.186],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
+AC_INIT([elfutils],[0.188],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
dnl Workaround for older autoconf < 2.64
m4_ifndef([AC_PACKAGE_URL],
@@ -44,7 +45,7 @@ fi
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_FILES([config/Makefile])
-AC_COPYRIGHT([Copyright (C) 1996-2021 The elfutils developers.])
+AC_COPYRIGHT([Copyright (C) 1996-2022 The elfutils developers.])
AC_PREREQ(2.63) dnl Minimum Autoconf version required.
dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
@@ -87,10 +88,11 @@ AS_IF([test "$use_locks" = yes],
AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
-AC_PROG_CC_C99
+m4_version_prereq([2.70], [AC_PROG_CC], [AC_PROG_CC_C99])
+AC_PROG_CXX
AC_PROG_RANLIB
AC_PROG_YACC
-AM_PROG_LEX
+AC_PROG_LEX([noyywrap])
# Only available since automake 1.12
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
AC_CHECK_TOOL([READELF], [readelf])
@@ -231,25 +233,38 @@ AC_CACHE_CHECK([whether fts.h is bad when included (with LFS)], ac_cv_bad_fts,
AS_IF([test "x$ac_cv_bad_fts" = "xyes"],
[CFLAGS="$CFLAGS -DBAD_FTS=1" CXXFLAGS="$CXXFLAGS -DBAD_FTS=1"])
-# See if we can add -D_FORTIFY_SOURCE=2. Don't do it if it is already
+# See if we can add -D_FORTIFY_SOURCE=2 or =3. Don't do it if it is already
# (differently) defined or if it generates warnings/errors because we
# don't use the right optimisation level (string.h will warn about that).
-AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CFLAGS])
+AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 or =3 to CFLAGS])
case "$CFLAGS" in
- *-D_FORTIFY_SOURCE=2*)
+ *-D_FORTIFY_SOURCE=*)
AC_MSG_RESULT([no, already there])
;;
*)
save_CFLAGS="$CFLAGS"
- CFLAGS="-D_FORTIFY_SOURCE=2 $CFLAGS -Werror"
+ # Try 3 first.
+ CFLAGS="-D_FORTIFY_SOURCE=3 $save_CFLAGS -Werror"
+ fortified_cflags=""
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <string.h>
int main() { return 0; }
- ]])], [ AC_MSG_RESULT([yes])
- CFLAGS="-D_FORTIFY_SOURCE=2 $save_CFLAGS" ],
- [ AC_MSG_RESULT([no])
- CFLAGS="$save_CFLAGS"])
- ;;
+ ]])], [ AC_MSG_RESULT([yes -D_FORTIFY_SOURCE=3])
+ fortified_cflags="-D_FORTIFY_SOURCE=3" ], [])
+
+ # If that didn't work, try 2.
+ if test -z "$fortified_cflags"; then
+ CFLAGS="-D_FORTIFY_SOURCE=2 $save_CFLAGS -Werror"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include <string.h>
+ int main() { return 0; }
+ ]])], [ AC_MSG_RESULT([yes -D_FORTIFY_SOURCE=2])
+ fortified_cflags="-D_FORTIFY_SOURCE=2" ],
+ [ AC_MSG_RESULT([no, cannot be used])])
+ fi
+ CFLAGS="$fortified_cflags $save_CFLAGS"
+ CXXFLAGS="$fortified_cflags $CXXFLAGS"
+ ;;
esac
dnl enable debugging of branch prediction.
@@ -307,10 +322,34 @@ esac
AC_DEFINE_UNQUOTED(CHECK_UNDEFINED, $check_undefined_val,
[Building with -fsanitize=undefined or not])
+AC_ARG_ENABLE([sanitize-address],
+ AS_HELP_STRING([--enable-sanitize-address],
+ [Use gcc address sanitizer]),
+ [use_address=$enableval], [use_address=no])
+if test "$use_address" = yes; then
+ old_CFLAGS="$CFLAGS"
+ old_CXXFLAGS="$CXXFLAGS"
+ old_LDFLAGS="$LDFLAGS"
+ # We want to fail immediately on first error, don't try to recover.
+ CFLAGS="$CFLAGS -fsanitize=address -fno-sanitize-recover"
+ CXXFLAGS="$CXXFLAGS -fsanitize=address -fno-sanitize-recover"
+ # Some compilers don't handle -fsanatize=address correctly with --no-undefined
+ LDFLAGS="-Wl,-z,defs -shared"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main (int argc, char **argv) { return 0; }])], use_address=yes, use_address=no)
+ AS_IF([test "x$use_address" != xyes],
+ AC_MSG_WARN([gcc address sanitizer not available])
+ CFLAGS="$old_CFLAGS" CXXFLAGS="$old_CXXFLAGS")
+ LDFLAGS="$old_LDFLAGS"
+fi
+AM_CONDITIONAL(USE_ADDRESS_SANITIZER, test "$use_address" = yes)
+
AC_ARG_ENABLE([valgrind],
AS_HELP_STRING([--enable-valgrind],[run all tests under valgrind]),
[use_valgrind=$enableval], [use_valgrind=no])
if test "$use_valgrind" = yes; then
+ if test "$use_address" = yes; then
+ AC_MSG_ERROR([cannot enable valgrind and sanitize address together])
+ fi
AC_CHECK_PROG(HAVE_VALGRIND, valgrind, yes, no)
if test "$HAVE_VALGRIND" = "no"; then
AC_MSG_ERROR([valgrind not found])
@@ -396,7 +435,10 @@ AC_CHECK_DECLS([reallocarray],[],[],
[#define _GNU_SOURCE
#include <stdlib.h>])
-AC_CHECK_FUNCS([process_vm_readv])
+AC_CHECK_FUNCS([process_vm_readv mremap])
+
+AS_IF([test "x$ac_cv_func_mremap" = "xno"],
+ [AC_MSG_WARN([elf_update needs mremap to support ELF_C_RDWR_MMAP])])
AC_CHECK_HEADERS([error.h])
AC_CHECK_HEADERS([err.h])
@@ -667,9 +709,7 @@ if test "$sys_user_has_user_regs" = "yes"; then
fi
# On a 64-bit host where can can use $CC -m32, we'll run two sets of tests.
-# Likewise in a 32-bit build on a host where $CC -m64 works.
utrace_BIARCH
-# `$utrace_biarch' will be `-m64' even on an uniarch i386 machine.
CC_BIARCH="$CC $utrace_biarch"
AC_SUBST([CC_BIARCH])
@@ -705,7 +745,7 @@ AC_CHECK_PROG(HAVE_ZSTD, zstd, yes, no)
AM_CONDITIONAL([HAVE_ZSTD],[test "x$HAVE_ZSTD" = "xyes"])
# Look for libcurl for libdebuginfod minimum version as per rhel7.
-AC_ARG_ENABLE([libdebuginfod],AC_HELP_STRING([--enable-libdebuginfod], [Build debuginfod client library (can be =dummy)]))
+AC_ARG_ENABLE([libdebuginfod],AS_HELP_STRING([--enable-libdebuginfod], [Build debuginfod client library (can be =dummy)]))
AS_IF([test "x$enable_libdebuginfod" != "xno"], [
if test "x$enable_libdebuginfod" != "xdummy"; then
AC_MSG_NOTICE([checking libdebuginfod dependencies, --disable-libdebuginfod or --enable-libdebuginfo=dummy to skip])
@@ -732,8 +772,7 @@ AM_CONDITIONAL([DUMMY_LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xdummy"])
# Look for libmicrohttpd, libarchive, sqlite for debuginfo server
# minimum versions as per rhel7.
-AC_ARG_ENABLE([debuginfod],AC_HELP_STRING([--enable-debuginfod], [Build debuginfod server]))
-AC_PROG_CXX
+AC_ARG_ENABLE([debuginfod],AS_HELP_STRING([--enable-debuginfod], [Build debuginfod server]))
AS_IF([test "x$enable_debuginfod" != "xno"], [
AC_MSG_NOTICE([checking debuginfod C++11 support, --disable-debuginfod to skip])
AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
@@ -744,6 +783,7 @@ AS_IF([test "x$enable_debuginfod" != "xno"], [
enable_debuginfod=yes # presume success
PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([libmicrohttpd],[libmicrohttpd >= 0.9.33],[],[enable_debuginfod=no])
+ PKG_CHECK_MODULES([oldlibmicrohttpd],[libmicrohttpd < 0.9.51],[old_libmicrohttpd=yes],[old_libmicrohttpd=no])
PKG_CHECK_MODULES([sqlite3],[sqlite3 >= 3.7.17],[],[enable_debuginfod=no])
PKG_CHECK_MODULES([libarchive],[libarchive >= 3.1.2],[],[enable_debuginfod=no])
if test "x$enable_debuginfod" = "xno"; then
@@ -753,6 +793,7 @@ AS_IF([test "x$enable_debuginfod" != "xno"], [
AS_IF([test "x$enable_debuginfod" != "xno"],AC_DEFINE([ENABLE_DEBUGINFOD],[1],[Build debuginfod]))
AM_CONDITIONAL([DEBUGINFOD],[test "x$enable_debuginfod" = "xyes"])
+AM_CONDITIONAL([OLD_LIBMICROHTTPD],[test "x$old_libmicrohttpd" = "xyes"])
dnl for /etc/profile.d/elfutils.{csh,sh}
default_debuginfod_urls=""
@@ -780,6 +821,9 @@ AC_MSG_NOTICE([
Maintainer mode : ${enable_maintainer_mode}
build arch : ${ac_cv_build}
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+
RECOMMENDED FEATURES (should all be yes)
gzip support : ${with_zlib}
bzip2 support : ${with_bzlib}
@@ -809,6 +853,7 @@ AC_MSG_NOTICE([
gcov support : ${use_gcov}
run all tests under valgrind : ${use_valgrind}
gcc undefined behaviour sanitizer : ${use_undefined}
+ gcc address sanitizer : ${use_address}
use rpath in tests : ${tests_use_rpath}
test biarch : ${utrace_cv_cc_biarch}
])
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index f06d3ee3..50668e61 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,265 @@
+2022-11-01 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod-client.c (path_escape): Add early return.
+
+2022-10-31 Aaron Merey <amerey@redhat.com>
+
+ * Makefile.am (libdebuginfod_so_LDLIBS): Add libelf.
+ * debuginfod-client.c (debuginfod_find_section): New function.
+ (path_escape): New function.
+ (extract_section): New function.
+ (cache_find_section): New function.
+ (debuginfod_query_server): Add support for section queries.
+ * debuginfod-find.c (main): Add support for section queries.
+ * debuginfod.cxx (extract_section): New function.
+ (handle_buildid_f_match): Add section parameter. When non-empty,
+ try to create response from section contents.
+ (handle_buildid_r_match): Add section parameter. When non-empty,
+ try to create response from section contents.
+ (handle_buildid_match): Add section parameter. Pass to
+ handle_buildid_{f,r}_match.
+ (handle_buildid): Handle section name when artifacttype is set to
+ "section". Query upstream servers via debuginfod_find_section
+ when necessary.
+ (debuginfod.h.in): Add declaration for debuginfod_find_section.
+ (libdebuginfod.map): Add debuginfod_find_section.
+
+2022-10-18 Daniel Thornburgh <dthorn@google.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Add DEBUGINFOD_HEADERS_FILE
+ setting to supply outgoing HTTP headers.
+
+2022-10-17 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (main): Report libmicrohttpd version.
+
+2022-09-28 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Switch sign of some
+ error codes from positive to negative.
+
+2022-09-08 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Clear
+ ->winning_headers along with ->url at the start of any new query.
+
+2022-09-08 Martin Liska <mliska@suse.cz>
+
+ * debuginfod-client.c (debuginfod_get_headers): Add to DUMMY_LIBDEBUGINFOD.
+
+2022-09-06 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod-client.c (header_callback): Don't copy \r in x-d headers.
+ Print all headers in verbose_fd mode.
+ * debuginfod-find.c (parse_opt): Set verbose_fd only at verbosity >= 2.
+ * debuginfod.cxx (handle_buildid): Clean up header forwarding
+ string processing.
+ * debuginfod.h.in: (debuginfod_get_headers): Tweak wording.
+ * libdebuginfod.map: Use ELFUTILS_0.188 for new function.
+
+2022-07-15 Noah Sanci <nsanci@redhat.com>
+
+ * debuginfod-client.c (header_callback): Ignore headers without
+ X-DEBUGINFOD prefix.
+ (debuginfod_query_server): Removed verbose printing headers when
+ undesired.
+ (debuginfod_get_headers): Created.
+ * debuginfod-find.c (main): Verbose printing headers.
+ * debuginfod.cxx (handle_buildid): Add headers prefixed with
+ X-DEBUGINFOD from federated servers to this server's response
+ headers.
+ * debuginfod.h.in (debuginfod_get_headers): Created.
+ * libdebuginfod.map: New elfutils version added.
+
+2022-09-02 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod.cxx (parse_opt): If '-C' is given with no arg, do not
+ update connection_pool since it will be done at a later point.
+ (main): Use auto-sized connection_pool if '-C' isn't given with an
+ arg. Do not use MHD_USE_THREAD_PER_CONNECTION.
+
+2022-08-17 Martin Liska <mliska@suse.cz>
+
+ * debuginfod.cxx (handle_buildid): Update HTTP statistics only if
+ it comes from HTTP request.
+
+2022-08-17 Martin Liska <mliska@suse.cz>
+
+ * debuginfod.cxx: Print filename for "cannot open archive".
+
+2022-08-15 Frank Ch. Eigler <fche@redhat.com>
+
+ PR29474
+ * debuginfod.cxx (handle_buildid_r_match): Don't trigger false-404's
+ for concurrently prefetched target files.
+
+2022-08-02 Josef Cejka <jcejka@suse.de>
+
+ * debuginfod.cxx (groom): Don't evaluate regex unless needed.
+
+2022-07-29 Josef Cejka <jcejka@suse.de>
+
+ * debuginfod.cxx: Create db indexes for fast delete while grooming.
+
+2022-06-03 Michael Trapp <michael.trapp@sap.com>
+
+ * debuginfod.cxx (scan_source_info): New global.
+ (parse_opt, elf_classify): Use it.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_clean_cache): Move utime call to
+ before fts traversal.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_init_cache): Remove.
+ (debuginfod_query_server): Don't call debuginfod_init_cache, call
+ mkdir then debuginfod_clean_cache.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_config_cache): Always open with
+ O_CREATE first, then use fstat, only write the cache_config_default_s
+ value if st_size == 0, otherwise read value from file.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (conninfo): Always provide servname to getnameinfo.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Add
+ curl_easy_setopt_ck macro, use it for all curl_easy_setopt calls.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_write_callback): Check result
+ of curl_easy_getinfo.
+
+2022-05-05 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (main): Define use_epoll. Set to MHD_USE_EPOLL
+ based on MHD_VERSION. Don't use MHD_USE_THREAD_PER_CONNECTION
+ when use_poll is set.
+
+2022-05-05 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (main): Define mhd_flags. Use mhd_flags for
+ MHD_start_daemon. Try again with MHD_USE_DUAL_STACK removed if
+ that fails. Update clog to say either IPV4 or IPV4 and IPV6.
+ stop either ithe d46 or d4 daemonr.
+
+2022-05-09 Noah Sanci <nsanci@redhat.com>
+
+ * debuginfod.cxx (main): Set nonzero defaults for fdcache.
+
+2022-05-04 Frank Ch. Eigler <fche@redhat.com>
+ Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Correct fd leak
+ for cache negative-hit unlink case.
+ (debuginfod_config_cache, debuginfod_init_cache): Correct
+ minor fd leaks.
+ * debuginfod-find.c (main): Ditto.
+
+2022-04-22 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (libdebuginfod): Add -lpthread.
+ (libdebuginfod_so_LDLIBS): Likewise.
+ * debuginfod-client.c (init_control): New static pthread_once_t.
+ (libcurl_init): New static function.
+ (debuginfod_begin): Use ptrace_once to call libcurl_init.
+ (libdebuginfod_ctor): Removed.
+ (libdebuginfod_dtor): Likewise.
+
+2022-04-24 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (main): Add MHD_USE_ITC to MHD_start_daemon flags.
+
+2022-04-13 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod-client.c (debuginfod_query_server):
+ Drop st_mode check. Add st_size > 0 check.
+ Save target_mtime before calling
+ debuginfod_config_cache. unlink target_cache_path
+ on EACCESS. Create target_cache_path with DEFFILEMODE.
+
+2022-04-03 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (main): Use single dual-stack daemon setup,
+ rather than duplicate ipv4 and ipv6.
+ (conninfo, handle_buildid): Represent ipv4-mapped ipv6 addresses
+ in their native ipv4 form for logging and X-F-F: purposes.
+ * debuginfod-client.c (debuginfod_add_http_header): Tolerate
+ colons in http header values.
+
+2022-04-03 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (main): Use MHD_USE_EPOLL for libmicrohttpd, to
+ encourage more round-robin dispatch of incoming connections.
+
+2021-12-09 Alexander Kanavin <alex@linutronix.de>
+
+ * debuginfod-client.c (cache_clean_default_interval_s): Change type to
+ long from time_t.
+ (cache_miss_default_s): Likewise.
+ (cache_default_max_unused_age_s): Likewise.
+
+2021-12-09 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (database_stats_report): Don't format clog
+ using 'right' and 'setw(20)'.
+
+2021-12-08 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (connection_pool): New global.
+ (parse_opt): Parse & check -C option to set it.
+ (error_cb): New callback for libmicrohttpd error counting.
+ (main): Activate MHD_OPTION_THREAD_POOL_SIZE if appropriate.
+ Activate error_cb.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (main): Call debuginfod_pool_groom before exit.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod.cxx (add_mhd_response_header): New function.
+ (reportable_exception::mhd_send_response): Call
+ MHD_add_response_header.
+ (add_mhd_last_modified): Likewise.
+ (handle_buildid_f_match): Likewise.
+ (handle_buildid_r_match): Likewise.
+ (handle_metrics): Likewise. And check MHD_Response was actually
+ created.
+ (handle_root): Likewise.
+
+2021-12-08 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (intern): Call set_metrics() holding the fdcache mutex.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Free winning_headers.
+ Reset response_data_size when clearing response_data.
+
+2021-12-01 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Free tmp_url on
+ realloc error. curl_free escaped_string on error. Fix error out
+ goto on curl_easy_init failure. Only cleanup data[i] handle and
+ response_data if it was initialized.
+
+2021-12-01 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (timestamp): Use gmtime_r instead of gmtime.
+ (add_mhd_last_modified): Likewise.
+
+2021-11-10 Érico N. Rolim <erico.erc@gmail.com>
+
+ * debuginfod.cxx: include "system.h" under 'extern "C"' block.
+
2021-11-05 Frank Ch. Eigler <fche@redhat.com>
PR28430
diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am
index 3adb2755..f27d6e2e 100644
--- a/debuginfod/Makefile.am
+++ b/debuginfod/Makefile.am
@@ -47,7 +47,7 @@ libelf = ../libelf/libelf.a -lz
if DUMMY_LIBDEBUGINFOD
libdebuginfod = ./libdebuginfod.a
else
-libdebuginfod = ./libdebuginfod.a $(libcurl_LIBS)
+libdebuginfod = ./libdebuginfod.a -lpthread $(libcurl_LIBS)
endif
else
libasm = ../libasm/libasm.so
@@ -97,7 +97,7 @@ libdebuginfod_so_LIBS = libdebuginfod_pic.a
if DUMMY_LIBDEBUGINFOD
libdebuginfod_so_LDLIBS =
else
-libdebuginfod_so_LDLIBS = $(libcurl_LIBS) $(fts_LIBS)
+libdebuginfod_so_LDLIBS = -lpthread $(libcurl_LIBS) $(fts_LIBS) $(libelf)
endif
$(LIBDEBUGINFOD_SONAME): $(srcdir)/libdebuginfod.map $(libdebuginfod_so_LIBS)
$(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index c875ee62..0c4a00cf 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -1,5 +1,6 @@
/* Retrieve ELF / DWARF / source files from the debuginfod.
Copyright (C) 2019-2021 Red Hat, Inc.
+ Copyright (C) 2021, 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -41,8 +42,10 @@
#include "config.h"
#include "debuginfod.h"
#include "system.h"
+#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
+#include <gelf.h>
/* We might be building a bootstrap dummy library, which is really simple. */
#ifdef DUMMY_LIBDEBUGINFOD
@@ -54,6 +57,9 @@ int debuginfod_find_executable (debuginfod_client *c, const unsigned char *b,
int s, char **p) { return -ENOSYS; }
int debuginfod_find_source (debuginfod_client *c, const unsigned char *b,
int s, const char *f, char **p) { return -ENOSYS; }
+int debuginfod_find_section (debuginfod_client *c, const unsigned char *b,
+ int s, const char *scn, char **p)
+ { return -ENOSYS; }
void debuginfod_set_progressfn(debuginfod_client *c,
debuginfod_progressfn_t fn) { }
void debuginfod_set_verbose_fd(debuginfod_client *c, int fd) { }
@@ -62,6 +68,8 @@ void* debuginfod_get_user_data (debuginfod_client *c) { return NULL; }
const char* debuginfod_get_url (debuginfod_client *c) { return NULL; }
int debuginfod_add_http_header (debuginfod_client *c,
const char *h) { return -ENOSYS; }
+const char* debuginfod_get_headers (debuginfod_client *c) { return NULL; }
+
void debuginfod_end (debuginfod_client *c) { }
#else /* DUMMY_LIBDEBUGINFOD */
@@ -97,6 +105,16 @@ void debuginfod_end (debuginfod_client *c) { }
#include <fts.h>
#endif
+#include <pthread.h>
+
+static pthread_once_t init_control = PTHREAD_ONCE_INIT;
+
+static void
+libcurl_init(void)
+{
+ curl_global_init(CURL_GLOBAL_DEFAULT);
+}
+
struct debuginfod_client
{
/* Progress/interrupt callback function. */
@@ -116,6 +134,9 @@ struct debuginfod_client
debuginfod_end needs to terminate. */
int default_progressfn_printed_p;
+ /* Indicates whether the last query was cancelled by progressfn. */
+ bool progressfn_cancel;
+
/* File descriptor to output any verbose messages if > 0. */
int verbose_fd;
@@ -134,17 +155,17 @@ struct debuginfod_client
how frequently the cache should be cleaned. The file's st_mtime represents
the time of last cleaning. */
static const char *cache_clean_interval_filename = "cache_clean_interval_s";
-static const time_t cache_clean_default_interval_s = 86400; /* 1 day */
+static const long cache_clean_default_interval_s = 86400; /* 1 day */
/* The cache_miss_default_s within the debuginfod cache specifies how
- frequently the 000-permision file should be released.*/
-static const time_t cache_miss_default_s = 600; /* 10 min */
+ frequently the empty file should be released.*/
+static const long cache_miss_default_s = 600; /* 10 min */
static const char *cache_miss_filename = "cache_miss_s";
/* The cache_max_unused_age_s file within the debuginfod cache specifies the
the maximum time since last access that a file will remain in the cache. */
static const char *cache_max_unused_age_filename = "max_unused_age_s";
-static const time_t cache_default_max_unused_age_s = 604800; /* 1 week */
+static const long cache_default_max_unused_age_s = 604800; /* 1 week */
/* Location of the cache of files downloaded from debuginfods.
The default parent directory is $HOME, or '/' if $HOME doesn't exist. */
@@ -202,8 +223,9 @@ debuginfod_write_callback (char *ptr, size_t size, size_t nmemb, void *data)
*d->target_handle = d->handle;
/* update the client object */
const char *url = NULL;
- (void) curl_easy_getinfo (d->handle, CURLINFO_EFFECTIVE_URL, &url);
- if (url)
+ CURLcode curl_res = curl_easy_getinfo (d->handle,
+ CURLINFO_EFFECTIVE_URL, &url);
+ if (curl_res == CURLE_OK && url)
{
free (d->client->url);
d->client->url = strdup(url); /* ok if fails */
@@ -223,20 +245,32 @@ debuginfod_config_cache(char *config_path,
long cache_config_default_s,
struct stat *st)
{
- int fd;
- /* if the config file doesn't exist, create one with DEFFILEMODE*/
- if(stat(config_path, st) == -1)
+ int fd = open(config_path, O_CREAT | O_RDWR, DEFFILEMODE);
+ if (fd < 0)
+ return -errno;
+
+ if (fstat (fd, st) < 0)
{
- fd = open(config_path, O_CREAT | O_RDWR, DEFFILEMODE);
- if (fd < 0)
- return -errno;
+ int ret = -errno;
+ close (fd);
+ return ret;
+ }
+ if (st->st_size == 0)
+ {
if (dprintf(fd, "%ld", cache_config_default_s) < 0)
- return -errno;
+ {
+ int ret = -errno;
+ close (fd);
+ return ret;
+ }
+
+ close (fd);
+ return cache_config_default_s;
}
long cache_config;
- FILE *config_file = fopen(config_path, "r");
+ FILE *config_file = fdopen(fd, "r");
if (config_file)
{
if (fscanf(config_file, "%ld", &cache_config) != 1)
@@ -246,47 +280,10 @@ debuginfod_config_cache(char *config_path,
else
cache_config = cache_config_default_s;
+ close (fd);
return cache_config;
}
-/* Create the cache and interval file if they do not already exist.
- Return 0 if cache and config file are initialized, otherwise return
- the appropriate error code. */
-static int
-debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path)
-{
- struct stat st;
-
- /* If the cache and config file already exist then we are done. */
- if (stat(cache_path, &st) == 0 && stat(interval_path, &st) == 0)
- return 0;
-
- /* Create the cache and config files as necessary. */
- if (stat(cache_path, &st) != 0 && mkdir(cache_path, ACCESSPERMS) < 0)
- return -errno;
-
- int fd = -1;
-
- /* init cleaning interval config file. */
- fd = open(interval_path, O_CREAT | O_RDWR, DEFFILEMODE);
- if (fd < 0)
- return -errno;
-
- if (dprintf(fd, "%ld", cache_clean_default_interval_s) < 0)
- return -errno;
-
- /* init max age config file. */
- if (stat(maxage_path, &st) != 0
- && (fd = open(maxage_path, O_CREAT | O_RDWR, DEFFILEMODE)) < 0)
- return -errno;
-
- if (dprintf(fd, "%ld", cache_default_max_unused_age_s) < 0)
- return -errno;
-
- return 0;
-}
-
-
/* Delete any files that have been unmodied for a period
longer than $DEBUGINFOD_CACHE_CLEAN_INTERVAL_S. */
static int
@@ -310,6 +307,11 @@ debuginfod_clean_cache(debuginfod_client *c,
/* Interval has not passed, skip cleaning. */
return 0;
+ /* Update timestamp representing when the cache was last cleaned.
+ Do it at the start to reduce the number of threads trying to do a
+ cleanup simultaniously. */
+ utime (interval_path, NULL);
+
/* Read max unused age value from config file. */
rc = debuginfod_config_cache(max_unused_path,
cache_default_max_unused_age_s, &st);
@@ -364,8 +366,6 @@ debuginfod_clean_cache(debuginfod_client *c,
fts_close (fts);
regfree (&re);
- /* Update timestamp representing when the cache was last cleaned. */
- utime (interval_path, NULL);
return 0;
}
@@ -455,6 +455,45 @@ add_default_headers(debuginfod_client *client)
free (utspart);
}
+/* Add HTTP headers found in the given file, one per line. Blank lines or invalid
+ * headers are ignored.
+ */
+static void
+add_headers_from_file(debuginfod_client *client, const char* filename)
+{
+ int vds = client->verbose_fd;
+ FILE *f = fopen (filename, "r");
+ if (f == NULL)
+ {
+ if (vds >= 0)
+ dprintf(vds, "header file %s: %s\n", filename, strerror(errno));
+ return;
+ }
+
+ while (1)
+ {
+ char buf[8192];
+ char *s = &buf[0];
+ if (feof(f))
+ break;
+ if (fgets (s, sizeof(buf), f) == NULL)
+ break;
+ for (char *c = s; *c != '\0'; ++c)
+ if (!isspace(*c))
+ goto nonempty;
+ continue;
+ nonempty:
+ ;
+ size_t last = strlen(s)-1;
+ if (s[last] == '\n')
+ s[last] = '\0';
+ int rc = debuginfod_add_http_header(client, s);
+ if (rc < 0 && vds >= 0)
+ dprintf(vds, "skipping bad header: %s\n", strerror(-rc));
+ }
+ fclose (f);
+}
+
#define xalloc_str(p, fmt, args...) \
do \
@@ -509,46 +548,291 @@ default_progressfn (debuginfod_client *c, long a, long b)
static size_t
header_callback (char * buffer, size_t size, size_t numitems, void * userdata)
{
+ struct handle_data *data = (struct handle_data *) userdata;
if (size != 1)
return 0;
+ if (data->client && data->client->verbose_fd >= 0)
+ dprintf (data->client->verbose_fd, "header %.*s", (int)numitems, buffer);
+ // Some basic checks to ensure the headers received are of the expected format
+ if (strncasecmp(buffer, "X-DEBUGINFOD", 11)
+ || buffer[numitems-2] != '\r'
+ || buffer[numitems-1] != '\n'
+ || (buffer == strstr(buffer, ":")) ){
+ return numitems;
+ }
/* Temporary buffer for realloc */
char *temp = NULL;
- struct handle_data *data = (struct handle_data *) userdata;
if (data->response_data == NULL)
{
- temp = malloc(numitems+1);
+ temp = malloc(numitems);
if (temp == NULL)
return 0;
}
else
{
- temp = realloc(data->response_data, data->response_data_size + numitems + 1);
+ temp = realloc(data->response_data, data->response_data_size + numitems);
if (temp == NULL)
return 0;
}
- memcpy(temp + data->response_data_size, buffer, numitems);
+ memcpy(temp + data->response_data_size, buffer, numitems-1);
data->response_data = temp;
- data->response_data_size += numitems;
+ data->response_data_size += numitems-1;
+ data->response_data[data->response_data_size-1] = '\n';
data->response_data[data->response_data_size] = '\0';
return numitems;
}
+/* Copy SRC to DEST, s,/,#,g */
+
+static void
+path_escape (const char *src, char *dest)
+{
+ unsigned q = 0;
+
+ for (unsigned fi=0; q < PATH_MAX-2; fi++) /* -2, escape is 2 chars. */
+ switch (src[fi])
+ {
+ case '\0':
+ dest[q] = '\0';
+ return;
+ case '/': /* escape / to prevent dir escape */
+ dest[q++]='#';
+ dest[q++]='#';
+ break;
+ case '#': /* escape # to prevent /# vs #/ collisions */
+ dest[q++]='#';
+ dest[q++]='_';
+ break;
+ default:
+ dest[q++]=src[fi];
+ }
+
+ dest[q] = '\0';
+}
+
+/* Attempt to read an ELF/DWARF section with name SECTION from FD and write
+ it to a separate file in the debuginfod cache. If successful the absolute
+ path of the separate file containing SECTION will be stored in USR_PATH.
+ FD_PATH is the absolute path for FD.
+
+ If the section cannot be extracted, then return a negative error code.
+ -ENOENT indicates that the parent file was able to be read but the
+ section name was not found. -EEXIST indicates that the section was
+ found but had type SHT_NOBITS. */
+
+int
+extract_section (int fd, const char *section, char *fd_path, char **usr_path)
+{
+ elf_version (EV_CURRENT);
+
+ Elf *elf = elf_begin (fd, ELF_C_READ_MMAP_PRIVATE, NULL);
+ if (elf == NULL)
+ return -EIO;
+
+ size_t shstrndx;
+ int rc = elf_getshdrstrndx (elf, &shstrndx);
+ if (rc < 0)
+ {
+ rc = -EIO;
+ goto out;
+ }
+
+ int sec_fd = -1;
+ char *escaped_name = NULL;
+ char *sec_path_tmp = NULL;
+ Elf_Scn *scn = NULL;
+
+ /* Try to find the target section and copy the contents into a
+ separate file. */
+ while (true)
+ {
+ scn = elf_nextscn (elf, scn);
+ if (scn == NULL)
+ {
+ rc = -ENOENT;
+ goto out;
+ }
+ GElf_Shdr shdr_storage;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_storage);
+ if (shdr == NULL)
+ {
+ rc = -EIO;
+ goto out;
+ }
+
+ const char *scn_name = elf_strptr (elf, shstrndx, shdr->sh_name);
+ if (scn_name == NULL)
+ {
+ rc = -EIO;
+ goto out;
+ }
+ if (strcmp (scn_name, section) == 0)
+ {
+ /* We found the desired section. */
+ if (shdr->sh_type == SHT_NOBITS)
+ {
+ rc = -EEXIST;
+ goto out;
+ }
+
+ Elf_Data *data = NULL;
+ data = elf_rawdata (scn, NULL);
+ if (data == NULL)
+ {
+ rc = -EIO;
+ goto out;
+ }
+
+ if (data->d_buf == NULL)
+ {
+ rc = -EIO;
+ goto out;
+ }
+
+ /* Compute the absolute filename we'll write the section to.
+ Replace the last component of FD_PATH with the path-escaped
+ section filename. */
+ int i = strlen (fd_path);
+ while (i >= 0)
+ {
+ if (fd_path[i] == '/')
+ {
+ fd_path[i] = '\0';
+ break;
+ }
+ --i;
+ }
+
+ escaped_name = malloc (strlen (section) * 2 + 1);
+ if (escaped_name == NULL)
+ {
+ rc = -ENOMEM;
+ goto out;
+ }
+ path_escape (section, escaped_name);
+
+ rc = asprintf (&sec_path_tmp, "%s/section-%s.XXXXXX",
+ fd_path, escaped_name);
+ if (rc == -1)
+ {
+ rc = -ENOMEM;
+ goto out1;
+ }
+
+ sec_fd = mkstemp (sec_path_tmp);
+ if (sec_fd < 0)
+ {
+ rc = -EIO;
+ goto out2;
+ }
+
+ ssize_t res = write_retry (sec_fd, data->d_buf, data->d_size);
+ if (res < 0 || (size_t) res != data->d_size)
+ {
+ rc = -EIO;
+ goto out3;
+ }
+
+ /* Success. Rename tmp file and update USR_PATH. */
+ char *sec_path;
+ if (asprintf (&sec_path, "%s/section-%s", fd_path, section) == -1)
+ {
+ rc = -ENOMEM;
+ goto out3;
+ }
+
+ rc = rename (sec_path_tmp, sec_path);
+ if (rc < 0)
+ {
+ free (sec_path);
+ rc = -EIO;
+ goto out3;
+ }
+
+ if (usr_path != NULL)
+ *usr_path = sec_path;
+ else
+ free (sec_path);
+ rc = sec_fd;
+ goto out2;
+ }
+ }
+
+out3:
+ close (sec_fd);
+ unlink (sec_path_tmp);
+
+out2:
+ free (sec_path_tmp);
+
+out1:
+ free (escaped_name);
+
+out:
+ elf_end (elf);
+ return rc;
+}
+
+/* Search TARGET_CACHE_DIR for a debuginfo or executable file containing
+ an ELF/DWARF section with name SCN_NAME. If found, extract the section
+ to a separate file in TARGET_CACHE_DIR and return a file descriptor
+ for the section file. The path for this file will be stored in USR_PATH.
+ Return a negative errno if unsuccessful. */
+
+static int
+cache_find_section (const char *scn_name, const char *target_cache_dir,
+ char **usr_path)
+{
+ int fd;
+ int rc = -EEXIST;
+ char parent_path[PATH_MAX];
+
+ /* Check the debuginfo first. */
+ snprintf (parent_path, PATH_MAX, "%s/debuginfo", target_cache_dir);
+ fd = open (parent_path, O_RDONLY);
+ if (fd >= 0)
+ {
+ rc = extract_section (fd, scn_name, parent_path, usr_path);
+ close (fd);
+ }
+
+ /* If the debuginfo file couldn't be found or the section type was
+ SHT_NOBITS, check the executable. */
+ if (rc == -EEXIST)
+ {
+ snprintf (parent_path, PATH_MAX, "%s/executable", target_cache_dir);
+ fd = open (parent_path, O_RDONLY);
+
+ if (fd >= 0)
+ {
+ rc = extract_section (fd, scn_name, parent_path, usr_path);
+ close (fd);
+ }
+ }
+
+ return rc;
+}
+
/* Query each of the server URLs found in $DEBUGINFOD_URLS for the file
- with the specified build-id, type (debuginfo, executable or source)
- and filename. filename may be NULL. If found, return a file
- descriptor for the target, otherwise return an error code.
+ with the specified build-id and type (debuginfo, executable, source or
+ section). If type is source, then type_arg should be a filename. If
+ type is section, then type_arg should be the name of an ELF/DWARF
+ section. Otherwise type_arg may be NULL. Return a file descriptor
+ for the target if successful, otherwise return an error code.
*/
static int
debuginfod_query_server (debuginfod_client *c,
const unsigned char *build_id,
int build_id_len,
const char *type,
- const char *filename,
+ const char *type_arg,
char **path)
{
char *server_urls;
char *urls_envvar;
+ const char *section = NULL;
+ const char *filename = NULL;
char *cache_path = NULL;
char *maxage_path = NULL;
char *interval_path = NULL;
@@ -561,6 +845,17 @@ debuginfod_query_server (debuginfod_client *c,
int vfd = c->verbose_fd;
int rc;
+ c->progressfn_cancel = false;
+
+ if (strcmp (type, "source") == 0)
+ filename = type_arg;
+ else if (strcmp (type, "section") == 0)
+ {
+ section = type_arg;
+ if (section == NULL)
+ return -EINVAL;
+ }
+
if (vfd >= 0)
{
dprintf (vfd, "debuginfod_find_%s ", type);
@@ -586,9 +881,11 @@ debuginfod_query_server (debuginfod_client *c,
goto out;
}
- /* Clear the obsolete URL from a previous _find operation. */
+ /* Clear the obsolete data from a previous _find operation. */
free (c->url);
c->url = NULL;
+ free (c->winning_headers);
+ c->winning_headers = NULL;
/* PR 27982: Add max size if DEBUGINFOD_MAXSIZE is set. */
long maxsize = 0;
@@ -606,6 +903,11 @@ debuginfod_query_server (debuginfod_client *c,
if (maxtime && vfd >= 0)
dprintf(vfd, "using max time %lds\n", maxtime);
+ const char *headers_file_envvar;
+ headers_file_envvar = getenv(DEBUGINFOD_HEADERS_FILE_ENV_VAR);
+ if (headers_file_envvar != NULL)
+ add_headers_from_file(c, headers_file_envvar);
+
/* Maxsize is valid*/
if (maxsize > 0)
{
@@ -652,31 +954,13 @@ debuginfod_query_server (debuginfod_client *c,
goto out;
}
- /* copy the filename to suffix, s,/,#,g */
- unsigned q = 0;
- for (unsigned fi=0; q < PATH_MAX-2; fi++) /* -2, escape is 2 chars. */
- switch (filename[fi])
- {
- case '\0':
- suffix[q] = '\0';
- q = PATH_MAX-1; /* escape for loop too */
- break;
- case '/': /* escape / to prevent dir escape */
- suffix[q++]='#';
- suffix[q++]='#';
- break;
- case '#': /* escape # to prevent /# vs #/ collisions */
- suffix[q++]='#';
- suffix[q++]='_';
- break;
- default:
- suffix[q++]=filename[fi];
- }
- suffix[q] = '\0';
+ path_escape (filename, suffix);
/* If the DWARF filenames are super long, this could exceed
PATH_MAX and truncate/collide. Oh well, that'll teach
them! */
}
+ else if (section != NULL)
+ path_escape (section, suffix);
else
suffix[0] = '\0';
@@ -748,7 +1032,10 @@ debuginfod_query_server (debuginfod_client *c,
}
xalloc_str (target_cache_dir, "%s/%s", cache_path, build_id_bytes);
- xalloc_str (target_cache_path, "%s/%s%s", target_cache_dir, type, suffix);
+ if (section != NULL)
+ xalloc_str (target_cache_path, "%s/%s-%s", target_cache_dir, type, suffix);
+ else
+ xalloc_str (target_cache_path, "%s/%s%s", target_cache_dir, type, suffix);
xalloc_str (target_cache_tmppath, "%s.XXXXXX", target_cache_path);
/* XXX combine these */
@@ -759,48 +1046,89 @@ debuginfod_query_server (debuginfod_client *c,
if (vfd >= 0)
dprintf (vfd, "checking cache dir %s\n", cache_path);
- rc = debuginfod_init_cache(cache_path, interval_path, maxage_path);
- if (rc != 0)
- goto out;
+ /* Make sure cache dir exists. debuginfo_clean_cache will then make
+ sure the interval, cache_miss and maxage files exist. */
+ if (mkdir (cache_path, ACCESSPERMS) != 0
+ && errno != EEXIST)
+ {
+ rc = -errno;
+ goto out;
+ }
+
rc = debuginfod_clean_cache(c, cache_path, interval_path, maxage_path);
if (rc != 0)
goto out;
- struct stat st;
- /* Check if the file exists and it's of permission 000; must check
- explicitly rather than trying to open it first (PR28240). */
- if (stat(target_cache_path, &st) == 0
- && (st.st_mode & 0777) == 0)
+ /* Check if the target is already in the cache. */
+ int fd = open(target_cache_path, O_RDONLY);
+ if (fd >= 0)
{
- time_t cache_miss;
-
- rc = debuginfod_config_cache(cache_miss_path, cache_miss_default_s, &st);
- if (rc < 0)
- goto out;
+ struct stat st;
+ if (fstat(fd, &st) != 0)
+ {
+ rc = -errno;
+ close (fd);
+ goto out;
+ }
- cache_miss = (time_t)rc;
- if (time(NULL) - st.st_mtime <= cache_miss)
+ /* If the file is non-empty, then we are done. */
+ if (st.st_size > 0)
{
- rc = -ENOENT;
- goto out;
- }
+ if (path != NULL)
+ {
+ *path = strdup(target_cache_path);
+ if (*path == NULL)
+ {
+ rc = -errno;
+ close (fd);
+ goto out;
+ }
+ }
+ /* Success!!!! */
+ rc = fd;
+ goto out;
+ }
else
- /* TOCTOU non-problem: if another task races, puts a working
- download or a 000 file in its place, unlinking here just
- means WE will try to download again as uncached. */
- unlink(target_cache_path);
+ {
+ /* The file is empty. Attempt to download only if enough time
+ has passed since the last attempt. */
+ time_t cache_miss;
+ time_t target_mtime = st.st_mtime;
+
+ close(fd); /* no need to hold onto the negative-hit file descriptor */
+
+ rc = debuginfod_config_cache(cache_miss_path,
+ cache_miss_default_s, &st);
+ if (rc < 0)
+ goto out;
+
+ cache_miss = (time_t)rc;
+ if (time(NULL) - target_mtime <= cache_miss)
+ {
+ rc = -ENOENT;
+ goto out;
+ }
+ else
+ /* TOCTOU non-problem: if another task races, puts a working
+ download or an empty file in its place, unlinking here just
+ means WE will try to download again as uncached. */
+ unlink(target_cache_path);
+ }
}
-
- /* If the target is already in the cache (known not-000 - PR28240),
- then we are done. */
- int fd = open (target_cache_path, O_RDONLY);
- if (fd >= 0)
+ else if (errno == EACCES)
+ /* Ensure old 000-permission files are not lingering in the cache. */
+ unlink(target_cache_path);
+
+ if (section != NULL)
{
- /* Success!!!! */
- if (path != NULL)
- *path = strdup(target_cache_path);
- rc = fd;
- goto out;
+ /* Try to extract the section from a cached file before querying
+ any servers. */
+ rc = cache_find_section (section, target_cache_dir, path);
+
+ /* If the section was found or confirmed to not exist, then we
+ are done. */
+ if (rc >= 0 || rc == -ENOENT)
+ goto out;
}
long timeout = default_timeout;
@@ -882,6 +1210,7 @@ debuginfod_query_server (debuginfod_client *c,
sizeof(char*));
if (realloc_ptr == NULL)
{
+ free (tmp_url);
rc = -ENOMEM;
goto out1;
}
@@ -909,7 +1238,7 @@ debuginfod_query_server (debuginfod_client *c,
goto out1;
}
- /* thereafter, goto out1 on error. */
+ /* thereafter, goto out2 on error. */
/*The beginning of goto block query_in_parallel.*/
query_in_parallel:
@@ -962,8 +1291,9 @@ debuginfod_query_server (debuginfod_client *c,
data[i].handle = curl_easy_init();
if (data[i].handle == NULL)
{
+ if (filename) curl_free (escaped_string);
rc = -ENETUNREACH;
- goto out1;
+ goto out2;
}
data[i].client = c;
@@ -973,48 +1303,68 @@ debuginfod_query_server (debuginfod_client *c,
snprintf(data[i].url, PATH_MAX, "%s/%s/%s/%s", server_url,
build_id_bytes, type, escaped_string);
}
+ else if (section)
+ snprintf(data[i].url, PATH_MAX, "%s/%s/%s/%s", server_url,
+ build_id_bytes, type, section);
else
snprintf(data[i].url, PATH_MAX, "%s/%s/%s", server_url, build_id_bytes, type);
if (vfd >= 0)
dprintf (vfd, "url %d %s\n", i, data[i].url);
+ /* Some boilerplate for checking curl_easy_setopt. */
+#define curl_easy_setopt_ck(H,O,P) do { \
+ CURLcode curl_res = curl_easy_setopt (H,O,P); \
+ if (curl_res != CURLE_OK) \
+ { \
+ if (vfd >= 0) \
+ dprintf (vfd, \
+ "Bad curl_easy_setopt: %s\n", \
+ curl_easy_strerror(curl_res)); \
+ rc = -EINVAL; \
+ goto out2; \
+ } \
+ } while (0)
+
/* Only allow http:// + https:// + file:// so we aren't being
redirected to some unsupported protocol. */
- curl_easy_setopt(data[i].handle, CURLOPT_PROTOCOLS,
- CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE);
- curl_easy_setopt(data[i].handle, CURLOPT_URL, data[i].url);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_PROTOCOLS,
+ (CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE));
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_URL, data[i].url);
if (vfd >= 0)
- curl_easy_setopt(data[i].handle, CURLOPT_ERRORBUFFER, data[i].errbuf);
- curl_easy_setopt(data[i].handle,
- CURLOPT_WRITEFUNCTION,
- debuginfod_write_callback);
- curl_easy_setopt(data[i].handle, CURLOPT_WRITEDATA, (void*)&data[i]);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_ERRORBUFFER,
+ data[i].errbuf);
+ curl_easy_setopt_ck(data[i].handle,
+ CURLOPT_WRITEFUNCTION,
+ debuginfod_write_callback);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_WRITEDATA, (void*)&data[i]);
if (timeout > 0)
{
/* Make sure there is at least some progress,
try to get at least 100K per timeout seconds. */
- curl_easy_setopt (data[i].handle, CURLOPT_LOW_SPEED_TIME,
- timeout);
- curl_easy_setopt (data[i].handle, CURLOPT_LOW_SPEED_LIMIT,
- 100 * 1024L);
+ curl_easy_setopt_ck (data[i].handle, CURLOPT_LOW_SPEED_TIME,
+ timeout);
+ curl_easy_setopt_ck (data[i].handle, CURLOPT_LOW_SPEED_LIMIT,
+ 100 * 1024L);
}
data[i].response_data = NULL;
data[i].response_data_size = 0;
- curl_easy_setopt(data[i].handle, CURLOPT_FILETIME, (long) 1);
- curl_easy_setopt(data[i].handle, CURLOPT_FOLLOWLOCATION, (long) 1);
- curl_easy_setopt(data[i].handle, CURLOPT_FAILONERROR, (long) 1);
- curl_easy_setopt(data[i].handle, CURLOPT_NOSIGNAL, (long) 1);
- curl_easy_setopt(data[i].handle, CURLOPT_HEADERFUNCTION, header_callback);
- curl_easy_setopt(data[i].handle, CURLOPT_HEADERDATA, (void *) &(data[i]));
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_FILETIME, (long) 1);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_FOLLOWLOCATION, (long) 1);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_FAILONERROR, (long) 1);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_NOSIGNAL, (long) 1);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_HEADERFUNCTION,
+ header_callback);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_HEADERDATA,
+ (void *) &(data[i]));
#if LIBCURL_VERSION_NUM >= 0x072a00 /* 7.42.0 */
- curl_easy_setopt(data[i].handle, CURLOPT_PATH_AS_IS, (long) 1);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_PATH_AS_IS, (long) 1);
#else
/* On old curl; no big deal, canonicalization here is almost the
same, except perhaps for ? # type decorations at the tail. */
#endif
- curl_easy_setopt(data[i].handle, CURLOPT_AUTOREFERER, (long) 1);
- curl_easy_setopt(data[i].handle, CURLOPT_ACCEPT_ENCODING, "");
- curl_easy_setopt(data[i].handle, CURLOPT_HTTPHEADER, c->headers);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_AUTOREFERER, (long) 1);
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_ACCEPT_ENCODING, "");
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_HTTPHEADER, c->headers);
curl_multi_add_handle(curlm, data[i].handle);
}
@@ -1028,10 +1378,12 @@ debuginfod_query_server (debuginfod_client *c,
int committed_to = -1;
bool verbose_reported = false;
struct timespec start_time, cur_time;
+
+ free (c->winning_headers);
c->winning_headers = NULL;
if ( maxtime > 0 && clock_gettime(CLOCK_MONOTONIC_RAW, &start_time) == -1)
{
- rc = errno;
+ rc = -errno;
goto out2;
}
long delta = 0;
@@ -1042,7 +1394,7 @@ debuginfod_query_server (debuginfod_client *c,
{
if (clock_gettime(CLOCK_MONOTONIC_RAW, &cur_time) == -1)
{
- rc = errno;
+ rc = -errno;
goto out2;
}
delta = cur_time.tv_sec - start_time.tv_sec;
@@ -1069,9 +1421,8 @@ debuginfod_query_server (debuginfod_client *c,
if (c->winning_headers == NULL)
{
c->winning_headers = data[committed_to].response_data;
- if (vfd >= 0 && c->winning_headers != NULL)
- dprintf(vfd, "\n%s", c->winning_headers);
data[committed_to].response_data = NULL;
+ data[committed_to].response_data_size = 0;
}
}
@@ -1098,11 +1449,45 @@ debuginfod_query_server (debuginfod_client *c,
goto out2;
}
+ long dl_size = 0;
+ if (target_handle && (c->progressfn || maxsize > 0))
+ {
+ /* Get size of file being downloaded. NB: If going through
+ deflate-compressing proxies, this number is likely to be
+ unavailable, so -1 may show. */
+ CURLcode curl_res;
+#ifdef CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
+ curl_off_t cl;
+ curl_res = curl_easy_getinfo(target_handle,
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
+ &cl);
+ if (curl_res == CURLE_OK && cl >= 0)
+ dl_size = (cl > LONG_MAX ? LONG_MAX : (long)cl);
+#else
+ double cl;
+ curl_res = curl_easy_getinfo(target_handle,
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD,
+ &cl);
+ if (curl_res == CURLE_OK)
+ dl_size = (cl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)cl);
+#endif
+ /* If Content-Length is -1, try to get the size from
+ X-Debuginfod-Size */
+ if (dl_size == -1 && c->winning_headers != NULL)
+ {
+ long xdl;
+ char *hdr = strcasestr(c->winning_headers, "x-debuginfod-size");
+
+ if (hdr != NULL
+ && sscanf(hdr, "x-debuginfod-size: %ld", &xdl) == 1)
+ dl_size = xdl;
+ }
+ }
+
if (c->progressfn) /* inform/check progress callback */
{
loops ++;
- long pa = loops; /* default params for progress callback */
- long pb = 0; /* transfer_timeout tempting, but loops != elapsed-time */
+ long pa = loops; /* default param for progress callback */
if (target_handle) /* we've committed to a server; report its download progress */
{
CURLcode curl_res;
@@ -1122,50 +1507,22 @@ debuginfod_query_server (debuginfod_client *c,
pa = (dl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)dl);
#endif
- /* NB: If going through deflate-compressing proxies, this
- number is likely to be unavailable, so -1 may show. */
-#ifdef CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
- curl_off_t cl;
- curl_res = curl_easy_getinfo(target_handle,
- CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
- &cl);
- if (curl_res == 0 && cl >= 0)
- pb = (cl > LONG_MAX ? LONG_MAX : (long)cl);
-#else
- double cl;
- curl_res = curl_easy_getinfo(target_handle,
- CURLINFO_CONTENT_LENGTH_DOWNLOAD,
- &cl);
- if (curl_res == 0)
- pb = (cl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)cl);
-#endif
}
- if ((*c->progressfn) (c, pa, pb))
- break;
+ if ((*c->progressfn) (c, pa, dl_size))
+ {
+ c->progressfn_cancel = true;
+ break;
+ }
}
+
/* Check to see if we are downloading something which exceeds maxsize, if set.*/
- if (maxsize > 0 && target_handle)
+ if (target_handle && dl_size > maxsize && maxsize > 0)
{
- long dl_size = 0;
-#ifdef CURLINFO_SIZE_DOWNLOAD_T
- curl_off_t download_size_t;
- if (curl_easy_getinfo(target_handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
- &download_size_t) == CURLE_OK)
- dl_size = download_size_t >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)download_size_t;
-#else
- double download_size;
- if (curl_easy_getinfo(target_handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD,
- &download_size) == CURLE_OK)
- dl_size = download_size >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)download_size;
-#endif
- if (dl_size > maxsize)
- {
- if (vfd >=0)
- dprintf(vfd, "Content-Length too large.\n");
- rc = -EFBIG;
- goto out2;
- }
+ if (vfd >=0)
+ dprintf(vfd, "Content-Length too large.\n");
+ rc = -EFBIG;
+ goto out2;
}
} while (still_running);
@@ -1223,6 +1580,8 @@ debuginfod_query_server (debuginfod_client *c,
/* 406 signals that the requested file was too large */
if ( ok0 == CURLE_OK && resp_code == 406)
rc = -EFBIG;
+ else if (section != NULL && resp_code == 503)
+ rc = -EINVAL;
else
rc = -ENOENT;
break;
@@ -1290,11 +1649,11 @@ debuginfod_query_server (debuginfod_client *c,
}
} while (num_msg > 0);
- /* Create a 000-permission file named as $HOME/.cache if the query
- fails with ENOENT.*/
+ /* Create an empty file named as $HOME/.cache if the query fails
+ with ENOENT.*/
if (rc == -ENOENT)
{
- int efd = open (target_cache_path, O_CREAT|O_EXCL, 0000);
+ int efd = open (target_cache_path, O_CREAT|O_EXCL, DEFFILEMODE);
if (efd >= 0)
close(efd);
}
@@ -1336,7 +1695,11 @@ debuginfod_query_server (debuginfod_client *c,
/* we've got one!!!! */
time_t mtime;
+#if defined(_TIME_BITS) && _TIME_BITS == 64
+ CURLcode curl_res = curl_easy_getinfo(verified_handle, CURLINFO_FILETIME_T, (void*) &mtime);
+#else
CURLcode curl_res = curl_easy_getinfo(verified_handle, CURLINFO_FILETIME, (void*) &mtime);
+#endif
if (curl_res != CURLE_OK)
mtime = time(NULL); /* fall back to current time */
@@ -1384,9 +1747,12 @@ debuginfod_query_server (debuginfod_client *c,
/* remove all handles from multi */
for (int i = 0; i < num_urls; i++)
{
- curl_multi_remove_handle(curlm, data[i].handle); /* ok to repeat */
- curl_easy_cleanup (data[i].handle);
- free (data[i].response_data);
+ if (data[i].handle != NULL)
+ {
+ curl_multi_remove_handle(curlm, data[i].handle); /* ok to repeat */
+ curl_easy_cleanup (data[i].handle);
+ free (data[i].response_data);
+ }
}
unlink (target_cache_tmppath);
@@ -1440,6 +1806,9 @@ debuginfod_query_server (debuginfod_client *c,
debuginfod_client *
debuginfod_begin (void)
{
+ /* Initialize libcurl lazily, but only once. */
+ pthread_once (&init_control, libcurl_init);
+
debuginfod_client *client;
size_t size = sizeof (struct debuginfod_client);
client = calloc (1, size);
@@ -1490,6 +1859,12 @@ debuginfod_get_url(debuginfod_client *client)
return client->url;
}
+const char *
+debuginfod_get_headers(debuginfod_client *client)
+{
+ return client->winning_headers;
+}
+
void
debuginfod_end (debuginfod_client *client)
{
@@ -1532,18 +1907,68 @@ int debuginfod_find_source(debuginfod_client *client,
"source", filename, path);
}
+int
+debuginfod_find_section (debuginfod_client *client,
+ const unsigned char *build_id, int build_id_len,
+ const char *section, char **path)
+{
+ int rc = debuginfod_query_server(client, build_id, build_id_len,
+ "section", section, path);
+ if (rc != -EINVAL)
+ return rc;
+
+ /* The servers may have lacked support for section queries. Attempt to
+ download the debuginfo or executable containing the section in order
+ to extract it. */
+ rc = -EEXIST;
+ int fd = -1;
+ char *tmp_path = NULL;
+
+ fd = debuginfod_find_debuginfo (client, build_id, build_id_len, &tmp_path);
+ if (client->progressfn_cancel)
+ {
+ if (fd >= 0)
+ {
+ /* This shouldn't happen, but we'll check this condition
+ just in case. */
+ close (fd);
+ free (tmp_path);
+ }
+ return -ENOENT;
+ }
+ if (fd > 0)
+ {
+ rc = extract_section (fd, section, tmp_path, path);
+ close (fd);
+ }
+
+ if (rc == -EEXIST)
+ {
+ /* The section should be found in the executable. */
+ fd = debuginfod_find_executable (client, build_id,
+ build_id_len, &tmp_path);
+ if (fd > 0)
+ {
+ rc = extract_section (fd, section, tmp_path, path);
+ close (fd);
+ }
+ }
+
+ free (tmp_path);
+ return rc;
+}
/* Add an outgoing HTTP header. */
int debuginfod_add_http_header (debuginfod_client *client, const char* header)
{
/* Sanity check header value is of the form Header: Value.
- It should contain exactly one colon that isn't the first or
+ It should contain at least one colon that isn't the first or
last character. */
- char *colon = strchr (header, ':');
- if (colon == NULL
- || colon == header
- || *(colon + 1) == '\0'
- || strchr (colon + 1, ':') != NULL)
+ char *colon = strchr (header, ':'); /* first colon */
+ if (colon == NULL /* present */
+ || colon == header /* not at beginning - i.e., have a header name */
+ || *(colon + 1) == '\0') /* not at end - i.e., have a value */
+ /* NB: but it's okay for a value to contain other colons! */
return -EINVAL;
struct curl_slist *temp = curl_slist_append (client->headers, header);
@@ -1573,18 +1998,4 @@ debuginfod_set_verbose_fd(debuginfod_client *client, int fd)
client->verbose_fd = fd;
}
-
-/* NB: these are thread-unsafe. */
-__attribute__((constructor)) attribute_hidden void libdebuginfod_ctor(void)
-{
- curl_global_init(CURL_GLOBAL_DEFAULT);
-}
-
-/* NB: this is very thread-unsafe: it breaks other threads that are still in libcurl */
-__attribute__((destructor)) attribute_hidden void libdebuginfod_dtor(void)
-{
- /* ... so don't do this: */
- /* curl_global_cleanup(); */
-}
-
#endif /* DUMMY_LIBDEBUGINFOD */
diff --git a/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c
index 3e8ab203..30731098 100644
--- a/debuginfod/debuginfod-find.c
+++ b/debuginfod/debuginfod-find.c
@@ -48,7 +48,9 @@ static const char args_doc[] = N_("debuginfo BUILDID\n"
"executable BUILDID\n"
"executable PATH\n"
"source BUILDID /FILENAME\n"
- "source PATH /FILENAME\n");
+ "source PATH /FILENAME\n"
+ "section BUILDID SECTION-NAME\n"
+ "section PATH SECTION-NAME\n");
/* Definitions of arguments for argp functions. */
@@ -99,7 +101,8 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
case 'v': verbose++;
debuginfod_set_progressfn (client, & progressfn);
- debuginfod_set_verbose_fd (client, STDERR_FILENO);
+ if (verbose > 1)
+ debuginfod_set_verbose_fd (client, STDERR_FILENO);
break;
default: return ARGP_ERR_UNKNOWN;
}
@@ -207,6 +210,17 @@ main(int argc, char** argv)
build_id, build_id_len,
argv[remaining+2], &cache_name);
}
+ else if (strcmp(argv[remaining], "section") == 0)
+ {
+ if (remaining+2 >= argc)
+ {
+ fprintf(stderr,
+ "If FILETYPE is \"section\" then a section name must be given\n");
+ return 1;
+ }
+ rc = debuginfod_find_section(client, build_id, build_id_len,
+ argv[remaining+2], &cache_name);
+ }
else
{
argp_help (&argp, stderr, ARGP_HELP_USAGE, argv[0]);
@@ -215,6 +229,9 @@ main(int argc, char** argv)
if (verbose)
{
+ const char* headers = debuginfod_get_headers(client);
+ if (headers)
+ fprintf(stderr, "Headers:\n%s", headers);
const char* url = debuginfod_get_url (client);
if (url != NULL)
fprintf(stderr, "Downloaded from %s\n", url);
@@ -231,6 +248,8 @@ main(int argc, char** argv)
fprintf(stderr, "Server query failed: %s\n", strerror(-rc));
return 1;
}
+ else
+ close (rc);
printf("%s\n", cache_name);
free (cache_name);
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index 521cb529..f46da6ef 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -1,5 +1,6 @@
/* Debuginfo-over-http server.
Copyright (C) 2019-2021 Red Hat, Inc.
+ Copyright (C) 2021, 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -33,11 +34,11 @@
extern "C" {
#include "printversion.h"
+#include "system.h"
}
#include "debuginfod.h"
#include <dwarf.h>
-#include <system.h>
#include <argp.h>
#ifdef __GNUC__
@@ -46,7 +47,6 @@ extern "C" {
#include <unistd.h>
#include <stdlib.h>
-#include <libintl.h>
#include <locale.h>
#include <pthread.h>
#include <signal.h>
@@ -173,6 +173,8 @@ static const char DEBUGINFOD_SQLITE_DDL[] =
" foreign key (buildid) references " BUILDIDS "_buildids(id) on update cascade on delete cascade,\n"
" primary key (buildid, file, mtime)\n"
" ) " WITHOUT_ROWID ";\n"
+ // Index for faster delete by file identifier
+ "create index if not exists " BUILDIDS "_f_de_idx on " BUILDIDS "_f_de (file, mtime);\n"
"create table if not exists " BUILDIDS "_f_s (\n"
" buildid integer not null,\n"
" artifactsrc integer not null,\n"
@@ -195,6 +197,8 @@ static const char DEBUGINFOD_SQLITE_DDL[] =
" foreign key (buildid) references " BUILDIDS "_buildids(id) on update cascade on delete cascade,\n"
" primary key (buildid, debuginfo_p, executable_p, file, content, mtime)\n"
" ) " WITHOUT_ROWID ";\n"
+ // Index for faster delete by archive file identifier
+ "create index if not exists " BUILDIDS "_r_de_idx on " BUILDIDS "_r_de (file, mtime);\n"
"create table if not exists " BUILDIDS "_r_sref (\n" // outgoing dwarf sourcefile references from rpm
" buildid integer not null,\n"
" artifactsrc integer not null,\n"
@@ -352,7 +356,9 @@ static const struct argp_option options[] =
{ "rescan-time", 't', "SECONDS", 0, "Number of seconds to wait between rescans, 0=disable.", 0 },
{ "groom-time", 'g', "SECONDS", 0, "Number of seconds to wait between database grooming, 0=disable.", 0 },
{ "maxigroom", 'G', NULL, 0, "Run a complete database groom/shrink pass at startup.", 0 },
- { "concurrency", 'c', "NUM", 0, "Limit scanning thread concurrency to NUM.", 0 },
+ { "concurrency", 'c', "NUM", 0, "Limit scanning thread concurrency to NUM, default=#CPUs.", 0 },
+ { "connection-pool", 'C', "NUM", OPTION_ARG_OPTIONAL,
+ "Use webapi connection pool with NUM threads, default=unlim.", 0 },
{ "include", 'I', "REGEX", 0, "Include files matching REGEX, default=all.", 0 },
{ "exclude", 'X', "REGEX", 0, "Exclude files matching REGEX, default=none.", 0 },
{ "port", 'p', "NUM", 0, "HTTP port to listen on, default 8002.", 0 },
@@ -378,6 +384,8 @@ static const struct argp_option options[] =
{"forwarded-ttl-limit", ARGP_KEY_FORWARDED_TTL_LIMIT, "NUM", 0, "Limit of X-Forwarded-For hops, default 8.", 0},
#define ARGP_KEY_PASSIVE 0x1008
{ "passive", ARGP_KEY_PASSIVE, NULL, 0, "Do not scan or groom, read-only database.", 0 },
+#define ARGP_KEY_DISABLE_SOURCE_SCAN 0x1009
+ { "disable-source-scan", ARGP_KEY_DISABLE_SOURCE_SCAN, NULL, 0, "Do not scan dwarf source info.", 0 },
{ NULL, 0, NULL, 0, NULL, 0 },
};
@@ -411,6 +419,7 @@ static unsigned rescan_s = 300;
static unsigned groom_s = 86400;
static bool maxigroom = false;
static unsigned concurrency = std::thread::hardware_concurrency() ?: 1;
+static int connection_pool = 0;
static set<string> source_paths;
static bool scan_files = false;
static map<string,string> scan_archives;
@@ -426,6 +435,7 @@ static long fdcache_mintmp;
static long fdcache_prefetch_mbs;
static long fdcache_prefetch_fds;
static unsigned forwarded_ttl_limit = 8;
+static bool scan_source_info = true;
static string tmpdir;
static bool passive_p = false;
@@ -557,6 +567,14 @@ parse_opt (int key, char *arg,
concurrency = (unsigned) atoi(arg);
if (concurrency < 1) concurrency = 1;
break;
+ case 'C':
+ if (arg)
+ {
+ connection_pool = atoi(arg);
+ if (connection_pool < 2)
+ argp_failure(state, 1, EINVAL, "-C NUM minimum 2");
+ }
+ break;
case 'I':
// NB: no problem with unconditional free here - an earlier failed regcomp would exit program
if (passive_p)
@@ -618,6 +636,9 @@ parse_opt (int key, char *arg,
// other conflicting options tricky to check
argp_failure(state, 1, EINVAL, "inconsistent options with passive mode");
break;
+ case ARGP_KEY_DISABLE_SOURCE_SCAN:
+ scan_source_info = false;
+ break;
// case 'h': argp_state_help (state, stderr, ARGP_HELP_LONG|ARGP_HELP_EXIT_OK);
default: return ARGP_ERR_UNKNOWN;
}
@@ -629,6 +650,9 @@ parse_opt (int key, char *arg,
////////////////////////////////////////////////////////////////////////
+static void add_mhd_response_header (struct MHD_Response *r,
+ const char *h, const char *v);
+
// represent errors that may get reported to an ostream and/or a libmicrohttpd connection
struct reportable_exception
@@ -646,7 +670,7 @@ struct reportable_exception
MHD_Response* r = MHD_create_response_from_buffer (message.size(),
(void*) message.c_str(),
MHD_RESPMEM_MUST_COPY);
- MHD_add_response_header (r, "Content-Type", "text/plain");
+ add_mhd_response_header (r, "Content-Type", "text/plain");
MHD_RESULT rc = MHD_queue_response (c, code, r);
MHD_destroy_response (r);
return rc;
@@ -852,10 +876,11 @@ timestamp (ostream &o)
char datebuf[80];
char *now2 = NULL;
time_t now_t = time(NULL);
- struct tm *now = gmtime (&now_t);
- if (now)
+ struct tm now;
+ struct tm *nowp = gmtime_r (&now_t, &now);
+ if (nowp)
{
- (void) strftime (datebuf, sizeof (datebuf), "%c", now);
+ (void) strftime (datebuf, sizeof (datebuf), "%c", nowp);
now2 = datebuf;
}
@@ -1042,12 +1067,30 @@ conninfo (struct MHD_Connection * conn)
struct sockaddr *so = u ? u->client_addr : 0;
if (so && so->sa_family == AF_INET) {
- sts = getnameinfo (so, sizeof (struct sockaddr_in), hostname, sizeof (hostname), servname,
- sizeof (servname), NI_NUMERICHOST | NI_NUMERICSERV);
+ sts = getnameinfo (so, sizeof (struct sockaddr_in),
+ hostname, sizeof (hostname),
+ servname, sizeof (servname),
+ NI_NUMERICHOST | NI_NUMERICSERV);
} else if (so && so->sa_family == AF_INET6) {
- sts = getnameinfo (so, sizeof (struct sockaddr_in6), hostname, sizeof (hostname),
- servname, sizeof (servname), NI_NUMERICHOST | NI_NUMERICSERV);
+ struct sockaddr_in6* addr6 = (struct sockaddr_in6*) so;
+ if (IN6_IS_ADDR_V4MAPPED(&addr6->sin6_addr)) {
+ struct sockaddr_in addr4;
+ memset (&addr4, 0, sizeof(addr4));
+ addr4.sin_family = AF_INET;
+ addr4.sin_port = addr6->sin6_port;
+ memcpy (&addr4.sin_addr.s_addr, addr6->sin6_addr.s6_addr+12, sizeof(addr4.sin_addr.s_addr));
+ sts = getnameinfo ((struct sockaddr*) &addr4, sizeof (addr4),
+ hostname, sizeof (hostname),
+ servname, sizeof (servname),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ } else {
+ sts = getnameinfo (so, sizeof (struct sockaddr_in6),
+ hostname, sizeof (hostname),
+ servname, sizeof (servname),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ }
}
+
if (sts != 0) {
hostname[0] = servname[0] = '\0';
}
@@ -1066,81 +1109,33 @@ conninfo (struct MHD_Connection * conn)
////////////////////////////////////////////////////////////////////////
+/* Wrapper for MHD_add_response_header that logs an error if we
+ couldn't add the specified header. */
+static void
+add_mhd_response_header (struct MHD_Response *r,
+ const char *h, const char *v)
+{
+ if (MHD_add_response_header (r, h, v) == MHD_NO)
+ obatched(clog) << "Error: couldn't add '" << h << "' header" << endl;
+}
static void
add_mhd_last_modified (struct MHD_Response *resp, time_t mtime)
{
- struct tm *now = gmtime (&mtime);
- if (now != NULL)
+ struct tm now;
+ struct tm *nowp = gmtime_r (&mtime, &now);
+ if (nowp != NULL)
{
char datebuf[80];
- size_t rc = strftime (datebuf, sizeof (datebuf), "%a, %d %b %Y %T GMT", now);
+ size_t rc = strftime (datebuf, sizeof (datebuf), "%a, %d %b %Y %T GMT",
+ nowp);
if (rc > 0 && rc < sizeof (datebuf))
- (void) MHD_add_response_header (resp, "Last-Modified", datebuf);
+ add_mhd_response_header (resp, "Last-Modified", datebuf);
}
- (void) MHD_add_response_header (resp, "Cache-Control", "public");
+ add_mhd_response_header (resp, "Cache-Control", "public");
}
-
-
-static struct MHD_Response*
-handle_buildid_f_match (bool internal_req_t,
- int64_t b_mtime,
- const string& b_source0,
- int *result_fd)
-{
- (void) internal_req_t; // ignored
- int fd = open(b_source0.c_str(), O_RDONLY);
- if (fd < 0)
- throw libc_exception (errno, string("open ") + b_source0);
-
- // NB: use manual close(2) in error case instead of defer_dtor, because
- // in the normal case, we want to hand the fd over to libmicrohttpd for
- // file transfer.
-
- struct stat s;
- int rc = fstat(fd, &s);
- if (rc < 0)
- {
- close(fd);
- throw libc_exception (errno, string("fstat ") + b_source0);
- }
-
- if ((int64_t) s.st_mtime != b_mtime)
- {
- if (verbose)
- obatched(clog) << "mtime mismatch for " << b_source0 << endl;
- close(fd);
- return 0;
- }
-
- inc_metric ("http_responses_total","result","file");
- struct MHD_Response* r = MHD_create_response_from_fd ((uint64_t) s.st_size, fd);
- if (r == 0)
- {
- if (verbose)
- obatched(clog) << "cannot create fd-response for " << b_source0 << endl;
- close(fd);
- }
- else
- {
- MHD_add_response_header (r, "Content-Type", "application/octet-stream");
- std::string file = b_source0.substr(b_source0.find_last_of("/")+1, b_source0.length());
- MHD_add_response_header (r, "X-DEBUGINFOD-SIZE", to_string(s.st_size).c_str() );
- MHD_add_response_header (r, "X-DEBUGINFOD-FILE", file.c_str() );
- add_mhd_last_modified (r, s.st_mtime);
- if (verbose > 1)
- obatched(clog) << "serving file " << b_source0 << endl;
- /* libmicrohttpd will close it. */
- if (result_fd)
- *result_fd = fd;
- }
-
- return r;
-}
-
-
// quote all questionable characters of str for safe passage through a sh -c expansion.
static string
shell_escape(const string& str)
@@ -1351,8 +1346,9 @@ public:
if (verbose > 3)
obatched(clog) << "fdcache interned a=" << a << " b=" << b
<< " fd=" << fd << " mb=" << mb << " front=" << front_p << endl;
+
+ set_metrics();
}
- set_metrics();
// NB: we age the cache at lookup time too
if (statfs_free_enough_p(tmpdir, "tmpdir", fdcache_mintmp))
@@ -1533,6 +1529,205 @@ public:
};
static libarchive_fdcache fdcache;
+/* Search ELF_FD for an ELF/DWARF section with name SECTION.
+ If found copy the section to a temporary file and return
+ its file descriptor, otherwise return -1.
+
+ The temporary file's mtime will be set to PARENT_MTIME.
+ B_SOURCE should be a description of the parent file suitable
+ for printing to the log. */
+
+static int
+extract_section (int elf_fd, int64_t parent_mtime,
+ const string& b_source, const string& section)
+{
+ /* Search the fdcache. */
+ struct stat fs;
+ int fd = fdcache.lookup (b_source, section);
+ if (fd >= 0)
+ {
+ if (fstat (fd, &fs) != 0)
+ {
+ if (verbose)
+ obatched (clog) << "cannot fstate fdcache "
+ << b_source << " " << section << endl;
+ close (fd);
+ return -1;
+ }
+ if ((int64_t) fs.st_mtime != parent_mtime)
+ {
+ if (verbose)
+ obatched(clog) << "mtime mismatch for "
+ << b_source << " " << section << endl;
+ close (fd);
+ return -1;
+ }
+ /* Success. */
+ return fd;
+ }
+
+ Elf *elf = elf_begin (elf_fd, ELF_C_READ_MMAP_PRIVATE, NULL);
+ if (elf == NULL)
+ return -1;
+
+ /* Try to find the section and copy the contents into a separate file. */
+ try
+ {
+ size_t shstrndx;
+ int rc = elf_getshdrstrndx (elf, &shstrndx);
+ if (rc < 0)
+ throw elfutils_exception (rc, "getshdrstrndx");
+
+ Elf_Scn *scn = NULL;
+ while (true)
+ {
+ scn = elf_nextscn (elf, scn);
+ if (scn == NULL)
+ break;
+ GElf_Shdr shdr_storage;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_storage);
+ if (shdr == NULL)
+ break;
+
+ const char *scn_name = elf_strptr (elf, shstrndx, shdr->sh_name);
+ if (scn_name == NULL)
+ break;
+ if (scn_name == section)
+ {
+ Elf_Data *data = NULL;
+
+ /* We found the desired section. */
+ data = elf_rawdata (scn, NULL);
+ if (data == NULL)
+ throw elfutils_exception (elf_errno (), "elfraw_data");
+ if (data->d_buf == NULL)
+ {
+ obatched(clog) << "section " << section
+ << " is empty" << endl;
+ break;
+ }
+
+ /* Create temporary file containing the section. */
+ char *tmppath = NULL;
+ rc = asprintf (&tmppath, "%s/debuginfod.XXXXXX", tmpdir.c_str());
+ if (rc < 0)
+ throw libc_exception (ENOMEM, "cannot allocate tmppath");
+ defer_dtor<void*,void> tmmpath_freer (tmppath, free);
+ fd = mkstemp (tmppath);
+ if (fd < 0)
+ throw libc_exception (errno, "cannot create temporary file");
+ ssize_t res = write_retry (fd, data->d_buf, data->d_size);
+ if (res < 0 || (size_t) res != data->d_size)
+ throw libc_exception (errno, "cannot write to temporary file");
+
+ /* Set mtime to be the same as the parent file's mtime. */
+ struct timeval tvs[2];
+ if (fstat (elf_fd, &fs) != 0)
+ throw libc_exception (errno, "cannot fstat file");
+
+ tvs[0].tv_sec = tvs[1].tv_sec = fs.st_mtime;
+ tvs[0].tv_usec = tvs[1].tv_usec = 0;
+ (void) futimes (fd, tvs);
+
+ /* Add to fdcache. */
+ fdcache.intern (b_source, section, tmppath, data->d_size, true);
+ break;
+ }
+ }
+ }
+ catch (const reportable_exception &e)
+ {
+ e.report (clog);
+ close (fd);
+ fd = -1;
+ }
+
+ elf_end (elf);
+ return fd;
+}
+
+static struct MHD_Response*
+handle_buildid_f_match (bool internal_req_t,
+ int64_t b_mtime,
+ const string& b_source0,
+ const string& section,
+ int *result_fd)
+{
+ (void) internal_req_t; // ignored
+ int fd = open(b_source0.c_str(), O_RDONLY);
+ if (fd < 0)
+ throw libc_exception (errno, string("open ") + b_source0);
+
+ // NB: use manual close(2) in error case instead of defer_dtor, because
+ // in the normal case, we want to hand the fd over to libmicrohttpd for
+ // file transfer.
+
+ struct stat s;
+ int rc = fstat(fd, &s);
+ if (rc < 0)
+ {
+ close(fd);
+ throw libc_exception (errno, string("fstat ") + b_source0);
+ }
+
+ if ((int64_t) s.st_mtime != b_mtime)
+ {
+ if (verbose)
+ obatched(clog) << "mtime mismatch for " << b_source0 << endl;
+ close(fd);
+ return 0;
+ }
+
+ if (!section.empty ())
+ {
+ int scn_fd = extract_section (fd, s.st_mtime, b_source0, section);
+ close (fd);
+
+ if (scn_fd >= 0)
+ fd = scn_fd;
+ else
+ {
+ if (verbose)
+ obatched (clog) << "cannot find section " << section
+ << " for " << b_source0 << endl;
+ return 0;
+ }
+
+ rc = fstat(fd, &s);
+ if (rc < 0)
+ {
+ close (fd);
+ throw libc_exception (errno, string ("fstat ") + b_source0
+ + string (" ") + section);
+ }
+ }
+
+ struct MHD_Response* r = MHD_create_response_from_fd ((uint64_t) s.st_size, fd);
+ inc_metric ("http_responses_total","result","file");
+ if (r == 0)
+ {
+ if (verbose)
+ obatched(clog) << "cannot create fd-response for " << b_source0
+ << " section=" << section << endl;
+ close(fd);
+ }
+ else
+ {
+ std::string file = b_source0.substr(b_source0.find_last_of("/")+1, b_source0.length());
+ add_mhd_response_header (r, "Content-Type", "application/octet-stream");
+ add_mhd_response_header (r, "X-DEBUGINFOD-SIZE",
+ to_string(s.st_size).c_str());
+ add_mhd_response_header (r, "X-DEBUGINFOD-FILE", file.c_str());
+ add_mhd_last_modified (r, s.st_mtime);
+ if (verbose > 1)
+ obatched(clog) << "serving file " << b_source0 << " section=" << section << endl;
+ /* libmicrohttpd will close it. */
+ if (result_fd)
+ *result_fd = fd;
+ }
+
+ return r;
+}
// For security/portability reasons, many distro-package archives have
// a "./" in front of path names; others have nothing, others have
@@ -1558,6 +1753,7 @@ handle_buildid_r_match (bool internal_req_p,
int64_t b_mtime,
const string& b_source0,
const string& b_source1,
+ const string& section,
int *result_fd)
{
struct stat fs;
@@ -1586,6 +1782,33 @@ handle_buildid_r_match (bool internal_req_p,
break; // branch out of if "loop", to try new libarchive fetch attempt
}
+ if (!section.empty ())
+ {
+ int scn_fd = extract_section (fd, fs.st_mtime,
+ b_source0 + ":" + b_source1,
+ section);
+ close (fd);
+ if (scn_fd >= 0)
+ fd = scn_fd;
+ else
+ {
+ if (verbose)
+ obatched (clog) << "cannot find section " << section
+ << " for archive " << b_source0
+ << " file " << b_source1 << endl;
+ return 0;
+ }
+
+ rc = fstat(fd, &fs);
+ if (rc < 0)
+ {
+ close (fd);
+ throw libc_exception (errno,
+ string ("fstat archive ") + b_source0 + string (" file ") + b_source1
+ + string (" section ") + section);
+ }
+ }
+
struct MHD_Response* r = MHD_create_response_from_fd (fs.st_size, fd);
if (r == 0)
{
@@ -1597,13 +1820,16 @@ handle_buildid_r_match (bool internal_req_p,
inc_metric ("http_responses_total","result","archive fdcache");
- MHD_add_response_header (r, "Content-Type", "application/octet-stream");
- MHD_add_response_header (r, "X-DEBUGINFOD-SIZE", to_string(fs.st_size).c_str());
- MHD_add_response_header (r, "X-DEBUGINFOD-ARCHIVE", b_source0.c_str());
- MHD_add_response_header (r, "X-DEBUGINFOD-FILE", b_source1.c_str());
+ add_mhd_response_header (r, "Content-Type", "application/octet-stream");
+ add_mhd_response_header (r, "X-DEBUGINFOD-SIZE",
+ to_string(fs.st_size).c_str());
+ add_mhd_response_header (r, "X-DEBUGINFOD-ARCHIVE", b_source0.c_str());
+ add_mhd_response_header (r, "X-DEBUGINFOD-FILE", b_source1.c_str());
add_mhd_last_modified (r, fs.st_mtime);
if (verbose > 1)
- obatched(clog) << "serving fdcache archive " << b_source0 << " file " << b_source1 << endl;
+ obatched(clog) << "serving fdcache archive " << b_source0
+ << " file " << b_source1
+ << " section=" << section << endl;
/* libmicrohttpd will close it. */
if (result_fd)
*result_fd = fd;
@@ -1654,7 +1880,10 @@ handle_buildid_r_match (bool internal_req_p,
rc = archive_read_open_FILE (a, fp);
if (rc != ARCHIVE_OK)
- throw archive_exception(a, "cannot open archive from pipe");
+ {
+ obatched(clog) << "cannot open archive from pipe " << b_source0 << endl;
+ throw archive_exception(a, "cannot open archive from pipe");
+ }
// archive traversal is in three stages, no, four stages:
// 1) skip entries whose names do not match the requested one
@@ -1682,7 +1911,8 @@ handle_buildid_r_match (bool internal_req_p,
if ((r == 0) && (fn != b_source1)) // stage 1
continue;
- if (fdcache.probe (b_source0, fn)) // skip if already interned
+ if (fdcache.probe (b_source0, fn) && // skip if already interned
+ fn != b_source1) // but only if we'd just be prefetching, PR29474
continue;
// extract this file to a temporary file
@@ -1730,8 +1960,36 @@ handle_buildid_r_match (bool internal_req_p,
tmppath, archive_entry_size(e),
true); // requested ones go to the front of lru
+ if (!section.empty ())
+ {
+ int scn_fd = extract_section (fd, b_mtime,
+ b_source0 + ":" + b_source1,
+ section);
+ close (fd);
+ if (scn_fd >= 0)
+ fd = scn_fd;
+ else
+ {
+ if (verbose)
+ obatched (clog) << "cannot find section " << section
+ << " for archive " << b_source0
+ << " file " << b_source1 << endl;
+ return 0;
+ }
+
+ rc = fstat(fd, &fs);
+ if (rc < 0)
+ {
+ close (fd);
+ throw libc_exception (errno,
+ string ("fstat ") + b_source0 + string (" ") + section);
+ }
+ r = MHD_create_response_from_fd (fs.st_size, fd);
+ }
+ else
+ r = MHD_create_response_from_fd (archive_entry_size(e), fd);
+
inc_metric ("http_responses_total","result",archive_extension + " archive");
- r = MHD_create_response_from_fd (archive_entry_size(e), fd);
if (r == 0)
{
if (verbose)
@@ -1741,15 +1999,19 @@ handle_buildid_r_match (bool internal_req_p,
}
else
{
- MHD_add_response_header (r, "Content-Type", "application/octet-stream");
std::string file = b_source1.substr(b_source1.find_last_of("/")+1, b_source1.length());
- MHD_add_response_header (r, "X-DEBUGINFOD-SIZE", to_string(fs.st_size).c_str());
- MHD_add_response_header (r, "X-DEBUGINFOD-ARCHIVE", b_source0.c_str());
- MHD_add_response_header (r, "X-DEBUGINFOD-FILE", file.c_str());
-
+ add_mhd_response_header (r, "Content-Type",
+ "application/octet-stream");
+ add_mhd_response_header (r, "X-DEBUGINFOD-SIZE",
+ to_string(archive_entry_size(e)).c_str());
+ add_mhd_response_header (r, "X-DEBUGINFOD-ARCHIVE",
+ b_source0.c_str());
+ add_mhd_response_header (r, "X-DEBUGINFOD-FILE", file.c_str());
add_mhd_last_modified (r, archive_entry_mtime(e));
if (verbose > 1)
- obatched(clog) << "serving archive " << b_source0 << " file " << b_source1 << endl;
+ obatched(clog) << "serving archive " << b_source0
+ << " file " << b_source1
+ << " section=" << section << endl;
/* libmicrohttpd will close it. */
if (result_fd)
*result_fd = fd;
@@ -1768,14 +2030,17 @@ handle_buildid_match (bool internal_req_p,
const string& b_stype,
const string& b_source0,
const string& b_source1,
+ const string& section,
int *result_fd)
{
try
{
if (b_stype == "F")
- return handle_buildid_f_match(internal_req_p, b_mtime, b_source0, result_fd);
+ return handle_buildid_f_match(internal_req_p, b_mtime, b_source0,
+ section, result_fd);
else if (b_stype == "R")
- return handle_buildid_r_match(internal_req_p, b_mtime, b_source0, b_source1, result_fd);
+ return handle_buildid_r_match(internal_req_p, b_mtime, b_source0,
+ b_source1, section, result_fd);
}
catch (const reportable_exception &e)
{
@@ -1850,13 +2115,25 @@ handle_buildid (MHD_Connection* conn,
if (artifacttype == "debuginfo") atype_code = "D";
else if (artifacttype == "executable") atype_code = "E";
else if (artifacttype == "source") atype_code = "S";
+ else if (artifacttype == "section") atype_code = "I";
else {
artifacttype = "invalid"; // PR28242 ensure http_resposes metrics don't propagate unclean user data
throw reportable_exception("invalid artifacttype");
}
- inc_metric("http_requests_total", "type", artifacttype);
-
+ if (conn != 0)
+ inc_metric("http_requests_total", "type", artifacttype);
+
+ string section;
+ if (atype_code == "I")
+ {
+ if (suffix.size () < 2)
+ throw reportable_exception ("invalid section suffix");
+
+ // Remove leading '/'
+ section = suffix.substr(1);
+ }
+
if (atype_code == "S" && suffix == "")
throw reportable_exception("invalid source suffix");
@@ -1908,8 +2185,21 @@ handle_buildid (MHD_Connection* conn,
pp->bind(2, suffix);
pp->bind(3, canon_pathname(suffix));
}
+ else if (atype_code == "I")
+ {
+ pp = new sqlite_ps (thisdb, "mhd-query-i",
+ "select mtime, sourcetype, source0, source1, 1 as debug_p from " BUILDIDS "_query_d where buildid = ? "
+ "union all "
+ "select mtime, sourcetype, source0, source1, 0 as debug_p from " BUILDIDS "_query_e where buildid = ? "
+ "order by debug_p desc, mtime desc");
+ pp->reset();
+ pp->bind(1, buildid);
+ pp->bind(2, buildid);
+ }
unique_ptr<sqlite_ps> ps_closer(pp); // release pp if exception or return
+ bool do_upstream_section_query = true;
+
// consume all the rows
while (1)
{
@@ -1930,12 +2220,30 @@ handle_buildid (MHD_Connection* conn,
// Try accessing the located match.
// XXX: in case of multiple matches, attempt them in parallel?
auto r = handle_buildid_match (conn ? false : true,
- b_mtime, b_stype, b_source0, b_source1, result_fd);
+ b_mtime, b_stype, b_source0, b_source1,
+ section, result_fd);
if (r)
return r;
+
+ // If a debuginfo file matching BUILDID was found but didn't contain
+ // the desired section, then the section should not exist. Don't
+ // bother querying upstream servers.
+ if (!section.empty () && (sqlite3_column_int (*pp, 4) == 1))
+ {
+ struct stat st;
+
+ // For "F" sourcetype, check if the debuginfo exists. For "R"
+ // sourcetype, check if the debuginfo was interned into the fdcache.
+ if ((b_stype == "F" && (stat (b_source0.c_str (), &st) == 0))
+ || (b_stype == "R" && fdcache.probe (b_source0, b_source1)))
+ do_upstream_section_query = false;
+ }
}
pp->reset();
+ if (!do_upstream_section_query)
+ throw reportable_exception(MHD_HTTP_NOT_FOUND, "not found");
+
// We couldn't find it in the database. Last ditch effort
// is to defer to other debuginfo servers.
@@ -1974,13 +2282,26 @@ and will not query the upstream servers");
MHD_CONNECTION_INFO_CLIENT_ADDRESS);
struct sockaddr *so = u ? u->client_addr : 0;
char hostname[256] = ""; // RFC1035
- if (so && so->sa_family == AF_INET)
+ if (so && so->sa_family == AF_INET) {
(void) getnameinfo (so, sizeof (struct sockaddr_in), hostname, sizeof (hostname), NULL, 0,
NI_NUMERICHOST);
- else if (so && so->sa_family == AF_INET6)
- (void) getnameinfo (so, sizeof (struct sockaddr_in6), hostname, sizeof (hostname), NULL, 0,
- NI_NUMERICHOST);
-
+ } else if (so && so->sa_family == AF_INET6) {
+ struct sockaddr_in6* addr6 = (struct sockaddr_in6*) so;
+ if (IN6_IS_ADDR_V4MAPPED(&addr6->sin6_addr)) {
+ struct sockaddr_in addr4;
+ memset (&addr4, 0, sizeof(addr4));
+ addr4.sin_family = AF_INET;
+ addr4.sin_port = addr6->sin6_port;
+ memcpy (&addr4.sin_addr.s_addr, addr6->sin6_addr.s6_addr+12, sizeof(addr4.sin_addr.s_addr));
+ (void) getnameinfo ((struct sockaddr*) &addr4, sizeof (addr4),
+ hostname, sizeof (hostname), NULL, 0,
+ NI_NUMERICHOST);
+ } else {
+ (void) getnameinfo (so, sizeof (struct sockaddr_in6), hostname, sizeof (hostname), NULL, 0,
+ NI_NUMERICHOST);
+ }
+ }
+
string xff_complete = string("X-Forwarded-For: ")+xff+string(hostname);
debuginfod_add_http_header (client, xff_complete.c_str());
}
@@ -1997,6 +2318,11 @@ and will not query the upstream servers");
fd = debuginfod_find_source (client,
(const unsigned char*) buildid.c_str(),
0, suffix.c_str(), NULL);
+ else if (artifacttype == "section")
+ fd = debuginfod_find_section (client,
+ (const unsigned char*) buildid.c_str(),
+ 0, section.c_str(), NULL);
+
}
else
fd = -errno; /* Set by debuginfod_begin. */
@@ -2004,7 +2330,8 @@ and will not query the upstream servers");
if (fd >= 0)
{
- inc_metric ("http_responses_total","result","upstream");
+ if (conn != 0)
+ inc_metric ("http_responses_total","result","upstream");
struct stat s;
int rc = fstat (fd, &s);
if (rc == 0)
@@ -2012,7 +2339,30 @@ and will not query the upstream servers");
auto r = MHD_create_response_from_fd ((uint64_t) s.st_size, fd);
if (r)
{
- MHD_add_response_header (r, "Content-Type", "application/octet-stream");
+ add_mhd_response_header (r, "Content-Type",
+ "application/octet-stream");
+ // Copy the incoming headers
+ const char * hdrs = debuginfod_get_headers(client);
+ string header_dup;
+ if (hdrs)
+ header_dup = string(hdrs);
+ // Parse the "header: value\n" lines into (h,v) tuples and pass on
+ while(1)
+ {
+ size_t newline = header_dup.find('\n');
+ if (newline == string::npos) break;
+ size_t colon = header_dup.find(':');
+ if (colon == string::npos) break;
+ string header = header_dup.substr(0,colon);
+ string value = header_dup.substr(colon+1,newline-colon-1);
+ // strip leading spaces from value
+ size_t nonspace = value.find_first_not_of(" ");
+ if (nonspace != string::npos)
+ value = value.substr(nonspace);
+ add_mhd_response_header(r, header.c_str(), value.c_str());
+ header_dup = header_dup.substr(newline+1);
+ }
+
add_mhd_last_modified (r, s.st_mtime);
if (verbose > 1)
obatched(clog) << "serving file from upstream debuginfod/cache" << endl;
@@ -2163,8 +2513,11 @@ handle_metrics (off_t* size)
MHD_Response* r = MHD_create_response_from_buffer (os.size(),
(void*) os.c_str(),
MHD_RESPMEM_MUST_COPY);
- *size = os.size();
- MHD_add_response_header (r, "Content-Type", "text/plain");
+ if (r != NULL)
+ {
+ *size = os.size();
+ add_mhd_response_header (r, "Content-Type", "text/plain");
+ }
return r;
}
@@ -2176,8 +2529,11 @@ handle_root (off_t* size)
MHD_Response* r = MHD_create_response_from_buffer (version.size (),
(void *) version.c_str (),
MHD_RESPMEM_PERSISTENT);
- *size = version.size ();
- MHD_add_response_header (r, "Content-Type", "text/plain");
+ if (r != NULL)
+ {
+ *size = version.size ();
+ add_mhd_response_header (r, "Content-Type", "text/plain");
+ }
return r;
}
@@ -2633,7 +2989,8 @@ elf_classify (int fd, bool &executable_p, bool &debuginfo_p, string &buildid, se
startswith (section_name, ".zdebug_line"))
{
debuginfo_p = true;
- dwarf_extract_source_paths (elf, debug_sourcefiles);
+ if (scan_source_info)
+ dwarf_extract_source_paths (elf, debug_sourcefiles);
break; // expecting only one .*debug_line, so no need to look for others
}
else if (startswith (section_name, ".debug_") ||
@@ -2889,7 +3246,10 @@ archive_classify (const string& rps, string& archive_extension,
rc = archive_read_open_FILE (a, fp);
if (rc != ARCHIVE_OK)
- throw archive_exception(a, "cannot open archive from pipe");
+ {
+ obatched(clog) << "cannot open archive from pipe " << rps << endl;
+ throw archive_exception(a, "cannot open archive from pipe");
+ }
if (verbose > 3)
obatched(clog) << "libarchive scanning " << rps << endl;
@@ -3442,7 +3802,7 @@ database_stats_report()
throw sqlite_exception(rc, "step");
obatched(clog)
- << right << setw(20) << ((const char*) sqlite3_column_text(ps_query, 0) ?: (const char*) "NULL")
+ << ((const char*) sqlite3_column_text(ps_query, 0) ?: (const char*) "NULL")
<< " "
<< (sqlite3_column_text(ps_query, 1) ?: (const unsigned char*) "NULL")
<< endl;
@@ -3497,11 +3857,17 @@ void groom()
int64_t fileid = sqlite3_column_int64 (files, 1);
const char* filename = ((const char*) sqlite3_column_text (files, 2) ?: "");
struct stat s;
- bool reg_include = !regexec (&file_include_regex, filename, 0, 0, 0);
- bool reg_exclude = !regexec (&file_exclude_regex, filename, 0, 0, 0);
+ bool regex_file_drop = 0;
+
+ if (regex_groom)
+ {
+ bool reg_include = !regexec (&file_include_regex, filename, 0, 0, 0);
+ bool reg_exclude = !regexec (&file_exclude_regex, filename, 0, 0, 0);
+ regex_file_drop = reg_exclude && !reg_include;
+ }
rc = stat(filename, &s);
- if ( (regex_groom && reg_exclude && !reg_include) || rc < 0 || (mtime != (int64_t) s.st_mtime) )
+ if ( regex_file_drop || rc < 0 || (mtime != (int64_t) s.st_mtime) )
{
if (verbose > 2)
obatched(clog) << "groom: stale file=" << filename << " mtime=" << mtime << endl;
@@ -3681,7 +4047,15 @@ sigusr2_handler (int /* sig */)
}
-
+static void // error logging callback from libmicrohttpd internals
+error_cb (void *arg, const char *fmt, va_list ap)
+{
+ (void) arg;
+ inc_metric("error_count","libmicrohttpd",fmt);
+ char errmsg[512];
+ (void) vsnprintf (errmsg, sizeof(errmsg), fmt, ap); // ok if slightly truncated
+ obatched(cerr) << "libmicrohttpd error: " << errmsg; // MHD_DLOG calls already include \n
+}
// A user-defined sqlite function, to score the sharedness of the
@@ -3704,7 +4078,7 @@ static void sqlite3_sharedprefix_fn (sqlite3_context* c, int argc, sqlite3_value
const unsigned char* a = sqlite3_value_text (argv[0]);
const unsigned char* b = sqlite3_value_text (argv[1]);
int i = 0;
- while (*a++ == *b++)
+ while (*a != '\0' && *b != '\0' && *a++ == *b++)
i++;
sqlite3_result_int (c, i);
}
@@ -3751,6 +4125,13 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, 0,
"unexpected argument: %s", argv[remaining]);
+ // Make the prefetch cache spaces a fraction of the main fdcache if
+ // unspecified.
+ if (fdcache_prefetch_fds == 0)
+ fdcache_prefetch_fds = fdcache_fds / 2;
+ if (fdcache_prefetch_mbs == 0)
+ fdcache_prefetch_mbs = fdcache_mbs / 2;
+
if (scan_archives.size()==0 && !scan_files && source_paths.size()>0)
obatched(clog) << "warning: without -F -R -U -Z, ignoring PATHs" << endl;
@@ -3824,45 +4205,74 @@ main (int argc, char *argv[])
}
}
- // Start httpd server threads. Separate pool for IPv4 and IPv6, in
- // case the host only has one protocol stack.
- MHD_Daemon *d4 = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION
-#if MHD_VERSION >= 0x00095300
- | MHD_USE_INTERNAL_POLLING_THREAD
-#else
- | MHD_USE_SELECT_INTERNALLY
+ obatched(clog) << "libmicrohttpd version " << MHD_get_version() << endl;
+
+ /* If '-C' wasn't given or was given with no arg, pick a reasonable default
+ for the number of worker threads. */
+ if (connection_pool == 0)
+ connection_pool = std::thread::hardware_concurrency() * 2 ?: 2;
+
+ /* Note that MHD_USE_EPOLL and MHD_USE_THREAD_PER_CONNECTION don't
+ work together. */
+ unsigned int use_epoll = 0;
+#if MHD_VERSION >= 0x00095100
+ use_epoll = MHD_USE_EPOLL;
#endif
- | MHD_USE_DEBUG, /* report errors to stderr */
- http_port,
- NULL, NULL, /* default accept policy */
- handler_cb, NULL, /* handler callback */
- MHD_OPTION_END);
- MHD_Daemon *d6 = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION
+
+ unsigned int mhd_flags = (
#if MHD_VERSION >= 0x00095300
- | MHD_USE_INTERNAL_POLLING_THREAD
+ MHD_USE_INTERNAL_POLLING_THREAD
#else
- | MHD_USE_SELECT_INTERNALLY
+ MHD_USE_SELECT_INTERNALLY
+#endif
+ | MHD_USE_DUAL_STACK
+ | use_epoll
+#if MHD_VERSION >= 0x00095200
+ | MHD_USE_ITC
#endif
- | MHD_USE_IPv6
- | MHD_USE_DEBUG, /* report errors to stderr */
- http_port,
- NULL, NULL, /* default accept policy */
- handler_cb, NULL, /* handler callback */
- MHD_OPTION_END);
-
- if (d4 == NULL && d6 == NULL) // neither ipv4 nor ipv6? boo
- {
- sqlite3 *database = db;
- sqlite3 *databaseq = dbq;
- db = dbq = 0; // for signal_handler not to freak
- sqlite3_close (databaseq);
- sqlite3_close (database);
- error (EXIT_FAILURE, 0, "cannot start http server at port %d", http_port);
- }
-
- obatched(clog) << "started http server on "
- << (d4 != NULL ? "IPv4 " : "")
- << (d6 != NULL ? "IPv6 " : "")
+ | MHD_USE_DEBUG); /* report errors to stderr */
+
+ // Start httpd server threads. Use a single dual-homed pool.
+ MHD_Daemon *d46 = MHD_start_daemon (mhd_flags, http_port,
+ NULL, NULL, /* default accept policy */
+ handler_cb, NULL, /* handler callback */
+ MHD_OPTION_EXTERNAL_LOGGER,
+ error_cb, NULL,
+ MHD_OPTION_THREAD_POOL_SIZE,
+ (int)connection_pool,
+ MHD_OPTION_END);
+
+ MHD_Daemon *d4 = NULL;
+ if (d46 == NULL)
+ {
+ // Cannot use dual_stack, use ipv4 only
+ mhd_flags &= ~(MHD_USE_DUAL_STACK);
+ d4 = MHD_start_daemon (mhd_flags, http_port,
+ NULL, NULL, /* default accept policy */
+ handler_cb, NULL, /* handler callback */
+ MHD_OPTION_EXTERNAL_LOGGER,
+ error_cb, NULL,
+ (connection_pool
+ ? MHD_OPTION_THREAD_POOL_SIZE
+ : MHD_OPTION_END),
+ (connection_pool
+ ? (int)connection_pool
+ : MHD_OPTION_END),
+ MHD_OPTION_END);
+ if (d4 == NULL)
+ {
+ sqlite3 *database = db;
+ sqlite3 *databaseq = dbq;
+ db = dbq = 0; // for signal_handler not to freak
+ sqlite3_close (databaseq);
+ sqlite3_close (database);
+ error (EXIT_FAILURE, 0, "cannot start http server at port %d",
+ http_port);
+ }
+
+ }
+ obatched(clog) << "started http server on"
+ << (d4 != NULL ? " IPv4 " : " IPv4 IPv6 ")
<< "port=" << http_port << endl;
// add maxigroom sql if -G given
@@ -3901,6 +4311,8 @@ main (int argc, char *argv[])
if (! passive_p)
obatched(clog) << "search concurrency " << concurrency << endl;
+ obatched(clog) << "webapi connection pool " << connection_pool
+ << (connection_pool ? "" : " (unlimited)") << endl;
if (! passive_p)
obatched(clog) << "rescan time " << rescan_s << endl;
obatched(clog) << "fdcache fds " << fdcache_fds << endl;
@@ -3980,8 +4392,8 @@ main (int argc, char *argv[])
pthread_join (it, NULL);
/* Stop all the web service threads. */
+ if (d46) MHD_stop_daemon (d46);
if (d4) MHD_stop_daemon (d4);
- if (d6) MHD_stop_daemon (d6);
if (! passive_p)
{
@@ -3994,6 +4406,8 @@ main (int argc, char *argv[])
}
}
+ debuginfod_pool_groom ();
+
// NB: no problem with unconditional free here - an earlier failed regcomp would exit program
(void) regfree (& file_include_regex);
(void) regfree (& file_exclude_regex);
diff --git a/debuginfod/debuginfod.h.in b/debuginfod/debuginfod.h.in
index c358df4d..69c9efd2 100644
--- a/debuginfod/debuginfod.h.in
+++ b/debuginfod/debuginfod.h.in
@@ -38,6 +38,7 @@
#define DEBUGINFOD_RETRY_LIMIT_ENV_VAR "DEBUGINFOD_RETRY_LIMIT"
#define DEBUGINFOD_MAXSIZE_ENV_VAR "DEBUGINFOD_MAXSIZE"
#define DEBUGINFOD_MAXTIME_ENV_VAR "DEBUGINFOD_MAXTIME"
+#define DEBUGINFOD_HEADERS_FILE_ENV_VAR "DEBUGINFOD_HEADERS_FILE"
/* The libdebuginfod soname. */
#define DEBUGINFOD_SONAME "@LIBDEBUGINFOD_SONAME@"
@@ -78,6 +79,12 @@ int debuginfod_find_source (debuginfod_client *client,
const char *filename,
char **path);
+int debuginfod_find_section (debuginfod_client *client,
+ const unsigned char *build_id,
+ int build_id_len,
+ const char *section,
+ char **path);
+
typedef int (*debuginfod_progressfn_t)(debuginfod_client *c, long a, long b);
void debuginfod_set_progressfn(debuginfod_client *c,
debuginfod_progressfn_t fn);
@@ -93,6 +100,10 @@ void* debuginfod_get_user_data (debuginfod_client *client);
/* Get the current or last active URL, if known. */
const char* debuginfod_get_url (debuginfod_client *client);
+/* Returns set of x-debuginfod* header lines received from current or
+ last active transfer, \n separated, if known. */
+const char* debuginfod_get_headers(debuginfod_client *client);
+
/* Add an outgoing HTTP request "Header: Value". Copies string. */
int debuginfod_add_http_header (debuginfod_client *client, const char* header);
diff --git a/debuginfod/libdebuginfod.map b/debuginfod/libdebuginfod.map
index 7d2f5882..6334373f 100644
--- a/debuginfod/libdebuginfod.map
+++ b/debuginfod/libdebuginfod.map
@@ -18,3 +18,7 @@ ELFUTILS_0.179 {
ELFUTILS_0.183 {
debuginfod_set_verbose_fd;
} ELFUTILS_0.179;
+ELFUTILS_0.188 {
+ debuginfod_get_headers;
+ debuginfod_find_section;
+} ELFUTILS_0.183;
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7a73fa10..7b18dbef 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,49 @@
+2022-10-31 Aaron Merey <amerey@redhat.com>
+
+ * Makefile.am (notrans_dist_man3_MANS): Add debuginfod_find_section.3.
+ * debuginfod_find_section.3: New file.
+ * debuginfod_find_debuginfo.3: Document debuginfod_find_section.
+ * debuginfod.8: Document section webapi.
+
+2022-10-28 Arsen Arsenović <arsen@aarsen.me>
+
+ * readelf.1: Document the --syms alias.
+
+2022-10-18 Daniel Thornburgh <dthorn@google.com>
+
+ * debuginfod_find_debuginfo.3: Document DEBUGINFOD_HEADERS_FILE.
+
+2022-09-02 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod_find_debuginfo.3: Tweaked debuginfod_get_headers docs.
+
+2022-07-15 Noah Sanci <nsanci@redhat.com>
+
+ * debuginfod_find_debuginfo.3: Explained debuginfod_get_headers
+ usage.
+ * debuginfod_get_headers.3: Created.
+
+2022-09-02 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod.8 (-C): Update description.
+
+2022-06-03 Michael Trapp <michael.trapp@sap.com>
+
+ * debuginfod.8 (--disable-source-scan): Document.
+
+2022-05-09 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.8: Tweak prefetch descriptions.
+
+2022-01-31 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod-client-config.7: Elaborate DEBUGINFOD_URLS.
+
+2021-12-08 Frank Ch. Eigler <fche@redhat.com>
+
+ PR28661
+ * debuginfod.8 (-C): Document new flag.
+
2021-11-05 Frank Ch. Eigler <fche@redhat.com>
PR28430
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 32d1a2b8..db5a842e 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -27,7 +27,7 @@ if DEBUGINFOD
if !LIBDEBUGINFOD
notrans_dist_man7_MANS += debuginfod-client-config.7
endif
-notrans_dist_man8_MANS += debuginfod.8
+notrans_dist_man8_MANS += debuginfod.8 debuginfod.service.8
endif
if LIBDEBUGINFOD
@@ -38,6 +38,7 @@ notrans_dist_man3_MANS += debuginfod_end.3
notrans_dist_man3_MANS += debuginfod_find_debuginfo.3
notrans_dist_man3_MANS += debuginfod_find_executable.3
notrans_dist_man3_MANS += debuginfod_find_source.3
+notrans_dist_man3_MANS += debuginfod_find_section.3
notrans_dist_man3_MANS += debuginfod_get_user_data.3
notrans_dist_man3_MANS += debuginfod_get_url.3
notrans_dist_man3_MANS += debuginfod_set_progressfn.3
diff --git a/doc/debuginfod-client-config.7 b/doc/debuginfod-client-config.7
index 1cc19215..53d82806 100644
--- a/doc/debuginfod-client-config.7
+++ b/doc/debuginfod-client-config.7
@@ -24,8 +24,8 @@ temporary files. The default is /tmp.
.B $DEBUGINFOD_URLS
This environment variable contains a list of URL prefixes for trusted
debuginfod instances. Alternate URL prefixes are separated by space.
-Avoid referential loops that cause a server to contact itself, directly
-or indirectly - the results would be hilarious.
+This environment variable may be set by /etc/profile.d scripts
+reading /etc/debuginfod/*.urls files.
.TP
.B $DEBUGINFOD_CACHE_PATH
@@ -75,6 +75,13 @@ only small files are downloaded. A value of 0 causes no consideration
for size, and the client may attempt to download a file of any size.
The default is 0 (infinite size).
+.TP
+.B $DEBUGINFOD_HEADERS_FILE
+This environment variable points to a file that supplies headers to
+outbound HTTP requests, one per line. The header lines shouldn't end with
+CRLF, unless that's the system newline convention. Whitespace-only lines
+are skipped.
+
.SH CACHE
Before each query, the debuginfod client library checks for a need to
diff --git a/doc/debuginfod.8 b/doc/debuginfod.8
index 1e56f656..93db47e1 100644
--- a/doc/debuginfod.8
+++ b/doc/debuginfod.8
@@ -206,6 +206,21 @@ an ELF file and especially decompressing archives. The default is the
number of processors on the system; the minimum is 1.
.TP
+.B "\-C" "\-C=NUM" "\-\-connection\-pool" "\-\-connection\-pool=NUM"
+Set the size of the pool of threads serving webapi queries. The
+following table summarizes the interpretaton of this option and its
+optional NUM parameter.
+.TS
+l l.
+no option, \-C use a fixed thread pool sized automatically
+\-C=NUM use a fixed thread pool sized NUM, minimum 2
+.TE
+
+The first mode is a simple and safe configuration based on the number
+of processors. The second mode is suitable for tuned load-limiting
+configurations facing unruly traffic.
+
+.TP
.B "\-L"
Traverse symbolic links encountered during traversal of the PATHs,
including across devices - as in \fIfind\ -L\fP. The default is to
@@ -215,34 +230,36 @@ loops in the symbolic directory tree might lead to \fIinfinite
traversal\fP.
.TP
-.B "\-\-fdcache\-fds=NUM" "\-\-fdcache\-mbs=MB" "\-\-fdcache\-prefetch=NUM2"
+.B "\-\-fdcache\-fds=NUM" "\-\-fdcache\-mbs=MB"
Configure limits on a cache that keeps recently extracted files from
archives. Up to NUM requested files and up to a total of MB megabytes
will be kept extracted, in order to avoid having to decompress their
-archives over and over again. In addition, up to NUM2 other files
-from an archive may be prefetched into the cache before they are even
-requested. The default NUM, NUM2, and MB values depend on the
-concurrency of the system, and on the available disk space on the
+archives over and over again. The default NUM and MB values depend on
+the concurrency of the system, and on the available disk space on the
$TMPDIR or \fB/tmp\fP filesystem. This is because that is where the
-most recently used extracted files are kept. Grooming cleans this
+most recently used extracted files are kept. Grooming cleans out this
cache.
.TP
-.B "\-\-fdcache\-\-prefetch\-fds=NUM" "\-\-fdcache\-\-prefetch\-mbs=MB"
-Configure how many file descriptors (fds) and megabytes (mbs) are
-allocated to the prefetch fdcache. If unspecified, values of
-\fB\-\-prefetch\-fds\fP and \fB\-\-prefetch\-mbs\fP depend
-on concurrency of the system and on the available disk space on
-the $TMPDIR. Allocating more to the prefetch cache will improve
-performance in environments where different parts of several large
-archives are being accessed.
+.B "\-\-fdcache\-prefetch\-fds=NUM" "\-\-fdcache\-prefetch\-mbs=MB"
+.B "\-\-fdcache\-prefetch=NUM2"
+
+In addition to the main fdcache, up to NUM2 other files from an
+archive may be prefetched into another cache before they are even
+requested. Configure how many file descriptors (fds) and megabytes
+(mbs) are allocated to the prefetch fdcache. If unspecified, these
+values depend on concurrency of the system and on the available disk
+space on the $TMPDIR. Allocating more to the prefetch cache will
+improve performance in environments where different parts of several
+large archives are being accessed. This cache is also cleaned out
+during grooming.
.TP
.B "\-\-fdcache\-mintmp=NUM"
-Configure a disk space threshold for emergency flushing of the cache.
-The filesystem holding the cache is checked periodically. If the
-available space falls below the given percentage, the cache is
-flushed, and the fdcache will stay disabled until the next groom
+Configure a disk space threshold for emergency flushing of the caches.
+The filesystem holding the caches is checked periodically. If the
+available space falls below the given percentage, the caches are
+flushed, and the fdcaches will stay disabled until the next groom
cycle. This mechanism, along a few associated /metrics on the webapi,
are intended to give an operator notice about storage scarcity - which
can translate to RAM scarcity if the disk happens to be on a RAM
@@ -255,6 +272,12 @@ exceeds N hops, it will not delegate a local lookup miss to
upstream debuginfods. The default limit is 8.
.TP
+.B "\-\-disable\-source\-scan"
+Disable scan of the dwarf source info of debuginfo sections.
+If a setup has no access to source code, the source info is not
+required.
+
+.TP
.B "\-v"
Increase verbosity of logging to the standard error file descriptor.
May be repeated to increase details. The default verbosity is 0.
@@ -340,6 +363,17 @@ Note: the client should %-escape characters in /SOURCE/FILE that are
not shown as "unreserved" in section 2.3 of RFC3986. Some characters
that will be escaped include "+", "\\", "$", "!", the 'space' character,
and ";". RFC3986 includes a more comprehensive list of these characters.
+
+.SS /buildid/\fIBUILDID\fP/section\fI/SECTION\fP
+If the given buildid is known to the server, the server will attempt to
+extract the contents of an ELF/DWARF section named SECTION from the
+debuginfo file matching BUILDID. If the debuginfo file can't be found
+or the section has type SHT_NOBITS, then the server will attempt to extract
+the section from the executable matching BUILDID. If the section is
+succesfully extracted then this request results in a binary object
+of the section's contents. Note that this result is the raw binary
+contents of the section, not an ELF file.
+
.SS /metrics
This endpoint returns a Prometheus formatted text/plain dump of a
diff --git a/doc/debuginfod.service.8 b/doc/debuginfod.service.8
new file mode 100644
index 00000000..b22b7570
--- /dev/null
+++ b/doc/debuginfod.service.8
@@ -0,0 +1,30 @@
+'\"! tbl | nroff \-man
+'\" t macro stdmacro
+
+.TH DEBUGINFOD.SERVICE 8
+.SH NAME
+debuginfod.service \- debuginfo related information server for systemd
+
+.SH SYNOPSIS
+.B /usr/lib/systemd/system/debuginfod.service
+
+.SH DESCRIPTION
+\fBdebuginfod.service\fP integrates the debuginfod daemon with
+systemd, serving debuginfo-related artifacts over HTTP.
+The data is stored in /var/cache/debuginfod/debuginfod.sqlite.
+Configure /etc/sysconfig/debuginfod to set the below environment
+variables as well as those listed in \fBdebuginfod\fP(8).
+.SH Environment variables
+\fB$DEBUGINFOD_PORT\fP - Changes port of \fBdebuginfod\fP service
+daemon.
+.br
+\fB$DEBUGINFOD_VERBOSE\fP - Change verbosity of reporting in
+\fBdebuginfod\fP service daemon log file.
+.br
+\fB$DEBUGINFOD_PATHS\fP - Changes paths to scan for \fBdebuginfod\fP service daemon.
+.SH FILES
+/usr/lib/systemd/system/debuginfod.service, /var/cache/debuginfod/debuginfod.sqlite
+/etc/sysconfig/debuginfod
+
+.SH SEE ALSO
+debuginfod(8), debuginfod-find(1), systemctl(1), systemd.service(5)
diff --git a/doc/debuginfod_find_debuginfo.3 b/doc/debuginfod_find_debuginfo.3
index 30cef3c1..6469a3df 100644
--- a/doc/debuginfod_find_debuginfo.3
+++ b/doc/debuginfod_find_debuginfo.3
@@ -43,6 +43,12 @@ LOOKUP FUNCTIONS
.BI " int " build_id_len ","
.BI " const char *" filename ","
.BI " char ** " path ");"
+.BI "int debuginfod_find_section(debuginfod_client *" client ","
+.BI " const unsigned char *" build_id ","
+.BI " int " build_id_len ","
+.BI " const char * " section ","
+.BI " char ** " path ");"
+
OPTIONAL FUNCTIONS
@@ -58,6 +64,7 @@ OPTIONAL FUNCTIONS
.BI "const char* debuginfod_get_url(debuginfod_client *" client ");"
.BI "int debuginfod_add_http_header(debuginfod_client *" client ","
.BI " const char* " header ");"
+.BI "const char* debuginfod_get_headers(debuginfod_client *" client ");"
.SH DESCRIPTION
@@ -97,6 +104,16 @@ accepts both forms. Specifically, debuginfod canonicalizes path names
according to RFC3986 section 5.2.4 (Remove Dot Segments), plus reducing
any \fB//\fP to \fB/\fP in the path.
+.BR debuginfod_find_section ()
+queries the debuginfod server URLs contained in
+.BR $DEBUGINFOD_URLS
+for the binary contents of an ELF/DWARF section contained in a debuginfo
+or executable file with the given \fIbuild_id\fP. \fIsection\fP should
+be the name of the desired ELF/DWARF section. If a server does not support
+section queries, debuginfod_find_section may query the server for the
+debuginfo and/or executable with \fIbuild_id\fP in order to retrieve
+and extract the section.
+
If \fIpath\fP is not NULL and the query is successful, \fIpath\fP is set
to the path of the file in the cache. The caller must \fBfree\fP() this value.
@@ -187,17 +204,36 @@ indicates success, but out-of-memory conditions may result in
a non-zero \fI-ENOMEM\fP. If the string is in the wrong form
\fI-EINVAL\fP will be returned.
+\fI$DEBUGINFOD_HEADERS_FILE\fP specifies a file to supply headers to
+outgoing requests. Each non-whitespace line of this file is handled
+as if
+.BR \%debuginfod_add_http_header ()
+were called on the contents.
+
Note that the current debuginfod-client library implementation uses
libcurl, but you shouldn't rely on that fact. Don't use this function
for replacing any standard headers, except for the User-Agent mentioned
-below. The only supported usage of this function is for adding an
-optional header which might or might not be passed through to the
-server for logging purposes only.
+below. You can use this function to add authorization information for
+access control, or to provide optional headers to the server for
+logging purposes.
By default, the library adds a descriptive \fIUser-Agent:\fP
header to outgoing requests. If the client application adds
a header with the same name, this default is suppressed.
+During or after a lookup, a client application may call
+.BR \%debuginfod_get_headers ()
+to gather the subset of HTTP response headers received from the
+current or most recent debuginfod server. Only those headers prefixed
+with
+.BR X-DEBUGINFOD
+(case-insensitive) are kept. They are returned as a single string,
+with each "header: value" terminated with a \\n (not \\r\\n as in
+HTTP). It may be NULL. The resulting string is owned by the library,
+and must not be modified or freed. The caller should copy the
+returned string if it is needed beyond the release of the client
+object.
+
.SH "MACROS"
.SS "DEBUGINFOD_SONAME"
@@ -214,11 +250,8 @@ void *debuginfod_so = dlopen(DEBUGINFOD_SONAME, RTLD_LAZY);
.in
.SH "SECURITY"
-.BR debuginfod_find_debuginfo (),
-.BR debuginfod_find_executable (),
-and
-.BR debuginfod_find_source ()
-\fBdo not\fP include any particular security
+.BR debuginfod_find_* ()
+functions \fBdo not\fP include any particular security
features. They trust that the binaries returned by the debuginfod(s)
are accurate. Therefore, the list of servers should include only
trustworthy ones. If accessed across HTTP rather than HTTPS, the
diff --git a/doc/debuginfod_find_section.3 b/doc/debuginfod_find_section.3
new file mode 100644
index 00000000..16279936
--- /dev/null
+++ b/doc/debuginfod_find_section.3
@@ -0,0 +1 @@
+.so man3/debuginfod_find_debuginfo.3
diff --git a/doc/debuginfod_get_headers.3 b/doc/debuginfod_get_headers.3
new file mode 100644
index 00000000..1db55982
--- /dev/null
+++ b/doc/debuginfod_get_headers.3
@@ -0,0 +1,2 @@
+.so man3/debuginfod_find_debuginfo.3
+
diff --git a/doc/readelf.1 b/doc/readelf.1
index 6a843f66..1d182071 100644
--- a/doc/readelf.1
+++ b/doc/readelf.1
@@ -146,7 +146,7 @@ eu-readelf [\fB\-a\fR|\fB\-\-all\fR]
[\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
[\fB\-g\fR|\fB\-\-section\-groups\fR]
[\fB\-e\fR|\fB\-\-exception\fR]
- [\fB\-s\fR|\fB\-\-symbols\fR] [section name] ]
+ [\fB\-\-syms\fR|\fB\-s\fR|\fB\-\-symbols\fR [section name] ]
[\fB\-\-dyn-syms\fR]
[\fB\-n\fR|\fB\-\-notes\fR [section name] ]
[\fB\-r\fR|\fB\-\-relocs\fR]
@@ -255,6 +255,9 @@ of the symbol tables.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
+.IP "\fB\--syms\fR" 4
+.IX Item "--syms"
+.PD 0
.IP "\fB\-\-symbols\fR [section name]" 4
.IX Item "--symbols"
.PD
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 8f4d4d9f..6bb0d4d0 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,37 @@
+2022-09-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * color.c: Don't include unistd.h.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * system.h: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
+
+2022-10-16 Yonggang Luo <luoyonggang@gmail.com>
+
+ * system.h: Add sys/mman.h as system dependend header.
+ * common.h: Remove ar.h, byteswap.h and endian.h.
+ * elf32_checksum.c: Remove endian.h.
+ * elf32_getphdr.c: Remove unistd.h and system.h.
+ * elf32_getshdr.c: Remove unistd.h.h and system.h.
+ * elf32_updatefile.c: Remove unistd.h, sys/mman.h and system.h.
+ * elf32_updatenull.c: Remove endian.h and system.h.
+
+2022-08-05 Mark Wielaard <mark@klomp.org>
+
+ * dynamicsizehash_concurrent.c (resize_helper): Add documentation.
+ (resize_master): Renamed to...
+ (resize_coordinator): ...this. And add documentation.
+ (resize_worker): Add documentation.
+ (FIND): Add documentation.
+
+2022-04-25 Mark Wielaard <mark@klomp.org>
+
+ * printversion.c (print_version): Update copyright year.
+
+2022-03-27 Mark Wielaard <mark@klomp.org>
+
+ * system.h: define error_exit.
+
2021-02-14 Alexander Miller <alex.miller@gmx.de>
* eu-config.h (used_in_asm): New macro.
diff --git a/lib/color.c b/lib/color.c
index e43b6143..8063dc26 100644
--- a/lib/color.c
+++ b/lib/color.c
@@ -32,10 +32,8 @@
#endif
#include <argp.h>
-#include <libintl.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
#include "system.h"
#include "libeu.h"
#include "color.h"
diff --git a/lib/dynamicsizehash_concurrent.c b/lib/dynamicsizehash_concurrent.c
index 4e2e2476..7c4fedfc 100644
--- a/lib/dynamicsizehash_concurrent.c
+++ b/lib/dynamicsizehash_concurrent.c
@@ -179,7 +179,8 @@ insert_helper (NAME *htab, HASHTYPE hval, TYPE val)
#define CEIL(A, B) (((A) + (B) - 1) / (B))
/* Initializes records and copies the data from the old table.
- It can share work with other threads */
+ It can share work with other threads. Only the coordinator
+ will pass blocking as 1, other worker threads pass 0. */
static void resize_helper(NAME *htab, int blocking)
{
size_t num_old_blocks = CEIL(htab->old_size, MOVE_BLOCK_SIZE);
@@ -244,13 +245,18 @@ static void resize_helper(NAME *htab, int blocking)
atomic_fetch_add_explicit(&htab->num_moved_blocks, num_finished_blocks,
memory_order_release);
+ /* The coordinating thread will block here waiting for all blocks to
+ be moved. */
if (blocking)
while (atomic_load_explicit(&htab->num_moved_blocks,
memory_order_acquire) != num_old_blocks);
}
+/* Called by the main thread holding the htab->resize_rwl lock to
+ coordinate the moving of hash table data. Allocates the new hash
+ table and frees the old one when moving all data is done. */
static void
-resize_master(NAME *htab)
+resize_coordinator(NAME *htab)
{
htab->old_size = htab->size;
htab->old_table = htab->table;
@@ -290,6 +296,10 @@ resize_master(NAME *htab)
}
+/* Called by any thread that wants to do an insert or find operation
+ but notices it cannot get the htab->resize_rwl lock because another
+ thread is resizing the hash table. Try to help out by moving table
+ data if still necessary. */
static void
resize_worker(NAME *htab)
{
@@ -391,6 +401,8 @@ INSERT(NAME) (NAME *htab, HASHTYPE hval, TYPE data)
for(;;)
{
+ /* If we cannot get the resize_rwl lock someone is resizing
+ hash table, try to help out by moving table data. */
while (pthread_rwlock_tryrdlock(&htab->resize_rwl) != 0)
resize_worker(htab);
@@ -421,17 +433,17 @@ INSERT(NAME) (NAME *htab, HASHTYPE hval, TYPE data)
memory_order_acquire,
memory_order_acquire))
{
- /* Master thread */
+ /* Main resizing thread, will coordinate moving data. */
pthread_rwlock_unlock(&htab->resize_rwl);
pthread_rwlock_wrlock(&htab->resize_rwl);
- resize_master(htab);
+ resize_coordinator(htab);
pthread_rwlock_unlock(&htab->resize_rwl);
}
else
{
- /* Worker thread */
+ /* Worker thread, will help moving data. */
pthread_rwlock_unlock(&htab->resize_rwl);
resize_worker(htab);
}
@@ -458,8 +470,10 @@ TYPE
name##_find
FIND(NAME) (NAME *htab, HASHTYPE hval)
{
+ /* If we cannot get the resize_rwl lock someone is resizing
+ the hash table, try to help out by moving table data. */
while (pthread_rwlock_tryrdlock(&htab->resize_rwl) != 0)
- resize_worker(htab);
+ resize_worker(htab);
size_t idx;
diff --git a/lib/eu-config.h b/lib/eu-config.h
index c7d7cbb2..78a5c4fe 100644
--- a/lib/eu-config.h
+++ b/lib/eu-config.h
@@ -52,6 +52,7 @@
# define rwlock_unlock(lock) ((void) (lock))
#endif /* USE_LOCKS */
+#include <libintl.h>
/* gettext helper macros. */
#define N_(Str) Str
#define _(Str) dgettext ("elfutils", Str)
diff --git a/lib/printversion.c b/lib/printversion.c
index adf127d6..7d31fa83 100644
--- a/lib/printversion.c
+++ b/lib/printversion.c
@@ -30,7 +30,6 @@
# include <config.h>
#endif
-#include <libintl.h>
#include "printversion.h"
void
@@ -41,5 +40,5 @@ print_version (FILE *stream, struct argp_state *state)
Copyright (C) %s The elfutils developers <%s>.\n\
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\
-"), "2021", PACKAGE_URL);
+"), "2022", PACKAGE_URL);
}
diff --git a/lib/system.h b/lib/system.h
index edbc8488..bbbe06c4 100644
--- a/lib/system.h
+++ b/lib/system.h
@@ -1,5 +1,6 @@
/* Declarations for common convenience functions.
Copyright (C) 2006-2011 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -34,14 +35,17 @@
#include <errno.h>
#include <stddef.h>
#include <stdint.h>
-#include <sys/param.h>
-#include <endian.h>
-#include <byteswap.h>
-#include <unistd.h>
#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
+/* System dependend headers */
+#include <byteswap.h>
+#include <endian.h>
+#include <sys/mman.h>
+#include <sys/param.h>
+#include <unistd.h>
+
#if defined(HAVE_ERROR_H)
#include <error.h>
#elif defined(HAVE_ERR_H)
@@ -51,12 +55,21 @@ void error(int status, int errnum, const char *format, ...);
#error "err.h or error.h must be available"
#endif
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+/* error (EXIT_FAILURE, ...) should be noreturn but on some systems it
+ isn't. This may cause warnings about code that should not be reachable.
+ So have an explicit error_exit wrapper that is noreturn (because it
+ calls exit explicitly). */
+#define error_exit(errnum,...) do { \
+ error (EXIT_FAILURE,errnum,__VA_ARGS__); \
+ exit (EXIT_FAILURE); \
+ } while (0)
+
+#if BYTE_ORDER == LITTLE_ENDIAN
# define LE32(n) (n)
# define LE64(n) (n)
# define BE32(n) bswap_32 (n)
# define BE64(n) bswap_64 (n)
-#elif __BYTE_ORDER == __BIG_ENDIAN
+#elif BYTE_ORDER == BIG_ENDIAN
# define BE32(n) (n)
# define BE64(n) (n)
# define LE32(n) bswap_32 (n)
diff --git a/lib/xasprintf.c b/lib/xasprintf.c
index 179ea2e8..d61fad90 100644
--- a/lib/xasprintf.c
+++ b/lib/xasprintf.c
@@ -33,7 +33,6 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
-#include <libintl.h>
#include "libeu.h"
#include "system.h"
diff --git a/lib/xmalloc.c b/lib/xmalloc.c
index 7c094985..de7211f1 100644
--- a/lib/xmalloc.c
+++ b/lib/xmalloc.c
@@ -30,7 +30,6 @@
# include <config.h>
#endif
-#include <libintl.h>
#include <stddef.h>
#include <stdlib.h>
#include <sys/types.h>
diff --git a/libasm/ChangeLog b/libasm/ChangeLog
index c65fd21b..ce0f24f4 100644
--- a/libasm/ChangeLog
+++ b/libasm/ChangeLog
@@ -1,3 +1,11 @@
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * asm_abort.c: Don't include unistd.h.
+ * asm_addint8.c: Don't include byteswap.h and endian.h.
+ * asm_begin.c: Don't include unistd.h and system.h.
+ * asm_end.c: Likewise.
+ * libasmP.h: Include system.h.
+
2021-09-06 Dmitry V. Levin <ldv@altlinux.org>
* asm_align.c (__libasm_ensure_section_space): Remove casts of calloc
diff --git a/libasm/asm_abort.c b/libasm/asm_abort.c
index 12743dc6..696298c4 100644
--- a/libasm/asm_abort.c
+++ b/libasm/asm_abort.c
@@ -32,7 +32,6 @@
#endif
#include <stdlib.h>
-#include <unistd.h>
#include <libasmP.h>
#include <libelf.h>
diff --git a/libasm/asm_addint8.c b/libasm/asm_addint8.c
index bb7d40f2..7f823e09 100644
--- a/libasm/asm_addint8.c
+++ b/libasm/asm_addint8.c
@@ -31,8 +31,6 @@
# include <config.h>
#endif
-#include <byteswap.h>
-#include <endian.h>
#include <inttypes.h>
#include <string.h>
diff --git a/libasm/asm_begin.c b/libasm/asm_begin.c
index a190202c..9e4dfe43 100644
--- a/libasm/asm_begin.c
+++ b/libasm/asm_begin.c
@@ -37,11 +37,9 @@
#include <stdio_ext.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
#include <gelf.h>
#include "libasmP.h"
-#include <system.h>
static AsmCtx_t *
diff --git a/libasm/asm_end.c b/libasm/asm_end.c
index 077d2aa5..c06d2366 100644
--- a/libasm/asm_end.c
+++ b/libasm/asm_end.c
@@ -32,16 +32,13 @@
#endif
#include <assert.h>
-#include <libintl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
#include <sys/stat.h>
#include <libasmP.h>
#include <libelf.h>
-#include <system.h>
static int
diff --git a/libasm/asm_error.c b/libasm/asm_error.c
index cc3e660b..2b769395 100644
--- a/libasm/asm_error.c
+++ b/libasm/asm_error.c
@@ -31,7 +31,6 @@
# include <config.h>
#endif
-#include <libintl.h>
#include <stdbool.h>
#include <stdlib.h>
diff --git a/libasm/asm_newscn.c b/libasm/asm_newscn.c
index 1150015f..d258d969 100644
--- a/libasm/asm_newscn.c
+++ b/libasm/asm_newscn.c
@@ -32,7 +32,6 @@
#endif
#include <assert.h>
-#include <libintl.h>
#include <stdlib.h>
#include <string.h>
diff --git a/libasm/libasmP.h b/libasm/libasmP.h
index 5b5fb776..11f42511 100644
--- a/libasm/libasmP.h
+++ b/libasm/libasmP.h
@@ -32,6 +32,9 @@
#include <stdio.h>
#include <libasm.h>
+
+#include <system.h>
+
#include "libebl.h"
#include "libdwelf.h"
diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog
index 7cca9419..06ffe02f 100644
--- a/libcpu/ChangeLog
+++ b/libcpu/ChangeLog
@@ -1,3 +1,19 @@
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * i386_disasm.c: Don't include endian.h.
+ * memory-access.h: Don't include byteswap.h and endian.h.
+ Do include system.h.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * memory-access.h: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
+ * riscv_disasm.c: Likewise.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (GENDIS_ENV): New variable, depends on
+ USE_ADDRESS_SANITIZER.
+
2020-12-20 Dmitry V. Levin <ldv@altlinux.org>
* .gitignore: New file.
diff --git a/libcpu/Makefile.am b/libcpu/Makefile.am
index 43844ecf..57d0a164 100644
--- a/libcpu/Makefile.am
+++ b/libcpu/Makefile.am
@@ -61,8 +61,16 @@ noinst_HEADERS += memory-access.h i386_parse.h i386_data.h
noinst_PROGRAMS = i386_gendis$(EXEEXT)
+# i386_gendis doesn't clean up, ignore leaks.
+# It is just a build tool to generate source in maintainer mode.
+if USE_ADDRESS_SANITIZER
+GENDIS_ENV=env ASAN_OPTIONS=detect_leaks=0
+else
+GENDIS_ENV=
+endif
+
$(srcdir)/%_dis.h: %_defs i386_gendis$(EXEEXT)
- $(AM_V_GEN)./i386_gendis$(EXEEXT) $< > $@T
+ $(AM_V_GEN) $(GENDIS_ENV) ./i386_gendis$(EXEEXT) $< > $@T
$(AM_V_at)mv -f $@T $@
else
diff --git a/libcpu/i386_disasm.c b/libcpu/i386_disasm.c
index fd7340cc..599d1654 100644
--- a/libcpu/i386_disasm.c
+++ b/libcpu/i386_disasm.c
@@ -34,7 +34,6 @@
#include <assert.h>
#include <config.h>
#include <ctype.h>
-#include <endian.h>
#include <errno.h>
#include <gelf.h>
#include <stddef.h>
@@ -44,7 +43,7 @@
#include "../libebl/libeblP.h"
-#define MACHINE_ENCODING __LITTLE_ENDIAN
+#define MACHINE_ENCODING LITTLE_ENDIAN
#include "memory-access.h"
diff --git a/libcpu/i386_lex.l b/libcpu/i386_lex.l
index b6ec0f87..9b33ed95 100644
--- a/libcpu/i386_lex.l
+++ b/libcpu/i386_lex.l
@@ -31,7 +31,6 @@
#endif
#include <ctype.h>
-#include <libintl.h>
#include <libeu.h>
#include "system.h"
diff --git a/libcpu/i386_parse.y b/libcpu/i386_parse.y
index 9a92c2e0..d2236d59 100644
--- a/libcpu/i386_parse.y
+++ b/libcpu/i386_parse.y
@@ -35,7 +35,6 @@
#include <ctype.h>
#include <errno.h>
#include <inttypes.h>
-#include <libintl.h>
#include <math.h>
#include <obstack.h>
#include <search.h>
diff --git a/libcpu/memory-access.h b/libcpu/memory-access.h
index 779825fa..6e92fc5b 100644
--- a/libcpu/memory-access.h
+++ b/libcpu/memory-access.h
@@ -29,11 +29,10 @@
#ifndef _MEMORY_ACCESS_H
#define _MEMORY_ACCESS_H 1
-#include <byteswap.h>
-#include <endian.h>
#include <limits.h>
#include <stdint.h>
+#include <system.h>
/* When loading this file we require the macro MACHINE_ENCODING to be
defined to signal the endianness of the architecture which is
@@ -41,7 +40,7 @@
#ifndef MACHINE_ENCODING
# error "MACHINE_ENCODING needs to be defined"
#endif
-#if MACHINE_ENCODING != __BIG_ENDIAN && MACHINE_ENCODING != __LITTLE_ENDIAN
+#if MACHINE_ENCODING != BIG_ENDIAN && MACHINE_ENCODING != LITTLE_ENDIAN
# error "MACHINE_ENCODING must signal either big or little endian"
#endif
@@ -51,31 +50,31 @@
#if ALLOW_UNALIGNED
# define read_2ubyte_unaligned(Addr) \
- (unlikely (MACHINE_ENCODING != __BYTE_ORDER) \
+ (unlikely (MACHINE_ENCODING != BYTE_ORDER) \
? bswap_16 (*((const uint16_t *) (Addr))) \
: *((const uint16_t *) (Addr)))
# define read_2sbyte_unaligned(Addr) \
- (unlikely (MACHINE_ENCODING != __BYTE_ORDER) \
+ (unlikely (MACHINE_ENCODING != BYTE_ORDER) \
? (int16_t) bswap_16 (*((const int16_t *) (Addr))) \
: *((const int16_t *) (Addr)))
# define read_4ubyte_unaligned_noncvt(Addr) \
*((const uint32_t *) (Addr))
# define read_4ubyte_unaligned(Addr) \
- (unlikely (MACHINE_ENCODING != __BYTE_ORDER) \
+ (unlikely (MACHINE_ENCODING != BYTE_ORDER) \
? bswap_32 (*((const uint32_t *) (Addr))) \
: *((const uint32_t *) (Addr)))
# define read_4sbyte_unaligned(Addr) \
- (unlikely (MACHINE_ENCODING != __BYTE_ORDER) \
+ (unlikely (MACHINE_ENCODING != BYTE_ORDER) \
? (int32_t) bswap_32 (*((const int32_t *) (Addr))) \
: *((const int32_t *) (Addr)))
# define read_8ubyte_unaligned(Addr) \
- (unlikely (MACHINE_ENCODING != __BYTE_ORDER) \
+ (unlikely (MACHINE_ENCODING != BYTE_ORDER) \
? bswap_64 (*((const uint64_t *) (Addr))) \
: *((const uint64_t *) (Addr)))
# define read_8sbyte_unaligned(Addr) \
- (unlikely (MACHINE_ENCODING != __BYTE_ORDER) \
+ (unlikely (MACHINE_ENCODING != BYTE_ORDER) \
? (int64_t) bswap_64 (*((const int64_t *) (Addr))) \
: *((const int64_t *) (Addr)))
@@ -96,7 +95,7 @@ static inline uint16_t
read_2ubyte_unaligned (const void *p)
{
const union unaligned *up = p;
- if (MACHINE_ENCODING != __BYTE_ORDER)
+ if (MACHINE_ENCODING != BYTE_ORDER)
return bswap_16 (up->u2);
return up->u2;
}
@@ -104,7 +103,7 @@ static inline int16_t
read_2sbyte_unaligned (const void *p)
{
const union unaligned *up = p;
- if (MACHINE_ENCODING != __BYTE_ORDER)
+ if (MACHINE_ENCODING != BYTE_ORDER)
return (int16_t) bswap_16 (up->u2);
return up->s2;
}
@@ -119,7 +118,7 @@ static inline uint32_t
read_4ubyte_unaligned (const void *p)
{
const union unaligned *up = p;
- if (MACHINE_ENCODING != __BYTE_ORDER)
+ if (MACHINE_ENCODING != BYTE_ORDER)
return bswap_32 (up->u4);
return up->u4;
}
@@ -127,7 +126,7 @@ static inline int32_t
read_4sbyte_unaligned (const void *p)
{
const union unaligned *up = p;
- if (MACHINE_ENCODING != __BYTE_ORDER)
+ if (MACHINE_ENCODING != BYTE_ORDER)
return (int32_t) bswap_32 (up->u4);
return up->s4;
}
@@ -136,7 +135,7 @@ static inline uint64_t
read_8ubyte_unaligned (const void *p)
{
const union unaligned *up = p;
- if (MACHINE_ENCODING != __BYTE_ORDER)
+ if (MACHINE_ENCODING != BYTE_ORDER)
return bswap_64 (up->u8);
return up->u8;
}
@@ -144,7 +143,7 @@ static inline int64_t
read_8sbyte_unaligned (const void *p)
{
const union unaligned *up = p;
- if (MACHINE_ENCODING != __BYTE_ORDER)
+ if (MACHINE_ENCODING != BYTE_ORDER)
return (int64_t) bswap_64 (up->u8);
return up->s8;
}
diff --git a/libcpu/riscv_disasm.c b/libcpu/riscv_disasm.c
index bc0d8f37..7175c077 100644
--- a/libcpu/riscv_disasm.c
+++ b/libcpu/riscv_disasm.c
@@ -41,7 +41,7 @@
#include "../libebl/libeblP.h"
-#define MACHINE_ENCODING __LITTLE_ENDIAN
+#define MACHINE_ENCODING LITTLE_ENDIAN
#include "memory-access.h"
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index ca742e6b..3c595a3d 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,54 @@
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * dwarf_begin_elf.h: Don't include unistd.h and endian.h.
+ * dwarf_end.c: Don't include unistd.h.
+ * dwarf_setalt.c: Likewise.
+ * libdw_find_split_unit.c: Likewise.
+
+2022-10-19 Mark Wielaard <mark@klomp.org>
+
+ * dwarf.h (DW_LLE_GNU_view_pair): New constant.
+
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * memory-access.h: Include system.h instead of byteswap.h and
+ endian.h.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * memory-access.h: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
+
+2022-09-13 Aleksei Vetrov <vvvvvv@google.com>
+
+ * libdw.map (ELFUTILS_0.188): Add dwfl_report_offline_memory.
+
+2022-08-09 Ulrich Drepper <drepper@redhat.com>
+
+ * dwarf_next_cfi.c (dwarf_next_cfi): Don't skip processing the
+ augmentation string. Be more stringent what to accept.
+
+2022-07-28 Di Chen <dichen@redhat.com>
+
+ * libdw.map (ELFUTILS_0.188): Add dwfl_frame_reg.
+
+2022-07-13 Mark Wielaard <mark@klomp.org>
+
+ * libdw.map (ELFUTILS_0.187): Renamed to...
+ (ELFUTILS_0.188): ... this.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_getlocation.c (store_implicit_value): Check block length.
+
+2022-04-16 Mark Wielaard <mark@klomp.org>
+
+ * libdwP.h: Remove atomics.h include.
+
+2022-04-13 Mark Wielaard <mark@klomp.org>
+
+ * dwarf.h: Add DWARF5 package file section identifiers,
+ DW_SECT_*.
+
2021-10-20 John M Mellor-Crummey <johnmc@rice.edu>
* dwarf_linecontext.c: New file.
diff --git a/libdw/dwarf.h b/libdw/dwarf.h
index 3ce7f236..b2e49db2 100644
--- a/libdw/dwarf.h
+++ b/libdw/dwarf.h
@@ -931,7 +931,24 @@ enum
DW_LLE_GNU_end_of_list_entry = 0x0,
DW_LLE_GNU_base_address_selection_entry = 0x1,
DW_LLE_GNU_start_end_entry = 0x2,
- DW_LLE_GNU_start_length_entry = 0x3
+ DW_LLE_GNU_start_length_entry = 0x3,
+
+ // http://www.fsfla.org/~lxoliva/papers/sfn/dwarf6-sfn-lvu.txt
+ // https://dwarfstd.org/ShowIssue.php?issue=170427.1
+ DW_LLE_GNU_view_pair = 0x9
+ };
+
+/* DWARF5 package file section identifiers. */
+enum
+ {
+ DW_SECT_INFO = 1,
+ /* Reserved = 2, */
+ DW_SECT_ABBREV = 3,
+ DW_SECT_LINE = 4,
+ DW_SECT_LOCLISTS = 5,
+ DW_SECT_STR_OFFSETS = 6,
+ DW_SECT_MACRO = 7,
+ DW_SECT_RNGLISTS = 8,
};
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
index a48dada6..8fcef335 100644
--- a/libdw/dwarf_begin_elf.c
+++ b/libdw/dwarf_begin_elf.c
@@ -38,11 +38,9 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <endian.h>
#include "libelfP.h"
#include "libdwP.h"
diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c
index 77f537a7..8dd075cf 100644
--- a/libdw/dwarf_end.c
+++ b/libdw/dwarf_end.c
@@ -35,7 +35,6 @@
#include <stdlib.h>
#include <assert.h>
#include <string.h>
-#include <unistd.h>
#include "libdwP.h"
#include "cfi.h"
diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c
index 5db3cf97..d0d78163 100644
--- a/libdw/dwarf_getlocation.c
+++ b/libdw/dwarf_getlocation.c
@@ -147,7 +147,10 @@ store_implicit_value (Dwarf *dbg, void **cache, Dwarf_Op *op)
sizeof (struct loc_block_s), 1);
const unsigned char *data = (const unsigned char *) (uintptr_t) op->number2;
/* Skip the block length. */
- __libdw_get_uleb128_unchecked (&data);
+ Dwarf_Word length;
+ get_uleb128_unchecked (length, data);
+ if (length != op->number)
+ return -1;
block->addr = op;
block->data = (unsigned char *) data;
block->length = op->number;
diff --git a/libdw/dwarf_next_cfi.c b/libdw/dwarf_next_cfi.c
index fa28d99b..23b16885 100644
--- a/libdw/dwarf_next_cfi.c
+++ b/libdw/dwarf_next_cfi.c
@@ -193,50 +193,71 @@ dwarf_next_cfi (const unsigned char e_ident[],
else /* DWARF 2 */
entry->cie.return_address_register = *bytes++;
- /* If we have sized augmentation data,
- we don't need to grok it all. */
entry->cie.fde_augmentation_data_size = 0;
+ entry->cie.augmentation_data = bytes;
bool sized_augmentation = *ap == 'z';
if (sized_augmentation)
{
+ ++ap;
if (bytes >= limit)
goto invalid;
get_uleb128 (entry->cie.augmentation_data_size, bytes, limit);
if ((Dwarf_Word) (limit - bytes) < entry->cie.augmentation_data_size)
goto invalid;
entry->cie.augmentation_data = bytes;
- bytes += entry->cie.augmentation_data_size;
}
- else
- {
- entry->cie.augmentation_data = bytes;
- for (; *ap != '\0'; ++ap)
+ for (; *ap != '\0'; ++ap)
+ {
+ uint8_t encoding;
+ switch (*ap)
{
- uint8_t encoding;
- switch (*ap)
+ case 'L':
+ if (sized_augmentation)
{
- case 'L': /* Skip LSDA pointer encoding byte. */
- case 'R': /* Skip FDE address encoding byte. */
+ /* Skip LSDA pointer encoding byte. */
encoding = *bytes++;
entry->cie.fde_augmentation_data_size
+= encoded_value_size (data, e_ident, encoding, NULL);
continue;
- case 'P': /* Skip encoded personality routine pointer. */
+ }
+ break;
+ case 'R':
+ if (sized_augmentation)
+ {
+ /* Skip FDE address encoding byte. */
encoding = *bytes++;
- bytes += encoded_value_size (data, e_ident, encoding, bytes);
continue;
- case 'S': /* Skip signal-frame flag. */
+ }
+ break;
+ case 'P':
+ if (sized_augmentation)
+ {
+ /* Skip encoded personality routine pointer. */
+ encoding = *bytes++;
+ bytes += encoded_value_size (data, e_ident, encoding, bytes);
continue;
- default:
- /* Unknown augmentation string. initial_instructions might
- actually start with some augmentation data. */
- break;
}
break;
+ case 'S':
+ if (sized_augmentation)
+ /* Skip signal-frame flag. */
+ continue;
+ break;
+ default:
+ /* Unknown augmentation string. initial_instructions might
+ actually start with some augmentation data. */
+ break;
}
- entry->cie.augmentation_data_size
- = bytes - entry->cie.augmentation_data;
+ break;
+ }
+ if (! sized_augmentation)
+ entry->cie.augmentation_data_size = bytes - entry->cie.augmentation_data;
+ else
+ {
+ if (bytes > entry->cie.augmentation_data + entry->cie.augmentation_data_size)
+ goto invalid;
+ bytes = entry->cie.augmentation_data + entry->cie.augmentation_data_size;
}
entry->cie.initial_instructions = bytes;
diff --git a/libdw/dwarf_setalt.c b/libdw/dwarf_setalt.c
index 9051b8e0..dc9b61cb 100644
--- a/libdw/dwarf_setalt.c
+++ b/libdw/dwarf_setalt.c
@@ -32,8 +32,6 @@
#include "libdwP.h"
-#include <unistd.h>
-
void
dwarf_setalt (Dwarf *main, Dwarf *alt)
{
diff --git a/libdw/libdw.map b/libdw/libdw.map
index 4f530378..5331ad45 100644
--- a/libdw/libdw.map
+++ b/libdw/libdw.map
@@ -366,3 +366,10 @@ ELFUTILS_0.186 {
dwarf_linecontext;
dwarf_linefunctionname;
} ELFUTILS_0.177;
+
+ELFUTILS_0.188 {
+ global:
+ dwfl_get_debuginfod_client;
+ dwfl_frame_reg;
+ dwfl_report_offline_memory;
+} ELFUTILS_0.186;
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index 360ad01a..961fa4e7 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -29,13 +29,11 @@
#ifndef _LIBDWP_H
#define _LIBDWP_H 1
-#include <libintl.h>
#include <stdbool.h>
#include <pthread.h>
#include <libdw.h>
#include <dwarf.h>
-#include "atomics.h"
/* Known location expressions already decoded. */
diff --git a/libdw/libdw_find_split_unit.c b/libdw/libdw_find_split_unit.c
index da039e50..a22e7bc9 100644
--- a/libdw/libdw_find_split_unit.c
+++ b/libdw/libdw_find_split_unit.c
@@ -40,7 +40,6 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <unistd.h>
void
try_split_file (Dwarf_CU *cu, const char *dwo_path)
diff --git a/libdw/memory-access.h b/libdw/memory-access.h
index 8b2386ee..16c8c851 100644
--- a/libdw/memory-access.h
+++ b/libdw/memory-access.h
@@ -29,11 +29,10 @@
#ifndef _MEMORY_ACCESS_H
#define _MEMORY_ACCESS_H 1
-#include <byteswap.h>
-#include <endian.h>
#include <limits.h>
#include <stdint.h>
+#include <system.h>
/* Number decoding macros. See 7.6 Variable Length Data. */
@@ -355,10 +354,10 @@ read_8sbyte_unaligned_1 (bool other_byte_order, const void *p)
static inline int
file_byte_order (bool other_byte_order)
{
-#if __BYTE_ORDER == __LITTLE_ENDIAN
- return other_byte_order ? __BIG_ENDIAN : __LITTLE_ENDIAN;
+#if BYTE_ORDER == LITTLE_ENDIAN
+ return other_byte_order ? BIG_ENDIAN : LITTLE_ENDIAN;
#else
- return other_byte_order ? __LITTLE_ENDIAN : __BIG_ENDIAN;
+ return other_byte_order ? LITTLE_ENDIAN : BIG_ENDIAN;
#endif
}
@@ -372,7 +371,7 @@ read_3ubyte_unaligned (Dwarf *dbg, const unsigned char *p)
} d;
bool other_byte_order = dbg->other_byte_order;
- if (file_byte_order (other_byte_order) == __BIG_ENDIAN)
+ if (file_byte_order (other_byte_order) == BIG_ENDIAN)
{
d.c[0] = 0x00;
d.c[1] = p[0];
diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog
index 5f7fb4ed..5d61aa85 100644
--- a/libdwelf/ChangeLog
+++ b/libdwelf/ChangeLog
@@ -1,3 +1,18 @@
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * dwelf_elf_begin.c: Don't include unistd.h.
+ * dwelf_strtab.c: Likewise.
+
+2022-08-08 Andreas Schwab <schwab@suse.de>
+
+ * dwelf_elf_e_machine_string.c (dwelf_elf_e_machine_string): Add
+ EM_LOONGARCH LoongArch.
+
+2022-03-24 Mark Wielaard <mark@klomp.org>
+
+ * dwelf_elf_e_machine_string.c (dwelf_elf_e_machine_string): Add
+ EM_INTELGT Intel Graphics Technology.
+
2021-02-14 Alexander Miller <alex.miller@gmx.de>
* dwelf_elf_begin.c (dwelf_elf_begin): Move NEW_VERSION before
diff --git a/libdwelf/dwelf_elf_begin.c b/libdwelf/dwelf_elf_begin.c
index c3cfe633..17a90fc9 100644
--- a/libdwelf/dwelf_elf_begin.c
+++ b/libdwelf/dwelf_elf_begin.c
@@ -34,8 +34,6 @@
#include "libdwflP.h"
#include "libelfP.h"
-#include <unistd.h>
-
NEW_VERSION (dwelf_elf_begin, ELFUTILS_0.177)
Elf *
dwelf_elf_begin (int fd)
diff --git a/libdwelf/dwelf_elf_e_machine_string.c b/libdwelf/dwelf_elf_e_machine_string.c
index 387648e2..6d588ea8 100644
--- a/libdwelf/dwelf_elf_e_machine_string.c
+++ b/libdwelf/dwelf_elf_e_machine_string.c
@@ -360,6 +360,8 @@ dwelf_elf_e_machine_string (int machine)
return "XMOS xCORE";
case EM_MCHP_PIC:
return "Microchip 8-bit PIC";
+ case EM_INTELGT:
+ return "Intel Graphics Technology";
case EM_KM32:
return "KM211 KM32";
case EM_KMX32:
@@ -396,6 +398,8 @@ dwelf_elf_e_machine_string (int machine)
return "BPF";
case EM_CSKY:
return "C-SKY";
+ case EM_LOONGARCH:
+ return "LoongArch";
case EM_ALPHA:
return "Alpha";
diff --git a/libdwelf/dwelf_strtab.c b/libdwelf/dwelf_strtab.c
index 5ec8c295..c95f9467 100644
--- a/libdwelf/dwelf_strtab.c
+++ b/libdwelf/dwelf_strtab.c
@@ -37,7 +37,6 @@
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
#include "libdwelfP.h"
#include <system.h>
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 57b2c494..6dd84a6f 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,245 @@
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * argp-std.c: Don't include unistd.h.
+ * core-file.c: Don't include unistd.h, endian.h, byteswap.h and
+ system.h.
+ * dwfl_build_id_find_debuginfo.c: Don't include unistd.h.
+ * dwfl_build_id_find_elf.c: Likewise.
+ * dwfl_end.c: Likewise.
+ * dwfl_frame.c: Likewise.
+ * dwfl_module.c: Likewise.
+ * dwfl_module_getdwarf.c: Likewise.
+ * dwfl_report_elf.c: Likewise.
+ * dwfl_segment_report_module.c: Don't include endian.h and unistd.h.
+ * find-debuginfo.c: Don't include unistd.h.
+ * gzip.c: Likewise.
+ * image-header.c: Don't include system.h, unistd.h and endian.h.
+ * link_map.c: Don't include byteswap.h and endian.h.
+ * linux-pid-attach.c: Don't include unistd.h.
+ * offline.c: Likewise.
+ * open.c: Likewise.
+
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * libdwfl_crc32.c: Remove LIB_SYSTEM_H define.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * dwfl_segment_report_module.c: Use BYTE_ORDER, LITTLE_ENDIAN and
+ BIG_ENDIAN.
+
+2022-09-13 Aleksei Vetrov <vvvvvv@google.com>
+
+ * libdwfl.h (dwfl_report_offline_memory): New function.
+ * libdwflP.h (__libdw_open_elf_memory): New internal function.
+ (dwfl_report_offline_memory): INTDECL.
+ * offline.c (dwfl_report_offline_memory): New function.
+ * open.c (decompress): Return DWFL_E_BADELF when fd is -1.
+ (libdw_open_elf): New argument use_elfp. Adding *elfp to elf if
+ true.
+ (__libdw_open_file): Pass false to libdw_open_elf.
+ (__libdw_open_elf_memory): New function.
+ (__libdw_open_elf): Pass false for libdw_open_elf.
+
+2022-07-28 Di Chen <dichen@redhat.com>
+
+ * libdwfl.h (dwfl_frame_reg): New function.
+ * libdwflP.h (DWFL_E_REGISTER_VAL_UNKNOWN): New error code.
+ (__libdwfl_frame_reg_get): Return an int.
+ (dwfl_frame_reg): INTDECL.
+ * dwfl_frame_regs.c (dwfl_frame_reg): New function.
+ * frame_unwind.c (__libdwfl_frame_reg_get): Return an int.
+ (state_get_reg): Removed.
+ (expr_eval): Use INTUSE (dwfl_frame_reg) instead of state_get_reg.
+ (handle_cfi): Likewise.
+ (getfunc): Likewise.
+ * linux-core-attach.c (core_set_initial_registers): Check
+ __libdwfl_frame_reg_get returns zero.
+
+2022-07-28 Mark Wielaard <mark@klomp.org>
+
+ * core-file.c (elf_begin_rand): Replace struct ar_hdr h with
+ a char ar_size[AR_SIZE_CHARS + 1] array to read size.
+
+2022-07-18 Shahab Vahedi <shahab@synopsys.com>
+
+ * debuginfod-client.c (dwfl_get_debuginfod_client stub):
+ Add a name to the sole parameter.
+
+2022-07-13 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (dwfl_get_debuginfod_client): Add INTDEF.
+ (__libdwfl_debuginfod_find_executable): Use
+ INTUSE (dwfl_get_debuginfod_client).
+ (__libdwfl_debuginfod_find_debuginfo): Likewise.
+
+2022-06-22 Milian Wolff <mail@milianw.de>
+
+ * libdwfl.h, debuginfod-client.c (dwfl_get_debuginfod_client):
+ Rename get_client to dwfl_get_debuginfod_client and make it public.
+
+2022-05-15 Mark Wielaard <mark@klomp.org>
+
+ * libdwfl.h (dwfl_module_addrinfo): Update docs and nonnull
+ attribute to make clear offset and sym cannot be NULL.
+
+2022-04-22 Mark Wielaard <mark@klomp.org>
+
+ * debuginfod-client.c (init_control): New static pthread_once_t.
+ (get_client): Use pthread_once to call __libdwfl_debuginfod_init.
+ (__libdwfl_debuginfod_init): Make static, remove attribute
+ constructor.
+
+2022-02-18 Mark Wielaard <mark@klomp.org>
+
+ * image-header.c (__libdw_image_header): Assign header values for
+ magic1, magic2, version, offset, length and sects using memcpy.
+
+2022-02-18 Mark Wielaard <mark@klomp.org>
+
+ * offline.c (process_archive_member): Close member if process_file
+ failed.
+
+2022-01-03 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Only declare d32 and d64 before
+ actual use.
+
+2022-01-03 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Copy
+ dyn_data and set xlatefrom.d_buf to dyns when dyns is not aligned.
+
+2022-01-03 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (read_addrs): Fix buffer_available nb overflow.
+
+2021-12-23 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (read_addrs): Calculate addr to read by hand.
+
+2021-12-23 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Call memcpy and set in.d_buf to
+ out.d_buf before calling xlatetom for unaligned buffers.
+
+2021-12-23 Mark Wielaard <mark@klomp.org>
+
+ * core-file.c (dwfl_elf_phdr_memory_callback): Check start <
+ elf->maximum_size and end - start < minread.
+
+2021-12-20 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Move
+ and initialize struct elf_build_id build_id early. Only free memory
+ early when no longer needed. Free memory if not NULL at out.
+
+2021-12-19 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Copy
+ data and set xlatefrom.d_buf to notes when data is not aligned.
+
+2021-12-19 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Copy
+ ph_buffer and set xlatefrom.d_buf to phdrsp when ph_buffer is not
+ aligned.
+
+2021-12-19 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Copy
+ buffer and set xlatefrom.d_buf to ehdr when buffer is not aligned.
+
+2021-12-19 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check
+ notes filesz. Rewrite reading of GElf_Nhdr.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Make sure
+ that dyn_filesz can contain at least one Elf_Dyn and isn't larger than
+ possible.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Make sure
+ that ph_buffer_size has room for at least one phdr.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Make
+ sure the note len increases each iteration.
+
+2021-12-17 Mark Wielaard <mark@klomp.org>
+
+ * libdwflP.h (dwfl_segment_report_module): Add maxread argument.
+ * core-file.c (dwfl_core_file_report): Pass elf->maximum_size to
+ dwfl_segment_report_module.
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Add
+ maxread argument. Check file_trimmed_end against maxread.
+
+2021-12-16 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check
+ note data is properly aligned.
+
+2021-12-16 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Make sure phnum is non-zero.
+
+2021-12-16 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Make sure dyn_filesz / entsize is
+ non-zero.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Add
+ len overflow check while iterating notes.
+
+2021-12-15 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Make sure phent is either sizeof
+ Elf32_Phdr or sizeof Elf64_Phdr. Check in.d_size can hold at least one
+ Phdr.
+
+2021-12-12 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Don't
+ allocate more than SIZE_MAX.
+
+2021-12-09 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Limit dyn_filesz malloc size
+ to max possible. When converting make sure we don't exceed the number
+ of bytes available in either in.d_buf or out.d_buf.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check
+ Dwfl_Module isn't associated with an Elf before installing it.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Don't
+ trust e_shentsize.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Make sure phent != 0.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * link_map.c (dwfl_link_map_report): Limit malloc size to max
+ possible. When converting make sure we don't exceed the number
+ of bytes available in either in.d_buf nor out.d_buf.
+
+2021-12-08 Mark Wielaard <mark@klomp.org>
+
+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Don't
+ read beyond of (actual) end of (memory) file.
+
2021-11-18 Matthias Maennich <maennich@google.com>
* linux-kernel-modules.c (dwfl_linux_kernel_report_modules):
diff --git a/libdwfl/Makefile.am b/libdwfl/Makefile.am
index a0013e41..3278358d 100644
--- a/libdwfl/Makefile.am
+++ b/libdwfl/Makefile.am
@@ -70,7 +70,7 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_end.c dwfl_error.c dwfl_version.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 \
- gzip.c
+ gzip.c debuginfod-client.c
if BZLIB
libdwfl_a_SOURCES += bzip2.c
@@ -81,9 +81,6 @@ endif
if ZSTD
libdwfl_a_SOURCES += zstd.c
endif
-if LIBDEBUGINFOD
-libdwfl_a_SOURCES += debuginfod-client.c
-endif
libdwfl = $(libdw)
libdw = ../libdw/libdw.so
diff --git a/libdwfl/argp-std.c b/libdwfl/argp-std.c
index 01ec18e2..1605fbfe 100644
--- a/libdwfl/argp-std.c
+++ b/libdwfl/argp-std.c
@@ -34,9 +34,7 @@
#include <argp.h>
#include <stdlib.h>
#include <assert.h>
-#include <libintl.h>
#include <fcntl.h>
-#include <unistd.h>
#define OPT_DEBUGINFO 0x100
diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c
index 4e4c9b3c..cd9b4f38 100644
--- a/libdwfl/core-file.c
+++ b/libdwfl/core-file.c
@@ -1,5 +1,6 @@
/* Core file handling.
Copyright (C) 2008-2010, 2013, 2015 Red Hat, Inc.
+ Copyright (C) 2021 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -32,12 +33,6 @@
#include "libdwflP.h"
#include <gelf.h>
-#include <unistd.h>
-#include <endian.h>
-#include <byteswap.h>
-#include "system.h"
-
-
/* On failure return, we update *NEXT to point back at OFFSET. */
static inline Elf *
do_fail (int error, off_t *next, off_t offset)
@@ -74,26 +69,32 @@ elf_begin_rand (Elf *parent, off_t offset, off_t size, off_t *next)
from the archive header to override SIZE. */
if (parent->kind == ELF_K_AR)
{
- struct ar_hdr h = { .ar_size = "" };
-
- if (unlikely (parent->maximum_size - offset < sizeof h))
+ /* File size, in ASCII decimal, right-padded with ASCII spaces.
+ Max 10 characters. Not zero terminated. So make this ar_size
+ array one larger and explicitly zero terminate it. As needed
+ for strtoll. */
+ #define AR_SIZE_CHARS 10
+ char ar_size[AR_SIZE_CHARS + 1];
+ ar_size[AR_SIZE_CHARS] = '\0';
+
+ if (unlikely (parent->maximum_size - offset < sizeof (struct ar_hdr)))
return fail (ELF_E_RANGE);
if (parent->map_address != NULL)
- memcpy (h.ar_size, parent->map_address + parent->start_offset + offset,
- sizeof h.ar_size);
+ memcpy (ar_size, parent->map_address + parent->start_offset + offset,
+ AR_SIZE_CHARS);
else if (unlikely (pread_retry (parent->fildes,
- h.ar_size, sizeof (h.ar_size),
+ ar_size, AR_SIZE_CHARS,
parent->start_offset + offset
+ offsetof (struct ar_hdr, ar_size))
- != sizeof (h.ar_size)))
+ != AR_SIZE_CHARS))
return fail (ELF_E_READ_ERROR);
- offset += sizeof h;
+ offset += sizeof (struct ar_hdr);
char *endp;
- size = strtoll (h.ar_size, &endp, 10);
- if (unlikely (endp == h.ar_size)
+ size = strtoll (ar_size, &endp, 10);
+ if (unlikely (endp == ar_size)
|| unlikely ((off_t) parent->maximum_size - offset < size))
return fail (ELF_E_INVALID_ARCHIVE);
}
@@ -320,7 +321,7 @@ dwfl_elf_phdr_memory_callback (Dwfl *dwfl, int ndx,
(void) more (*buffer_available);
/* If it's already on hand anyway, use as much as there is. */
- if (elf->map_address != NULL)
+ if (elf->map_address != NULL && start < elf->maximum_size)
(void) more (elf->maximum_size - start);
/* Make sure we don't look past the end of the actual file,
@@ -332,6 +333,9 @@ dwfl_elf_phdr_memory_callback (Dwfl *dwfl, int ndx,
if (unlikely (start >= end))
return false;
+ if (end - start < minread)
+ return false;
+
if (elf->map_address != NULL)
{
void *contents = elf->map_address + elf->start_offset + start;
@@ -559,6 +563,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf, const char *executable)
int seg = dwfl_segment_report_module (dwfl, ndx, NULL,
&dwfl_elf_phdr_memory_callback, elf,
core_file_read_eagerly, elf,
+ elf->maximum_size,
note_file, note_file_size,
&r_debug_info);
if (unlikely (seg < 0))
diff --git a/libdwfl/debuginfod-client.c b/libdwfl/debuginfod-client.c
index 99b66b6e..d581daab 100644
--- a/libdwfl/debuginfod-client.c
+++ b/libdwfl/debuginfod-client.c
@@ -1,5 +1,6 @@
/* Try to get an ELF or debug file through the debuginfod.
Copyright (C) 2019 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -31,6 +32,10 @@
#endif
#include "libdwflP.h"
+
+#ifdef ENABLE_LIBDEBUGINFOD
+
+#include <pthread.h>
#include <dlfcn.h>
static __typeof__ (debuginfod_begin) *fp_debuginfod_begin;
@@ -38,14 +43,20 @@ static __typeof__ (debuginfod_find_executable) *fp_debuginfod_find_executable;
static __typeof__ (debuginfod_find_debuginfo) *fp_debuginfod_find_debuginfo;
static __typeof__ (debuginfod_end) *fp_debuginfod_end;
+static void __libdwfl_debuginfod_init (void);
+
+static pthread_once_t init_control = PTHREAD_ONCE_INIT;
+
/* NB: this is slightly thread-unsafe */
-static debuginfod_client *
-get_client (Dwfl *dwfl)
+debuginfod_client *
+dwfl_get_debuginfod_client (Dwfl *dwfl)
{
if (dwfl->debuginfod != NULL)
return dwfl->debuginfod;
+ pthread_once (&init_control, __libdwfl_debuginfod_init);
+
if (fp_debuginfod_begin != NULL)
{
dwfl->debuginfod = (*fp_debuginfod_begin) ();
@@ -54,6 +65,7 @@ get_client (Dwfl *dwfl)
return NULL;
}
+INTDEF(dwfl_get_debuginfod_client)
int
__libdwfl_debuginfod_find_executable (Dwfl *dwfl,
@@ -63,7 +75,7 @@ __libdwfl_debuginfod_find_executable (Dwfl *dwfl,
int fd = -1;
if (build_id_len > 0)
{
- debuginfod_client *c = get_client (dwfl);
+ debuginfod_client *c = INTUSE (dwfl_get_debuginfod_client) (dwfl);
if (c != NULL)
fd = (*fp_debuginfod_find_executable) (c, build_id_bits,
build_id_len, NULL);
@@ -80,7 +92,7 @@ __libdwfl_debuginfod_find_debuginfo (Dwfl *dwfl,
int fd = -1;
if (build_id_len > 0)
{
- debuginfod_client *c = get_client (dwfl);
+ debuginfod_client *c = INTUSE (dwfl_get_debuginfod_client) (dwfl);
if (c != NULL)
fd = (*fp_debuginfod_find_debuginfo) (c, build_id_bits,
build_id_len, NULL);
@@ -96,9 +108,9 @@ __libdwfl_debuginfod_end (debuginfod_client *c)
(*fp_debuginfod_end) (c);
}
-/* Try to get the libdebuginfod library functions to make sure
- everything is initialized early. */
-void __attribute__ ((constructor))
+/* Try to get the libdebuginfod library functions.
+ Only needs to be called once from dwfl_get_debuginfod_client. */
+static void
__libdwfl_debuginfod_init (void)
{
void *debuginfod_so = dlopen(DEBUGINFOD_SONAME, RTLD_LAZY);
@@ -126,3 +138,13 @@ __libdwfl_debuginfod_init (void)
}
}
}
+
+#else // ENABLE_LIBDEBUGINFOD
+
+debuginfod_client *
+dwfl_get_debuginfod_client (Dwfl *dummy __attribute__ ((unused)))
+{
+ return NULL;
+}
+
+#endif // ENABLE_LIBDEBUGINFOD
diff --git a/libdwfl/dwfl_build_id_find_debuginfo.c b/libdwfl/dwfl_build_id_find_debuginfo.c
index 273e5e5f..856f2312 100644
--- a/libdwfl/dwfl_build_id_find_debuginfo.c
+++ b/libdwfl/dwfl_build_id_find_debuginfo.c
@@ -31,8 +31,6 @@
#endif
#include "libdwflP.h"
-#include <unistd.h>
-
int
dwfl_build_id_find_debuginfo (Dwfl_Module *mod,
diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c
index 7b604d47..35bc8c9e 100644
--- a/libdwfl/dwfl_build_id_find_elf.c
+++ b/libdwfl/dwfl_build_id_find_elf.c
@@ -33,7 +33,6 @@
#include "libdwflP.h"
#include <inttypes.h>
#include <fcntl.h>
-#include <unistd.h>
#include "system.h"
diff --git a/libdwfl/dwfl_end.c b/libdwfl/dwfl_end.c
index b1840191..a1812407 100644
--- a/libdwfl/dwfl_end.c
+++ b/libdwfl/dwfl_end.c
@@ -31,7 +31,6 @@
#endif
#include "libdwflP.h"
-#include <unistd.h>
void
dwfl_end (Dwfl *dwfl)
diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c
index a5c683a9..43fa1dcc 100644
--- a/libdwfl/dwfl_error.c
+++ b/libdwfl/dwfl_error.c
@@ -31,7 +31,6 @@
#endif
#include <assert.h>
-#include <libintl.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
diff --git a/libdwfl/dwfl_frame.c b/libdwfl/dwfl_frame.c
index 77e0c5cb..5ee71dd4 100644
--- a/libdwfl/dwfl_frame.c
+++ b/libdwfl/dwfl_frame.c
@@ -33,7 +33,6 @@
#include <system.h>
#include "libdwflP.h"
-#include <unistd.h>
/* Set STATE->pc_set from STATE->regs according to the backend. Return true on
success, false on error. */
diff --git a/libdwfl/dwfl_frame_regs.c b/libdwfl/dwfl_frame_regs.c
index 83b1abef..a4bd3884 100644
--- a/libdwfl/dwfl_frame_regs.c
+++ b/libdwfl/dwfl_frame_regs.c
@@ -59,3 +59,15 @@ dwfl_thread_state_register_pc (Dwfl_Thread *thread, Dwarf_Word pc)
state->pc_state = DWFL_FRAME_STATE_PC_SET;
}
INTDEF(dwfl_thread_state_register_pc)
+
+int
+dwfl_frame_reg (Dwfl_Frame *state, unsigned regno, Dwarf_Word *val)
+{
+ int res = __libdwfl_frame_reg_get (state, regno, val);
+ if (res == -1)
+ __libdwfl_seterrno (DWFL_E_INVALID_REGISTER);
+ else if (res == 1)
+ __libdwfl_seterrno (DWFL_E_REGISTER_VAL_UNKNOWN);
+ return res;
+}
+INTDEF(dwfl_frame_reg)
diff --git a/libdwfl/dwfl_module.c b/libdwfl/dwfl_module.c
index e7dfdace..4fbff33e 100644
--- a/libdwfl/dwfl_module.c
+++ b/libdwfl/dwfl_module.c
@@ -33,7 +33,6 @@
#include "libdwflP.h"
#include "../libdw/cfi.h"
#include <search.h>
-#include <unistd.h>
static void
free_cu (struct dwfl_cu *cu)
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
index 6f076057..498c7cd2 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -34,7 +34,6 @@
#include <inttypes.h>
#include <fcntl.h>
#include <string.h>
-#include <unistd.h>
#include "../libdw/libdwP.h" /* DWARF_E_* values are here. */
#include "../libelf/libelfP.h"
#include "system.h"
diff --git a/libdwfl/dwfl_report_elf.c b/libdwfl/dwfl_report_elf.c
index a5f0e5e5..581f4079 100644
--- a/libdwfl/dwfl_report_elf.c
+++ b/libdwfl/dwfl_report_elf.c
@@ -32,8 +32,6 @@
#include "libdwflP.h"
#include <fcntl.h>
-#include <unistd.h>
-
/* We start every ET_REL module at a moderately aligned boundary.
This keeps the low addresses easy to read compared to a layout
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index ee9cfa2e..287fc002 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -1,5 +1,6 @@
/* Sniff out modules from ELF headers visible in memory segments.
Copyright (C) 2008-2012, 2014, 2015, 2018 Red Hat, Inc.
+ Copyright (C) 2021 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -35,8 +36,6 @@
#include <elf.h>
#include <gelf.h>
#include <inttypes.h>
-#include <endian.h>
-#include <unistd.h>
#include <fcntl.h>
#include <system.h>
@@ -48,7 +47,7 @@
#define INITIAL_READ 1024
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
# define MY_ELFDATA ELFDATA2LSB
#else
# define MY_ELFDATA ELFDATA2MSB
@@ -294,6 +293,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
void *memory_callback_arg,
Dwfl_Module_Callback *read_eagerly,
void *read_eagerly_arg,
+ size_t maxread,
const void *note_file, size_t note_file_size,
const struct r_debug_info *r_debug_info)
{
@@ -331,6 +331,12 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
here so we can always safely free it. */
void *phdrsp = NULL;
+ /* Collect the build ID bits here. */
+ struct elf_build_id build_id;
+ build_id.memory = NULL;
+ build_id.len = 0;
+ build_id.vaddr = 0;
+
if (! (*memory_callback) (dwfl, ndx, &buffer, &buffer_available,
start, sizeof (Elf64_Ehdr), memory_callback_arg)
|| memcmp (buffer, ELFMAG, SELFMAG) != 0)
@@ -366,6 +372,20 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
e_ident = ((const unsigned char *) buffer);
ei_class = e_ident[EI_CLASS];
ei_data = e_ident[EI_DATA];
+ /* buffer may be unaligned, in which case xlatetom would not work.
+ xlatetom does work when the in and out d_buf are equal (but not
+ for any other overlap). */
+ size_t ehdr_align = (ei_class == ELFCLASS32
+ ? __alignof__ (Elf32_Ehdr)
+ : __alignof__ (Elf64_Ehdr));
+ if (((uintptr_t) buffer & (ehdr_align - 1)) != 0)
+ {
+ memcpy (&ehdr, buffer,
+ (ei_class == ELFCLASS32
+ ? sizeof (Elf32_Ehdr)
+ : sizeof (Elf64_Ehdr)));
+ xlatefrom.d_buf = &ehdr;
+ }
switch (ei_class)
{
case ELFCLASS32:
@@ -383,7 +403,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
zero sh_size field. We ignore this here because getting shdrs
is just a nice bonus (see below in the type == PT_LOAD case
where we trim the last segment). */
- shdrs_end = ehdr.e32.e_shoff + ehdr.e32.e_shnum * ehdr.e32.e_shentsize;
+ shdrs_end = ehdr.e32.e_shoff + ehdr.e32.e_shnum * sizeof (Elf32_Shdr);
break;
case ELFCLASS64:
@@ -397,7 +417,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
if (phentsize != sizeof (Elf64_Phdr))
goto out;
/* See the NOTE above for shdrs_end and ehdr.e32.e_shnum. */
- shdrs_end = ehdr.e64.e_shoff + ehdr.e64.e_shnum * ehdr.e64.e_shentsize;
+ shdrs_end = ehdr.e64.e_shoff + ehdr.e64.e_shnum * sizeof (Elf64_Shdr);
break;
default:
@@ -425,7 +445,12 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
buffer, otherwise it will be the size of the new buffer that
could be read. */
if (ph_buffer_size != 0)
- xlatefrom.d_size = ph_buffer_size;
+ {
+ phnum = ph_buffer_size / phentsize;
+ if (phnum == 0)
+ goto out;
+ xlatefrom.d_size = ph_buffer_size;
+ }
xlatefrom.d_buf = ph_buffer;
@@ -441,6 +466,18 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
xlateto.d_buf = phdrsp;
xlateto.d_size = phdrsp_bytes;
+ /* ph_ buffer may be unaligned, in which case xlatetom would not work.
+ xlatetom does work when the in and out d_buf are equal (but not
+ for any other overlap). */
+ size_t phdr_align = (class32
+ ? __alignof__ (Elf32_Phdr)
+ : __alignof__ (Elf64_Phdr));
+ if (((uintptr_t) ph_buffer & (phdr_align - 1)) != 0)
+ {
+ memcpy (phdrsp, ph_buffer, phdrsp_bytes);
+ xlatefrom.d_buf = phdrsp;
+ }
+
/* Track the bounds of the file visible in memory. */
GElf_Off file_trimmed_end = 0; /* Proper p_vaddr + p_filesz end. */
GElf_Off file_end = 0; /* Rounded up to effective page size. */
@@ -460,12 +497,6 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
GElf_Addr dyn_vaddr = 0;
GElf_Xword dyn_filesz = 0;
- /* Collect the build ID bits here. */
- struct elf_build_id build_id;
- build_id.memory = NULL;
- build_id.len = 0;
- build_id.vaddr =0;
-
Elf32_Phdr *p32 = phdrsp;
Elf64_Phdr *p64 = phdrsp;
if ((ei_class == ELFCLASS32
@@ -514,15 +545,23 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
if (data_size != 0)
filesz = data_size;
+ if (filesz > SIZE_MAX / sizeof (Elf32_Nhdr))
+ continue;
+
assert (sizeof (Elf32_Nhdr) == sizeof (Elf64_Nhdr));
void *notes;
- if (ei_data == MY_ELFDATA)
+ if (ei_data == MY_ELFDATA
+ && (uintptr_t) data == (align == 8
+ ? NOTE_ALIGN8 ((uintptr_t) data)
+ : NOTE_ALIGN4 ((uintptr_t) data)))
notes = data;
else
{
const unsigned int xencoding = ehdr.e32.e_ident[EI_DATA];
+ if (filesz > SIZE_MAX / sizeof (Elf32_Nhdr))
+ continue;
notes = malloc (filesz);
if (unlikely (notes == NULL))
continue; /* Next header */
@@ -533,6 +572,18 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
xlatefrom.d_size = filesz;
xlateto.d_buf = notes;
xlateto.d_size = filesz;
+
+ /* data may be unaligned, in which case xlatetom would not work.
+ xlatetom does work when the in and out d_buf are equal (but not
+ for any other overlap). */
+ if ((uintptr_t) data != (align == 8
+ ? NOTE_ALIGN8 ((uintptr_t) data)
+ : NOTE_ALIGN4 ((uintptr_t) data)))
+ {
+ memcpy (notes, data, filesz);
+ xlatefrom.d_buf = notes;
+ }
+
if (elf32_xlatetom (&xlateto, &xlatefrom, xencoding) == NULL)
{
free (notes);
@@ -543,40 +594,48 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
const GElf_Nhdr *nh = notes;
size_t len = 0;
- while (filesz > len + sizeof (*nh))
+ while (filesz - len > sizeof (*nh))
{
- const void *note_name;
- const void *note_desc;
-
- len += sizeof (*nh);
- note_name = notes + len;
-
- len += nh->n_namesz;
- len = align == 8 ? NOTE_ALIGN8 (len) : NOTE_ALIGN4 (len);
- note_desc = notes + len;
-
- if (unlikely (filesz < len + nh->n_descsz))
- break;
-
- if (nh->n_type == NT_GNU_BUILD_ID
- && nh->n_descsz > 0
- && nh->n_namesz == sizeof "GNU"
- && !memcmp (note_name, "GNU", sizeof "GNU"))
- {
- build_id.vaddr = (note_desc
+ len += sizeof (*nh);
+
+ size_t namesz = nh->n_namesz;
+ namesz = align == 8 ? NOTE_ALIGN8 (namesz) : NOTE_ALIGN4 (namesz);
+ if (namesz > filesz - len || len + namesz < namesz)
+ break;
+
+ void *note_name = notes + len;
+ len += namesz;
+
+ size_t descsz = nh->n_descsz;
+ descsz = align == 8 ? NOTE_ALIGN8 (descsz) : NOTE_ALIGN4 (descsz);
+ if (descsz > filesz - len || len + descsz < descsz)
+ break;
+
+ void *note_desc = notes + len;
+ len += descsz;
+
+ /* We don't handle very short or really large build-ids. We need at
+ at least 3 and allow for up to 64 (normally ids are 20 long). */
+#define MIN_BUILD_ID_BYTES 3
+#define MAX_BUILD_ID_BYTES 64
+ if (nh->n_type == NT_GNU_BUILD_ID
+ && nh->n_descsz >= MIN_BUILD_ID_BYTES
+ && nh->n_descsz <= MAX_BUILD_ID_BYTES
+ && nh->n_namesz == sizeof "GNU"
+ && !memcmp (note_name, "GNU", sizeof "GNU"))
+ {
+ build_id.vaddr = (note_desc
- (const void *) notes
+ note_vaddr);
- build_id.len = nh->n_descsz;
- build_id.memory = malloc (build_id.len);
- if (likely (build_id.memory != NULL))
- memcpy (build_id.memory, note_desc, build_id.len);
- break;
- }
-
- len += nh->n_descsz;
- len = align == 8 ? NOTE_ALIGN8 (len) : NOTE_ALIGN4 (len);
- nh = (void *) notes + len;
- }
+ build_id.len = nh->n_descsz;
+ build_id.memory = malloc (build_id.len);
+ if (likely (build_id.memory != NULL))
+ memcpy (build_id.memory, note_desc, build_id.len);
+ break;
+ }
+
+ nh = (void *) notes + len;
+ }
if (notes != data)
free (notes);
@@ -641,10 +700,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
/* We must have seen the segment covering offset 0, or else the ELF
header we read at START was not produced by these program headers. */
if (unlikely (!found_bias))
- {
- free (build_id.memory);
- goto out;
- }
+ goto out;
/* Now we know enough to report a module for sure: its bounds. */
module_start += bias;
@@ -712,10 +768,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
}
}
if (skip_this_module)
- {
- free (build_id.memory);
- goto out;
- }
+ goto out;
}
const char *file_note_name = handle_file_note (module_start, module_end,
@@ -774,6 +827,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
if (dyn_data_size != 0)
dyn_filesz = dyn_data_size;
+ if ((dyn_filesz / dyn_entsize) == 0
+ || dyn_filesz > (SIZE_MAX / dyn_entsize))
+ goto out;
void *dyns = malloc (dyn_filesz);
Elf32_Dyn *d32 = dyns;
Elf64_Dyn *d64 = dyns;
@@ -786,7 +842,19 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
xlateto.d_buf = dyns;
xlateto.d_size = dyn_filesz;
+ /* dyn_data may be unaligned, in which case xlatetom would not work.
+ xlatetom does work when the in and out d_buf are equal (but not
+ for any other overlap). */
bool is32 = (ei_class == ELFCLASS32);
+ size_t dyn_align = (is32
+ ? __alignof__ (Elf32_Dyn)
+ : __alignof__ (Elf64_Dyn));
+ if (((uintptr_t) dyn_data & (dyn_align - 1)) != 0)
+ {
+ memcpy (dyns, dyn_data, dyn_filesz);
+ xlatefrom.d_buf = dyns;
+ }
+
if ((is32 && elf32_xlatetom (&xlateto, &xlatefrom, ei_data) != NULL)
|| (!is32 && elf64_xlatetom (&xlateto, &xlatefrom, ei_data) != NULL))
{
@@ -877,6 +945,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
/* At this point we do not need BUILD_ID or NAME any more.
They have been copied. */
free (build_id.memory);
+ build_id.memory = NULL;
finish_portion (&read_state, &soname, &soname_size);
if (unlikely (mod == NULL))
@@ -904,6 +973,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
/* The caller wants to read the whole file in right now, but hasn't
done it for us. Fill in a local image of the virtual file. */
+ if (file_trimmed_end > maxread)
+ file_trimmed_end = maxread;
+
void *contents = calloc (1, file_trimmed_end);
if (unlikely (contents == NULL))
goto out;
@@ -924,8 +996,12 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
GElf_Off offset = is32 ? p32[i].p_offset : p64[i].p_offset;
GElf_Xword filesz = is32 ? p32[i].p_filesz : p64[i].p_filesz;
+ /* Don't try to read beyond the actual end of file. */
+ if (offset >= file_trimmed_end)
+ continue;
+
void *into = contents + offset;
- size_t read_size = filesz;
+ size_t read_size = MIN (filesz, file_trimmed_end - offset);
(*memory_callback) (dwfl, addr_segndx (dwfl, segment,
vaddr + bias, false),
&into, &read_size, vaddr + bias, read_size,
@@ -959,7 +1035,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
elf->flags |= ELF_F_MALLOCED;
}
- if (elf != NULL)
+ if (elf != NULL && mod->main.elf == NULL)
{
/* Install the file in the module. */
mod->main.elf = elf;
@@ -972,6 +1048,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
}
out:
+ if (build_id.memory != NULL)
+ free (build_id.memory);
free (phdrsp);
if (buffer != NULL)
(*memory_callback) (dwfl, -1, &buffer, &buffer_available, 0, 0,
diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c
index 449df5a1..7f7ab632 100644
--- a/libdwfl/find-debuginfo.c
+++ b/libdwfl/find-debuginfo.c
@@ -33,7 +33,6 @@
#include "libdwflP.h"
#include <stdio.h>
#include <fcntl.h>
-#include <unistd.h>
#include <sys/stat.h>
#include "system.h"
diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c
index 9ac33833..8185d84b 100644
--- a/libdwfl/frame_unwind.c
+++ b/libdwfl/frame_unwind.c
@@ -43,21 +43,21 @@
error. */
#define DWARF_EXPR_STEPS_MAX 0x1000
-bool
+int
internal_function
__libdwfl_frame_reg_get (Dwfl_Frame *state, unsigned regno, Dwarf_Addr *val)
{
Ebl *ebl = state->thread->process->ebl;
if (! ebl_dwarf_to_regno (ebl, &regno))
- return false;
+ return -1;
if (regno >= ebl_frame_nregs (ebl))
- return false;
+ return -1;
if ((state->regs_set[regno / sizeof (*state->regs_set) / 8]
& ((uint64_t) 1U << (regno % (sizeof (*state->regs_set) * 8)))) == 0)
- return false;
+ return 1;
if (val)
*val = state->regs[regno];
- return true;
+ return 0;
}
bool
@@ -78,17 +78,6 @@ __libdwfl_frame_reg_set (Dwfl_Frame *state, unsigned regno, Dwarf_Addr val)
return true;
}
-static bool
-state_get_reg (Dwfl_Frame *state, unsigned regno, Dwarf_Addr *val)
-{
- if (! __libdwfl_frame_reg_get (state, regno, val))
- {
- __libdwfl_seterrno (DWFL_E_INVALID_REGISTER);
- return false;
- }
- return true;
-}
-
static int
bra_compar (const void *key_voidp, const void *elem_voidp)
{
@@ -211,7 +200,7 @@ expr_eval (Dwfl_Frame *state, Dwarf_Frame *frame, const Dwarf_Op *ops,
}
break;
case DW_OP_reg0 ... DW_OP_reg31:
- if (! state_get_reg (state, op->atom - DW_OP_reg0, &val1)
+ if (INTUSE (dwfl_frame_reg) (state, op->atom - DW_OP_reg0, &val1) != 0
|| ! push (val1))
{
free (stack.addrs);
@@ -219,14 +208,14 @@ expr_eval (Dwfl_Frame *state, Dwarf_Frame *frame, const Dwarf_Op *ops,
}
break;
case DW_OP_regx:
- if (! state_get_reg (state, op->number, &val1) || ! push (val1))
+ if (INTUSE (dwfl_frame_reg) (state, op->number, &val1) != 0 || ! push (val1))
{
free (stack.addrs);
return false;
}
break;
case DW_OP_breg0 ... DW_OP_breg31:
- if (! state_get_reg (state, op->atom - DW_OP_breg0, &val1))
+ if (INTUSE (dwfl_frame_reg) (state, op->atom - DW_OP_breg0, &val1) != 0)
{
free (stack.addrs);
return false;
@@ -239,7 +228,7 @@ expr_eval (Dwfl_Frame *state, Dwarf_Frame *frame, const Dwarf_Op *ops,
}
break;
case DW_OP_bregx:
- if (! state_get_reg (state, op->number, &val1))
+ if (INTUSE (dwfl_frame_reg) (state, op->number, &val1) != 0)
{
free (stack.addrs);
return false;
@@ -591,7 +580,7 @@ handle_cfi (Dwfl_Frame *state, Dwarf_Addr pc, Dwarf_CFI *cfi, Dwarf_Addr bias)
else if (reg_ops == NULL)
{
/* REGNO is same-value. */
- if (! state_get_reg (state, regno, &regval))
+ if (INTUSE (dwfl_frame_reg) (state, regno, &regval) != 0)
continue;
}
else
@@ -638,9 +627,10 @@ handle_cfi (Dwfl_Frame *state, Dwarf_Addr pc, Dwarf_CFI *cfi, Dwarf_Addr bias)
}
if (unwound->pc_state == DWFL_FRAME_STATE_ERROR)
{
- if (__libdwfl_frame_reg_get (unwound,
- frame->fde->cie->return_address_register,
- &unwound->pc))
+ int res = INTUSE (dwfl_frame_reg) (unwound,
+ frame->fde->cie->return_address_register,
+ &unwound->pc);
+ if (res == 0)
{
/* PPC32 __libc_start_main properly CFI-unwinds PC as zero.
Currently none of the archs supported for unwinding have
@@ -698,7 +688,7 @@ getfunc (int firstreg, unsigned nregs, Dwarf_Word *regs, void *arg)
Dwfl_Frame *state = arg;
assert (firstreg >= 0);
while (nregs--)
- if (! __libdwfl_frame_reg_get (state, firstreg++, regs++))
+ if (INTUSE (dwfl_frame_reg) (state, firstreg++, regs++) != 0)
return false;
return true;
}
diff --git a/libdwfl/gzip.c b/libdwfl/gzip.c
index ba8ecfba..53013be3 100644
--- a/libdwfl/gzip.c
+++ b/libdwfl/gzip.c
@@ -33,8 +33,6 @@
#include "libdwflP.h"
#include "system.h"
-#include <unistd.h>
-
#ifdef LZMA
# define USE_INFLATE 1
# include <lzma.h>
diff --git a/libdwfl/image-header.c b/libdwfl/image-header.c
index 25fbfd99..c777cc84 100644
--- a/libdwfl/image-header.c
+++ b/libdwfl/image-header.c
@@ -1,5 +1,6 @@
/* Linux kernel image support for libdwfl.
Copyright (C) 2009-2011 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -31,10 +32,6 @@
#endif
#include "libdwflP.h"
-#include "system.h"
-
-#include <unistd.h>
-#include <endian.h>
#if BYTE_ORDER == LITTLE_ENDIAN
# define LE16(x) (x)
@@ -80,17 +77,28 @@ __libdw_image_header (int fd, off_t *start_offset,
header = header_buffer - H_START;
}
- if (*(uint16_t *) (header + H_MAGIC1) == LE16 (MAGIC1)
- && *(uint32_t *) (header + H_MAGIC2) == LE32 (MAGIC2)
- && LE16 (*(uint16_t *) (header + H_VERSION)) >= MIN_VERSION)
+ uint16_t magic1;
+ uint32_t magic2;
+ uint16_t version;
+ memcpy (&magic1, header + H_MAGIC1, sizeof (uint16_t));
+ memcpy (&magic2, header + H_MAGIC2, sizeof (uint32_t));
+ memcpy (&version, header + H_VERSION, sizeof (uint16_t));
+ if (magic1 == LE16 (MAGIC1) && magic2 == LE32 (MAGIC2)
+ && LE16 (version) >= MIN_VERSION)
{
/* The magic numbers match and the version field is sufficient.
Extract the payload bounds. */
- uint32_t offset = LE32 (*(uint32_t *) (header + H_PAYLOAD_OFFSET));
- uint32_t length = LE32 (*(uint32_t *) (header + H_PAYLOAD_LENGTH));
+ uint32_t offset;
+ uint32_t length;
+ uint8_t sects;
+ memcpy (&offset, header + H_PAYLOAD_OFFSET, sizeof (uint32_t));
+ memcpy (&length, header + H_PAYLOAD_LENGTH, sizeof (uint32_t));
+ memcpy (&sects, header + H_SETUP_SECTS, sizeof (uint8_t));
+ offset = LE32 (offset);
+ length = LE32 (length);
- offset += ((*(uint8_t *) (header + H_SETUP_SECTS) ?: 4) + 1) * 512;
+ offset += ((sects ?: 4) + 1) * 512;
if (offset > H_END && offset < mapped_size
&& mapped_size - offset >= length)
diff --git a/libdwfl/libdwfl.h b/libdwfl/libdwfl.h
index f98f1d52..9114f7f0 100644
--- a/libdwfl/libdwfl.h
+++ b/libdwfl/libdwfl.h
@@ -49,6 +49,9 @@ typedef struct Dwfl_Thread Dwfl_Thread;
PC location described by an FDE belonging to Dwfl_Thread. */
typedef struct Dwfl_Frame Dwfl_Frame;
+/* Handle for debuginfod-client connection. */
+typedef struct debuginfod_client debuginfod_client;
+
/* Callbacks. */
typedef struct
{
@@ -156,6 +159,10 @@ extern Dwfl_Module *dwfl_report_elf (Dwfl *dwfl, const char *name,
extern Dwfl_Module *dwfl_report_offline (Dwfl *dwfl, const char *name,
const char *file_name, int fd);
+/* Similar, but report ELF from memory region. */
+extern Dwfl_Module *dwfl_report_offline_memory (Dwfl *dwfl, const char *name,
+ const char *file_name,
+ char *data, size_t size);
/* Finish reporting the current set of modules to the library.
If REMOVED is not null, it's called for each module that
@@ -473,26 +480,26 @@ extern const char *dwfl_module_addrname (Dwfl_Module *mod, GElf_Addr address);
when nothing was found. If the architecture uses function
descriptors, and symbol st_value points to one, ADDRESS will be
matched against either the adjusted st_value or the associated
- function entry value as described in dwfl_module_getsym_info. If
- OFFSET is not NULL it will be filled in with the difference from
- the start of the symbol (or function entry). If SYM is not NULL it
- is filled in with the symbol associated with the matched ADDRESS.
- The SYM->ST_VALUE itself isn't adjusted in any way. Fills in ELFP,
- if not NULL, with the ELF file the symbol originally came from.
- Note that symbols can come from either the main, debug or auxiliary
- ELF symbol file (either dynsym or symtab). If SHNDXP is non-null,
- it's set with the section index (whether from st_shndx or extended
- index table). Fills in BIAS, if not NULL, with the difference
- between addresses within the loaded module and those in symbol
- table of the ELF file. Note that the address matched against the
- symbol might be in a different section than the returned symbol.
- The section in the main elf file in ADDRESS falls can be found with
- dwfl_module_address_section. */
+ function entry value as described in dwfl_module_getsym_info.
+ OFFSET will be filled in with the difference from the start of the
+ symbol (or function entry), OFFSET cannot be NULL. SYM is filled
+ in with the symbol associated with the matched ADDRESS, SYM cannot
+ be NULL. The SYM->ST_VALUE itself isn't adjusted in any way.
+ Fills in ELFP, if not NULL, with the ELF file the symbol originally
+ came from. Note that symbols can come from either the main, debug
+ or auxiliary ELF symbol file (either dynsym or symtab). If SHNDXP
+ is non-null, it's set with the section index (whether from st_shndx
+ or extended index table). Fills in BIAS, if not NULL, with the
+ difference between addresses within the loaded module and those in
+ symbol table of the ELF file. Note that the address matched
+ against the symbol might be in a different section than the
+ returned symbol. The section in the main elf file in ADDRESS falls
+ can be found with dwfl_module_address_section. */
extern const char *dwfl_module_addrinfo (Dwfl_Module *mod, GElf_Addr address,
GElf_Off *offset, GElf_Sym *sym,
GElf_Word *shndxp, Elf **elfp,
Dwarf_Addr *bias)
- __nonnull_attribute__ (3);
+ __nonnull_attribute__ (3, 4);
/* Find the symbol that ADDRESS lies inside, and return detailed
information as for dwfl_module_getsym (above). Note that like
@@ -795,6 +802,19 @@ int dwfl_getthread_frames (Dwfl *dwfl, pid_t tid,
bool dwfl_frame_pc (Dwfl_Frame *state, Dwarf_Addr *pc, bool *isactivation)
__nonnull_attribute__ (1, 2);
+/* Get the value of the DWARF register number in the given frame.
+ Returns zero on success, -1 on error (invalid DWARF register
+ number) or 1 if the value of the register in the frame is unknown. */
+int dwfl_frame_reg (Dwfl_Frame *state, unsigned regno, Dwarf_Word *val)
+ __nonnull_attribute__ (1);
+
+/* Return the internal debuginfod-client connection handle for the DWFL session.
+ When the client connection has not yet been initialized, it will be done on the
+ first call to this function. If elfutils is compiled without support for debuginfod,
+ NULL will be returned.
+ */
+extern debuginfod_client *dwfl_get_debuginfod_client (Dwfl *dwfl);
+
#ifdef __cplusplus
}
#endif
diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h
index 4344e356..011b5de9 100644
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -81,6 +81,7 @@ typedef struct Dwfl_Process Dwfl_Process;
DWFL_ERROR (LIBEBL_BAD, N_("Internal error due to ebl")) \
DWFL_ERROR (CORE_MISSING, N_("Missing data in core file")) \
DWFL_ERROR (INVALID_REGISTER, N_("Invalid register")) \
+ DWFL_ERROR (REGISTER_VAL_UNKNOWN, N_("Unknown register value")) \
DWFL_ERROR (PROCESS_MEMORY_READ, N_("Error reading process memory")) \
DWFL_ERROR (PROCESS_NO_ARCH, N_("Couldn't find architecture of any ELF")) \
DWFL_ERROR (PARSE_PROC, N_("Error parsing /proc filesystem")) \
@@ -276,9 +277,11 @@ struct Dwfl_Frame
Dwarf_Addr regs[];
};
-/* Fetch value from Dwfl_Frame->regs indexed by DWARF REGNO.
- No error code is set if the function returns FALSE. */
-bool __libdwfl_frame_reg_get (Dwfl_Frame *state, unsigned regno,
+/* Fetch value from Dwfl_Frame->regs indexed by DWARF REGNO. The
+ function returns 0 on success, -1 on error (invalid DWARF register
+ number), 1 if the value of the register in the frame is unknown.
+ Even on error, no error code is set. */
+int __libdwfl_frame_reg_get (Dwfl_Frame *state, unsigned regno,
Dwarf_Addr *val)
internal_function;
@@ -628,6 +631,11 @@ extern Dwfl_Error __libdw_open_file (int *fdp, Elf **elfp,
bool close_on_fail, bool archive_ok)
internal_function;
+/* Same as __libdw_open_file, but opens Elf handle from memory region. */
+extern Dwfl_Error __libdw_open_elf_memory (char *data, size_t size, Elf **elfp,
+ bool archive_ok)
+ internal_function;
+
/* Same as __libdw_open_file, but never closes the given file
descriptor and ELF_K_AR is always an acceptable type. */
extern Dwfl_Error __libdw_open_elf (int fd, Elf **elfp) internal_function;
@@ -698,6 +706,7 @@ extern int dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
void *memory_callback_arg,
Dwfl_Module_Callback *read_eagerly,
void *read_eagerly_arg,
+ size_t maxread,
const void *note_file,
size_t note_file_size,
const struct r_debug_info *r_debug_info);
@@ -756,6 +765,7 @@ INTDECL (dwfl_report_begin_add)
INTDECL (dwfl_report_module)
INTDECL (dwfl_report_segment)
INTDECL (dwfl_report_offline)
+INTDECL (dwfl_report_offline_memory)
INTDECL (dwfl_report_end)
INTDECL (dwfl_build_id_find_elf)
INTDECL (dwfl_build_id_find_debuginfo)
@@ -785,6 +795,8 @@ INTDECL (dwfl_getthread_frames)
INTDECL (dwfl_getthreads)
INTDECL (dwfl_thread_getframes)
INTDECL (dwfl_frame_pc)
+INTDECL (dwfl_frame_reg)
+INTDECL (dwfl_get_debuginfod_client)
/* Leading arguments standard to callbacks passed a Dwfl_Module. */
#define MODCB_ARGS(mod) (mod), &(mod)->userdata, (mod)->name, (mod)->low_addr
diff --git a/libdwfl/libdwfl_crc32.c b/libdwfl/libdwfl_crc32.c
index b89d0d36..5bc7a4ad 100644
--- a/libdwfl/libdwfl_crc32.c
+++ b/libdwfl/libdwfl_crc32.c
@@ -30,6 +30,5 @@
#endif
#define crc32 attribute_hidden __libdwfl_crc32
-#define LIB_SYSTEM_H 1
#include <libdwflP.h>
#include "../lib/crc32.c"
diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c
index 1e7d4502..7ec7eca1 100644
--- a/libdwfl/link_map.c
+++ b/libdwfl/link_map.c
@@ -1,5 +1,6 @@
/* Report modules by examining dynamic linker data structures.
Copyright (C) 2008-2016 Red Hat, Inc.
+ Copyright (C) 2021 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -31,8 +32,6 @@
#include "../libdw/memory-access.h"
#include "system.h"
-#include <byteswap.h>
-#include <endian.h>
#include <fcntl.h>
/* This element is always provided and always has a constant value.
@@ -256,7 +255,8 @@ read_addrs (struct memory_closure *closure,
/* Read a new buffer if the old one doesn't cover these words. */
if (*buffer == NULL
|| vaddr < *read_vaddr
- || vaddr - (*read_vaddr) + nb > *buffer_available)
+ || nb > *buffer_available
+ || vaddr - (*read_vaddr) > *buffer_available - nb)
{
release_buffer (closure, buffer, buffer_available, 0);
@@ -269,26 +269,25 @@ read_addrs (struct memory_closure *closure,
return true;
}
- Elf32_Addr (*a32)[n] = vaddr - (*read_vaddr) + (*buffer);
- Elf64_Addr (*a64)[n] = (void *) a32;
+ unsigned char *addr = vaddr - (*read_vaddr) + (*buffer);
if (elfclass == ELFCLASS32)
{
if (elfdata == ELFDATA2MSB)
for (size_t i = 0; i < n; ++i)
- addrs[i] = BE32 (read_4ubyte_unaligned_noncvt (&(*a32)[i]));
+ addrs[i] = BE32 (read_4ubyte_unaligned_noncvt (addr + i * 4));
else
for (size_t i = 0; i < n; ++i)
- addrs[i] = LE32 (read_4ubyte_unaligned_noncvt (&(*a32)[i]));
+ addrs[i] = LE32 (read_4ubyte_unaligned_noncvt (addr + i * 4));
}
else
{
if (elfdata == ELFDATA2MSB)
for (size_t i = 0; i < n; ++i)
- addrs[i] = BE64 (read_8ubyte_unaligned_noncvt (&(*a64)[i]));
+ addrs[i] = BE64 (read_8ubyte_unaligned_noncvt (addr + i * 8));
else
for (size_t i = 0; i < n; ++i)
- addrs[i] = LE64 (read_8ubyte_unaligned_noncvt (&(*a64)[i]));
+ addrs[i] = LE64 (read_8ubyte_unaligned_noncvt (addr + i * 8));
}
return false;
@@ -784,7 +783,9 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
GElf_Xword dyn_filesz = 0;
GElf_Addr dyn_bias = (GElf_Addr) -1;
- if (phdr != 0 && phnum != 0)
+ if (phdr != 0 && phnum != 0
+ && ((elfclass == ELFCLASS32 && phent == sizeof (Elf32_Phdr))
+ || (elfclass == ELFCLASS64 && phent == sizeof (Elf64_Phdr))))
{
Dwfl_Module *phdr_mod;
int phdr_segndx = INTUSE(dwfl_addrsegment) (dwfl, phdr, &phdr_mod);
@@ -847,6 +848,11 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
/* Note this in the !in_ok path. That means memory_callback
failed. But the callback might still have reset the d_size
value (to zero). So explicitly set it here again. */
+ if (unlikely (phnum > SIZE_MAX / phent))
+ {
+ __libdwfl_seterrno (DWFL_E_NOMEM);
+ return false;
+ }
in.d_size = phnum * phent;
in.d_buf = malloc (in.d_size);
if (unlikely (in.d_buf == NULL))
@@ -876,6 +882,18 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
return false;
}
size_t nbytes = phnum * phent;
+ /* We can only process as many bytes/phnum as there are
+ in in.d_size. The data might have been truncated. */
+ if (nbytes > in.d_size)
+ {
+ nbytes = in.d_size;
+ phnum = nbytes / phent;
+ if (phnum == 0)
+ {
+ __libdwfl_seterrno (DWFL_E_BADELF);
+ return false;
+ }
+ }
void *buf = malloc (nbytes);
Elf32_Phdr (*p32)[phnum] = buf;
Elf64_Phdr (*p64)[phnum] = buf;
@@ -888,15 +906,34 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
{
.d_type = ELF_T_PHDR,
.d_version = EV_CURRENT,
- .d_size = phnum * phent,
+ .d_size = nbytes,
.d_buf = buf
};
- in.d_size = out.d_size;
+ if (in.d_size > out.d_size)
+ {
+ in.d_size = out.d_size;
+ phnum = in.d_size / phent;
+ if (phnum == 0)
+ {
+ free (buf);
+ __libdwfl_seterrno (DWFL_E_BADELF);
+ return false;
+ }
+ }
+ bool is32 = (elfclass == ELFCLASS32);
+ size_t phdr_align = (is32
+ ? __alignof__ (Elf32_Phdr)
+ : __alignof__ (Elf64_Phdr));
+ if (!in_from_exec
+ && ((uintptr_t) in.d_buf & (phdr_align - 1)) != 0)
+ {
+ memcpy (out.d_buf, in.d_buf, in.d_size);
+ in.d_buf = out.d_buf;
+ }
if (likely ((elfclass == ELFCLASS32
? elf32_xlatetom : elf64_xlatetom)
(&out, &in, elfdata) != NULL))
{
- bool is32 = (elfclass == ELFCLASS32);
for (size_t i = 0; i < phnum; ++i)
{
GElf_Word type = (is32
@@ -981,9 +1018,23 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
if ((*memory_callback) (dwfl, dyn_segndx, &in.d_buf, &in.d_size,
dyn_vaddr, dyn_filesz, memory_callback_arg))
{
+ size_t entsize = (elfclass == ELFCLASS32
+ ? sizeof (Elf32_Dyn) : sizeof (Elf64_Dyn));
+ if (unlikely (dyn_filesz > SIZE_MAX / entsize))
+ {
+ __libdwfl_seterrno (DWFL_E_NOMEM);
+ return false;
+ }
+ /* We can only process as many bytes as there are in
+ in.d_size. The data might have been truncated. */
+ if (dyn_filesz > in.d_size)
+ dyn_filesz = in.d_size;
+ if (dyn_filesz / entsize == 0)
+ {
+ __libdwfl_seterrno (DWFL_E_BADELF);
+ return false;
+ }
void *buf = malloc (dyn_filesz);
- Elf32_Dyn (*d32)[dyn_filesz / sizeof (Elf32_Dyn)] = buf;
- Elf64_Dyn (*d64)[dyn_filesz / sizeof (Elf64_Dyn)] = buf;
if (unlikely (buf == NULL))
{
__libdwfl_seterrno (DWFL_E_NOMEM);
@@ -996,7 +1047,16 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
.d_size = dyn_filesz,
.d_buf = buf
};
- in.d_size = out.d_size;
+ if (in.d_size > out.d_size)
+ in.d_size = out.d_size;
+ size_t dyn_align = (elfclass == ELFCLASS32
+ ? __alignof__ (Elf32_Dyn)
+ : __alignof__ (Elf64_Dyn));
+ if (((uintptr_t) in.d_buf & (dyn_align - 1)) != 0)
+ {
+ memcpy (out.d_buf, in.d_buf, in.d_size);
+ in.d_buf = out.d_buf;
+ }
if (likely ((elfclass == ELFCLASS32
? elf32_xlatetom : elf64_xlatetom)
(&out, &in, elfdata) != NULL))
@@ -1004,6 +1064,7 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
/* We are looking for DT_DEBUG. */
if (elfclass == ELFCLASS32)
{
+ Elf32_Dyn (*d32)[dyn_filesz / sizeof (Elf32_Dyn)] = buf;
size_t n = dyn_filesz / sizeof (Elf32_Dyn);
for (size_t i = 0; i < n; ++i)
if ((*d32)[i].d_tag == DT_DEBUG)
@@ -1014,6 +1075,7 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size,
}
else
{
+ Elf64_Dyn (*d64)[dyn_filesz / sizeof (Elf64_Dyn)] = buf;
size_t n = dyn_filesz / sizeof (Elf64_Dyn);
for (size_t i = 0; i < n; ++i)
if ((*d64)[i].d_tag == DT_DEBUG)
diff --git a/libdwfl/linux-core-attach.c b/libdwfl/linux-core-attach.c
index f68062f0..ee7afa40 100644
--- a/libdwfl/linux-core-attach.c
+++ b/libdwfl/linux-core-attach.c
@@ -257,7 +257,7 @@ core_set_initial_registers (Dwfl_Thread *thread, void *thread_arg_voidp)
FIXME: It depends now on their order in core notes.
FIXME: It uses private function. */
if (regno < nregs
- && __libdwfl_frame_reg_get (thread->unwound, regno, NULL))
+ && __libdwfl_frame_reg_get (thread->unwound, regno, NULL) == 0)
continue;
Dwarf_Word val;
switch (regloc->bits)
diff --git a/libdwfl/linux-pid-attach.c b/libdwfl/linux-pid-attach.c
index 09cba07b..de867857 100644
--- a/libdwfl/linux-pid-attach.c
+++ b/libdwfl/linux-pid-attach.c
@@ -38,7 +38,6 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <dirent.h>
-#include <unistd.h>
#ifdef __linux__
diff --git a/libdwfl/offline.c b/libdwfl/offline.c
index d8697cf2..e090b42b 100644
--- a/libdwfl/offline.c
+++ b/libdwfl/offline.c
@@ -1,5 +1,7 @@
/* Recover relocatibility for addresses computed from debug information.
Copyright (C) 2005-2009, 2012 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
+ Copyright (C) 2022 Google LLC
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -32,7 +34,6 @@
#include "libdwflP.h"
#include <fcntl.h>
-#include <unistd.h>
/* Since dwfl_report_elf lays out the sections already, this will only be
called when the section headers of the debuginfo file are being
@@ -233,8 +234,11 @@ process_archive_member (Dwfl *dwfl, const char *name, const char *file_name,
free (member_name);
free (module_name);
- if (*mod == NULL) /* process_file called elf_end. */
- return ELF_C_NULL;
+ if (*mod == NULL)
+ {
+ elf_end (member);
+ return ELF_C_NULL;
+ }
/* Advance the archive-reading offset for the next iteration. */
return elf_next (member);
@@ -248,6 +252,7 @@ process_archive (Dwfl *dwfl, const char *name, const char *file_name, int fd,
{
Dwfl_Module *mod = NULL;
+ /* elf_begin supports opening archives even with fd == -1 passed. */
Elf *member = elf_begin (fd, ELF_C_READ_MMAP_PRIVATE, archive);
if (unlikely (member == NULL)) /* Empty archive. */
{
@@ -316,3 +321,27 @@ dwfl_report_offline (Dwfl *dwfl, const char *name,
return __libdwfl_report_offline (dwfl, name, file_name, fd, closefd, NULL);
}
INTDEF (dwfl_report_offline)
+
+Dwfl_Module *
+dwfl_report_offline_memory (Dwfl *dwfl, const char *name,
+ const char *file_name, char *data, size_t size)
+{
+ if (dwfl == NULL)
+ return NULL;
+
+ Elf *elf;
+ Dwfl_Error error = __libdw_open_elf_memory (data, size, &elf, true);
+ if (error != DWFL_E_NOERROR)
+ {
+ __libdwfl_seterrno (error);
+ return NULL;
+ }
+ /* It is ok to pass fd == -1 here, because libelf uses it as a value for
+ "no file opened" and supports working with files without fd, thanks to
+ the existence of the elf_memory function. */
+ Dwfl_Module *mod = process_file (dwfl, name, file_name, -1, elf, NULL);
+ if (mod == NULL)
+ elf_end (elf);
+ return mod;
+}
+INTDEF (dwfl_report_offline_memory)
diff --git a/libdwfl/open.c b/libdwfl/open.c
index 77bd2bd9..68b755cd 100644
--- a/libdwfl/open.c
+++ b/libdwfl/open.c
@@ -1,5 +1,6 @@
/* Decompression support for libdwfl: zlib (gzip), bzlib (bzip2) or lzma (xz).
Copyright (C) 2009, 2016 Red Hat, Inc.
+ Copyright (C) 2022 Google LLC
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -34,8 +35,6 @@
#undef _
#include "libdwflP.h"
-#include <unistd.h>
-
#if !USE_BZLIB
# define __libdw_bunzip2(...) DWFL_E_BADELF
#endif
@@ -53,6 +52,9 @@ static Dwfl_Error
decompress (int fd __attribute__ ((unused)), Elf **elf)
{
Dwfl_Error error = DWFL_E_BADELF;
+ /* ELF cannot be decompressed, if there is no file descriptor. */
+ if (fd == -1)
+ return error;
void *buffer = NULL;
size_t size = 0;
@@ -124,11 +126,12 @@ what_kind (int fd, Elf **elfp, Elf_Kind *kind, bool *may_close_fd)
static Dwfl_Error
libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok,
- bool never_close_fd, bool bad_elf_ok)
+ bool never_close_fd, bool bad_elf_ok, bool use_elfp)
{
bool may_close_fd = false;
- Elf *elf = elf_begin (*fdp, ELF_C_READ_MMAP_PRIVATE, NULL);
+ Elf *elf =
+ use_elfp ? *elfp : elf_begin (*fdp, ELF_C_READ_MMAP_PRIVATE, NULL);
Elf_Kind kind;
Dwfl_Error error = what_kind (*fdp, &elf, &kind, &may_close_fd);
@@ -194,11 +197,28 @@ libdw_open_elf (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok,
Dwfl_Error internal_function
__libdw_open_file (int *fdp, Elf **elfp, bool close_on_fail, bool archive_ok)
{
- return libdw_open_elf (fdp, elfp, close_on_fail, archive_ok, false, false);
+ return libdw_open_elf (fdp, elfp, close_on_fail, archive_ok, false, false,
+ false);
+}
+
+Dwfl_Error internal_function
+__libdw_open_elf_memory (char *data, size_t size, Elf **elfp, bool archive_ok)
+{
+ /* It is ok to use `fd == -1` here, because libelf uses it as a value for
+ "no file opened" and code supports working with this value, and also
+ `never_close_fd == false` is passed to prevent closing non-existant file.
+ The only caveat is in `decompress` method, which doesn't support
+ decompressing from memory, so reading compressed zImage using this method
+ won't work. */
+ int fd = -1;
+ *elfp = elf_memory (data, size);
+ /* Allow using this ELF as reference for subsequent elf_begin calls. */
+ (*elfp)->cmd = ELF_C_READ_MMAP_PRIVATE;
+ return libdw_open_elf (&fd, elfp, false, archive_ok, true, false, true);
}
Dwfl_Error internal_function
__libdw_open_elf (int fd, Elf **elfp)
{
- return libdw_open_elf (&fd, elfp, false, true, true, true);
+ return libdw_open_elf (&fd, elfp, false, true, true, true, false);
}
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index da690a40..6f55a5e7 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,28 @@
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * eblclosebackend.c: Remove dlfcn.h include.
+ * eblopenbackend.c: Likewise.
+
+2022-08-08 Andreas Schwab <schwab@suse.de>
+
+ * ebldynamictagname.c (ebl_dynamic_tag_name): Handle DT_RELRSZ,
+ DT_RELR, DT_RELRENT.
+
+2022-06-01 Ulrich Drepper <drepper@redhat.com>
+
+ * eblopenbackend.c (default_machine_flag_name): Add original flag
+ as first parameter.
+ * ebl-hooks.h (machine_flag_name): Ditto.
+ * eblmachineflagname.c (ebl_machine_flag_name): Modernize, use bool
+ for first. Pass original flag value to machine_flag_name
+ callback as well. Add space after comma in printed list.
+ Fix appending strings provided by callback.
+
+2021-12-21 Luca Boccassi <bluca@debian.org>
+
+ * eblobjnote.c (ebl_object_note): Handle NT_FDO_PACKAGING_METADATA.
+ * eblobjnotetypename.c (ebl_object_note_type_name): Likewise.
+
2021-09-06 Dmitry V. Levin <ldv@altlinux.org>
* eblopenbackend.c (openbackend): Remove cast of calloc return value.
diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h
index 1214bb84..d6437e53 100644
--- a/libebl/ebl-hooks.h
+++ b/libebl/ebl-hooks.h
@@ -51,7 +51,7 @@ const char *EBLHOOK(section_type_name) (int, char *, size_t);
const char *EBLHOOK(section_name) (int, int, char *, size_t);
/* Return next machine flag name. */
-const char *EBLHOOK(machine_flag_name) (GElf_Word *);
+const char *EBLHOOK(machine_flag_name) (GElf_Word, GElf_Word *);
/* Check whether machine flags are valid. */
bool EBLHOOK(machine_flag_check) (GElf_Word);
diff --git a/libebl/eblclosebackend.c b/libebl/eblclosebackend.c
index 501e5c7b..7fa068ec 100644
--- a/libebl/eblclosebackend.c
+++ b/libebl/eblclosebackend.c
@@ -30,7 +30,6 @@
# include <config.h>
#endif
-#include <dlfcn.h>
#include <stdlib.h>
#include <libeblP.h>
diff --git a/libebl/ebldynamictagname.c b/libebl/ebldynamictagname.c
index 3f8d8ee4..5d4a3a58 100644
--- a/libebl/ebldynamictagname.c
+++ b/libebl/ebldynamictagname.c
@@ -54,7 +54,7 @@ ebl_dynamic_tag_name (Ebl *ebl, int64_t tag, char *buf, size_t len)
"RELENT", "PLTREL", "DEBUG", "TEXTREL", "JMPREL", "BIND_NOW",
"INIT_ARRAY", "FINI_ARRAY", "INIT_ARRAYSZ", "FINI_ARRAYSZ",
"RUNPATH", "FLAGS", "ENCODING", "PREINIT_ARRAY",
- "PREINIT_ARRAYSZ", "SYMTAB_SHNDX"
+ "PREINIT_ARRAYSZ", "SYMTAB_SHNDX", "RELRSZ", "RELR", "RELRENT"
};
eu_static_assert (sizeof (stdtags) / sizeof (const char *) == DT_NUM);
diff --git a/libebl/eblmachineflagname.c b/libebl/eblmachineflagname.c
index 5f440776..02e11c65 100644
--- a/libebl/eblmachineflagname.c
+++ b/libebl/eblmachineflagname.c
@@ -46,8 +46,9 @@ ebl_machine_flag_name (Ebl *ebl, Elf64_Word flags, char *buf, size_t len)
res = "";
else
{
+ Elf64_Word orig_flags = flags;
char *cp = buf;
- int first = 1;
+ bool first = true;
const char *machstr;
size_t machstrlen;
@@ -55,12 +56,13 @@ ebl_machine_flag_name (Ebl *ebl, Elf64_Word flags, char *buf, size_t len)
{
if (! first)
{
- if (cp + 1 >= buf + len)
+ if (cp + 2 >= buf + len)
break;
*cp++ = ',';
+ *cp++ = ' ';
}
- machstr = ebl != NULL ? ebl->machine_flag_name (&flags) : NULL;
+ machstr = ebl != NULL ? ebl->machine_flag_name (orig_flags, &flags) : NULL;
if (machstr == NULL)
{
/* No more known flag. */
@@ -76,8 +78,9 @@ ebl_machine_flag_name (Ebl *ebl, Elf64_Word flags, char *buf, size_t len)
}
cp = mempcpy (cp, machstr, machstrlen);
+ --cp;
- first = 0;
+ first = false;
}
while (flags != 0);
diff --git a/libebl/eblobjnote.c b/libebl/eblobjnote.c
index 36efe275..5a7c5c62 100644
--- a/libebl/eblobjnote.c
+++ b/libebl/eblobjnote.c
@@ -288,6 +288,10 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
if (descsz == 0 && type == NT_VERSION)
return;
+ if (strcmp ("FDO", name) == 0 && type == NT_FDO_PACKAGING_METADATA
+ && descsz > 0 && desc[descsz - 1] == '\0')
+ printf(" Packaging Metadata: %.*s\n", (int) descsz, desc);
+
/* Everything else should have the "GNU" owner name. */
if (strcmp ("GNU", name) != 0)
return;
diff --git a/libebl/eblobjnotetypename.c b/libebl/eblobjnotetypename.c
index 4662906d..473a1f2f 100644
--- a/libebl/eblobjnotetypename.c
+++ b/libebl/eblobjnotetypename.c
@@ -101,6 +101,9 @@ ebl_object_note_type_name (Ebl *ebl, const char *name, uint32_t type,
return buf;
}
+ if (strcmp (name, "FDO") == 0 && type == NT_FDO_PACKAGING_METADATA)
+ return "FDO_PACKAGING_METADATA";
+
if (strcmp (name, "GNU") != 0)
{
/* NT_VERSION is special, all data is in the name. */
diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
index 0c07296c..02f80653 100644
--- a/libebl/eblopenbackend.c
+++ b/libebl/eblopenbackend.c
@@ -31,7 +31,6 @@
#endif
#include <assert.h>
-#include <dlfcn.h>
#include <libelfP.h>
#include <dwarf.h>
#include <stdlib.h>
@@ -169,7 +168,7 @@ static const char *default_section_type_name (int ignore, char *buf,
size_t len);
static const char *default_section_name (int ignore, int ignore2, char *buf,
size_t len);
-static const char *default_machine_flag_name (Elf64_Word *ignore);
+static const char *default_machine_flag_name (Elf64_Word orig, Elf64_Word *ignore);
static bool default_machine_flag_check (Elf64_Word flags);
static bool default_machine_section_flag_check (GElf_Xword flags);
static const char *default_symbol_type_name (int ignore, char *buf,
@@ -450,7 +449,8 @@ default_section_name (int ignore __attribute__ ((unused)),
}
static const char *
-default_machine_flag_name (Elf64_Word *ignore __attribute__ ((unused)))
+default_machine_flag_name (Elf64_Word orig __attribute__ ((unused)),
+ Elf64_Word *ignore __attribute__ ((unused)))
{
return NULL;
}
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
index fa1c2c9f..c408ed97 100644
--- a/libebl/libeblP.h
+++ b/libebl/libeblP.h
@@ -32,7 +32,6 @@
#include <gelf.h>
#include <libasm.h>
#include <libebl.h>
-#include <libintl.h>
/* Backend handle. */
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 041da9b1..8107c71e 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,113 @@
+2022-10-28 Mark Wielaard <mark@klomp.org>
+
+ * elf.h: Update from glibc.
+
+2022-10-21 Yonggang Luo <luoyonggang@gmail.com>
+
+ * libelf_crc32.c: Remove LIB_SYSTEM_H define.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * elf32_checksum.c: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
+ * elf32_xlatetof.c: Likewise.
+ * elf_getarsym.c: Likewise.
+
+2022-10-16 Yonggang Luo <luoyonggang@gmail.com>
+
+ * common.h: Remove ar.h, byteswap.h and endian.h.
+ * elf32_checksum.c: Remove endian.h.
+ * elf32_getphdr.c: Remove unistd.h and system.h.
+ * elf32_getshdr.c: Remove unistd.h.h and system.h.
+ * elf32_updatefile.c: Remove unistd.h, sys/mman.h and system.h.
+ * elf32_updatenull.c: Remove endian.h and system.h.
+ * elf32_xlatetof.c: Remove endian.h.
+ * elf32_xlatetom.c: Likewise.
+ * elf_begin.c: Remove unistd.h, sys/mman.h and system.h.
+ * elf_cntl.c: Remove unistd.h.
+ * elf_compress.c: Remove system.h and unistd.h.
+ * elf_end.c: Remove sys.mman.h.
+ * elf_getarsym.c: Remove byteswap.h, endian.h, unistd.h and
+ system.h.
+ * elf_getdata.c: Remove unistd.h and system.h.
+ * elf_getdata_rawchunk.c: Remove unistd.h and system.h.
+ * elf_getshdrstrndx.c: Likewise.
+ * elf_readall.c: Likewise.
+ * elf_update.c: Remove unistd.h and sys/mman.h.
+ * gelf_xlate.c: Remove byteswap.h.
+ * libelfP.h: Add system.h.
+ * nlist.c: Remove unistd.h.
+
+2022-08-28 Mark Wielaard <mark@klomp.org>
+
+ * elf_begin.c (__libelf_next_arhdr_wrlock): Add OCT_FIELD macro,
+ like INT_FIELD but use strtol with octal base 8. Use for ar_mode.
+
+2022-08-08 Andreas Schwab <schwab@suse.de>
+
+ * elf.h: Update from glibc.
+
+2022-04-24 Mark Wielaard <mark@klomp.org>
+
+ * elf_update.c (write_file): Check HAVE_MREMAP.
+
+2022-04-01 Mark Wielaard <mark@klomp.org>
+
+ * libelfP.h (struct Elf_Data_Chunk): Add an int64_t offset field.
+ * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check whether the
+ requested chunk, offset, size and type, was already handed out.
+ Set new Elf_Data_Chunk offset field.
+
+2022-03-29 Mark Wielaard <mark@klomp.org>
+
+ * gelf_xlate.c (START): Define and use sz variable.
+ (END): Use sz variable to decide whether to do a memmove.
+
+2022-03-24 Mark Wielaard <mark@klomp.org>
+
+ * elf.h: Update from glibc.
+
+2022-03-22 Mark Wielaard <mark@klomp.org>
+
+ * elf_getdata.c (__libelf_type_aligns): ELF_T_GNUHASH has different
+ alignment for ELFCLASS32 and ELFCLASS64.
+
+2022-03-20 Mark Wielaard <mark@klomp.org>
+
+ * version_xlate.h (elf_cvt_Verdef): Make sure aux_offset and
+ def_offset don't overflow.
+ (elf_cvt_Verneed): Make sure aux_offset and need_offset don't
+ overflow.
+
+2022-03-18 Mark Wielaard <mark@klomp.org>
+
+ * version_xlate.h (elf_cvt_Verdef): Check alignment of def_offset
+ and aux_offset.
+ (elf_cvt_Verneed): Check alignment of need_offset and aux_offset.
+
+2022-03-17 Mark Wielaard <mark@klomp.org>
+
+ * elf_begin.c (read_long_names): Check ar_size starts with a digit.
+
+2022-03-17 Mark Wielaard <mark@klomp.org>
+
+ * elf_begin.c (get_shnum): Take offset into account for Shdr
+ alignment check.
+
+2021-12-19 Mark Wielaard <mark@klomp.org>
+
+ * elf_begin.c (file_read_elf): Cast ehdr to uintptr_t before e_shoff
+ alignment check. Only set shdr state when scncnt is larger than zero.
+
+2021-12-16 Mark Wielaard <mark@klomp.org>
+
+ * libelfP.h (NOTE_ALIGN4): And with negative unsigned long.
+ (NOTE_ALIGN8): Likewise.
+
+2021-12-15 Mark Wielaard <mark@klomp.org>
+
+ * elf_begin.c (get_shnum): Use offsetof to get field of unaligned
+ struct.
+
2021-09-06 Dmitry V. Levin <ldv@altlinux.org>
* common.h (allocate_elf): Remove cast of calloc return value.
diff --git a/libelf/common.h b/libelf/common.h
index 3718b3fd..9b2a856d 100644
--- a/libelf/common.h
+++ b/libelf/common.h
@@ -30,9 +30,6 @@
#ifndef _COMMON_H
#define _COMMON_H 1
-#include <ar.h>
-#include <byteswap.h>
-#include <endian.h>
#include <stdlib.h>
#include <string.h>
@@ -154,7 +151,7 @@ libelf_release_all (Elf *elf)
: bswap_64 (Var))))
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
# define MY_ELFDATA ELFDATA2LSB
#else
# define MY_ELFDATA ELFDATA2MSB
diff --git a/libelf/elf.h b/libelf/elf.h
index 8e3e618f..f51300bc 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -1,5 +1,5 @@
/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2020 Free Software Foundation, Inc.
+ Copyright (C) 1995-2022 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -336,7 +336,8 @@ typedef struct
#define EM_BA2 202 /* Beyond BA2 */
#define EM_XCORE 203 /* XMOS xCORE */
#define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) */
- /* reserved 205-209 */
+#define EM_INTELGT 205 /* Intel Graphics Technology */
+ /* reserved 206-209 */
#define EM_KM32 210 /* KM211 KM32 */
#define EM_KMX32 211 /* KM211 KMX32 */
#define EM_EMX16 212 /* KM211 KMX16 */
@@ -357,8 +358,9 @@ typedef struct
#define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */
#define EM_CSKY 252 /* C-SKY */
+#define EM_LOONGARCH 258 /* LoongArch */
-#define EM_NUM 253
+#define EM_NUM 259
/* Old spellings/synonyms. */
@@ -442,7 +444,8 @@ typedef struct
#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */
#define SHT_GROUP 17 /* Section group */
#define SHT_SYMTAB_SHNDX 18 /* Extended section indices */
-#define SHT_NUM 19 /* Number of defined types. */
+#define SHT_RELR 19 /* RELR relative relocations */
+#define SHT_NUM 20 /* Number of defined types. */
#define SHT_LOOS 0x60000000 /* Start OS-specific. */
#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes. */
#define SHT_GNU_HASH 0x6ffffff6 /* GNU-style hash table. */
@@ -503,6 +506,7 @@ typedef struct
/* Legal values for ch_type (compression algorithm). */
#define ELFCOMPRESS_ZLIB 1 /* ZLIB/DEFLATE algorithm. */
+#define ELFCOMPRESS_ZSTD 2 /* Zstandard 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. */
@@ -661,6 +665,11 @@ typedef struct
Elf64_Sxword r_addend; /* Addend */
} Elf64_Rela;
+/* RELR relocation table entry */
+
+typedef Elf32_Word Elf32_Relr;
+typedef Elf64_Xword Elf64_Relr;
+
/* How to extract and insert information held in the r_info field. */
#define ELF32_R_SYM(val) ((val) >> 8)
@@ -800,6 +809,7 @@ typedef struct
#define NT_S390_GS_BC 0x30c /* s390 guarded storage
broadcast control block. */
#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation. */
+#define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data. */
#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
#define NT_ARM_TLS 0x401 /* ARM TLS register */
#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
@@ -813,10 +823,23 @@ typedef struct
address keys. */
#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication
generic key. */
+#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* AArch64 tagged address
+ control. */
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* AArch64 pointer authentication
+ enabled keys. */
#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */
#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */
#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */
#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers. */
+#define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers. */
+#define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and
+ status registers. */
+#define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD
+ Extension registers. */
+#define NT_LOONGARCH_LASX 0xa03 /* LoongArch Loongson Advanced
+ SIMD Extension registers. */
+#define NT_LOONGARCH_LBT 0xa04 /* LoongArch Loongson Binary
+ Translation registers. */
/* Legal values for the note segment descriptor types for object files. */
@@ -882,7 +905,10 @@ typedef struct
#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
#define DT_SYMTAB_SHNDX 34 /* Address of SYMTAB_SHNDX section */
-#define DT_NUM 35 /* Number used */
+#define DT_RELRSZ 35 /* Total size of RELR relative relocations */
+#define DT_RELR 36 /* Address of RELR relative relocations */
+#define DT_RELRENT 37 /* Size of one RELR relative relocaction */
+#define DT_NUM 38 /* Number used */
#define DT_LOOS 0x6000000d /* Start of OS-specific */
#define DT_HIOS 0x6ffff000 /* End of OS-specific */
#define DT_LOPROC 0x70000000 /* Start of processor-specific */
@@ -1039,7 +1065,8 @@ typedef struct
/* Legal values for vd_flags (version information flags). */
#define VER_FLG_BASE 0x1 /* Version definition of file itself */
-#define VER_FLG_WEAK 0x2 /* Weak version identifier */
+#define VER_FLG_WEAK 0x2 /* Weak version identifier. Also
+ used by vna_flags below. */
/* Versym symbol index values. */
#define VER_NDX_LOCAL 0 /* Symbol is local. */
@@ -1117,10 +1144,6 @@ typedef struct
} Elf64_Vernaux;
-/* Legal values for vna_flags. */
-#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-
-
/* Auxiliary vector. */
/* This vector is normally only used by the program interpreter. The
@@ -1226,8 +1249,7 @@ typedef struct
#define AT_L3_CACHESIZE 46
#define AT_L3_CACHEGEOMETRY 47
-#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery
- (AArch64). */
+#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery */
/* Note section contents. Each entry in the note section begins with
a header of a fixed form. */
@@ -1254,6 +1276,8 @@ typedef struct
/* Note entries for GNU systems have this name. */
#define ELF_NOTE_GNU "GNU"
+/* Note entries for freedesktop.org have this name. */
+#define ELF_NOTE_FDO "FDO"
/* Defined types of notes for Solaris. */
@@ -1297,6 +1321,10 @@ typedef struct
/* Program property. */
#define NT_GNU_PROPERTY_TYPE_0 5
+/* Packaging metadata as defined on
+ https://systemd.io/COREDUMP_PACKAGE_METADATA/ */
+#define NT_FDO_PACKAGING_METADATA 0xcafe1a7e
+
/* Note section name of program property. */
#define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property"
@@ -1307,6 +1335,23 @@ typedef struct
/* No copy relocation on protected data symbol. */
#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2
+/* A 4-byte unsigned integer property: A bit is set if it is set in all
+ relocatable inputs. */
+#define GNU_PROPERTY_UINT32_AND_LO 0xb0000000
+#define GNU_PROPERTY_UINT32_AND_HI 0xb0007fff
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in any
+ relocatable inputs. */
+#define GNU_PROPERTY_UINT32_OR_LO 0xb0008000
+#define GNU_PROPERTY_UINT32_OR_HI 0xb000ffff
+
+/* The needed properties by the object file. */
+#define GNU_PROPERTY_1_NEEDED GNU_PROPERTY_UINT32_OR_LO
+
+/* Set if the object file requires canonical function pointers and
+ cannot be used with copy relocation. */
+#define GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS (1U << 0)
+
/* Processor-specific semantics, lo */
#define GNU_PROPERTY_LOPROC 0xc0000000
/* Processor-specific semantics, hi */
@@ -1324,31 +1369,26 @@ typedef struct
/* The x86 instruction sets indicated by the corresponding bits are
used in program. Their support in the hardware is optional. */
-#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
+#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
/* The x86 instruction sets indicated by the corresponding bits are
used in program and they must be supported by the hardware. */
-#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
+#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
/* X86 processor-specific features used in program. */
#define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002
-#define GNU_PROPERTY_X86_ISA_1_486 (1U << 0)
-#define GNU_PROPERTY_X86_ISA_1_586 (1U << 1)
-#define GNU_PROPERTY_X86_ISA_1_686 (1U << 2)
-#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 3)
-#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 4)
-#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 5)
-#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 6)
-#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 7)
-#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 8)
-#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 9)
-#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 10)
-#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 11)
-#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 12)
-#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 13)
-#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 14)
-#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 15)
-#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 16)
-#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 17)
+/* GNU_PROPERTY_X86_ISA_1_BASELINE: CMOV, CX8 (cmpxchg8b), FPU (fld),
+ MMX, OSFXSR (fxsave), SCE (syscall), SSE and SSE2. */
+#define GNU_PROPERTY_X86_ISA_1_BASELINE (1U << 0)
+/* GNU_PROPERTY_X86_ISA_1_V2: GNU_PROPERTY_X86_ISA_1_BASELINE,
+ CMPXCHG16B (cmpxchg16b), LAHF-SAHF (lahf), POPCNT (popcnt), SSE3,
+ SSSE3, SSE4.1 and SSE4.2. */
+#define GNU_PROPERTY_X86_ISA_1_V2 (1U << 1)
+/* GNU_PROPERTY_X86_ISA_1_V3: GNU_PROPERTY_X86_ISA_1_V2, AVX, AVX2, BMI1,
+ BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE. */
+#define GNU_PROPERTY_X86_ISA_1_V3 (1U << 2)
+/* GNU_PROPERTY_X86_ISA_1_V4: GNU_PROPERTY_X86_ISA_1_V3, AVX512F,
+ AVX512BW, AVX512CD, AVX512DQ and AVX512VL. */
+#define GNU_PROPERTY_X86_ISA_1_V4 (1U << 3)
/* This indicates that all executable sections are compatible with
IBT. */
@@ -2871,6 +2911,9 @@ enum
#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */
#define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */
+/* MTE memory tag segment type. */
+#define PT_AARCH64_MEMTAG_MTE (PT_LOPROC + 2)
+
/* AArch64 specific values for the Dyn d_tag field. */
#define DT_AARCH64_BTI_PLT (DT_LOPROC + 1)
#define DT_AARCH64_PAC_PLT (DT_LOPROC + 3)
@@ -3896,6 +3939,8 @@ enum
#define EF_RISCV_FLOAT_ABI_SINGLE 0x0002
#define EF_RISCV_FLOAT_ABI_DOUBLE 0x0004
#define EF_RISCV_FLOAT_ABI_QUAD 0x0006
+#define EF_RISCV_RVE 0x0008
+#define EF_RISCV_TSO 0x0010
/* RISC-V relocations. */
#define R_RISCV_NONE 0
@@ -3956,6 +4001,19 @@ enum
#define R_RISCV_NUM 59
+/* RISC-V specific values for the st_other field. */
+#define STO_RISCV_VARIANT_CC 0x80 /* Function uses variant calling
+ convention */
+
+/* RISC-V specific values for the sh_type field. */
+#define SHT_RISCV_ATTRIBUTES (SHT_LOPROC + 3)
+
+/* RISC-V specific values for the p_type field. */
+#define PT_RISCV_ATTRIBUTES (PT_LOPROC + 3)
+
+/* RISC-V specific values for the d_tag field. */
+#define DT_RISCV_VARIANT_CC (DT_LOPROC + 1)
+
/* BPF specific declarations. */
#define R_BPF_NONE 0 /* No reloc */
@@ -4034,6 +4092,71 @@ enum
#define R_NDS32_TLS_TPOFF 102
#define R_NDS32_TLS_DESC 119
+/* LoongArch ELF Flags */
+#define EF_LARCH_ABI 0x07
+#define EF_LARCH_ABI_LP64D 0x03
+
+/* LoongArch specific dynamic relocations */
+#define R_LARCH_NONE 0
+#define R_LARCH_32 1
+#define R_LARCH_64 2
+#define R_LARCH_RELATIVE 3
+#define R_LARCH_COPY 4
+#define R_LARCH_JUMP_SLOT 5
+#define R_LARCH_TLS_DTPMOD32 6
+#define R_LARCH_TLS_DTPMOD64 7
+#define R_LARCH_TLS_DTPREL32 8
+#define R_LARCH_TLS_DTPREL64 9
+#define R_LARCH_TLS_TPREL32 10
+#define R_LARCH_TLS_TPREL64 11
+#define R_LARCH_IRELATIVE 12
+
+/* Reserved for future relocs that the dynamic linker must understand. */
+
+/* used by the static linker for relocating .text. */
+#define R_LARCH_MARK_LA 20
+#define R_LARCH_MARK_PCREL 21
+#define R_LARCH_SOP_PUSH_PCREL 22
+#define R_LARCH_SOP_PUSH_ABSOLUTE 23
+#define R_LARCH_SOP_PUSH_DUP 24
+#define R_LARCH_SOP_PUSH_GPREL 25
+#define R_LARCH_SOP_PUSH_TLS_TPREL 26
+#define R_LARCH_SOP_PUSH_TLS_GOT 27
+#define R_LARCH_SOP_PUSH_TLS_GD 28
+#define R_LARCH_SOP_PUSH_PLT_PCREL 29
+#define R_LARCH_SOP_ASSERT 30
+#define R_LARCH_SOP_NOT 31
+#define R_LARCH_SOP_SUB 32
+#define R_LARCH_SOP_SL 33
+#define R_LARCH_SOP_SR 34
+#define R_LARCH_SOP_ADD 35
+#define R_LARCH_SOP_AND 36
+#define R_LARCH_SOP_IF_ELSE 37
+#define R_LARCH_SOP_POP_32_S_10_5 38
+#define R_LARCH_SOP_POP_32_U_10_12 39
+#define R_LARCH_SOP_POP_32_S_10_12 40
+#define R_LARCH_SOP_POP_32_S_10_16 41
+#define R_LARCH_SOP_POP_32_S_10_16_S2 42
+#define R_LARCH_SOP_POP_32_S_5_20 43
+#define R_LARCH_SOP_POP_32_S_0_5_10_16_S2 44
+#define R_LARCH_SOP_POP_32_S_0_10_10_16_S2 45
+#define R_LARCH_SOP_POP_32_U 46
+
+/* used by the static linker for relocating non .text. */
+#define R_LARCH_ADD8 47
+#define R_LARCH_ADD16 48
+#define R_LARCH_ADD24 49
+#define R_LARCH_ADD32 50
+#define R_LARCH_ADD64 51
+#define R_LARCH_SUB8 52
+#define R_LARCH_SUB16 53
+#define R_LARCH_SUB24 54
+#define R_LARCH_SUB32 55
+#define R_LARCH_SUB64 56
+#define R_LARCH_GNU_VTINHERIT 57
+#define R_LARCH_GNU_VTENTRY 58
+
+
/* ARCompact/ARCv2 specific relocs. */
#define R_ARC_NONE 0x0
#define R_ARC_8 0x1
@@ -4102,4 +4225,41 @@ enum
#define R_ARC_TLS_LE_S9 0x4a
#define R_ARC_TLS_LE_32 0x4b
+/* OpenRISC 1000 specific relocs. */
+#define R_OR1K_NONE 0
+#define R_OR1K_32 1
+#define R_OR1K_16 2
+#define R_OR1K_8 3
+#define R_OR1K_LO_16_IN_INSN 4
+#define R_OR1K_HI_16_IN_INSN 5
+#define R_OR1K_INSN_REL_26 6
+#define R_OR1K_GNU_VTENTRY 7
+#define R_OR1K_GNU_VTINHERIT 8
+#define R_OR1K_32_PCREL 9
+#define R_OR1K_16_PCREL 10
+#define R_OR1K_8_PCREL 11
+#define R_OR1K_GOTPC_HI16 12
+#define R_OR1K_GOTPC_LO16 13
+#define R_OR1K_GOT16 14
+#define R_OR1K_PLT26 15
+#define R_OR1K_GOTOFF_HI16 16
+#define R_OR1K_GOTOFF_LO16 17
+#define R_OR1K_COPY 18
+#define R_OR1K_GLOB_DAT 19
+#define R_OR1K_JMP_SLOT 20
+#define R_OR1K_RELATIVE 21
+#define R_OR1K_TLS_GD_HI16 22
+#define R_OR1K_TLS_GD_LO16 23
+#define R_OR1K_TLS_LDM_HI16 24
+#define R_OR1K_TLS_LDM_LO16 25
+#define R_OR1K_TLS_LDO_HI16 26
+#define R_OR1K_TLS_LDO_LO16 27
+#define R_OR1K_TLS_IE_HI16 28
+#define R_OR1K_TLS_IE_LO16 29
+#define R_OR1K_TLS_LE_HI16 30
+#define R_OR1K_TLS_LE_LO16 31
+#define R_OR1K_TLS_TPOFF 32
+#define R_OR1K_TLS_DTPOFF 33
+#define R_OR1K_TLS_DTPMOD 34
+
#endif /* elf.h */
diff --git a/libelf/elf32_checksum.c b/libelf/elf32_checksum.c
index c5f27bbe..a47b307d 100644
--- a/libelf/elf32_checksum.c
+++ b/libelf/elf32_checksum.c
@@ -32,7 +32,6 @@
#endif
#include <assert.h>
-#include <endian.h>
#include <stdbool.h>
#include <stddef.h>
#include <string.h>
@@ -74,9 +73,9 @@ elfw2(LIBELFBITS,checksum) (Elf *elf)
is the same. */
ident = elf->state.ELFW(elf,LIBELFBITS).ehdr->e_ident;
same_byte_order = ((ident[EI_DATA] == ELFDATA2LSB
- && __BYTE_ORDER == __LITTLE_ENDIAN)
+ && BYTE_ORDER == LITTLE_ENDIAN)
|| (ident[EI_DATA] == ELFDATA2MSB
- && __BYTE_ORDER == __BIG_ENDIAN));
+ && BYTE_ORDER == BIG_ENDIAN));
/* If we don't have native byte order, we will likely need to
convert the data with xlate functions. We do it upfront instead
diff --git a/libelf/elf32_getphdr.c b/libelf/elf32_getphdr.c
index 99b4ac09..4bfca24b 100644
--- a/libelf/elf32_getphdr.c
+++ b/libelf/elf32_getphdr.c
@@ -34,10 +34,8 @@
#include <errno.h>
#include <stdbool.h>
#include <stdlib.h>
-#include <unistd.h>
#include <assert.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
diff --git a/libelf/elf32_getshdr.c b/libelf/elf32_getshdr.c
index 237d9122..fc696302 100644
--- a/libelf/elf32_getshdr.c
+++ b/libelf/elf32_getshdr.c
@@ -34,9 +34,7 @@
#include <assert.h>
#include <errno.h>
#include <stdbool.h>
-#include <unistd.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
diff --git a/libelf/elf32_updatefile.c b/libelf/elf32_updatefile.c
index 1ff58900..46afa1f4 100644
--- a/libelf/elf32_updatefile.c
+++ b/libelf/elf32_updatefile.c
@@ -37,10 +37,7 @@
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <system.h>
#include "libelfP.h"
diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c
index d0d4d1eb..6c06e5e4 100644
--- a/libelf/elf32_updatenull.c
+++ b/libelf/elf32_updatenull.c
@@ -32,12 +32,10 @@
#endif
#include <assert.h>
-#include <endian.h>
#include <libelf.h>
#include <stdbool.h>
#include <string.h>
-#include <system.h>
#include "libelfP.h"
#include "elf-knowledge.h"
diff --git a/libelf/elf32_xlatetof.c b/libelf/elf32_xlatetof.c
index 082d833f..ab857409 100644
--- a/libelf/elf32_xlatetof.c
+++ b/libelf/elf32_xlatetof.c
@@ -32,7 +32,6 @@
#endif
#include <assert.h>
-#include <endian.h>
#include <string.h>
#include "libelfP.h"
@@ -83,8 +82,8 @@ elfw2(LIBELFBITS, xlatetof) (Elf_Data *dest, const Elf_Data *src,
and vice versa since the function only has to copy and/or
change the byte order.
*/
- if ((__BYTE_ORDER == __LITTLE_ENDIAN && encode == ELFDATA2LSB)
- || (__BYTE_ORDER == __BIG_ENDIAN && encode == ELFDATA2MSB))
+ if ((BYTE_ORDER == LITTLE_ENDIAN && encode == ELFDATA2LSB)
+ || (BYTE_ORDER == BIG_ENDIAN && encode == ELFDATA2MSB))
{
/* We simply have to copy since the byte order is the same. */
if (src->d_buf != dest->d_buf)
diff --git a/libelf/elf32_xlatetom.c b/libelf/elf32_xlatetom.c
index cb0bb8d5..fa3dc9a7 100644
--- a/libelf/elf32_xlatetom.c
+++ b/libelf/elf32_xlatetom.c
@@ -32,7 +32,6 @@
#endif
#include <assert.h>
-#include <endian.h>
#include <string.h>
#include "libelfP.h"
diff --git a/libelf/elf_begin.c b/libelf/elf_begin.c
index 93d1e12f..fe8c640a 100644
--- a/libelf/elf_begin.c
+++ b/libelf/elf_begin.c
@@ -1,5 +1,6 @@
/* Create descriptor for processing file.
Copyright (C) 1998-2010, 2012, 2014, 2015, 2016 Red Hat, Inc.
+ Copyright (C) 2021, 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -38,11 +39,8 @@
#include <stdbool.h>
#include <stddef.h>
#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
#include <sys/stat.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
@@ -157,7 +155,8 @@ get_shnum (void *map_address, unsigned char *e_ident, int fildes,
if (likely (map_address != NULL) && e_ident[EI_DATA] == MY_ELFDATA
&& (ALLOW_UNALIGNED
- || (((size_t) ((char *) map_address + ehdr.e32->e_shoff))
+ || (((size_t) ((char *) (map_address + ehdr.e32->e_shoff
+ + offset)))
& (__alignof__ (Elf32_Shdr) - 1)) == 0))
/* We can directly access the memory. */
result = ((Elf32_Shdr *) ((char *) map_address + ehdr.e32->e_shoff
@@ -170,9 +169,10 @@ get_shnum (void *map_address, unsigned char *e_ident, int fildes,
if (likely (map_address != NULL))
/* gcc will optimize the memcpy to a simple memory
access while taking care of alignment issues. */
- memcpy (&size, &((Elf32_Shdr *) ((char *) map_address
- + ehdr.e32->e_shoff
- + offset))->sh_size,
+ memcpy (&size, ((char *) map_address
+ + ehdr.e32->e_shoff
+ + offset
+ + offsetof (Elf32_Shdr, sh_size)),
sizeof (Elf32_Word));
else
if (unlikely ((r = pread_retry (fildes, &size,
@@ -216,7 +216,8 @@ get_shnum (void *map_address, unsigned char *e_ident, int fildes,
Elf64_Xword size;
if (likely (map_address != NULL) && e_ident[EI_DATA] == MY_ELFDATA
&& (ALLOW_UNALIGNED
- || (((size_t) ((char *) map_address + ehdr.e64->e_shoff))
+ || (((size_t) ((char *) (map_address + ehdr.e64->e_shoff
+ + offset)))
& (__alignof__ (Elf64_Shdr) - 1)) == 0))
/* We can directly access the memory. */
size = ((Elf64_Shdr *) ((char *) map_address + ehdr.e64->e_shoff
@@ -227,9 +228,10 @@ get_shnum (void *map_address, unsigned char *e_ident, int fildes,
if (likely (map_address != NULL))
/* gcc will optimize the memcpy to a simple memory
access while taking care of alignment issues. */
- memcpy (&size, &((Elf64_Shdr *) ((char *) map_address
- + ehdr.e64->e_shoff
- + offset))->sh_size,
+ memcpy (&size, ((char *) map_address
+ + ehdr.e64->e_shoff
+ + offset
+ + offsetof (Elf64_Shdr, sh_size)),
sizeof (Elf64_Xword));
else
if (unlikely ((r = pread_retry (fildes, &size,
@@ -380,7 +382,7 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident,
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)
+ || ((((uintptr_t) ehdr + e_shoff)
& (__alignof__ (Elf32_Shdr) - 1)) == 0)))
{
if (unlikely (scncnt > 0 && e_shoff >= maxsize)
@@ -392,8 +394,10 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident,
__libelf_seterrno (ELF_E_INVALID_ELF);
return NULL;
}
- elf->state.elf32.shdr
- = (Elf32_Shdr *) ((char *) ehdr + e_shoff);
+
+ if (scncnt > 0)
+ elf->state.elf32.shdr
+ = (Elf32_Shdr *) ((char *) ehdr + e_shoff);
for (size_t cnt = 0; cnt < scncnt; ++cnt)
{
@@ -482,15 +486,17 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident,
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)
+ || ((((uintptr_t) ehdr + e_shoff)
& (__alignof__ (Elf64_Shdr) - 1)) == 0)))
{
if (unlikely (scncnt > 0 && e_shoff >= maxsize)
|| unlikely (maxsize - e_shoff
< scncnt * sizeof (Elf64_Shdr)))
goto free_and_out;
- elf->state.elf64.shdr
- = (Elf64_Shdr *) ((char *) ehdr + e_shoff);
+
+ if (scncnt > 0)
+ elf->state.elf64.shdr
+ = (Elf64_Shdr *) ((char *) ehdr + e_shoff);
for (size_t cnt = 0; cnt < scncnt; ++cnt)
{
@@ -756,6 +762,11 @@ read_long_names (Elf *elf)
*((char *) mempcpy (buf, hdr->ar_size, sizeof (hdr->ar_size))) = '\0';
string = buf;
}
+
+ /* atol expects to see at least one digit.
+ It also cannot be negative (-). */
+ if (!isdigit(string[0]))
+ return NULL;
len = atol (string);
if (memcmp (hdr->ar_name, "// ", 16) == 0)
@@ -963,7 +974,8 @@ __libelf_next_arhdr_wrlock (Elf *elf)
atoll depending on the size of the types. We are also prepared
for the case where the whole field in the `struct ar_hdr' is
filled in which case we cannot simply use atol/l but instead have
- to create a temporary copy. */
+ to create a temporary copy. Note that all fields use decimal
+ encoding, except ar_mode which uses octal. */
#define INT_FIELD(FIELD) \
do \
@@ -983,10 +995,30 @@ __libelf_next_arhdr_wrlock (Elf *elf)
} \
while (0)
+#define OCT_FIELD(FIELD) \
+ do \
+ { \
+ char buf[sizeof (ar_hdr->FIELD) + 1]; \
+ const char *string = ar_hdr->FIELD; \
+ if (ar_hdr->FIELD[sizeof (ar_hdr->FIELD) - 1] != ' ') \
+ { \
+ *((char *) mempcpy (buf, ar_hdr->FIELD, sizeof (ar_hdr->FIELD))) \
+ = '\0'; \
+ string = buf; \
+ } \
+ if (sizeof (elf_ar_hdr->FIELD) <= sizeof (long int)) \
+ elf_ar_hdr->FIELD \
+ = (__typeof (elf_ar_hdr->FIELD)) strtol (string, NULL, 8); \
+ else \
+ elf_ar_hdr->FIELD \
+ = (__typeof (elf_ar_hdr->FIELD)) strtoll (string, NULL, 8); \
+ } \
+ while (0)
+
INT_FIELD (ar_date);
INT_FIELD (ar_uid);
INT_FIELD (ar_gid);
- INT_FIELD (ar_mode);
+ OCT_FIELD (ar_mode);
INT_FIELD (ar_size);
if (elf_ar_hdr->ar_size < 0)
diff --git a/libelf/elf_cntl.c b/libelf/elf_cntl.c
index fd681789..04aa9132 100644
--- a/libelf/elf_cntl.c
+++ b/libelf/elf_cntl.c
@@ -31,8 +31,6 @@
# include <config.h>
#endif
-#include <unistd.h>
-
#include "libelfP.h"
diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c
index df0144e8..d7f53af2 100644
--- a/libelf/elf_compress.c
+++ b/libelf/elf_compress.c
@@ -31,14 +31,12 @@
#endif
#include <libelf.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
#include <zlib.h>
/* Cleanup and return result. Don't leak memory. */
diff --git a/libelf/elf_end.c b/libelf/elf_end.c
index 160f0b88..5c451f36 100644
--- a/libelf/elf_end.c
+++ b/libelf/elf_end.c
@@ -34,7 +34,6 @@
#include <assert.h>
#include <stddef.h>
#include <stdlib.h>
-#include <sys/mman.h>
#include "libelfP.h"
diff --git a/libelf/elf_error.c b/libelf/elf_error.c
index 5364e685..e596108d 100644
--- a/libelf/elf_error.c
+++ b/libelf/elf_error.c
@@ -32,7 +32,6 @@
#endif
#include <assert.h>
-#include <libintl.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
diff --git a/libelf/elf_getarsym.c b/libelf/elf_getarsym.c
index 05ebf6a9..281f0c1c 100644
--- a/libelf/elf_getarsym.c
+++ b/libelf/elf_getarsym.c
@@ -32,16 +32,12 @@
#endif
#include <assert.h>
-#include <byteswap.h>
-#include <endian.h>
#include <errno.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-#include <system.h>
#include <dl-hash.h>
#include "libelfP.h"
@@ -65,7 +61,7 @@ read_number_entries (uint64_t *nump, Elf *elf, size_t *offp, bool index64_p)
*offp += w;
- if (__BYTE_ORDER == __LITTLE_ENDIAN)
+ if (BYTE_ORDER == LITTLE_ENDIAN)
*nump = index64_p ? bswap_64 (u.ret64) : bswap_32 (u.ret32);
else
*nump = index64_p ? u.ret64 : u.ret32;
@@ -270,7 +266,7 @@ elf_getarsym (Elf *elf, size_t *ptr)
if (index64_p)
{
uint64_t tmp = (*u64)[cnt];
- if (__BYTE_ORDER == __LITTLE_ENDIAN)
+ if (BYTE_ORDER == LITTLE_ENDIAN)
tmp = bswap_64 (tmp);
arsym[cnt].as_off = tmp;
@@ -290,7 +286,7 @@ elf_getarsym (Elf *elf, size_t *ptr)
goto out;
}
}
- else if (__BYTE_ORDER == __LITTLE_ENDIAN)
+ else if (BYTE_ORDER == LITTLE_ENDIAN)
arsym[cnt].as_off = bswap_32 ((*u32)[cnt]);
else
arsym[cnt].as_off = (*u32)[cnt];
diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c
index 475c6ded..5ebd270f 100644
--- a/libelf/elf_getdata.c
+++ b/libelf/elf_getdata.c
@@ -1,5 +1,6 @@
/* Return the next data element from the section after possibly converting it.
Copyright (C) 1998-2005, 2006, 2007, 2015, 2016 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -34,10 +35,8 @@
#include <errno.h>
#include <stddef.h>
#include <string.h>
-#include <unistd.h>
#include "libelfP.h"
-#include <system.h>
#include "common.h"
#include "elf-knowledge.h"
@@ -77,7 +76,6 @@ static const Elf_Type shtype_map[TYPEIDX (SHT_HISUNW) + 1] =
const uint_fast8_t __libelf_type_aligns[ELFCLASSNUM - 1][ELF_T_NUM] =
{
# define TYPE_ALIGNS(Bits) \
- { \
[ELF_T_ADDR] = __alignof__ (ElfW2(Bits,Addr)), \
[ELF_T_EHDR] = __alignof__ (ElfW2(Bits,Ehdr)), \
[ELF_T_HALF] = __alignof__ (ElfW2(Bits,Half)), \
@@ -100,13 +98,17 @@ const uint_fast8_t __libelf_type_aligns[ELFCLASSNUM - 1][ELF_T_NUM] =
[ELF_T_MOVE] = __alignof__ (ElfW2(Bits,Move)), \
[ELF_T_LIB] = __alignof__ (ElfW2(Bits,Lib)), \
[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)), \
- [ELF_T_NHDR8] = 8 /* Special case for GNU Property note. */ \
- }
- [ELFCLASS32 - 1] = TYPE_ALIGNS (32),
- [ELFCLASS64 - 1] = TYPE_ALIGNS (64),
+ [ELF_T_NHDR8] = 8 /* Special case for GNU Property note. */
+ [ELFCLASS32 - 1] = {
+ TYPE_ALIGNS (32),
+ [ELF_T_GNUHASH] = __alignof__ (Elf32_Word),
+ },
+ [ELFCLASS64 - 1] = {
+ TYPE_ALIGNS (64),
+ [ELF_T_GNUHASH] = __alignof__ (Elf64_Xword),
+ },
# undef TYPE_ALIGNS
};
diff --git a/libelf/elf_getdata_rawchunk.c b/libelf/elf_getdata_rawchunk.c
index 1072f7de..5a35ccdc 100644
--- a/libelf/elf_getdata_rawchunk.c
+++ b/libelf/elf_getdata_rawchunk.c
@@ -1,5 +1,6 @@
/* Return converted data from raw chunk of ELF file.
Copyright (C) 2007, 2014, 2015 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -34,9 +35,7 @@
#include <errno.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
@@ -75,6 +74,20 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
rwlock_rdlock (elf->lock);
+ /* Maybe we already got this chunk? */
+ Elf_Data_Chunk *rawchunks = elf->state.elf.rawchunks;
+ while (rawchunks != NULL)
+ {
+ if ((rawchunks->offset == offset || size == 0)
+ && rawchunks->data.d.d_size == size
+ && rawchunks->data.d.d_type == type)
+ {
+ result = &rawchunks->data.d;
+ goto out;
+ }
+ rawchunks = rawchunks->next;
+ }
+
size_t align = __libelf_type_align (elf->class, type);
if (elf->map_address != NULL)
{
@@ -171,6 +184,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
chunk->data.d.d_type = type;
chunk->data.d.d_align = align;
chunk->data.d.d_version = EV_CURRENT;
+ chunk->offset = offset;
rwlock_unlock (elf->lock);
rwlock_wrlock (elf->lock);
diff --git a/libelf/elf_getshdrstrndx.c b/libelf/elf_getshdrstrndx.c
index ad884fd3..2391317b 100644
--- a/libelf/elf_getshdrstrndx.c
+++ b/libelf/elf_getshdrstrndx.c
@@ -35,9 +35,7 @@
#include <errno.h>
#include <gelf.h>
#include <stddef.h>
-#include <unistd.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
diff --git a/libelf/elf_readall.c b/libelf/elf_readall.c
index 0a3a233d..d0f9a28c 100644
--- a/libelf/elf_readall.c
+++ b/libelf/elf_readall.c
@@ -32,10 +32,8 @@
#endif
#include <errno.h>
-#include <unistd.h>
#include <sys/stat.h>
-#include <system.h>
#include "libelfP.h"
#include "common.h"
diff --git a/libelf/elf_update.c b/libelf/elf_update.c
index 9b8867ce..56af3a1c 100644
--- a/libelf/elf_update.c
+++ b/libelf/elf_update.c
@@ -33,8 +33,6 @@
#include <libelf.h>
#include <fcntl.h>
-#include <unistd.h>
-#include <sys/mman.h>
#include <sys/stat.h>
#include "libelfP.h"
@@ -106,8 +104,10 @@ write_file (Elf *elf, int64_t size, int change_bo, size_t shnum)
if (elf->cmd == ELF_C_RDWR_MMAP
&& (size_t) size > elf->maximum_size)
{
+#ifdef HAVE_MREMAP
if (mremap (elf->map_address, elf->maximum_size,
size, 0) == MAP_FAILED)
+#endif
{
__libelf_seterrno (ELF_E_WRITE_ERROR);
return -1;
diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c
index b9e7fd65..d8ad0634 100644
--- a/libelf/gelf_xlate.c
+++ b/libelf/gelf_xlate.c
@@ -1,5 +1,6 @@
/* Transformation functions for ELF data types.
Copyright (C) 1998,1999,2000,2002,2004,2005,2006,2007,2015 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -31,7 +32,6 @@
# include <config.h>
#endif
-#include <byteswap.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
@@ -138,9 +138,14 @@ union unaligned
int encode __attribute__ ((unused))) \
{ ElfW2(Bits, Name) *tdest = (ElfW2(Bits, Name) *) dest; \
ElfW2(Bits, Name) *tsrc = (ElfW2(Bits, Name) *) src; \
+ size_t sz = sizeof (ElfW2(Bits, Name)); \
size_t n; \
- for (n = len / sizeof (ElfW2(Bits, Name)); n > 0; ++tdest, ++tsrc, --n) {
-#define END(Bits, Name) } }
+ for (n = len / sz; n > 0; ++tdest, ++tsrc, --n) {
+#define END(Bits, Name) \
+ } \
+ if (len % sz > 0) /* Cannot convert partial structures, just copy. */ \
+ memmove (dest, src, len % sz); \
+ }
#define TYPE_EXTRA(Code)
#define TYPE_XLATE(Code) Code
#define TYPE_NAME(Type, Name) TYPE_NAME2 (Type, Name)
diff --git a/libelf/libelfP.h b/libelf/libelfP.h
index fc1aebec..d88a613c 100644
--- a/libelf/libelfP.h
+++ b/libelf/libelfP.h
@@ -39,6 +39,7 @@
#include <stdio.h>
#include <string.h>
+#include <system.h>
/* Helper Macros to write 32 bit and 64 bit functions. */
#define __elfw2_(Bits, Name) __elf##Bits##_##Name
@@ -266,6 +267,7 @@ typedef struct Elf_Data_Chunk
Elf_Scn dummy_scn;
struct Elf_Data_Chunk *next;
};
+ int64_t offset; /* The original raw offset in the Elf image. */
} Elf_Data_Chunk;
@@ -603,10 +605,10 @@ extern void __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size,
/* Align offset to 4 bytes as needed for note name and descriptor data.
This is almost always used, except for GNU Property notes, which use
8 byte padding... */
-#define NOTE_ALIGN4(n) (((n) + 3) & -4U)
+#define NOTE_ALIGN4(n) (((n) + 3) & -4UL)
/* Special note padding rule for GNU Property notes. */
-#define NOTE_ALIGN8(n) (((n) + 7) & -8U)
+#define NOTE_ALIGN8(n) (((n) + 7) & -8UL)
/* Convenience macro. */
#define INVALID_NDX(ndx, type, data) \
diff --git a/libelf/libelf_crc32.c b/libelf/libelf_crc32.c
index 1426faf1..f1cf4868 100644
--- a/libelf/libelf_crc32.c
+++ b/libelf/libelf_crc32.c
@@ -30,6 +30,5 @@
#endif
#define crc32 attribute_hidden __libelf_crc32
-#define LIB_SYSTEM_H 1
#include <libelf.h>
#include "../lib/crc32.c"
diff --git a/libelf/nlist.c b/libelf/nlist.c
index 8593c1de..b3d60435 100644
--- a/libelf/nlist.c
+++ b/libelf/nlist.c
@@ -35,7 +35,6 @@
#include <gelf.h>
#include <libelf.h>
#include <nlist.h>
-#include <unistd.h>
#include "libelfP.h"
diff --git a/libelf/version_xlate.h b/libelf/version_xlate.h
index 9fe01c64..97f3b730 100644
--- a/libelf/version_xlate.h
+++ b/libelf/version_xlate.h
@@ -1,5 +1,6 @@
/* Conversion functions for versioning information.
Copyright (C) 1998, 1999, 2000, 2002, 2003, 2015 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -66,7 +67,9 @@ elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
GElf_Verdaux *asrc;
/* Test for correct offset. */
- if (def_offset > len || len - def_offset < sizeof (GElf_Verdef))
+ if (def_offset > len
+ || len - def_offset < sizeof (GElf_Verdef)
+ || (def_offset & (__alignof__ (GElf_Verdef) - 1)) != 0)
return;
/* Work the tree from the first record. */
@@ -84,10 +87,16 @@ elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
ddest->vd_aux = bswap_32 (dsrc->vd_aux);
ddest->vd_next = bswap_32 (dsrc->vd_next);
+ if (ddest->vd_aux > len - def_offset)
+ return;
aux_offset = def_offset + ddest->vd_aux;
}
else
- aux_offset = def_offset + dsrc->vd_aux;
+ {
+ if (dsrc->vd_aux > len - def_offset)
+ return;
+ aux_offset = def_offset + dsrc->vd_aux;
+ }
/* Handle all the auxiliary records belonging to this definition. */
do
@@ -95,26 +104,38 @@ elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
GElf_Verdaux *adest;
/* Test for correct offset. */
- if (aux_offset > len || len - aux_offset < sizeof (GElf_Verdaux))
+ if (aux_offset > len
+ || len - aux_offset < sizeof (GElf_Verdaux)
+ || (aux_offset & (__alignof__ (GElf_Verdaux) - 1)) != 0)
return;
adest = (GElf_Verdaux *) ((char *) dest + aux_offset);
asrc = (GElf_Verdaux *) ((char *) src + aux_offset);
if (encode)
- aux_offset += asrc->vda_next;
+ {
+ if (asrc->vda_next > len - aux_offset)
+ return;
+ aux_offset += asrc->vda_next;
+ }
adest->vda_name = bswap_32 (asrc->vda_name);
adest->vda_next = bswap_32 (asrc->vda_next);
if (! encode)
- aux_offset += adest->vda_next;
+ {
+ if (adest->vda_next > len - aux_offset)
+ return;
+ aux_offset += adest->vda_next;
+ }
}
while (asrc->vda_next != 0);
/* Encode now if necessary. */
if (encode)
{
+ if (dsrc->vd_next > len - def_offset)
+ return;
def_offset += dsrc->vd_next;
ddest->vd_version = bswap_16 (dsrc->vd_version);
@@ -126,7 +147,11 @@ elf_cvt_Verdef (void *dest, const void *src, size_t len, int encode)
ddest->vd_next = bswap_32 (dsrc->vd_next);
}
else
- def_offset += ddest->vd_next;
+ {
+ if (ddest->vd_next > len - def_offset)
+ return;
+ def_offset += ddest->vd_next;
+ }
}
while (dsrc->vd_next != 0);
}
@@ -165,7 +190,9 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
GElf_Vernaux *asrc;
/* Test for correct offset. */
- if (need_offset > len || len - need_offset < sizeof (GElf_Verneed))
+ if (need_offset > len
+ || len - need_offset < sizeof (GElf_Verneed)
+ || (need_offset & (__alignof__ (GElf_Verneed) - 1)) != 0)
return;
/* Work the tree from the first record. */
@@ -181,10 +208,16 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
ndest->vn_aux = bswap_32 (nsrc->vn_aux);
ndest->vn_next = bswap_32 (nsrc->vn_next);
+ if (ndest->vn_aux > len - need_offset)
+ return;
aux_offset = need_offset + ndest->vn_aux;
}
else
- aux_offset = need_offset + nsrc->vn_aux;
+ {
+ if (nsrc->vn_aux > len - need_offset)
+ return;
+ aux_offset = need_offset + nsrc->vn_aux;
+ }
/* Handle all the auxiliary records belonging to this requirement. */
do
@@ -192,14 +225,20 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
GElf_Vernaux *adest;
/* Test for correct offset. */
- if (aux_offset > len || len - aux_offset < sizeof (GElf_Vernaux))
+ if (aux_offset > len
+ || len - aux_offset < sizeof (GElf_Vernaux)
+ || (aux_offset & (__alignof__ (GElf_Vernaux) - 1)) != 0)
return;
adest = (GElf_Vernaux *) ((char *) dest + aux_offset);
asrc = (GElf_Vernaux *) ((char *) src + aux_offset);
if (encode)
- aux_offset += asrc->vna_next;
+ {
+ if (asrc->vna_next > len - aux_offset)
+ return;
+ aux_offset += asrc->vna_next;
+ }
adest->vna_hash = bswap_32 (asrc->vna_hash);
adest->vna_flags = bswap_16 (asrc->vna_flags);
@@ -208,13 +247,19 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
adest->vna_next = bswap_32 (asrc->vna_next);
if (! encode)
- aux_offset += adest->vna_next;
+ {
+ if (adest->vna_next > len - aux_offset)
+ return;
+ aux_offset += adest->vna_next;
+ }
}
while (asrc->vna_next != 0);
/* Encode now if necessary. */
if (encode)
{
+ if (nsrc->vn_next > len - need_offset)
+ return;
need_offset += nsrc->vn_next;
ndest->vn_version = bswap_16 (nsrc->vn_version);
@@ -224,7 +269,11 @@ elf_cvt_Verneed (void *dest, const void *src, size_t len, int encode)
ndest->vn_next = bswap_32 (nsrc->vn_next);
}
else
- need_offset += ndest->vn_next;
+ {
+ if (ndest->vn_next > len - need_offset)
+ return;
+ need_offset += ndest->vn_next;
+ }
}
while (nsrc->vn_next != 0);
}
diff --git a/m4/ChangeLog b/m4/ChangeLog
index 32832693..8729f58c 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,12 @@
+2022-03-20 Mark Wielaard <mark@klomp.org>
+
+ * biarch.m4: Don't check whether -m64 works for 32bit host.
+
+2022-03-14 Mark Wielaard <mark@klomp.org>
+
+ * biarch.m4: Use AS_HELP_STRING instead of AC_HELP_STRING.
+ * zip.m4: Likewise.
+
2020-12-15 Dmitry V. Levin <ldv@altlinux.org>
* .gitignore: New file.
diff --git a/m4/biarch.m4 b/m4/biarch.m4
index c238d8d1..c7baead7 100644
--- a/m4/biarch.m4
+++ b/m4/biarch.m4
@@ -28,13 +28,13 @@ biarch_CC="$biarch_CC $utrace_biarch"])])
AC_DEFUN([utrace_BIARCH], [AC_REQUIRE([utrace_HOST64])
utrace_biarch_forced=no
AC_ARG_WITH([biarch],
- AC_HELP_STRING([--with-biarch],
+ AS_HELP_STRING([--with-biarch],
[enable biarch tests despite build problems]),
[AS_IF([test "x$with_biarch" != xno], [utrace_biarch_forced=yes])])
AS_IF([test $utrace_biarch_forced = yes], [dnl
utrace_cv_cc_biarch=yes
AC_MSG_NOTICE([enabling biarch tests regardless using $biarch_CC])], [dnl
-AS_IF([test x$utrace_cv_CC_m32 != xnone], [dnl
+AS_IF([test x$utrace_cv_CC_m32 != xnone -a x$utrace_cv_host64 != xno], [dnl
AC_CACHE_CHECK([whether $biarch_CC makes executables we can run],
utrace_cv_cc_biarch, [dnl
save_CC="$CC"
diff --git a/m4/zip.m4 b/m4/zip.m4
index ab6fd57e..8affa3fa 100644
--- a/m4/zip.m4
+++ b/m4/zip.m4
@@ -4,7 +4,7 @@ dnl and sets AC_DEFINE(USE_$2) and LIBS.
AC_DEFUN([eu_ZIPLIB], [dnl
AC_ARG_WITH([[$1]],
-AC_HELP_STRING([--with-[$1]], [support [$1] compression in libdwfl]),,
+AS_HELP_STRING([--with-[$1]], [support [$1] compression in libdwfl]),,
[with_[$1]=default])
if test $with_[$1] != no; then
AC_SEARCH_LIBS([$4], [$3], [with_[$1]=yes],
diff --git a/po/ChangeLog b/po/ChangeLog
index afbdc249..8894a9b5 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,18 @@
+2022-10-02 Mark Wielaard <mark@klomp.org>
+
+ * *.po: Update for 0.188.
+
+2022-08-05 Mark Wielaard <mark@klomp.org>
+
+ * de.po: Set Project-Id-Version: to elfutils.
+ * es.po: Likewise.
+ * ja.po: Likewise.
+ * uk.po: Likewise.
+
+2022-04-25 Mark Wielaard <mark@klomp.org>
+
+ * *.po: Update for 0.187.
+
2021-11-10 Mark Wielaard <mark@klomp.org>
* *.po: Update for 0.186.
diff --git a/po/de.po b/po/de.po
index cb5e011a..0c4c4920 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,9 +9,9 @@
# Michael Münch <micm@fedoraproject.org>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: elfutils VERSION\n"
+"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2021-11-10 16:21+0100\n"
+"POT-Creation-Date: 2022-11-02 13:30+0100\n"
"PO-Revision-Date: 2009-06-29 15:15+0200\n"
"Last-Translator: Michael Münch <micm@fedoraproject.org>\n"
"Language-Team: German\n"
@@ -22,12 +22,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 0.3\n"
-#: lib/color.c:53
+#: lib/color.c:51
msgid ""
"colorize the output. WHEN defaults to 'always' or can be 'auto' or 'never'"
msgstr ""
-#: lib/color.c:129
+#: lib/color.c:127
#, c-format
msgid ""
"%s: invalid argument '%s' for '--color'\n"
@@ -37,7 +37,7 @@ msgid ""
" - 'auto', 'tty', 'if-tty'\n"
msgstr ""
-#: lib/printversion.c:40
+#: lib/printversion.c:39
#, fuzzy, c-format
msgid ""
"Copyright (C) %s The elfutils developers <%s>.\n"
@@ -49,70 +49,70 @@ msgstr ""
"GARANTIE,\n"
"auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n"
-#: lib/xmalloc.c:48 lib/xmalloc.c:61 lib/xmalloc.c:73 src/readelf.c:11582
-#: src/unstrip.c:312
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11754
+#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
msgstr "Kein Speicher mehr verfügbar"
-#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
-#: libelf/elf_error.c:60
+#: libasm/asm_error.c:64 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
+#: libelf/elf_error.c:59
msgid "no error"
msgstr "kein Fehler"
-#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
-#: libelf/elf_error.c:91
+#: libasm/asm_error.c:65 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
+#: libelf/elf_error.c:90
msgid "out of memory"
msgstr "nicht genügend Speicher"
-#: libasm/asm_error.c:67
+#: libasm/asm_error.c:66
msgid "cannot create output file"
msgstr "Ausgangsdatei konnte nicht erstellt werden"
-#: libasm/asm_error.c:68
+#: libasm/asm_error.c:67
msgid "invalid parameter"
msgstr "ungültiger Parameter"
-#: libasm/asm_error.c:69
+#: libasm/asm_error.c:68
msgid "cannot change mode of output file"
msgstr "konnte Modus der Ausgabedatei nicht ändern"
-#: libasm/asm_error.c:70
+#: libasm/asm_error.c:69
msgid "cannot rename output file"
msgstr "Ausgangsdatei konnte nicht umbenannt werden"
-#: libasm/asm_error.c:71
+#: libasm/asm_error.c:70
msgid "duplicate symbol"
msgstr "Symbol doppelt vorhanden"
-#: libasm/asm_error.c:72
+#: libasm/asm_error.c:71
msgid "invalid section type for operation"
msgstr "ungültiger Abschnittstyp für Operation"
-#: libasm/asm_error.c:73
+#: libasm/asm_error.c:72
msgid "error during output of data"
msgstr "Fehler bei Datenausgabe"
-#: libasm/asm_error.c:74
+#: libasm/asm_error.c:73
msgid "no backend support available"
msgstr "keine Backend-Unterstützung verfügbar"
-#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
-#: libelf/elf_error.c:63
+#: libasm/asm_error.c:82 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
+#: libelf/elf_error.c:62
msgid "unknown error"
msgstr "unbekannter Fehler"
-#: libcpu/i386_lex.l:122
+#: libcpu/i386_lex.l:121
#, c-format
msgid "invalid character '%c' at line %d; ignored"
msgstr ""
-#: libcpu/i386_lex.l:123
+#: libcpu/i386_lex.l:122
#, c-format
msgid "invalid character '\\%o' at line %d; ignored"
msgstr ""
-#: libcpu/i386_parse.y:554
+#: libcpu/i386_parse.y:553
#, c-format
msgid "while reading i386 CPU description: %s at line %d"
msgstr ""
@@ -153,7 +153,7 @@ msgstr "ELF Kopf konnte nicht ausgelesen werden"
msgid "not implemented"
msgstr "Nicht implementiert"
-#: libdw/dwarf_error.c:69 libelf/elf_error.c:111 libelf/elf_error.c:159
+#: libdw/dwarf_error.c:69 libelf/elf_error.c:110 libelf/elf_error.c:158
msgid "invalid command"
msgstr "Ungültiger Befehl"
@@ -267,7 +267,7 @@ msgstr "Kein passender Adressbereich"
msgid "no flag value"
msgstr ""
-#: libdw/dwarf_error.c:96 libelf/elf_error.c:236
+#: libdw/dwarf_error.c:96 libelf/elf_error.c:235
msgid "invalid offset"
msgstr "ungültiger Offset"
@@ -308,68 +308,68 @@ msgstr "unbekannter Typ"
msgid ".debug_addr section missing"
msgstr ".debug_line Sektion fehlt"
-#: libdwfl/argp-std.c:47 src/stack.c:643 src/unstrip.c:2550
+#: libdwfl/argp-std.c:45 src/stack.c:643 src/unstrip.c:2547
msgid "Input selection options:"
msgstr "Eingabeauswahloptionen:"
-#: libdwfl/argp-std.c:48
+#: libdwfl/argp-std.c:46
msgid "Find addresses in FILE"
msgstr "Finde Adressen in FILE"
-#: libdwfl/argp-std.c:50
+#: libdwfl/argp-std.c:48
msgid "Find addresses from signatures found in COREFILE"
msgstr "Finde Adressen von Signatur aus COREFILE"
-#: libdwfl/argp-std.c:52
+#: libdwfl/argp-std.c:50
msgid "Find addresses in files mapped into process PID"
msgstr ""
-#: libdwfl/argp-std.c:54
+#: libdwfl/argp-std.c:52
msgid ""
"Find addresses in files mapped as read from FILE in Linux /proc/PID/maps "
"format"
msgstr ""
-#: libdwfl/argp-std.c:56
+#: libdwfl/argp-std.c:54
msgid "Find addresses in the running kernel"
msgstr "Finde Adressen im laufenden Kernel"
-#: libdwfl/argp-std.c:58
+#: libdwfl/argp-std.c:56
msgid "Kernel with all modules"
msgstr "Kernel mit allen Modulen"
-#: libdwfl/argp-std.c:60 src/stack.c:650
+#: libdwfl/argp-std.c:58 src/stack.c:650
msgid "Search path for separate debuginfo files"
msgstr "Dateisuchpfad für separate Debug-Informationen"
-#: libdwfl/argp-std.c:161
+#: libdwfl/argp-std.c:159
msgid "only one of -e, -p, -k, -K, or --core allowed"
msgstr "Nur eine Option von -e, -p, -k, -K, oder --core erlaubt"
-#: libdwfl/argp-std.c:234
+#: libdwfl/argp-std.c:232
msgid "cannot load kernel symbols"
msgstr "Konnte Kernel Symbole nicht laden"
#. Non-fatal to have no modules since we do have the kernel.
-#: libdwfl/argp-std.c:238
+#: libdwfl/argp-std.c:236
msgid "cannot find kernel modules"
msgstr "Konnte Kernel Module nicht finden"
-#: libdwfl/argp-std.c:255
+#: libdwfl/argp-std.c:253
msgid "cannot find kernel or modules"
msgstr "Konnte Kernel oder Module nicht finden"
-#: libdwfl/argp-std.c:294
+#: libdwfl/argp-std.c:292
#, c-format
msgid "cannot read ELF core file: %s"
msgstr "Konnte ELF Kerndatei %s nicht lesen"
-#: libdwfl/argp-std.c:317
+#: libdwfl/argp-std.c:315
#, fuzzy
msgid "Not enough memory"
msgstr "nicht genügend Speicher"
-#: libdwfl/argp-std.c:327
+#: libdwfl/argp-std.c:325
msgid "No modules recognized in core file"
msgstr "Keine Module in der Kerndatei gefunden"
@@ -421,7 +421,7 @@ msgstr ""
msgid "r_offset is bogus"
msgstr ""
-#: libdwfl/libdwflP.h:66 libelf/elf_error.c:115 libelf/elf_error.c:175
+#: libdwfl/libdwflP.h:66 libelf/elf_error.c:114 libelf/elf_error.c:174
msgid "offset out of range"
msgstr "Offset ausserhalb des Bereichs"
@@ -494,48 +494,54 @@ msgid "Invalid register"
msgstr "ungültiger Parameter"
#: libdwfl/libdwflP.h:84
+#, fuzzy
+#| msgid "no reference value"
+msgid "Unknown register value"
+msgstr "Kein Referenz-Wert"
+
+#: libdwfl/libdwflP.h:85
msgid "Error reading process memory"
msgstr ""
-#: libdwfl/libdwflP.h:85
+#: libdwfl/libdwflP.h:86
msgid "Couldn't find architecture of any ELF"
msgstr ""
-#: libdwfl/libdwflP.h:86
+#: libdwfl/libdwflP.h:87
msgid "Error parsing /proc filesystem"
msgstr ""
-#: libdwfl/libdwflP.h:87
+#: libdwfl/libdwflP.h:88
#, fuzzy
msgid "Invalid DWARF"
msgstr "DWARF ungültig"
-#: libdwfl/libdwflP.h:88
+#: libdwfl/libdwflP.h:89
msgid "Unsupported DWARF"
msgstr ""
-#: libdwfl/libdwflP.h:89
+#: libdwfl/libdwflP.h:90
msgid "Unable to find more threads"
msgstr ""
-#: libdwfl/libdwflP.h:90
+#: libdwfl/libdwflP.h:91
msgid "Dwfl already has attached state"
msgstr ""
-#: libdwfl/libdwflP.h:91
+#: libdwfl/libdwflP.h:92
msgid "Dwfl has no attached state"
msgstr ""
-#: libdwfl/libdwflP.h:92
+#: libdwfl/libdwflP.h:93
msgid "Unwinding not supported for this architecture"
msgstr ""
-#: libdwfl/libdwflP.h:93
+#: libdwfl/libdwflP.h:94
#, fuzzy
msgid "Invalid argument"
msgstr "ungültiger Parameter"
-#: libdwfl/libdwflP.h:94
+#: libdwfl/libdwflP.h:95
#, fuzzy
msgid "Not an ET_CORE ELF file"
msgstr "Ungültige ELF Datei"
@@ -545,7 +551,7 @@ msgid "No backend"
msgstr "Kein Backend"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
-#: libebl/eblobjnotetypename.c:110 libebl/eblobjnotetypename.c:131
+#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
@@ -596,18 +602,18 @@ msgstr ""
msgid " Args: "
msgstr ""
-#: libebl/eblobjnote.c:300
+#: libebl/eblobjnote.c:304
#, c-format
msgid " Build ID: "
msgstr " Build ID: "
#. A non-null terminated version string.
-#: libebl/eblobjnote.c:311
+#: libebl/eblobjnote.c:315
#, c-format
msgid " Linker version: %.*s\n"
msgstr ""
-#: libebl/eblobjnote.c:638
+#: libebl/eblobjnote.c:642
#, c-format
msgid " OS: %s, ABI: "
msgstr " OS: %s, ABI: "
@@ -621,577 +627,579 @@ msgstr ""
msgid "<unknown>: %d"
msgstr "<unbekannt>: %d"
-#: libelf/elf_error.c:67
+#: libelf/elf_error.c:66
msgid "unknown version"
msgstr "unbekannte Version"
-#: libelf/elf_error.c:71
+#: libelf/elf_error.c:70
msgid "unknown type"
msgstr "unbekannter Typ"
-#: libelf/elf_error.c:75
+#: libelf/elf_error.c:74
msgid "invalid `Elf' handle"
msgstr "ungültiges `Elf'-Handle"
-#: libelf/elf_error.c:79
+#: libelf/elf_error.c:78
msgid "invalid size of source operand"
msgstr "ungültige Grösse des Quell-Operanden"
-#: libelf/elf_error.c:83
+#: libelf/elf_error.c:82
msgid "invalid size of destination operand"
msgstr "ungültige Grösse des Ziel-Operanden"
-#: libelf/elf_error.c:87 src/readelf.c:6215
+#: libelf/elf_error.c:86 src/readelf.c:6378
#, c-format
msgid "invalid encoding"
msgstr "ungültige Kodierung"
-#: libelf/elf_error.c:95
+#: libelf/elf_error.c:94
msgid "invalid file descriptor"
msgstr "ungültiger Datei-Deskriptor"
-#: libelf/elf_error.c:99
+#: libelf/elf_error.c:98
#, fuzzy
msgid "invalid ELF file data"
msgstr "Ungültige ELF Datei"
-#: libelf/elf_error.c:103
+#: libelf/elf_error.c:102
msgid "invalid operation"
msgstr "ungültige Operation"
-#: libelf/elf_error.c:107
+#: libelf/elf_error.c:106
msgid "ELF version not set"
msgstr "ELF-Version nicht gesetzt"
-#: libelf/elf_error.c:119
+#: libelf/elf_error.c:118
msgid "invalid fmag field in archive header"
msgstr "ungültiges fmag-Feld im Archivheader"
-#: libelf/elf_error.c:123
+#: libelf/elf_error.c:122
msgid "invalid archive file"
msgstr "Ungültige Archiv-Datei"
-#: libelf/elf_error.c:127
+#: libelf/elf_error.c:126
msgid "descriptor is not for an archive"
msgstr ""
-#: libelf/elf_error.c:131
+#: libelf/elf_error.c:130
msgid "no index available"
msgstr "kein Index verfügbar"
-#: libelf/elf_error.c:135
+#: libelf/elf_error.c:134
msgid "cannot read data from file"
msgstr "Daten aus der Datei konnten nicht gelesen werden"
-#: libelf/elf_error.c:139
+#: libelf/elf_error.c:138
msgid "cannot write data to file"
msgstr "Daten konnten nicht in die Datei geschrieben werden"
-#: libelf/elf_error.c:143
+#: libelf/elf_error.c:142
msgid "invalid binary class"
msgstr "ungültige Binärklasse"
-#: libelf/elf_error.c:147
+#: libelf/elf_error.c:146
msgid "invalid section index"
msgstr "ungültiger Abschnittsindex"
-#: libelf/elf_error.c:151
+#: libelf/elf_error.c:150
msgid "invalid operand"
msgstr "ungültiger Operand"
-#: libelf/elf_error.c:155
+#: libelf/elf_error.c:154
msgid "invalid section"
msgstr "ungültiger Abschnitt"
-#: libelf/elf_error.c:163
+#: libelf/elf_error.c:162
msgid "executable header not created first"
msgstr "ausführbarer Header wurde nicht zuerst erstellt"
-#: libelf/elf_error.c:167
+#: libelf/elf_error.c:166
msgid "file descriptor disabled"
msgstr "Datei-Deskriptor deaktiviert"
-#: libelf/elf_error.c:171
+#: libelf/elf_error.c:170
#, fuzzy
msgid "archive/member file descriptor mismatch"
msgstr "Datei-Deskriptor deaktiviert"
-#: libelf/elf_error.c:179
+#: libelf/elf_error.c:178
msgid "cannot manipulate null section"
msgstr ""
-#: libelf/elf_error.c:183
+#: libelf/elf_error.c:182
#, fuzzy
msgid "data/scn mismatch"
msgstr "data/scn Unterschied"
-#: libelf/elf_error.c:187
+#: libelf/elf_error.c:186
msgid "invalid section header"
msgstr "ungültiger Abschnitts-Header"
-#: libelf/elf_error.c:191 src/readelf.c:10093 src/readelf.c:10693
-#: src/readelf.c:10794 src/readelf.c:10976
+#: libelf/elf_error.c:190 src/readelf.c:10266 src/readelf.c:10866
+#: src/readelf.c:10967 src/readelf.c:11149
#, c-format
msgid "invalid data"
msgstr "Ungültige Daten"
-#: libelf/elf_error.c:195
+#: libelf/elf_error.c:194
msgid "unknown data encoding"
msgstr "Unbekannte Datenkodierung"
-#: libelf/elf_error.c:199
+#: libelf/elf_error.c:198
msgid "section `sh_size' too small for data"
msgstr "Abschnitt `sh_size' zu klein für Daten"
-#: libelf/elf_error.c:203
+#: libelf/elf_error.c:202
msgid "invalid section alignment"
msgstr "ungültige Abschnittsausrichtung"
-#: libelf/elf_error.c:207
+#: libelf/elf_error.c:206
msgid "invalid section entry size"
msgstr ""
-#: libelf/elf_error.c:211
+#: libelf/elf_error.c:210
msgid "update() for write on read-only file"
msgstr ""
-#: libelf/elf_error.c:215
+#: libelf/elf_error.c:214
msgid "no such file"
msgstr "Datei nicht gefunden"
-#: libelf/elf_error.c:219
+#: libelf/elf_error.c:218
msgid "only relocatable files can contain section groups"
msgstr ""
-#: libelf/elf_error.c:224
+#: libelf/elf_error.c:223
msgid ""
"program header only allowed in executables, shared objects, and core files"
msgstr ""
-#: libelf/elf_error.c:231
+#: libelf/elf_error.c:230
msgid "file has no program header"
msgstr "Datei hat keinen Programm-Kopf"
-#: libelf/elf_error.c:241
+#: libelf/elf_error.c:240
#, fuzzy
msgid "invalid section type"
msgstr "ungültiger Abschnitt"
-#: libelf/elf_error.c:246
+#: libelf/elf_error.c:245
#, fuzzy
msgid "invalid section flags"
msgstr "ungültiger Abschnitt"
-#: libelf/elf_error.c:251
+#: libelf/elf_error.c:250
msgid "section does not contain compressed data"
msgstr ""
-#: libelf/elf_error.c:256
+#: libelf/elf_error.c:255
msgid "section contains compressed data"
msgstr ""
-#: libelf/elf_error.c:261
+#: libelf/elf_error.c:260
#, fuzzy
msgid "unknown compression type"
msgstr "unbekannter Typ"
-#: libelf/elf_error.c:266
+#: libelf/elf_error.c:265
#, fuzzy
msgid "cannot compress data"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
-#: libelf/elf_error.c:271
+#: libelf/elf_error.c:270
#, fuzzy
msgid "cannot decompress data"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
-#: src/addr2line.c:57
+#: src/addr2line.c:58
#, fuzzy
msgid "Input format options:"
msgstr "Eingabeauswahloptionen:"
-#: src/addr2line.c:59
+#: src/addr2line.c:60
msgid "Treat addresses as offsets relative to NAME section."
msgstr ""
-#: src/addr2line.c:61
+#: src/addr2line.c:62
#, fuzzy
msgid "Output format options:"
msgstr "Ausgabeformat:"
-#: src/addr2line.c:62
+#: src/addr2line.c:63
msgid "Print address before each entry"
msgstr ""
-#: src/addr2line.c:63
+#: src/addr2line.c:64
msgid "Show only base names of source files"
msgstr ""
-#: src/addr2line.c:65
-msgid "Show absolute file names using compilation directory"
+#: src/addr2line.c:66
+msgid "Show absolute file names using compilation directory (default)"
msgstr ""
-#: src/addr2line.c:66
+#: src/addr2line.c:67
msgid "Also show function names"
msgstr ""
-#: src/addr2line.c:67
+#: src/addr2line.c:68
msgid "Also show symbol or section names"
msgstr ""
-#: src/addr2line.c:68
+#: src/addr2line.c:69
msgid "Also show symbol and the section names"
msgstr ""
-#: src/addr2line.c:69
+#: src/addr2line.c:70
msgid "Also show line table flags"
msgstr ""
-#: src/addr2line.c:71
+#: src/addr2line.c:72
msgid ""
"Show all source locations that caused inline expansion of subroutines at the "
"address."
msgstr ""
-#: src/addr2line.c:74
+#: src/addr2line.c:75
msgid "Show demangled symbols (ARG is always ignored)"
msgstr ""
-#: src/addr2line.c:76
+#: src/addr2line.c:77
msgid "Print all information on one line, and indent inlines"
msgstr ""
-#: src/addr2line.c:78 src/elfcmp.c:70 src/findtextrel.c:66 src/nm.c:100
-#: src/strings.c:78
+#: src/addr2line.c:79
+msgid "Show relative file names without compilation directory"
+msgstr ""
+
+#: src/addr2line.c:81 src/elfcmp.c:69 src/findtextrel.c:65 src/nm.c:99
+#: src/strings.c:77
msgid "Miscellaneous:"
msgstr "Verschiedenes:"
#. Short description of program.
-#: src/addr2line.c:86
+#: src/addr2line.c:89
msgid ""
"Locate source files and line information for ADDRs (in a.out by default)."
msgstr ""
#. Strings for arguments in help texts.
-#: src/addr2line.c:90
+#: src/addr2line.c:93
msgid "[ADDR...]"
msgstr ""
-#: src/addr2line.c:519
-#, fuzzy, c-format
+#: src/addr2line.c:526
+#, fuzzy
msgid "Section syntax requires exactly one module"
msgstr "Abschnitt syntax benötigt genau ein Modul"
-#: src/addr2line.c:542
+#: src/addr2line.c:548
#, c-format
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr ""
-#: src/addr2line.c:652
+#: src/addr2line.c:658
#, c-format
msgid "cannot find symbol '%s'"
msgstr "Konnte Symbol '%s' nicht finden"
-#: src/addr2line.c:657
+#: src/addr2line.c:663
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr ""
-#: src/ar.c:67
+#: src/ar.c:66
msgid "Commands:"
msgstr "Befehle:"
-#: src/ar.c:68
+#: src/ar.c:67
msgid "Delete files from archive."
msgstr "Dateien aus dem Archiv löschen."
-#: src/ar.c:69
+#: src/ar.c:68
msgid "Move files in archive."
msgstr "Dateien zum Archiv hinzufügen."
-#: src/ar.c:70
+#: src/ar.c:69
msgid "Print files in archive."
msgstr "Packe Dateien in Archiv"
-#: src/ar.c:71
+#: src/ar.c:70
msgid "Quick append files to archive."
msgstr "Hänge Dateien an ein Archiv"
-#: src/ar.c:73
+#: src/ar.c:72
msgid "Replace existing or insert new file into archive."
msgstr "Ersetze existierende oder füge neue Datei in das Archiv ein."
-#: src/ar.c:74
+#: src/ar.c:73
msgid "Display content of archive."
msgstr "Zeige Archivinhalt an."
-#: src/ar.c:75
+#: src/ar.c:74
msgid "Extract files from archive."
msgstr "Entpacke Dateien aus dem Archiv"
-#: src/ar.c:77
+#: src/ar.c:76
msgid "Command Modifiers:"
msgstr ""
-#: src/ar.c:78
+#: src/ar.c:77
msgid "Preserve original dates."
msgstr "Erhalte ursprüngliche Daten."
-#: src/ar.c:79
+#: src/ar.c:78
msgid "Use instance [COUNT] of name."
msgstr ""
-#: src/ar.c:81
+#: src/ar.c:80
msgid "Do not replace existing files with extracted files."
msgstr "Ersetze existierende Dateien nicht mit entpackten Dateien"
-#: src/ar.c:82
+#: src/ar.c:81
msgid "Allow filename to be truncated if necessary."
msgstr "Erlaube angehängte Dateinamen, wenn nötig"
-#: src/ar.c:84
+#: src/ar.c:83
msgid "Provide verbose output."
msgstr "Zeige detaillierte Ausgabe."
-#: src/ar.c:85
+#: src/ar.c:84
msgid "Force regeneration of symbol table."
msgstr "Erzwinge Regenerierung der Symboltabelle."
-#: src/ar.c:86
+#: src/ar.c:85
msgid "Insert file after [MEMBER]."
msgstr "Füge Datei nach [MEMBER] ein."
-#: src/ar.c:87
+#: src/ar.c:86
msgid "Insert file before [MEMBER]."
msgstr "Füge Datei vor [MEMBER] ein."
-#: src/ar.c:88
+#: src/ar.c:87
msgid "Same as -b."
msgstr "Genau wie -b."
-#: src/ar.c:89
+#: src/ar.c:88
msgid "Suppress message when library has to be created."
msgstr "Unterdrücke Nachricht wenn Bibliothek erstellt werden muss."
-#: src/ar.c:91
+#: src/ar.c:90
#, fuzzy
msgid "Use full path for file matching."
msgstr "Vollständigen Pfad für Dateiabgleich verwenden."
-#: src/ar.c:92
+#: src/ar.c:91
msgid "Update only older files in archive."
msgstr "Nur ältere Datein im Archiv aktualisieren"
#. Short description of program.
-#: src/ar.c:98
+#: src/ar.c:97
msgid "Create, modify, and extract from archives."
msgstr "Erstelle, ändere, extrahiere von Archiven"
#. Strings for arguments in help texts.
-#: src/ar.c:101
+#: src/ar.c:100
msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
msgstr "[MEMBER] [COUNT] ARCHIVE [FILE...]"
-#: src/ar.c:180
+#: src/ar.c:179
#, c-format
msgid "'a', 'b', and 'i' are only allowed with the 'm' and 'r' options"
msgstr "'a', 'b', und 'i' nur zusammen mit 'm' and 'r Optionen"
-#: src/ar.c:185
+#: src/ar.c:184
#, c-format
msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers"
msgstr ""
-#: src/ar.c:201
+#: src/ar.c:200
#, c-format
msgid "'N' is only meaningful with the 'x' and 'd' options"
msgstr "'N' ist nur mit den Optionen 'x' und 'd' von Bedeutung."
-#: src/ar.c:206
+#: src/ar.c:205
#, c-format
msgid "COUNT parameter required"
msgstr "COUNT Parameter erforderlich"
-#: src/ar.c:218
+#: src/ar.c:217
#, c-format
msgid "invalid COUNT parameter %s"
msgstr "Ungültiger COUNT Parameter %s"
-#: src/ar.c:225
+#: src/ar.c:224
#, fuzzy, c-format
msgid "'%c' is only meaningful with the 'x' option"
msgstr "'%' ist nur mit der Option 'x' von Bedeutung"
-#: src/ar.c:231
+#: src/ar.c:230
#, c-format
msgid "archive name required"
msgstr "Archivname erforderlich"
-#: src/ar.c:244
+#: src/ar.c:243
#, c-format
msgid "command option required"
msgstr ""
-#: src/ar.c:295
+#: src/ar.c:294
#, c-format
msgid "More than one operation specified"
msgstr "Mehr als eine Operation angegeben"
-#: src/ar.c:389
+#: src/ar.c:388
#, c-format
msgid "cannot open archive '%s'"
msgstr "Konnte Archiv '%s' nicht öffnen"
-#: src/ar.c:399
+#: src/ar.c:398
#, c-format
msgid "cannot open archive '%s': %s"
msgstr "Konnte Archiv '%s': %s nicht öffnen"
-#: src/ar.c:403
+#: src/ar.c:402
#, c-format
msgid "%s: not an archive file"
msgstr "%s: Keine Archiv-Datei"
-#: src/ar.c:407
+#: src/ar.c:406
#, c-format
msgid "cannot stat archive '%s'"
msgstr ""
-#: src/ar.c:419
+#: src/ar.c:418
#, c-format
msgid "no entry %s in archive\n"
msgstr "Kein Eintrag %s in Archiv\n"
-#: src/ar.c:472 src/ar.c:927 src/ar.c:1134
-#, c-format
+#: src/ar.c:471 src/ar.c:925 src/ar.c:1131
msgid "cannot create hash table"
msgstr "Konnte Hash-Tabelle nicht erstellen"
-#: src/ar.c:479 src/ar.c:934 src/ar.c:1143
-#, c-format
+#: src/ar.c:477 src/ar.c:931 src/ar.c:1139
msgid "cannot insert into hash table"
msgstr "Konnte nicht in Hash-Tabelle einfügen"
-#: src/ar.c:487 src/ranlib.c:148
+#: src/ar.c:485 src/ranlib.c:147
#, c-format
msgid "cannot stat '%s'"
msgstr ""
-#: src/ar.c:589
+#: src/ar.c:587
#, c-format
msgid "cannot read content of %s: %s"
msgstr "Konnte Inhalt von %s: %s nicht lesen"
-#: src/ar.c:632
+#: src/ar.c:630
#, c-format
msgid "cannot open %.*s"
msgstr "Konnte %.*s nicht öffnen"
-#: src/ar.c:654
+#: src/ar.c:652
#, c-format
msgid "failed to write %s"
msgstr "Konnte %s nicht schreiben"
-#: src/ar.c:666
+#: src/ar.c:664
#, c-format
msgid "cannot change mode of %s"
msgstr ""
-#: src/ar.c:682
+#: src/ar.c:680
#, c-format
msgid "cannot change modification time of %s"
msgstr "Konnte Bearbeitungszeit von %s nicht ändern"
-#: src/ar.c:728
+#: src/ar.c:726
#, c-format
msgid "cannot rename temporary file to %.*s"
msgstr "Konnte temporäre Datei nicht in %.*s umbenennen"
-#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222
+#: src/ar.c:762 src/ar.c:1016 src/ar.c:1419 src/ranlib.c:221
#, c-format
msgid "cannot create new file"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/ar.c:1225
+#: src/ar.c:1221
#, c-format
msgid "position member %s not found"
msgstr ""
-#: src/ar.c:1235
+#: src/ar.c:1231
#, c-format
msgid "%s: no entry %s in archive!\n"
msgstr "%s: Kein Eintrag %s in dem Archiv!\n"
-#: src/ar.c:1264 src/objdump.c:241
+#: src/ar.c:1260 src/objdump.c:240
#, c-format
msgid "cannot open %s"
msgstr "Konnte %s nicht öffnen"
-#: src/ar.c:1269
+#: src/ar.c:1265
#, c-format
msgid "cannot stat %s"
msgstr ""
-#: src/ar.c:1275
+#: src/ar.c:1271
#, c-format
msgid "%s is no regular file"
msgstr "%s ist keine reguläre Datei"
-#: src/ar.c:1288
+#: src/ar.c:1284
#, c-format
msgid "cannot get ELF descriptor for %s: %s\n"
msgstr ""
-#: src/ar.c:1308
+#: src/ar.c:1304
#, c-format
msgid "cannot read %s: %s"
msgstr "Konnte %s: %s nicht lesen"
-#: src/ar.c:1483
+#: src/ar.c:1479
#, fuzzy, c-format
msgid "cannot represent ar_date"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
-#: src/ar.c:1489
+#: src/ar.c:1485
#, fuzzy, c-format
msgid "cannot represent ar_uid"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
-#: src/ar.c:1495
+#: src/ar.c:1491
#, fuzzy, c-format
msgid "cannot represent ar_gid"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
-#: src/ar.c:1501
+#: src/ar.c:1497
#, fuzzy, c-format
msgid "cannot represent ar_mode"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/ar.c:1507
+#: src/ar.c:1503
#, fuzzy, c-format
msgid "cannot represent ar_size"
msgstr "Konnte %s nicht öffnen"
-#: src/arlib-argp.c:32
+#: src/arlib-argp.c:31
msgid "Use zero for uid, gid, and date in archive members."
msgstr ""
-#: src/arlib-argp.c:34
+#: src/arlib-argp.c:33
msgid "Use actual uid, gid, and date in archive members."
msgstr ""
-#: src/arlib-argp.c:63
+#: src/arlib-argp.c:62
#, c-format
msgid "%s (default)"
msgstr ""
#. The archive is too big.
-#: src/arlib.c:213
+#: src/arlib.c:212
#, c-format
msgid "the archive '%s' is too large"
msgstr "Das Archiv '%s' ist zu groß"
-#: src/arlib.c:226
+#: src/arlib.c:225
#, c-format
msgid "cannot read ELF header of %s(%s): %s"
msgstr "\"Konnte ELF-Kopf von %s(%s): %s nicht lesen"
@@ -1378,8 +1386,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1334 src/elflint.c:77
-#: src/readelf.c:158
+#: src/elfclassify.c:979 src/elfcompress.c:1358 src/elflint.c:76
+#: src/readelf.c:160
msgid "FILE..."
msgstr "DATEI..."
@@ -1422,230 +1430,230 @@ msgid ""
"change the exit status."
msgstr ""
-#: src/elfcmp.c:60
+#: src/elfcmp.c:59
msgid "Control options:"
msgstr ""
-#: src/elfcmp.c:62
+#: src/elfcmp.c:61
msgid "Output all differences, not just the first"
msgstr ""
-#: src/elfcmp.c:63
+#: src/elfcmp.c:62
msgid ""
"Control treatment of gaps in loadable segments [ignore|match] (default: "
"ignore)"
msgstr ""
-#: src/elfcmp.c:65
+#: src/elfcmp.c:64
msgid "Ignore permutation of buckets in SHT_HASH section"
msgstr ""
-#: src/elfcmp.c:67
+#: src/elfcmp.c:66
msgid "Ignore differences in build ID"
msgstr ""
-#: src/elfcmp.c:68
+#: src/elfcmp.c:67
msgid "Output nothing; yield exit status only"
msgstr ""
#. Short description of program.
-#: src/elfcmp.c:75
+#: src/elfcmp.c:74
msgid "Compare relevant parts of two ELF files for equality."
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfcmp.c:79
+#: src/elfcmp.c:78
#, fuzzy
msgid "FILE1 FILE2"
msgstr "DATEI1 DATEI2"
-#: src/elfcmp.c:141
+#: src/elfcmp.c:140
msgid "Invalid number of parameters.\n"
msgstr "Ungültige Anzahl von Parametern.\n"
-#: src/elfcmp.c:172 src/elfcmp.c:177
+#: src/elfcmp.c:171 src/elfcmp.c:176
#, c-format
msgid "cannot get ELF header of '%s': %s"
msgstr ""
-#: src/elfcmp.c:203
+#: src/elfcmp.c:202
#, c-format
msgid "%s %s diff: ELF header"
msgstr ""
-#: src/elfcmp.c:210 src/elfcmp.c:213
+#: src/elfcmp.c:209 src/elfcmp.c:212
#, fuzzy, c-format
msgid "cannot get section count of '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elfcmp.c:218
+#: src/elfcmp.c:217
#, c-format
msgid "%s %s diff: section count"
msgstr ""
-#: src/elfcmp.c:225 src/elfcmp.c:228
+#: src/elfcmp.c:224 src/elfcmp.c:227
#, fuzzy, c-format
msgid "cannot get program header count of '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/elfcmp.c:233
+#: src/elfcmp.c:232
#, fuzzy, c-format
msgid "%s %s diff: program header count"
msgstr "Datei hat keinen Programm-Kopf"
-#: src/elfcmp.c:241 src/elfcmp.c:244
+#: src/elfcmp.c:240 src/elfcmp.c:243
#, fuzzy, c-format
msgid "cannot get hdrstrndx of '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elfcmp.c:249
+#: src/elfcmp.c:248
#, c-format
msgid "%s %s diff: shdr string index"
msgstr ""
-#: src/elfcmp.c:307
+#: src/elfcmp.c:306
#, c-format
msgid "%s %s differ: section [%zu], [%zu] name"
msgstr ""
-#: src/elfcmp.c:330
+#: src/elfcmp.c:329
#, c-format
msgid "%s %s differ: section [%zu] '%s' header"
msgstr ""
-#: src/elfcmp.c:338 src/elfcmp.c:344
+#: src/elfcmp.c:337 src/elfcmp.c:343
#, c-format
msgid "cannot get content of section %zu in '%s': %s"
msgstr ""
-#: src/elfcmp.c:353
+#: src/elfcmp.c:352
#, c-format
msgid "symbol table [%zu] in '%s' has zero sh_entsize"
msgstr ""
-#: src/elfcmp.c:365 src/elfcmp.c:371
+#: src/elfcmp.c:364 src/elfcmp.c:370
#, c-format
msgid "cannot get symbol in '%s': %s"
msgstr ""
-#: src/elfcmp.c:393
+#: src/elfcmp.c:392
#, c-format
msgid "%s %s differ: symbol table [%zu]"
msgstr ""
-#: src/elfcmp.c:396
+#: src/elfcmp.c:395
#, c-format
msgid "%s %s differ: symbol table [%zu,%zu]"
msgstr ""
-#: src/elfcmp.c:443 src/elfcmp.c:513
+#: src/elfcmp.c:442 src/elfcmp.c:512
#, c-format
msgid "%s %s differ: section [%zu] '%s' number of notes"
msgstr ""
-#: src/elfcmp.c:451
+#: src/elfcmp.c:450
#, fuzzy, c-format
msgid "cannot read note section [%zu] '%s' in '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elfcmp.c:462
+#: src/elfcmp.c:461
#, c-format
msgid "%s %s differ: section [%zu] '%s' note name"
msgstr ""
-#: src/elfcmp.c:470
+#: src/elfcmp.c:469
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' type"
msgstr ""
-#: src/elfcmp.c:485
+#: src/elfcmp.c:484
#, c-format
msgid "%s %s differ: build ID length"
msgstr ""
-#: src/elfcmp.c:493
+#: src/elfcmp.c:492
#, c-format
msgid "%s %s differ: build ID content"
msgstr ""
-#: src/elfcmp.c:502
+#: src/elfcmp.c:501
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' content"
msgstr ""
-#: src/elfcmp.c:543
+#: src/elfcmp.c:542
#, c-format
msgid "%s %s differ: section [%zu] '%s' content"
msgstr ""
-#: src/elfcmp.c:547
+#: src/elfcmp.c:546
#, c-format
msgid "%s %s differ: section [%zu,%zu] '%s' content"
msgstr ""
-#: src/elfcmp.c:562
+#: src/elfcmp.c:561
#, c-format
msgid "%s %s differ: unequal amount of important sections"
msgstr ""
-#: src/elfcmp.c:595 src/elfcmp.c:600
+#: src/elfcmp.c:594 src/elfcmp.c:599
#, c-format
msgid "cannot load data of '%s': %s"
msgstr ""
-#: src/elfcmp.c:619 src/elfcmp.c:625
+#: src/elfcmp.c:618 src/elfcmp.c:624
#, c-format
msgid "cannot get program header entry %d of '%s': %s"
msgstr ""
-#: src/elfcmp.c:631
+#: src/elfcmp.c:630
#, c-format
msgid "%s %s differ: program header %d"
msgstr ""
-#: src/elfcmp.c:655
+#: src/elfcmp.c:654
#, c-format
msgid "%s %s differ: gap"
msgstr ""
-#: src/elfcmp.c:706
+#: src/elfcmp.c:705
#, c-format
msgid "Invalid value '%s' for --gaps parameter."
msgstr ""
-#: src/elfcmp.c:734 src/findtextrel.c:195 src/nm.c:364 src/ranlib.c:141
-#: src/size.c:272 src/strings.c:185 src/strip.c:1035 src/strip.c:1072
-#: src/unstrip.c:2197 src/unstrip.c:2226
+#: src/elfcmp.c:733 src/findtextrel.c:194 src/nm.c:363 src/ranlib.c:140
+#: src/size.c:271 src/strings.c:184 src/strip.c:1040 src/strip.c:1077
+#: src/unstrip.c:2194 src/unstrip.c:2223
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' kann nicht geöffnet werden"
-#: src/elfcmp.c:738 src/findtextrel.c:214 src/ranlib.c:158
+#: src/elfcmp.c:737 src/findtextrel.c:213 src/ranlib.c:157
#, c-format
msgid "cannot create ELF descriptor for '%s': %s"
msgstr ""
-#: src/elfcmp.c:743
+#: src/elfcmp.c:742
#, c-format
msgid "cannot create EBL descriptor for '%s'"
msgstr ""
-#: src/elfcmp.c:761 src/findtextrel.c:385
+#: src/elfcmp.c:760 src/findtextrel.c:384
#, c-format
msgid "cannot get section header of section %zu: %s"
msgstr ""
-#: src/elfcmp.c:771
+#: src/elfcmp.c:770
#, c-format
msgid "cannot get content of section %zu: %s"
msgstr ""
-#: src/elfcmp.c:781 src/elfcmp.c:795
+#: src/elfcmp.c:780 src/elfcmp.c:794
#, c-format
msgid "cannot get relocation: %s"
msgstr ""
-#: src/elfcompress.c:117 src/strip.c:308 src/unstrip.c:117
+#: src/elfcompress.c:117 src/strip.c:305 src/unstrip.c:116
#, c-format
msgid "-o option specified twice"
msgstr ""
@@ -1661,318 +1669,318 @@ msgid "unknown compression type '%s'"
msgstr "unbekannter Typ"
#. We need at least one input file.
-#: src/elfcompress.c:145 src/elfcompress.c:1345
+#: src/elfcompress.c:145 src/elfcompress.c:1369
#, fuzzy, c-format
msgid "No input file given"
msgstr "Eingabedatei '%s' ignoriert"
-#: src/elfcompress.c:151 src/elfcompress.c:1350
+#: src/elfcompress.c:151 src/elfcompress.c:1373
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr ""
-#: src/elfcompress.c:1307
+#: src/elfcompress.c:1331
msgid "Place (de)compressed output into FILE"
msgstr ""
-#: src/elfcompress.c:1310
+#: src/elfcompress.c:1334
msgid ""
"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)"
msgstr ""
-#: src/elfcompress.c:1313
+#: src/elfcompress.c:1337
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
msgstr ""
-#: src/elfcompress.c:1316
+#: src/elfcompress.c:1340
msgid "Print a message for each section being (de)compressed"
msgstr ""
-#: src/elfcompress.c:1319
+#: src/elfcompress.c:1343
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
msgstr ""
-#: src/elfcompress.c:1322 src/strip.c:93
+#: src/elfcompress.c:1346 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
-#: src/elfcompress.c:1325
+#: src/elfcompress.c:1349
#, fuzzy
msgid "Be silent when a section cannot be compressed"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elfcompress.c:1335
+#: src/elfcompress.c:1359
msgid "Compress or decompress sections in an ELF file."
msgstr ""
-#: src/elflint.c:63
+#: src/elflint.c:62
msgid "Be extremely strict, flag level 2 features."
msgstr ""
-#: src/elflint.c:64
+#: src/elflint.c:63
msgid "Do not print anything if successful"
msgstr "Gebe nichts aus, wenn erfolgreich"
-#: src/elflint.c:65
+#: src/elflint.c:64
msgid "Binary is a separate debuginfo file"
msgstr ""
-#: src/elflint.c:67
+#: src/elflint.c:66
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
msgstr ""
#. Short description of program.
-#: src/elflint.c:73
+#: src/elflint.c:72
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
-#: src/elflint.c:154 src/readelf.c:368
+#: src/elflint.c:153 src/readelf.c:391
#, fuzzy, c-format
msgid "cannot open input file '%s'"
msgstr "Kann Eingabedatei nicht öffnen"
-#: src/elflint.c:161
+#: src/elflint.c:160
#, fuzzy, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "kann Elf-Deskriptor nicht erzeugen: %s\n"
-#: src/elflint.c:180
+#: src/elflint.c:179
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/elflint.c:184
+#: src/elflint.c:183
msgid "No errors"
msgstr "Keine Fehler"
-#: src/elflint.c:219 src/readelf.c:577
+#: src/elflint.c:218 src/readelf.c:603
msgid "Missing file name.\n"
msgstr "Dateiname fehlt.\n"
-#: src/elflint.c:284
+#: src/elflint.c:283
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr ""
#. We cannot do anything.
-#: src/elflint.c:292
+#: src/elflint.c:291
#, fuzzy, c-format
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "Keine ELF-Datei - sie hat die falschen Magic Bytes am Anfang\n"
-#: src/elflint.c:357
+#: src/elflint.c:356
#, c-format
msgid "e_ident[%d] == %d is no known class\n"
msgstr ""
-#: src/elflint.c:362
+#: src/elflint.c:361
#, c-format
msgid "e_ident[%d] == %d is no known data encoding\n"
msgstr ""
-#: src/elflint.c:366
+#: src/elflint.c:365
#, c-format
msgid "unknown ELF header version number e_ident[%d] == %d\n"
msgstr ""
-#: src/elflint.c:374
+#: src/elflint.c:373
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
msgstr ""
-#: src/elflint.c:380
+#: src/elflint.c:379
#, c-format
msgid "unsupported ABI version e_ident[%d] == %d\n"
msgstr ""
-#: src/elflint.c:385
+#: src/elflint.c:384
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] ist nicht null\n"
-#: src/elflint.c:390
+#: src/elflint.c:389
#, c-format
msgid "unknown object file type %d\n"
msgstr ""
-#: src/elflint.c:397
+#: src/elflint.c:396
#, c-format
msgid "unknown machine type %d\n"
msgstr ""
-#: src/elflint.c:401
+#: src/elflint.c:400
#, c-format
msgid "unknown object file version\n"
msgstr ""
-#: src/elflint.c:407
+#: src/elflint.c:406
#, c-format
msgid "invalid program header offset\n"
msgstr ""
-#: src/elflint.c:409
+#: src/elflint.c:408
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
-#: src/elflint.c:413
+#: src/elflint.c:412
#, c-format
msgid "invalid number of program header entries\n"
msgstr ""
-#: src/elflint.c:421
+#: src/elflint.c:420
#, c-format
msgid "invalid section header table offset\n"
msgstr ""
-#: src/elflint.c:424
+#: src/elflint.c:423
#, c-format
msgid "section header table must be present\n"
msgstr ""
-#: src/elflint.c:438
+#: src/elflint.c:437
#, c-format
msgid "invalid number of section header table entries\n"
msgstr ""
-#: src/elflint.c:455
+#: src/elflint.c:454
#, c-format
msgid "invalid section header index\n"
msgstr ""
-#: src/elflint.c:473
+#: src/elflint.c:472
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr ""
-#: src/elflint.c:487
+#: src/elflint.c:486
#, fuzzy, c-format
msgid "invalid number of program header table entries\n"
msgstr "Ungültige Anzahl von Parametern.\n"
-#: src/elflint.c:504
+#: src/elflint.c:503
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr ""
-#: src/elflint.c:509
+#: src/elflint.c:508
#, c-format
msgid "invalid machine flags: %s\n"
msgstr ""
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:515 src/elflint.c:532
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr ""
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:518 src/elflint.c:535
#, c-format
msgid "invalid program header size: %hd\n"
msgstr ""
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:521 src/elflint.c:538
#, c-format
msgid "invalid program header position or size\n"
msgstr ""
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:524 src/elflint.c:541
#, c-format
msgid "invalid section header size: %hd\n"
msgstr ""
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:527 src/elflint.c:544
#, c-format
msgid "invalid section header position or size\n"
msgstr ""
-#: src/elflint.c:590
+#: src/elflint.c:589
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
"group\n"
msgstr ""
-#: src/elflint.c:594
+#: src/elflint.c:593
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
msgstr ""
-#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
-#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106
-#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4458
+#: src/elflint.c:609 src/elflint.c:1497 src/elflint.c:1548 src/elflint.c:1654
+#: src/elflint.c:1990 src/elflint.c:2316 src/elflint.c:2942 src/elflint.c:3105
+#: src/elflint.c:3253 src/elflint.c:3455 src/elflint.c:4464
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr ""
-#: src/elflint.c:623 src/elflint.c:1662
+#: src/elflint.c:622 src/elflint.c:1661
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
"type is not SHT_STRTAB\n"
msgstr ""
-#: src/elflint.c:646
+#: src/elflint.c:645
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
"section\n"
msgstr ""
-#: src/elflint.c:658
+#: src/elflint.c:657
#, c-format
msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
msgstr ""
-#: src/elflint.c:662
+#: src/elflint.c:661
#, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
"size\n"
msgstr ""
-#: src/elflint.c:671
+#: src/elflint.c:670
#, c-format
msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
msgstr ""
-#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685
-#: src/elflint.c:688 src/elflint.c:691
+#: src/elflint.c:675 src/elflint.c:678 src/elflint.c:681 src/elflint.c:684
+#: src/elflint.c:687 src/elflint.c:690
#, c-format
msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
msgstr ""
-#: src/elflint.c:694
+#: src/elflint.c:693
#, c-format
msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
msgstr ""
-#: src/elflint.c:704
+#: src/elflint.c:703
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
msgstr ""
-#: src/elflint.c:713
+#: src/elflint.c:712
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr ""
-#: src/elflint.c:728
+#: src/elflint.c:727
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
"section index section\n"
msgstr ""
-#: src/elflint.c:734
+#: src/elflint.c:733
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -1980,119 +1988,119 @@ msgid ""
msgstr ""
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:745
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n"
msgstr "ungültiger Abschnittsindex"
-#: src/elflint.c:754
+#: src/elflint.c:753
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:760
+#: src/elflint.c:759
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:765
+#: src/elflint.c:764
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n"
msgstr ""
-#: src/elflint.c:773
+#: src/elflint.c:772
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
"files\n"
msgstr ""
-#: src/elflint.c:777
+#: src/elflint.c:776
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
msgstr ""
-#: src/elflint.c:781
+#: src/elflint.c:780
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
msgstr ""
-#: src/elflint.c:832
+#: src/elflint.c:831
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912
+#: src/elflint.c:837 src/elflint.c:862 src/elflint.c:911
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
"section [%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:847
+#: src/elflint.c:846
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
"have SHF_TLS flag set\n"
msgstr ""
-#: src/elflint.c:857 src/elflint.c:905
+#: src/elflint.c:856 src/elflint.c:904
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
"section [%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:884
+#: src/elflint.c:883
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
"entry\n"
msgstr ""
-#: src/elflint.c:890
+#: src/elflint.c:889
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
"header entry\n"
msgstr ""
-#: src/elflint.c:898
+#: src/elflint.c:897
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
"[%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:925
+#: src/elflint.c:924
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
"sh_info\n"
msgstr ""
-#: src/elflint.c:932
+#: src/elflint.c:931
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
"described in sh_info\n"
msgstr ""
-#: src/elflint.c:939
+#: src/elflint.c:938
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:989
+#: src/elflint.c:988
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
"[%2d]\n"
msgstr ""
-#: src/elflint.c:996
+#: src/elflint.c:995
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2102,1518 +2110,1518 @@ 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:1012
+#: src/elflint.c:1011
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
"match %s section address %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:1019
+#: src/elflint.c:1018
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
"match %s section size %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:1027
+#: src/elflint.c:1026
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
"section\n"
msgstr ""
-#: src/elflint.c:1043
+#: src/elflint.c:1042
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
"segment address %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:1050
+#: src/elflint.c:1049
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
"segment size %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:1063
+#: src/elflint.c:1062
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
"default visibility\n"
msgstr ""
-#: src/elflint.c:1067
+#: src/elflint.c:1066
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:1105
+#: src/elflint.c:1104
#, fuzzy, c-format
msgid "section [%2d] '%s': cannot get section data.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:1121
+#: src/elflint.c:1120
#, c-format
msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
msgstr ""
-#: src/elflint.c:1132 src/elflint.c:1185
+#: src/elflint.c:1131 src/elflint.c:1184
#, c-format
msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"
msgstr ""
-#: src/elflint.c:1157 src/elflint.c:1210
+#: src/elflint.c:1156 src/elflint.c:1209
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
"DT_RELCOUNT\n"
msgstr ""
-#: src/elflint.c:1163 src/elflint.c:1216
+#: src/elflint.c:1162 src/elflint.c:1215
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
"specified %d relative relocations\n"
msgstr ""
-#: src/elflint.c:1175
+#: src/elflint.c:1174
#, c-format
msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
msgstr ""
-#: src/elflint.c:1258
+#: src/elflint.c:1257
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr ""
-#: src/elflint.c:1270
+#: src/elflint.c:1269
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr ""
-#: src/elflint.c:1278
+#: src/elflint.c:1277
#, c-format
msgid "section [%2d] '%s': sh_info should be zero\n"
msgstr ""
-#: src/elflint.c:1286
+#: src/elflint.c:1285
#, 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:1294
+#: src/elflint.c:1293
#, c-format
msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
msgstr ""
-#: src/elflint.c:1354
+#: src/elflint.c:1353
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
-#: src/elflint.c:1381
+#: src/elflint.c:1380
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr ""
-#: src/elflint.c:1389
+#: src/elflint.c:1388
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
"type\n"
msgstr ""
-#: src/elflint.c:1397
+#: src/elflint.c:1396
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
msgstr ""
-#: src/elflint.c:1415
+#: src/elflint.c:1414
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
"be used with %s\n"
msgstr ""
-#: src/elflint.c:1432
+#: src/elflint.c:1431
#, c-format
msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
msgstr ""
-#: src/elflint.c:1447
+#: src/elflint.c:1446
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
"%s\n"
msgstr ""
-#: src/elflint.c:1468
+#: src/elflint.c:1467
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
"relocation flag not set\n"
msgstr ""
-#: src/elflint.c:1483
+#: src/elflint.c:1482
#, c-format
msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
msgstr ""
-#: src/elflint.c:1523 src/elflint.c:1574
+#: src/elflint.c:1522 src/elflint.c:1573
#, c-format
msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
msgstr ""
-#: src/elflint.c:1650
+#: src/elflint.c:1649
#, c-format
msgid "more than one dynamic section present\n"
msgstr ""
-#: src/elflint.c:1668
+#: src/elflint.c:1667
#, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
"link value is invalid\n"
msgstr ""
-#: src/elflint.c:1676
+#: src/elflint.c:1675
#, c-format
msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
msgstr ""
-#: src/elflint.c:1681 src/elflint.c:1970
+#: src/elflint.c:1680 src/elflint.c:1969
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr ""
-#: src/elflint.c:1691
+#: src/elflint.c:1690
#, c-format
msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
msgstr ""
-#: src/elflint.c:1699
+#: src/elflint.c:1698
#, c-format
msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
msgstr ""
-#: src/elflint.c:1706
+#: src/elflint.c:1705
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr ""
-#: src/elflint.c:1717
+#: src/elflint.c:1716
#, c-format
msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
msgstr ""
-#: src/elflint.c:1727
+#: src/elflint.c:1726
#, c-format
msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
msgstr ""
-#: src/elflint.c:1745
+#: src/elflint.c:1744
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
msgstr ""
-#: src/elflint.c:1758
+#: src/elflint.c:1757
#, 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:1801
+#: src/elflint.c:1800
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
msgstr ""
-#: src/elflint.c:1816
+#: src/elflint.c:1815
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
"[%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:1836 src/elflint.c:1864
+#: src/elflint.c:1835 src/elflint.c:1863
#, c-format
msgid "section [%2d] '%s': contains %s entry but not %s\n"
msgstr ""
-#: src/elflint.c:1848
+#: src/elflint.c:1847
#, c-format
msgid "section [%2d] '%s': mandatory tag %s not present\n"
msgstr ""
-#: src/elflint.c:1857
+#: src/elflint.c:1856
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
msgstr ""
-#: src/elflint.c:1872 src/elflint.c:1879
+#: src/elflint.c:1871 src/elflint.c:1878
#, c-format
msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
msgstr ""
-#: src/elflint.c:1889 src/elflint.c:1893
+#: src/elflint.c:1888 src/elflint.c:1892
#, c-format
msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
msgstr ""
-#: src/elflint.c:1899
+#: src/elflint.c:1898
#, c-format
msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
msgstr ""
-#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922
+#: src/elflint.c:1909 src/elflint.c:1913 src/elflint.c:1917 src/elflint.c:1921
#, c-format
msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
msgstr ""
-#: src/elflint.c:1934
+#: src/elflint.c:1933
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
msgstr ""
-#: src/elflint.c:1944
+#: src/elflint.c:1943
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
msgstr ""
-#: src/elflint.c:1948
+#: src/elflint.c:1947
#, c-format
msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
msgstr ""
-#: src/elflint.c:1953
+#: src/elflint.c:1952
#, c-format
msgid "cannot get data for symbol section\n"
msgstr ""
-#: src/elflint.c:1956
+#: src/elflint.c:1955
#, c-format
msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
msgstr ""
-#: src/elflint.c:1965
+#: src/elflint.c:1964
#, c-format
msgid "section [%2d] '%s': extended index table too small for symbol table\n"
msgstr ""
-#: src/elflint.c:1980
+#: src/elflint.c:1979
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
"same symbol table\n"
msgstr ""
-#: src/elflint.c:1998
+#: src/elflint.c:1997
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr ""
-#: src/elflint.c:2010
+#: src/elflint.c:2009
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr ""
-#: src/elflint.c:2015
+#: src/elflint.c:2014
#, c-format
msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
msgstr ""
-#: src/elflint.c:2032 src/elflint.c:2089
+#: src/elflint.c:2031 src/elflint.c:2088
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
msgstr ""
-#: src/elflint.c:2046 src/elflint.c:2103
+#: src/elflint.c:2045 src/elflint.c:2102
#, c-format
msgid "section [%2d] '%s': chain array too large\n"
msgstr ""
-#: src/elflint.c:2060 src/elflint.c:2117
+#: src/elflint.c:2059 src/elflint.c:2116
#, c-format
msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2070
+#: src/elflint.c:2069
#, c-format
msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2127
+#: src/elflint.c:2126
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
-#: src/elflint.c:2140
+#: src/elflint.c:2139
#, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr ""
-#: src/elflint.c:2152
+#: src/elflint.c:2151
#, c-format
msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
msgstr ""
-#: src/elflint.c:2168
+#: src/elflint.c:2167
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
"least %ld)\n"
msgstr ""
-#: src/elflint.c:2177
+#: src/elflint.c:2176
#, c-format
msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
msgstr ""
-#: src/elflint.c:2211
+#: src/elflint.c:2210
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
msgstr ""
-#: src/elflint.c:2232
+#: src/elflint.c:2231
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
"undefined\n"
msgstr ""
-#: src/elflint.c:2245
+#: src/elflint.c:2244
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
msgstr ""
-#: src/elflint.c:2254
+#: src/elflint.c:2253
#, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
msgstr ""
-#: src/elflint.c:2284
+#: src/elflint.c:2283
#, c-format
msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2289
+#: src/elflint.c:2288
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2295
+#: src/elflint.c:2294
#, c-format
msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
msgstr ""
-#: src/elflint.c:2308
+#: src/elflint.c:2307
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
-#: src/elflint.c:2326
+#: src/elflint.c:2325
#, c-format
msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
msgstr ""
-#: src/elflint.c:2330
+#: src/elflint.c:2329
#, c-format
msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
msgstr ""
-#: src/elflint.c:2340
+#: src/elflint.c:2339
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
msgstr ""
-#: src/elflint.c:2345
+#: src/elflint.c:2344
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr ""
-#: src/elflint.c:2350
+#: src/elflint.c:2349
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
"entries\n"
msgstr ""
-#: src/elflint.c:2399
+#: src/elflint.c:2398
#, c-format
msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
msgstr ""
-#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523
+#: src/elflint.c:2422 src/elflint.c:2487 src/elflint.c:2522
#, c-format
msgid "hash section [%2zu] '%s' does not contain enough data\n"
msgstr ""
-#: src/elflint.c:2444
+#: src/elflint.c:2443
#, c-format
msgid "hash section [%2zu] '%s' has zero bit mask words\n"
msgstr ""
-#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536
+#: src/elflint.c:2454 src/elflint.c:2498 src/elflint.c:2535
#, c-format
msgid "hash section [%2zu] '%s' uses too much data\n"
msgstr ""
-#: src/elflint.c:2470
+#: src/elflint.c:2469
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
"%<PRIu32>, nentries: %<PRIu32>\n"
msgstr ""
-#: src/elflint.c:2557
+#: src/elflint.c:2556
#, c-format
msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
msgstr ""
-#: src/elflint.c:2567 src/elflint.c:2571
+#: src/elflint.c:2566 src/elflint.c:2570
#, c-format
msgid "section [%2zu] '%s': reference to symbol index 0\n"
msgstr ""
-#: src/elflint.c:2578
+#: src/elflint.c:2577
#, 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:2590
+#: src/elflint.c:2589
#, 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:2606
+#: src/elflint.c:2605
#, c-format
msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
msgstr ""
-#: src/elflint.c:2626
+#: src/elflint.c:2625
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
msgstr ""
-#: src/elflint.c:2637
+#: src/elflint.c:2636
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
msgstr ""
-#: src/elflint.c:2642
+#: src/elflint.c:2641
#, c-format
msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
msgstr ""
-#: src/elflint.c:2648
+#: src/elflint.c:2647
#, c-format
msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
msgstr ""
-#: src/elflint.c:2653
+#: src/elflint.c:2652
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr ""
-#: src/elflint.c:2660
+#: src/elflint.c:2659
#, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
msgstr ""
-#: src/elflint.c:2664
+#: src/elflint.c:2663
#, c-format
msgid "section [%2d] '%s': cannot get symbol name for signature\n"
msgstr ""
-#: src/elflint.c:2669
+#: src/elflint.c:2668
#, c-format
msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
msgstr ""
-#: src/elflint.c:2675
+#: src/elflint.c:2674
#, c-format
msgid "section [%2d] '%s': sh_flags not set correctly\n"
msgstr ""
-#: src/elflint.c:2681
+#: src/elflint.c:2680
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
msgstr ""
-#: src/elflint.c:2690
+#: src/elflint.c:2689
#, c-format
msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
msgstr ""
-#: src/elflint.c:2696
+#: src/elflint.c:2695
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
msgstr ""
-#: src/elflint.c:2704
+#: src/elflint.c:2703
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr ""
-#: src/elflint.c:2708
+#: src/elflint.c:2707
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
msgstr ""
-#: src/elflint.c:2719
+#: src/elflint.c:2718
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr ""
-#: src/elflint.c:2731
+#: src/elflint.c:2730
#, fuzzy, c-format
msgid "section [%2d] '%s': section index %zu out of range\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:2740
+#: src/elflint.c:2739
#, c-format
msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
msgstr ""
-#: src/elflint.c:2747
+#: src/elflint.c:2746
#, c-format
msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:2753
+#: src/elflint.c:2752
#, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
"SHF_GROUP flag set\n"
msgstr ""
-#: src/elflint.c:2760
+#: src/elflint.c:2759
#, c-format
msgid "section [%2d] '%s' is contained in more than one section group\n"
msgstr ""
-#: src/elflint.c:2957
+#: src/elflint.c:2956
#, 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:2969
+#: src/elflint.c:2968
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
"'%s'\n"
msgstr ""
-#: src/elflint.c:2985
+#: src/elflint.c:2984
#, c-format
msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
msgstr ""
-#: src/elflint.c:3001
+#: src/elflint.c:3000
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
msgstr ""
-#: src/elflint.c:3009
+#: src/elflint.c:3008
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
msgstr ""
-#: src/elflint.c:3023
+#: src/elflint.c:3022
#, c-format
msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
msgstr ""
-#: src/elflint.c:3028
+#: src/elflint.c:3027
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
msgstr ""
-#: src/elflint.c:3038
+#: src/elflint.c:3037
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
msgstr ""
-#: src/elflint.c:3091
+#: src/elflint.c:3090
#, c-format
msgid "more than one version reference section present\n"
msgstr ""
-#: src/elflint.c:3099 src/elflint.c:3246
+#: src/elflint.c:3098 src/elflint.c:3245
#, c-format
msgid "section [%2d] '%s': sh_link does not link to string table\n"
msgstr ""
-#: src/elflint.c:3124 src/elflint.c:3300
+#: src/elflint.c:3123 src/elflint.c:3299
#, c-format
msgid "section [%2d] '%s': entry %d has wrong version %d\n"
msgstr ""
-#: src/elflint.c:3131 src/elflint.c:3307
+#: src/elflint.c:3130 src/elflint.c:3306
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
msgstr ""
-#: src/elflint.c:3141
+#: src/elflint.c:3140
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
msgstr ""
-#: src/elflint.c:3149
+#: src/elflint.c:3148
#, c-format
msgid "section [%2d] '%s': entry %d references unknown dependency\n"
msgstr ""
-#: src/elflint.c:3161
+#: src/elflint.c:3160
#, c-format
msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3169
+#: src/elflint.c:3168
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
"reference\n"
msgstr ""
-#: src/elflint.c:3178
+#: src/elflint.c:3177
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
"%#x, expected %#x\n"
msgstr ""
-#: src/elflint.c:3187
+#: src/elflint.c:3186
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
"name '%s'\n"
msgstr ""
-#: src/elflint.c:3198
+#: src/elflint.c:3197
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
msgstr ""
-#: src/elflint.c:3215 src/elflint.c:3391
+#: src/elflint.c:3214 src/elflint.c:3390
#, c-format
msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
msgstr ""
-#: src/elflint.c:3223 src/elflint.c:3399
+#: src/elflint.c:3222 src/elflint.c:3398
#, 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:3238
+#: src/elflint.c:3237
#, c-format
msgid "more than one version definition section present\n"
msgstr ""
-#: src/elflint.c:3285
+#: src/elflint.c:3284
#, c-format
msgid "section [%2d] '%s': more than one BASE definition\n"
msgstr ""
-#: src/elflint.c:3289
+#: src/elflint.c:3288
#, c-format
msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
msgstr ""
-#: src/elflint.c:3295
+#: src/elflint.c:3294
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3322
+#: src/elflint.c:3321
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
msgstr ""
-#: src/elflint.c:3329
+#: src/elflint.c:3328
#, c-format
msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
msgstr ""
-#: src/elflint.c:3337
+#: src/elflint.c:3336
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
msgstr ""
-#: src/elflint.c:3357
+#: src/elflint.c:3356
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3374
+#: src/elflint.c:3373
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3407
+#: src/elflint.c:3406
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr ""
-#: src/elflint.c:3423
+#: src/elflint.c:3422
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr ""
-#: src/elflint.c:3448
+#: src/elflint.c:3447
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr ""
-#: src/elflint.c:3464
+#: src/elflint.c:3463
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr ""
-#: src/elflint.c:3475
+#: src/elflint.c:3474
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
-#: src/elflint.c:3484
+#: src/elflint.c:3483
#, c-format
msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
msgstr ""
-#: src/elflint.c:3496
+#: src/elflint.c:3495
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
msgstr ""
-#: src/elflint.c:3513
+#: src/elflint.c:3512
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
msgstr ""
-#: src/elflint.c:3522
+#: src/elflint.c:3521
#, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
msgstr ""
-#: src/elflint.c:3531
+#: src/elflint.c:3530
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
msgstr ""
-#: src/elflint.c:3546
+#: src/elflint.c:3545
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
msgstr ""
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3556
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
msgstr ""
-#: src/elflint.c:3575
+#: src/elflint.c:3574
#, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
msgstr ""
-#: src/elflint.c:3586
+#: src/elflint.c:3585
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
msgstr ""
-#: src/elflint.c:3599
+#: src/elflint.c:3598
#, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
msgstr ""
-#: src/elflint.c:3603
+#: src/elflint.c:3602
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:3613
+#: src/elflint.c:3612
#, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
msgstr ""
-#: src/elflint.c:3619
+#: src/elflint.c:3618
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
msgstr ""
-#: src/elflint.c:3716
+#: src/elflint.c:3715
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr ""
-#: src/elflint.c:3720
+#: src/elflint.c:3719
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr ""
-#: src/elflint.c:3722
+#: src/elflint.c:3721
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr ""
-#: src/elflint.c:3724
+#: src/elflint.c:3723
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr ""
-#: src/elflint.c:3726
+#: src/elflint.c:3725
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr ""
-#: src/elflint.c:3728
+#: src/elflint.c:3727
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr ""
-#: src/elflint.c:3730
+#: src/elflint.c:3729
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr ""
-#: src/elflint.c:3732
+#: src/elflint.c:3731
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr ""
-#: src/elflint.c:3735
+#: src/elflint.c:3734
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
"value\n"
msgstr ""
-#: src/elflint.c:3739
+#: src/elflint.c:3738
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in shstrndx\n"
msgstr ""
-#: src/elflint.c:3743
+#: src/elflint.c:3742
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in phnum\n"
msgstr ""
-#: src/elflint.c:3761
+#: src/elflint.c:3760
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
msgstr ""
-#: src/elflint.c:3770
+#: src/elflint.c:3769
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr ""
-#: src/elflint.c:3797
+#: src/elflint.c:3796
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3814
+#: src/elflint.c:3813
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3832
+#: src/elflint.c:3831
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
msgstr ""
-#: src/elflint.c:3849
+#: src/elflint.c:3848
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr ""
-#: src/elflint.c:3855 src/elflint.c:3887
+#: src/elflint.c:3854 src/elflint.c:3886
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
msgstr ""
-#: src/elflint.c:3860 src/elflint.c:3892
+#: src/elflint.c:3859 src/elflint.c:3891
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
"segments\n"
msgstr ""
-#: src/elflint.c:3868
+#: src/elflint.c:3867
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
msgstr ""
-#: src/elflint.c:3911
+#: src/elflint.c:3910
#, c-format
msgid "section [%2zu] '%s': size not multiple of entry size\n"
msgstr ""
-#: src/elflint.c:3916
+#: src/elflint.c:3915
#, c-format
msgid "cannot get section header\n"
msgstr ""
-#: src/elflint.c:3926
+#: src/elflint.c:3925
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr ""
-#: src/elflint.c:3946
+#: src/elflint.c:3945
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3956
+#: src/elflint.c:3955
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3964
+#: src/elflint.c:3963
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
-#: src/elflint.c:3974
+#: src/elflint.c:3973
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:3979
+#: src/elflint.c:3978
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:3985
+#: src/elflint.c:3984
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr ""
-#: src/elflint.c:3991
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
-#: src/elflint.c:3996
+#: src/elflint.c:3995
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-#: src/elflint.c:4003
+#: src/elflint.c:4002
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
-#: src/elflint.c:4008
+#: src/elflint.c:4007
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-#: src/elflint.c:4027
+#: src/elflint.c:4026
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
-#: src/elflint.c:4036
+#: src/elflint.c:4035
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr ""
-#: src/elflint.c:4043
+#: src/elflint.c:4042
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr ""
-#: src/elflint.c:4074
+#: src/elflint.c:4073
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
"%d\n"
msgstr ""
-#: src/elflint.c:4084
+#: src/elflint.c:4083
#, 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:4110
+#: src/elflint.c:4109
#, 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:4121
+#: src/elflint.c:4120
#, 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:4132
+#: src/elflint.c:4131
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-#: src/elflint.c:4142
+#: src/elflint.c:4141
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
-#: src/elflint.c:4152
+#: src/elflint.c:4151
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-#: src/elflint.c:4158
+#: src/elflint.c:4157
#, 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:4166
+#: src/elflint.c:4165
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-#: src/elflint.c:4217
+#: src/elflint.c:4216
#, c-format
msgid "more than one version symbol table present\n"
msgstr ""
-#: src/elflint.c:4240
+#: src/elflint.c:4239
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
-#: src/elflint.c:4251
+#: src/elflint.c:4250
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
-#: src/elflint.c:4257
+#: src/elflint.c:4256
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
-#: src/elflint.c:4268
+#: src/elflint.c:4267
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
"exist\n"
msgstr ""
-#: src/elflint.c:4281
+#: src/elflint.c:4280
#, c-format
msgid "duplicate version index %d\n"
msgstr ""
-#: src/elflint.c:4295
+#: src/elflint.c:4294
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
-#: src/elflint.c:4344
+#: src/elflint.c:4343
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:4348
+#: src/elflint.c:4347
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
msgstr ""
-#: src/elflint.c:4397
+#: src/elflint.c:4403
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
"offset %zu\n"
msgstr ""
-#: src/elflint.c:4402
+#: src/elflint.c:4408
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
"'%s' at offset %zu\n"
msgstr ""
-#: src/elflint.c:4421
+#: src/elflint.c:4427
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4441
+#: src/elflint.c:4447
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr ""
-#: src/elflint.c:4444
+#: src/elflint.c:4450
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4465
+#: src/elflint.c:4471
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4472
+#: src/elflint.c:4478
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
-#: src/elflint.c:4475
+#: src/elflint.c:4481
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4493
+#: src/elflint.c:4499
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
msgstr ""
-#: src/elflint.c:4508
+#: src/elflint.c:4514
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr ""
-#: src/elflint.c:4518
+#: src/elflint.c:4524
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:4529
+#: src/elflint.c:4535
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr ""
-#: src/elflint.c:4537
+#: src/elflint.c:4543
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr ""
-#: src/elflint.c:4544
+#: src/elflint.c:4550
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr ""
-#: src/elflint.c:4558
+#: src/elflint.c:4564
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4561
+#: src/elflint.c:4567
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4571
+#: src/elflint.c:4577
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr ""
-#: src/elflint.c:4592
+#: src/elflint.c:4598
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
-#: src/elflint.c:4603
+#: src/elflint.c:4609
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
-#: src/elflint.c:4610
+#: src/elflint.c:4616
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4619 src/elflint.c:4642
+#: src/elflint.c:4625 src/elflint.c:4648
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr ""
-#: src/elflint.c:4648
+#: src/elflint.c:4654
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
-#: src/elflint.c:4675
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4678
+#: src/elflint.c:4684
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4691
+#: src/elflint.c:4697
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr ""
-#: src/elflint.c:4699
+#: src/elflint.c:4705
#, c-format
msgid "call frame search table must be allocated\n"
msgstr ""
-#: src/elflint.c:4702
+#: src/elflint.c:4708
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr ""
-#: src/elflint.c:4706
+#: src/elflint.c:4712
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
-#: src/elflint.c:4709
+#: src/elflint.c:4715
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr ""
-#: src/elflint.c:4714
+#: src/elflint.c:4720
#, c-format
msgid "call frame search table must not be executable\n"
msgstr ""
-#: src/elflint.c:4717
+#: src/elflint.c:4723
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr ""
-#: src/elflint.c:4728
+#: src/elflint.c:4737
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
-#: src/elflint.c:4735
+#: src/elflint.c:4744
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
-#: src/elflint.c:4738
+#: src/elflint.c:4747
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
"alignment\n"
msgstr ""
-#: src/elflint.c:4751
+#: src/elflint.c:4760
#, 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:4785
+#: src/elflint.c:4794
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr ""
-#: src/elflint.c:4797
+#: src/elflint.c:4806
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/elflint.c:4818
+#: src/elflint.c:4827
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
-#: src/findtextrel.c:61
+#: src/findtextrel.c:60
msgid "Input Selection:"
msgstr ""
-#: src/findtextrel.c:62
+#: src/findtextrel.c:61
msgid "Prepend PATH to all file names"
msgstr ""
-#: src/findtextrel.c:64
+#: src/findtextrel.c:63
msgid "Use PATH as root of debuginfo hierarchy"
msgstr ""
#. Short description of program.
-#: src/findtextrel.c:71
+#: src/findtextrel.c:70
msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr ""
#. Strings for arguments in help texts.
-#: src/findtextrel.c:75 src/nm.c:108 src/objdump.c:71 src/size.c:80
-#: src/strings.c:87 src/strip.c:101
+#: src/findtextrel.c:74 src/nm.c:107 src/objdump.c:70 src/size.c:79
+#: src/strings.c:86 src/strip.c:100
msgid "[FILE...]"
msgstr ""
-#: src/findtextrel.c:224
+#: src/findtextrel.c:223
#, c-format
msgid "cannot get ELF header '%s': %s"
msgstr ""
-#: src/findtextrel.c:235
+#: src/findtextrel.c:234
#, c-format
msgid "'%s' is not a DSO or PIE"
msgstr ""
-#: src/findtextrel.c:255
+#: src/findtextrel.c:254
#, c-format
msgid "getting get section header of section %zu: %s"
msgstr ""
-#: src/findtextrel.c:279
+#: src/findtextrel.c:278
#, c-format
msgid "cannot read dynamic section: %s"
msgstr ""
-#: src/findtextrel.c:300
+#: src/findtextrel.c:299
#, c-format
msgid "no text relocations reported in '%s'"
msgstr ""
-#: src/findtextrel.c:311
+#: src/findtextrel.c:310
#, c-format
msgid "while reading ELF file"
msgstr ""
-#: src/findtextrel.c:315
+#: src/findtextrel.c:314
#, fuzzy, c-format
msgid "cannot get program header count: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/findtextrel.c:326 src/findtextrel.c:341
+#: src/findtextrel.c:325 src/findtextrel.c:340
#, fuzzy, c-format
msgid "cannot get program header index at offset %zd: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/findtextrel.c:397
+#: src/findtextrel.c:396
#, c-format
msgid "cannot get symbol table section %zu in '%s': %s"
msgstr ""
-#: src/findtextrel.c:418 src/findtextrel.c:441
+#: src/findtextrel.c:417 src/findtextrel.c:440
#, c-format
msgid "cannot get relocation at index %d in section %zu in '%s': %s"
msgstr ""
-#: src/findtextrel.c:507
+#: src/findtextrel.c:506
#, c-format
msgid "%s not compiled with -fpic/-fPIC\n"
msgstr ""
-#: src/findtextrel.c:561
+#: src/findtextrel.c:560
#, c-format
msgid ""
"the file containing the function '%s' is not compiled with -fpic/-fPIC\n"
msgstr ""
-#: src/findtextrel.c:568 src/findtextrel.c:588
+#: src/findtextrel.c:567 src/findtextrel.c:587
#, c-format
msgid ""
"the file containing the function '%s' might not be compiled with -fpic/-"
"fPIC\n"
msgstr ""
-#: src/findtextrel.c:576
+#: src/findtextrel.c:575
#, c-format
msgid ""
"either the file containing the function '%s' or the file containing the "
"function '%s' is not compiled with -fpic/-fPIC\n"
msgstr ""
-#: src/findtextrel.c:596
+#: src/findtextrel.c:595
#, c-format
msgid ""
"a relocation modifies memory at offset %llu in a write-protected segment\n"
msgstr ""
-#: src/nm.c:66 src/strip.c:70
+#: src/nm.c:65 src/strip.c:69
msgid "Output selection:"
msgstr ""
-#: src/nm.c:67
+#: src/nm.c:66
msgid "Display debugger-only symbols"
msgstr ""
-#: src/nm.c:68
+#: src/nm.c:67
msgid "Display only defined symbols"
msgstr "Zeige nur definierte Symbole"
-#: src/nm.c:71
+#: src/nm.c:70
msgid "Display dynamic symbols instead of normal symbols"
msgstr "Zeige dynamische Symbole anstelle normaler Symbole"
-#: src/nm.c:72
+#: src/nm.c:71
msgid "Display only external symbols"
msgstr "Zeige nur externe Symbole"
-#: src/nm.c:73
+#: src/nm.c:72
msgid "Display only undefined symbols"
msgstr "Zeige nur undefinierte Symbole"
-#: src/nm.c:75
+#: src/nm.c:74
msgid "Include index for symbols from archive members"
msgstr ""
-#: src/nm.c:77 src/size.c:54
+#: src/nm.c:76 src/size.c:53
msgid "Output format:"
msgstr "Ausgabeformat:"
-#: src/nm.c:79
+#: src/nm.c:78
#, fuzzy
msgid "Print name of the input file before every symbol"
msgstr "Zeige Name der Eingabedatei vor jedem Symbol"
-#: src/nm.c:82
+#: src/nm.c:81
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The "
"default is `sysv'"
@@ -3621,76 +3629,76 @@ msgstr ""
"Benutze das Ausgabeformat FORMAT. FORMAT kann `bsd', `sysv' or `posix' sein. "
"Der Standard ist `sysv'"
-#: src/nm.c:84
+#: src/nm.c:83
msgid "Same as --format=bsd"
msgstr "Genau wie --format=bsd"
-#: src/nm.c:85
+#: src/nm.c:84
msgid "Same as --format=posix"
msgstr "Genau wie --format=posix"
-#: src/nm.c:86 src/size.c:60
+#: src/nm.c:85 src/size.c:59
msgid "Use RADIX for printing symbol values"
msgstr "Benutze RADIX zur Ausgabe von Symbolwerten"
-#: src/nm.c:87
+#: src/nm.c:86
#, fuzzy
msgid "Mark special symbols"
msgstr "Kennzeichne schwache Symbole"
-#: src/nm.c:89
+#: src/nm.c:88
#, fuzzy
msgid "Print size of defined symbols"
msgstr "Zeige Grösse der definierten Symbole"
-#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:69
+#: src/nm.c:90 src/size.c:67 src/strip.c:74 src/unstrip.c:68
msgid "Output options:"
msgstr "Ausgabeoptionen:"
-#: src/nm.c:92
+#: src/nm.c:91
msgid "Sort symbols numerically by address"
msgstr "Symbole anhand der Adresse numerisch sortieren"
-#: src/nm.c:94
+#: src/nm.c:93
msgid "Do not sort the symbols"
msgstr "Symbole nicht sortieren"
-#: src/nm.c:95
+#: src/nm.c:94
msgid "Reverse the sense of the sort"
msgstr "Sortierreihenfolge umkehren"
-#: src/nm.c:98
+#: src/nm.c:97
msgid "Decode low-level symbol names into source code names"
msgstr ""
#. Short description of program.
-#: src/nm.c:105
+#: src/nm.c:104
msgid "List symbols from FILEs (a.out by default)."
msgstr ""
-#: src/nm.c:116 src/objdump.c:79
+#: src/nm.c:115 src/objdump.c:78
#, fuzzy
msgid "Output formatting"
msgstr "Ausgabeformat:"
-#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133
+#: src/nm.c:139 src/objdump.c:102 src/size.c:104 src/strip.c:132
#, fuzzy, c-format
msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: INTERNER FEHLER %d (%s-%s): %s"
-#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2767
+#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
+#: src/strip.c:2766
#, c-format
msgid "while closing '%s'"
msgstr "beim Schliessen von '%s'"
-#: src/nm.c:403 src/objdump.c:280 src/strip.c:822
+#: src/nm.c:402 src/objdump.c:279 src/strip.c:827
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: Dateiformat nicht erkannt"
#. Note: 0 is no valid offset.
-#: src/nm.c:443
+#: src/nm.c:442
#, fuzzy
msgid ""
"\n"
@@ -3699,44 +3707,43 @@ msgstr ""
"\n"
"Archiv-Index:"
-#: src/nm.c:452
+#: src/nm.c:451
#, c-format
msgid "invalid offset %zu for symbol %s"
msgstr "ungültiger Offset %zu für Symbol %s"
-#: src/nm.c:457
+#: src/nm.c:456
#, c-format
msgid "%s in %s\n"
msgstr ""
-#: src/nm.c:465
+#: src/nm.c:464
#, c-format
msgid "cannot reset archive offset to beginning"
msgstr ""
-#: src/nm.c:490 src/objdump.c:328
+#: src/nm.c:489 src/objdump.c:327
#, c-format
msgid "%s%s%s: file format not recognized"
msgstr "%s%s%s: Dateiformat nicht erkannt"
-#: src/nm.c:704
-#, c-format
+#: src/nm.c:702
msgid "cannot create search tree"
msgstr "Kann Suchbaum nicht erstellen"
-#: src/nm.c:745 src/nm.c:1238 src/objdump.c:781 src/readelf.c:637
-#: src/readelf.c:1451 src/readelf.c:1602 src/readelf.c:1803 src/readelf.c:2009
-#: src/readelf.c:2199 src/readelf.c:2377 src/readelf.c:2453 src/readelf.c:2719
-#: src/readelf.c:2795 src/readelf.c:2882 src/readelf.c:3478 src/readelf.c:3528
-#: src/readelf.c:3598 src/readelf.c:11409 src/readelf.c:12603
-#: src/readelf.c:12814 src/readelf.c:12883 src/size.c:398 src/size.c:470
-#: src/strip.c:1089
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
+#: src/readelf.c:1471 src/readelf.c:1620 src/readelf.c:1847 src/readelf.c:2084
+#: src/readelf.c:2273 src/readelf.c:2451 src/readelf.c:2526 src/readelf.c:2791
+#: src/readelf.c:2866 src/readelf.c:2952 src/readelf.c:3547 src/readelf.c:3595
+#: src/readelf.c:3664 src/readelf.c:11581 src/readelf.c:12771
+#: src/readelf.c:12981 src/readelf.c:13049 src/size.c:396 src/size.c:467
+#: src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr ""
#. We always print this prolog.
-#: src/nm.c:770
+#: src/nm.c:767
#, c-format
msgid ""
"\n"
@@ -3750,110 +3757,110 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:773
+#: src/nm.c:770
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
"\n"
msgstr ""
-#: src/nm.c:775
+#: src/nm.c:772
msgctxt "sysv"
msgid "Name"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:777
+#: src/nm.c:774
msgctxt "sysv"
msgid "Value"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:779
+#: src/nm.c:776
msgctxt "sysv"
msgid "Size"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:781
+#: src/nm.c:778
msgctxt "sysv"
msgid "Line"
msgstr ""
-#: src/nm.c:1249
+#: src/nm.c:1245
#, 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:1254
+#: src/nm.c:1250
#, 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:1335
+#: src/nm.c:1330
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: entry size in section `%s' is not what we expect"
#. XXX Add machine specific object file types.
-#: src/nm.c:1571
+#: src/nm.c:1566
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: Ungültige Operation"
-#: src/nm.c:1621
+#: src/nm.c:1616
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: keine Symbole"
-#: src/objdump.c:52
+#: src/objdump.c:51
msgid "Mode selection:"
msgstr ""
-#: src/objdump.c:53
+#: src/objdump.c:52
msgid "Display relocation information."
msgstr ""
-#: src/objdump.c:55
+#: src/objdump.c:54
msgid "Display the full contents of all sections requested"
msgstr ""
-#: src/objdump.c:57
+#: src/objdump.c:56
msgid "Display assembler code of executable sections"
msgstr ""
-#: src/objdump.c:59
+#: src/objdump.c:58
#, fuzzy
msgid "Output content selection:"
msgstr "Eingabeauswahloptionen:"
-#: src/objdump.c:61
+#: src/objdump.c:60
msgid "Only display information for section NAME."
msgstr ""
#. Short description of program.
-#: src/objdump.c:67
+#: src/objdump.c:66
msgid "Show information from FILEs (a.out by default)."
msgstr ""
-#: src/objdump.c:218 src/readelf.c:582
+#: src/objdump.c:217 src/readelf.c:608
msgid "No operation specified.\n"
msgstr "Keine Operation angegeben.\n"
-#: src/objdump.c:258 src/objdump.c:270
+#: src/objdump.c:257 src/objdump.c:269
#, c-format
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:363 src/readelf.c:2104 src/readelf.c:2296
+#: src/objdump.c:362 src/readelf.c:2179 src/readelf.c:2370
msgid "INVALID SYMBOL"
msgstr ""
-#: src/objdump.c:378 src/readelf.c:2138 src/readelf.c:2332
+#: src/objdump.c:377 src/readelf.c:2213 src/readelf.c:2406
msgid "INVALID SECTION"
msgstr ""
-#: src/objdump.c:498
+#: src/objdump.c:497
#, c-format
msgid ""
"\n"
@@ -3861,106 +3868,105 @@ msgid ""
"%-*s TYPE VALUE\n"
msgstr ""
-#: src/objdump.c:501
+#: src/objdump.c:500
msgid "OFFSET"
msgstr "OFFSET"
-#: src/objdump.c:566
+#: src/objdump.c:565
#, c-format
msgid "Contents of section %s:\n"
msgstr "Inhalt des Abschnitts %s:\n"
-#: src/objdump.c:687
-#, c-format
+#: src/objdump.c:686
msgid "cannot disassemble"
msgstr "Disassemblieren nicht möglich"
-#: src/objdump.c:759
-#, fuzzy, c-format
+#: src/objdump.c:757
+#, fuzzy
msgid "cannot create backend for elf file"
msgstr "neue Datei konnte nicht angelegt werden"
#. Short description of program.
-#: src/ranlib.c:63
+#: src/ranlib.c:62
msgid "Generate an index to speed access to archives."
msgstr "Erstelle einen Index zur Beschleunigung des Zugriffs auf Archive."
#. Strings for arguments in help texts.
-#: src/ranlib.c:66
+#: src/ranlib.c:65
msgid "ARCHIVE"
msgstr "ARCHIV"
-#: src/ranlib.c:102
+#: src/ranlib.c:101
#, c-format
msgid "Archive name required"
msgstr "Archivname benötigt"
-#: src/ranlib.c:166
+#: src/ranlib.c:165
#, c-format
msgid "'%s' is no archive"
msgstr "'%s' ist kein Archiv"
-#: src/ranlib.c:201
+#: src/ranlib.c:200
#, c-format
msgid "error while freeing sub-ELF descriptor: %s"
msgstr ""
-#: src/readelf.c:97
+#: src/readelf.c:96
#, fuzzy
msgid "ELF input selection:"
msgstr "Eingabeauswahloptionen:"
-#: src/readelf.c:99
+#: src/readelf.c:98
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
-#: src/readelf.c:102
+#: src/readelf.c:101
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
msgstr ""
-#: src/readelf.c:104
+#: src/readelf.c:103
#, fuzzy
msgid "ELF output selection:"
msgstr "Eingabeauswahloptionen:"
-#: src/readelf.c:106
+#: src/readelf.c:105
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr ""
-#: src/readelf.c:107
+#: src/readelf.c:106
msgid "Display the dynamic segment"
msgstr ""
-#: src/readelf.c:108
+#: src/readelf.c:107
msgid "Display the ELF file header"
msgstr ""
-#: src/readelf.c:110
+#: src/readelf.c:109
msgid "Display histogram of bucket list lengths"
msgstr ""
-#: src/readelf.c:111
+#: src/readelf.c:110
msgid "Display the program headers"
msgstr "Programm-Köpfe anzeigen"
-#: src/readelf.c:113
+#: src/readelf.c:112
msgid "Display relocations"
msgstr "Relocations anzeigen"
-#: src/readelf.c:114
+#: src/readelf.c:113
#, fuzzy
msgid "Display the section groups"
msgstr "Programm-Köpfe anzeigen"
-#: src/readelf.c:115
+#: src/readelf.c:114
#, fuzzy
msgid "Display the sections' headers"
msgstr "Programm-Köpfe anzeigen"
-#: src/readelf.c:118
+#: src/readelf.c:117
#, fuzzy
msgid "Display the symbol table sections"
msgstr "Symboltabelle anzeigen"
@@ -4012,406 +4018,410 @@ msgid "Display the symbol index of an archive"
msgstr "Symbolindex des Archivs anzeigen"
#: src/readelf.c:141
+msgid "Use the dynamic segment when possible for displaying info"
+msgstr ""
+
+#: src/readelf.c:143
msgid "Output control:"
msgstr "Ausgabekontrolle:"
-#: src/readelf.c:143
+#: src/readelf.c:145
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:145
+#: src/readelf.c:147
#, 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:147
+#: src/readelf.c:149
msgid "Ignored for compatibility (lines always wide)"
msgstr ""
-#: src/readelf.c:149
+#: src/readelf.c:151
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
msgstr ""
#. Short description of program.
-#: src/readelf.c:154
+#: src/readelf.c:156
msgid "Print information from ELF file in human-readable form."
msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben."
#. Look up once.
-#: src/readelf.c:350
+#: src/readelf.c:373
msgid "yes"
msgstr "ja"
-#: src/readelf.c:351
+#: src/readelf.c:374
msgid "no"
msgstr "nein"
-#: src/readelf.c:550
+#: src/readelf.c:576
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr ""
-#: src/readelf.c:621 src/readelf.c:732
+#: src/readelf.c:647 src/readelf.c:758
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
-#: src/readelf.c:628 src/readelf.c:955 src/strip.c:1184
+#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr ""
-#: src/readelf.c:646 src/readelf.c:1265 src/readelf.c:1475
+#: src/readelf.c:672 src/readelf.c:1287 src/readelf.c:1495
#, c-format
msgid "cannot get section: %s"
msgstr ""
-#: src/readelf.c:655 src/readelf.c:1272 src/readelf.c:1483 src/readelf.c:12834
-#: src/unstrip.c:397 src/unstrip.c:428 src/unstrip.c:491 src/unstrip.c:612
-#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1224
-#: src/unstrip.c:1351 src/unstrip.c:1375 src/unstrip.c:1431 src/unstrip.c:1472
-#: src/unstrip.c:1665 src/unstrip.c:1816 src/unstrip.c:1959 src/unstrip.c:2058
+#: src/readelf.c:681 src/readelf.c:1294 src/readelf.c:1502 src/readelf.c:13001
+#: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610
+#: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222
+#: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470
+#: src/unstrip.c:1662 src/unstrip.c:1813 src/unstrip.c:1956 src/unstrip.c:2055
#, c-format
msgid "cannot get section header: %s"
msgstr ""
-#: src/readelf.c:663
+#: src/readelf.c:689
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:672 src/readelf.c:6634 src/readelf.c:10681 src/readelf.c:10783
-#: src/readelf.c:10961
+#: src/readelf.c:698 src/readelf.c:6797 src/readelf.c:10854 src/readelf.c:10956
+#: src/readelf.c:11134
#, c-format
msgid "cannot get %s content: %s"
msgstr ""
-#: src/readelf.c:688
+#: src/readelf.c:714
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/readelf.c:697
+#: src/readelf.c:723
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:703 src/readelf.c:720 src/readelf.c:749
+#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr ""
-#: src/readelf.c:710
+#: src/readelf.c:736
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/readelf.c:744
+#: src/readelf.c:770
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr ""
-#: src/readelf.c:848
+#: src/readelf.c:874
#, c-format
msgid "cannot stat input file"
msgstr ""
-#: src/readelf.c:850
+#: src/readelf.c:876
#, c-format
msgid "input file is empty"
msgstr ""
-#: src/readelf.c:852
+#: src/readelf.c:878
#, c-format
msgid "failed reading '%s': %s"
msgstr "Konnte '%s' nicht lesen: %s"
-#: src/readelf.c:881
+#: src/readelf.c:907
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:940
+#: src/readelf.c:966
#, c-format
msgid "cannot read ELF header: %s"
msgstr ""
-#: src/readelf.c:948
+#: src/readelf.c:974
#, c-format
msgid "cannot create EBL handle"
msgstr ""
-#: src/readelf.c:961
+#: src/readelf.c:985
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:993
+#: src/readelf.c:1017
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "Konnte %s: %s nicht lesen"
-#: src/readelf.c:1054
+#: src/readelf.c:1078
msgid "NONE (None)"
msgstr ""
-#: src/readelf.c:1055
+#: src/readelf.c:1079
msgid "REL (Relocatable file)"
msgstr ""
-#: src/readelf.c:1056
+#: src/readelf.c:1080
msgid "EXEC (Executable file)"
msgstr ""
-#: src/readelf.c:1057
+#: src/readelf.c:1081
msgid "DYN (Shared object file)"
msgstr ""
-#: src/readelf.c:1058
+#: src/readelf.c:1082
msgid "CORE (Core file)"
msgstr ""
-#: src/readelf.c:1063
+#: src/readelf.c:1087
#, c-format
msgid "OS Specific: (%x)\n"
msgstr ""
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1065
+#: src/readelf.c:1089
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr ""
-#: src/readelf.c:1075
+#: src/readelf.c:1099
msgid ""
"ELF Header:\n"
" Magic: "
msgstr ""
-#: src/readelf.c:1079
+#: src/readelf.c:1103
#, c-format
msgid ""
"\n"
" Class: %s\n"
msgstr ""
-#: src/readelf.c:1084
+#: src/readelf.c:1108
#, fuzzy, c-format
msgid " Data: %s\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:1090
+#: src/readelf.c:1114
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr ""
-#: src/readelf.c:1092 src/readelf.c:1114
+#: src/readelf.c:1116 src/readelf.c:1138
msgid "(current)"
msgstr "(aktuell)"
-#: src/readelf.c:1096
+#: src/readelf.c:1120
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: src/readelf.c:1099
+#: src/readelf.c:1123
#, c-format
msgid " ABI Version: %hhd\n"
msgstr ""
-#: src/readelf.c:1102
+#: src/readelf.c:1126
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1107
+#: src/readelf.c:1131
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: src/readelf.c:1109
+#: src/readelf.c:1133
#, fuzzy, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:1112
+#: src/readelf.c:1136
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: src/readelf.c:1116
+#: src/readelf.c:1140
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1119
+#: src/readelf.c:1143
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1120 src/readelf.c:1123
+#: src/readelf.c:1144 src/readelf.c:1147
msgid "(bytes into file)"
msgstr ""
-#: src/readelf.c:1122
+#: src/readelf.c:1146
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1125
+#: src/readelf.c:1149
#, c-format
msgid " Flags: %s\n"
msgstr ""
-#: src/readelf.c:1128
+#: src/readelf.c:1152
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1129 src/readelf.c:1132 src/readelf.c:1149
+#: src/readelf.c:1153 src/readelf.c:1156 src/readelf.c:1173
msgid "(bytes)"
msgstr "(Bytes)"
-#: src/readelf.c:1131
+#: src/readelf.c:1155
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1134
+#: src/readelf.c:1158
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1141
+#: src/readelf.c:1165
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr ""
-#: src/readelf.c:1144 src/readelf.c:1161 src/readelf.c:1175
+#: src/readelf.c:1168 src/readelf.c:1185 src/readelf.c:1199
msgid " ([0] not available)"
msgstr ""
-#: src/readelf.c:1148
+#: src/readelf.c:1172
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1151
+#: src/readelf.c:1175
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1158
+#: src/readelf.c:1182
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr ""
#. We managed to get the zeroth section.
-#: src/readelf.c:1171
+#: src/readelf.c:1195
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr ""
-#: src/readelf.c:1179
+#: src/readelf.c:1203
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
"\n"
msgstr ""
-#: src/readelf.c:1183
+#: src/readelf.c:1207
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
"\n"
msgstr ""
-#: src/readelf.c:1230 src/readelf.c:1440
+#: src/readelf.c:1253 src/readelf.c:1461
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:1233
+#: src/readelf.c:1256
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:1242
+#: src/readelf.c:1264
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1245
+#: src/readelf.c:1267
msgid "Section Headers:"
msgstr ""
-#: src/readelf.c:1248
+#: src/readelf.c:1270
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
msgstr ""
-#: src/readelf.c:1250
+#: src/readelf.c:1272
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
msgstr ""
-#: src/readelf.c:1255
+#: src/readelf.c:1277
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1257
+#: src/readelf.c:1279
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1335
+#: src/readelf.c:1357
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr ""
-#: src/readelf.c:1346
+#: src/readelf.c:1368
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr ""
-#: src/readelf.c:1364
+#: src/readelf.c:1386
msgid "Program Headers:"
msgstr "Programm-Köpfe:"
-#: src/readelf.c:1366
+#: src/readelf.c:1388
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1369
+#: src/readelf.c:1391
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1426
+#: src/readelf.c:1448
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr ""
-#: src/readelf.c:1453
+#: src/readelf.c:1473
msgid ""
"\n"
" Section to Segment mapping:\n"
" Segment Sections..."
msgstr ""
-#: src/readelf.c:1464 src/unstrip.c:2117 src/unstrip.c:2159 src/unstrip.c:2166
+#: src/readelf.c:1484 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
#, c-format
msgid "cannot get program header: %s"
msgstr ""
-#: src/readelf.c:1610
+#: src/readelf.c:1628
#, c-format
msgid ""
"\n"
@@ -4422,7 +4432,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1615
+#: src/readelf.c:1633
#, c-format
msgid ""
"\n"
@@ -4433,31 +4443,31 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1623
+#: src/readelf.c:1641
msgid "<INVALID SYMBOL>"
msgstr ""
-#: src/readelf.c:1637
+#: src/readelf.c:1655
msgid "<INVALID SECTION>"
msgstr ""
-#: src/readelf.c:1660 src/readelf.c:2387 src/readelf.c:3494 src/readelf.c:12705
-#: src/readelf.c:12712 src/readelf.c:12756 src/readelf.c:12763
+#: src/readelf.c:1678 src/readelf.c:2461 src/readelf.c:3563 src/readelf.c:12873
+#: src/readelf.c:12880 src/readelf.c:12924 src/readelf.c:12931
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1665 src/readelf.c:2392 src/readelf.c:3499
+#: src/readelf.c:1682 src/readelf.c:2466 src/readelf.c:3567
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1809 src/readelf.c:2459 src/readelf.c:2725 src/readelf.c:2801
-#: src/readelf.c:3105 src/readelf.c:3179 src/readelf.c:5407
+#: src/readelf.c:1851 src/readelf.c:2532 src/readelf.c:2797 src/readelf.c:2872
+#: src/readelf.c:3175 src/readelf.c:3249 src/readelf.c:5570
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:1812
+#: src/readelf.c:1854
#, c-format
msgid ""
"\n"
@@ -4470,43 +4480,61 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1822
+#: src/readelf.c:1867
+#, c-format
+msgid ""
+"\n"
+"Dynamic segment contains %lu entry:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgid_plural ""
+"\n"
+"Dynamic segment contains %lu entries:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/readelf.c:1877
msgid " Type Value\n"
msgstr ""
-#: src/readelf.c:1846
+#: src/readelf.c:1886
+#, fuzzy
+msgid "cannot get string table by using dynamic segment"
+msgstr "konnte Abschnittsdaten nicht holen: %s"
+
+#: src/readelf.c:1925
#, c-format
msgid "Shared library: [%s]\n"
msgstr ""
-#: src/readelf.c:1851
+#: src/readelf.c:1929
#, c-format
msgid "Library soname: [%s]\n"
msgstr ""
-#: src/readelf.c:1856
+#: src/readelf.c:1933
#, c-format
msgid "Library rpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1861
+#: src/readelf.c:1937
#, c-format
msgid "Library runpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1881
+#: src/readelf.c:1956
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr ""
-#: src/readelf.c:1994 src/readelf.c:2184
+#: src/readelf.c:2070 src/readelf.c:2259
#, c-format
msgid ""
"\n"
"Invalid symbol table at offset %#0<PRIx64>\n"
msgstr ""
-#: src/readelf.c:2012 src/readelf.c:2202
+#: src/readelf.c:2087 src/readelf.c:2276
#, c-format
msgid ""
"\n"
@@ -4525,7 +4553,7 @@ msgstr[1] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:2027 src/readelf.c:2217
+#: src/readelf.c:2102 src/readelf.c:2291
#, c-format
msgid ""
"\n"
@@ -4536,29 +4564,29 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2037
+#: src/readelf.c:2112
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2039
+#: src/readelf.c:2114
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2092 src/readelf.c:2103 src/readelf.c:2116 src/readelf.c:2137
-#: src/readelf.c:2149 src/readelf.c:2283 src/readelf.c:2295 src/readelf.c:2309
-#: src/readelf.c:2331 src/readelf.c:2344
+#: src/readelf.c:2167 src/readelf.c:2178 src/readelf.c:2191 src/readelf.c:2212
+#: src/readelf.c:2224 src/readelf.c:2357 src/readelf.c:2369 src/readelf.c:2383
+#: src/readelf.c:2405 src/readelf.c:2418
msgid "<INVALID RELOC>"
msgstr ""
-#: src/readelf.c:2227
+#: src/readelf.c:2301
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2229
+#: src/readelf.c:2303
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2467
+#: src/readelf.c:2540
#, c-format
msgid ""
"\n"
@@ -4569,40 +4597,40 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2472
+#: src/readelf.c:2545
#, 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:2480
+#: src/readelf.c:2553
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2482
+#: src/readelf.c:2555
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2502
+#: src/readelf.c:2575
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr ""
-#: src/readelf.c:2595
+#: src/readelf.c:2668
#, c-format
msgid "bad dynamic symbol"
msgstr ""
-#: src/readelf.c:2680
+#: src/readelf.c:2753
msgid "none"
msgstr "keine"
-#: src/readelf.c:2697
+#: src/readelf.c:2770
msgid "| <unknown>"
msgstr "| <unbekannt>"
-#: src/readelf.c:2728
+#: src/readelf.c:2800
#, c-format
msgid ""
"\n"
@@ -4615,17 +4643,17 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2749
+#: src/readelf.c:2821
#, fuzzy, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n"
-#: src/readelf.c:2762
+#: src/readelf.c:2834
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Name: %s Flags: %s Version: %hu\n"
-#: src/readelf.c:2805
+#: src/readelf.c:2876
#, c-format
msgid ""
"\n"
@@ -4638,18 +4666,18 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2833
+#: src/readelf.c:2904
#, c-format
msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"
msgstr ""
-#: src/readelf.c:2848
+#: src/readelf.c:2919
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr ""
#. Print the header.
-#: src/readelf.c:3109
+#: src/readelf.c:3179
#, c-format
msgid ""
"\n"
@@ -4662,15 +4690,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3137
+#: src/readelf.c:3207
msgid " 0 *local* "
msgstr " 0 *lokal* "
-#: src/readelf.c:3142
+#: src/readelf.c:3212
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3184
+#: src/readelf.c:3254
#, c-format
msgid ""
"\n"
@@ -4685,66 +4713,66 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3206
+#: src/readelf.c:3276
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr ""
-#: src/readelf.c:3208
+#: src/readelf.c:3278
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3215
+#: src/readelf.c:3285
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3228
+#: src/readelf.c:3298
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
-#: src/readelf.c:3246 src/readelf.c:3310 src/readelf.c:3376
+#: src/readelf.c:3316 src/readelf.c:3380 src/readelf.c:3446
#, c-format
msgid "cannot get data for section %d: %s"
msgstr ""
-#: src/readelf.c:3254
+#: src/readelf.c:3324
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3283
+#: src/readelf.c:3353
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3318
+#: src/readelf.c:3388
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3349
+#: src/readelf.c:3419
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3385
+#: src/readelf.c:3455
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3451
+#: src/readelf.c:3521
#, c-format
msgid ""
" Symbol Bias: %u\n"
" Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n"
msgstr ""
-#: src/readelf.c:3539
+#: src/readelf.c:3606
#, c-format
msgid ""
"\n"
@@ -4755,13 +4783,13 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3553
+#: src/readelf.c:3620
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
msgstr ""
-#: src/readelf.c:3612
+#: src/readelf.c:3680
#, c-format
msgid ""
"\n"
@@ -4769,102 +4797,102 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:3629
+#: src/readelf.c:3697
msgid " Owner Size\n"
msgstr ""
-#: src/readelf.c:3653
+#: src/readelf.c:3721
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3692
+#: src/readelf.c:3760
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3697
+#: src/readelf.c:3765
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3746
+#: src/readelf.c:3814
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3749
+#: src/readelf.c:3817
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3752
+#: src/readelf.c:3820
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3762
+#: src/readelf.c:3830
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3765
+#: src/readelf.c:3833
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3835
-#, fuzzy, c-format
+#: src/readelf.c:3903
+#, fuzzy
msgid "sprintf failure"
msgstr "mprotect fehlgeschlagen"
-#: src/readelf.c:4317
+#: src/readelf.c:4387
msgid "empty block"
msgstr ""
-#: src/readelf.c:4320
+#: src/readelf.c:4390
#, c-format
msgid "%zu byte block:"
msgstr ""
-#: src/readelf.c:4798
+#: src/readelf.c:4868
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr ""
-#: src/readelf.c:4865
+#: src/readelf.c:5028
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:4872
+#: src/readelf.c:5035
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:4879
+#: src/readelf.c:5042
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:4886
+#: src/readelf.c:5049
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:4986
+#: src/readelf.c:5149
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:4994
+#: src/readelf.c:5157
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5097
+#: src/readelf.c:5260
#, c-format
msgid ""
"\n"
@@ -4872,79 +4900,79 @@ msgid ""
" [ Code]\n"
msgstr ""
-#: src/readelf.c:5105
+#: src/readelf.c:5268
#, c-format
msgid ""
"\n"
"Abbreviation section at offset %<PRIu64>:\n"
msgstr ""
-#: src/readelf.c:5118
+#: src/readelf.c:5281
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr ""
-#: src/readelf.c:5134
+#: src/readelf.c:5297
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr ""
-#: src/readelf.c:5167 src/readelf.c:5476 src/readelf.c:5643 src/readelf.c:6028
-#: src/readelf.c:6644 src/readelf.c:8399 src/readelf.c:9145 src/readelf.c:9618
-#: src/readelf.c:9869 src/readelf.c:10035 src/readelf.c:10422
-#: src/readelf.c:10482
+#: src/readelf.c:5330 src/readelf.c:5639 src/readelf.c:5806 src/readelf.c:6191
+#: src/readelf.c:6807 src/readelf.c:8562 src/readelf.c:9308 src/readelf.c:9791
+#: src/readelf.c:10042 src/readelf.c:10208 src/readelf.c:10595
+#: src/readelf.c:10655
#, c-format
msgid ""
"\n"
"DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:5180
+#: src/readelf.c:5343
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:5280 src/readelf.c:5304 src/readelf.c:5688 src/readelf.c:9190
+#: src/readelf.c:5443 src/readelf.c:5467 src/readelf.c:5851 src/readelf.c:9353
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5282 src/readelf.c:5319 src/readelf.c:5701 src/readelf.c:9203
+#: src/readelf.c:5445 src/readelf.c:5482 src/readelf.c:5864 src/readelf.c:9366
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5283 src/readelf.c:5328 src/readelf.c:5710 src/readelf.c:9212
+#: src/readelf.c:5446 src/readelf.c:5491 src/readelf.c:5873 src/readelf.c:9375
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5285 src/readelf.c:5338 src/readelf.c:5720 src/readelf.c:9222
+#: src/readelf.c:5448 src/readelf.c:5501 src/readelf.c:5883 src/readelf.c:9385
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5323 src/readelf.c:5705 src/readelf.c:9207 src/readelf.c:10614
+#: src/readelf.c:5486 src/readelf.c:5868 src/readelf.c:9370 src/readelf.c:10787
#, fuzzy, c-format
msgid "Unknown version"
msgstr "unbekannte Version"
-#: src/readelf.c:5333 src/readelf.c:5546 src/readelf.c:5715 src/readelf.c:9217
+#: src/readelf.c:5496 src/readelf.c:5709 src/readelf.c:5878 src/readelf.c:9380
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:5344 src/readelf.c:5557 src/readelf.c:5725 src/readelf.c:9227
+#: src/readelf.c:5507 src/readelf.c:5720 src/readelf.c:5888 src/readelf.c:9390
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5397 src/readelf.c:5471
+#: src/readelf.c:5560 src/readelf.c:5634
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ""
-#: src/readelf.c:5412
+#: src/readelf.c:5575
#, c-format
msgid ""
"\n"
@@ -4955,239 +4983,239 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:5443
+#: src/readelf.c:5606
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5608
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
-#: src/readelf.c:5489 src/readelf.c:8426
+#: src/readelf.c:5652 src/readelf.c:8589
#, c-format
msgid ""
"\n"
"Table at offset %zu:\n"
msgstr ""
-#: src/readelf.c:5493 src/readelf.c:5669 src/readelf.c:6668 src/readelf.c:8437
-#: src/readelf.c:9171
+#: src/readelf.c:5656 src/readelf.c:5832 src/readelf.c:6831 src/readelf.c:8600
+#: src/readelf.c:9334
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:5509
+#: src/readelf.c:5672
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5521
+#: src/readelf.c:5684
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5525
+#: src/readelf.c:5688
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5536
+#: src/readelf.c:5699
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5542
+#: src/readelf.c:5705
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5553
+#: src/readelf.c:5716
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr ""
-#: src/readelf.c:5608
+#: src/readelf.c:5771
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5652
+#: src/readelf.c:5815
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:5675 src/readelf.c:9177
+#: src/readelf.c:5838 src/readelf.c:9340
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5730 src/readelf.c:9232
+#: src/readelf.c:5893 src/readelf.c:9395
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5746 src/readelf.c:9248
+#: src/readelf.c:5909 src/readelf.c:9411
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5748 src/readelf.c:9250
+#: src/readelf.c:5911 src/readelf.c:9413
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5754 src/readelf.c:9256
+#: src/readelf.c:5917 src/readelf.c:9419
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5765 src/readelf.c:9267
+#: src/readelf.c:5928 src/readelf.c:9430
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5769 src/readelf.c:9271
+#: src/readelf.c:5932 src/readelf.c:9434
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5821
+#: src/readelf.c:5984
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "Ungültige Daten"
-#: src/readelf.c:6006 src/readelf.c:9596
+#: src/readelf.c:6169 src/readelf.c:9769
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:6023
+#: src/readelf.c:6186
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ""
-#: src/readelf.c:6059 src/readelf.c:9651
+#: src/readelf.c:6222 src/readelf.c:9824
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:6061 src/readelf.c:9653
+#: src/readelf.c:6224 src/readelf.c:9826
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:6070 src/readelf.c:9679 src/readelf.c:9705
+#: src/readelf.c:6233 src/readelf.c:9852 src/readelf.c:9878
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6095 src/readelf.c:9789
+#: src/readelf.c:6258 src/readelf.c:9962
#, fuzzy
msgid "base address"
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:6105 src/readelf.c:9799
+#: src/readelf.c:6268 src/readelf.c:9972
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:6365
+#: src/readelf.c:6528
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6622
+#: src/readelf.c:6785
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:6640
+#: src/readelf.c:6803
#, c-format
msgid ""
"\n"
"Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:6690
+#: src/readelf.c:6853
#, c-format
msgid ""
"\n"
" [%6tx] Zero terminator\n"
msgstr ""
-#: src/readelf.c:6791 src/readelf.c:6945
+#: src/readelf.c:6954 src/readelf.c:7108
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ungültige Abschnittsausrichtung"
-#: src/readelf.c:6806
+#: src/readelf.c:6969
msgid "FDE address encoding: "
msgstr ""
-#: src/readelf.c:6812
+#: src/readelf.c:6975
msgid "LSDA pointer encoding: "
msgstr ""
-#: src/readelf.c:6922
+#: src/readelf.c:7085
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6929
+#: src/readelf.c:7092
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:6966
+#: src/readelf.c:7129
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:7051
+#: src/readelf.c:7214
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr ""
-#: src/readelf.c:7061
+#: src/readelf.c:7224
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr ""
-#: src/readelf.c:7083
+#: src/readelf.c:7246
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr ""
-#: src/readelf.c:7413
+#: src/readelf.c:7576
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Ungültige Datei"
-#: src/readelf.c:7417
+#: src/readelf.c:7580
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:7421
+#: src/readelf.c:7584
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:7736
+#: src/readelf.c:7899
#, c-format
msgid ""
"\n"
@@ -5195,12 +5223,12 @@ msgid ""
" [Offset]\n"
msgstr ""
-#: src/readelf.c:7786
+#: src/readelf.c:7949
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:7806
+#: src/readelf.c:7969
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5209,7 +5237,7 @@ msgid ""
" Type signature: %#<PRIx64>, Type offset: %#<PRIx64> [%<PRIx64>]\n"
msgstr ""
-#: src/readelf.c:7818
+#: src/readelf.c:7981
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5217,37 +5245,37 @@ msgid ""
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:7828 src/readelf.c:7989
+#: src/readelf.c:7991 src/readelf.c:8152
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7855
+#: src/readelf.c:8018
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7884
+#: src/readelf.c:8047
#, c-format
msgid "cannot get DIE offset: %s"
msgstr ""
-#: src/readelf.c:7893
+#: src/readelf.c:8056
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:7929
+#: src/readelf.c:8092
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr ""
-#: src/readelf.c:7937
+#: src/readelf.c:8100
#, c-format
msgid "cannot get next DIE: %s"
msgstr ""
-#: src/readelf.c:7981
+#: src/readelf.c:8144
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5255,7 +5283,7 @@ msgid ""
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:8033
+#: src/readelf.c:8196
#, c-format
msgid ""
"\n"
@@ -5263,18 +5291,18 @@ msgid ""
"\n"
msgstr ""
-#: src/readelf.c:8365
+#: src/readelf.c:8528
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:8413
+#: src/readelf.c:8576
#, c-format
msgid "cannot get line data section data: %s"
msgstr ""
#. Print what we got so far.
-#: src/readelf.c:8517
+#: src/readelf.c:8680
#, c-format
msgid ""
"\n"
@@ -5293,187 +5321,187 @@ msgid ""
"Opcodes:\n"
msgstr ""
-#: src/readelf.c:8539
+#: src/readelf.c:8702
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:8547
+#: src/readelf.c:8710
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:8555
+#: src/readelf.c:8718
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr ""
-#: src/readelf.c:8565
+#: src/readelf.c:8728
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:8580
+#: src/readelf.c:8743
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:8591
+#: src/readelf.c:8754
msgid ""
"\n"
"Directory table:"
msgstr ""
-#: src/readelf.c:8597 src/readelf.c:8674
+#: src/readelf.c:8760 src/readelf.c:8837
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8668
+#: src/readelf.c:8831
msgid ""
"\n"
"File name table:"
msgstr ""
-#: src/readelf.c:8729
+#: src/readelf.c:8892
msgid " Entry Dir Time Size Name"
msgstr ""
-#: src/readelf.c:8775
+#: src/readelf.c:8938
msgid ""
"\n"
"No line number statements."
msgstr ""
-#: src/readelf.c:8779
+#: src/readelf.c:8942
msgid ""
"\n"
"Line number statements:"
msgstr ""
-#: src/readelf.c:8794
+#: src/readelf.c:8957
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8828
+#: src/readelf.c:8991
#, c-format
msgid " special opcode %u: address+%u = "
msgstr ""
-#: src/readelf.c:8832
+#: src/readelf.c:8995
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8835
+#: src/readelf.c:8998
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8853
+#: src/readelf.c:9016
#, c-format
msgid " extended opcode %u: "
msgstr ""
-#: src/readelf.c:8858
+#: src/readelf.c:9021
msgid " end of sequence"
msgstr ""
-#: src/readelf.c:8876
+#: src/readelf.c:9039
#, fuzzy, c-format
msgid " set address to "
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:8904
+#: src/readelf.c:9067
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-#: src/readelf.c:8918
+#: src/readelf.c:9081
#, c-format
msgid " set discriminator to %u\n"
msgstr ""
-#: src/readelf.c:8945
+#: src/readelf.c:9108
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:8969
+#: src/readelf.c:9132
#, c-format
msgid " set function name %s (0x%x)\n"
msgstr ""
#. Unknown, ignore it.
-#: src/readelf.c:8976
+#: src/readelf.c:9139
#, fuzzy
msgid " unknown opcode"
msgstr "unbekannter Typ"
#. Takes no argument.
-#: src/readelf.c:8988
+#: src/readelf.c:9151
msgid " copy"
msgstr ""
-#: src/readelf.c:8999
+#: src/readelf.c:9162
#, c-format
msgid " advance address by %u to "
msgstr ""
-#: src/readelf.c:9003 src/readelf.c:9064
+#: src/readelf.c:9166 src/readelf.c:9227
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:9015
+#: src/readelf.c:9178
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr ""
-#: src/readelf.c:9025
+#: src/readelf.c:9188
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:9036
+#: src/readelf.c:9199
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:9043
+#: src/readelf.c:9206
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:9049
+#: src/readelf.c:9212
msgid " set basic block flag"
msgstr ""
-#: src/readelf.c:9060
+#: src/readelf.c:9223
#, c-format
msgid " advance address by constant %u to "
msgstr ""
-#: src/readelf.c:9080
+#: src/readelf.c:9243
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:9090
+#: src/readelf.c:9253
msgid " set prologue end flag"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:9095
+#: src/readelf.c:9258
msgid " set epilogue begin flag"
msgstr ""
-#: src/readelf.c:9105
+#: src/readelf.c:9268
#, c-format
msgid " set isa to %u\n"
msgstr ""
@@ -5481,108 +5509,108 @@ msgstr ""
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:9114
+#: src/readelf.c:9277
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:9154
+#: src/readelf.c:9317
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
-#: src/readelf.c:9320
+#: src/readelf.c:9483
#, c-format
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:9360
+#: src/readelf.c:9523
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "Ungültige Daten"
-#: src/readelf.c:9613
+#: src/readelf.c:9786
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ""
-#: src/readelf.c:9826 src/readelf.c:10870
+#: src/readelf.c:9999 src/readelf.c:11043
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:9881 src/readelf.c:10044
+#: src/readelf.c:10054 src/readelf.c:10217
#, c-format
msgid "cannot get macro information section data: %s"
msgstr ""
-#: src/readelf.c:9961
+#: src/readelf.c:10134
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr ""
-#: src/readelf.c:9984
+#: src/readelf.c:10157
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr ""
-#: src/readelf.c:10085
+#: src/readelf.c:10258
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10097
+#: src/readelf.c:10270
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10103 src/readelf.c:10990
+#: src/readelf.c:10276 src/readelf.c:11163
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:10110
+#: src/readelf.c:10283
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10139
+#: src/readelf.c:10312
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:10147
+#: src/readelf.c:10320
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr ""
-#: src/readelf.c:10172
+#: src/readelf.c:10345
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr ""
-#: src/readelf.c:10179
+#: src/readelf.c:10352
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10191
+#: src/readelf.c:10364
#, c-format
msgid " %<PRIu8> arguments:"
msgstr ""
-#: src/readelf.c:10206
+#: src/readelf.c:10379
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10407
+#: src/readelf.c:10580
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:10451
+#: src/readelf.c:10624
#, c-format
msgid ""
"\n"
@@ -5591,77 +5619,77 @@ msgid ""
msgstr ""
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10456
+#: src/readelf.c:10629
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10466
+#: src/readelf.c:10639
#, c-format
msgid " *** error, missing string terminator\n"
msgstr ""
-#: src/readelf.c:10495
+#: src/readelf.c:10668
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:10594
+#: src/readelf.c:10767
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10596
+#: src/readelf.c:10769
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10610
+#: src/readelf.c:10783
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10619
+#: src/readelf.c:10792
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10673
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:10775
+#: src/readelf.c:10948
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:10798
+#: src/readelf.c:10971
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:10810
+#: src/readelf.c:10983
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:10825
+#: src/readelf.c:10998
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:10838
+#: src/readelf.c:11011
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:10852
+#: src/readelf.c:11025
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5670,142 +5698,142 @@ msgid ""
" Action: %u\n"
msgstr ""
-#: src/readelf.c:10925
+#: src/readelf.c:11098
#, c-format
msgid "invalid TType encoding"
msgstr ""
-#: src/readelf.c:10952
+#: src/readelf.c:11125
#, c-format
msgid ""
"\n"
"GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
msgstr ""
-#: src/readelf.c:10981
+#: src/readelf.c:11154
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10999
+#: src/readelf.c:11172
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11006
+#: src/readelf.c:11179
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11013
+#: src/readelf.c:11186
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11020
+#: src/readelf.c:11193
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11027
+#: src/readelf.c:11200
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11041
+#: src/readelf.c:11214
#, c-format
msgid ""
"\n"
" CU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:11066
+#: src/readelf.c:11239
#, c-format
msgid ""
"\n"
" TU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:11095
+#: src/readelf.c:11268
#, c-format
msgid ""
"\n"
" Address list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:11127
+#: src/readelf.c:11300
#, c-format
msgid ""
"\n"
" Symbol table at offset %#<PRIx32> contains %zu slots:\n"
msgstr ""
-#: src/readelf.c:11265
+#: src/readelf.c:11438
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr ""
-#: src/readelf.c:11633 src/readelf.c:12260 src/readelf.c:12371
-#: src/readelf.c:12429
+#: src/readelf.c:11804 src/readelf.c:12431 src/readelf.c:12541
+#: src/readelf.c:12598
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:11996
+#: src/readelf.c:12168
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:12508
+#: src/readelf.c:12677
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:12536
+#: src/readelf.c:12705
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:12588
+#: src/readelf.c:12757
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "Konnte Inhalt von %s: %s nicht lesen"
-#: src/readelf.c:12622
+#: src/readelf.c:12790
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12645
+#: src/readelf.c:12813
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12692
+#: src/readelf.c:12860
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no data to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12719 src/readelf.c:12770
+#: src/readelf.c:12887 src/readelf.c:12938
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12724
+#: src/readelf.c:12892
#, c-format
msgid ""
"\n"
"Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12729
+#: src/readelf.c:12897
#, c-format
msgid ""
"\n"
@@ -5813,21 +5841,21 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12743
+#: src/readelf.c:12911
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no strings to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12775
+#: src/readelf.c:12943
#, c-format
msgid ""
"\n"
"String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12780
+#: src/readelf.c:12948
#, c-format
msgid ""
"\n"
@@ -5835,170 +5863,170 @@ msgid ""
"offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12829
+#: src/readelf.c:12996
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:12859
+#: src/readelf.c:13026
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:12916
+#: src/readelf.c:13081
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:12919
+#: src/readelf.c:13084
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:12923
+#: src/readelf.c:13088
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %zu entries:\n"
msgstr ""
-#: src/readelf.c:12941
+#: src/readelf.c:13106
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:12946
+#: src/readelf.c:13111
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
-#: src/size.c:56
+#: src/size.c:55
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default "
"is `bsd'"
msgstr ""
-#: src/size.c:58
+#: src/size.c:57
msgid "Same as `--format=sysv'"
msgstr "Genau wie `--format=sysv'"
-#: src/size.c:59
+#: src/size.c:58
msgid "Same as `--format=bsd'"
msgstr "Genau wie `--format=bsd'"
-#: src/size.c:62
+#: src/size.c:61
msgid "Same as `--radix=10'"
msgstr "Genau wie `--radix=10'"
-#: src/size.c:63
+#: src/size.c:62
msgid "Same as `--radix=8'"
msgstr "Genau wie `--radix=8'"
-#: src/size.c:64
+#: src/size.c:63
msgid "Same as `--radix=16'"
msgstr "Genau wie `--radix=16'"
-#: src/size.c:66
+#: src/size.c:65
msgid "Similar to `--format=sysv' output but in one line"
msgstr ""
-#: src/size.c:70
+#: src/size.c:69
msgid "Print size and permission flags for loadable segments"
msgstr ""
-#: src/size.c:71
+#: src/size.c:70
msgid "Display the total sizes (bsd only)"
msgstr ""
#. Short description of program.
-#: src/size.c:76
+#: src/size.c:75
msgid "List section sizes of FILEs (a.out by default)."
msgstr ""
-#: src/size.c:240
+#: src/size.c:239
#, c-format
msgid "Invalid format: %s"
msgstr "Ungültiges Format: %s"
-#: src/size.c:251
+#: src/size.c:250
#, c-format
msgid "Invalid radix: %s"
msgstr ""
-#: src/size.c:310
+#: src/size.c:309
#, c-format
msgid "%s: file format not recognized"
msgstr ""
-#: src/size.c:328
+#: src/size.c:327
msgctxt "bsd"
msgid "text"
msgstr ""
-#: src/size.c:329
+#: src/size.c:328
msgctxt "bsd"
msgid "data"
msgstr ""
-#: src/size.c:330
+#: src/size.c:329
msgctxt "bsd"
msgid "bss"
msgstr ""
-#: src/size.c:331
+#: src/size.c:330
msgctxt "bsd"
msgid "dec"
msgstr ""
-#: src/size.c:332
+#: src/size.c:331
msgctxt "bsd"
msgid "hex"
msgstr ""
-#: src/size.c:333
+#: src/size.c:332
msgctxt "bsd"
msgid "filename"
msgstr ""
-#: src/size.c:418 src/size.c:560
+#: src/size.c:416 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr ""
-#: src/size.c:420
+#: src/size.c:418
#, fuzzy
#| msgid "invalid section"
msgctxt "sysv"
msgid "section"
msgstr "ungültiger Abschnitt"
-#: src/size.c:421
+#: src/size.c:419
msgctxt "sysv"
msgid "size"
msgstr ""
-#: src/size.c:422
+#: src/size.c:420
msgctxt "sysv"
msgid "addr"
msgstr ""
-#: src/size.c:451 src/size.c:454 src/size.c:457
+#: src/size.c:449 src/size.c:452 src/size.c:455
msgctxt "sysv"
msgid "Total"
msgstr ""
-#: src/size.c:482
-#, fuzzy, c-format
+#: src/size.c:479
+#, fuzzy
msgid "cannot get section header"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/size.c:585
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr ""
@@ -6119,103 +6147,100 @@ msgstr ""
msgid "Couldn't show any frames."
msgstr ""
-#: src/strings.c:65
+#: src/strings.c:64
msgid "Output Selection:"
msgstr ""
-#: src/strings.c:66
+#: src/strings.c:65
msgid "Scan entire file, not only loaded sections"
msgstr ""
-#: src/strings.c:68
+#: src/strings.c:67
msgid "Only NUL-terminated sequences of MIN-LEN characters or more are printed"
msgstr ""
-#: src/strings.c:69
+#: src/strings.c:68
msgid ""
"Select character size and endianness: s = 7-bit, S = 8-bit, {b,l} = 16-bit, "
"{B,L} = 32-bit"
msgstr ""
-#: src/strings.c:73
+#: src/strings.c:72
msgid "Print name of the file before each string."
msgstr ""
-#: src/strings.c:75
+#: src/strings.c:74
msgid "Print location of the string in base 8, 10, or 16 respectively."
msgstr ""
-#: src/strings.c:76
+#: src/strings.c:75
msgid "Alias for --radix=o"
msgstr "Alias für --radix=o"
#. Short description of program.
-#: src/strings.c:83
+#: src/strings.c:82
msgid "Print the strings of printable characters in files."
msgstr ""
-#: src/strings.c:256 src/strings.c:291
+#: src/strings.c:255 src/strings.c:290
#, c-format
msgid "invalid value '%s' for %s parameter"
msgstr ""
-#: src/strings.c:302
-#, c-format
+#: src/strings.c:300
msgid "invalid minimum length of matched string size"
msgstr ""
-#: src/strings.c:585
-#, fuzzy, c-format
+#: src/strings.c:583
+#, fuzzy
msgid "lseek failed"
msgstr "lseek64 fehlgeschlagen"
-#: src/strings.c:602 src/strings.c:666
-#, c-format
+#: src/strings.c:600 src/strings.c:664
msgid "re-mmap failed"
msgstr "re-mmap fehlgeschlagen"
-#: src/strings.c:639
-#, c-format
+#: src/strings.c:637
msgid "mprotect failed"
msgstr "mprotect fehlgeschlagen"
-#: src/strings.c:728
+#: src/strings.c:726
#, c-format
msgid "Skipping section %zd '%s' data outside file"
msgstr ""
-#: src/strip.c:71
+#: src/strip.c:70
msgid "Place stripped output into FILE"
msgstr ""
-#: src/strip.c:72
+#: src/strip.c:71
msgid "Extract the removed sections into FILE"
msgstr ""
-#: src/strip.c:73
+#: src/strip.c:72
msgid "Embed name FILE instead of -f argument"
msgstr ""
-#: src/strip.c:77
+#: src/strip.c:76
msgid "Remove all debugging symbols"
msgstr ""
-#: src/strip.c:81
+#: src/strip.c:80
msgid "Remove section headers (not recommended)"
msgstr ""
-#: src/strip.c:83
+#: src/strip.c:82
msgid "Copy modified/access timestamps to the output"
msgstr ""
-#: src/strip.c:85
+#: src/strip.c:84
msgid ""
"Resolve all trivial relocations between debug sections if the removed "
"sections are placed in a debug file (only relevant for ET_REL files, "
"operation is not reversible, needs -f)"
msgstr ""
-#: src/strip.c:87
+#: src/strip.c:86
msgid ""
"Similar to --reloc-debug-sections, but resolve all trivial relocations "
"between debug sections in place. No other stripping is performed (operation "
@@ -6223,75 +6248,72 @@ msgid ""
"section)"
msgstr ""
-#: src/strip.c:89
+#: src/strip.c:88
msgid "Remove .comment section"
msgstr ""
-#: src/strip.c:90
+#: src/strip.c:89
msgid ""
"Remove the named section. SECTION is an extended wildcard pattern. May be "
"given more than once. Only non-allocated sections can be removed."
msgstr ""
-#: src/strip.c:91
+#: src/strip.c:90
msgid ""
"Keep the named section. SECTION is an extended wildcard pattern. May be "
"given more than once."
msgstr ""
#. Short description of program.
-#: src/strip.c:98
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr ""
-#: src/strip.c:247
-#, c-format
+#: src/strip.c:245
msgid "--reloc-debug-sections used without -f"
msgstr ""
-#: src/strip.c:253
-#, c-format
+#: src/strip.c:251
msgid ""
"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --"
"remove-section"
msgstr ""
-#: src/strip.c:267
-#, c-format
+#: src/strip.c:265
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr ""
-#: src/strip.c:290
+#: src/strip.c:287
#, c-format
msgid "-f option specified twice"
msgstr ""
-#: src/strip.c:299
+#: src/strip.c:296
#, c-format
msgid "-F option specified twice"
msgstr ""
-#: src/strip.c:362
+#: src/strip.c:359
#, c-format
msgid "cannot both keep and remove .comment section"
msgstr ""
-#: src/strip.c:481
-#, fuzzy, c-format
+#: src/strip.c:478
+#, fuzzy
msgid "bad relocation"
msgstr "Relocations anzeigen"
-#: src/strip.c:751 src/strip.c:775
+#: src/strip.c:756 src/strip.c:780
#, c-format
msgid "cannot stat input file '%s'"
msgstr ""
-#: src/strip.c:765
+#: src/strip.c:770
#, c-format
msgid "while opening '%s'"
msgstr ""
-#: src/strip.c:803
+#: src/strip.c:808
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr ""
@@ -6302,77 +6324,77 @@ msgstr ""
#. result = handle_ar (fd, elf, NULL, fname,
#. preserve_dates ? tv : NULL);
#.
-#: src/strip.c:815
+#: src/strip.c:820
#, fuzzy, c-format
msgid "%s: no support for stripping archive"
msgstr "%s: Kein Eintrag %s in dem Archiv!\n"
-#: src/strip.c:1052
+#: src/strip.c:1057
#, c-format
msgid "cannot open EBL backend"
msgstr ""
-#: src/strip.c:1097
-#, fuzzy, c-format
+#: src/strip.c:1101
+#, fuzzy
msgid "cannot get number of phdrs"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/strip.c:1111 src/strip.c:1154
+#: src/strip.c:1115 src/strip.c:1158
#, fuzzy, c-format
msgid "cannot create new ehdr for file '%s': %s"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/strip.c:1121 src/strip.c:1164
+#: src/strip.c:1125 src/strip.c:1168
#, fuzzy, c-format
msgid "cannot create new phdr for file '%s': %s"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/strip.c:1244
+#: src/strip.c:1248
#, c-format
msgid "illformed file '%s'"
msgstr ""
-#: src/strip.c:1254
+#: src/strip.c:1258
#, fuzzy, c-format
msgid "Cannot remove allocated section '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/strip.c:1263
+#: src/strip.c:1267
#, fuzzy, c-format
msgid "Cannot both keep and remove section '%s'"
msgstr "Konnte Archiv '%s' nicht öffnen"
-#: src/strip.c:1628 src/strip.c:1743
+#: src/strip.c:1631 src/strip.c:1746
#, c-format
msgid "while generating output file: %s"
msgstr ""
-#: src/strip.c:1692
+#: src/strip.c:1695
#, fuzzy, c-format
msgid "%s: error while updating ELF header: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/strip.c:1701
+#: src/strip.c:1704
#, fuzzy, c-format
msgid "%s: error while getting shdrstrndx: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/strip.c:1709 src/strip.c:2554
+#: src/strip.c:1712 src/strip.c:2553
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/strip.c:1726
+#: src/strip.c:1729
#, c-format
msgid "while preparing output for '%s'"
msgstr ""
-#: src/strip.c:1788 src/strip.c:1851
+#: src/strip.c:1790 src/strip.c:1852
#, c-format
msgid "while create section header section: %s"
msgstr ""
-#: src/strip.c:1797
+#: src/strip.c:1799
#, c-format
msgid "cannot allocate section data: %s"
msgstr ""
@@ -6382,456 +6404,451 @@ msgstr ""
msgid "while create section header string table: %s"
msgstr ""
-#: src/strip.c:1870
-#, c-format
+#: src/strip.c:1869
msgid "no memory to create section header string table"
msgstr ""
-#: src/strip.c:2083
+#: src/strip.c:2082
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2470 src/strip.c:2578
+#: src/strip.c:2469 src/strip.c:2577
#, c-format
msgid "while writing '%s': %s"
msgstr ""
-#: src/strip.c:2481
+#: src/strip.c:2480
#, c-format
msgid "while creating '%s'"
msgstr ""
-#: src/strip.c:2504
+#: src/strip.c:2503
#, c-format
msgid "while computing checksum for debug information"
msgstr ""
-#: src/strip.c:2545
+#: src/strip.c:2544
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr ""
-#: src/strip.c:2563
+#: src/strip.c:2562
#, c-format
msgid "%s: error while reading the file: %s"
msgstr ""
-#: src/strip.c:2603 src/strip.c:2623
+#: src/strip.c:2602 src/strip.c:2622
#, fuzzy, c-format
msgid "while writing '%s'"
msgstr "beim Schliessen von '%s'"
-#: src/strip.c:2660 src/strip.c:2667
+#: src/strip.c:2659 src/strip.c:2666
#, c-format
msgid "error while finishing '%s': %s"
msgstr ""
-#: src/strip.c:2684 src/strip.c:2760
+#: src/strip.c:2683 src/strip.c:2759
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr ""
-#: src/unstrip.c:66
+#: src/unstrip.c:65
msgid "Match MODULE against file names, not module names"
msgstr ""
-#: src/unstrip.c:67
+#: src/unstrip.c:66
msgid "Silently skip unfindable files"
msgstr ""
-#: src/unstrip.c:70
+#: src/unstrip.c:69
msgid "Place output into FILE"
msgstr ""
-#: src/unstrip.c:72
+#: src/unstrip.c:71
msgid "Create multiple output files under DIRECTORY"
msgstr ""
-#: src/unstrip.c:73
+#: src/unstrip.c:72
msgid "Use module rather than file names"
msgstr ""
-#: src/unstrip.c:75
+#: src/unstrip.c:74
msgid "Create output for modules that have no separate debug information"
msgstr ""
-#: src/unstrip.c:78
+#: src/unstrip.c:77
msgid "Apply relocations to section contents in ET_REL files"
msgstr ""
-#: src/unstrip.c:80
+#: src/unstrip.c:79
msgid "Only list module and file names, build IDs"
msgstr ""
-#: src/unstrip.c:82
+#: src/unstrip.c:81
msgid "Force combining files even if some ELF headers don't seem to match"
msgstr ""
-#: src/unstrip.c:126
+#: src/unstrip.c:125
#, c-format
msgid "-d option specified twice"
msgstr "Option -d zweimal angegeben"
-#: src/unstrip.c:161
+#: src/unstrip.c:160
#, c-format
msgid "only one of -o or -d allowed"
msgstr "nur entweder -o oder -d erlaubt"
-#: src/unstrip.c:170
+#: src/unstrip.c:169
#, c-format
msgid "-n cannot be used with explicit files or -o or -d"
msgstr "-n kann nicht mit expliziten Dateien oder -o oder -d verwendet werden"
-#: src/unstrip.c:185
+#: src/unstrip.c:184
#, c-format
msgid "output directory '%s'"
msgstr "Ausgabeverzeichnis '%s'"
-#: src/unstrip.c:194
+#: src/unstrip.c:193
#, c-format
msgid "exactly two file arguments are required"
msgstr "genau zwei Datei-Argumente werden benötigt"
-#: src/unstrip.c:200
+#: src/unstrip.c:199
#, c-format
msgid "-m, -a, -R, and -i options not allowed with explicit files"
msgstr ""
-#: src/unstrip.c:213
+#: src/unstrip.c:212
#, c-format
msgid "-o or -d is required when using implicit files"
msgstr ""
-#: src/unstrip.c:236
+#: src/unstrip.c:235
#, c-format
msgid "cannot create ELF header: %s"
msgstr ""
-#: src/unstrip.c:240
+#: src/unstrip.c:239
#, fuzzy, c-format
msgid "cannot get shdrstrndx:%s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:244 src/unstrip.c:2088
+#: src/unstrip.c:243 src/unstrip.c:2085
#, c-format
msgid "cannot get ELF header: %s"
msgstr ""
-#: src/unstrip.c:254
+#: src/unstrip.c:253
#, fuzzy, c-format
msgid "cannot get new zero section: %s"
msgstr "konnte Versionierungsabschnitt nicht erstellen: %s"
-#: src/unstrip.c:257
+#: src/unstrip.c:256
#, fuzzy, c-format
msgid "cannot update new zero section: %s"
msgstr "konnte Versionierungsabschnitt nicht erstellen: %s"
-#: src/unstrip.c:261
+#: src/unstrip.c:260
#, c-format
msgid "cannot copy ELF header: %s"
msgstr ""
-#: src/unstrip.c:265 src/unstrip.c:2106 src/unstrip.c:2149
+#: src/unstrip.c:264 src/unstrip.c:2103 src/unstrip.c:2146
#, fuzzy, c-format
msgid "cannot get number of program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:270 src/unstrip.c:2110
+#: src/unstrip.c:269 src/unstrip.c:2107
#, c-format
msgid "cannot create program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:276
+#: src/unstrip.c:275
#, c-format
msgid "cannot copy program header: %s"
msgstr "konnte Programm-Kopf nicht kopieren: %s"
-#: src/unstrip.c:286
+#: src/unstrip.c:285
#, c-format
msgid "cannot copy section header: %s"
msgstr ""
-#: src/unstrip.c:289 src/unstrip.c:1710
+#: src/unstrip.c:288 src/unstrip.c:1707
#, c-format
msgid "cannot get section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:291 src/unstrip.c:1712
+#: src/unstrip.c:290 src/unstrip.c:1709
#, c-format
msgid "cannot copy section data: %s"
msgstr "konnte Abschnittsdaten nicht kopieren: %s"
-#: src/unstrip.c:319
+#: src/unstrip.c:318
#, c-format
msgid "cannot create directory '%s'"
msgstr "konnte Verzeichnis nicht erstellen: %s"
-#: src/unstrip.c:393 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861
-#: src/unstrip.c:1752
+#: src/unstrip.c:392 src/unstrip.c:657 src/unstrip.c:691 src/unstrip.c:859
+#: src/unstrip.c:1749
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s"
-#: src/unstrip.c:409 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696
-#: src/unstrip.c:1773 src/unstrip.c:1968 src/unstrip.c:1992
+#: src/unstrip.c:408 src/unstrip.c:660 src/unstrip.c:681 src/unstrip.c:694
+#: src/unstrip.c:1770 src/unstrip.c:1965 src/unstrip.c:1989
#, c-format
msgid "cannot update symbol table: %s"
msgstr "konnte Symboltabelle nicht aktualisieren: %s"
-#: src/unstrip.c:419
+#: src/unstrip.c:418
#, c-format
msgid "cannot update section header: %s"
msgstr ""
-#: src/unstrip.c:465
+#: src/unstrip.c:464
#, c-format
msgid "gelf_getrel failed: %s"
msgstr ""
-#: src/unstrip.c:468 src/unstrip.c:483
+#: src/unstrip.c:467 src/unstrip.c:482
#, c-format
msgid "cannot update relocation: %s"
msgstr ""
-#: src/unstrip.c:480
+#: src/unstrip.c:479
#, c-format
msgid "gelf_getrela failed: %s"
msgstr ""
-#: src/unstrip.c:582
+#: src/unstrip.c:580
#, c-format
msgid "cannot get symbol version: %s"
msgstr ""
-#: src/unstrip.c:595
+#: src/unstrip.c:593
#, c-format
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:850
+#: src/unstrip.c:848
#, fuzzy, c-format
msgid "cannot get symbol section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:852
+#: src/unstrip.c:850
#, fuzzy, c-format
msgid "cannot get string section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:869
+#: src/unstrip.c:867
#, fuzzy, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "ungültiger Offset %zu für Symbol %s"
-#: src/unstrip.c:1027 src/unstrip.c:1435
+#: src/unstrip.c:1025 src/unstrip.c:1433
#, fuzzy, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:1042
+#: src/unstrip.c:1040
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr "ungültige .debug_line Sektion"
-#: src/unstrip.c:1048
+#: src/unstrip.c:1046
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "konnte Versionierungsabschnitt nicht erstellen: %s"
-#: src/unstrip.c:1053
+#: src/unstrip.c:1051
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "ungültige .debug_line Sektion"
-#: src/unstrip.c:1059
+#: src/unstrip.c:1057
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:1064
+#: src/unstrip.c:1062
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/unstrip.c:1075 src/unstrip.c:1556
+#: src/unstrip.c:1073 src/unstrip.c:1553
#, fuzzy, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:1120 src/unstrip.c:1139 src/unstrip.c:1177
+#: src/unstrip.c:1118 src/unstrip.c:1137 src/unstrip.c:1175
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr ""
-#: src/unstrip.c:1157
+#: src/unstrip.c:1155
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1168
+#: src/unstrip.c:1166
#, c-format
msgid "invalid contents in '%s' section"
msgstr ""
-#: src/unstrip.c:1339 src/unstrip.c:1355 src/unstrip.c:1636 src/unstrip.c:1927
+#: src/unstrip.c:1337 src/unstrip.c:1353 src/unstrip.c:1633 src/unstrip.c:1924
#, c-format
msgid "cannot add section name to string table: %s"
msgstr ""
-#: src/unstrip.c:1364
+#: src/unstrip.c:1362
#, c-format
msgid "cannot update section header string table data: %s"
msgstr ""
-#: src/unstrip.c:1393 src/unstrip.c:1397
+#: src/unstrip.c:1391 src/unstrip.c:1395
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
-#: src/unstrip.c:1401 src/unstrip.c:1405 src/unstrip.c:1651
+#: src/unstrip.c:1399 src/unstrip.c:1403 src/unstrip.c:1648
#, c-format
msgid "cannot get section count: %s"
msgstr ""
-#: src/unstrip.c:1408
-#, c-format
+#: src/unstrip.c:1406
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
-#: src/unstrip.c:1412
-#, c-format
+#: src/unstrip.c:1410
msgid "no sections in stripped file"
msgstr ""
-#: src/unstrip.c:1460 src/unstrip.c:1571
+#: src/unstrip.c:1458 src/unstrip.c:1568
#, c-format
msgid "cannot read section header string table: %s"
msgstr ""
-#: src/unstrip.c:1630
+#: src/unstrip.c:1627
#, c-format
msgid "cannot add new section: %s"
msgstr ""
-#: src/unstrip.c:1760
+#: src/unstrip.c:1757
#, fuzzy, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "ungültiger Abschnittsindex"
-#: src/unstrip.c:1792
+#: src/unstrip.c:1789
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "ungültiger Abschnittsindex"
-#: src/unstrip.c:2067
+#: src/unstrip.c:2064
#, fuzzy, c-format
msgid "cannot read section data: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/unstrip.c:2096
+#: src/unstrip.c:2093
#, c-format
msgid "cannot update ELF header: %s"
msgstr ""
-#: src/unstrip.c:2120
+#: src/unstrip.c:2117
#, c-format
msgid "cannot update program header: %s"
msgstr "konnte Programm-Kopf nicht aktualisieren: %s"
-#: src/unstrip.c:2125 src/unstrip.c:2208
+#: src/unstrip.c:2122 src/unstrip.c:2205
#, c-format
msgid "cannot write output file: %s"
msgstr ""
-#: src/unstrip.c:2176
+#: src/unstrip.c:2173
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2179
+#: src/unstrip.c:2176
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2199 src/unstrip.c:2251 src/unstrip.c:2263 src/unstrip.c:2353
+#: src/unstrip.c:2196 src/unstrip.c:2248 src/unstrip.c:2260 src/unstrip.c:2350
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr ""
-#: src/unstrip.c:2237
+#: src/unstrip.c:2234
msgid "WARNING: "
msgstr ""
-#: src/unstrip.c:2239
+#: src/unstrip.c:2236
msgid ", use --force"
msgstr ""
-#: src/unstrip.c:2267
+#: src/unstrip.c:2264
msgid "ELF header identification (e_ident) different"
msgstr ""
-#: src/unstrip.c:2271
+#: src/unstrip.c:2268
msgid "ELF header type (e_type) different"
msgstr ""
-#: src/unstrip.c:2275
+#: src/unstrip.c:2272
msgid "ELF header machine type (e_machine) different"
msgstr ""
-#: src/unstrip.c:2279
+#: src/unstrip.c:2276
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr ""
-#: src/unstrip.c:2310
+#: src/unstrip.c:2307
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2314
+#: src/unstrip.c:2311
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2329
+#: src/unstrip.c:2326
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2333
+#: src/unstrip.c:2330
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2346
+#: src/unstrip.c:2343
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr ""
-#: src/unstrip.c:2377
+#: src/unstrip.c:2374
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2505
-#, c-format
+#: src/unstrip.c:2502
msgid "no matching modules found"
msgstr "kein passendes Modul gefunden"
-#: src/unstrip.c:2515
-#, c-format
+#: src/unstrip.c:2512
msgid "matched more than one module"
msgstr "mehr als ein passendes Modul"
-#: src/unstrip.c:2560
+#: src/unstrip.c:2557
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2561
+#: src/unstrip.c:2558
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
@@ -6873,6 +6890,8 @@ msgid ""
"executable PATH\n"
"source BUILDID /FILENAME\n"
"source PATH /FILENAME\n"
+"section BUILDID SECTION-NAME\n"
+"section PATH SECTION-NAME\n"
msgstr ""
#: tests/backtrace.c:483
diff --git a/po/es.po b/po/es.po
index a65b516c..2b20a61b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,5 +1,5 @@
-# Fedora Spanish Translation of elfutils.master.
-# This file is distributed under the same license as the elfutils.master package.
+# Fedora Spanish Translation of elfutils
+# This file is distributed under the same license as the elfutils package.
#
# Domingo Becker <domingobecker@gmail.com>, 2009.
# Gladys Guerrero Lozano <gguerrer@redhat.com>, 2009.
@@ -8,9 +8,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: elfutils.master.es\n"
+"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2021-11-10 16:21+0100\n"
+"POT-Creation-Date: 2022-11-02 13:30+0100\n"
"PO-Revision-Date: 2011-01-10 15:17-0300\n"
"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz."
"com.ar>\n"
@@ -24,12 +24,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Country: ARGENTINA\n"
-#: lib/color.c:53
+#: lib/color.c:51
msgid ""
"colorize the output. WHEN defaults to 'always' or can be 'auto' or 'never'"
msgstr ""
-#: lib/color.c:129
+#: lib/color.c:127
#, c-format
msgid ""
"%s: invalid argument '%s' for '--color'\n"
@@ -39,7 +39,7 @@ msgid ""
" - 'auto', 'tty', 'if-tty'\n"
msgstr ""
-#: lib/printversion.c:40
+#: lib/printversion.c:39
#, fuzzy, c-format
msgid ""
"Copyright (C) %s The elfutils developers <%s>.\n"
@@ -52,72 +52,72 @@ msgstr ""
"garantía, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN "
"DETERMINADO.\n"
-#: lib/xmalloc.c:48 lib/xmalloc.c:61 lib/xmalloc.c:73 src/readelf.c:11582
-#: src/unstrip.c:312
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11754
+#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
msgstr "memoria agotada"
-#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
-#: libelf/elf_error.c:60
+#: libasm/asm_error.c:64 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
+#: libelf/elf_error.c:59
msgid "no error"
msgstr "ningún error"
-#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
-#: libelf/elf_error.c:91
+#: libasm/asm_error.c:65 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
+#: libelf/elf_error.c:90
msgid "out of memory"
msgstr "memoria agotada"
-#: libasm/asm_error.c:67
+#: libasm/asm_error.c:66
msgid "cannot create output file"
msgstr "no se puede crear el archivo de salida"
-#: libasm/asm_error.c:68
+#: libasm/asm_error.c:67
msgid "invalid parameter"
msgstr "Parámetro inválido"
-#: libasm/asm_error.c:69
+#: libasm/asm_error.c:68
msgid "cannot change mode of output file"
msgstr "no sepuede cambiar modo de archivo de salida"
-#: libasm/asm_error.c:70
+#: libasm/asm_error.c:69
msgid "cannot rename output file"
msgstr "no se puede renombrar el archivo de salida"
-#: libasm/asm_error.c:71
+#: libasm/asm_error.c:70
msgid "duplicate symbol"
msgstr "Duplicar símbolo"
-#: libasm/asm_error.c:72
+#: libasm/asm_error.c:71
msgid "invalid section type for operation"
msgstr "tipo de sección inválido para operación"
-#: libasm/asm_error.c:73
+#: libasm/asm_error.c:72
msgid "error during output of data"
msgstr "error durante salida de datos"
-#: libasm/asm_error.c:74
+#: libasm/asm_error.c:73
msgid "no backend support available"
msgstr "No hay soporte de segundo plano"
-#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
-#: libelf/elf_error.c:63
+#: libasm/asm_error.c:82 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
+#: libelf/elf_error.c:62
msgid "unknown error"
msgstr "error desconocido"
-#: libcpu/i386_lex.l:122
+#: libcpu/i386_lex.l:121
#, fuzzy, c-format
#| msgid "invalid page size value '%s': ignored"
msgid "invalid character '%c' at line %d; ignored"
msgstr "Valor de tamaño de página'%s': ignorado"
-#: libcpu/i386_lex.l:123
+#: libcpu/i386_lex.l:122
#, fuzzy, c-format
#| msgid "invalid page size value '%s': ignored"
msgid "invalid character '\\%o' at line %d; ignored"
msgstr "Valor de tamaño de página'%s': ignorado"
-#: libcpu/i386_parse.y:554
+#: libcpu/i386_parse.y:553
#, fuzzy, c-format
#| msgid "while reading linker script '%s': %s at line %d"
msgid "while reading i386 CPU description: %s at line %d"
@@ -159,7 +159,7 @@ msgstr "no se puede obtener el encabezamiento ELF"
msgid "not implemented"
msgstr "sin implementar"
-#: libdw/dwarf_error.c:69 libelf/elf_error.c:111 libelf/elf_error.c:159
+#: libdw/dwarf_error.c:69 libelf/elf_error.c:110 libelf/elf_error.c:158
msgid "invalid command"
msgstr "comando inválido"
@@ -273,7 +273,7 @@ msgstr "dirección de rango no coincidente"
msgid "no flag value"
msgstr "sin valor de bandera"
-#: libdw/dwarf_error.c:96 libelf/elf_error.c:236
+#: libdw/dwarf_error.c:96 libelf/elf_error.c:235
msgid "invalid offset"
msgstr "desplazamiento inválido"
@@ -313,23 +313,23 @@ msgstr "código operativo desconocido "
msgid ".debug_addr section missing"
msgstr ".debug_ranges section faltante"
-#: libdwfl/argp-std.c:47 src/stack.c:643 src/unstrip.c:2550
+#: libdwfl/argp-std.c:45 src/stack.c:643 src/unstrip.c:2547
msgid "Input selection options:"
msgstr "Opciones de selección de entrada:"
-#: libdwfl/argp-std.c:48
+#: libdwfl/argp-std.c:46
msgid "Find addresses in FILE"
msgstr "Hallar direcciones en FICHERO"
-#: libdwfl/argp-std.c:50
+#: libdwfl/argp-std.c:48
msgid "Find addresses from signatures found in COREFILE"
msgstr "Buscar direcciones desde firmas encontradas en COREFILE"
-#: libdwfl/argp-std.c:52
+#: libdwfl/argp-std.c:50
msgid "Find addresses in files mapped into process PID"
msgstr "Busca direcciones en archivos mapeados sobre procesos PID"
-#: libdwfl/argp-std.c:54
+#: libdwfl/argp-std.c:52
msgid ""
"Find addresses in files mapped as read from FILE in Linux /proc/PID/maps "
"format"
@@ -337,46 +337,46 @@ msgstr ""
"Busca direcciones en archivos asignados como leídos desde FILE en formato "
"Linux /proc/PID/maps"
-#: libdwfl/argp-std.c:56
+#: libdwfl/argp-std.c:54
msgid "Find addresses in the running kernel"
msgstr "Busca direcciones en el kernel que está ejecutándose"
-#: libdwfl/argp-std.c:58
+#: libdwfl/argp-std.c:56
msgid "Kernel with all modules"
msgstr "Kernel con todos los módulos"
-#: libdwfl/argp-std.c:60 src/stack.c:650
+#: libdwfl/argp-std.c:58 src/stack.c:650
msgid "Search path for separate debuginfo files"
msgstr "Ruta de búsqueda para archivos debugingfo independientes"
-#: libdwfl/argp-std.c:161
+#: libdwfl/argp-std.c:159
msgid "only one of -e, -p, -k, -K, or --core allowed"
msgstr "Sólo uno de -e, -p, -k, -K, ó --core está permitido"
-#: libdwfl/argp-std.c:234
+#: libdwfl/argp-std.c:232
msgid "cannot load kernel symbols"
msgstr "No se pueden cargar símbolos de kernel"
#. Non-fatal to have no modules since we do have the kernel.
-#: libdwfl/argp-std.c:238
+#: libdwfl/argp-std.c:236
msgid "cannot find kernel modules"
msgstr "no se pueden hallar módulos de kernel"
-#: libdwfl/argp-std.c:255
+#: libdwfl/argp-std.c:253
msgid "cannot find kernel or modules"
msgstr "imposible encontrar kernel o módulos"
-#: libdwfl/argp-std.c:294
+#: libdwfl/argp-std.c:292
#, c-format
msgid "cannot read ELF core file: %s"
msgstr "No se puede leer archivo core ELF: %s"
-#: libdwfl/argp-std.c:317
+#: libdwfl/argp-std.c:315
#, fuzzy
msgid "Not enough memory"
msgstr "memoria agotada"
-#: libdwfl/argp-std.c:327
+#: libdwfl/argp-std.c:325
msgid "No modules recognized in core file"
msgstr "No hay módulos reconocidos en el archivo core"
@@ -429,7 +429,7 @@ msgstr "Tipo de reubicación no soportada"
msgid "r_offset is bogus"
msgstr "r_offset se encuentra inutilizable"
-#: libdwfl/libdwflP.h:66 libelf/elf_error.c:115 libelf/elf_error.c:175
+#: libdwfl/libdwflP.h:66 libelf/elf_error.c:114 libelf/elf_error.c:174
msgid "offset out of range"
msgstr "desplazamiento fuera de rango"
@@ -496,48 +496,54 @@ msgid "Invalid register"
msgstr "Parámetro inválido"
#: libdwfl/libdwflP.h:84
+#, fuzzy
+#| msgid "no reference value"
+msgid "Unknown register value"
+msgstr "no hay valor de referencia"
+
+#: libdwfl/libdwflP.h:85
msgid "Error reading process memory"
msgstr ""
-#: libdwfl/libdwflP.h:85
+#: libdwfl/libdwflP.h:86
msgid "Couldn't find architecture of any ELF"
msgstr ""
-#: libdwfl/libdwflP.h:86
+#: libdwfl/libdwflP.h:87
msgid "Error parsing /proc filesystem"
msgstr ""
-#: libdwfl/libdwflP.h:87
+#: libdwfl/libdwflP.h:88
#, fuzzy
msgid "Invalid DWARF"
msgstr "DWARF inválido"
-#: libdwfl/libdwflP.h:88
+#: libdwfl/libdwflP.h:89
msgid "Unsupported DWARF"
msgstr ""
-#: libdwfl/libdwflP.h:89
+#: libdwfl/libdwflP.h:90
msgid "Unable to find more threads"
msgstr ""
-#: libdwfl/libdwflP.h:90
+#: libdwfl/libdwflP.h:91
msgid "Dwfl already has attached state"
msgstr ""
-#: libdwfl/libdwflP.h:91
+#: libdwfl/libdwflP.h:92
msgid "Dwfl has no attached state"
msgstr ""
-#: libdwfl/libdwflP.h:92
+#: libdwfl/libdwflP.h:93
msgid "Unwinding not supported for this architecture"
msgstr ""
-#: libdwfl/libdwflP.h:93
+#: libdwfl/libdwflP.h:94
#, fuzzy
msgid "Invalid argument"
msgstr "Parámetro inválido"
-#: libdwfl/libdwflP.h:94
+#: libdwfl/libdwflP.h:95
#, fuzzy
msgid "Not an ET_CORE ELF file"
msgstr "no es un archivo ELF válido"
@@ -547,7 +553,7 @@ msgid "No backend"
msgstr "No hay segundo plano (Backend)"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
-#: libebl/eblobjnotetypename.c:110 libebl/eblobjnotetypename.c:131
+#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
@@ -598,18 +604,18 @@ msgstr ""
msgid " Args: "
msgstr ""
-#: libebl/eblobjnote.c:300
+#: libebl/eblobjnote.c:304
#, c-format
msgid " Build ID: "
msgstr " Build ID: "
#. A non-null terminated version string.
-#: libebl/eblobjnote.c:311
+#: libebl/eblobjnote.c:315
#, c-format
msgid " Linker version: %.*s\n"
msgstr " Versión del Enlazador: %.*s\n"
-#: libebl/eblobjnote.c:638
+#: libebl/eblobjnote.c:642
#, c-format
msgid " OS: %s, ABI: "
msgstr " OS: %s, ABI: "
@@ -623,257 +629,266 @@ msgstr "Autónomo"
msgid "<unknown>: %d"
msgstr "<desconocido>: %d"
-#: libelf/elf_error.c:67
+#: libelf/elf_error.c:66
msgid "unknown version"
msgstr "versión desconocida"
-#: libelf/elf_error.c:71
+#: libelf/elf_error.c:70
msgid "unknown type"
msgstr "tipo desconocido"
-#: libelf/elf_error.c:75
+#: libelf/elf_error.c:74
msgid "invalid `Elf' handle"
msgstr "manejo`ELF' inválido"
-#: libelf/elf_error.c:79
+#: libelf/elf_error.c:78
msgid "invalid size of source operand"
msgstr "tamaño inválido del operando fuente"
-#: libelf/elf_error.c:83
+#: libelf/elf_error.c:82
msgid "invalid size of destination operand"
msgstr "tamaño inválido del operando destino"
-#: libelf/elf_error.c:87 src/readelf.c:6215
+#: libelf/elf_error.c:86 src/readelf.c:6378
#, c-format
msgid "invalid encoding"
msgstr "codificación inválida"
-#: libelf/elf_error.c:95
+#: libelf/elf_error.c:94
msgid "invalid file descriptor"
msgstr "descriptor de archivo inválido"
-#: libelf/elf_error.c:99
+#: libelf/elf_error.c:98
#, fuzzy
msgid "invalid ELF file data"
msgstr "Archivo ELF inválido"
-#: libelf/elf_error.c:103
+#: libelf/elf_error.c:102
msgid "invalid operation"
msgstr "operación inválida"
-#: libelf/elf_error.c:107
+#: libelf/elf_error.c:106
msgid "ELF version not set"
msgstr "no se estableció la versión de ELF"
-#: libelf/elf_error.c:119
+#: libelf/elf_error.c:118
msgid "invalid fmag field in archive header"
msgstr "campo fmag no válido en el encabezamiento del archivo"
-#: libelf/elf_error.c:123
+#: libelf/elf_error.c:122
msgid "invalid archive file"
msgstr "fichero de archivo inválido"
-#: libelf/elf_error.c:127
+#: libelf/elf_error.c:126
msgid "descriptor is not for an archive"
msgstr "el descriptor no es de un archivo"
-#: libelf/elf_error.c:131
+#: libelf/elf_error.c:130
msgid "no index available"
msgstr "no hay índice disponible"
-#: libelf/elf_error.c:135
+#: libelf/elf_error.c:134
msgid "cannot read data from file"
msgstr "no se pueden leer los datos del archivo"
-#: libelf/elf_error.c:139
+#: libelf/elf_error.c:138
msgid "cannot write data to file"
msgstr "no se puede escribir los datos al archivo"
-#: libelf/elf_error.c:143
+#: libelf/elf_error.c:142
msgid "invalid binary class"
msgstr "clase de binario inválida"
-#: libelf/elf_error.c:147
+#: libelf/elf_error.c:146
msgid "invalid section index"
msgstr "índice de sección inválido"
-#: libelf/elf_error.c:151
+#: libelf/elf_error.c:150
msgid "invalid operand"
msgstr "operando inválido"
-#: libelf/elf_error.c:155
+#: libelf/elf_error.c:154
msgid "invalid section"
msgstr "sección inválida"
-#: libelf/elf_error.c:163
+#: libelf/elf_error.c:162
msgid "executable header not created first"
msgstr "no se ha creado primero el encabezamiento ejecutable"
-#: libelf/elf_error.c:167
+#: libelf/elf_error.c:166
msgid "file descriptor disabled"
msgstr "descriptor de archivo inhabilitada"
-#: libelf/elf_error.c:171
+#: libelf/elf_error.c:170
msgid "archive/member file descriptor mismatch"
msgstr "archivo/miembro no coincide el descriptor de archivos"
-#: libelf/elf_error.c:179
+#: libelf/elf_error.c:178
msgid "cannot manipulate null section"
msgstr "no se pudo manipular una sección nula"
-#: libelf/elf_error.c:183
+#: libelf/elf_error.c:182
msgid "data/scn mismatch"
msgstr "no coinciden los datos/scn"
-#: libelf/elf_error.c:187
+#: libelf/elf_error.c:186
msgid "invalid section header"
msgstr "encabezamiento de sección inválida"
-#: libelf/elf_error.c:191 src/readelf.c:10093 src/readelf.c:10693
-#: src/readelf.c:10794 src/readelf.c:10976
+#: libelf/elf_error.c:190 src/readelf.c:10266 src/readelf.c:10866
+#: src/readelf.c:10967 src/readelf.c:11149
#, c-format
msgid "invalid data"
msgstr "datos inválidos"
-#: libelf/elf_error.c:195
+#: libelf/elf_error.c:194
msgid "unknown data encoding"
msgstr "codificación de caracteres desconocida"
-#: libelf/elf_error.c:199
+#: libelf/elf_error.c:198
msgid "section `sh_size' too small for data"
msgstr "el tamaño de la sección `sh_size' es demasiado pequeño para los datos "
-#: libelf/elf_error.c:203
+#: libelf/elf_error.c:202
msgid "invalid section alignment"
msgstr "alineación de la sección inválida"
-#: libelf/elf_error.c:207
+#: libelf/elf_error.c:206
msgid "invalid section entry size"
msgstr "tamaño de la entrada de la sección inválida"
-#: libelf/elf_error.c:211
+#: libelf/elf_error.c:210
msgid "update() for write on read-only file"
msgstr "update() para escribir sobre archivo de sólo lectura"
-#: libelf/elf_error.c:215
+#: libelf/elf_error.c:214
msgid "no such file"
msgstr "no hay tal archivo"
-#: libelf/elf_error.c:219
+#: libelf/elf_error.c:218
msgid "only relocatable files can contain section groups"
msgstr "solo los archivos reubicables pueden contener grupos de sección"
-#: libelf/elf_error.c:224
+#: libelf/elf_error.c:223
msgid ""
"program header only allowed in executables, shared objects, and core files"
msgstr ""
"los encabezamientos de los programas solo son permitidos en archivos "
"ejecutables, archivos principales, u objetos compartidos"
-#: libelf/elf_error.c:231
+#: libelf/elf_error.c:230
msgid "file has no program header"
msgstr "el archivo no tiene encabezamiento de programa"
-#: libelf/elf_error.c:241
+#: libelf/elf_error.c:240
#, fuzzy
msgid "invalid section type"
msgstr "sección inválida"
-#: libelf/elf_error.c:246
+#: libelf/elf_error.c:245
#, fuzzy
msgid "invalid section flags"
msgstr "sección inválida"
-#: libelf/elf_error.c:251
+#: libelf/elf_error.c:250
#, fuzzy
msgid "section does not contain compressed data"
msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
-#: libelf/elf_error.c:256
+#: libelf/elf_error.c:255
msgid "section contains compressed data"
msgstr ""
-#: libelf/elf_error.c:261
+#: libelf/elf_error.c:260
#, fuzzy
msgid "unknown compression type"
msgstr "tipo desconocido"
-#: libelf/elf_error.c:266
+#: libelf/elf_error.c:265
#, fuzzy
msgid "cannot compress data"
msgstr "no pueden copiar datos de sección: %s"
-#: libelf/elf_error.c:271
+#: libelf/elf_error.c:270
#, fuzzy
msgid "cannot decompress data"
msgstr "no pueden copiar datos de sección: %s"
-#: src/addr2line.c:57
+#: src/addr2line.c:58
#, fuzzy
msgid "Input format options:"
msgstr "Opciones de selección de entrada:"
-#: src/addr2line.c:59
+#: src/addr2line.c:60
msgid "Treat addresses as offsets relative to NAME section."
msgstr "Manejar direcciones como compensaciones relativas a sección de NOMBRE."
-#: src/addr2line.c:61
+#: src/addr2line.c:62
#, fuzzy
msgid "Output format options:"
msgstr "Formato de salida:"
-#: src/addr2line.c:62
+#: src/addr2line.c:63
#, fuzzy
msgid "Print address before each entry"
msgstr "Imprimir nombre de archivo antes de cada cadena."
-#: src/addr2line.c:63
+#: src/addr2line.c:64
msgid "Show only base names of source files"
msgstr "Mostrar sólo nombres de base de ficheros fuente"
-#: src/addr2line.c:65
-msgid "Show absolute file names using compilation directory"
+#: src/addr2line.c:66
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show absolute file names using compilation directory (default)"
msgstr ""
"Mostrar nombres de fichero absolutos mediante directorio de compilación"
-#: src/addr2line.c:66
+#: src/addr2line.c:67
msgid "Also show function names"
msgstr "También mostrar nombres de función"
-#: src/addr2line.c:67
+#: src/addr2line.c:68
msgid "Also show symbol or section names"
msgstr "También mostrar símbolo o nombres de sección"
-#: src/addr2line.c:68
+#: src/addr2line.c:69
#, fuzzy
msgid "Also show symbol and the section names"
msgstr "También mostrar símbolo o nombres de sección"
-#: src/addr2line.c:69
+#: src/addr2line.c:70
msgid "Also show line table flags"
msgstr "También mostrar marcas de líneas de tabla"
-#: src/addr2line.c:71
+#: src/addr2line.c:72
msgid ""
"Show all source locations that caused inline expansion of subroutines at the "
"address."
msgstr ""
-#: src/addr2line.c:74
+#: src/addr2line.c:75
msgid "Show demangled symbols (ARG is always ignored)"
msgstr ""
-#: src/addr2line.c:76
+#: src/addr2line.c:77
msgid "Print all information on one line, and indent inlines"
msgstr ""
-#: src/addr2line.c:78 src/elfcmp.c:70 src/findtextrel.c:66 src/nm.c:100
-#: src/strings.c:78
+#: src/addr2line.c:79
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show relative file names without compilation directory"
+msgstr ""
+"Mostrar nombres de fichero absolutos mediante directorio de compilación"
+
+#: src/addr2line.c:81 src/elfcmp.c:69 src/findtextrel.c:65 src/nm.c:99
+#: src/strings.c:77
msgid "Miscellaneous:"
msgstr "Misceláneos:"
#. Short description of program.
-#: src/addr2line.c:86
+#: src/addr2line.c:89
msgid ""
"Locate source files and line information for ADDRs (in a.out by default)."
msgstr ""
@@ -881,324 +896,321 @@ msgstr ""
"por defecto)."
#. Strings for arguments in help texts.
-#: src/addr2line.c:90
+#: src/addr2line.c:93
msgid "[ADDR...]"
msgstr "[DIREC...]"
-#: src/addr2line.c:519
-#, c-format
+#: src/addr2line.c:526
msgid "Section syntax requires exactly one module"
msgstr "Sintaxis de sección requiere exactamente un módulo"
-#: src/addr2line.c:542
+#: src/addr2line.c:548
#, c-format
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr "Compensación %#<PRIxMAX> se encuentra fuera de sección '%s'"
-#: src/addr2line.c:652
+#: src/addr2line.c:658
#, c-format
msgid "cannot find symbol '%s'"
msgstr "no se puede encontrar símbolo '%s'"
-#: src/addr2line.c:657
+#: src/addr2line.c:663
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr "compensación %#<PRIxMAX> se encuentra fuera de contenido de '%s'"
-#: src/ar.c:67
+#: src/ar.c:66
msgid "Commands:"
msgstr "Comandos:"
-#: src/ar.c:68
+#: src/ar.c:67
msgid "Delete files from archive."
msgstr "Borrar archivos de un archivo"
-#: src/ar.c:69
+#: src/ar.c:68
msgid "Move files in archive."
msgstr "Desplazar ficheros en archivo."
-#: src/ar.c:70
+#: src/ar.c:69
msgid "Print files in archive."
msgstr "Imprimir ficheros en archivo."
-#: src/ar.c:71
+#: src/ar.c:70
msgid "Quick append files to archive."
msgstr "Adición rápida de ficheros para archivar"
-#: src/ar.c:73
+#: src/ar.c:72
msgid "Replace existing or insert new file into archive."
msgstr "Remplazar fichero existente o insertar uno nuevo en el archivo."
-#: src/ar.c:74
+#: src/ar.c:73
msgid "Display content of archive."
msgstr "Mostrar contenido de archivo"
-#: src/ar.c:75
+#: src/ar.c:74
msgid "Extract files from archive."
msgstr "extraer ficheros de un archivo"
-#: src/ar.c:77
+#: src/ar.c:76
msgid "Command Modifiers:"
msgstr "Modificadores de comandos:"
-#: src/ar.c:78
+#: src/ar.c:77
msgid "Preserve original dates."
msgstr "Preservar fechas originales."
-#: src/ar.c:79
+#: src/ar.c:78
msgid "Use instance [COUNT] of name."
msgstr "Usar instancia [COUNT] de nombre."
-#: src/ar.c:81
+#: src/ar.c:80
msgid "Do not replace existing files with extracted files."
msgstr "No remplazar los archivos existentes por los archivos extractados."
-#: src/ar.c:82
+#: src/ar.c:81
msgid "Allow filename to be truncated if necessary."
msgstr "Permitir truncamiento del nombre de archivo de ser necesario."
-#: src/ar.c:84
+#: src/ar.c:83
msgid "Provide verbose output."
msgstr "Proporcionar salida detallada"
-#: src/ar.c:85
+#: src/ar.c:84
msgid "Force regeneration of symbol table."
msgstr "Forzar regeneración de tabla de símbolos."
-#: src/ar.c:86
+#: src/ar.c:85
msgid "Insert file after [MEMBER]."
msgstr "Insertar archivo después de [MIEMBRO]."
-#: src/ar.c:87
+#: src/ar.c:86
msgid "Insert file before [MEMBER]."
msgstr "Introducir fichero antes de [MIEMBRO]."
-#: src/ar.c:88
+#: src/ar.c:87
msgid "Same as -b."
msgstr "Igual que -b."
-#: src/ar.c:89
+#: src/ar.c:88
msgid "Suppress message when library has to be created."
msgstr "Suprimir mensaje cuando se tenga que crear la biblioteca."
-#: src/ar.c:91
+#: src/ar.c:90
msgid "Use full path for file matching."
msgstr "Usar la ruta total para fichero coincidente."
-#: src/ar.c:92
+#: src/ar.c:91
msgid "Update only older files in archive."
msgstr "Actualizar sólo ficheros antiguos en archivo."
#. Short description of program.
-#: src/ar.c:98
+#: src/ar.c:97
msgid "Create, modify, and extract from archives."
msgstr "Crear, modificar, y extraer de archivos."
#. Strings for arguments in help texts.
-#: src/ar.c:101
+#: src/ar.c:100
msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
msgstr "[MIEMBRO] [CONTAR] ARCHIVO [FICHERO...]"
-#: src/ar.c:180
+#: src/ar.c:179
#, c-format
msgid "'a', 'b', and 'i' are only allowed with the 'm' and 'r' options"
msgstr "'a', 'b', é 'i' sólo se permiten con las opciones 'm' y 'r'."
-#: src/ar.c:185
+#: src/ar.c:184
#, c-format
msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers"
msgstr "Parámetro MIEMBRO requerido para modificadores 'a', 'b', e 'i'"
-#: src/ar.c:201
+#: src/ar.c:200
#, c-format
msgid "'N' is only meaningful with the 'x' and 'd' options"
msgstr "'N' sólo es significativa con las opciones `x' y `d'."
-#: src/ar.c:206
+#: src/ar.c:205
#, c-format
msgid "COUNT parameter required"
msgstr "Parámetro CONTAR requerido"
-#: src/ar.c:218
+#: src/ar.c:217
#, c-format
msgid "invalid COUNT parameter %s"
msgstr "Parámetro CONTAR inválido %s"
-#: src/ar.c:225
+#: src/ar.c:224
#, c-format
msgid "'%c' is only meaningful with the 'x' option"
msgstr "'%c' es sólo significativo con la opción 'x'"
-#: src/ar.c:231
+#: src/ar.c:230
#, c-format
msgid "archive name required"
msgstr "nombre de archivo requerido"
-#: src/ar.c:244
+#: src/ar.c:243
#, c-format
msgid "command option required"
msgstr ""
-#: src/ar.c:295
+#: src/ar.c:294
#, c-format
msgid "More than one operation specified"
msgstr "Más de una operación especificada"
-#: src/ar.c:389
+#: src/ar.c:388
#, c-format
msgid "cannot open archive '%s'"
msgstr "Imposible abrir el archivo '%s'"
-#: src/ar.c:399
+#: src/ar.c:398
#, c-format
msgid "cannot open archive '%s': %s"
msgstr "Imposible abrir el archivo '%s': %s"
-#: src/ar.c:403
+#: src/ar.c:402
#, c-format
msgid "%s: not an archive file"
msgstr "%s: no es un fichero de archivo"
-#: src/ar.c:407
+#: src/ar.c:406
#, c-format
msgid "cannot stat archive '%s'"
msgstr "no sepuede stat el archivo '%s'"
-#: src/ar.c:419
+#: src/ar.c:418
#, c-format
msgid "no entry %s in archive\n"
msgstr "no hay entrada %s en archivo\n"
-#: src/ar.c:472 src/ar.c:927 src/ar.c:1134
-#, c-format
+#: src/ar.c:471 src/ar.c:925 src/ar.c:1131
msgid "cannot create hash table"
msgstr "Falló al crear la tabla de dispersión"
-#: src/ar.c:479 src/ar.c:934 src/ar.c:1143
-#, c-format
+#: src/ar.c:477 src/ar.c:931 src/ar.c:1139
msgid "cannot insert into hash table"
msgstr "no sepuede insertar en tabla de dispersión"
-#: src/ar.c:487 src/ranlib.c:148
+#: src/ar.c:485 src/ranlib.c:147
#, c-format
msgid "cannot stat '%s'"
msgstr "no se puede stat '%s'"
-#: src/ar.c:589
+#: src/ar.c:587
#, c-format
msgid "cannot read content of %s: %s"
msgstr "no se puede leer el contenido de %s: %s"
-#: src/ar.c:632
+#: src/ar.c:630
#, c-format
msgid "cannot open %.*s"
msgstr " Imposible abrir %.*s"
-#: src/ar.c:654
+#: src/ar.c:652
#, c-format
msgid "failed to write %s"
msgstr "Falló al escribir %s"
-#: src/ar.c:666
+#: src/ar.c:664
#, c-format
msgid "cannot change mode of %s"
msgstr "No se puede cambiar el modo de %s"
-#: src/ar.c:682
+#: src/ar.c:680
#, c-format
msgid "cannot change modification time of %s"
msgstr "No puede cambiar tiempo de modificación de %s"
-#: src/ar.c:728
+#: src/ar.c:726
#, c-format
msgid "cannot rename temporary file to %.*s"
msgstr "no sepuede renombrar fichero temporal para %.*s"
-#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222
+#: src/ar.c:762 src/ar.c:1016 src/ar.c:1419 src/ranlib.c:221
#, c-format
msgid "cannot create new file"
msgstr "no sepuede crear fichero nuevo"
-#: src/ar.c:1225
+#: src/ar.c:1221
#, c-format
msgid "position member %s not found"
msgstr "no se encuentra miembro de posición %s "
-#: src/ar.c:1235
+#: src/ar.c:1231
#, c-format
msgid "%s: no entry %s in archive!\n"
msgstr "%s: ¡no hay entrada %s en archive!\n"
-#: src/ar.c:1264 src/objdump.c:241
+#: src/ar.c:1260 src/objdump.c:240
#, c-format
msgid "cannot open %s"
msgstr "no sepuede abrir %s"
-#: src/ar.c:1269
+#: src/ar.c:1265
#, c-format
msgid "cannot stat %s"
msgstr "no sepuede efectuar stat %s"
-#: src/ar.c:1275
+#: src/ar.c:1271
#, c-format
msgid "%s is no regular file"
msgstr " %s no es un fichero ordinario "
-#: src/ar.c:1288
+#: src/ar.c:1284
#, c-format
msgid "cannot get ELF descriptor for %s: %s\n"
msgstr "no sepuede obtener descriptor ELF para %s: %s\n"
-#: src/ar.c:1308
+#: src/ar.c:1304
#, c-format
msgid "cannot read %s: %s"
msgstr "no sepuede leer %s: %s"
-#: src/ar.c:1483
+#: src/ar.c:1479
#, fuzzy, c-format
msgid "cannot represent ar_date"
msgstr "no pueden copiar datos de sección: %s"
-#: src/ar.c:1489
+#: src/ar.c:1485
#, fuzzy, c-format
msgid "cannot represent ar_uid"
msgstr "no pueden copiar datos de sección: %s"
-#: src/ar.c:1495
+#: src/ar.c:1491
#, fuzzy, c-format
msgid "cannot represent ar_gid"
msgstr "no pueden copiar datos de sección: %s"
-#: src/ar.c:1501
+#: src/ar.c:1497
#, fuzzy, c-format
msgid "cannot represent ar_mode"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/ar.c:1507
+#: src/ar.c:1503
#, fuzzy, c-format
msgid "cannot represent ar_size"
msgstr "no sepuede abrir %s"
-#: src/arlib-argp.c:32
+#: src/arlib-argp.c:31
msgid "Use zero for uid, gid, and date in archive members."
msgstr ""
-#: src/arlib-argp.c:34
+#: src/arlib-argp.c:33
msgid "Use actual uid, gid, and date in archive members."
msgstr ""
-#: src/arlib-argp.c:63
+#: src/arlib-argp.c:62
#, c-format
msgid "%s (default)"
msgstr ""
#. The archive is too big.
-#: src/arlib.c:213
+#: src/arlib.c:212
#, c-format
msgid "the archive '%s' is too large"
msgstr " El archivo '%s' es demasiado grande"
-#: src/arlib.c:226
+#: src/arlib.c:225
#, c-format
msgid "cannot read ELF header of %s(%s): %s"
msgstr "no se puede leer el encabezamiento ELF de %s(%s): %s"
@@ -1386,8 +1398,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1334 src/elflint.c:77
-#: src/readelf.c:158
+#: src/elfclassify.c:979 src/elfcompress.c:1358 src/elflint.c:76
+#: src/readelf.c:160
msgid "FILE..."
msgstr "FICHERO..."
@@ -1430,15 +1442,15 @@ msgid ""
"change the exit status."
msgstr ""
-#: src/elfcmp.c:60
+#: src/elfcmp.c:59
msgid "Control options:"
msgstr "Opciones de control:"
-#: src/elfcmp.c:62
+#: src/elfcmp.c:61
msgid "Output all differences, not just the first"
msgstr ""
-#: src/elfcmp.c:63
+#: src/elfcmp.c:62
msgid ""
"Control treatment of gaps in loadable segments [ignore|match] (default: "
"ignore)"
@@ -1446,218 +1458,218 @@ msgstr ""
"Tratamiento de control de brechas en segmento cargables [ignorar|"
"coincidencia] (por defecto: ignorar)"
-#: src/elfcmp.c:65
+#: src/elfcmp.c:64
msgid "Ignore permutation of buckets in SHT_HASH section"
msgstr "Ignorar permutación de cubetas en sección SHT_HASH"
-#: src/elfcmp.c:67
+#: src/elfcmp.c:66
msgid "Ignore differences in build ID"
msgstr ""
-#: src/elfcmp.c:68
+#: src/elfcmp.c:67
msgid "Output nothing; yield exit status only"
msgstr "Nada de salida; producir estado de salida únicamente"
#. Short description of program.
-#: src/elfcmp.c:75
+#: src/elfcmp.c:74
msgid "Compare relevant parts of two ELF files for equality."
msgstr "Comparar partes relevantes de dos ficheros ELF para igualdad."
#. Strings for arguments in help texts.
-#: src/elfcmp.c:79
+#: src/elfcmp.c:78
msgid "FILE1 FILE2"
msgstr "FICHERO1 FICHERO2"
-#: src/elfcmp.c:141
+#: src/elfcmp.c:140
msgid "Invalid number of parameters.\n"
msgstr "Número inválido de parámetros.\n"
-#: src/elfcmp.c:172 src/elfcmp.c:177
+#: src/elfcmp.c:171 src/elfcmp.c:176
#, c-format
msgid "cannot get ELF header of '%s': %s"
msgstr "no se puede obtener encabezamiento de '%s': %s"
-#: src/elfcmp.c:203
+#: src/elfcmp.c:202
#, c-format
msgid "%s %s diff: ELF header"
msgstr "%s %s diff: encabezamiento ELF"
-#: src/elfcmp.c:210 src/elfcmp.c:213
+#: src/elfcmp.c:209 src/elfcmp.c:212
#, c-format
msgid "cannot get section count of '%s': %s"
msgstr "no se puede obtener un conteo de sección en '%s': %s"
-#: src/elfcmp.c:218
+#: src/elfcmp.c:217
#, c-format
msgid "%s %s diff: section count"
msgstr "%s %s diff: conteo de sección"
-#: src/elfcmp.c:225 src/elfcmp.c:228
+#: src/elfcmp.c:224 src/elfcmp.c:227
#, c-format
msgid "cannot get program header count of '%s': %s"
msgstr "no se puede obtener un conteo de encabezado de programa de '%s': %s"
-#: src/elfcmp.c:233
+#: src/elfcmp.c:232
#, c-format
msgid "%s %s diff: program header count"
msgstr "%s %s diff: encabezado de programa"
-#: src/elfcmp.c:241 src/elfcmp.c:244
+#: src/elfcmp.c:240 src/elfcmp.c:243
#, fuzzy, c-format
msgid "cannot get hdrstrndx of '%s': %s"
msgstr "no se puede obtener encabezamiento de '%s': %s"
-#: src/elfcmp.c:249
+#: src/elfcmp.c:248
#, fuzzy, c-format
msgid "%s %s diff: shdr string index"
msgstr "%s %s diff: conteo de sección"
-#: src/elfcmp.c:307
+#: src/elfcmp.c:306
#, fuzzy, c-format
msgid "%s %s differ: section [%zu], [%zu] name"
msgstr "%s %s differ: sección [%zu,%zu] contenido '%s'"
-#: src/elfcmp.c:330
+#: src/elfcmp.c:329
#, fuzzy, c-format
msgid "%s %s differ: section [%zu] '%s' header"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:338 src/elfcmp.c:344
+#: src/elfcmp.c:337 src/elfcmp.c:343
#, c-format
msgid "cannot get content of section %zu in '%s': %s"
msgstr "No se puede obtener contenido de sección %zu en '%s': %s"
-#: src/elfcmp.c:353
+#: src/elfcmp.c:352
#, fuzzy, c-format
msgid "symbol table [%zu] in '%s' has zero sh_entsize"
msgstr ""
"\n"
"La tabla de símbolos [%2u] '%s' contiene entrada %u:\n"
-#: src/elfcmp.c:365 src/elfcmp.c:371
+#: src/elfcmp.c:364 src/elfcmp.c:370
#, c-format
msgid "cannot get symbol in '%s': %s"
msgstr "No se puede obtener símbolo en '%s': %s"
-#: src/elfcmp.c:393
+#: src/elfcmp.c:392
#, c-format
msgid "%s %s differ: symbol table [%zu]"
msgstr "%s %s differ: tabla de símbolos [%zu]"
-#: src/elfcmp.c:396
+#: src/elfcmp.c:395
#, c-format
msgid "%s %s differ: symbol table [%zu,%zu]"
msgstr "%s %s differ: tabla de símbolos [%zu,%zu]"
-#: src/elfcmp.c:443 src/elfcmp.c:513
+#: src/elfcmp.c:442 src/elfcmp.c:512
#, fuzzy, c-format
msgid "%s %s differ: section [%zu] '%s' number of notes"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:451
+#: src/elfcmp.c:450
#, fuzzy, c-format
msgid "cannot read note section [%zu] '%s' in '%s': %s"
msgstr "No se puede obtener contenido de sección %zu en '%s': %s"
-#: src/elfcmp.c:462
+#: src/elfcmp.c:461
#, fuzzy, c-format
msgid "%s %s differ: section [%zu] '%s' note name"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:470
+#: src/elfcmp.c:469
#, fuzzy, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' type"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:485
+#: src/elfcmp.c:484
#, fuzzy, c-format
msgid "%s %s differ: build ID length"
msgstr "%s %s differ: brecha"
-#: src/elfcmp.c:493
+#: src/elfcmp.c:492
#, fuzzy, c-format
msgid "%s %s differ: build ID content"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:502
+#: src/elfcmp.c:501
#, fuzzy, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' content"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:543
+#: src/elfcmp.c:542
#, c-format
msgid "%s %s differ: section [%zu] '%s' content"
msgstr "%s %s differ: sección [%zu] contenido '%s'"
-#: src/elfcmp.c:547
+#: src/elfcmp.c:546
#, c-format
msgid "%s %s differ: section [%zu,%zu] '%s' content"
msgstr "%s %s differ: sección [%zu,%zu] contenido '%s'"
-#: src/elfcmp.c:562
+#: src/elfcmp.c:561
#, c-format
msgid "%s %s differ: unequal amount of important sections"
msgstr "%s %s differ: cantidad desigual de secciones importantes"
-#: src/elfcmp.c:595 src/elfcmp.c:600
+#: src/elfcmp.c:594 src/elfcmp.c:599
#, c-format
msgid "cannot load data of '%s': %s"
msgstr "no se pueden cargar los datos de '%s': %s"
-#: src/elfcmp.c:619 src/elfcmp.c:625
+#: src/elfcmp.c:618 src/elfcmp.c:624
#, c-format
msgid "cannot get program header entry %d of '%s': %s"
msgstr ""
"no se puede obtener entrada de encabezamiento de programa %d de '%s': %s"
-#: src/elfcmp.c:631
+#: src/elfcmp.c:630
#, c-format
msgid "%s %s differ: program header %d"
msgstr "%s %s differ: encabezamiento de programa %d"
-#: src/elfcmp.c:655
+#: src/elfcmp.c:654
#, c-format
msgid "%s %s differ: gap"
msgstr "%s %s differ: brecha"
-#: src/elfcmp.c:706
+#: src/elfcmp.c:705
#, c-format
msgid "Invalid value '%s' for --gaps parameter."
msgstr "Valor inválido '%s' para parámetro --gaps"
-#: src/elfcmp.c:734 src/findtextrel.c:195 src/nm.c:364 src/ranlib.c:141
-#: src/size.c:272 src/strings.c:185 src/strip.c:1035 src/strip.c:1072
-#: src/unstrip.c:2197 src/unstrip.c:2226
+#: src/elfcmp.c:733 src/findtextrel.c:194 src/nm.c:363 src/ranlib.c:140
+#: src/size.c:271 src/strings.c:184 src/strip.c:1040 src/strip.c:1077
+#: src/unstrip.c:2194 src/unstrip.c:2223
#, c-format
msgid "cannot open '%s'"
msgstr "Imposible abrir '%s'"
-#: src/elfcmp.c:738 src/findtextrel.c:214 src/ranlib.c:158
+#: src/elfcmp.c:737 src/findtextrel.c:213 src/ranlib.c:157
#, c-format
msgid "cannot create ELF descriptor for '%s': %s"
msgstr "No puede crear descriptor ELF para '%s': %s"
-#: src/elfcmp.c:743
+#: src/elfcmp.c:742
#, c-format
msgid "cannot create EBL descriptor for '%s'"
msgstr "no se puede crear el descriptor EBL para '%s'"
-#: src/elfcmp.c:761 src/findtextrel.c:385
+#: src/elfcmp.c:760 src/findtextrel.c:384
#, 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:771
+#: src/elfcmp.c:770
#, c-format
msgid "cannot get content of section %zu: %s"
msgstr "No se puede obtener contenido de sección %zu: %s"
-#: src/elfcmp.c:781 src/elfcmp.c:795
+#: src/elfcmp.c:780 src/elfcmp.c:794
#, c-format
msgid "cannot get relocation: %s"
msgstr "No se puede obtener reubicación: %s"
-#: src/elfcompress.c:117 src/strip.c:308 src/unstrip.c:117
+#: src/elfcompress.c:117 src/strip.c:305 src/unstrip.c:116
#, c-format
msgid "-o option specified twice"
msgstr "opción -o especificada dos veces"
@@ -1673,71 +1685,71 @@ msgid "unknown compression type '%s'"
msgstr "tipo desconocido"
#. We need at least one input file.
-#: src/elfcompress.c:145 src/elfcompress.c:1345
+#: src/elfcompress.c:145 src/elfcompress.c:1369
#, fuzzy, c-format
msgid "No input file given"
msgstr "archivo de entrada vacío"
-#: src/elfcompress.c:151 src/elfcompress.c:1350
+#: src/elfcompress.c:151 src/elfcompress.c:1373
#, fuzzy, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "Sólo se permite ingresar un archivo junto con '-o' y '-f'"
-#: src/elfcompress.c:1307
+#: src/elfcompress.c:1331
#, fuzzy
msgid "Place (de)compressed output into FILE"
msgstr "Colocar la salida obtenida en FICHERO"
-#: src/elfcompress.c:1310
+#: src/elfcompress.c:1334
msgid ""
"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)"
msgstr ""
-#: src/elfcompress.c:1313
+#: src/elfcompress.c:1337
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
msgstr ""
-#: src/elfcompress.c:1316
+#: src/elfcompress.c:1340
msgid "Print a message for each section being (de)compressed"
msgstr ""
-#: src/elfcompress.c:1319
+#: src/elfcompress.c:1343
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
msgstr ""
-#: src/elfcompress.c:1322 src/strip.c:93
+#: src/elfcompress.c:1346 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "Relaja algunas reglas para manejar ficheros ELF rotos"
-#: src/elfcompress.c:1325
+#: src/elfcompress.c:1349
#, fuzzy
msgid "Be silent when a section cannot be compressed"
msgstr ""
"Sección [%2zu] '%s': dirección de secciones de datos de hilo-local no cero\n"
-#: src/elfcompress.c:1335
+#: src/elfcompress.c:1359
msgid "Compress or decompress sections in an ELF file."
msgstr ""
-#: src/elflint.c:63
+#: src/elflint.c:62
msgid "Be extremely strict, flag level 2 features."
msgstr "Sea extremadamente estricto, característica de marca de nivel 2."
-#: src/elflint.c:64
+#: src/elflint.c:63
msgid "Do not print anything if successful"
msgstr "No imprime nada si está correcto"
-#: src/elflint.c:65
+#: src/elflint.c:64
msgid "Binary is a separate debuginfo file"
msgstr "Binario es un archivo debuginfo independiente"
-#: src/elflint.c:67
+#: src/elflint.c:66
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1746,174 +1758,174 @@ msgstr ""
"roto de alguna forma"
#. Short description of program.
-#: src/elflint.c:73
+#: src/elflint.c:72
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr "Chequeo minucioso de ficheros ELF de acuerdo con gABI/psABI "
-#: src/elflint.c:154 src/readelf.c:368
+#: src/elflint.c:153 src/readelf.c:391
#, fuzzy, c-format
msgid "cannot open input file '%s'"
msgstr "no se puede abrir el fichero de entrada"
-#: src/elflint.c:161
+#: src/elflint.c:160
#, fuzzy, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "no se puede crear descriptor ELF: %s\n"
-#: src/elflint.c:180
+#: src/elflint.c:179
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "error al cerrar el descriptor ELF: %s\n"
-#: src/elflint.c:184
+#: src/elflint.c:183
msgid "No errors"
msgstr "No hay errores"
-#: src/elflint.c:219 src/readelf.c:577
+#: src/elflint.c:218 src/readelf.c:603
msgid "Missing file name.\n"
msgstr "Falta el nombre de archivo.\n"
-#: src/elflint.c:284
+#: src/elflint.c:283
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr " error al liberar descriptor sub-ELF: %s\n"
#. We cannot do anything.
-#: src/elflint.c:292
+#: src/elflint.c:291
#, c-format
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "No es un fichero ELF - tiene los bytes mágicos errados en el inicio\n"
-#: src/elflint.c:357
+#: src/elflint.c:356
#, c-format
msgid "e_ident[%d] == %d is no known class\n"
msgstr "e_ident[%d] == %d es una clase desconocida\n"
-#: src/elflint.c:362
+#: src/elflint.c:361
#, c-format
msgid "e_ident[%d] == %d is no known data encoding\n"
msgstr "e_ident[%d] == %d es una codificación de datos desconocida\n"
-#: src/elflint.c:366
+#: src/elflint.c:365
#, c-format
msgid "unknown ELF header version number e_ident[%d] == %d\n"
msgstr ""
"número de versión de encabezamiento ELF desconocido e_ident[%d] == %d\n"
-#: src/elflint.c:374
+#: src/elflint.c:373
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
msgstr "Sistema operativo OS ABI e_ident[%d] == '%s' incompatible\n"
-#: src/elflint.c:380
+#: src/elflint.c:379
#, fuzzy, c-format
msgid "unsupported ABI version e_ident[%d] == %d\n"
msgstr "Versión incompatible ABI e_ident[%d] == %d\n"
-#: src/elflint.c:385
+#: src/elflint.c:384
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] no es cero\n"
-#: src/elflint.c:390
+#: src/elflint.c:389
#, c-format
msgid "unknown object file type %d\n"
msgstr "tipo de fichero objeto desconocido %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:396
#, c-format
msgid "unknown machine type %d\n"
msgstr "tipo de máquina desconocido %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:400
#, c-format
msgid "unknown object file version\n"
msgstr "versión de fichero objeto desconocido\n"
-#: src/elflint.c:407
+#: src/elflint.c:406
#, c-format
msgid "invalid program header offset\n"
msgstr "Compensación de encabezamiento de programa inválida\n"
-#: src/elflint.c:409
+#: src/elflint.c:408
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
"tanto los ejecutables como los DSO no pueden tener compensación de "
"encabezamiento de programa cero\n"
-#: src/elflint.c:413
+#: src/elflint.c:412
#, c-format
msgid "invalid number of program header entries\n"
msgstr "cantidad no válida de entradas del encabezamiento del programa\n"
-#: src/elflint.c:421
+#: src/elflint.c:420
#, c-format
msgid "invalid section header table offset\n"
msgstr "compensación de sección de tabla de encabezamiento inválida\n"
-#: src/elflint.c:424
+#: src/elflint.c:423
#, c-format
msgid "section header table must be present\n"
msgstr "tabla de encabezamiento de sección debe estar presente\n"
-#: src/elflint.c:438
+#: src/elflint.c:437
#, c-format
msgid "invalid number of section header table entries\n"
msgstr ""
"cantidad no válida de entradas en la tabla del encabezamiento de sección\n"
-#: src/elflint.c:455
+#: src/elflint.c:454
#, c-format
msgid "invalid section header index\n"
msgstr "Ãndice de sección de encabezamiento inválido\n"
-#: src/elflint.c:473
+#: src/elflint.c:472
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr ""
-#: src/elflint.c:487
+#: src/elflint.c:486
#, c-format
msgid "invalid number of program header table entries\n"
msgstr "cantidad no válida de entradas de tabla de encabezado del programa\n"
-#: src/elflint.c:504
+#: src/elflint.c:503
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr ""
-#: src/elflint.c:509
+#: src/elflint.c:508
#, c-format
msgid "invalid machine flags: %s\n"
msgstr "Indicadores de máquina inválidos: %s\n"
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:515 src/elflint.c:532
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr "tamaño inválido del encabezamiento ELF: %hd\n"
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:518 src/elflint.c:535
#, c-format
msgid "invalid program header size: %hd\n"
msgstr "tamaño inválido del encabezamiento del programa: %hd\n"
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:521 src/elflint.c:538
#, c-format
msgid "invalid program header position or size\n"
msgstr "tamaño o posición inválidos del encabezamiento del programa\n"
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:524 src/elflint.c:541
#, c-format
msgid "invalid section header size: %hd\n"
msgstr "tamaño inválido del encabezamiento de sección: %hd\n"
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:527 src/elflint.c:544
#, c-format
msgid "invalid section header position or size\n"
msgstr "tamaño o posición no válidos del encabezamiento de sección\n"
-#: src/elflint.c:590
+#: src/elflint.c:589
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1922,7 +1934,7 @@ msgstr ""
"sección [%2d] '%s': sección con la bandera SHF_GROUP no es parte de una "
"sección de grupo\n"
-#: src/elflint.c:594
+#: src/elflint.c:593
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
@@ -1930,14 +1942,14 @@ msgstr ""
"sección [%2d] '%s': el grupo de sección [%2zu] '%s' no precede al miembro de "
"grupo\n"
-#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
-#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106
-#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4458
+#: src/elflint.c:609 src/elflint.c:1497 src/elflint.c:1548 src/elflint.c:1654
+#: src/elflint.c:1990 src/elflint.c:2316 src/elflint.c:2942 src/elflint.c:3105
+#: src/elflint.c:3253 src/elflint.c:3455 src/elflint.c:4464
#, 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:623 src/elflint.c:1662
+#: src/elflint.c:622 src/elflint.c:1661
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1946,7 +1958,7 @@ 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:646
+#: src/elflint.c:645
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1955,13 +1967,13 @@ msgstr ""
"sección [%2d] '%s': la tabla de símbolo no puede tener más de una sección de "
"índice extendido\n"
-#: src/elflint.c:658
+#: src/elflint.c:657
#, c-format
msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
msgstr ""
"sección [%2u] '%s': el tamaño de la entrada no coincide con ElfXX_Sym\n"
-#: src/elflint.c:662
+#: src/elflint.c:661
#, fuzzy, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
@@ -1970,33 +1982,33 @@ msgstr ""
"Sección [%2d] '%s': no hay entradas de nota definidas para el tipo de "
"archivo\n"
-#: src/elflint.c:671
+#: src/elflint.c:670
#, c-format
msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
msgstr "Sección [%2d] '%s': no se puede obtener símbolo %d: %s\n"
-#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685
-#: src/elflint.c:688 src/elflint.c:691
+#: src/elflint.c:675 src/elflint.c:678 src/elflint.c:681 src/elflint.c:684
+#: src/elflint.c:687 src/elflint.c:690
#, c-format
msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
msgstr "Sección [%2d] '%s': '%s' en la entrada zeroth no es cero\n"
-#: src/elflint.c:694
+#: src/elflint.c:693
#, c-format
msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
msgstr "sección [%2d] '%s': XINDEX en la entrada zeroth no es cero\n"
-#: src/elflint.c:704
+#: src/elflint.c:703
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
msgstr "sección [%2d] '%s': no es posible obtener el símbolo %zu: %s\n"
-#: src/elflint.c:713
+#: src/elflint.c:712
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr "sección [%2d] '%s': símbolo %zu: valor de nombre inválido\n"
-#: src/elflint.c:728
+#: src/elflint.c:727
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -2005,7 +2017,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu: el índice de sección es demasiado extenso, "
"pero no la sección extendida de la sección de índice\n"
-#: src/elflint.c:734
+#: src/elflint.c:733
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -2015,27 +2027,27 @@ msgstr ""
"caber en st_shndx (%<PRIu32>)\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:745
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n"
msgstr "sección [%2d] '%s': símbolo %zu: índice de sección inválido\n"
-#: src/elflint.c:754
+#: src/elflint.c:753
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n"
msgstr "sección [%2d] '%s': símbolo %zu: tipo desconocido\n"
-#: src/elflint.c:760
+#: src/elflint.c:759
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n"
msgstr "sección [%2d] '%s': símbolo %zu: asociación de símbolo desconocida\n"
-#: src/elflint.c:765
+#: src/elflint.c:764
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n"
msgstr "Sección [%2d] '%s': símbolo %zu: símbolo único no de tipo de objeto\n"
-#: src/elflint.c:773
+#: src/elflint.c:772
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2044,26 +2056,26 @@ msgstr ""
"sección [%2d] '%s': símbolo %zu: COMMON solo es permitido en archivos "
"realojables\n"
-#: src/elflint.c:777
+#: src/elflint.c:776
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
msgstr ""
"Sección [%2d] '%s': símbolo %zu: símbolos locales COMMON no tienen sentido\n"
-#: src/elflint.c:781
+#: src/elflint.c:780
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
msgstr ""
"Sección [%2d] '%s': símbolo %zu: función en sección COMMON no tiene sentido\n"
-#: src/elflint.c:832
+#: src/elflint.c:831
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n"
msgstr "sección [%2d] '%s': símbolo %zu: st_value fuera de límites\n"
-#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912
+#: src/elflint.c:837 src/elflint.c:862 src/elflint.c:911
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2072,7 +2084,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu no se ajusta totalmente en la sección [%2d] "
"'%s'\n"
-#: src/elflint.c:847
+#: src/elflint.c:846
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2081,7 +2093,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:857 src/elflint.c:905
+#: src/elflint.c:856 src/elflint.c:904
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2090,7 +2102,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:884
+#: src/elflint.c:883
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2099,7 +2111,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu: símbolo TLS, pero no hay entrada de "
"programa TLS\n"
-#: src/elflint.c:890
+#: src/elflint.c:889
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2108,7 +2120,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu: símbolo TLS, pero no hay entrada de "
"programa TLS\n"
-#: src/elflint.c:898
+#: src/elflint.c:897
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2117,7 +2129,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu: st_value falta sección de referencia [%2d] "
"'%s'\n"
-#: src/elflint.c:925
+#: src/elflint.c:924
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2126,7 +2138,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu: símbolo local fuera del rango descrito en "
"sh_info\n"
-#: src/elflint.c:932
+#: src/elflint.c:931
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2135,12 +2147,12 @@ msgstr ""
"Sección [%2d] '%s': símbolo %zu: símbolo non-local fuera del rango descrito "
"en sh_info\n"
-#: src/elflint.c:939
+#: src/elflint.c:938
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n"
msgstr "Sección [%2d] '%s': símbolo %zu: símbolo de sección non-local\n"
-#: src/elflint.c:989
+#: src/elflint.c:988
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2149,7 +2161,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ se refiere a sección "
"errada [%2d]\n"
-#: src/elflint.c:996
+#: src/elflint.c:995
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2161,7 +2173,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:1012
+#: src/elflint.c:1011
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2170,7 +2182,7 @@ msgstr ""
"Sección [%2d] '%s': valor del símbolo _GLOBAL_OFFSET_TABLE_ %#<PRIx64> no "
"coincide con dirección de sección %s %#<PRIx64>\n"
-#: src/elflint.c:1019
+#: src/elflint.c:1018
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2179,7 +2191,7 @@ msgstr ""
"Sección [%2d] '%s': tamaño de símbolo _GLOBAL_OFFSET_TABLE_ %<PRIu64> no "
"coincide con tamaño de sección %s %<PRIu64>\n"
-#: src/elflint.c:1027
+#: src/elflint.c:1026
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2188,7 +2200,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo _GLOBAL_OFFSET_TABLE_ presente, pero no. sección "
"got\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1042
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2197,7 +2209,7 @@ msgstr ""
"sección [%2d] '%s': Valor de símbolo _DYNAMIC_ %#<PRIx64> no coincide con la "
"dirección de segmento%#<PRIx64>\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1049
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2206,7 +2218,7 @@ msgstr ""
"Sección [%2d] '%s': tamaño de símbolo _DYNAMIC %<PRIu64> no coincide con "
"tamaño de segmento %<PRIu64>\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1062
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2215,29 +2227,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:1067
+#: src/elflint.c:1066
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): 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:1105
+#: src/elflint.c:1104
#, 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:1121
+#: src/elflint.c:1120
#, 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:1132 src/elflint.c:1185
+#: src/elflint.c:1131 src/elflint.c:1184
#, 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:1157 src/elflint.c:1210
+#: src/elflint.c:1156 src/elflint.c:1209
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2246,7 +2258,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:1163 src/elflint.c:1216
+#: src/elflint.c:1162 src/elflint.c:1215
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2255,50 +2267,50 @@ msgstr ""
"Sección [%2d] '%s': reubicación no-relativa en %zu de índice; DT_RELCOUNT "
"especificado %d reubicaciones relativas\n"
-#: src/elflint.c:1175
+#: src/elflint.c:1174
#, 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:1258
+#: src/elflint.c:1257
#, 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:1270
+#: src/elflint.c:1269
#, 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:1278
+#: src/elflint.c:1277
#, 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:1286
+#: src/elflint.c:1285
#, 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:1294
+#: src/elflint.c:1293
#, 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:1354
+#: src/elflint.c:1353
#, 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:1381
+#: src/elflint.c:1380
#, 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:1389
+#: src/elflint.c:1388
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2307,12 +2319,12 @@ msgstr ""
"Sección [%2d] '%s': reubicación %zu: tipo de reubicación inválido para el "
"tipo de archivo\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1396
#, 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:1415
+#: src/elflint.c:1414
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2321,12 +2333,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:1432
+#: src/elflint.c:1431
#, 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:1447
+#: src/elflint.c:1446
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2335,7 +2347,7 @@ msgstr ""
"Sección [%2d] '%s': reubicación %zu: reubicación de copia con símbolo de "
"tipo %s\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1467
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2344,24 +2356,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:1483
+#: src/elflint.c:1482
#, 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:1523 src/elflint.c:1574
+#: src/elflint.c:1522 src/elflint.c:1573
#, 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:1650
+#: src/elflint.c:1649
#, c-format
msgid "more than one dynamic section present\n"
msgstr "más de una sección dinámica presente\n"
-#: src/elflint.c:1668
+#: src/elflint.c:1667
#, fuzzy, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2370,44 +2382,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:1676
+#: src/elflint.c:1675
#, 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:1681 src/elflint.c:1970
+#: src/elflint.c:1680 src/elflint.c:1969
#, 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:1691
+#: src/elflint.c:1690
#, 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:1699
+#: src/elflint.c:1698
#, 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:1706
+#: src/elflint.c:1705
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr "Sección [%2d] '%s': entrada %zu: etiqueta desconocida\n"
-#: src/elflint.c:1717
+#: src/elflint.c:1716
#, 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:1727
+#: src/elflint.c:1726
#, 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:1745
+#: src/elflint.c:1744
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -2415,7 +2427,7 @@ msgstr ""
"Sección [%2d] '%s': entrada %zu: el valor DT_PLTREL debe ser DT_REL or "
"DT_RELA\n"
-#: src/elflint.c:1758
+#: src/elflint.c:1757
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -2424,14 +2436,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:1801
+#: src/elflint.c:1800
#, 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:1816
+#: src/elflint.c:1815
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -2440,46 +2452,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:1836 src/elflint.c:1864
+#: src/elflint.c:1835 src/elflint.c:1863
#, 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:1848
+#: src/elflint.c:1847
#, 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:1857
+#: src/elflint.c:1856
#, 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:1872 src/elflint.c:1879
+#: src/elflint.c:1871 src/elflint.c:1878
#, 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:1889 src/elflint.c:1893
+#: src/elflint.c:1888 src/elflint.c:1892
#, 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:1899
+#: src/elflint.c:1898
#, 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:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922
+#: src/elflint.c:1909 src/elflint.c:1913 src/elflint.c:1917 src/elflint.c:1921
#, 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:1934
+#: src/elflint.c:1933
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2487,37 +2499,37 @@ msgstr ""
"Sección [%2d] '%s': sólo los archivos reubicables pueden tener índice de "
"sección extendido\n"
-#: src/elflint.c:1944
+#: src/elflint.c:1943
#, 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:1948
+#: src/elflint.c:1947
#, 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:1953
+#: src/elflint.c:1952
#, c-format
msgid "cannot get data for symbol section\n"
msgstr "no se puede obtener sección para símbolos\n"
-#: src/elflint.c:1956
+#: src/elflint.c:1955
#, 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:1965
+#: src/elflint.c:1964
#, 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:1980
+#: src/elflint.c:1979
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2526,24 +2538,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:1998
+#: src/elflint.c:1997
#, 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:2010
+#: src/elflint.c:2009
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr "no puede obtener datos para símbolo %zu\n"
-#: src/elflint.c:2015
+#: src/elflint.c:2014
#, c-format
msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
msgstr ""
"índice de sección extendida es %<PRIu32> pero índice de símbolo no es "
"XINDEX\n"
-#: src/elflint.c:2032 src/elflint.c:2089
+#: src/elflint.c:2031 src/elflint.c:2088
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2551,42 +2563,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:2046 src/elflint.c:2103
+#: src/elflint.c:2045 src/elflint.c:2102
#, 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:2060 src/elflint.c:2117
+#: src/elflint.c:2059 src/elflint.c:2116
#, 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:2070
+#: src/elflint.c:2069
#, 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:2127
+#: src/elflint.c:2126
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
"Sección [%2d] '%s': referencia de cadena de dispersión %<PRIu64> fuera de "
"límites\n"
-#: src/elflint.c:2140
+#: src/elflint.c:2139
#, 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:2152
+#: src/elflint.c:2151
#, 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:2168
+#: src/elflint.c:2167
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2595,14 +2607,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:2177
+#: src/elflint.c:2176
#, 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:2211
+#: src/elflint.c:2210
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2610,7 +2622,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:2232
+#: src/elflint.c:2231
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2619,7 +2631,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:2245
+#: src/elflint.c:2244
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2627,7 +2639,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:2254
+#: src/elflint.c:2253
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2635,13 +2647,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:2284
+#: src/elflint.c:2283
#, 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:2289
+#: src/elflint.c:2288
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2649,43 +2661,43 @@ msgstr ""
"Sección [%2d] '%s': referencia de símbolo en cadena para cubeta %zu fuera de "
"límites\n"
-#: src/elflint.c:2295
+#: src/elflint.c:2294
#, 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:2308
+#: src/elflint.c:2307
#, 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:2326
+#: src/elflint.c:2325
#, 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:2330
+#: src/elflint.c:2329
#, 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:2340
+#: src/elflint.c:2339
#, 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:2345
+#: src/elflint.c:2344
#, 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:2350
+#: src/elflint.c:2349
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2694,46 +2706,46 @@ msgstr ""
"Sección [%2d] '%s': tabla de dispersión no tiene ni siquiera espacio para "
"entradas administrativas iniciales\n"
-#: src/elflint.c:2399
+#: src/elflint.c:2398
#, 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:2423 src/elflint.c:2488 src/elflint.c:2523
+#: src/elflint.c:2422 src/elflint.c:2487 src/elflint.c:2522
#, 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:2444
+#: src/elflint.c:2443
#, 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:2455 src/elflint.c:2499 src/elflint.c:2536
+#: src/elflint.c:2454 src/elflint.c:2498 src/elflint.c:2535
#, 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:2470
+#: src/elflint.c:2469
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
"%<PRIu32>, nentries: %<PRIu32>\n"
msgstr ""
-#: src/elflint.c:2557
+#: src/elflint.c:2556
#, fuzzy, c-format
msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
msgstr "Sección [%2zu]: nombre inválido\n"
-#: src/elflint.c:2567 src/elflint.c:2571
+#: src/elflint.c:2566 src/elflint.c:2570
#, 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:2578
+#: src/elflint.c:2577
#, c-format
msgid ""
"symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2742,7 +2754,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:2590
+#: src/elflint.c:2589
#, c-format
msgid ""
"symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2751,12 +2763,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:2606
+#: src/elflint.c:2605
#, 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:2626
+#: src/elflint.c:2625
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2764,99 +2776,99 @@ msgstr ""
"Sección [%2d] '%s': grupos de sección sólo permitidos en archivos de objeto "
"reubicables\n"
-#: src/elflint.c:2637
+#: src/elflint.c:2636
#, 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:2642
+#: src/elflint.c:2641
#, 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:2648
+#: src/elflint.c:2647
#, 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:2653
+#: src/elflint.c:2652
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr "Sección [%2d] '%s': sh_flags no cero\n"
-#: src/elflint.c:2660
+#: src/elflint.c:2659
#, 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:2664
+#: src/elflint.c:2663
#, 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:2669
+#: src/elflint.c:2668
#, 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:2675
+#: src/elflint.c:2674
#, 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:2681
+#: src/elflint.c:2680
#, 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:2690
+#: src/elflint.c:2689
#, 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:2696
+#: src/elflint.c:2695
#, 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:2704
+#: src/elflint.c:2703
#, 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:2708
+#: src/elflint.c:2707
#, 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:2719
+#: src/elflint.c:2718
#, 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:2731
+#: src/elflint.c:2730
#, 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:2740
+#: src/elflint.c:2739
#, 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:2747
+#: src/elflint.c:2746
#, 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:2753
+#: src/elflint.c:2752
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2865,12 +2877,12 @@ msgstr ""
"Sección [%2d] '%s': elemento %Zu hace referencia a sección [%2d] '%s' sin "
"establecer bandera SHF_GROUP\n"
-#: src/elflint.c:2760
+#: src/elflint.c:2759
#, 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:2957
+#: src/elflint.c:2956
#, c-format
msgid ""
"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2879,7 +2891,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:2969
+#: src/elflint.c:2968
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2888,29 +2900,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:2985
+#: src/elflint.c:2984
#, 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:3001
+#: src/elflint.c:3000
#, 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:3009
+#: src/elflint.c:3008
#, 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:3023
+#: src/elflint.c:3022
#, 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:3028
+#: src/elflint.c:3027
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
@@ -2918,7 +2930,7 @@ msgstr ""
"Sección [%2d] '%s': símbolo %d: índice de versión %d es para versión "
"definida\n"
-#: src/elflint.c:3038
+#: src/elflint.c:3037
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
@@ -2926,46 +2938,46 @@ msgstr ""
"Sección [%2d] '%s': símbolo %d: índice de versión %d es para la versión "
"solicitada\n"
-#: src/elflint.c:3091
+#: src/elflint.c:3090
#, 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:3099 src/elflint.c:3246
+#: src/elflint.c:3098 src/elflint.c:3245
#, 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:3124 src/elflint.c:3300
+#: src/elflint.c:3123 src/elflint.c:3299
#, 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:3131 src/elflint.c:3307
+#: src/elflint.c:3130 src/elflint.c:3306
#, 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:3141
+#: src/elflint.c:3140
#, 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:3149
+#: src/elflint.c:3148
#, 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:3161
+#: src/elflint.c:3160
#, 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:3169
+#: src/elflint.c:3168
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2974,7 +2986,7 @@ msgstr ""
"Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene referencia de "
"nombre inválida\n"
-#: src/elflint.c:3178
+#: src/elflint.c:3177
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -2983,7 +2995,7 @@ msgstr ""
"Sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene valor de "
"dispersión: %#x, esperado %#x\n"
-#: src/elflint.c:3187
+#: src/elflint.c:3186
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -2992,7 +3004,7 @@ msgstr ""
"sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene nombre duplicado "
"'%s'\n"
-#: src/elflint.c:3198
+#: src/elflint.c:3197
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
@@ -3000,14 +3012,14 @@ msgstr ""
"sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene próximo campo "
"errado\n"
-#: src/elflint.c:3215 src/elflint.c:3391
+#: src/elflint.c:3214 src/elflint.c:3390
#, 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:3223 src/elflint.c:3399
+#: src/elflint.c:3222 src/elflint.c:3398
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -3016,46 +3028,46 @@ msgstr ""
"sección [%2d] '%s': entrada %d tiene compensación inválida para próxima "
"entrada\n"
-#: src/elflint.c:3238
+#: src/elflint.c:3237
#, 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:3285
+#: src/elflint.c:3284
#, 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:3289
+#: src/elflint.c:3288
#, 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:3295
+#: src/elflint.c:3294
#, 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:3322
+#: src/elflint.c:3321
#, 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:3329
+#: src/elflint.c:3328
#, 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:3337
+#: src/elflint.c:3336
#, 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:3357
+#: src/elflint.c:3356
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -3063,34 +3075,34 @@ msgstr ""
"Sección [%2d] '%s': entrada %d tiene referencia de nombre inválida en datos "
"auxiliares\n"
-#: src/elflint.c:3374
+#: src/elflint.c:3373
#, 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:3407
+#: src/elflint.c:3406
#, 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:3423
+#: src/elflint.c:3422
#, 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:3448
+#: src/elflint.c:3447
#, 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:3464
+#: src/elflint.c:3463
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr "Sección[%2d] '%s': formato de atributo no reconocido\n"
-#: src/elflint.c:3475
+#: src/elflint.c:3474
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
@@ -3098,21 +3110,21 @@ msgstr ""
"Sección[%2d] '%s': compensación %zu: campo de longitud cero en sección de "
"atributo\n"
-#: src/elflint.c:3484
+#: src/elflint.c:3483
#, 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:3496
+#: src/elflint.c:3495
#, 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:3513
+#: src/elflint.c:3512
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -3120,12 +3132,12 @@ msgstr ""
"Sección [%2d] '%s': compensación %zu: sin fin ULEB128 en etiqueta de sub-"
"sección de atributo\n"
-#: src/elflint.c:3522
+#: src/elflint.c:3521
#, 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:3531
+#: src/elflint.c:3530
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
@@ -3133,7 +3145,7 @@ msgstr ""
"Sección [%2d] '%s': compensación %zu: campo de longitud cero length en sub-"
"sección de atributo\n"
-#: src/elflint.c:3546
+#: src/elflint.c:3545
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -3142,7 +3154,7 @@ msgstr ""
"atributo\n"
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3556
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -3150,26 +3162,26 @@ msgstr ""
"Sección[%2d] '%s': compensación %zu: sub-sección de atributo tiene etiqueta "
"inesperada %u\n"
-#: src/elflint.c:3575
+#: src/elflint.c:3574
#, 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:3586
+#: src/elflint.c:3585
#, 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:3599
+#: src/elflint.c:3598
#, 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:3603
+#: src/elflint.c:3602
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
@@ -3177,12 +3189,12 @@ msgstr ""
"Sección [%2d] '%s': compensación %zu: no reconocido %s valor de atributo "
"%<PRIu64>\n"
-#: src/elflint.c:3613
+#: src/elflint.c:3612
#, 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:3619
+#: src/elflint.c:3618
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -3190,47 +3202,47 @@ msgstr ""
"Sección [%2d] '%s': compensación %zu: extra bytes después de la última "
"sección de atributo\n"
-#: src/elflint.c:3716
+#: src/elflint.c:3715
#, 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:3720
+#: src/elflint.c:3719
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr "Sección zeroth tiene nombre nonzero\n"
-#: src/elflint.c:3722
+#: src/elflint.c:3721
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr "Sección zeroth tiene tipo nonzero\n"
-#: src/elflint.c:3724
+#: src/elflint.c:3723
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr "Sección zeroth tiene banderas nonzero\n"
-#: src/elflint.c:3726
+#: src/elflint.c:3725
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr "Sección zeroth tiene dirección nonzero\n"
-#: src/elflint.c:3728
+#: src/elflint.c:3727
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr "Sección zeroth tiene compensación nonzero\n"
-#: src/elflint.c:3730
+#: src/elflint.c:3729
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr "Sección zeroth tiene valor de alineación nonzero\n"
-#: src/elflint.c:3732
+#: src/elflint.c:3731
#, 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:3735
+#: src/elflint.c:3734
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -3239,7 +3251,7 @@ msgstr ""
"Sección zeroth tiene valor de tamaño nonzero mientras que el encabezamiento "
"ELF tiene valor shnum nonzero\n"
-#: src/elflint.c:3739
+#: src/elflint.c:3738
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3248,7 +3260,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:3743
+#: src/elflint.c:3742
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3257,27 +3269,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:3761
+#: src/elflint.c:3760
#, 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:3770
+#: src/elflint.c:3769
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr "Sección [%2zu]: nombre inválido\n"
-#: src/elflint.c:3797
+#: src/elflint.c:3796
#, 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:3814
+#: src/elflint.c:3813
#, 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:3832
+#: src/elflint.c:3831
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
@@ -3285,12 +3297,12 @@ msgstr ""
"Sección [%2zu] '%s' tiene banderas erradas: %s esperado y posiblemente %s, "
"es %s\n"
-#: src/elflint.c:3849
+#: src/elflint.c:3848
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr "Sección [%2zu] '%s' presente en archivo objeto\n"
-#: src/elflint.c:3855 src/elflint.c:3887
+#: src/elflint.c:3854 src/elflint.c:3886
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
@@ -3298,7 +3310,7 @@ msgstr ""
"Sección [%2zu] '%s' tiene bandera SHF_ALLOC establecida pero no es un "
"segmento cargable\n"
-#: src/elflint.c:3860 src/elflint.c:3892
+#: src/elflint.c:3859 src/elflint.c:3891
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -3307,7 +3319,7 @@ msgstr ""
"Sección [%2zu] '%s' no tiene bandera SHF_ALLOC establecida pero hay "
"segmentos cargables\n"
-#: src/elflint.c:3868
+#: src/elflint.c:3867
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -3315,22 +3327,22 @@ msgstr ""
"Sección [%2zu] '%s' es tabla de índice de sección de extensión en archivo no-"
"objeto\n"
-#: src/elflint.c:3911
+#: src/elflint.c:3910
#, 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:3916
+#: src/elflint.c:3915
#, c-format
msgid "cannot get section header\n"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/elflint.c:3926
+#: src/elflint.c:3925
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n"
-#: src/elflint.c:3946
+#: src/elflint.c:3945
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3338,76 +3350,76 @@ msgstr ""
"Sección [%2zu] '%s' contiene bandera(s) de procesador-específico inválidas "
"%#<PRIx64>\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3955
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "Sección [%2zu] '%s' contiene bandera(s) desconocidas %#<PRIx64>\n"
-#: src/elflint.c:3964
+#: src/elflint.c:3963
#, 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:3974
+#: src/elflint.c:3973
#, 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:3979
+#: src/elflint.c:3978
#, 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:3985
+#: src/elflint.c:3984
#, 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:3991
+#: src/elflint.c:3990
#, 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:3996
+#: src/elflint.c:3995
#, 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:4003
+#: src/elflint.c:4002
#, 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:4008
+#: src/elflint.c:4007
#, 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:4027
+#: src/elflint.c:4026
#, 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:4036
+#: src/elflint.c:4035
#, 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:4043
+#: src/elflint.c:4042
#, 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:4074
+#: src/elflint.c:4073
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3416,7 +3428,7 @@ msgstr ""
"Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de "
"encabezamiento de programa %d\n"
-#: src/elflint.c:4084
+#: src/elflint.c:4083
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3425,7 +3437,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:4110
+#: src/elflint.c:4109
#, fuzzy, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3434,7 +3446,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:4121
+#: src/elflint.c:4120
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3443,18 +3455,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:4132
+#: src/elflint.c:4131
#, 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:4142
+#: src/elflint.c:4141
#, 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:4152
+#: src/elflint.c:4151
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3462,7 +3474,7 @@ msgstr ""
"Sección [%2zu] '%s': asignación de bandera establecida pero sección no en "
"ningún segmento cargado\n"
-#: src/elflint.c:4158
+#: src/elflint.c:4157
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3471,7 +3483,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:4166
+#: src/elflint.c:4165
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3479,32 +3491,32 @@ msgstr ""
"sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de símbolos "
"dinámicos\n"
-#: src/elflint.c:4217
+#: src/elflint.c:4216
#, 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:4240
+#: src/elflint.c:4239
#, 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:4251
+#: src/elflint.c:4250
#, 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:4257
+#: src/elflint.c:4256
#, 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:4268
+#: src/elflint.c:4267
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3513,26 +3525,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:4281
+#: src/elflint.c:4280
#, c-format
msgid "duplicate version index %d\n"
msgstr "Duplicar índice de versión %d\n"
-#: src/elflint.c:4295
+#: src/elflint.c:4294
#, 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:4344
+#: src/elflint.c:4343
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
"phdr[%d]: tipo de nota de fichero core desconocido %<PRIu32> en compensación "
"%<PRIu64>\n"
-#: src/elflint.c:4348
+#: src/elflint.c:4347
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3540,7 +3552,7 @@ msgstr ""
"Sección [%2d] '%s': tipo de nota de fichero core desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4397
+#: src/elflint.c:4403
#, fuzzy, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3549,7 +3561,7 @@ msgstr ""
"phdr[%d]: tipo de nota de fichero objeto desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4402
+#: src/elflint.c:4408
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3558,40 +3570,40 @@ msgstr ""
"Sección [%2d] '%s': tipo de nota de fichero objeto desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4421
+#: src/elflint.c:4427
#, 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:4441
+#: src/elflint.c:4447
#, 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:4444
+#: src/elflint.c:4450
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: extra %<PRIu64> bytes después de la última nota\n"
-#: src/elflint.c:4465
+#: src/elflint.c:4471
#, 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:4472
+#: src/elflint.c:4478
#, 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:4475
+#: src/elflint.c:4481
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr "Sección[%2d] '%s': extra %<PRIu64> bytes después de la última nota\n"
-#: src/elflint.c:4493
+#: src/elflint.c:4499
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3599,145 +3611,145 @@ msgstr ""
"Sólo ejecutables, objetos compartidos y ficheros core pueden tener "
"encabezamientos de programas\n"
-#: src/elflint.c:4508
+#: src/elflint.c:4514
#, 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:4518
+#: src/elflint.c:4524
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"entrada de encabezamiento de programa %d: tipo %#<PRIx64> de entrada de "
"encabezamiento de programa desconocido\n"
-#: src/elflint.c:4529
+#: src/elflint.c:4535
#, 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:4537
+#: src/elflint.c:4543
#, 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:4544
+#: src/elflint.c:4550
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "ejecutable estático no puede tener secciones dinámicas\n"
-#: src/elflint.c:4558
+#: src/elflint.c:4564
#, 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:4561
+#: src/elflint.c:4567
#, 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:4571
+#: src/elflint.c:4577
#, 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:4592
+#: src/elflint.c:4598
#, 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:4603
+#: src/elflint.c:4609
#, 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:4610
+#: src/elflint.c:4616
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4619 src/elflint.c:4642
+#: src/elflint.c:4625 src/elflint.c:4648
#, 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:4648
+#: src/elflint.c:4654
#, 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:4675
+#: src/elflint.c:4681
#, 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:4678
+#: src/elflint.c:4684
#, 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:4691
+#: src/elflint.c:4697
#, 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:4699
+#: src/elflint.c:4705
#, 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:4702
+#: src/elflint.c:4708
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "sección [%2zu] '%s' debe ser asignada\n"
-#: src/elflint.c:4706
+#: src/elflint.c:4712
#, 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:4709
+#: src/elflint.c:4715
#, 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:4714
+#: src/elflint.c:4720
#, 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:4717
+#: src/elflint.c:4723
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
-#: src/elflint.c:4728
+#: src/elflint.c:4737
#, 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:4735
+#: src/elflint.c:4744
#, 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:4738
+#: src/elflint.c:4747
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3746,7 +3758,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:4751
+#: src/elflint.c:4760
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3755,111 +3767,111 @@ msgstr ""
"ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de "
"encabezamiento de programa PT_GNU_EH_FRAME"
-#: src/elflint.c:4785
+#: src/elflint.c:4794
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "No se puede leer encabezamiento ELF: %s\n"
-#: src/elflint.c:4797
+#: src/elflint.c:4806
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "no sepuede crear fichero nuevo"
-#: src/elflint.c:4818
+#: src/elflint.c:4827
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr "Bandera de reubicación de texto establecida pero no necesaria\n"
-#: src/findtextrel.c:61
+#: src/findtextrel.c:60
msgid "Input Selection:"
msgstr "Selección de entrada:"
-#: src/findtextrel.c:62
+#: src/findtextrel.c:61
msgid "Prepend PATH to all file names"
msgstr "Agregar RUTA a todos los nombres de ficheros"
-#: src/findtextrel.c:64
+#: src/findtextrel.c:63
msgid "Use PATH as root of debuginfo hierarchy"
msgstr "Usar RUTA como root de jerarquía de debuginfo"
#. Short description of program.
-#: src/findtextrel.c:71
+#: src/findtextrel.c:70
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)."
#. Strings for arguments in help texts.
-#: src/findtextrel.c:75 src/nm.c:108 src/objdump.c:71 src/size.c:80
-#: src/strings.c:87 src/strip.c:101
+#: src/findtextrel.c:74 src/nm.c:107 src/objdump.c:70 src/size.c:79
+#: src/strings.c:86 src/strip.c:100
msgid "[FILE...]"
msgstr "[FICHERO...]"
-#: src/findtextrel.c:224
+#: src/findtextrel.c:223
#, c-format
msgid "cannot get ELF header '%s': %s"
msgstr "No se puede obtener encabezamiento ELF '%s': %s"
-#: src/findtextrel.c:235
+#: src/findtextrel.c:234
#, c-format
msgid "'%s' is not a DSO or PIE"
msgstr "'%s' es no un DSO o PIE"
-#: src/findtextrel.c:255
+#: src/findtextrel.c:254
#, c-format
msgid "getting get section header of section %zu: %s"
msgstr "obtener encabezamiento de sección get de sección %zu: %s"
-#: src/findtextrel.c:279
+#: src/findtextrel.c:278
#, c-format
msgid "cannot read dynamic section: %s"
msgstr "No se puede leer sección dinámica: %s"
-#: src/findtextrel.c:300
+#: src/findtextrel.c:299
#, c-format
msgid "no text relocations reported in '%s'"
msgstr "no hay reubicaciones de texto reportado en '%s'"
-#: src/findtextrel.c:311
+#: src/findtextrel.c:310
#, c-format
msgid "while reading ELF file"
msgstr "Error al leer fichero ELF"
-#: src/findtextrel.c:315
+#: src/findtextrel.c:314
#, fuzzy, c-format
msgid "cannot get program header count: %s"
msgstr "no se puede obtener memoria para encabezamiento del programa: %s"
-#: src/findtextrel.c:326 src/findtextrel.c:341
+#: src/findtextrel.c:325 src/findtextrel.c:340
#, fuzzy, c-format
msgid "cannot get program header index at offset %zd: %s"
msgstr ""
"Nos se puede obtener el índice de encabezamiento de programa en compensación "
"%d: %s"
-#: src/findtextrel.c:397
+#: src/findtextrel.c:396
#, c-format
msgid "cannot get symbol table section %zu in '%s': %s"
msgstr "No se puede obtener tabla de símbolos %zu en '%s': %s"
-#: src/findtextrel.c:418 src/findtextrel.c:441
+#: src/findtextrel.c:417 src/findtextrel.c:440
#, c-format
msgid "cannot get relocation at index %d in section %zu in '%s': %s"
msgstr ""
"No se puede obtener reubicación en índice %d en sección %zu en '%s': %s"
-#: src/findtextrel.c:507
+#: src/findtextrel.c:506
#, c-format
msgid "%s not compiled with -fpic/-fPIC\n"
msgstr "%s no compilado con -fpic/-fPIC\n"
-#: src/findtextrel.c:561
+#: src/findtextrel.c:560
#, c-format
msgid ""
"the file containing the function '%s' is not compiled with -fpic/-fPIC\n"
msgstr ""
"El archivo que contiene la función '%s' no está compilado con -fpic/-fPIC\n"
-#: src/findtextrel.c:568 src/findtextrel.c:588
+#: src/findtextrel.c:567 src/findtextrel.c:587
#, c-format
msgid ""
"the file containing the function '%s' might not be compiled with -fpic/-"
@@ -3868,7 +3880,7 @@ msgstr ""
"el fichero que contiene la función '%s' podría no estar compilado con -fpic/-"
"fPIC\n"
-#: src/findtextrel.c:576
+#: src/findtextrel.c:575
#, c-format
msgid ""
"either the file containing the function '%s' or the file containing the "
@@ -3877,7 +3889,7 @@ msgstr ""
"Tanto el fichero que contiene la función '%s' como el fichero que contiene "
"la función '%s' no están compilados con -fpic/-fPIC\n"
-#: src/findtextrel.c:596
+#: src/findtextrel.c:595
#, c-format
msgid ""
"a relocation modifies memory at offset %llu in a write-protected segment\n"
@@ -3885,43 +3897,43 @@ msgstr ""
"Una reubicación modifica memoria en compensación %llu en un segmento "
"protegido contra escritura\n"
-#: src/nm.c:66 src/strip.c:70
+#: src/nm.c:65 src/strip.c:69
msgid "Output selection:"
msgstr "Selección de salida:"
-#: src/nm.c:67
+#: src/nm.c:66
msgid "Display debugger-only symbols"
msgstr "Mostrar sólo símbolos del depurador"
-#: src/nm.c:68
+#: src/nm.c:67
msgid "Display only defined symbols"
msgstr "Mostrar sólo símbolos definidos"
-#: src/nm.c:71
+#: src/nm.c:70
msgid "Display dynamic symbols instead of normal symbols"
msgstr "Mostrar símbolos dinámicos en lugar de símbolos normales"
-#: src/nm.c:72
+#: src/nm.c:71
msgid "Display only external symbols"
msgstr "Mostrar sólo símbolos externos"
-#: src/nm.c:73
+#: src/nm.c:72
msgid "Display only undefined symbols"
msgstr "Mostrar sólo símbolos indefinidos"
-#: src/nm.c:75
+#: src/nm.c:74
msgid "Include index for symbols from archive members"
msgstr "Incluir índices para símbolos de miembros de archivo"
-#: src/nm.c:77 src/size.c:54
+#: src/nm.c:76 src/size.c:53
msgid "Output format:"
msgstr "Formato de salida:"
-#: src/nm.c:79
+#: src/nm.c:78
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:82
+#: src/nm.c:81
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The "
"default is `sysv'"
@@ -3929,75 +3941,75 @@ 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:84
+#: src/nm.c:83
msgid "Same as --format=bsd"
msgstr "lo mismo que --format=bsd"
-#: src/nm.c:85
+#: src/nm.c:84
msgid "Same as --format=posix"
msgstr "lo mismo que --format=posix"
-#: src/nm.c:86 src/size.c:60
+#: src/nm.c:85 src/size.c:59
msgid "Use RADIX for printing symbol values"
msgstr "Utilizar RADIX para imprimir valores de símbolo"
-#: src/nm.c:87
+#: src/nm.c:86
#, fuzzy
msgid "Mark special symbols"
msgstr "Marcar símbolos débiles"
-#: src/nm.c:89
+#: src/nm.c:88
msgid "Print size of defined symbols"
msgstr "Tamaño de impresión de símbolos definidos"
-#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:69
+#: src/nm.c:90 src/size.c:67 src/strip.c:74 src/unstrip.c:68
msgid "Output options:"
msgstr "Opciones de salida:"
-#: src/nm.c:92
+#: src/nm.c:91
msgid "Sort symbols numerically by address"
msgstr "Ordenar los símbolos numéricos por dirección"
-#: src/nm.c:94
+#: src/nm.c:93
msgid "Do not sort the symbols"
msgstr "No ordenar los símbolos"
-#: src/nm.c:95
+#: src/nm.c:94
msgid "Reverse the sense of the sort"
msgstr "Invertir el orden"
-#: src/nm.c:98
+#: src/nm.c:97
msgid "Decode low-level symbol names into source code names"
msgstr ""
#. Short description of program.
-#: src/nm.c:105
+#: src/nm.c:104
msgid "List symbols from FILEs (a.out by default)."
msgstr "Listar símbolos de FICHEROS (a.out por defecto)."
-#: src/nm.c:116 src/objdump.c:79
+#: src/nm.c:115 src/objdump.c:78
#, fuzzy
msgid "Output formatting"
msgstr "Formato de salida:"
-#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133
+#: src/nm.c:139 src/objdump.c:102 src/size.c:104 src/strip.c:132
#, fuzzy, c-format
msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: ERROR INTERNO %d (%s-%s): %s"
-#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2767
+#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
+#: src/strip.c:2766
#, c-format
msgid "while closing '%s'"
msgstr "error al cerrar '%s'"
-#: src/nm.c:403 src/objdump.c:280 src/strip.c:822
+#: src/nm.c:402 src/objdump.c:279 src/strip.c:827
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: No se reconoce el formato del fichero"
#. Note: 0 is no valid offset.
-#: src/nm.c:443
+#: src/nm.c:442
#, fuzzy
msgid ""
"\n"
@@ -4006,44 +4018,43 @@ msgstr ""
"\n"
"Ãndice de archivo:"
-#: src/nm.c:452
+#: src/nm.c:451
#, c-format
msgid "invalid offset %zu for symbol %s"
msgstr "Compensación %zu inválida para símbolo %s"
-#: src/nm.c:457
+#: src/nm.c:456
#, c-format
msgid "%s in %s\n"
msgstr "%s en %s\n"
-#: src/nm.c:465
+#: src/nm.c:464
#, c-format
msgid "cannot reset archive offset to beginning"
msgstr "imposible restablecer compensación de archivo al inicio"
-#: src/nm.c:490 src/objdump.c:328
+#: src/nm.c:489 src/objdump.c:327
#, c-format
msgid "%s%s%s: file format not recognized"
msgstr "%s%s%s: no se reconoció el formato de fichero"
-#: src/nm.c:704
-#, c-format
+#: src/nm.c:702
msgid "cannot create search tree"
msgstr "No se puede crear el árbol de búsqueda"
-#: src/nm.c:745 src/nm.c:1238 src/objdump.c:781 src/readelf.c:637
-#: src/readelf.c:1451 src/readelf.c:1602 src/readelf.c:1803 src/readelf.c:2009
-#: src/readelf.c:2199 src/readelf.c:2377 src/readelf.c:2453 src/readelf.c:2719
-#: src/readelf.c:2795 src/readelf.c:2882 src/readelf.c:3478 src/readelf.c:3528
-#: src/readelf.c:3598 src/readelf.c:11409 src/readelf.c:12603
-#: src/readelf.c:12814 src/readelf.c:12883 src/size.c:398 src/size.c:470
-#: src/strip.c:1089
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
+#: src/readelf.c:1471 src/readelf.c:1620 src/readelf.c:1847 src/readelf.c:2084
+#: src/readelf.c:2273 src/readelf.c:2451 src/readelf.c:2526 src/readelf.c:2791
+#: src/readelf.c:2866 src/readelf.c:2952 src/readelf.c:3547 src/readelf.c:3595
+#: src/readelf.c:3664 src/readelf.c:11581 src/readelf.c:12771
+#: src/readelf.c:12981 src/readelf.c:13049 src/size.c:396 src/size.c:467
+#: src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr "no se puede obtener índice de cadena de encabezamiento de sección"
#. We always print this prolog.
-#: src/nm.c:770
+#: src/nm.c:767
#, c-format
msgid ""
"\n"
@@ -4057,7 +4068,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:773
+#: src/nm.c:770
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -4066,105 +4077,105 @@ msgstr ""
"%*s%-*s %-*s Clase Tipo %-*s %*s Sección\n"
"\n"
-#: src/nm.c:775
+#: src/nm.c:772
msgctxt "sysv"
msgid "Name"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:777
+#: src/nm.c:774
msgctxt "sysv"
msgid "Value"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:779
+#: src/nm.c:776
msgctxt "sysv"
msgid "Size"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:781
+#: src/nm.c:778
msgctxt "sysv"
msgid "Line"
msgstr ""
-#: src/nm.c:1249
+#: src/nm.c:1245
#, 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:1254
+#: src/nm.c:1250
#, 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:1335
+#: src/nm.c:1330
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr ""
"%s: el tamaño de la entrada en la sección `%s' no es el que esperábamos "
#. XXX Add machine specific object file types.
-#: src/nm.c:1571
+#: src/nm.c:1566
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: Operación inválida"
-#: src/nm.c:1621
+#: src/nm.c:1616
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: No hay símbolos"
-#: src/objdump.c:52
+#: src/objdump.c:51
msgid "Mode selection:"
msgstr "Selección de modo:"
-#: src/objdump.c:53
+#: src/objdump.c:52
msgid "Display relocation information."
msgstr "Mostrar la reubicación de información."
-#: src/objdump.c:55
+#: src/objdump.c:54
msgid "Display the full contents of all sections requested"
msgstr "Mostrar el contenido total de todas las secciones solicitadas"
-#: src/objdump.c:57
+#: src/objdump.c:56
msgid "Display assembler code of executable sections"
msgstr "Mostrar código de ensamblador de secciones ejecutables"
-#: src/objdump.c:59
+#: src/objdump.c:58
#, fuzzy
msgid "Output content selection:"
msgstr "Selección de opción de salida:"
-#: src/objdump.c:61
+#: src/objdump.c:60
msgid "Only display information for section NAME."
msgstr "Sólo muestra información para NOMBRE de sección."
#. Short description of program.
-#: src/objdump.c:67
+#: src/objdump.c:66
msgid "Show information from FILEs (a.out by default)."
msgstr "Muestra información de FICHEROS (a.out por defecto)."
-#: src/objdump.c:218 src/readelf.c:582
+#: src/objdump.c:217 src/readelf.c:608
msgid "No operation specified.\n"
msgstr "No se especificó una operación.\n"
-#: src/objdump.c:258 src/objdump.c:270
+#: src/objdump.c:257 src/objdump.c:269
#, c-format
msgid "while close `%s'"
msgstr "mientras cierra `%s'"
-#: src/objdump.c:363 src/readelf.c:2104 src/readelf.c:2296
+#: src/objdump.c:362 src/readelf.c:2179 src/readelf.c:2370
msgid "INVALID SYMBOL"
msgstr "SÃMBOLO INVÃLIDO"
-#: src/objdump.c:378 src/readelf.c:2138 src/readelf.c:2332
+#: src/objdump.c:377 src/readelf.c:2213 src/readelf.c:2406
msgid "INVALID SECTION"
msgstr "SECCIÓN INVÃLIDA"
-#: src/objdump.c:498
+#: src/objdump.c:497
#, c-format
msgid ""
"\n"
@@ -4175,104 +4186,103 @@ msgstr ""
"REUBICACIÓN DE REGISTROS PARA [%s]:\n"
"%-*s TIPO VALOR\n"
-#: src/objdump.c:501
+#: src/objdump.c:500
msgid "OFFSET"
msgstr "COMPENSACIÓN"
-#: src/objdump.c:566
+#: src/objdump.c:565
#, c-format
msgid "Contents of section %s:\n"
msgstr "Contenido de la sección %s:\n"
-#: src/objdump.c:687
-#, c-format
+#: src/objdump.c:686
msgid "cannot disassemble"
msgstr "No se puede desensamblar"
-#: src/objdump.c:759
-#, fuzzy, c-format
+#: src/objdump.c:757
+#, fuzzy
msgid "cannot create backend for elf file"
msgstr "no sepuede crear fichero nuevo"
#. Short description of program.
-#: src/ranlib.c:63
+#: src/ranlib.c:62
msgid "Generate an index to speed access to archives."
msgstr " Generar un índice para acelerar el acceso a los archivos."
#. Strings for arguments in help texts.
-#: src/ranlib.c:66
+#: src/ranlib.c:65
msgid "ARCHIVE"
msgstr "ARCHIVO "
-#: src/ranlib.c:102
+#: src/ranlib.c:101
#, c-format
msgid "Archive name required"
msgstr "Se requiere nombre de archivo"
-#: src/ranlib.c:166
+#: src/ranlib.c:165
#, c-format
msgid "'%s' is no archive"
msgstr "%s: no es un archivo"
-#: src/ranlib.c:201
+#: src/ranlib.c:200
#, c-format
msgid "error while freeing sub-ELF descriptor: %s"
msgstr "error al liberar descriptor sub-ELF: %s"
-#: src/readelf.c:97
+#: src/readelf.c:96
#, fuzzy
msgid "ELF input selection:"
msgstr "Selección de salida de ELF:"
-#: src/readelf.c:99
+#: src/readelf.c:98
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
-#: src/readelf.c:102
+#: src/readelf.c:101
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
msgstr ""
-#: src/readelf.c:104
+#: src/readelf.c:103
msgid "ELF output selection:"
msgstr "Selección de salida de ELF:"
-#: src/readelf.c:106
+#: src/readelf.c:105
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr "Todo esto mas -p .strtab -p .dynstr -p .comment"
-#: src/readelf.c:107
+#: src/readelf.c:106
msgid "Display the dynamic segment"
msgstr "Mostrar el segmento dinámico"
-#: src/readelf.c:108
+#: src/readelf.c:107
msgid "Display the ELF file header"
msgstr "Mostrar el encabezamiento del fichero ELF"
-#: src/readelf.c:110
+#: src/readelf.c:109
msgid "Display histogram of bucket list lengths"
msgstr "Mostrar histograma de las longitudes de las listas de cubetas"
-#: src/readelf.c:111
+#: src/readelf.c:110
msgid "Display the program headers"
msgstr "Mostrar encabezamientos de programa"
-#: src/readelf.c:113
+#: src/readelf.c:112
msgid "Display relocations"
msgstr "Mostrar reubicaciones"
-#: src/readelf.c:114
+#: src/readelf.c:113
#, fuzzy
msgid "Display the section groups"
msgstr "Mostrar los encabezados de las secciones"
-#: src/readelf.c:115
+#: src/readelf.c:114
msgid "Display the sections' headers"
msgstr "Mostrar los encabezados de las secciones"
-#: src/readelf.c:118
+#: src/readelf.c:117
#, fuzzy
msgid "Display the symbol table sections"
msgstr "Mostrar la tabla de símbolos"
@@ -4326,184 +4336,188 @@ msgid "Display the symbol index of an archive"
msgstr "Muestra el índice de símbolos de un archivo"
#: src/readelf.c:141
+msgid "Use the dynamic segment when possible for displaying info"
+msgstr ""
+
+#: src/readelf.c:143
msgid "Output control:"
msgstr "Control de salida:"
-#: src/readelf.c:143
+#: src/readelf.c:145
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:145
+#: src/readelf.c:147
#, 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:147
+#: src/readelf.c:149
msgid "Ignored for compatibility (lines always wide)"
msgstr ""
-#: src/readelf.c:149
+#: src/readelf.c:151
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
msgstr ""
#. Short description of program.
-#: src/readelf.c:154
+#: src/readelf.c:156
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."
#. Look up once.
-#: src/readelf.c:350
+#: src/readelf.c:373
msgid "yes"
msgstr "sí"
-#: src/readelf.c:351
+#: src/readelf.c:374
msgid "no"
msgstr "no"
-#: src/readelf.c:550
+#: src/readelf.c:576
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Sección de depuración DWARF desconocida `%s'.\n"
-#: src/readelf.c:621 src/readelf.c:732
+#: src/readelf.c:647 src/readelf.c:758
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "no se puede crear descriptor ELF: %s"
-#: src/readelf.c:628 src/readelf.c:955 src/strip.c:1184
+#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
-#: src/readelf.c:646 src/readelf.c:1265 src/readelf.c:1475
+#: src/readelf.c:672 src/readelf.c:1287 src/readelf.c:1495
#, c-format
msgid "cannot get section: %s"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:655 src/readelf.c:1272 src/readelf.c:1483 src/readelf.c:12834
-#: src/unstrip.c:397 src/unstrip.c:428 src/unstrip.c:491 src/unstrip.c:612
-#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1224
-#: src/unstrip.c:1351 src/unstrip.c:1375 src/unstrip.c:1431 src/unstrip.c:1472
-#: src/unstrip.c:1665 src/unstrip.c:1816 src/unstrip.c:1959 src/unstrip.c:2058
+#: src/readelf.c:681 src/readelf.c:1294 src/readelf.c:1502 src/readelf.c:13001
+#: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610
+#: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222
+#: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470
+#: src/unstrip.c:1662 src/unstrip.c:1813 src/unstrip.c:1956 src/unstrip.c:2055
#, c-format
msgid "cannot get section header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:663
+#: src/readelf.c:689
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/readelf.c:672 src/readelf.c:6634 src/readelf.c:10681 src/readelf.c:10783
-#: src/readelf.c:10961
+#: src/readelf.c:698 src/readelf.c:6797 src/readelf.c:10854 src/readelf.c:10956
+#: src/readelf.c:11134
#, c-format
msgid "cannot get %s content: %s"
msgstr "No se puede obtener el contenido %s: %s"
-#: src/readelf.c:688
+#: src/readelf.c:714
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "no se puede crear fichero nuevo '%s': %s"
-#: src/readelf.c:697
+#: src/readelf.c:723
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "no se puede leer la sección de datos: %s"
-#: src/readelf.c:703 src/readelf.c:720 src/readelf.c:749
+#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:710
+#: src/readelf.c:736
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:744
+#: src/readelf.c:770
#, 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:848
+#: src/readelf.c:874
#, c-format
msgid "cannot stat input file"
msgstr "no sepudo stat archivo de entrada"
-#: src/readelf.c:850
+#: src/readelf.c:876
#, c-format
msgid "input file is empty"
msgstr "archivo de entrada vacío"
-#: src/readelf.c:852
+#: src/readelf.c:878
#, c-format
msgid "failed reading '%s': %s"
msgstr "Falló lectura de '%s': %s"
-#: src/readelf.c:881
+#: src/readelf.c:907
#, 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:940
+#: src/readelf.c:966
#, c-format
msgid "cannot read ELF header: %s"
msgstr "no se pudo leer encabezamiento ELF: %s"
-#: src/readelf.c:948
+#: src/readelf.c:974
#, c-format
msgid "cannot create EBL handle"
msgstr "no se puede crear EBL"
-#: src/readelf.c:961
+#: src/readelf.c:985
#, 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:993
+#: src/readelf.c:1017
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "no sepuede leer %s: %s"
-#: src/readelf.c:1054
+#: src/readelf.c:1078
msgid "NONE (None)"
msgstr "NONE (Ninguno)"
-#: src/readelf.c:1055
+#: src/readelf.c:1079
msgid "REL (Relocatable file)"
msgstr "REL (Fichero reubicable)"
-#: src/readelf.c:1056
+#: src/readelf.c:1080
msgid "EXEC (Executable file)"
msgstr "EXEC (Fichero ejecutable)"
-#: src/readelf.c:1057
+#: src/readelf.c:1081
msgid "DYN (Shared object file)"
msgstr "DYN (Fichero objeto compartido)"
-#: src/readelf.c:1058
+#: src/readelf.c:1082
msgid "CORE (Core file)"
msgstr "CORE (Fichero núcleo)"
-#: src/readelf.c:1063
+#: src/readelf.c:1087
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS Specific: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1065
+#: src/readelf.c:1089
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Específico del procesador: (%x)\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1099
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4511,7 +4525,7 @@ msgstr ""
"Encabezamiento ELF:\n"
" Mágico: "
-#: src/readelf.c:1079
+#: src/readelf.c:1103
#, c-format
msgid ""
"\n"
@@ -4520,125 +4534,125 @@ msgstr ""
"\n"
" Clase: %s\n"
-#: src/readelf.c:1084
+#: src/readelf.c:1108
#, c-format
msgid " Data: %s\n"
msgstr " Datos: %s\n"
-#: src/readelf.c:1090
+#: src/readelf.c:1114
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Versión ident: %hhd %s\n"
-#: src/readelf.c:1092 src/readelf.c:1114
+#: src/readelf.c:1116 src/readelf.c:1138
msgid "(current)"
msgstr "(actual)"
-#: src/readelf.c:1096
+#: src/readelf.c:1120
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1099
+#: src/readelf.c:1123
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Versión ABI: %hhd\n"
-#: src/readelf.c:1102
+#: src/readelf.c:1126
msgid " Type: "
msgstr " Tipo: "
-#: src/readelf.c:1107
+#: src/readelf.c:1131
#, c-format
msgid " Machine: %s\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:1109
+#: src/readelf.c:1133
#, fuzzy, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:1112
+#: src/readelf.c:1136
#, c-format
msgid " Version: %d %s\n"
msgstr " Versión: %d %s\n"
-#: src/readelf.c:1116
+#: src/readelf.c:1140
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:1119
+#: src/readelf.c:1143
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n"
-#: src/readelf.c:1120 src/readelf.c:1123
+#: src/readelf.c:1144 src/readelf.c:1147
msgid "(bytes into file)"
msgstr " (bytes en el archivo)"
-#: src/readelf.c:1122
+#: src/readelf.c:1146
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n"
-#: src/readelf.c:1125
+#: src/readelf.c:1149
#, c-format
msgid " Flags: %s\n"
msgstr " Indicadores: %s\n"
-#: src/readelf.c:1128
+#: src/readelf.c:1152
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n"
-#: src/readelf.c:1129 src/readelf.c:1132 src/readelf.c:1149
+#: src/readelf.c:1153 src/readelf.c:1156 src/readelf.c:1173
msgid "(bytes)"
msgstr "(bytes)"
-#: src/readelf.c:1131
+#: src/readelf.c:1155
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr ""
" Tamaño de las entradas en encabezamiento del programa: %<PRId16> %s\n"
-#: src/readelf.c:1134
+#: src/readelf.c:1158
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>"
-#: src/readelf.c:1141
+#: src/readelf.c:1165
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> in [0].sh_info)"
-#: src/readelf.c:1144 src/readelf.c:1161 src/readelf.c:1175
+#: src/readelf.c:1168 src/readelf.c:1185 src/readelf.c:1199
msgid " ([0] not available)"
msgstr " ([0] no disponible)"
-#: src/readelf.c:1148
+#: src/readelf.c:1172
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr ""
" Tamaño de las entradas en el encabezamiento de sección: %<PRId16> %s\n"
-#: src/readelf.c:1151
+#: src/readelf.c:1175
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>"
-#: src/readelf.c:1158
+#: src/readelf.c:1182
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> en [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1171
+#: src/readelf.c:1195
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> en [0].sh_link)"
-#: src/readelf.c:1179
+#: src/readelf.c:1203
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4647,19 +4661,19 @@ msgstr ""
" Ãndice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n"
"\n"
-#: src/readelf.c:1183
+#: src/readelf.c:1207
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
"\n"
msgstr " Ãndice de tabla de cadenas de sección de encabezamiento: %<PRId16>\n"
-#: src/readelf.c:1230 src/readelf.c:1440
+#: src/readelf.c:1253 src/readelf.c:1461
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
-#: src/readelf.c:1233
+#: src/readelf.c:1256
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4668,16 +4682,16 @@ msgstr ""
"Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1242
+#: src/readelf.c:1264
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "no se puede obtener índice de cadena de encabezamiento de sección"
-#: src/readelf.c:1245
+#: src/readelf.c:1267
msgid "Section Headers:"
msgstr "encabezamientos de sección:"
-#: src/readelf.c:1248
+#: src/readelf.c:1270
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4685,7 +4699,7 @@ msgstr ""
"[Nr] Nombre Tipo Dirección Off Tamaño Inf Al "
"Enlace banderas ES"
-#: src/readelf.c:1250
+#: src/readelf.c:1272
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4693,36 +4707,36 @@ msgstr ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
-#: src/readelf.c:1255
+#: src/readelf.c:1277
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1257
+#: src/readelf.c:1279
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1335
+#: src/readelf.c:1357
#, 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:1346
+#: src/readelf.c:1368
#, 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:1364
+#: src/readelf.c:1386
msgid "Program Headers:"
msgstr "encabezamientos de programa:"
-#: src/readelf.c:1366
+#: src/readelf.c:1388
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:1369
+#: src/readelf.c:1391
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4730,12 +4744,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:1426
+#: src/readelf.c:1448
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Solicitando intérprete de programa: %s]\n"
-#: src/readelf.c:1453
+#: src/readelf.c:1473
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4745,12 +4759,12 @@ msgstr ""
" Sección para asignación de segmento:\n"
" Secciones de segmento..."
-#: src/readelf.c:1464 src/unstrip.c:2117 src/unstrip.c:2159 src/unstrip.c:2166
+#: src/readelf.c:1484 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
#, c-format
msgid "cannot get program header: %s"
msgstr "no se puede obtener memoria para encabezamiento del programa: %s"
-#: src/readelf.c:1610
+#: src/readelf.c:1628
#, c-format
msgid ""
"\n"
@@ -4765,7 +4779,7 @@ msgstr[1] ""
"\n"
"Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1615
+#: src/readelf.c:1633
#, c-format
msgid ""
"\n"
@@ -4780,31 +4794,31 @@ msgstr[1] ""
"\n"
"Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1623
+#: src/readelf.c:1641
msgid "<INVALID SYMBOL>"
msgstr "<SÃMBOLO INVÃLIDO>"
-#: src/readelf.c:1637
+#: src/readelf.c:1655
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÃLIDA>"
-#: src/readelf.c:1660 src/readelf.c:2387 src/readelf.c:3494 src/readelf.c:12705
-#: src/readelf.c:12712 src/readelf.c:12756 src/readelf.c:12763
+#: src/readelf.c:1678 src/readelf.c:2461 src/readelf.c:3563 src/readelf.c:12873
+#: src/readelf.c:12880 src/readelf.c:12924 src/readelf.c:12931
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1665 src/readelf.c:2392 src/readelf.c:3499
+#: src/readelf.c:1682 src/readelf.c:2466 src/readelf.c:3567
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:1809 src/readelf.c:2459 src/readelf.c:2725 src/readelf.c:2801
-#: src/readelf.c:3105 src/readelf.c:3179 src/readelf.c:5407
+#: src/readelf.c:1851 src/readelf.c:2532 src/readelf.c:2797 src/readelf.c:2872
+#: src/readelf.c:3175 src/readelf.c:3249 src/readelf.c:5570
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr ".debug_line section inválida"
-#: src/readelf.c:1812
+#: src/readelf.c:1854
#, c-format
msgid ""
"\n"
@@ -4825,36 +4839,70 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1867
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Dynamic segment contains %lu entry:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+#| msgid_plural ""
+#| "\n"
+#| "Dynamic segment contains %lu entries:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+msgid ""
+"\n"
+"Dynamic segment contains %lu entry:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgid_plural ""
+"\n"
+"Dynamic segment contains %lu entries:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgstr[0] ""
+"\n"
+"Segmento dinámico contiene entrada %lu:\n"
+" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
+"[%2u] '%s'\n"
+msgstr[1] ""
+"\n"
+"Segmento dinámico contiene entradas %lu:\n"
+" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
+"[%2u] '%s'\n"
+
+#: src/readelf.c:1877
msgid " Type Value\n"
msgstr " Tipo Valor\n"
-#: src/readelf.c:1846
+#: src/readelf.c:1886
+#, fuzzy
+msgid "cannot get string table by using dynamic segment"
+msgstr "no se pueden obtener datos de sección: %s"
+
+#: src/readelf.c:1925
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteca compartida: [%s]\n"
-#: src/readelf.c:1851
+#: src/readelf.c:1929
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Nombre-so de la biblioteca: [%s]\n"
-#: src/readelf.c:1856
+#: src/readelf.c:1933
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath de la biblioteca: [%s]\n"
-#: src/readelf.c:1861
+#: src/readelf.c:1937
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Ruta de ejecución de la biblioteca: [%s]\n"
-#: src/readelf.c:1881
+#: src/readelf.c:1956
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bytes)\n"
-#: src/readelf.c:1994 src/readelf.c:2184
+#: src/readelf.c:2070 src/readelf.c:2259
#, c-format
msgid ""
"\n"
@@ -4863,7 +4911,7 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:2012 src/readelf.c:2202
+#: src/readelf.c:2087 src/readelf.c:2276
#, c-format
msgid ""
"\n"
@@ -4888,7 +4936,7 @@ msgstr[1] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:2027 src/readelf.c:2217
+#: src/readelf.c:2102 src/readelf.c:2291
#, c-format
msgid ""
"\n"
@@ -4905,29 +4953,29 @@ msgstr[1] ""
"Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene "
"entradas %d:\n"
-#: src/readelf.c:2037
+#: src/readelf.c:2112
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2039
+#: src/readelf.c:2114
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2092 src/readelf.c:2103 src/readelf.c:2116 src/readelf.c:2137
-#: src/readelf.c:2149 src/readelf.c:2283 src/readelf.c:2295 src/readelf.c:2309
-#: src/readelf.c:2331 src/readelf.c:2344
+#: src/readelf.c:2167 src/readelf.c:2178 src/readelf.c:2191 src/readelf.c:2212
+#: src/readelf.c:2224 src/readelf.c:2357 src/readelf.c:2369 src/readelf.c:2383
+#: src/readelf.c:2405 src/readelf.c:2418
msgid "<INVALID RELOC>"
msgstr "<REUBIC INVÃLIDA>"
-#: src/readelf.c:2227
+#: src/readelf.c:2301
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2229
+#: src/readelf.c:2303
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2467
+#: src/readelf.c:2540
#, c-format
msgid ""
"\n"
@@ -4942,40 +4990,40 @@ msgstr[1] ""
"\n"
"La tabla de símbolos [%2u] '%s' contiene entradas %u:\n"
-#: src/readelf.c:2472
+#: src/readelf.c:2545
#, 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:2480
+#: src/readelf.c:2553
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:2482
+#: src/readelf.c:2555
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:2502
+#: src/readelf.c:2575
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
-#: src/readelf.c:2595
+#: src/readelf.c:2668
#, c-format
msgid "bad dynamic symbol"
msgstr "símbolo dinámico erróneo"
-#: src/readelf.c:2680
+#: src/readelf.c:2753
msgid "none"
msgstr "nada"
-#: src/readelf.c:2697
+#: src/readelf.c:2770
msgid "| <unknown>"
msgstr "| <desconocido>"
-#: src/readelf.c:2728
+#: src/readelf.c:2800
#, c-format
msgid ""
"\n"
@@ -4996,17 +5044,17 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:2749
+#: src/readelf.c:2821
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n"
-#: src/readelf.c:2762
+#: src/readelf.c:2834
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n"
-#: src/readelf.c:2805
+#: src/readelf.c:2876
#, c-format
msgid ""
"\n"
@@ -5027,19 +5075,19 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:2833
+#: src/readelf.c:2904
#, 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:2848
+#: src/readelf.c:2919
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Principal %d: %s\n"
#. Print the header.
-#: src/readelf.c:3109
+#: src/readelf.c:3179
#, c-format
msgid ""
"\n"
@@ -5060,15 +5108,15 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'"
-#: src/readelf.c:3137
+#: src/readelf.c:3207
msgid " 0 *local* "
msgstr " 0 *local* "
-#: src/readelf.c:3142
+#: src/readelf.c:3212
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3184
+#: src/readelf.c:3254
#, c-format
msgid ""
"\n"
@@ -5093,22 +5141,22 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:3206
+#: src/readelf.c:3276
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Longitud Número % of total Cobertura\n"
-#: src/readelf.c:3208
+#: src/readelf.c:3278
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3215
+#: src/readelf.c:3285
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3228
+#: src/readelf.c:3298
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -5117,37 +5165,37 @@ msgstr ""
" Número promedio de pruebas: búsqueda exitosa: %f\n"
" búsqueda sin éxito: %f\n"
-#: src/readelf.c:3246 src/readelf.c:3310 src/readelf.c:3376
+#: src/readelf.c:3316 src/readelf.c:3380 src/readelf.c:3446
#, 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:3254
+#: src/readelf.c:3324
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3283
+#: src/readelf.c:3353
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3318
+#: src/readelf.c:3388
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3349
+#: src/readelf.c:3419
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3385
+#: src/readelf.c:3455
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3451
+#: src/readelf.c:3521
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -5157,7 +5205,7 @@ msgstr ""
" Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo "
"cambio de dispersión: %u\n"
-#: src/readelf.c:3539
+#: src/readelf.c:3606
#, c-format
msgid ""
"\n"
@@ -5174,7 +5222,7 @@ msgstr[1] ""
"Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> "
"contiene entradas %d:\n"
-#: src/readelf.c:3553
+#: src/readelf.c:3620
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -5182,7 +5230,7 @@ msgstr ""
" Biblioteca Marca de tiempo Indicadores "
"de versión de suma de verificación"
-#: src/readelf.c:3612
+#: src/readelf.c:3680
#, c-format
msgid ""
"\n"
@@ -5193,102 +5241,102 @@ msgstr ""
"Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con "
"desplazamiento %#0<PRIx64>:\n"
-#: src/readelf.c:3629
+#: src/readelf.c:3697
msgid " Owner Size\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:3653
+#: src/readelf.c:3721
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3692
+#: src/readelf.c:3760
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3697
+#: src/readelf.c:3765
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3746
+#: src/readelf.c:3814
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3749
+#: src/readelf.c:3817
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3752
+#: src/readelf.c:3820
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3762
+#: src/readelf.c:3830
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3765
+#: src/readelf.c:3833
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3835
-#, fuzzy, c-format
+#: src/readelf.c:3903
+#, fuzzy
msgid "sprintf failure"
msgstr "mprotect falló"
-#: src/readelf.c:4317
+#: src/readelf.c:4387
msgid "empty block"
msgstr "bloque vacío"
-#: src/readelf.c:4320
+#: src/readelf.c:4390
#, c-format
msgid "%zu byte block:"
msgstr "bloque de byte %zu:"
-#: src/readelf.c:4798
+#: src/readelf.c:4868
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4865
+#: src/readelf.c:5028
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:4872
+#: src/readelf.c:5035
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> utilizado con offsetr de diferente tamaño"
-#: src/readelf.c:4879
+#: src/readelf.c:5042
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:4886
+#: src/readelf.c:5049
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:4986
+#: src/readelf.c:5149
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <MATERIAL INUTIL SIN UTILIZAR EN EL RESTO DE LA SECCION>\n"
-#: src/readelf.c:4994
+#: src/readelf.c:5157
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n"
-#: src/readelf.c:5097
+#: src/readelf.c:5260
#, c-format
msgid ""
"\n"
@@ -5299,7 +5347,7 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [ Código]\n"
-#: src/readelf.c:5105
+#: src/readelf.c:5268
#, c-format
msgid ""
"\n"
@@ -5308,20 +5356,20 @@ msgstr ""
"\n"
"Sección de abreviatura en compensación %<PRIu64>:\n"
-#: src/readelf.c:5118
+#: src/readelf.c:5281
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** error en lectura de abreviatura: %s\n"
-#: src/readelf.c:5134
+#: src/readelf.c:5297
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n"
-#: src/readelf.c:5167 src/readelf.c:5476 src/readelf.c:5643 src/readelf.c:6028
-#: src/readelf.c:6644 src/readelf.c:8399 src/readelf.c:9145 src/readelf.c:9618
-#: src/readelf.c:9869 src/readelf.c:10035 src/readelf.c:10422
-#: src/readelf.c:10482
+#: src/readelf.c:5330 src/readelf.c:5639 src/readelf.c:5806 src/readelf.c:6191
+#: src/readelf.c:6807 src/readelf.c:8562 src/readelf.c:9308 src/readelf.c:9791
+#: src/readelf.c:10042 src/readelf.c:10208 src/readelf.c:10595
+#: src/readelf.c:10655
#, c-format
msgid ""
"\n"
@@ -5330,52 +5378,52 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:5180
+#: src/readelf.c:5343
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:5280 src/readelf.c:5304 src/readelf.c:5688 src/readelf.c:9190
+#: src/readelf.c:5443 src/readelf.c:5467 src/readelf.c:5851 src/readelf.c:9353
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5282 src/readelf.c:5319 src/readelf.c:5701 src/readelf.c:9203
+#: src/readelf.c:5445 src/readelf.c:5482 src/readelf.c:5864 src/readelf.c:9366
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5283 src/readelf.c:5328 src/readelf.c:5710 src/readelf.c:9212
+#: src/readelf.c:5446 src/readelf.c:5491 src/readelf.c:5873 src/readelf.c:9375
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5285 src/readelf.c:5338 src/readelf.c:5720 src/readelf.c:9222
+#: src/readelf.c:5448 src/readelf.c:5501 src/readelf.c:5883 src/readelf.c:9385
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5323 src/readelf.c:5705 src/readelf.c:9207 src/readelf.c:10614
+#: src/readelf.c:5486 src/readelf.c:5868 src/readelf.c:9370 src/readelf.c:10787
#, fuzzy, c-format
msgid "Unknown version"
msgstr "versión desconocida"
-#: src/readelf.c:5333 src/readelf.c:5546 src/readelf.c:5715 src/readelf.c:9217
+#: src/readelf.c:5496 src/readelf.c:5709 src/readelf.c:5878 src/readelf.c:9380
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "no hay valor de dirección"
-#: src/readelf.c:5344 src/readelf.c:5557 src/readelf.c:5725 src/readelf.c:9227
+#: src/readelf.c:5507 src/readelf.c:5720 src/readelf.c:5888 src/readelf.c:9390
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5397 src/readelf.c:5471
+#: src/readelf.c:5560 src/readelf.c:5634
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_aranges: %s"
-#: src/readelf.c:5412
+#: src/readelf.c:5575
#, c-format
msgid ""
"\n"
@@ -5390,12 +5438,12 @@ msgstr[1] ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n"
-#: src/readelf.c:5443
+#: src/readelf.c:5606
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5608
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5403,7 +5451,7 @@ msgstr ""
" Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5489 src/readelf.c:8426
+#: src/readelf.c:5652 src/readelf.c:8589
#, fuzzy, c-format
msgid ""
"\n"
@@ -5412,150 +5460,150 @@ msgstr ""
"\n"
"Tabla en compensación %Zu:\n"
-#: src/readelf.c:5493 src/readelf.c:5669 src/readelf.c:6668 src/readelf.c:8437
-#: src/readelf.c:9171
+#: src/readelf.c:5656 src/readelf.c:5832 src/readelf.c:6831 src/readelf.c:8600
+#: src/readelf.c:9334
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:5509
+#: src/readelf.c:5672
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5521
+#: src/readelf.c:5684
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5525
+#: src/readelf.c:5688
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5536
+#: src/readelf.c:5699
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5542
+#: src/readelf.c:5705
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5553
+#: src/readelf.c:5716
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5608
+#: src/readelf.c:5771
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5652
+#: src/readelf.c:5815
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:5675 src/readelf.c:9177
+#: src/readelf.c:5838 src/readelf.c:9340
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5730 src/readelf.c:9232
+#: src/readelf.c:5893 src/readelf.c:9395
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5746 src/readelf.c:9248
+#: src/readelf.c:5909 src/readelf.c:9411
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5748 src/readelf.c:9250
+#: src/readelf.c:5911 src/readelf.c:9413
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5754 src/readelf.c:9256
+#: src/readelf.c:5917 src/readelf.c:9419
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5765 src/readelf.c:9267
+#: src/readelf.c:5928 src/readelf.c:9430
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5769 src/readelf.c:9271
+#: src/readelf.c:5932 src/readelf.c:9434
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:5821
+#: src/readelf.c:5984
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "datos inválidos"
-#: src/readelf.c:6006 src/readelf.c:9596
+#: src/readelf.c:6169 src/readelf.c:9769
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:6023
+#: src/readelf.c:6186
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_ranges: %s"
-#: src/readelf.c:6059 src/readelf.c:9651
+#: src/readelf.c:6222 src/readelf.c:9824
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:6061 src/readelf.c:9653
+#: src/readelf.c:6224 src/readelf.c:9826
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:6070 src/readelf.c:9679 src/readelf.c:9705
+#: src/readelf.c:6233 src/readelf.c:9852 src/readelf.c:9878
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6095 src/readelf.c:9789
+#: src/readelf.c:6258 src/readelf.c:9962
#, fuzzy
msgid "base address"
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:6105 src/readelf.c:9799
+#: src/readelf.c:6268 src/readelf.c:9972
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] lista vacía\n"
-#: src/readelf.c:6365
+#: src/readelf.c:6528
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6622
+#: src/readelf.c:6785
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:6640
+#: src/readelf.c:6803
#, c-format
msgid ""
"\n"
@@ -5565,7 +5613,7 @@ msgstr ""
"Sección de información de marco de llamada [%2zu] '%s' en compensación "
"%#<PRIx64>:\n"
-#: src/readelf.c:6690
+#: src/readelf.c:6853
#, c-format
msgid ""
"\n"
@@ -5574,65 +5622,65 @@ msgstr ""
"\n"
" [%6tx] Terminator cero\n"
-#: src/readelf.c:6791 src/readelf.c:6945
+#: src/readelf.c:6954 src/readelf.c:7108
#, c-format
msgid "invalid augmentation length"
msgstr "longitud de aumento inválida"
-#: src/readelf.c:6806
+#: src/readelf.c:6969
msgid "FDE address encoding: "
msgstr "Codificación de dirección FDE:"
-#: src/readelf.c:6812
+#: src/readelf.c:6975
msgid "LSDA pointer encoding: "
msgstr "Codificación de puntero LSDA:"
-#: src/readelf.c:6922
+#: src/readelf.c:7085
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:6929
+#: src/readelf.c:7092
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:6966
+#: src/readelf.c:7129
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr "Puntero %-26sLSDA: %#<PRIx64>\n"
-#: src/readelf.c:7051
+#: src/readelf.c:7214
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "No se puede obtener código de atributo: %s"
-#: src/readelf.c:7061
+#: src/readelf.c:7224
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "No se puede obtener forma de atributo: %s"
-#: src/readelf.c:7083
+#: src/readelf.c:7246
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "No se puede obtener valor: %s"
-#: src/readelf.c:7413
+#: src/readelf.c:7576
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Archivo inválido"
-#: src/readelf.c:7417
+#: src/readelf.c:7580
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:7421
+#: src/readelf.c:7584
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:7736
+#: src/readelf.c:7899
#, c-format
msgid ""
"\n"
@@ -5643,12 +5691,12 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:7786
+#: src/readelf.c:7949
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:7806
+#: src/readelf.c:7969
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5661,7 +5709,7 @@ msgstr ""
"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
" Tipo de firma: %#<PRIx64>, Tipo de compensación: %#<PRIx64>\n"
-#: src/readelf.c:7818
+#: src/readelf.c:7981
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5672,39 +5720,39 @@ msgstr ""
" Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, "
"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
-#: src/readelf.c:7828 src/readelf.c:7989
+#: src/readelf.c:7991 src/readelf.c:8152
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7855
+#: src/readelf.c:8018
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7884
+#: src/readelf.c:8047
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "no se puede obtener DIE en compensación: %s"
-#: src/readelf.c:7893
+#: src/readelf.c:8056
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"no se ha podido obtener etiqueta de DIE en compensación%<PRIu64> en sección "
"'%s': %s"
-#: src/readelf.c:7929
+#: src/readelf.c:8092
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "No se puede obtener próximo DIE: %s\n"
-#: src/readelf.c:7937
+#: src/readelf.c:8100
#, c-format
msgid "cannot get next DIE: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:7981
+#: src/readelf.c:8144
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5715,7 +5763,7 @@ msgstr ""
" Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, "
"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n"
-#: src/readelf.c:8033
+#: src/readelf.c:8196
#, fuzzy, c-format
msgid ""
"\n"
@@ -5725,18 +5773,18 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:8365
+#: src/readelf.c:8528
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "Forma %<PRIx64> desconocida"
-#: src/readelf.c:8413
+#: src/readelf.c:8576
#, c-format
msgid "cannot get line data section data: %s"
msgstr "No se puede obtener sección de datos de línea: %s"
#. Print what we got so far.
-#: src/readelf.c:8517
+#: src/readelf.c:8680
#, fuzzy, c-format
msgid ""
"\n"
@@ -5767,34 +5815,34 @@ msgstr ""
"\n"
"Códigos operativos:\n"
-#: src/readelf.c:8539
+#: src/readelf.c:8702
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "no se puede obtener versión de símbolo: %s"
-#: src/readelf.c:8547
+#: src/readelf.c:8710
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "no hay valor de dirección"
-#: src/readelf.c:8555
+#: src/readelf.c:8718
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:8565
+#: src/readelf.c:8728
#, 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:8580
+#: src/readelf.c:8743
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] argumento %hhu \n"
msgstr[1] " [%*<PRIuFAST8>] argumento %hhu\n"
-#: src/readelf.c:8591
+#: src/readelf.c:8754
msgid ""
"\n"
"Directory table:"
@@ -5802,12 +5850,12 @@ msgstr ""
"\n"
"Tabla de Directorio:"
-#: src/readelf.c:8597 src/readelf.c:8674
+#: src/readelf.c:8760 src/readelf.c:8837
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8668
+#: src/readelf.c:8831
#, fuzzy
msgid ""
"\n"
@@ -5816,7 +5864,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:8729
+#: src/readelf.c:8892
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5824,7 +5872,7 @@ msgstr ""
"Tabla de nombre de archivo:\n"
" Directorio de entrada Tiempo Tamaño Nombre"
-#: src/readelf.c:8775
+#: src/readelf.c:8938
#, fuzzy
msgid ""
"\n"
@@ -5833,7 +5881,7 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:8779
+#: src/readelf.c:8942
msgid ""
"\n"
"Line number statements:"
@@ -5841,132 +5889,132 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:8794
+#: src/readelf.c:8957
#, 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:8828
+#: src/readelf.c:8991
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " opcode especial %u: dirección+%u = %s, línea%+d = %zu\n"
-#: src/readelf.c:8832
+#: src/readelf.c:8995
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
" opcode especial %u: dirección+%u = %s, op_index = %u, línea%+d = %zu\n"
-#: src/readelf.c:8835
+#: src/readelf.c:8998
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8853
+#: src/readelf.c:9016
#, c-format
msgid " extended opcode %u: "
msgstr " Código operativo extendido %u: "
-#: src/readelf.c:8858
+#: src/readelf.c:9021
#, fuzzy
msgid " end of sequence"
msgstr "Fin de secuencia"
-#: src/readelf.c:8876
+#: src/readelf.c:9039
#, fuzzy, c-format
msgid " set address to "
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:8904
+#: src/readelf.c:9067
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-"definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, nombre="
-"%s\n"
+"definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, "
+"nombre=%s\n"
-#: src/readelf.c:8918
+#: src/readelf.c:9081
#, c-format
msgid " set discriminator to %u\n"
msgstr " establecer discriminador a %u\n"
-#: src/readelf.c:8945
+#: src/readelf.c:9108
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:8969
+#: src/readelf.c:9132
#, fuzzy, c-format
#| msgid "Also show function names"
msgid " set function name %s (0x%x)\n"
msgstr "También mostrar nombres de función"
#. Unknown, ignore it.
-#: src/readelf.c:8976
+#: src/readelf.c:9139
#, fuzzy
msgid " unknown opcode"
msgstr "código operativo desconocido "
#. Takes no argument.
-#: src/readelf.c:8988
+#: src/readelf.c:9151
msgid " copy"
msgstr "Copiar"
-#: src/readelf.c:8999
+#: src/readelf.c:9162
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "Dirección de avance por %u a %s\n"
-#: src/readelf.c:9003 src/readelf.c:9064
+#: src/readelf.c:9166 src/readelf.c:9227
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:9015
+#: src/readelf.c:9178
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " línea de avance por la constante %d a %<PRId64>\n"
-#: src/readelf.c:9025
+#: src/readelf.c:9188
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:9036
+#: src/readelf.c:9199
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:9043
+#: src/readelf.c:9206
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:9049
+#: src/readelf.c:9212
msgid " set basic block flag"
msgstr "Establecer bandera de bloque básico"
-#: src/readelf.c:9060
+#: src/readelf.c:9223
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "Dirección de avance por constante %u a %s\n"
-#: src/readelf.c:9080
+#: src/readelf.c:9243
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "dirección de avance por valor corregido %u a %s\n"
#. Takes no argument.
-#: src/readelf.c:9090
+#: src/readelf.c:9253
msgid " set prologue end flag"
msgstr " Establecer bandera prologue_end"
#. Takes no argument.
-#: src/readelf.c:9095
+#: src/readelf.c:9258
msgid " set epilogue begin flag"
msgstr " Establecer bandera epilogue_begin"
-#: src/readelf.c:9105
+#: src/readelf.c:9268
#, c-format
msgid " set isa to %u\n"
msgstr " establecer isa para %u\n"
@@ -5974,110 +6022,110 @@ msgstr " establecer isa para %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:9114
+#: src/readelf.c:9277
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " opcódigo con parámetro %<PRIu8> desconocido:"
msgstr[1] " opcódigo con parámetros %<PRIu8> desconocido:"
-#: src/readelf.c:9154
+#: src/readelf.c:9317
#, fuzzy, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:9320
+#: src/readelf.c:9483
#, fuzzy, c-format
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:9360
+#: src/readelf.c:9523
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "datos inválidos"
-#: src/readelf.c:9613
+#: src/readelf.c:9786
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "no es posible obtener contenido de .debug_loc: %s"
-#: src/readelf.c:9826 src/readelf.c:10870
+#: src/readelf.c:9999 src/readelf.c:11043
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:9881 src/readelf.c:10044
+#: src/readelf.c:10054 src/readelf.c:10217
#, 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:9961
+#: src/readelf.c:10134
#, 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:9984
+#: src/readelf.c:10157
#, 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:10085
+#: src/readelf.c:10258
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:10097
+#: src/readelf.c:10270
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10103 src/readelf.c:10990
+#: src/readelf.c:10276 src/readelf.c:11163
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:10110
+#: src/readelf.c:10283
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:10139
+#: src/readelf.c:10312
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10147
+#: src/readelf.c:10320
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10172
+#: src/readelf.c:10345
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " opcódigo con parámetro %<PRIu8> desconocido:"
-#: src/readelf.c:10179
+#: src/readelf.c:10352
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10191
+#: src/readelf.c:10364
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] argumento %hhu \n"
-#: src/readelf.c:10206
+#: src/readelf.c:10379
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10407
+#: src/readelf.c:10580
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
" Compensación [%5d] DIE: %6<PRId64>, Compensación CU DIE: %6<PRId64>, "
"nombre: %s\n"
-#: src/readelf.c:10451
+#: src/readelf.c:10624
#, c-format
msgid ""
"\n"
@@ -6089,42 +6137,42 @@ msgstr ""
" %*s String\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10456
+#: src/readelf.c:10629
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10466
+#: src/readelf.c:10639
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** error en lectura de cadenas: %s\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10668
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:10594
+#: src/readelf.c:10767
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10596
+#: src/readelf.c:10769
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10610
+#: src/readelf.c:10783
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10619
+#: src/readelf.c:10792
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10673
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
@@ -6133,7 +6181,7 @@ msgstr ""
"\n"
"Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10775
+#: src/readelf.c:10948
#, c-format
msgid ""
"\n"
@@ -6142,22 +6190,22 @@ msgstr ""
"\n"
"Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10798
+#: src/readelf.c:10971
#, c-format
msgid " LPStart encoding: %#x "
msgstr "Codificación LPStart: %#x "
-#: src/readelf.c:10810
+#: src/readelf.c:10983
#, c-format
msgid " TType encoding: %#x "
msgstr "Codificación TType: %#x "
-#: src/readelf.c:10825
+#: src/readelf.c:10998
#, c-format
msgid " Call site encoding: %#x "
msgstr "Codificación de sitio de llamada: %#x "
-#: src/readelf.c:10838
+#: src/readelf.c:11011
msgid ""
"\n"
" Call site table:"
@@ -6165,7 +6213,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:10852
+#: src/readelf.c:11025
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6178,12 +6226,12 @@ msgstr ""
" Landing pad: %#<PRIx64>\n"
" Action: %u\n"
-#: src/readelf.c:10925
+#: src/readelf.c:11098
#, c-format
msgid "invalid TType encoding"
msgstr "Codificación TType inválida"
-#: src/readelf.c:10952
+#: src/readelf.c:11125
#, fuzzy, c-format
msgid ""
"\n"
@@ -6192,37 +6240,37 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11154
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10999
+#: src/readelf.c:11172
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:11006
+#: src/readelf.c:11179
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:11013
+#: src/readelf.c:11186
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:11020
+#: src/readelf.c:11193
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:11027
+#: src/readelf.c:11200
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:11041
+#: src/readelf.c:11214
#, fuzzy, c-format
msgid ""
"\n"
@@ -6231,7 +6279,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11066
+#: src/readelf.c:11239
#, fuzzy, c-format
msgid ""
"\n"
@@ -6240,7 +6288,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11095
+#: src/readelf.c:11268
#, fuzzy, c-format
msgid ""
"\n"
@@ -6249,7 +6297,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11127
+#: src/readelf.c:11300
#, fuzzy, c-format
msgid ""
"\n"
@@ -6258,18 +6306,18 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:11265
+#: src/readelf.c:11438
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "no se puede depurar descriptor de contexto: %s"
-#: src/readelf.c:11633 src/readelf.c:12260 src/readelf.c:12371
-#: src/readelf.c:12429
+#: src/readelf.c:11804 src/readelf.c:12431 src/readelf.c:12541
+#: src/readelf.c:12598
#, c-format
msgid "cannot convert core note data: %s"
msgstr "no es posible convertir datos de la nota principal: %s"
-#: src/readelf.c:11996
+#: src/readelf.c:12168
#, c-format
msgid ""
"\n"
@@ -6278,21 +6326,21 @@ msgstr ""
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:12508
+#: src/readelf.c:12677
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:12536
+#: src/readelf.c:12705
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12757
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "no se puede obtener el contenido de sección de nota: %s"
-#: src/readelf.c:12622
+#: src/readelf.c:12790
#, c-format
msgid ""
"\n"
@@ -6301,7 +6349,7 @@ msgstr ""
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12645
+#: src/readelf.c:12813
#, c-format
msgid ""
"\n"
@@ -6310,7 +6358,7 @@ msgstr ""
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12692
+#: src/readelf.c:12860
#, fuzzy, c-format
msgid ""
"\n"
@@ -6319,12 +6367,12 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12719 src/readelf.c:12770
+#: src/readelf.c:12887 src/readelf.c:12938
#, 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:12724
+#: src/readelf.c:12892
#, fuzzy, c-format
msgid ""
"\n"
@@ -6334,7 +6382,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12729
+#: src/readelf.c:12897
#, fuzzy, c-format
msgid ""
"\n"
@@ -6345,7 +6393,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12743
+#: src/readelf.c:12911
#, fuzzy, c-format
msgid ""
"\n"
@@ -6354,7 +6402,7 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12775
+#: src/readelf.c:12943
#, fuzzy, c-format
msgid ""
"\n"
@@ -6364,7 +6412,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12780
+#: src/readelf.c:12948
#, fuzzy, c-format
msgid ""
"\n"
@@ -6375,7 +6423,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12829
+#: src/readelf.c:12996
#, c-format
msgid ""
"\n"
@@ -6384,7 +6432,7 @@ msgstr ""
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:12859
+#: src/readelf.c:13026
#, c-format
msgid ""
"\n"
@@ -6393,12 +6441,12 @@ msgstr ""
"\n"
"sección '%s' no existe"
-#: src/readelf.c:12916
+#: src/readelf.c:13081
#, 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:12919
+#: src/readelf.c:13084
#, c-format
msgid ""
"\n"
@@ -6407,7 +6455,7 @@ msgstr ""
"\n"
"Archivo '%s' no tiene índice de símbolo\n"
-#: src/readelf.c:12923
+#: src/readelf.c:13088
#, fuzzy, c-format
msgid ""
"\n"
@@ -6416,17 +6464,17 @@ msgstr ""
"\n"
"Ãndice de archivo '%s' tiene %Zu entradas:\n"
-#: src/readelf.c:12941
+#: src/readelf.c:13106
#, 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:12946
+#: src/readelf.c:13111
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Miembro de archivo contiene '%s':\n"
-#: src/size.c:56
+#: src/size.c:55
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default "
"is `bsd'"
@@ -6434,123 +6482,123 @@ msgstr ""
"Utilice el formato de salida FORMAT. FORMAT puede ser tanto `bsd' como "
"`sysv'. El establecido por defecto es `bsd'"
-#: src/size.c:58
+#: src/size.c:57
msgid "Same as `--format=sysv'"
msgstr "lo mismo que `--format=sysv'"
-#: src/size.c:59
+#: src/size.c:58
msgid "Same as `--format=bsd'"
msgstr "lo mismo que `--format=bsd'"
-#: src/size.c:62
+#: src/size.c:61
msgid "Same as `--radix=10'"
msgstr "lo mismo que `--radix=10'"
-#: src/size.c:63
+#: src/size.c:62
msgid "Same as `--radix=8'"
msgstr "lo mismo que `--radix=8'"
-#: src/size.c:64
+#: src/size.c:63
msgid "Same as `--radix=16'"
msgstr "lo mismo que`--radix=16'"
-#: src/size.c:66
+#: src/size.c:65
msgid "Similar to `--format=sysv' output but in one line"
msgstr "Similar a la salida `--format=sysv' pero en una sola línea"
-#: src/size.c:70
+#: src/size.c:69
msgid "Print size and permission flags for loadable segments"
msgstr ""
"Imprime el tamaño y las marcas de permiso para los segmentos que pueden ser "
"cargados"
-#: src/size.c:71
+#: src/size.c:70
msgid "Display the total sizes (bsd only)"
msgstr "Muestra el tamaño total (bsd solamente)"
#. Short description of program.
-#: src/size.c:76
+#: src/size.c:75
msgid "List section sizes of FILEs (a.out by default)."
msgstr "Lista los tamaños de sección de FICHEROS (por defecto a.out). "
-#: src/size.c:240
+#: src/size.c:239
#, c-format
msgid "Invalid format: %s"
msgstr "Formato de archivo inválido: %s"
-#: src/size.c:251
+#: src/size.c:250
#, c-format
msgid "Invalid radix: %s"
msgstr "Radical inválido: %s"
-#: src/size.c:310
+#: src/size.c:309
#, c-format
msgid "%s: file format not recognized"
msgstr "%s: No se reconoce el formato del fichero"
-#: src/size.c:328
+#: src/size.c:327
msgctxt "bsd"
msgid "text"
msgstr ""
-#: src/size.c:329
+#: src/size.c:328
msgctxt "bsd"
msgid "data"
msgstr ""
-#: src/size.c:330
+#: src/size.c:329
msgctxt "bsd"
msgid "bss"
msgstr ""
-#: src/size.c:331
+#: src/size.c:330
msgctxt "bsd"
msgid "dec"
msgstr ""
-#: src/size.c:332
+#: src/size.c:331
msgctxt "bsd"
msgid "hex"
msgstr ""
-#: src/size.c:333
+#: src/size.c:332
msgctxt "bsd"
msgid "filename"
msgstr ""
-#: src/size.c:418 src/size.c:560
+#: src/size.c:416 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
-#: src/size.c:420
+#: src/size.c:418
#, fuzzy
#| msgid "invalid section"
msgctxt "sysv"
msgid "section"
msgstr "sección inválida"
-#: src/size.c:421
+#: src/size.c:419
msgctxt "sysv"
msgid "size"
msgstr ""
-#: src/size.c:422
+#: src/size.c:420
msgctxt "sysv"
msgid "addr"
msgstr ""
-#: src/size.c:451 src/size.c:454 src/size.c:457
+#: src/size.c:449 src/size.c:452 src/size.c:455
msgctxt "sysv"
msgid "Total"
msgstr ""
-#: src/size.c:482
-#, fuzzy, c-format
+#: src/size.c:479
+#, fuzzy
msgid "cannot get section header"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/size.c:585
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(TOTALES)\n"
@@ -6672,19 +6720,19 @@ msgstr ""
msgid "Couldn't show any frames."
msgstr ""
-#: src/strings.c:65
+#: src/strings.c:64
msgid "Output Selection:"
msgstr "Selección de salida:"
-#: src/strings.c:66
+#: src/strings.c:65
msgid "Scan entire file, not only loaded sections"
msgstr "Explorar todo el archivo, no sólo las secciones cargadas"
-#: src/strings.c:68
+#: src/strings.c:67
msgid "Only NUL-terminated sequences of MIN-LEN characters or more are printed"
msgstr "Sólo secuencias NUL-terminated de caracteres MIN-LEN o más se imprimen"
-#: src/strings.c:69
+#: src/strings.c:68
msgid ""
"Select character size and endianness: s = 7-bit, S = 8-bit, {b,l} = 16-bit, "
"{B,L} = 32-bit"
@@ -6692,85 +6740,82 @@ msgstr ""
"Seleccionar tamaño de caracter y Endianess: s = 7-bit, S = 8-bit, {b,l} = 16-"
"bit, {B,L} = 32-bit"
-#: src/strings.c:73
+#: src/strings.c:72
msgid "Print name of the file before each string."
msgstr "Imprimir nombre de archivo antes de cada cadena."
-#: src/strings.c:75
+#: src/strings.c:74
msgid "Print location of the string in base 8, 10, or 16 respectively."
msgstr "Imprimir ubicación de la cadena en base 8, 10, o 16 respectivamente."
-#: src/strings.c:76
+#: src/strings.c:75
msgid "Alias for --radix=o"
msgstr "Alias para --radix=o"
#. Short description of program.
-#: src/strings.c:83
+#: src/strings.c:82
msgid "Print the strings of printable characters in files."
msgstr "Imprimir las cadenas de caracteres imprimibles en archivos."
-#: src/strings.c:256 src/strings.c:291
+#: src/strings.c:255 src/strings.c:290
#, c-format
msgid "invalid value '%s' for %s parameter"
msgstr "Valor inválido '%s' para parámetro %s"
-#: src/strings.c:302
-#, c-format
+#: src/strings.c:300
msgid "invalid minimum length of matched string size"
msgstr "longitud mínima inválida de tamaño de cadena coincidente"
-#: src/strings.c:585
-#, fuzzy, c-format
+#: src/strings.c:583
+#, fuzzy
msgid "lseek failed"
msgstr "lseek64 falló"
-#: src/strings.c:602 src/strings.c:666
-#, c-format
+#: src/strings.c:600 src/strings.c:664
msgid "re-mmap failed"
msgstr "re-mmap falló"
-#: src/strings.c:639
-#, c-format
+#: src/strings.c:637
msgid "mprotect failed"
msgstr "mprotect falló"
-#: src/strings.c:728
+#: src/strings.c:726
#, c-format
msgid "Skipping section %zd '%s' data outside file"
msgstr ""
-#: src/strip.c:71
+#: src/strip.c:70
msgid "Place stripped output into FILE"
msgstr "Colocar la salida obtenida en FICHERO"
-#: src/strip.c:72
+#: src/strip.c:71
msgid "Extract the removed sections into FILE"
msgstr "Extraer secciones eliminadas en FICHERO"
-#: src/strip.c:73
+#: src/strip.c:72
msgid "Embed name FILE instead of -f argument"
msgstr "Incorporar nombre FILE en lugar de argumento -f"
-#: src/strip.c:77
+#: src/strip.c:76
msgid "Remove all debugging symbols"
msgstr "Elimina todos los símbolos de depuración"
-#: src/strip.c:81
+#: src/strip.c:80
msgid "Remove section headers (not recommended)"
msgstr "Quitar sección de cabeceras (no recomendado)"
-#: src/strip.c:83
+#: src/strip.c:82
msgid "Copy modified/access timestamps to the output"
msgstr "Copiar marcas de tiempo modificadas/acceso a la salida"
-#: src/strip.c:85
+#: src/strip.c:84
msgid ""
"Resolve all trivial relocations between debug sections if the removed "
"sections are placed in a debug file (only relevant for ET_REL files, "
"operation is not reversible, needs -f)"
msgstr ""
-#: src/strip.c:87
+#: src/strip.c:86
msgid ""
"Similar to --reloc-debug-sections, but resolve all trivial relocations "
"between debug sections in place. No other stripping is performed (operation "
@@ -6778,75 +6823,72 @@ msgid ""
"section)"
msgstr ""
-#: src/strip.c:89
+#: src/strip.c:88
msgid "Remove .comment section"
msgstr "Quitar sección de comentario"
-#: src/strip.c:90
+#: src/strip.c:89
msgid ""
"Remove the named section. SECTION is an extended wildcard pattern. May be "
"given more than once. Only non-allocated sections can be removed."
msgstr ""
-#: src/strip.c:91
+#: src/strip.c:90
msgid ""
"Keep the named section. SECTION is an extended wildcard pattern. May be "
"given more than once."
msgstr ""
#. Short description of program.
-#: src/strip.c:98
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Descarta símbolos de archivos objeto."
-#: src/strip.c:247
-#, c-format
+#: src/strip.c:245
msgid "--reloc-debug-sections used without -f"
msgstr ""
-#: src/strip.c:253
-#, c-format
+#: src/strip.c:251
msgid ""
"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --"
"remove-section"
msgstr ""
-#: src/strip.c:267
-#, c-format
+#: src/strip.c:265
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "Sólo se permite ingresar un archivo junto con '-o' y '-f'"
-#: src/strip.c:290
+#: src/strip.c:287
#, c-format
msgid "-f option specified twice"
msgstr "opción -f especificada dos veces"
-#: src/strip.c:299
+#: src/strip.c:296
#, c-format
msgid "-F option specified twice"
msgstr "opción -F especificada dos veces"
-#: src/strip.c:362
+#: src/strip.c:359
#, fuzzy, c-format
msgid "cannot both keep and remove .comment section"
msgstr "Quitar sección de comentario"
-#: src/strip.c:481
-#, fuzzy, c-format
+#: src/strip.c:478
+#, fuzzy
msgid "bad relocation"
msgstr "Mostrar reubicaciones"
-#: src/strip.c:751 src/strip.c:775
+#: src/strip.c:756 src/strip.c:780
#, c-format
msgid "cannot stat input file '%s'"
msgstr "no sepuede stat fichero de entrada '%s'"
-#: src/strip.c:765
+#: src/strip.c:770
#, c-format
msgid "while opening '%s'"
msgstr "mientras se abría '%s'"
-#: src/strip.c:803
+#: src/strip.c:808
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo"
@@ -6857,77 +6899,77 @@ msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo"
#. result = handle_ar (fd, elf, NULL, fname,
#. preserve_dates ? tv : NULL);
#.
-#: src/strip.c:815
+#: src/strip.c:820
#, fuzzy, c-format
msgid "%s: no support for stripping archive"
msgstr "%s: no puede utilizarse -o o -f cuando se extrae un archivo"
-#: src/strip.c:1052
+#: src/strip.c:1057
#, c-format
msgid "cannot open EBL backend"
msgstr "No se puede abrir el segundo plano EBL"
-#: src/strip.c:1097
-#, fuzzy, c-format
+#: src/strip.c:1101
+#, fuzzy
msgid "cannot get number of phdrs"
msgstr "no se pudo determinar la cantidad de encabezados de programa: %s"
-#: src/strip.c:1111 src/strip.c:1154
+#: src/strip.c:1115 src/strip.c:1158
#, fuzzy, c-format
msgid "cannot create new ehdr for file '%s': %s"
msgstr "no se puede crear fichero nuevo '%s': %s"
-#: src/strip.c:1121 src/strip.c:1164
+#: src/strip.c:1125 src/strip.c:1168
#, fuzzy, c-format
msgid "cannot create new phdr for file '%s': %s"
msgstr "no se puede crear fichero nuevo '%s': %s"
-#: src/strip.c:1244
+#: src/strip.c:1248
#, c-format
msgid "illformed file '%s'"
msgstr "Fichero illformed '%s'"
-#: src/strip.c:1254
+#: src/strip.c:1258
#, fuzzy, c-format
msgid "Cannot remove allocated section '%s'"
msgstr "No se puede asignar sección PLT: %s"
-#: src/strip.c:1263
+#: src/strip.c:1267
#, fuzzy, c-format
msgid "Cannot both keep and remove section '%s'"
msgstr "No se puede añadir nueva sección: %s"
-#: src/strip.c:1628 src/strip.c:1743
+#: src/strip.c:1631 src/strip.c:1746
#, c-format
msgid "while generating output file: %s"
msgstr "al generar fichero de salida: %s"
-#: src/strip.c:1692
+#: src/strip.c:1695
#, fuzzy, c-format
msgid "%s: error while updating ELF header: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:1701
+#: src/strip.c:1704
#, fuzzy, c-format
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:1709 src/strip.c:2554
+#: src/strip.c:1712 src/strip.c:2553
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:1726
+#: src/strip.c:1729
#, c-format
msgid "while preparing output for '%s'"
msgstr "al preparar salida para '%s'"
-#: src/strip.c:1788 src/strip.c:1851
+#: src/strip.c:1790 src/strip.c:1852
#, c-format
msgid "while create section header section: %s"
msgstr "al crear sección de encabezamiento de sección: %s"
-#: src/strip.c:1797
+#: src/strip.c:1799
#, c-format
msgid "cannot allocate section data: %s"
msgstr "no se puede asignar espacio para los datos: %s"
@@ -6937,385 +6979,383 @@ msgstr "no se puede asignar espacio para los datos: %s"
msgid "while create section header string table: %s"
msgstr "al crear tabla de cadenas de encabezamiento de sección: %s"
-#: src/strip.c:1870
-#, fuzzy, c-format
+#: src/strip.c:1869
+#, fuzzy
msgid "no memory to create section header string table"
msgstr "al crear tabla de cadenas de encabezamiento de sección: %s"
-#: src/strip.c:2083
+#: src/strip.c:2082
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2470 src/strip.c:2578
+#: src/strip.c:2469 src/strip.c:2577
#, c-format
msgid "while writing '%s': %s"
msgstr "al escribir '%s': %s"
-#: src/strip.c:2481
+#: src/strip.c:2480
#, c-format
msgid "while creating '%s'"
msgstr "al crear '%s'"
-#: src/strip.c:2504
+#: src/strip.c:2503
#, c-format
msgid "while computing checksum for debug information"
msgstr "al computar la suma de verificación para información de depuración"
-#: src/strip.c:2545
+#: src/strip.c:2544
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:2563
+#: src/strip.c:2562
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: error al leer el fichero: %s"
-#: src/strip.c:2603 src/strip.c:2623
+#: src/strip.c:2602 src/strip.c:2622
#, c-format
msgid "while writing '%s'"
msgstr "al escribir '%s'"
-#: src/strip.c:2660 src/strip.c:2667
+#: src/strip.c:2659 src/strip.c:2666
#, c-format
msgid "error while finishing '%s': %s"
msgstr "Error al terminar '%s': %s"
-#: src/strip.c:2684 src/strip.c:2760
+#: src/strip.c:2683 src/strip.c:2759
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "no es posible establecer acceso y fecha de modificación de '%s'"
-#: src/unstrip.c:66
+#: src/unstrip.c:65
msgid "Match MODULE against file names, not module names"
msgstr "Coincidir MODULO con nombres de archivo, no con nombres de módulo"
-#: src/unstrip.c:67
+#: src/unstrip.c:66
msgid "Silently skip unfindable files"
msgstr "Omitir silenciosamente los archivos perdidos"
-#: src/unstrip.c:70
+#: src/unstrip.c:69
msgid "Place output into FILE"
msgstr "Colocar salida en FICHERO"
-#: src/unstrip.c:72
+#: src/unstrip.c:71
msgid "Create multiple output files under DIRECTORY"
msgstr "Crear archivos de salida múltiple bajo DIRECTORIO"
-#: src/unstrip.c:73
+#: src/unstrip.c:72
msgid "Use module rather than file names"
msgstr "Usar módulo en lugar de nombres de archivo"
-#: src/unstrip.c:75
+#: src/unstrip.c:74
msgid "Create output for modules that have no separate debug information"
msgstr ""
"Crear salida para módulos que no tienen información de depuración "
"independiente"
-#: src/unstrip.c:78
+#: src/unstrip.c:77
msgid "Apply relocations to section contents in ET_REL files"
msgstr "Aplicar reubicaciones a contenido de sección en archivos ET_REL"
-#: src/unstrip.c:80
+#: src/unstrip.c:79
msgid "Only list module and file names, build IDs"
msgstr "Solamente listar módulo y nombres de archivo, crear los ID"
-#: src/unstrip.c:82
+#: src/unstrip.c:81
msgid "Force combining files even if some ELF headers don't seem to match"
msgstr ""
-#: src/unstrip.c:126
+#: src/unstrip.c:125
#, c-format
msgid "-d option specified twice"
msgstr "opción -d especificada dos veces"
-#: src/unstrip.c:161
+#: src/unstrip.c:160
#, c-format
msgid "only one of -o or -d allowed"
msgstr "Sólo se permite usar -o ó -d "
-#: src/unstrip.c:170
+#: src/unstrip.c:169
#, c-format
msgid "-n cannot be used with explicit files or -o or -d"
msgstr "-n no puede utilizarse con archivos explícitos o con -o ó -d"
-#: src/unstrip.c:185
+#: src/unstrip.c:184
#, c-format
msgid "output directory '%s'"
msgstr "Directorio de salida '%s'"
-#: src/unstrip.c:194
+#: src/unstrip.c:193
#, c-format
msgid "exactly two file arguments are required"
msgstr "dos argumentos de archivos se requieren exactamente"
-#: src/unstrip.c:200
+#: src/unstrip.c:199
#, c-format
msgid "-m, -a, -R, and -i options not allowed with explicit files"
msgstr "No se permiten las opciones -m, -a, -R, ni -i con archivos explícitos"
-#: src/unstrip.c:213
+#: src/unstrip.c:212
#, c-format
msgid "-o or -d is required when using implicit files"
msgstr "se requiere -o ó -d cuando se utilizan archivos implícitos"
-#: src/unstrip.c:236
+#: src/unstrip.c:235
#, c-format
msgid "cannot create ELF header: %s"
msgstr "no se puede crear el encabezamiento ELF: %s"
-#: src/unstrip.c:240
+#: src/unstrip.c:239
#, fuzzy, c-format
msgid "cannot get shdrstrndx:%s"
msgstr "No se puede encontrar la sección: %s"
-#: src/unstrip.c:244 src/unstrip.c:2088
+#: src/unstrip.c:243 src/unstrip.c:2085
#, c-format
msgid "cannot get ELF header: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/unstrip.c:254
+#: src/unstrip.c:253
#, fuzzy, c-format
msgid "cannot get new zero section: %s"
msgstr "No se puede encontrar la sección: %s"
-#: src/unstrip.c:257
+#: src/unstrip.c:256
#, fuzzy, c-format
msgid "cannot update new zero section: %s"
msgstr "no se puede actualizar reubicación: %s"
-#: src/unstrip.c:261
+#: src/unstrip.c:260
#, c-format
msgid "cannot copy ELF header: %s"
msgstr "no se puede copiar encabezamiento ELF: %s"
-#: src/unstrip.c:265 src/unstrip.c:2106 src/unstrip.c:2149
+#: src/unstrip.c:264 src/unstrip.c:2103 src/unstrip.c:2146
#, 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:270 src/unstrip.c:2110
+#: src/unstrip.c:269 src/unstrip.c:2107
#, c-format
msgid "cannot create program headers: %s"
msgstr "No pueden crear encabezamientos de programa: %s"
-#: src/unstrip.c:276
+#: src/unstrip.c:275
#, c-format
msgid "cannot copy program header: %s"
msgstr "no puede copiar encabezamiento de programa: %s"
-#: src/unstrip.c:286
+#: src/unstrip.c:285
#, c-format
msgid "cannot copy section header: %s"
msgstr "no se puede copiar encabezamiento de sección: %s"
-#: src/unstrip.c:289 src/unstrip.c:1710
+#: src/unstrip.c:288 src/unstrip.c:1707
#, c-format
msgid "cannot get section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/unstrip.c:291 src/unstrip.c:1712
+#: src/unstrip.c:290 src/unstrip.c:1709
#, c-format
msgid "cannot copy section data: %s"
msgstr "no pueden copiar datos de sección: %s"
-#: src/unstrip.c:319
+#: src/unstrip.c:318
#, c-format
msgid "cannot create directory '%s'"
msgstr "no se puede crear el directorio '%s'"
-#: src/unstrip.c:393 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861
-#: src/unstrip.c:1752
+#: src/unstrip.c:392 src/unstrip.c:657 src/unstrip.c:691 src/unstrip.c:859
+#: src/unstrip.c:1749
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "no se puede obtener entrada de tabla de símbolos: %s"
-#: src/unstrip.c:409 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696
-#: src/unstrip.c:1773 src/unstrip.c:1968 src/unstrip.c:1992
+#: src/unstrip.c:408 src/unstrip.c:660 src/unstrip.c:681 src/unstrip.c:694
+#: src/unstrip.c:1770 src/unstrip.c:1965 src/unstrip.c:1989
#, c-format
msgid "cannot update symbol table: %s"
msgstr "no se puede actualizar tabla de símbolos: %s"
-#: src/unstrip.c:419
+#: src/unstrip.c:418
#, c-format
msgid "cannot update section header: %s"
msgstr "no se puede actualizar encabezamiento de sección: %s"
-#: src/unstrip.c:465
+#: src/unstrip.c:464
#, c-format
msgid "gelf_getrel failed: %s"
msgstr ""
-#: src/unstrip.c:468 src/unstrip.c:483
+#: src/unstrip.c:467 src/unstrip.c:482
#, c-format
msgid "cannot update relocation: %s"
msgstr "no se puede actualizar reubicación: %s"
-#: src/unstrip.c:480
+#: src/unstrip.c:479
#, c-format
msgid "gelf_getrela failed: %s"
msgstr ""
-#: src/unstrip.c:582
+#: src/unstrip.c:580
#, c-format
msgid "cannot get symbol version: %s"
msgstr "no se puede obtener versión de símbolo: %s"
-#: src/unstrip.c:595
+#: src/unstrip.c:593
#, 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:850
+#: src/unstrip.c:848
#, fuzzy, c-format
msgid "cannot get symbol section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/unstrip.c:852
+#: src/unstrip.c:850
#, fuzzy, c-format
msgid "cannot get string section data: %s"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/unstrip.c:869
+#: src/unstrip.c:867
#, fuzzy, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "compensación de cadena inválida en símbolo [%Zu]"
-#: src/unstrip.c:1027 src/unstrip.c:1435
+#: src/unstrip.c:1025 src/unstrip.c:1433
#, fuzzy, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "no se puede leer nombre [%Zu]: %s"
-#: src/unstrip.c:1042
+#: src/unstrip.c:1040
#, fuzzy, c-format
msgid "bad sh_link for group section: %s"
msgstr ".debug_line section inválida"
-#: src/unstrip.c:1048
+#: src/unstrip.c:1046
#, fuzzy, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "No se puede obtener encabezamiento de sección 0th: %s"
-#: src/unstrip.c:1053
+#: src/unstrip.c:1051
#, fuzzy, c-format
msgid "bad data for group symbol section: %s"
msgstr "no se puede obtener sección para símbolos\n"
-#: src/unstrip.c:1059
+#: src/unstrip.c:1057
#, fuzzy, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "no se puede obtener versión de símbolo: %s"
-#: src/unstrip.c:1064
+#: src/unstrip.c:1062
#, fuzzy, c-format
msgid "bad symbol name for group section: %s"
msgstr "No se puede obtener el encabezamiento de sección %zu: %s"
-#: src/unstrip.c:1075 src/unstrip.c:1556
+#: src/unstrip.c:1073 src/unstrip.c:1553
#, 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:1120 src/unstrip.c:1139 src/unstrip.c:1177
+#: src/unstrip.c:1118 src/unstrip.c:1137 src/unstrip.c:1175
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "no se puede leer sección '.gnu.prelink_undo': %s"
-#: src/unstrip.c:1157
+#: src/unstrip.c:1155
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1168
+#: src/unstrip.c:1166
#, c-format
msgid "invalid contents in '%s' section"
msgstr "contenido inválido en sección '%s'"
-#: src/unstrip.c:1339 src/unstrip.c:1355 src/unstrip.c:1636 src/unstrip.c:1927
+#: src/unstrip.c:1337 src/unstrip.c:1353 src/unstrip.c:1633 src/unstrip.c:1924
#, 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:1364
+#: src/unstrip.c:1362
#, 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:1393 src/unstrip.c:1397
+#: src/unstrip.c:1391 src/unstrip.c:1395
#, 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:1401 src/unstrip.c:1405 src/unstrip.c:1651
+#: src/unstrip.c:1399 src/unstrip.c:1403 src/unstrip.c:1648
#, c-format
msgid "cannot get section count: %s"
msgstr "No se puede obtener cuenta de sección: %s"
-#: src/unstrip.c:1408
-#, c-format
+#: src/unstrip.c:1406
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:1412
-#, c-format
+#: src/unstrip.c:1410
msgid "no sections in stripped file"
msgstr ""
-#: src/unstrip.c:1460 src/unstrip.c:1571
+#: src/unstrip.c:1458 src/unstrip.c:1568
#, 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:1630
+#: src/unstrip.c:1627
#, c-format
msgid "cannot add new section: %s"
msgstr "No se puede añadir nueva sección: %s"
-#: src/unstrip.c:1760
+#: src/unstrip.c:1757
#, fuzzy, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "símbolo [%Zu] tiene índice de sección inválido"
-#: src/unstrip.c:1792
+#: src/unstrip.c:1789
#, fuzzy, c-format
msgid "group has invalid section index [%zd]"
msgstr "símbolo [%Zu] tiene índice de sección inválido"
-#: src/unstrip.c:2067
+#: src/unstrip.c:2064
#, c-format
msgid "cannot read section data: %s"
msgstr "no se puede leer la sección de datos: %s"
-#: src/unstrip.c:2096
+#: src/unstrip.c:2093
#, c-format
msgid "cannot update ELF header: %s"
msgstr "No se puede actualizar encabezamiento ELF: %s"
-#: src/unstrip.c:2120
+#: src/unstrip.c:2117
#, c-format
msgid "cannot update program header: %s"
msgstr "no se puede actualizar encabezamiento de programa: %s"
-#: src/unstrip.c:2125 src/unstrip.c:2208
+#: src/unstrip.c:2122 src/unstrip.c:2205
#, c-format
msgid "cannot write output file: %s"
msgstr "no se puede escribir al archivo de salida: %s"
-#: src/unstrip.c:2176
+#: src/unstrip.c:2173
#, 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:2179
+#: src/unstrip.c:2176
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -7323,77 +7363,75 @@ msgstr ""
"Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere "
"prelink -u"
-#: src/unstrip.c:2199 src/unstrip.c:2251 src/unstrip.c:2263 src/unstrip.c:2353
+#: src/unstrip.c:2196 src/unstrip.c:2248 src/unstrip.c:2260 src/unstrip.c:2350
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "no se puede crear un descriptor ELF: %s"
-#: src/unstrip.c:2237
+#: src/unstrip.c:2234
msgid "WARNING: "
msgstr ""
-#: src/unstrip.c:2239
+#: src/unstrip.c:2236
msgid ", use --force"
msgstr ""
-#: src/unstrip.c:2267
+#: src/unstrip.c:2264
msgid "ELF header identification (e_ident) different"
msgstr ""
-#: src/unstrip.c:2271
+#: src/unstrip.c:2268
msgid "ELF header type (e_type) different"
msgstr ""
-#: src/unstrip.c:2275
+#: src/unstrip.c:2272
msgid "ELF header machine type (e_machine) different"
msgstr ""
-#: src/unstrip.c:2279
+#: src/unstrip.c:2276
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr ""
-#: src/unstrip.c:2310
+#: src/unstrip.c:2307
#, 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:2314
+#: src/unstrip.c:2311
#, 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:2329
+#: src/unstrip.c:2326
#, 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:2333
+#: src/unstrip.c:2330
#, 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:2346
+#: src/unstrip.c:2343
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "No se obtuvo el archivo '%s' de módulo '%s' "
-#: src/unstrip.c:2377
+#: src/unstrip.c:2374
#, 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:2505
-#, c-format
+#: src/unstrip.c:2502
msgid "no matching modules found"
msgstr "No se encontraron módulos coincidentes"
-#: src/unstrip.c:2515
-#, c-format
+#: src/unstrip.c:2512
msgid "matched more than one module"
msgstr "coincidió con más de un módulo"
-#: src/unstrip.c:2560
+#: src/unstrip.c:2557
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -7401,7 +7439,7 @@ msgstr ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
-#: src/unstrip.c:2561
+#: src/unstrip.c:2558
#, fuzzy
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
@@ -7468,6 +7506,8 @@ msgid ""
"executable PATH\n"
"source BUILDID /FILENAME\n"
"source PATH /FILENAME\n"
+"section BUILDID SECTION-NAME\n"
+"section PATH SECTION-NAME\n"
msgstr ""
#: tests/backtrace.c:483
diff --git a/po/ja.po b/po/ja.po
index 595bdffb..908303a9 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,9 +6,9 @@
# Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: ja\n"
+"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2021-11-10 16:21+0100\n"
+"POT-Creation-Date: 2022-11-02 13:30+0100\n"
"PO-Revision-Date: 2009-09-20 15:32+0900\n"
"Last-Translator: Hyu_gabaru Ryu_ichi <hyu_gabaru@yahoo.co.jp>\n"
"Language-Team: Japanese <jp@li.org>\n"
@@ -19,12 +19,12 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: lib/color.c:53
+#: lib/color.c:51
msgid ""
"colorize the output. WHEN defaults to 'always' or can be 'auto' or 'never'"
msgstr ""
-#: lib/color.c:129
+#: lib/color.c:127
#, c-format
msgid ""
"%s: invalid argument '%s' for '--color'\n"
@@ -34,7 +34,7 @@ msgid ""
" - 'auto', 'tty', 'if-tty'\n"
msgstr ""
-#: lib/printversion.c:40
+#: lib/printversion.c:39
#, c-format
msgid ""
"Copyright (C) %s The elfutils developers <%s>.\n"
@@ -42,70 +42,70 @@ msgid ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
-#: lib/xmalloc.c:48 lib/xmalloc.c:61 lib/xmalloc.c:73 src/readelf.c:11582
-#: src/unstrip.c:312
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11754
+#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
msgstr "メモリー枯渇"
-#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
-#: libelf/elf_error.c:60
+#: libasm/asm_error.c:64 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
+#: libelf/elf_error.c:59
msgid "no error"
msgstr "エラー無ã—"
-#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
-#: libelf/elf_error.c:91
+#: libasm/asm_error.c:65 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
+#: libelf/elf_error.c:90
msgid "out of memory"
msgstr "メモリーä¸è¶³ã§ã™"
-#: libasm/asm_error.c:67
+#: libasm/asm_error.c:66
msgid "cannot create output file"
msgstr "出力ファイルを作æˆã§ãã¾ã›ã‚“"
-#: libasm/asm_error.c:68
+#: libasm/asm_error.c:67
msgid "invalid parameter"
msgstr "ä¸å½“ãªãƒ‘ラメーターã§ã™"
-#: libasm/asm_error.c:69
+#: libasm/asm_error.c:68
msgid "cannot change mode of output file"
msgstr "出力ファイルã®ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã§ãã¾ã›ã‚“"
-#: libasm/asm_error.c:70
+#: libasm/asm_error.c:69
msgid "cannot rename output file"
msgstr "出力ファイルã®åå‰ã‚’変更ã§ãã¾ã›ã‚“"
-#: libasm/asm_error.c:71
+#: libasm/asm_error.c:70
msgid "duplicate symbol"
msgstr "é‡è¤‡ã‚·ãƒ³ãƒœãƒ«ã§ã™"
-#: libasm/asm_error.c:72
+#: libasm/asm_error.c:71
msgid "invalid section type for operation"
msgstr "æ“作ã«ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—ã§ã™"
-#: libasm/asm_error.c:73
+#: libasm/asm_error.c:72
msgid "error during output of data"
msgstr "データ出力中ã®ã‚¨ãƒ©ãƒ¼ã§ã™"
-#: libasm/asm_error.c:74
+#: libasm/asm_error.c:73
msgid "no backend support available"
msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã‚µãƒãƒ¼ãƒˆã‚’利用ã§ãã¾ã›ã‚“"
-#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
-#: libelf/elf_error.c:63
+#: libasm/asm_error.c:82 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
+#: libelf/elf_error.c:62
msgid "unknown error"
msgstr "ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ã§ã™"
-#: libcpu/i386_lex.l:122
+#: libcpu/i386_lex.l:121
#, c-format
msgid "invalid character '%c' at line %d; ignored"
msgstr "ä¸å½“ãªæ–‡å­— '%c' ㌠%d 行目ã«ã‚ã‚Šã¾ã™; 無視ã—ã¾ã—ãŸ"
-#: libcpu/i386_lex.l:123
+#: libcpu/i386_lex.l:122
#, c-format
msgid "invalid character '\\%o' at line %d; ignored"
msgstr "ä¸å½“ãªæ–‡å­— '\\%o' ㌠%d 行目ã«ã‚ã‚Šã¾ã™; 無視ã—ã¾ã—ãŸ"
-#: libcpu/i386_parse.y:554
+#: libcpu/i386_parse.y:553
#, c-format
msgid "while reading i386 CPU description: %s at line %d"
msgstr "i386 CPU description ã®èª­ã¿è¾¼ã¿ä¸­: %2$d 行目㮠%1$s"
@@ -146,7 +146,7 @@ msgstr "ELF ヘッダーをå–å¾—ã§ãã¾ã›ã‚“"
msgid "not implemented"
msgstr "未実装ã§ã™"
-#: libdw/dwarf_error.c:69 libelf/elf_error.c:111 libelf/elf_error.c:159
+#: libdw/dwarf_error.c:69 libelf/elf_error.c:110 libelf/elf_error.c:158
msgid "invalid command"
msgstr "ä¸å½“ãªã‚³ãƒžãƒ³ãƒ‰ã§ã™"
@@ -254,7 +254,7 @@ msgstr "一致ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ç¯„囲ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "no flag value"
msgstr "フラグ値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: libdw/dwarf_error.c:96 libelf/elf_error.c:236
+#: libdw/dwarf_error.c:96 libelf/elf_error.c:235
msgid "invalid offset"
msgstr "ä¸å½“ãªã‚ªãƒ•ã‚»ãƒƒãƒˆã§ã™"
@@ -290,23 +290,23 @@ msgstr "ä¸æ˜Žãªè¨€èªžã‚³ãƒ¼ãƒ‰ã§ã™"
msgid ".debug_addr section missing"
msgstr ".debug_addr セクションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: libdwfl/argp-std.c:47 src/stack.c:643 src/unstrip.c:2550
+#: libdwfl/argp-std.c:45 src/stack.c:643 src/unstrip.c:2547
msgid "Input selection options:"
msgstr "入力é¸æŠžã‚ªãƒ—ション:"
-#: libdwfl/argp-std.c:48
+#: libdwfl/argp-std.c:46
msgid "Find addresses in FILE"
msgstr "FILE ã®ä¸­ã‹ã‚‰ アドレスを探ã™"
-#: libdwfl/argp-std.c:50
+#: libdwfl/argp-std.c:48
msgid "Find addresses from signatures found in COREFILE"
msgstr "COREFILE 中㧠見ã¤ã‹ã£ãŸ ç½²åã‹ã‚‰ アドレスを 探ã™"
-#: libdwfl/argp-std.c:52
+#: libdwfl/argp-std.c:50
msgid "Find addresses in files mapped into process PID"
msgstr "プロセス PID 㫠対応ã™ã‚‹ ファイル中㮠アドレスを 探ã™"
-#: libdwfl/argp-std.c:54
+#: libdwfl/argp-std.c:52
msgid ""
"Find addresses in files mapped as read from FILE in Linux /proc/PID/maps "
"format"
@@ -314,45 +314,45 @@ msgstr ""
"Linux ã® /proc/PID/maps å½¢å¼ã® FILE ã‹ã‚‰ 読ã¿è¾¼ã‚“ã  ãƒžãƒƒãƒ”ãƒ³ã‚° ã•ã‚ŒãŸ ファイ"
"ル ã‹ã‚‰ アドレスを 探ã™"
-#: libdwfl/argp-std.c:56
+#: libdwfl/argp-std.c:54
msgid "Find addresses in the running kernel"
msgstr "実行中㮠カーãƒãƒ«ã‹ã‚‰ アドレスを 探ã™"
-#: libdwfl/argp-std.c:58
+#: libdwfl/argp-std.c:56
msgid "Kernel with all modules"
msgstr "å…¨ã¦ã® モジュール付ã㮠カーãƒãƒ«"
-#: libdwfl/argp-std.c:60 src/stack.c:650
+#: libdwfl/argp-std.c:58 src/stack.c:650
msgid "Search path for separate debuginfo files"
msgstr "分離ã•ã‚ŒãŸ debuginfo ファイルを 探索ã™ã‚‹ パス"
-#: libdwfl/argp-std.c:161
+#: libdwfl/argp-std.c:159
msgid "only one of -e, -p, -k, -K, or --core allowed"
msgstr "-e ã‹ã€-pã€-kã€-Kã€--core ã®ã²ã¨ã¤ã ã‘ãŒèªã‚られã¾ã™"
-#: libdwfl/argp-std.c:234
+#: libdwfl/argp-std.c:232
msgid "cannot load kernel symbols"
msgstr "カーãƒãƒ«ã‚·ãƒ³ãƒœãƒ«ã‚’ロードã§ãã¾ã›ã‚“"
#. Non-fatal to have no modules since we do have the kernel.
-#: libdwfl/argp-std.c:238
+#: libdwfl/argp-std.c:236
msgid "cannot find kernel modules"
msgstr "カーãƒãƒ«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: libdwfl/argp-std.c:255
+#: libdwfl/argp-std.c:253
msgid "cannot find kernel or modules"
msgstr "カーãƒãƒ«ã¾ãŸã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: libdwfl/argp-std.c:294
+#: libdwfl/argp-std.c:292
#, c-format
msgid "cannot read ELF core file: %s"
msgstr "ELF コアファイルを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: libdwfl/argp-std.c:317
+#: libdwfl/argp-std.c:315
msgid "Not enough memory"
msgstr "メモリーãŒå分ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: libdwfl/argp-std.c:327
+#: libdwfl/argp-std.c:325
msgid "No modules recognized in core file"
msgstr "コアファイルã®ä¸­ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªè­˜ã§ãã¾ã›ã‚“"
@@ -404,7 +404,7 @@ msgstr "未対応ã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—ã§ã™"
msgid "r_offset is bogus"
msgstr "r_offset ãŒå½ç‰©ã§ã™"
-#: libdwfl/libdwflP.h:66 libelf/elf_error.c:115 libelf/elf_error.c:175
+#: libdwfl/libdwflP.h:66 libelf/elf_error.c:114 libelf/elf_error.c:174
msgid "offset out of range"
msgstr "オフセットãŒç¯„囲外ã§ã™"
@@ -469,46 +469,52 @@ msgid "Invalid register"
msgstr "ä¸å½“ãªãƒ¬ã‚¸ã‚¹ã‚¿ãƒ¼ã§ã™"
#: libdwfl/libdwflP.h:84
+#, fuzzy
+#| msgid "no reference value"
+msgid "Unknown register value"
+msgstr "å‚照値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+
+#: libdwfl/libdwflP.h:85
msgid "Error reading process memory"
msgstr "プロセスメモリーã®èª­ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ã§ã™"
-#: libdwfl/libdwflP.h:85
+#: libdwfl/libdwflP.h:86
msgid "Couldn't find architecture of any ELF"
msgstr "ELF ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ãŒï¼‘ã¤ã‚‚見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-#: libdwfl/libdwflP.h:86
+#: libdwfl/libdwflP.h:87
msgid "Error parsing /proc filesystem"
msgstr "/proc ファイルシステムã®ãƒ‘ースエラーã§ã™"
-#: libdwfl/libdwflP.h:87
+#: libdwfl/libdwflP.h:88
msgid "Invalid DWARF"
msgstr "ä¸å½“㪠DWARF ã§ã™"
-#: libdwfl/libdwflP.h:88
+#: libdwfl/libdwflP.h:89
msgid "Unsupported DWARF"
msgstr "未対応㮠DWARF ã§ã™"
-#: libdwfl/libdwflP.h:89
+#: libdwfl/libdwflP.h:90
msgid "Unable to find more threads"
msgstr "ã“れ以上スレッドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: libdwfl/libdwflP.h:90
+#: libdwfl/libdwflP.h:91
msgid "Dwfl already has attached state"
msgstr "Dwfl ã¯æ—¢ã«ã‚¢ã‚¿ãƒƒãƒçŠ¶æ…‹ã§ã™"
-#: libdwfl/libdwflP.h:91
+#: libdwfl/libdwflP.h:92
msgid "Dwfl has no attached state"
msgstr "Dwfl ã¯ã‚¢ã‚¿ãƒƒãƒçŠ¶æ…‹ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: libdwfl/libdwflP.h:92
+#: libdwfl/libdwflP.h:93
msgid "Unwinding not supported for this architecture"
msgstr "ã“ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã«å¯¾å¿œã—ã¦ã„ãªã„å·»ã戻ã—ã§ã™"
-#: libdwfl/libdwflP.h:93
+#: libdwfl/libdwflP.h:94
msgid "Invalid argument"
msgstr "ä¸å½“ãªå¼•æ•°ã§ã™"
-#: libdwfl/libdwflP.h:94
+#: libdwfl/libdwflP.h:95
msgid "Not an ET_CORE ELF file"
msgstr "ET_CORE ELF ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -517,7 +523,7 @@ msgid "No backend"
msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãŒã‚ã‚Šã¾ã›ã‚“"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
-#: libebl/eblobjnotetypename.c:110 libebl/eblobjnotetypename.c:131
+#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
@@ -568,18 +574,18 @@ msgstr ""
msgid " Args: "
msgstr ""
-#: libebl/eblobjnote.c:300
+#: libebl/eblobjnote.c:304
#, c-format
msgid " Build ID: "
msgstr " ビルド ID: "
#. A non-null terminated version string.
-#: libebl/eblobjnote.c:311
+#: libebl/eblobjnote.c:315
#, c-format
msgid " Linker version: %.*s\n"
msgstr ""
-#: libebl/eblobjnote.c:638
+#: libebl/eblobjnote.c:642
#, c-format
msgid " OS: %s, ABI: "
msgstr ""
@@ -593,225 +599,227 @@ msgstr "スタンドアローン"
msgid "<unknown>: %d"
msgstr "<ä¸æ˜Ž>: %d"
-#: libelf/elf_error.c:67
+#: libelf/elf_error.c:66
msgid "unknown version"
msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã™"
-#: libelf/elf_error.c:71
+#: libelf/elf_error.c:70
msgid "unknown type"
msgstr "ä¸æ˜Žãªã‚¿ã‚¤ãƒ—ã§ã™"
-#: libelf/elf_error.c:75
+#: libelf/elf_error.c:74
msgid "invalid `Elf' handle"
msgstr "無効㪠`Elf' ã®ãƒãƒ³ãƒ‰ãƒ«ã§ã™"
-#: libelf/elf_error.c:79
+#: libelf/elf_error.c:78
msgid "invalid size of source operand"
msgstr "ソース演算å­ã®å¤§ãã•ãŒç„¡åŠ¹ã§ã™"
-#: libelf/elf_error.c:83
+#: libelf/elf_error.c:82
msgid "invalid size of destination operand"
msgstr "宛先演算å­ã®å¤§ãã•ãŒç„¡åŠ¹ã§ã™"
-#: libelf/elf_error.c:87 src/readelf.c:6215
+#: libelf/elf_error.c:86 src/readelf.c:6378
#, c-format
msgid "invalid encoding"
msgstr "無効ãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã™"
-#: libelf/elf_error.c:95
+#: libelf/elf_error.c:94
msgid "invalid file descriptor"
msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ã§ã™"
-#: libelf/elf_error.c:99
+#: libelf/elf_error.c:98
msgid "invalid ELF file data"
msgstr "ä¸å½“㪠ELF ファイルデータã§ã™"
-#: libelf/elf_error.c:103
+#: libelf/elf_error.c:102
msgid "invalid operation"
msgstr "ä¸å½“ãªæ“作ã§ã™"
-#: libelf/elf_error.c:107
+#: libelf/elf_error.c:106
msgid "ELF version not set"
msgstr "ELF ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: libelf/elf_error.c:119
+#: libelf/elf_error.c:118
msgid "invalid fmag field in archive header"
msgstr "アーカイブヘッダーã®ä¸å½“㪠fmag 領域ã§ã™"
-#: libelf/elf_error.c:123
+#: libelf/elf_error.c:122
msgid "invalid archive file"
msgstr "ä¸å½“ãªã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ファイルã§ã™"
-#: libelf/elf_error.c:127
+#: libelf/elf_error.c:126
msgid "descriptor is not for an archive"
msgstr "記述å­ãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–用ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: libelf/elf_error.c:131
+#: libelf/elf_error.c:130
msgid "no index available"
msgstr "利用ã§ãる索引ãŒã‚ã‚Šã¾ã›ã‚“"
-#: libelf/elf_error.c:135
+#: libelf/elf_error.c:134
msgid "cannot read data from file"
msgstr "ファイルã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: libelf/elf_error.c:139
+#: libelf/elf_error.c:138
msgid "cannot write data to file"
msgstr "ファイルã¸ãƒ‡ãƒ¼ã‚¿ã‚’書ãè¾¼ã‚ã¾ã›ã‚“"
-#: libelf/elf_error.c:143
+#: libelf/elf_error.c:142
msgid "invalid binary class"
msgstr "ä¸å½“ãªãƒã‚¤ãƒŠãƒªãƒ¼ã‚¯ãƒ©ã‚¹ã§ã™"
-#: libelf/elf_error.c:147
+#: libelf/elf_error.c:146
msgid "invalid section index"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼•ã§ã™"
-#: libelf/elf_error.c:151
+#: libelf/elf_error.c:150
msgid "invalid operand"
msgstr "ä¸å½“ãªã‚ªãƒšãƒ©ãƒ³ãƒ‰ã§ã™"
-#: libelf/elf_error.c:155
+#: libelf/elf_error.c:154
msgid "invalid section"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ã§ã™"
-#: libelf/elf_error.c:163
+#: libelf/elf_error.c:162
msgid "executable header not created first"
msgstr "実行å¯èƒ½ãƒ˜ãƒƒãƒ€ãƒ¼ãŒæœ€åˆã«ä½œã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
-#: libelf/elf_error.c:167
+#: libelf/elf_error.c:166
msgid "file descriptor disabled"
msgstr "ファイル記述å­ãŒç„¡åŠ¹åŒ–ã•ã‚Œã¦ã„ã¾ã™"
-#: libelf/elf_error.c:171
+#: libelf/elf_error.c:170
msgid "archive/member file descriptor mismatch"
msgstr "アーカイブ/メンãƒãƒ¼ã®ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ã®ä¸æ•´åˆã§ã™"
-#: libelf/elf_error.c:179
+#: libelf/elf_error.c:178
msgid "cannot manipulate null section"
msgstr "null セクションをæ“作ã§ãã¾ã›ã‚“"
-#: libelf/elf_error.c:183
+#: libelf/elf_error.c:182
msgid "data/scn mismatch"
msgstr "データ/scnã®ä¸æ•´åˆã§ã™"
-#: libelf/elf_error.c:187
+#: libelf/elf_error.c:186
msgid "invalid section header"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã§ã™"
-#: libelf/elf_error.c:191 src/readelf.c:10093 src/readelf.c:10693
-#: src/readelf.c:10794 src/readelf.c:10976
+#: libelf/elf_error.c:190 src/readelf.c:10266 src/readelf.c:10866
+#: src/readelf.c:10967 src/readelf.c:11149
#, c-format
msgid "invalid data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿ã§ã™"
-#: libelf/elf_error.c:195
+#: libelf/elf_error.c:194
msgid "unknown data encoding"
msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã™"
-#: libelf/elf_error.c:199
+#: libelf/elf_error.c:198
msgid "section `sh_size' too small for data"
msgstr "`sh_size' セクションãŒãƒ‡ãƒ¼ã‚¿ã«ã¯å°ã•ã™ãŽã¾ã™"
-#: libelf/elf_error.c:203
+#: libelf/elf_error.c:202
msgid "invalid section alignment"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¢ãƒ©ã‚¤ãƒ³ãƒ¡ãƒ³ãƒˆã§ã™"
-#: libelf/elf_error.c:207
+#: libelf/elf_error.c:206
msgid "invalid section entry size"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³é …ç›®ã®å¤§ãã•ã§ã™"
-#: libelf/elf_error.c:211
+#: libelf/elf_error.c:210
msgid "update() for write on read-only file"
msgstr "読ã¿è¾¼ã¿å°‚用ファイルã¸ã®æ›¸ãè¾¼ã¿ã® update() ã§ã™"
-#: libelf/elf_error.c:215
+#: libelf/elf_error.c:214
msgid "no such file"
msgstr "ãã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: libelf/elf_error.c:219
+#: libelf/elf_error.c:218
msgid "only relocatable files can contain section groups"
msgstr "リロケータブルファイルã®ã¿ãŒã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ—ã‚’å«ã‚€ã“ã¨ãŒã§ãã¾ã™"
-#: libelf/elf_error.c:224
+#: libelf/elf_error.c:223
msgid ""
"program header only allowed in executables, shared objects, and core files"
msgstr ""
"プログラムヘッダーã¯ã€å®Ÿè¡Œå¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«ã€å…±æœ‰ã‚ªãƒ–ジェクトã€ã‚³ã‚¢ãƒ•ã‚¡ã‚¤ãƒ«ã«ã®ã¿"
"èªã‚られã¦ã„ã¾ã™"
-#: libelf/elf_error.c:231
+#: libelf/elf_error.c:230
msgid "file has no program header"
msgstr "ファイルã«ãƒ—ログラムヘッダーãŒã‚ã‚Šã¾ã›ã‚“"
-#: libelf/elf_error.c:241
+#: libelf/elf_error.c:240
msgid "invalid section type"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—ã§ã™"
-#: libelf/elf_error.c:246
+#: libelf/elf_error.c:245
msgid "invalid section flags"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ•ãƒ©ã‚°ã§ã™"
-#: libelf/elf_error.c:251
+#: libelf/elf_error.c:250
msgid "section does not contain compressed data"
msgstr "セクションãŒåœ§ç¸®ãƒ‡ãƒ¼ã‚¿ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“"
-#: libelf/elf_error.c:256
+#: libelf/elf_error.c:255
msgid "section contains compressed data"
msgstr "セクションãŒåœ§ç¸®ãƒ‡ãƒ¼ã‚¿ã‚’å«ã‚“ã§ã„ã¾ã™"
-#: libelf/elf_error.c:261
+#: libelf/elf_error.c:260
msgid "unknown compression type"
msgstr "ä¸æ˜Žãªåœ§ç¸®ã‚¿ã‚¤ãƒ—ã§ã™"
-#: libelf/elf_error.c:266
+#: libelf/elf_error.c:265
msgid "cannot compress data"
msgstr "データを圧縮ã§ãã¾ã›ã‚“"
-#: libelf/elf_error.c:271
+#: libelf/elf_error.c:270
msgid "cannot decompress data"
msgstr "データを展開ã§ãã¾ã›ã‚“"
-#: src/addr2line.c:57
+#: src/addr2line.c:58
msgid "Input format options:"
msgstr "入力フォーマットオプション:"
-#: src/addr2line.c:59
+#: src/addr2line.c:60
msgid "Treat addresses as offsets relative to NAME section."
msgstr "アドレスを NAME セクション㫠対ã™ã‚‹ 相対 オフセット ã¨ã—㦠扱ã†"
-#: src/addr2line.c:61
+#: src/addr2line.c:62
msgid "Output format options:"
msgstr "出力フォーマットオプション:"
-#: src/addr2line.c:62
+#: src/addr2line.c:63
msgid "Print address before each entry"
msgstr "å„é …ç›®ã®å‰ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’表示"
-#: src/addr2line.c:63
+#: src/addr2line.c:64
msgid "Show only base names of source files"
msgstr "ソースファイル㮠ベースãƒãƒ¼ãƒ  ã®ã¿ 表示"
-#: src/addr2line.c:65
-msgid "Show absolute file names using compilation directory"
+#: src/addr2line.c:66
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show absolute file names using compilation directory (default)"
msgstr "コンパイルディレクトリを 使用ã—㦠絶対ファイルåã‚’ 表示"
-#: src/addr2line.c:66
+#: src/addr2line.c:67
msgid "Also show function names"
msgstr "関数åも表示"
-#: src/addr2line.c:67
+#: src/addr2line.c:68
msgid "Also show symbol or section names"
msgstr "シンボルå ã¾ãŸã¯ セクションåã‚‚ 表示"
-#: src/addr2line.c:68
+#: src/addr2line.c:69
msgid "Also show symbol and the section names"
msgstr "シンボルå㨠セクションåã‚‚ 表示"
-#: src/addr2line.c:69
+#: src/addr2line.c:70
msgid "Also show line table flags"
msgstr "行テーブルフラグも表示"
-#: src/addr2line.c:71
+#: src/addr2line.c:72
msgid ""
"Show all source locations that caused inline expansion of subroutines at the "
"address."
@@ -819,345 +827,348 @@ msgstr ""
"アドレス㮠サブルーãƒãƒ³ã® インライン展開を 引ãèµ·ã“ã—㟠全ã¦ã® ソースä½ç½®ã‚’ "
"表示"
-#: src/addr2line.c:74
+#: src/addr2line.c:75
msgid "Show demangled symbols (ARG is always ignored)"
msgstr "デマングルã•ã‚ŒãŸ シンボルを 表示 (ARGã¯å¸¸ã«ç„¡è¦–ã•ã‚Œã‚‹ï¼‰"
-#: src/addr2line.c:76
+#: src/addr2line.c:77
msgid "Print all information on one line, and indent inlines"
msgstr "å…¨ã¦ã® 情報を 一行㧠表示ã—〠字下ã’ã™ã‚‹"
-#: src/addr2line.c:78 src/elfcmp.c:70 src/findtextrel.c:66 src/nm.c:100
-#: src/strings.c:78
+#: src/addr2line.c:79
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show relative file names without compilation directory"
+msgstr "コンパイルディレクトリを 使用ã—㦠絶対ファイルåã‚’ 表示"
+
+#: src/addr2line.c:81 src/elfcmp.c:69 src/findtextrel.c:65 src/nm.c:99
+#: src/strings.c:77
msgid "Miscellaneous:"
msgstr "Misc:"
#. Short description of program.
-#: src/addr2line.c:86
+#: src/addr2line.c:89
msgid ""
"Locate source files and line information for ADDRs (in a.out by default)."
msgstr ""
"ADDR ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã¨è¡Œã®æƒ…報を 検索ã™ã‚‹ (デフォルトã§ã¯ a.out ã‹ã‚‰ï¼‰"
#. Strings for arguments in help texts.
-#: src/addr2line.c:90
+#: src/addr2line.c:93
msgid "[ADDR...]"
msgstr ""
-#: src/addr2line.c:519
-#, c-format
+#: src/addr2line.c:526
msgid "Section syntax requires exactly one module"
msgstr ""
-#: src/addr2line.c:542
+#: src/addr2line.c:548
#, c-format
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr ""
-#: src/addr2line.c:652
+#: src/addr2line.c:658
#, c-format
msgid "cannot find symbol '%s'"
msgstr "シンボル '%s' ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: src/addr2line.c:657
+#: src/addr2line.c:663
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr ""
-#: src/ar.c:67
+#: src/ar.c:66
msgid "Commands:"
msgstr "コマンド:"
-#: src/ar.c:68
+#: src/ar.c:67
msgid "Delete files from archive."
msgstr "アーカイブã‹ã‚‰ãƒ•ã‚¡ã‚¤ãƒ«ã‚’削除。"
-#: src/ar.c:69
+#: src/ar.c:68
msgid "Move files in archive."
msgstr "アーカイブ内ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’移動。"
-#: src/ar.c:70
+#: src/ar.c:69
msgid "Print files in archive."
msgstr "アーカイブ内ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å°åˆ·ã€‚"
-#: src/ar.c:71
+#: src/ar.c:70
msgid "Quick append files to archive."
msgstr "アーカイブ㸠ファイルを ç´ æ—©ã 追加。"
-#: src/ar.c:73
+#: src/ar.c:72
msgid "Replace existing or insert new file into archive."
msgstr "アーカイブã®æ—¢å­˜ãƒ•ã‚¡ã‚¤ãƒ«ã®ç½®ãæ›ãˆã¾ãŸã¯æ–°ã—ã„ファイルã®æŒ¿å…¥ã€‚"
-#: src/ar.c:74
+#: src/ar.c:73
msgid "Display content of archive."
msgstr "アーカイブã®å†…容ã®è¡¨ç¤ºã€‚"
-#: src/ar.c:75
+#: src/ar.c:74
msgid "Extract files from archive."
msgstr "アーカイブã‹ã‚‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®å–出ã—。"
-#: src/ar.c:77
+#: src/ar.c:76
msgid "Command Modifiers:"
msgstr "コマンド修飾å­ï¼š"
-#: src/ar.c:78
+#: src/ar.c:77
msgid "Preserve original dates."
msgstr "元データã®ä¿å­˜ã€‚"
-#: src/ar.c:79
+#: src/ar.c:78
msgid "Use instance [COUNT] of name."
msgstr "åå‰ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ [COUNT] ã®ä½¿ç”¨ã€‚"
-#: src/ar.c:81
+#: src/ar.c:80
msgid "Do not replace existing files with extracted files."
msgstr "抽出ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã§æ—¢å­˜ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ç½®ãæ›ãˆãªã„。"
-#: src/ar.c:82
+#: src/ar.c:81
msgid "Allow filename to be truncated if necessary."
msgstr "å¿…è¦ãªã‚‰ã° ファイルå㮠切り詰ã‚ã‚’ èªã‚る。"
-#: src/ar.c:84
+#: src/ar.c:83
msgid "Provide verbose output."
msgstr "饒舌ãªå‡ºåŠ›ã‚’æä¾›ã™ã‚‹ã€‚"
-#: src/ar.c:85
+#: src/ar.c:84
msgid "Force regeneration of symbol table."
msgstr "シンボルテーブルã®å†ç”Ÿæˆã‚’強制ã™ã‚‹ã€‚"
-#: src/ar.c:86
+#: src/ar.c:85
msgid "Insert file after [MEMBER]."
msgstr "[MEMBER]ã®å¾Œã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’挿入ã™ã‚‹ã€‚"
-#: src/ar.c:87
+#: src/ar.c:86
msgid "Insert file before [MEMBER]."
msgstr "[MEMBER]ã®å‰ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’挿入ã™ã‚‹ã€‚"
-#: src/ar.c:88
+#: src/ar.c:87
msgid "Same as -b."
msgstr "-b ã¨åŒã˜ã€‚"
-#: src/ar.c:89
+#: src/ar.c:88
msgid "Suppress message when library has to be created."
msgstr "ライブラリーを 生作æˆãªã‘れ㰠ãªã‚‰ãªã„時㫠メッセージを 抑止ã™ã‚‹ã€‚"
-#: src/ar.c:91
+#: src/ar.c:90
msgid "Use full path for file matching."
msgstr "ファイル照åˆã«ãƒ•ãƒ«ãƒ‘スを使ã†ã€‚"
-#: src/ar.c:92
+#: src/ar.c:91
msgid "Update only older files in archive."
msgstr "アーカイブ㮠å¤ã„ ファイルã®ã¿ æ›´æ–°ã™ã‚‹ã€‚"
#. Short description of program.
-#: src/ar.c:98
+#: src/ar.c:97
msgid "Create, modify, and extract from archives."
msgstr "アーカイブã®ä½œæˆã‚„修正ã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‹ã‚‰ã®æŠ½å‡ºã‚’è¡Œã†ã€‚"
#. Strings for arguments in help texts.
-#: src/ar.c:101
+#: src/ar.c:100
msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
msgstr ""
-#: src/ar.c:180
+#: src/ar.c:179
#, c-format
msgid "'a', 'b', and 'i' are only allowed with the 'm' and 'r' options"
msgstr "'a'ã‚„ã€'b'ã€'i'ã¯ã€'m' ã‚„ 'r' オプションã¨ä¸€ç·’ã«ã—ã‹æŒ‡å®šã§ãã¾ã›ã‚“"
-#: src/ar.c:185
+#: src/ar.c:184
#, c-format
msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers"
msgstr "'a'ã‚„ã€'b'ã€'i' 修飾å­ã«ã¯ MEMBER パラメーターãŒå¿…è¦ã§ã™"
-#: src/ar.c:201
+#: src/ar.c:200
#, c-format
msgid "'N' is only meaningful with the 'x' and 'd' options"
msgstr "'N' 㯠'x' ã‚„ 'd' オプションã¨ä¸€ç·’ã®æ™‚ã®ã¿æ„味をæŒã¡ã¾ã™"
-#: src/ar.c:206
+#: src/ar.c:205
#, c-format
msgid "COUNT parameter required"
msgstr "COUNT パラメーターãŒå¿…è¦ã§ã™"
-#: src/ar.c:218
+#: src/ar.c:217
#, c-format
msgid "invalid COUNT parameter %s"
msgstr "ä¸å½“㪠COUNT パラメーター %s ã§ã™"
-#: src/ar.c:225
+#: src/ar.c:224
#, c-format
msgid "'%c' is only meaningful with the 'x' option"
msgstr "'%c' 㯠'x' オプションã¨ä¸€ç·’ã®æ™‚ã®ã¿æ„味をæŒã¡ã¾ã™"
-#: src/ar.c:231
+#: src/ar.c:230
#, c-format
msgid "archive name required"
msgstr "アーカイブåãŒå¿…è¦ã§ã™"
-#: src/ar.c:244
+#: src/ar.c:243
#, c-format
msgid "command option required"
msgstr "コマンドオプションãŒå¿…è¦ã§ã™"
-#: src/ar.c:295
+#: src/ar.c:294
#, c-format
msgid "More than one operation specified"
msgstr "1ã¤ã‚’越ãˆã‚‹æ“作ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
-#: src/ar.c:389
+#: src/ar.c:388
#, c-format
msgid "cannot open archive '%s'"
msgstr "アーカイブ '%s' ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/ar.c:399
+#: src/ar.c:398
#, c-format
msgid "cannot open archive '%s': %s"
msgstr "アーカイブ '%s' ã‚’é–‹ã‘ã¾ã›ã‚“: %s"
-#: src/ar.c:403
+#: src/ar.c:402
#, c-format
msgid "%s: not an archive file"
msgstr "%s: アーカイブファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/ar.c:407
+#: src/ar.c:406
#, c-format
msgid "cannot stat archive '%s'"
msgstr "アーカイブ '%s' ã‚’ stat ã§ãã¾ã›ã‚“"
-#: src/ar.c:419
+#: src/ar.c:418
#, c-format
msgid "no entry %s in archive\n"
msgstr "アーカイブã«é …ç›® %s ãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/ar.c:472 src/ar.c:927 src/ar.c:1134
-#, c-format
+#: src/ar.c:471 src/ar.c:925 src/ar.c:1131
msgid "cannot create hash table"
msgstr "ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルを作æˆã§ãã¾ã›ã‚“"
-#: src/ar.c:479 src/ar.c:934 src/ar.c:1143
-#, c-format
+#: src/ar.c:477 src/ar.c:931 src/ar.c:1139
msgid "cannot insert into hash table"
msgstr "ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルã«æŒ¿å…¥ã§ãã¾ã›ã‚“"
-#: src/ar.c:487 src/ranlib.c:148
+#: src/ar.c:485 src/ranlib.c:147
#, c-format
msgid "cannot stat '%s'"
msgstr "'%s' ã‚’ stat ã§ãã¾ã›ã‚“"
-#: src/ar.c:589
+#: src/ar.c:587
#, c-format
msgid "cannot read content of %s: %s"
msgstr "%s ã®å†…容を読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/ar.c:632
+#: src/ar.c:630
#, c-format
msgid "cannot open %.*s"
msgstr "%.*s ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/ar.c:654
+#: src/ar.c:652
#, c-format
msgid "failed to write %s"
msgstr "%s ã¸ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: src/ar.c:666
+#: src/ar.c:664
#, c-format
msgid "cannot change mode of %s"
msgstr "%s ã®ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã§ãã¾ã›ã‚“"
-#: src/ar.c:682
+#: src/ar.c:680
#, c-format
msgid "cannot change modification time of %s"
msgstr "%s ã®æ›´æ–°æ™‚間を変更ã§ãã¾ã›ã‚“"
-#: src/ar.c:728
+#: src/ar.c:726
#, c-format
msgid "cannot rename temporary file to %.*s"
msgstr "一時ファイルを %.*s ã«åå‰å¤‰æ›´ã§ãã¾ã›ã‚“"
-#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222
+#: src/ar.c:762 src/ar.c:1016 src/ar.c:1419 src/ranlib.c:221
#, c-format
msgid "cannot create new file"
msgstr "æ–°ã—ã„ファイルを作æˆã§ãã¾ã›ã‚“"
-#: src/ar.c:1225
+#: src/ar.c:1221
#, c-format
msgid "position member %s not found"
msgstr "ä½ç½®ãƒ¡ãƒ³ãƒãƒ¼ %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: src/ar.c:1235
+#: src/ar.c:1231
#, c-format
msgid "%s: no entry %s in archive!\n"
msgstr "%s: é …ç›® %s ãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã«ã‚ã‚Šã¾ã›ã‚“!\n"
-#: src/ar.c:1264 src/objdump.c:241
+#: src/ar.c:1260 src/objdump.c:240
#, c-format
msgid "cannot open %s"
msgstr "%s ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/ar.c:1269
+#: src/ar.c:1265
#, c-format
msgid "cannot stat %s"
msgstr "%s ã‚’ stat ã§ãã¾ã›ã‚“"
-#: src/ar.c:1275
+#: src/ar.c:1271
#, c-format
msgid "%s is no regular file"
msgstr "%s ã¯ä¸€èˆ¬ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/ar.c:1288
+#: src/ar.c:1284
#, c-format
msgid "cannot get ELF descriptor for %s: %s\n"
msgstr "%s ã® ELF 記述å­ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s\n"
-#: src/ar.c:1308
+#: src/ar.c:1304
#, c-format
msgid "cannot read %s: %s"
msgstr "%s を読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/ar.c:1483
+#: src/ar.c:1479
#, c-format
msgid "cannot represent ar_date"
msgstr "ar_date を表ç¾ã§ãã¾ã›ã‚“"
-#: src/ar.c:1489
+#: src/ar.c:1485
#, c-format
msgid "cannot represent ar_uid"
msgstr "ar_uid を表ç¾ã§ãã¾ã›ã‚“"
-#: src/ar.c:1495
+#: src/ar.c:1491
#, c-format
msgid "cannot represent ar_gid"
msgstr "ar_gid を表ç¾ã§ãã¾ã›ã‚“"
-#: src/ar.c:1501
+#: src/ar.c:1497
#, c-format
msgid "cannot represent ar_mode"
msgstr "ar_mode を表ç¾ã§ãã¾ã›ã‚“"
-#: src/ar.c:1507
+#: src/ar.c:1503
#, c-format
msgid "cannot represent ar_size"
msgstr "ar_size を表ç¾ã§ãã¾ã›ã‚“"
-#: src/arlib-argp.c:32
+#: src/arlib-argp.c:31
msgid "Use zero for uid, gid, and date in archive members."
msgstr "アーカイブメンãƒã® uid〠gid〠日付㫠ゼロを 使用ã™ã‚‹ã€‚"
-#: src/arlib-argp.c:34
+#: src/arlib-argp.c:33
msgid "Use actual uid, gid, and date in archive members."
msgstr "アーカイブメンãƒã« 実際ã®uid〠gid〠日付を 使用ã™ã‚‹ã€‚"
-#: src/arlib-argp.c:63
+#: src/arlib-argp.c:62
#, c-format
msgid "%s (default)"
msgstr "%s (デフォルト)"
#. The archive is too big.
-#: src/arlib.c:213
+#: src/arlib.c:212
#, c-format
msgid "the archive '%s' is too large"
msgstr "アーカイブ '%s' ã¯å¤§ãã™ãŽã¾ã™"
-#: src/arlib.c:226
+#: src/arlib.c:225
#, c-format
msgid "cannot read ELF header of %s(%s): %s"
msgstr "%s(%s) ã® ELF ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
@@ -1340,8 +1351,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr "ã„ãã¤ã‹ã®ã‚¨ãƒ©ãƒ¼å‡ºåŠ›ã‚’ 抑制ã™ã‚‹ ( --verbose ã®å対)"
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1334 src/elflint.c:77
-#: src/readelf.c:158
+#: src/elfclassify.c:979 src/elfcompress.c:1358 src/elflint.c:76
+#: src/readelf.c:160
msgid "FILE..."
msgstr ""
@@ -1384,15 +1395,15 @@ msgid ""
"change the exit status."
msgstr ""
-#: src/elfcmp.c:60
+#: src/elfcmp.c:59
msgid "Control options:"
msgstr "制御オプション:"
-#: src/elfcmp.c:62
+#: src/elfcmp.c:61
msgid "Output all differences, not just the first"
msgstr "最åˆã®ã‚‚ã®ã«é™ã‚‰ãšã€ å…¨ã¦ã®å·®ç•°ã‚’ 出力ã™ã‚‹"
-#: src/elfcmp.c:63
+#: src/elfcmp.c:62
msgid ""
"Control treatment of gaps in loadable segments [ignore|match] (default: "
"ignore)"
@@ -1400,215 +1411,215 @@ msgstr ""
"ロードå¯èƒ½ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® gap 㮠扱ã„ã‚’ 制御ã™ã‚‹ [ignore|match] (デフォルト: "
"ignore)"
-#: src/elfcmp.c:65
+#: src/elfcmp.c:64
msgid "Ignore permutation of buckets in SHT_HASH section"
msgstr "SHT_HASH セクション㮠ãƒã‚±ãƒƒãƒˆã® 並ã¹æ›¿ãˆã‚’ 無視"
-#: src/elfcmp.c:67
+#: src/elfcmp.c:66
msgid "Ignore differences in build ID"
msgstr "ビルド ID ã®å·®ç•°ã‚’ 無視"
-#: src/elfcmp.c:68
+#: src/elfcmp.c:67
msgid "Output nothing; yield exit status only"
msgstr "何も出力ã—ãªã„。 終了ステータスã®ã¿ã‚’生ã˜ã•ã›ã‚‹"
#. Short description of program.
-#: src/elfcmp.c:75
+#: src/elfcmp.c:74
msgid "Compare relevant parts of two ELF files for equality."
msgstr "ï¼’ã¤ã® ELF ファイル㮠関連ã®ã‚る部分㮠等価性を 比較ã™ã‚‹ã€‚"
#. Strings for arguments in help texts.
-#: src/elfcmp.c:79
+#: src/elfcmp.c:78
msgid "FILE1 FILE2"
msgstr ""
-#: src/elfcmp.c:141
+#: src/elfcmp.c:140
msgid "Invalid number of parameters.\n"
msgstr "ä¸å½“ãªãƒ‘ラメータ数ã§ã™\n"
-#: src/elfcmp.c:172 src/elfcmp.c:177
+#: src/elfcmp.c:171 src/elfcmp.c:176
#, c-format
msgid "cannot get ELF header of '%s': %s"
msgstr "'%s' ã® ELF ヘッダーをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:203
+#: src/elfcmp.c:202
#, c-format
msgid "%s %s diff: ELF header"
msgstr ""
-#: src/elfcmp.c:210 src/elfcmp.c:213
+#: src/elfcmp.c:209 src/elfcmp.c:212
#, c-format
msgid "cannot get section count of '%s': %s"
msgstr "'%s' ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼æ•°ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:218
+#: src/elfcmp.c:217
#, c-format
msgid "%s %s diff: section count"
msgstr ""
-#: src/elfcmp.c:225 src/elfcmp.c:228
+#: src/elfcmp.c:224 src/elfcmp.c:227
#, c-format
msgid "cannot get program header count of '%s': %s"
msgstr "'%s' ã®ãƒ—ログラムヘッダー数をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:233
+#: src/elfcmp.c:232
#, c-format
msgid "%s %s diff: program header count"
msgstr ""
-#: src/elfcmp.c:241 src/elfcmp.c:244
+#: src/elfcmp.c:240 src/elfcmp.c:243
#, c-format
msgid "cannot get hdrstrndx of '%s': %s"
msgstr "'%s' ã® hdrstrndx ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:249
+#: src/elfcmp.c:248
#, c-format
msgid "%s %s diff: shdr string index"
msgstr ""
-#: src/elfcmp.c:307
+#: src/elfcmp.c:306
#, c-format
msgid "%s %s differ: section [%zu], [%zu] name"
msgstr ""
-#: src/elfcmp.c:330
+#: src/elfcmp.c:329
#, c-format
msgid "%s %s differ: section [%zu] '%s' header"
msgstr ""
-#: src/elfcmp.c:338 src/elfcmp.c:344
+#: src/elfcmp.c:337 src/elfcmp.c:343
#, c-format
msgid "cannot get content of section %zu in '%s': %s"
msgstr ""
-#: src/elfcmp.c:353
+#: src/elfcmp.c:352
#, c-format
msgid "symbol table [%zu] in '%s' has zero sh_entsize"
msgstr ""
-#: src/elfcmp.c:365 src/elfcmp.c:371
+#: src/elfcmp.c:364 src/elfcmp.c:370
#, c-format
msgid "cannot get symbol in '%s': %s"
msgstr "'%s' ã®ã‚·ãƒ³ãƒœãƒ«ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:393
+#: src/elfcmp.c:392
#, c-format
msgid "%s %s differ: symbol table [%zu]"
msgstr ""
-#: src/elfcmp.c:396
+#: src/elfcmp.c:395
#, c-format
msgid "%s %s differ: symbol table [%zu,%zu]"
msgstr ""
-#: src/elfcmp.c:443 src/elfcmp.c:513
+#: src/elfcmp.c:442 src/elfcmp.c:512
#, c-format
msgid "%s %s differ: section [%zu] '%s' number of notes"
msgstr ""
-#: src/elfcmp.c:451
+#: src/elfcmp.c:450
#, c-format
msgid "cannot read note section [%zu] '%s' in '%s': %s"
msgstr ""
-#: src/elfcmp.c:462
+#: src/elfcmp.c:461
#, c-format
msgid "%s %s differ: section [%zu] '%s' note name"
msgstr ""
-#: src/elfcmp.c:470
+#: src/elfcmp.c:469
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' type"
msgstr ""
-#: src/elfcmp.c:485
+#: src/elfcmp.c:484
#, c-format
msgid "%s %s differ: build ID length"
msgstr ""
-#: src/elfcmp.c:493
+#: src/elfcmp.c:492
#, c-format
msgid "%s %s differ: build ID content"
msgstr ""
-#: src/elfcmp.c:502
+#: src/elfcmp.c:501
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' content"
msgstr ""
-#: src/elfcmp.c:543
+#: src/elfcmp.c:542
#, c-format
msgid "%s %s differ: section [%zu] '%s' content"
msgstr ""
-#: src/elfcmp.c:547
+#: src/elfcmp.c:546
#, c-format
msgid "%s %s differ: section [%zu,%zu] '%s' content"
msgstr ""
-#: src/elfcmp.c:562
+#: src/elfcmp.c:561
#, c-format
msgid "%s %s differ: unequal amount of important sections"
msgstr ""
-#: src/elfcmp.c:595 src/elfcmp.c:600
+#: src/elfcmp.c:594 src/elfcmp.c:599
#, c-format
msgid "cannot load data of '%s': %s"
msgstr "'%s' ã®ãƒ‡ãƒ¼ã‚¿ã‚’ロードã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:619 src/elfcmp.c:625
+#: src/elfcmp.c:618 src/elfcmp.c:624
#, c-format
msgid "cannot get program header entry %d of '%s': %s"
msgstr ""
-#: src/elfcmp.c:631
+#: src/elfcmp.c:630
#, c-format
msgid "%s %s differ: program header %d"
msgstr ""
-#: src/elfcmp.c:655
+#: src/elfcmp.c:654
#, c-format
msgid "%s %s differ: gap"
msgstr ""
-#: src/elfcmp.c:706
+#: src/elfcmp.c:705
#, c-format
msgid "Invalid value '%s' for --gaps parameter."
msgstr "--gaps パラメータ ã«å¯¾ã™ã‚‹ä¸å½“ãªå€¤ '%s' ã§ã™"
-#: src/elfcmp.c:734 src/findtextrel.c:195 src/nm.c:364 src/ranlib.c:141
-#: src/size.c:272 src/strings.c:185 src/strip.c:1035 src/strip.c:1072
-#: src/unstrip.c:2197 src/unstrip.c:2226
+#: src/elfcmp.c:733 src/findtextrel.c:194 src/nm.c:363 src/ranlib.c:140
+#: src/size.c:271 src/strings.c:184 src/strip.c:1040 src/strip.c:1077
+#: src/unstrip.c:2194 src/unstrip.c:2223
#, c-format
msgid "cannot open '%s'"
msgstr "'%s' ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/elfcmp.c:738 src/findtextrel.c:214 src/ranlib.c:158
+#: src/elfcmp.c:737 src/findtextrel.c:213 src/ranlib.c:157
#, c-format
msgid "cannot create ELF descriptor for '%s': %s"
msgstr "'%s' ã® ELF 記述å­ã‚’作æˆã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:743
+#: src/elfcmp.c:742
#, c-format
msgid "cannot create EBL descriptor for '%s'"
msgstr "'%s' ã® EBL 記述å­ã‚’作æˆã§ãã¾ã›ã‚“"
-#: src/elfcmp.c:761 src/findtextrel.c:385
+#: src/elfcmp.c:760 src/findtextrel.c:384
#, c-format
msgid "cannot get section header of section %zu: %s"
msgstr "セクション %zu ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:771
+#: src/elfcmp.c:770
#, c-format
msgid "cannot get content of section %zu: %s"
msgstr "セクション %zu ã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcmp.c:781 src/elfcmp.c:795
+#: src/elfcmp.c:780 src/elfcmp.c:794
#, c-format
msgid "cannot get relocation: %s"
msgstr "リロケーションをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/elfcompress.c:117 src/strip.c:308 src/unstrip.c:117
+#: src/elfcompress.c:117 src/strip.c:305 src/unstrip.c:116
#, c-format
msgid "-o option specified twice"
msgstr "-o オプション㌠2 回指定ã•ã‚Œã¦ã„ã¾ã™"
@@ -1624,28 +1635,28 @@ msgid "unknown compression type '%s'"
msgstr "ä¸æ˜Žãªåœ§ç¸®ã‚¿ã‚¤ãƒ— '%s'"
#. We need at least one input file.
-#: src/elfcompress.c:145 src/elfcompress.c:1345
+#: src/elfcompress.c:145 src/elfcompress.c:1369
#, c-format
msgid "No input file given"
msgstr "入力ファイルãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
-#: src/elfcompress.c:151 src/elfcompress.c:1350
+#: src/elfcompress.c:151 src/elfcompress.c:1373
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "'-o' ã¨ä¸€ç·’ã®å ´åˆã¯å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¯ 1 ã¤ã—ã‹èªã‚られã¾ã›ã‚“"
-#: src/elfcompress.c:1307
+#: src/elfcompress.c:1331
msgid "Place (de)compressed output into FILE"
msgstr "圧縮(展開)ã—ãŸå‡ºåŠ›ã‚’ FILE ã«ç½®ã"
-#: src/elfcompress.c:1310
+#: src/elfcompress.c:1334
msgid ""
"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)"
msgstr ""
-#: src/elfcompress.c:1313
+#: src/elfcompress.c:1337
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
@@ -1653,41 +1664,41 @@ msgstr ""
"圧縮(展開)ã™ã‚‹ セクションå。 SECTION 㯠拡張 ワイルドカード パターン(デ"
"フォルト㧠'.?(z)debug*')"
-#: src/elfcompress.c:1316
+#: src/elfcompress.c:1340
msgid "Print a message for each section being (de)compressed"
msgstr "圧縮(展開) ã•ã‚Œã¦ã„ã‚‹ å„セクション ã«å¯¾ã™ã‚‹ メッセージを 表示"
-#: src/elfcompress.c:1319
+#: src/elfcompress.c:1343
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
msgstr ""
-#: src/elfcompress.c:1322 src/strip.c:93
+#: src/elfcompress.c:1346 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "å°‘ã—壊れ㟠ELF ファイルをå–り扱ã†ãŸã‚ã«ãƒ«ãƒ¼ãƒ«ã‚’å°‘ã—ç·©å’Œã™ã‚‹"
-#: src/elfcompress.c:1325
+#: src/elfcompress.c:1349
msgid "Be silent when a section cannot be compressed"
msgstr "セクションを圧縮ã§ããªã„ã¨ãã«é™ã‹ã«ã™ã‚‹"
-#: src/elfcompress.c:1335
+#: src/elfcompress.c:1359
msgid "Compress or decompress sections in an ELF file."
msgstr "ELF ファイル㮠セクションを 圧縮 ã¾ãŸã¯ 展開ã™ã‚‹"
-#: src/elflint.c:63
+#: src/elflint.c:62
msgid "Be extremely strict, flag level 2 features."
msgstr "éžå¸¸ã«åŽ³æ ¼ã«ã™ã‚‹ã€‚ フラグレベル 2 機能。"
-#: src/elflint.c:64
+#: src/elflint.c:63
msgid "Do not print anything if successful"
msgstr "æˆåŠŸã—ãŸå ´åˆã¯ä½•ã‚‚表示ã—ãªã„"
-#: src/elflint.c:65
+#: src/elflint.c:64
msgid "Binary is a separate debuginfo file"
msgstr "ãƒã‚¤ãƒŠãƒªãƒ¼ã¯åˆ¥ã® debuginfo ファイルã§ã™"
-#: src/elflint.c:67
+#: src/elflint.c:66
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1696,171 +1707,171 @@ msgstr ""
"ã‚‹"
#. Short description of program.
-#: src/elflint.c:73
+#: src/elflint.c:72
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr "ELF ファイル㌠gABI/psABI 仕様ã¸æº–æ‹ ã—ã¦ã„ã‚‹ã‹ã®åŽ³å¯†ãªãƒã‚§ãƒƒã‚¯ã€‚"
-#: src/elflint.c:154 src/readelf.c:368
+#: src/elflint.c:153 src/readelf.c:391
#, c-format
msgid "cannot open input file '%s'"
msgstr "入力ファイル '%s' ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/elflint.c:161
+#: src/elflint.c:160
#, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "'%s' ã«å¯¾ã™ã‚‹ Elf 記述å­ã‚’生æˆã§ãã¾ã›ã‚“: %s\n"
-#: src/elflint.c:180
+#: src/elflint.c:179
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/elflint.c:184
+#: src/elflint.c:183
msgid "No errors"
msgstr "エラーã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/elflint.c:219 src/readelf.c:577
+#: src/elflint.c:218 src/readelf.c:603
msgid "Missing file name.\n"
msgstr "ファイルåãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/elflint.c:284
+#: src/elflint.c:283
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr "sub-ELF 記述å­ã‚’解放ã—ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n"
#. We cannot do anything.
-#: src/elflint.c:292
+#: src/elflint.c:291
#, c-format
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "ELF ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“ - 最åˆã«èª¤ã£ãŸãƒžã‚¸ãƒƒã‚¯ãƒã‚¤ãƒˆãŒã‚ã‚Šã¾ã™\n"
-#: src/elflint.c:357
+#: src/elflint.c:356
#, c-format
msgid "e_ident[%d] == %d is no known class\n"
msgstr "e_ident[%d] == %d ã¯æ—¢çŸ¥ã®ã‚¯ãƒ©ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:362
+#: src/elflint.c:361
#, c-format
msgid "e_ident[%d] == %d is no known data encoding\n"
msgstr "e_ident[%d] == %d ã¯æ—¢çŸ¥ã®ãƒ‡ãƒ¼ã‚¿ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:366
+#: src/elflint.c:365
#, c-format
msgid "unknown ELF header version number e_ident[%d] == %d\n"
msgstr "ä¸æ˜Žãª ELF ヘッダーãƒãƒ¼ã‚¸ãƒ§ãƒ³æ•° e_ident[%d] == %d\n"
-#: src/elflint.c:374
+#: src/elflint.c:373
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
msgstr "ä¸æ˜Žãª OS ABI e_ident[%d] == '%s'\n"
-#: src/elflint.c:380
+#: src/elflint.c:379
#, c-format
msgid "unsupported ABI version e_ident[%d] == %d\n"
msgstr "ä¸æ˜Žãª ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³ e_ident[%d] == %d\n"
-#: src/elflint.c:385
+#: src/elflint.c:384
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] ãŒã‚¼ãƒ­ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:390
+#: src/elflint.c:389
#, c-format
msgid "unknown object file type %d\n"
msgstr "ä¸æ˜Žãªã‚ªãƒ–ジェクトファイルタイプ %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:396
#, c-format
msgid "unknown machine type %d\n"
msgstr "ä¸æ˜Žãªãƒžã‚·ãƒ³ã‚¿ã‚¤ãƒ— %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:400
#, c-format
msgid "unknown object file version\n"
msgstr "ä¸æ˜Žãªã‚ªãƒ–ジェクトファイルãƒãƒ¼ã‚¸ãƒ§ãƒ³\n"
-#: src/elflint.c:407
+#: src/elflint.c:406
#, c-format
msgid "invalid program header offset\n"
msgstr "ä¸å½“ãªãƒ—ログラムヘッダーオフセット\n"
-#: src/elflint.c:409
+#: src/elflint.c:408
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
"実行ファイル㨠DSO ã¯ãƒ—ログラムヘッダーオフセット㌠0 ã§ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“\n"
-#: src/elflint.c:413
+#: src/elflint.c:412
#, c-format
msgid "invalid number of program header entries\n"
msgstr "プログラムヘッダー項目数ã¨ã—ã¦ä¸å½“ãªæ•°\n"
-#: src/elflint.c:421
+#: src/elflint.c:420
#, c-format
msgid "invalid section header table offset\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ†ãƒ¼ãƒ–ルオフセット\n"
-#: src/elflint.c:424
+#: src/elflint.c:423
#, c-format
msgid "section header table must be present\n"
msgstr "セクションヘッダーテーブルãŒãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:438
+#: src/elflint.c:437
#, c-format
msgid "invalid number of section header table entries\n"
msgstr "セクションヘッダーテーブル項目数ã¨ã—ã¦ä¸å½“ãªæ•°\n"
-#: src/elflint.c:455
+#: src/elflint.c:454
#, c-format
msgid "invalid section header index\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:473
+#: src/elflint.c:472
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr ""
-#: src/elflint.c:487
+#: src/elflint.c:486
#, c-format
msgid "invalid number of program header table entries\n"
msgstr "プログラムヘッダー項目数ã¨ã—ã¦ä¸å½“ãªæ•°\n"
-#: src/elflint.c:504
+#: src/elflint.c:503
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr ""
-#: src/elflint.c:509
+#: src/elflint.c:508
#, c-format
msgid "invalid machine flags: %s\n"
msgstr "ä¸å½“ãªãƒžã‚·ãƒ³ãƒ•ãƒ©ã‚°: %s\n"
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:515 src/elflint.c:532
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr "ä¸å½“㪠ELF ヘッダーサイズ: %hd\n"
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:518 src/elflint.c:535
#, c-format
msgid "invalid program header size: %hd\n"
msgstr "ä¸å½“ãªãƒ—ログラムヘッダーサイズ: %hd\n"
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:521 src/elflint.c:538
#, c-format
msgid "invalid program header position or size\n"
msgstr "ä¸å½“ãªãƒ—ログラムヘッダーä½ç½®ã‹ã‚µã‚¤ã‚º\n"
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:524 src/elflint.c:541
#, c-format
msgid "invalid section header size: %hd\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚µã‚¤ã‚º: %hd\n"
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:527 src/elflint.c:544
#, c-format
msgid "invalid section header position or size\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ä½ç½®ã‹ã‚µã‚¤ã‚º\n"
-#: src/elflint.c:590
+#: src/elflint.c:589
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1869,7 +1880,7 @@ msgstr ""
"セクション [%2d] '%s': SHF_GROUP フラグã®ã‚るセクションã«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ—ã®"
"一部分ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:594
+#: src/elflint.c:593
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
@@ -1877,14 +1888,14 @@ msgstr ""
"セクション [%2d] '%s': セクショングループ [%2zu] '%s' ãŒã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã‚ˆã‚Š"
"å‰ã«ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
-#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106
-#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4458
+#: src/elflint.c:609 src/elflint.c:1497 src/elflint.c:1548 src/elflint.c:1654
+#: src/elflint.c:1990 src/elflint.c:2316 src/elflint.c:2942 src/elflint.c:3105
+#: src/elflint.c:3253 src/elflint.c:3455 src/elflint.c:4464
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:623 src/elflint.c:1662
+#: src/elflint.c:622 src/elflint.c:1661
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1893,7 +1904,7 @@ msgstr ""
"セクション [%2d] '%s': セクション [%2d] '%s' 用ã®æ–‡å­—列テーブルã¨ã—ã¦å‚ç…§ã•ã‚Œ"
"ã¦ã„ã¾ã™ãŒã€ã‚¿ã‚¤ãƒ—㌠SHT_STRTAB ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:646
+#: src/elflint.c:645
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1902,45 +1913,45 @@ msgstr ""
"セクション [%2d] '%s': シンボルテーブル㯠1 個を越ãˆã‚‹æ‹¡å¼µã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚»ã‚¯"
"ションをæŒã¦ã¾ã›ã‚“\n"
-#: src/elflint.c:658
+#: src/elflint.c:657
#, c-format
msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
msgstr "セクション [%2u] '%s': 項目サイズ㌠ElfXX_Sym ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:662
+#: src/elflint.c:661
#, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
"size\n"
msgstr ""
-#: src/elflint.c:671
+#: src/elflint.c:670
#, c-format
msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
msgstr "セクション [%2d] '%s': シンボル %d を得られã¾ã›ã‚“: %s\n"
-#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685
-#: src/elflint.c:688 src/elflint.c:691
+#: src/elflint.c:675 src/elflint.c:678 src/elflint.c:681 src/elflint.c:684
+#: src/elflint.c:687 src/elflint.c:690
#, c-format
msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
msgstr "セクション [%2d] '%s': 0番目ã®é …ç›®ã«ã‚ã‚‹ '%s' ゼロã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:694
+#: src/elflint.c:693
#, c-format
msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
msgstr "セクション [%2d] '%s': 0番目ã®é …目用㮠XINDEX ãŒã‚¼ãƒ­ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:704
+#: src/elflint.c:703
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
msgstr "セクション [%2d] '%s': シンボル %zu を得られã¾ã›ã‚“: %s\n"
-#: src/elflint.c:713
+#: src/elflint.c:712
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr "セクション [%2d] '%s': シンボル %zu: ä¸å½“ãªåå‰ã®å€¤\n"
-#: src/elflint.c:728
+#: src/elflint.c:727
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -1949,7 +1960,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: 大ãã™ãŽã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã ãŒã€æ‹¡"
"張セクションインデックスセクションãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:734
+#: src/elflint.c:733
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -1959,29 +1970,29 @@ msgstr ""
"クス用ã«ä½¿ã‚れる XINDEX\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:745
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n"
msgstr "セクション [%2d] '%s': シンボル %zu: ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:754
+#: src/elflint.c:753
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n"
msgstr "セクション [%2d] '%s': シンボル %zu: ä¸æ˜Žãªã‚¿ã‚¤ãƒ—\n"
-#: src/elflint.c:760
+#: src/elflint.c:759
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n"
msgstr "セクション [%2d] '%s': シンボル %zu: ä¸æ˜Žãªã‚·ãƒ³ãƒœãƒ«ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°\n"
-#: src/elflint.c:765
+#: src/elflint.c:764
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n"
msgstr ""
"セクション [%2d] '%s': シンボル %zu: オブジェクトタイプã¨ç•°ãªã‚‹å›ºæœ‰ã®ã‚·ãƒ³ãƒœ"
"ル\n"
-#: src/elflint.c:773
+#: src/elflint.c:772
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -1990,7 +2001,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: COMMON ã¯ãƒªãƒ­ã‚±ãƒ¼ã‚¿ãƒ–ルファイル内ã®ã¿ã§"
"許ã•ã‚Œã¾ã™\n"
-#: src/elflint.c:777
+#: src/elflint.c:776
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
@@ -1998,7 +2009,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: ローカル㪠COMMON シンボルã¯æ„味ãŒã‚ã‚Šã¾"
"ã›ã‚“\n"
-#: src/elflint.c:781
+#: src/elflint.c:780
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
@@ -2006,12 +2017,12 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: COMMON セクションã®æ©Ÿèƒ½ã¯æ„味ãŒã‚ã‚Šã¾ã›"
"ã‚“\n"
-#: src/elflint.c:832
+#: src/elflint.c:831
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n"
msgstr "セクション [%2d] '%s': シンボル %zu: st_value 境界外\n"
-#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912
+#: src/elflint.c:837 src/elflint.c:862 src/elflint.c:911
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2020,7 +2031,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu ã¯å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' ã¨ã¯å®Œ"
"å…¨ã«ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:847
+#: src/elflint.c:846
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2029,7 +2040,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' 㯠"
"SHF_TLS フラグãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:857 src/elflint.c:905
+#: src/elflint.c:856 src/elflint.c:904
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2038,7 +2049,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: st_value å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] "
"'%s' ã®å¢ƒç•Œå¤–\n"
-#: src/elflint.c:884
+#: src/elflint.c:883
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2047,7 +2058,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目ãŒãªã„ TLS ã‚·"
"ンボル\n"
-#: src/elflint.c:890
+#: src/elflint.c:889
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2056,7 +2067,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目ãŒãªã„ TLS ã‚·"
"ンボル\n"
-#: src/elflint.c:898
+#: src/elflint.c:897
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2065,7 +2076,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' ã®"
"st_value ä¸è¶³\n"
-#: src/elflint.c:925
+#: src/elflint.c:924
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2074,7 +2085,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: sh_info ã«è¨˜è¿°ã•ã‚ŒãŸç¯„囲外ã®ãƒ­ãƒ¼ã‚«ãƒ«ã‚·ãƒ³"
"ボル\n"
-#: src/elflint.c:932
+#: src/elflint.c:931
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2083,12 +2094,12 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: sh_info ã«è¨˜è¿°ã•ã‚ŒãŸç¯„囲外ã®éžãƒ­ãƒ¼ã‚«ãƒ«ã‚·"
"ンボル\n"
-#: src/elflint.c:939
+#: src/elflint.c:938
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n"
msgstr "セクション [%2d] '%s': シンボル %zu: éžãƒ­ãƒ¼ã‚«ãƒ«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚·ãƒ³ãƒœãƒ«\n"
-#: src/elflint.c:989
+#: src/elflint.c:988
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2097,7 +2108,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルãŒé–“é•ã£ãŸã‚»ã‚¯ã‚·ãƒ§ãƒ³ "
"[%2d] ã‚’å‚ç…§ã—ã¦ã„ã¾ã™\n"
-#: src/elflint.c:996
+#: src/elflint.c:995
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2109,7 +2120,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:1012
+#: src/elflint.c:1011
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2118,7 +2129,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボル値 %#<PRIx64> 㯠%s ã®ã‚»"
"クションアドレス %#<PRIx64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1019
+#: src/elflint.c:1018
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2127,7 +2138,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルサイズ %<PRIu64> 㯠%s "
"ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚µã‚¤ã‚º %<PRIu64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1027
+#: src/elflint.c:1026
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2136,7 +2147,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルã¯ã‚ã‚Šã¾ã™ãŒã€.got セク"
"ションãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1042
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2145,7 +2156,7 @@ msgstr ""
"セクション [%2d] '%s': _DYNAMIC_ シンボル値 %#<PRIx64> ã¯å‹•çš„セグメントアドレ"
"ス %#<PRIx64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1049
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2154,7 +2165,7 @@ msgstr ""
"セクション [%2d] '%s': _DYNAMIC シンボルサイズ %<PRIu64> ã¯å‹•çš„セグメントサイ"
"ズ %<PRIu64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1062
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2163,29 +2174,29 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: çœç•¥ä»¥å¤–ã®å¯è¦–性をæŒã£ãŸå‹•çš„シンボルテー"
"ブル中ã®ã‚·ãƒ³ãƒœãƒ«\n"
-#: src/elflint.c:1067
+#: src/elflint.c:1066
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n"
msgstr ""
"セクション [%2d] '%s': シンボル %zu: st_other 中ã«è¨­å®šã•ã‚ŒãŸä¸æ˜Žãªãƒ“ット\n"
-#: src/elflint.c:1105
+#: src/elflint.c:1104
#, fuzzy, c-format
msgid "section [%2d] '%s': cannot get section data.\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:1121
+#: src/elflint.c:1120
#, c-format
msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
msgstr "セクション [%2d] '%s': ã“ã® RELA セクション用ã«ä½¿ã‚れる DT_RELCOUNT\n"
-#: src/elflint.c:1132 src/elflint.c:1185
+#: src/elflint.c:1131 src/elflint.c:1184
#, 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:1157 src/elflint.c:1210
+#: src/elflint.c:1156 src/elflint.c:1209
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2194,7 +2205,7 @@ msgstr ""
"セクション [%2d] '%s': UT_RELOCOUNT ã§æŒ‡å®šã•ã‚ŒãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ %d 後ã®ç›¸å¯¾ãƒªãƒ­"
"ケーション\n"
-#: src/elflint.c:1163 src/elflint.c:1216
+#: src/elflint.c:1162 src/elflint.c:1215
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2203,52 +2214,52 @@ msgstr ""
"セクション [%2d] '%s': インデックス %zu ã§ã®éžç›¸å¯¾ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³; %d 相対リ"
"ロケーションã§æŒ‡å®šã•ã‚ŒãŸ DT_RELCOUNT\n"
-#: src/elflint.c:1175
+#: src/elflint.c:1174
#, c-format
msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
msgstr "セクション [%2d] '%s': ã“ã® REL セクション用ã«ä½¿ã‚れる DT_RELACOUNT\n"
-#: src/elflint.c:1258
+#: src/elflint.c:1257
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:1270
+#: src/elflint.c:1269
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—\n"
-#: src/elflint.c:1278
+#: src/elflint.c:1277
#, c-format
msgid "section [%2d] '%s': sh_info should be zero\n"
msgstr "セクション [%2d] '%s': sh_info ã¯ã‚¼ãƒ­ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:1286
+#: src/elflint.c:1285
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': no relocations for merge-able string sections possible\n"
msgstr ""
"セクション [%2d] '%s': マージã§ãるセクションã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¯ä¸å¯èƒ½ã§ã™\n"
-#: src/elflint.c:1294
+#: src/elflint.c:1293
#, c-format
msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
msgstr ""
"セクション [%2d] '%s': セクション項目サイズ㌠ElfXX_Rela ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1354
+#: src/elflint.c:1353
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
"テキストリロケーションフラグãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€èª­è¾¼ã¿å°‚用セグメントãŒã‚ã‚Š"
"ã¾ã›ã‚“\n"
-#: src/elflint.c:1381
+#: src/elflint.c:1380
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr "セクション [%2d] '%s': リロケーション %zu: ä¸å½“ãªã‚¿ã‚¤ãƒ—\n"
-#: src/elflint.c:1389
+#: src/elflint.c:1388
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2257,13 +2268,13 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ç”¨ã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¿ã‚¤"
"プã¯ä¸å½“ã§ã™\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1396
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
msgstr ""
"セクション [%2d] '%s': リロケーション %zu: ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:1415
+#: src/elflint.c:1414
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2272,12 +2283,12 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: シンボル '_GLOBAL_OFFSET_TABLE_' "
"ã®ã¿ãŒ %s ã¨ä¸€ç·’ã«ä½¿ç”¨ã§ãã¾ã™\n"
-#: src/elflint.c:1432
+#: src/elflint.c:1431
#, c-format
msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
msgstr "セクション [%2d] '%s': リロケーション %zu: オフセット境界外\n"
-#: src/elflint.c:1447
+#: src/elflint.c:1446
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2286,7 +2297,7 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: タイプ %s ã®ã‚·ãƒ³ãƒœãƒ«ã«å¯¾ã™ã‚‹ã‚³ãƒ”ー"
"リロケーション\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1467
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2295,24 +2306,24 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: 読込ã¿å°‚用セクションãŒå¤‰æ›´ã•ã‚Œã¾ã—"
"ãŸãŒã€ãƒ†ã‚­ã‚¹ãƒˆãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ãƒ©ã‚°ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:1483
+#: src/elflint.c:1482
#, c-format
msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
msgstr ""
"セクション [%2d] '%s': リロケーションãŒãƒ­ãƒ¼ãƒ‰ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã¨ãƒ­ãƒ¼ãƒ‰ã•ã‚Œãªã‹ã£ãŸ"
"データã«å¯¾ã—ã¦ã§ã™\n"
-#: src/elflint.c:1523 src/elflint.c:1574
+#: src/elflint.c:1522 src/elflint.c:1573
#, c-format
msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
msgstr ""
-#: src/elflint.c:1650
+#: src/elflint.c:1649
#, c-format
msgid "more than one dynamic section present\n"
msgstr ""
-#: src/elflint.c:1668
+#: src/elflint.c:1667
#, fuzzy, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2321,427 +2332,427 @@ msgstr ""
"セクション [%2d] '%s': セクション [%2d] '%s' 用ã®æ–‡å­—列テーブルã¨ã—ã¦å‚ç…§ã•ã‚Œ"
"ã¦ã„ã¾ã™ãŒã€ã‚¿ã‚¤ãƒ—㌠SHT_STRTAB ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:1676
+#: src/elflint.c:1675
#, c-format
msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
msgstr ""
-#: src/elflint.c:1681 src/elflint.c:1970
+#: src/elflint.c:1680 src/elflint.c:1969
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr ""
-#: src/elflint.c:1691
+#: src/elflint.c:1690
#, c-format
msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
msgstr ""
-#: src/elflint.c:1699
+#: src/elflint.c:1698
#, c-format
msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
msgstr ""
-#: src/elflint.c:1706
+#: src/elflint.c:1705
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr ""
-#: src/elflint.c:1717
+#: src/elflint.c:1716
#, c-format
msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
msgstr ""
-#: src/elflint.c:1727
+#: src/elflint.c:1726
#, c-format
msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
msgstr ""
-#: src/elflint.c:1745
+#: src/elflint.c:1744
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
msgstr ""
-#: src/elflint.c:1758
+#: src/elflint.c:1757
#, 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:1801
+#: src/elflint.c:1800
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
msgstr ""
-#: src/elflint.c:1816
+#: src/elflint.c:1815
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
"[%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:1836 src/elflint.c:1864
+#: src/elflint.c:1835 src/elflint.c:1863
#, c-format
msgid "section [%2d] '%s': contains %s entry but not %s\n"
msgstr ""
-#: src/elflint.c:1848
+#: src/elflint.c:1847
#, c-format
msgid "section [%2d] '%s': mandatory tag %s not present\n"
msgstr ""
-#: src/elflint.c:1857
+#: src/elflint.c:1856
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
msgstr ""
-#: src/elflint.c:1872 src/elflint.c:1879
+#: src/elflint.c:1871 src/elflint.c:1878
#, c-format
msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n"
msgstr ""
-#: src/elflint.c:1889 src/elflint.c:1893
+#: src/elflint.c:1888 src/elflint.c:1892
#, c-format
msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
msgstr ""
-#: src/elflint.c:1899
+#: src/elflint.c:1898
#, c-format
msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
msgstr ""
-#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922
+#: src/elflint.c:1909 src/elflint.c:1913 src/elflint.c:1917 src/elflint.c:1921
#, c-format
msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
msgstr ""
-#: src/elflint.c:1934
+#: src/elflint.c:1933
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
msgstr ""
-#: src/elflint.c:1944
+#: src/elflint.c:1943
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
msgstr ""
-#: src/elflint.c:1948
+#: src/elflint.c:1947
#, fuzzy, c-format
msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:1953
+#: src/elflint.c:1952
#, c-format
msgid "cannot get data for symbol section\n"
msgstr ""
-#: src/elflint.c:1956
+#: src/elflint.c:1955
#, c-format
msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
msgstr ""
-#: src/elflint.c:1965
+#: src/elflint.c:1964
#, c-format
msgid "section [%2d] '%s': extended index table too small for symbol table\n"
msgstr ""
-#: src/elflint.c:1980
+#: src/elflint.c:1979
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
"same symbol table\n"
msgstr ""
-#: src/elflint.c:1998
+#: src/elflint.c:1997
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr ""
-#: src/elflint.c:2010
+#: src/elflint.c:2009
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr ""
-#: src/elflint.c:2015
+#: src/elflint.c:2014
#, c-format
msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
msgstr ""
-#: src/elflint.c:2032 src/elflint.c:2089
+#: src/elflint.c:2031 src/elflint.c:2088
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
msgstr ""
-#: src/elflint.c:2046 src/elflint.c:2103
+#: src/elflint.c:2045 src/elflint.c:2102
#, c-format
msgid "section [%2d] '%s': chain array too large\n"
msgstr ""
-#: src/elflint.c:2060 src/elflint.c:2117
+#: src/elflint.c:2059 src/elflint.c:2116
#, c-format
msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2070
+#: src/elflint.c:2069
#, c-format
msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2127
+#: src/elflint.c:2126
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
-#: src/elflint.c:2140
+#: src/elflint.c:2139
#, fuzzy, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:2152
+#: src/elflint.c:2151
#, 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:2168
+#: src/elflint.c:2167
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
"least %ld)\n"
msgstr ""
-#: src/elflint.c:2177
+#: src/elflint.c:2176
#, c-format
msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
msgstr ""
-#: src/elflint.c:2211
+#: src/elflint.c:2210
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
msgstr ""
-#: src/elflint.c:2232
+#: src/elflint.c:2231
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
"undefined\n"
msgstr ""
-#: src/elflint.c:2245
+#: src/elflint.c:2244
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
msgstr ""
-#: src/elflint.c:2254
+#: src/elflint.c:2253
#, 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:2284
+#: src/elflint.c:2283
#, c-format
msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2289
+#: src/elflint.c:2288
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2295
+#: src/elflint.c:2294
#, c-format
msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
msgstr ""
-#: src/elflint.c:2308
+#: src/elflint.c:2307
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
-#: src/elflint.c:2326
+#: src/elflint.c:2325
#, c-format
msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
msgstr ""
-#: src/elflint.c:2330
+#: src/elflint.c:2329
#, fuzzy, c-format
msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:2340
+#: src/elflint.c:2339
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
msgstr ""
-#: src/elflint.c:2345
+#: src/elflint.c:2344
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr ""
-#: src/elflint.c:2350
+#: src/elflint.c:2349
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
"entries\n"
msgstr ""
-#: src/elflint.c:2399
+#: src/elflint.c:2398
#, c-format
msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n"
msgstr ""
-#: src/elflint.c:2423 src/elflint.c:2488 src/elflint.c:2523
+#: src/elflint.c:2422 src/elflint.c:2487 src/elflint.c:2522
#, fuzzy, c-format
msgid "hash section [%2zu] '%s' does not contain enough data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:2444
+#: src/elflint.c:2443
#, fuzzy, c-format
msgid "hash section [%2zu] '%s' has zero bit mask words\n"
msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536
+#: src/elflint.c:2454 src/elflint.c:2498 src/elflint.c:2535
#, fuzzy, c-format
msgid "hash section [%2zu] '%s' uses too much data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:2470
+#: src/elflint.c:2469
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
"%<PRIu32>, nentries: %<PRIu32>\n"
msgstr ""
-#: src/elflint.c:2557
+#: src/elflint.c:2556
#, fuzzy, c-format
msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—\n"
-#: src/elflint.c:2567 src/elflint.c:2571
+#: src/elflint.c:2566 src/elflint.c:2570
#, c-format
msgid "section [%2zu] '%s': reference to symbol index 0\n"
msgstr ""
-#: src/elflint.c:2578
+#: src/elflint.c:2577
#, 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:2590
+#: src/elflint.c:2589
#, 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:2606
+#: src/elflint.c:2605
#, c-format
msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
msgstr ""
-#: src/elflint.c:2626
+#: src/elflint.c:2625
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
msgstr ""
-#: src/elflint.c:2637
+#: src/elflint.c:2636
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
msgstr ""
-#: src/elflint.c:2642
+#: src/elflint.c:2641
#, c-format
msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
msgstr ""
-#: src/elflint.c:2648
+#: src/elflint.c:2647
#, c-format
msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
msgstr ""
-#: src/elflint.c:2653
+#: src/elflint.c:2652
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr ""
-#: src/elflint.c:2660
+#: src/elflint.c:2659
#, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
msgstr ""
-#: src/elflint.c:2664
+#: src/elflint.c:2663
#, fuzzy, c-format
msgid "section [%2d] '%s': cannot get symbol name for signature\n"
msgstr "セクション [%2d] '%s': シンボル %d を得られã¾ã›ã‚“: %s\n"
-#: src/elflint.c:2669
+#: src/elflint.c:2668
#, fuzzy, c-format
msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:2675
+#: src/elflint.c:2674
#, c-format
msgid "section [%2d] '%s': sh_flags not set correctly\n"
msgstr ""
-#: src/elflint.c:2681
+#: src/elflint.c:2680
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
msgstr ""
-#: src/elflint.c:2690
+#: src/elflint.c:2689
#, c-format
msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
msgstr ""
-#: src/elflint.c:2696
+#: src/elflint.c:2695
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
msgstr ""
-#: src/elflint.c:2704
+#: src/elflint.c:2703
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr ""
-#: src/elflint.c:2708
+#: src/elflint.c:2707
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
msgstr ""
-#: src/elflint.c:2719
+#: src/elflint.c:2718
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr ""
-#: src/elflint.c:2731
+#: src/elflint.c:2730
#, fuzzy, c-format
msgid "section [%2d] '%s': section index %zu out of range\n"
msgstr "セクション [%2d] '%s': リロケーション %zu: オフセット境界外\n"
-#: src/elflint.c:2740
+#: src/elflint.c:2739
#, c-format
msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
msgstr ""
-#: src/elflint.c:2747
+#: src/elflint.c:2746
#, c-format
msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:2753
+#: src/elflint.c:2752
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2750,861 +2761,861 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' 㯠"
"SHF_TLS フラグãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:2760
+#: src/elflint.c:2759
#, c-format
msgid "section [%2d] '%s' is contained in more than one section group\n"
msgstr ""
-#: src/elflint.c:2957
+#: src/elflint.c:2956
#, 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:2969
+#: src/elflint.c:2968
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
"'%s'\n"
msgstr ""
-#: src/elflint.c:2985
+#: src/elflint.c:2984
#, c-format
msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
msgstr ""
-#: src/elflint.c:3001
+#: src/elflint.c:3000
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
msgstr ""
-#: src/elflint.c:3009
+#: src/elflint.c:3008
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
msgstr ""
-#: src/elflint.c:3023
+#: src/elflint.c:3022
#, c-format
msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
msgstr ""
-#: src/elflint.c:3028
+#: src/elflint.c:3027
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
msgstr ""
-#: src/elflint.c:3038
+#: src/elflint.c:3037
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
msgstr ""
-#: src/elflint.c:3091
+#: src/elflint.c:3090
#, c-format
msgid "more than one version reference section present\n"
msgstr ""
-#: src/elflint.c:3099 src/elflint.c:3246
+#: src/elflint.c:3098 src/elflint.c:3245
#, c-format
msgid "section [%2d] '%s': sh_link does not link to string table\n"
msgstr ""
-#: src/elflint.c:3124 src/elflint.c:3300
+#: src/elflint.c:3123 src/elflint.c:3299
#, c-format
msgid "section [%2d] '%s': entry %d has wrong version %d\n"
msgstr ""
-#: src/elflint.c:3131 src/elflint.c:3307
+#: src/elflint.c:3130 src/elflint.c:3306
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
msgstr ""
-#: src/elflint.c:3141
+#: src/elflint.c:3140
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
msgstr ""
-#: src/elflint.c:3149
+#: src/elflint.c:3148
#, c-format
msgid "section [%2d] '%s': entry %d references unknown dependency\n"
msgstr ""
-#: src/elflint.c:3161
+#: src/elflint.c:3160
#, c-format
msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3169
+#: src/elflint.c:3168
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
"reference\n"
msgstr ""
-#: src/elflint.c:3178
+#: src/elflint.c:3177
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
"%#x, expected %#x\n"
msgstr ""
-#: src/elflint.c:3187
+#: src/elflint.c:3186
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
"name '%s'\n"
msgstr ""
-#: src/elflint.c:3198
+#: src/elflint.c:3197
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
msgstr ""
-#: src/elflint.c:3215 src/elflint.c:3391
+#: src/elflint.c:3214 src/elflint.c:3390
#, c-format
msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
msgstr ""
-#: src/elflint.c:3223 src/elflint.c:3399
+#: src/elflint.c:3222 src/elflint.c:3398
#, 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:3238
+#: src/elflint.c:3237
#, c-format
msgid "more than one version definition section present\n"
msgstr ""
-#: src/elflint.c:3285
+#: src/elflint.c:3284
#, c-format
msgid "section [%2d] '%s': more than one BASE definition\n"
msgstr ""
-#: src/elflint.c:3289
+#: src/elflint.c:3288
#, c-format
msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
msgstr ""
-#: src/elflint.c:3295
+#: src/elflint.c:3294
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3322
+#: src/elflint.c:3321
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
msgstr ""
-#: src/elflint.c:3329
+#: src/elflint.c:3328
#, c-format
msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
msgstr ""
-#: src/elflint.c:3337
+#: src/elflint.c:3336
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
msgstr ""
-#: src/elflint.c:3357
+#: src/elflint.c:3356
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3374
+#: src/elflint.c:3373
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3407
+#: src/elflint.c:3406
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr ""
-#: src/elflint.c:3423
+#: src/elflint.c:3422
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr ""
-#: src/elflint.c:3448
+#: src/elflint.c:3447
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr ""
-#: src/elflint.c:3464
+#: src/elflint.c:3463
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr ""
-#: src/elflint.c:3475
+#: src/elflint.c:3474
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
-#: src/elflint.c:3484
+#: src/elflint.c:3483
#, c-format
msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
msgstr ""
-#: src/elflint.c:3496
+#: src/elflint.c:3495
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
msgstr ""
-#: src/elflint.c:3513
+#: src/elflint.c:3512
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
msgstr ""
-#: src/elflint.c:3522
+#: src/elflint.c:3521
#, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
msgstr ""
-#: src/elflint.c:3531
+#: src/elflint.c:3530
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
msgstr ""
-#: src/elflint.c:3546
+#: src/elflint.c:3545
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
msgstr ""
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3556
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
msgstr ""
-#: src/elflint.c:3575
+#: src/elflint.c:3574
#, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
msgstr ""
-#: src/elflint.c:3586
+#: src/elflint.c:3585
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
msgstr ""
-#: src/elflint.c:3599
+#: src/elflint.c:3598
#, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
msgstr ""
-#: src/elflint.c:3603
+#: src/elflint.c:3602
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:3613
+#: src/elflint.c:3612
#, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
msgstr ""
-#: src/elflint.c:3619
+#: src/elflint.c:3618
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
msgstr ""
-#: src/elflint.c:3716
+#: src/elflint.c:3715
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr ""
-#: src/elflint.c:3720
+#: src/elflint.c:3719
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr ""
-#: src/elflint.c:3722
+#: src/elflint.c:3721
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr ""
-#: src/elflint.c:3724
+#: src/elflint.c:3723
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr ""
-#: src/elflint.c:3726
+#: src/elflint.c:3725
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr ""
-#: src/elflint.c:3728
+#: src/elflint.c:3727
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr ""
-#: src/elflint.c:3730
+#: src/elflint.c:3729
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr ""
-#: src/elflint.c:3732
+#: src/elflint.c:3731
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr ""
-#: src/elflint.c:3735
+#: src/elflint.c:3734
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
"value\n"
msgstr ""
-#: src/elflint.c:3739
+#: src/elflint.c:3738
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in shstrndx\n"
msgstr ""
-#: src/elflint.c:3743
+#: src/elflint.c:3742
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in phnum\n"
msgstr ""
-#: src/elflint.c:3761
+#: src/elflint.c:3760
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
msgstr ""
-#: src/elflint.c:3770
+#: src/elflint.c:3769
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr ""
-#: src/elflint.c:3797
+#: src/elflint.c:3796
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3814
+#: src/elflint.c:3813
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3832
+#: src/elflint.c:3831
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
msgstr ""
-#: src/elflint.c:3849
+#: src/elflint.c:3848
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr ""
-#: src/elflint.c:3855 src/elflint.c:3887
+#: src/elflint.c:3854 src/elflint.c:3886
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
msgstr ""
-#: src/elflint.c:3860 src/elflint.c:3892
+#: src/elflint.c:3859 src/elflint.c:3891
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
"segments\n"
msgstr ""
-#: src/elflint.c:3868
+#: src/elflint.c:3867
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
msgstr ""
-#: src/elflint.c:3911
+#: src/elflint.c:3910
#, c-format
msgid "section [%2zu] '%s': size not multiple of entry size\n"
msgstr ""
-#: src/elflint.c:3916
+#: src/elflint.c:3915
#, c-format
msgid "cannot get section header\n"
msgstr ""
-#: src/elflint.c:3926
+#: src/elflint.c:3925
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr ""
-#: src/elflint.c:3946
+#: src/elflint.c:3945
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3956
+#: src/elflint.c:3955
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3964
+#: src/elflint.c:3963
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
-#: src/elflint.c:3974
+#: src/elflint.c:3973
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:3979
+#: src/elflint.c:3978
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:3985
+#: src/elflint.c:3984
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr ""
-#: src/elflint.c:3991
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
-#: src/elflint.c:3996
+#: src/elflint.c:3995
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-#: src/elflint.c:4003
+#: src/elflint.c:4002
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
-#: src/elflint.c:4008
+#: src/elflint.c:4007
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-#: src/elflint.c:4027
+#: src/elflint.c:4026
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
-#: src/elflint.c:4036
+#: src/elflint.c:4035
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr ""
-#: src/elflint.c:4043
+#: src/elflint.c:4042
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr ""
-#: src/elflint.c:4074
+#: src/elflint.c:4073
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
"%d\n"
msgstr ""
-#: src/elflint.c:4084
+#: src/elflint.c:4083
#, 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:4110
+#: src/elflint.c:4109
#, 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:4121
+#: src/elflint.c:4120
#, 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:4132
+#: src/elflint.c:4131
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-#: src/elflint.c:4142
+#: src/elflint.c:4141
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
-#: src/elflint.c:4152
+#: src/elflint.c:4151
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-#: src/elflint.c:4158
+#: src/elflint.c:4157
#, 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:4166
+#: src/elflint.c:4165
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-#: src/elflint.c:4217
+#: src/elflint.c:4216
#, c-format
msgid "more than one version symbol table present\n"
msgstr ""
-#: src/elflint.c:4240
+#: src/elflint.c:4239
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
-#: src/elflint.c:4251
+#: src/elflint.c:4250
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
-#: src/elflint.c:4257
+#: src/elflint.c:4256
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
-#: src/elflint.c:4268
+#: src/elflint.c:4267
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
"exist\n"
msgstr ""
-#: src/elflint.c:4281
+#: src/elflint.c:4280
#, c-format
msgid "duplicate version index %d\n"
msgstr ""
-#: src/elflint.c:4295
+#: src/elflint.c:4294
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
-#: src/elflint.c:4344
+#: src/elflint.c:4343
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:4348
+#: src/elflint.c:4347
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
msgstr ""
-#: src/elflint.c:4397
+#: src/elflint.c:4403
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
"offset %zu\n"
msgstr ""
-#: src/elflint.c:4402
+#: src/elflint.c:4408
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
"'%s' at offset %zu\n"
msgstr ""
-#: src/elflint.c:4421
+#: src/elflint.c:4427
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4441
+#: src/elflint.c:4447
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr ""
-#: src/elflint.c:4444
+#: src/elflint.c:4450
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4465
+#: src/elflint.c:4471
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4472
+#: src/elflint.c:4478
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
-#: src/elflint.c:4475
+#: src/elflint.c:4481
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4493
+#: src/elflint.c:4499
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
msgstr ""
-#: src/elflint.c:4508
+#: src/elflint.c:4514
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr ""
-#: src/elflint.c:4518
+#: src/elflint.c:4524
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:4529
+#: src/elflint.c:4535
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr ""
-#: src/elflint.c:4537
+#: src/elflint.c:4543
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr ""
-#: src/elflint.c:4544
+#: src/elflint.c:4550
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr ""
-#: src/elflint.c:4558
+#: src/elflint.c:4564
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4561
+#: src/elflint.c:4567
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4571
+#: src/elflint.c:4577
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr ""
-#: src/elflint.c:4592
+#: src/elflint.c:4598
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
-#: src/elflint.c:4603
+#: src/elflint.c:4609
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
-#: src/elflint.c:4610
+#: src/elflint.c:4616
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4619 src/elflint.c:4642
+#: src/elflint.c:4625 src/elflint.c:4648
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr ""
-#: src/elflint.c:4648
+#: src/elflint.c:4654
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
-#: src/elflint.c:4675
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4678
+#: src/elflint.c:4684
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4691
+#: src/elflint.c:4697
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr ""
-#: src/elflint.c:4699
+#: src/elflint.c:4705
#, c-format
msgid "call frame search table must be allocated\n"
msgstr ""
-#: src/elflint.c:4702
+#: src/elflint.c:4708
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr ""
-#: src/elflint.c:4706
+#: src/elflint.c:4712
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
-#: src/elflint.c:4709
+#: src/elflint.c:4715
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr ""
-#: src/elflint.c:4714
+#: src/elflint.c:4720
#, c-format
msgid "call frame search table must not be executable\n"
msgstr ""
-#: src/elflint.c:4717
+#: src/elflint.c:4723
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr ""
-#: src/elflint.c:4728
+#: src/elflint.c:4737
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
-#: src/elflint.c:4735
+#: src/elflint.c:4744
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
-#: src/elflint.c:4738
+#: src/elflint.c:4747
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
"alignment\n"
msgstr ""
-#: src/elflint.c:4751
+#: src/elflint.c:4760
#, 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:4785
+#: src/elflint.c:4794
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr ""
-#: src/elflint.c:4797
+#: src/elflint.c:4806
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "æ–°ã—ã„ファイルを生æˆã§ãã¾ã›ã‚“"
-#: src/elflint.c:4818
+#: src/elflint.c:4827
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
-#: src/findtextrel.c:61
+#: src/findtextrel.c:60
msgid "Input Selection:"
msgstr "入力é¸æŠžï¼š"
-#: src/findtextrel.c:62
+#: src/findtextrel.c:61
msgid "Prepend PATH to all file names"
msgstr "å…¨ã¦ã® ファイルåã«å¯¾ã—㦠PATH を先頭㫠付ã‘加ãˆã‚‹"
-#: src/findtextrel.c:64
+#: src/findtextrel.c:63
msgid "Use PATH as root of debuginfo hierarchy"
msgstr "debuginfo 階層㮠ルートã¨ã—㦠PATH を使用ã™ã‚‹"
#. Short description of program.
-#: src/findtextrel.c:71
+#: src/findtextrel.c:70
msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr ""
"FILE (デフォルトã§ã¯ a.out)㮠テキスト リロケーション㮠ソースを 検索ã™ã‚‹"
#. Strings for arguments in help texts.
-#: src/findtextrel.c:75 src/nm.c:108 src/objdump.c:71 src/size.c:80
-#: src/strings.c:87 src/strip.c:101
+#: src/findtextrel.c:74 src/nm.c:107 src/objdump.c:70 src/size.c:79
+#: src/strings.c:86 src/strip.c:100
msgid "[FILE...]"
msgstr ""
-#: src/findtextrel.c:224
+#: src/findtextrel.c:223
#, c-format
msgid "cannot get ELF header '%s': %s"
msgstr "ELF ヘッダー '%s' ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/findtextrel.c:235
+#: src/findtextrel.c:234
#, c-format
msgid "'%s' is not a DSO or PIE"
msgstr "'%s' 㯠DSO ã¾ãŸã¯ PIE ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/findtextrel.c:255
+#: src/findtextrel.c:254
#, c-format
msgid "getting get section header of section %zu: %s"
msgstr ""
-#: src/findtextrel.c:279
+#: src/findtextrel.c:278
#, c-format
msgid "cannot read dynamic section: %s"
msgstr "dynamic セクションを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/findtextrel.c:300
+#: src/findtextrel.c:299
#, c-format
msgid "no text relocations reported in '%s'"
msgstr ""
-#: src/findtextrel.c:311
+#: src/findtextrel.c:310
#, c-format
msgid "while reading ELF file"
msgstr "ELF ファイルã®èª­ã¿è¾¼ã¿ä¸­"
-#: src/findtextrel.c:315
+#: src/findtextrel.c:314
#, c-format
msgid "cannot get program header count: %s"
msgstr "プログラムヘッダー数をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/findtextrel.c:326 src/findtextrel.c:341
+#: src/findtextrel.c:325 src/findtextrel.c:340
#, c-format
msgid "cannot get program header index at offset %zd: %s"
msgstr "オフセット %zd ã«ä½ç½®ã™ã‚‹ãƒ—ログラムヘッダー索引をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/findtextrel.c:397
+#: src/findtextrel.c:396
#, c-format
msgid "cannot get symbol table section %zu in '%s': %s"
msgstr ""
-#: src/findtextrel.c:418 src/findtextrel.c:441
+#: src/findtextrel.c:417 src/findtextrel.c:440
#, c-format
msgid "cannot get relocation at index %d in section %zu in '%s': %s"
msgstr ""
-#: src/findtextrel.c:507
+#: src/findtextrel.c:506
#, c-format
msgid "%s not compiled with -fpic/-fPIC\n"
msgstr "%s 㯠-fpic/-fPIC 付ãã§ã‚³ãƒ³ãƒ‘イルã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/findtextrel.c:561
+#: src/findtextrel.c:560
#, c-format
msgid ""
"the file containing the function '%s' is not compiled with -fpic/-fPIC\n"
msgstr ""
"関数 '%s' ã‚’å«ã‚€ãƒ•ã‚¡ã‚¤ãƒ«ã¯ -fpic/-fPIC 付ãã§ã‚³ãƒ³ãƒ‘イルã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/findtextrel.c:568 src/findtextrel.c:588
+#: src/findtextrel.c:567 src/findtextrel.c:587
#, c-format
msgid ""
"the file containing the function '%s' might not be compiled with -fpic/-"
@@ -3613,7 +3624,7 @@ msgstr ""
"関数 '%s' ã‚’å«ã‚€ãƒ•ã‚¡ã‚¤ãƒ«ã¯ -fpic/-fPIC 付ãã§ã‚³ãƒ³ãƒ‘イルã•ã‚Œã¦ã„ãªã„ã‹ã‚‚ã—ã‚Œã¾"
"ã›ã‚“\n"
-#: src/findtextrel.c:576
+#: src/findtextrel.c:575
#, c-format
msgid ""
"either the file containing the function '%s' or the file containing the "
@@ -3622,7 +3633,7 @@ msgstr ""
"関数 '%s' ã‚’å«ã‚€ãƒ•ã‚¡ã‚¤ãƒ« ã¾ãŸã¯ 関数 '%s' ã‚’å«ã‚€ãƒ•ã‚¡ã‚¤ãƒ«ã¯ -fpic/-fPIC 付ãã§"
"コンパイルã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/findtextrel.c:596
+#: src/findtextrel.c:595
#, c-format
msgid ""
"a relocation modifies memory at offset %llu in a write-protected segment\n"
@@ -3630,43 +3641,43 @@ msgstr ""
"リロケーション㯠書ãè¾¼ã¿ç¦æ­¢ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® オフセット %llu ã«ä½ç½®ã™ã‚‹ãƒ¡ãƒ¢ãƒªã‚’ "
"修正ã—ã¾ã™\n"
-#: src/nm.c:66 src/strip.c:70
+#: src/nm.c:65 src/strip.c:69
msgid "Output selection:"
msgstr "出力é¸æŠžï¼š"
-#: src/nm.c:67
+#: src/nm.c:66
msgid "Display debugger-only symbols"
msgstr "デãƒãƒƒã‚¬å°‚用シンボルを表示"
-#: src/nm.c:68
+#: src/nm.c:67
msgid "Display only defined symbols"
msgstr "定義済ã¿ã‚·ãƒ³ãƒœãƒ«ã®ã¿ã‚’表示"
-#: src/nm.c:71
+#: src/nm.c:70
msgid "Display dynamic symbols instead of normal symbols"
msgstr "通常シンボル㮠代ã‚り㫠動的シンボルを 表示"
-#: src/nm.c:72
+#: src/nm.c:71
msgid "Display only external symbols"
msgstr "外部シンボルã®ã¿ã‚’表示"
-#: src/nm.c:73
+#: src/nm.c:72
msgid "Display only undefined symbols"
msgstr "未定義シンボルã®ã¿ã‚’表示"
-#: src/nm.c:75
+#: src/nm.c:74
msgid "Include index for symbols from archive members"
msgstr "アーカイブメンãƒã‹ã‚‰ã® シンボル㮠索引を å«ã‚ã‚‹"
-#: src/nm.c:77 src/size.c:54
+#: src/nm.c:76 src/size.c:53
msgid "Output format:"
msgstr "出力形å¼ï¼š"
-#: src/nm.c:79
+#: src/nm.c:78
msgid "Print name of the input file before every symbol"
msgstr "å„シンボル㮠å‰ã« 入力ファイルåã‚’ 表示"
-#: src/nm.c:82
+#: src/nm.c:81
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The "
"default is `sysv'"
@@ -3674,73 +3685,73 @@ msgstr ""
"出力形å¼ã¨ã—㦠FORMAT を使ã†ã€‚ FORMAT 㯠`bsd'ã€`sysv'ã€`posix' ã®ã„ãšã‚Œã‹ã€‚"
"デフォルト㯠`sysv'"
-#: src/nm.c:84
+#: src/nm.c:83
msgid "Same as --format=bsd"
msgstr "--format=bsd ã¨åŒã˜"
-#: src/nm.c:85
+#: src/nm.c:84
msgid "Same as --format=posix"
msgstr "--format=posix ã¨åŒã˜"
-#: src/nm.c:86 src/size.c:60
+#: src/nm.c:85 src/size.c:59
msgid "Use RADIX for printing symbol values"
msgstr "シンボル値㮠表示㫠RADIX を使ã†"
-#: src/nm.c:87
+#: src/nm.c:86
msgid "Mark special symbols"
msgstr "特別ãªã‚·ãƒ³ãƒœãƒ«ã«å°ã‚’点ã‘ã‚‹"
-#: src/nm.c:89
+#: src/nm.c:88
msgid "Print size of defined symbols"
msgstr "定義済ã¿ã‚·ãƒ³ãƒœãƒ«ã®ã‚µã‚¤ã‚ºã‚’表示"
-#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:69
+#: src/nm.c:90 src/size.c:67 src/strip.c:74 src/unstrip.c:68
msgid "Output options:"
msgstr "出力オプション:"
-#: src/nm.c:92
+#: src/nm.c:91
msgid "Sort symbols numerically by address"
msgstr "シンボルを アドレスã«ã‚ˆã‚Š 数値的㫠並ã¹æ›¿ãˆã‚‹"
-#: src/nm.c:94
+#: src/nm.c:93
msgid "Do not sort the symbols"
msgstr "シンボルを並ã¹æ›¿ãˆãªã„"
-#: src/nm.c:95
+#: src/nm.c:94
msgid "Reverse the sense of the sort"
msgstr "並ã¹æ›¿ãˆã®æ„味を逆ã«ã™ã‚‹"
-#: src/nm.c:98
+#: src/nm.c:97
msgid "Decode low-level symbol names into source code names"
msgstr "低水準㮠シンボルåã‚’ ソースコード上㮠åå‰ã« デコードã™ã‚‹"
#. Short description of program.
-#: src/nm.c:105
+#: src/nm.c:104
msgid "List symbols from FILEs (a.out by default)."
msgstr "FILE ã®ã‚·ãƒ³ãƒœãƒ«ã‚’一覧表示 (デフォルトã§ã¯a.out)。"
-#: src/nm.c:116 src/objdump.c:79
+#: src/nm.c:115 src/objdump.c:78
msgid "Output formatting"
msgstr "出力形å¼ï¼š"
-#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133
+#: src/nm.c:139 src/objdump.c:102 src/size.c:104 src/strip.c:132
#, fuzzy, c-format
msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: 内部エラー %d (%s-%s): %s"
-#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2767
+#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
+#: src/strip.c:2766
#, c-format
msgid "while closing '%s'"
msgstr "'%s' ã‚’é–‰ã˜ã¦ã„る最中"
-#: src/nm.c:403 src/objdump.c:280 src/strip.c:822
+#: src/nm.c:402 src/objdump.c:279 src/strip.c:827
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: ファイル形å¼ã‚’èªè­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ"
#. Note: 0 is no valid offset.
-#: src/nm.c:443
+#: src/nm.c:442
#, fuzzy
msgid ""
"\n"
@@ -3749,44 +3760,43 @@ msgstr ""
"\n"
"アーカイブ索引:"
-#: src/nm.c:452
+#: src/nm.c:451
#, c-format
msgid "invalid offset %zu for symbol %s"
msgstr "シンボル %2$sã®ä¸æ­£ãªã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$zu "
-#: src/nm.c:457
+#: src/nm.c:456
#, c-format
msgid "%s in %s\n"
msgstr "%2$s ã®ä¸­ã® %1$s\n"
-#: src/nm.c:465
+#: src/nm.c:464
#, c-format
msgid "cannot reset archive offset to beginning"
msgstr "アーカイブã®ã‚ªãƒ•ã‚»ãƒƒãƒˆã‚’最åˆã«ãƒªã‚»ãƒƒãƒˆã§ãã¾ã›ã‚“"
-#: src/nm.c:490 src/objdump.c:328
+#: src/nm.c:489 src/objdump.c:327
#, c-format
msgid "%s%s%s: file format not recognized"
msgstr "%s%s%s: ファイル形å¼ã‚’èªè­˜ã§ãã¾ã›ã‚“"
-#: src/nm.c:704
-#, c-format
+#: src/nm.c:702
msgid "cannot create search tree"
msgstr "検索ツリーを生æˆã§ãã¾ã›ã‚“"
-#: src/nm.c:745 src/nm.c:1238 src/objdump.c:781 src/readelf.c:637
-#: src/readelf.c:1451 src/readelf.c:1602 src/readelf.c:1803 src/readelf.c:2009
-#: src/readelf.c:2199 src/readelf.c:2377 src/readelf.c:2453 src/readelf.c:2719
-#: src/readelf.c:2795 src/readelf.c:2882 src/readelf.c:3478 src/readelf.c:3528
-#: src/readelf.c:3598 src/readelf.c:11409 src/readelf.c:12603
-#: src/readelf.c:12814 src/readelf.c:12883 src/size.c:398 src/size.c:470
-#: src/strip.c:1089
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
+#: src/readelf.c:1471 src/readelf.c:1620 src/readelf.c:1847 src/readelf.c:2084
+#: src/readelf.c:2273 src/readelf.c:2451 src/readelf.c:2526 src/readelf.c:2791
+#: src/readelf.c:2866 src/readelf.c:2952 src/readelf.c:3547 src/readelf.c:3595
+#: src/readelf.c:3664 src/readelf.c:11581 src/readelf.c:12771
+#: src/readelf.c:12981 src/readelf.c:13049 src/size.c:396 src/size.c:467
+#: src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
#. We always print this prolog.
-#: src/nm.c:770
+#: src/nm.c:767
#, c-format
msgid ""
"\n"
@@ -3800,7 +3810,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:773
+#: src/nm.c:770
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -3809,102 +3819,102 @@ msgstr ""
"%*s%-*s %-*s クラス タイプ %-*s %*s セクション\n"
"\n"
-#: src/nm.c:775
+#: src/nm.c:772
msgctxt "sysv"
msgid "Name"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:777
+#: src/nm.c:774
msgctxt "sysv"
msgid "Value"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:779
+#: src/nm.c:776
msgctxt "sysv"
msgid "Size"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:781
+#: src/nm.c:778
msgctxt "sysv"
msgid "Line"
msgstr ""
-#: src/nm.c:1249
+#: src/nm.c:1245
#, fuzzy, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: セクションã®é …ç›®ã®å¤§ãã• `%s' ã¯äºˆæœŸã—ãŸã‚‚ã®ã¨ã¯ç•°ãªã‚Šã¾ã™"
-#: src/nm.c:1254
+#: src/nm.c:1250
#, fuzzy, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: セクション `%s' ã®å¤§ãã•ã¯é …ç›®ã®å¤§ãã•ã®æ•´æ•°å€ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/nm.c:1335
+#: src/nm.c:1330
#, fuzzy, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: セクションã®é …ç›®ã®å¤§ãã• `%s' ã¯äºˆæœŸã—ãŸã‚‚ã®ã¨ã¯ç•°ãªã‚Šã¾ã™"
#. XXX Add machine specific object file types.
-#: src/nm.c:1571
+#: src/nm.c:1566
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: ä¸å½“ãªæ“作"
-#: src/nm.c:1621
+#: src/nm.c:1616
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: シンボルãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/objdump.c:52
+#: src/objdump.c:51
msgid "Mode selection:"
msgstr "モードé¸æŠžï¼š"
-#: src/objdump.c:53
+#: src/objdump.c:52
msgid "Display relocation information."
msgstr "リロケーション 情報㮠表示"
-#: src/objdump.c:55
+#: src/objdump.c:54
msgid "Display the full contents of all sections requested"
msgstr "è¦æ±‚ã•ã‚ŒãŸ å…¨ã¦ã® セクション㮠最大é™ã® 内容を 表示"
-#: src/objdump.c:57
+#: src/objdump.c:56
msgid "Display assembler code of executable sections"
msgstr "実行å¯èƒ½ セクション㮠アセンブラコードを 表示"
-#: src/objdump.c:59
+#: src/objdump.c:58
msgid "Output content selection:"
msgstr "出力内容é¸æŠž:"
-#: src/objdump.c:61
+#: src/objdump.c:60
msgid "Only display information for section NAME."
msgstr "NAME セクションã®æƒ…å ±ã®ã¿ã‚’表示"
#. Short description of program.
-#: src/objdump.c:67
+#: src/objdump.c:66
msgid "Show information from FILEs (a.out by default)."
msgstr "FILE ã‹ã‚‰æƒ…報を表示ã™ã‚‹ (デフォルトã§ã¯ a.out)"
-#: src/objdump.c:218 src/readelf.c:582
+#: src/objdump.c:217 src/readelf.c:608
msgid "No operation specified.\n"
msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n"
-#: src/objdump.c:258 src/objdump.c:270
+#: src/objdump.c:257 src/objdump.c:269
#, c-format
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:363 src/readelf.c:2104 src/readelf.c:2296
+#: src/objdump.c:362 src/readelf.c:2179 src/readelf.c:2370
msgid "INVALID SYMBOL"
msgstr "ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«"
-#: src/objdump.c:378 src/readelf.c:2138 src/readelf.c:2332
+#: src/objdump.c:377 src/readelf.c:2213 src/readelf.c:2406
msgid "INVALID SECTION"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³"
-#: src/objdump.c:498
+#: src/objdump.c:497
#, c-format
msgid ""
"\n"
@@ -3912,103 +3922,101 @@ msgid ""
"%-*s TYPE VALUE\n"
msgstr ""
-#: src/objdump.c:501
+#: src/objdump.c:500
msgid "OFFSET"
msgstr ""
-#: src/objdump.c:566
+#: src/objdump.c:565
#, c-format
msgid "Contents of section %s:\n"
msgstr ""
-#: src/objdump.c:687
-#, c-format
+#: src/objdump.c:686
msgid "cannot disassemble"
msgstr "逆アセンブルã§ãã¾ã›ã‚“"
-#: src/objdump.c:759
-#, c-format
+#: src/objdump.c:757
msgid "cannot create backend for elf file"
msgstr "elf ファイル用ã«ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã‚’作æˆã§ãã¾ã›ã‚“"
#. Short description of program.
-#: src/ranlib.c:63
+#: src/ranlib.c:62
msgid "Generate an index to speed access to archives."
msgstr "アーカイブã¸ã®ã‚¢ã‚¯ã‚»ã‚¹åŠ é€Ÿã®ãŸã‚ã®ç´¢å¼•ç”Ÿæˆ"
#. Strings for arguments in help texts.
-#: src/ranlib.c:66
+#: src/ranlib.c:65
msgid "ARCHIVE"
msgstr ""
-#: src/ranlib.c:102
+#: src/ranlib.c:101
#, c-format
msgid "Archive name required"
msgstr "アーカイブåãŒå¿…è¦ã§ã™"
-#: src/ranlib.c:166
+#: src/ranlib.c:165
#, c-format
msgid "'%s' is no archive"
msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/ranlib.c:201
+#: src/ranlib.c:200
#, c-format
msgid "error while freeing sub-ELF descriptor: %s"
msgstr ""
-#: src/readelf.c:97
+#: src/readelf.c:96
msgid "ELF input selection:"
msgstr "ELF入力é¸æŠžï¼š"
-#: src/readelf.c:99
+#: src/readelf.c:98
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
"ELF 入力データã¨ã—㦠SECTION (デフォルトã§ã¯ .gnu_debugdata) を使用ã™ã‚‹"
-#: src/readelf.c:102
+#: src/readelf.c:101
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
msgstr ""
-#: src/readelf.c:104
+#: src/readelf.c:103
msgid "ELF output selection:"
msgstr "ELF出力é¸æŠžï¼š"
-#: src/readelf.c:106
+#: src/readelf.c:105
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr ""
-#: src/readelf.c:107
+#: src/readelf.c:106
msgid "Display the dynamic segment"
msgstr "動的セグメントを表示"
-#: src/readelf.c:108
+#: src/readelf.c:107
msgid "Display the ELF file header"
msgstr "ELF ファイルヘッダーを表示"
-#: src/readelf.c:110
+#: src/readelf.c:109
msgid "Display histogram of bucket list lengths"
msgstr "ãƒã‚±ãƒƒãƒˆãƒªã‚¹ãƒˆé•·ã®ãƒ’ストグラムを表示"
-#: src/readelf.c:111
+#: src/readelf.c:110
msgid "Display the program headers"
msgstr "プログラムヘッダーを表示"
-#: src/readelf.c:113
+#: src/readelf.c:112
msgid "Display relocations"
msgstr "リロケーションを表示"
-#: src/readelf.c:114
+#: src/readelf.c:113
msgid "Display the section groups"
msgstr "セクショングループを表示"
-#: src/readelf.c:115
+#: src/readelf.c:114
msgid "Display the sections' headers"
msgstr "セクションヘッダーを表示"
-#: src/readelf.c:118
+#: src/readelf.c:117
msgid "Display the symbol table sections"
msgstr "シンボルテーブルセクションを表示"
@@ -4059,180 +4067,184 @@ msgid "Display the symbol index of an archive"
msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ã‚’表示"
#: src/readelf.c:141
+msgid "Use the dynamic segment when possible for displaying info"
+msgstr ""
+
+#: src/readelf.c:143
msgid "Output control:"
msgstr "出力制御:"
-#: src/readelf.c:143
+#: src/readelf.c:145
msgid "Do not find symbol names for addresses in DWARF data"
msgstr "DWARFデータ中ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãŸã‚ã®ã‚·ãƒ³ãƒœãƒ«åを探ã•ãªã„"
-#: src/readelf.c:145
+#: src/readelf.c:147
#, fuzzy
msgid ""
"Display just offsets instead of resolving values to addresses in DWARF data"
msgstr "DWARFデータ中ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãŸã‚ã®ã‚·ãƒ³ãƒœãƒ«åを探ã•ãªã„"
-#: src/readelf.c:147
+#: src/readelf.c:149
msgid "Ignored for compatibility (lines always wide)"
msgstr ""
-#: src/readelf.c:149
+#: src/readelf.c:151
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
msgstr ""
#. Short description of program.
-#: src/readelf.c:154
+#: src/readelf.c:156
msgid "Print information from ELF file in human-readable form."
msgstr "ELF ファイルã‹ã‚‰äººé–“ãŒèª­ã‚ã‚‹å½¢ã§æƒ…報を表示ã™ã‚‹ã€‚"
#. Look up once.
-#: src/readelf.c:350
+#: src/readelf.c:373
msgid "yes"
msgstr "ã¯ã„"
-#: src/readelf.c:351
+#: src/readelf.c:374
msgid "no"
msgstr "ã„ã„ãˆ"
-#: src/readelf.c:550
+#: src/readelf.c:576
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "ä¸æ˜Žãª DWARF デãƒãƒƒã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ `%s'.\n"
-#: src/readelf.c:621 src/readelf.c:732
+#: src/readelf.c:647 src/readelf.c:758
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:628 src/readelf.c:955 src/strip.c:1184
+#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:646 src/readelf.c:1265 src/readelf.c:1475
+#: src/readelf.c:672 src/readelf.c:1287 src/readelf.c:1495
#, c-format
msgid "cannot get section: %s"
msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:655 src/readelf.c:1272 src/readelf.c:1483 src/readelf.c:12834
-#: src/unstrip.c:397 src/unstrip.c:428 src/unstrip.c:491 src/unstrip.c:612
-#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1224
-#: src/unstrip.c:1351 src/unstrip.c:1375 src/unstrip.c:1431 src/unstrip.c:1472
-#: src/unstrip.c:1665 src/unstrip.c:1816 src/unstrip.c:1959 src/unstrip.c:2058
+#: src/readelf.c:681 src/readelf.c:1294 src/readelf.c:1502 src/readelf.c:13001
+#: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610
+#: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222
+#: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470
+#: src/unstrip.c:1662 src/unstrip.c:1813 src/unstrip.c:1956 src/unstrip.c:2055
#, c-format
msgid "cannot get section header: %s"
msgstr "セクションヘッダーをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:663
+#: src/readelf.c:689
#, c-format
msgid "cannot get section name"
msgstr "セクションåã‚’å–å¾—ã§ãã¾ã›ã‚“"
-#: src/readelf.c:672 src/readelf.c:6634 src/readelf.c:10681 src/readelf.c:10783
-#: src/readelf.c:10961
+#: src/readelf.c:698 src/readelf.c:6797 src/readelf.c:10854 src/readelf.c:10956
+#: src/readelf.c:11134
#, c-format
msgid "cannot get %s content: %s"
msgstr "%s ã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:688
+#: src/readelf.c:714
#, c-format
msgid "cannot create temp file '%s'"
msgstr "一時ファイル '%s' を作æˆã§ãã¾ã›ã‚“"
-#: src/readelf.c:697
+#: src/readelf.c:723
#, c-format
msgid "cannot write section data"
msgstr "セクションデータを書ãè¾¼ã¿ã§ãã¾ã›ã‚“"
-#: src/readelf.c:703 src/readelf.c:720 src/readelf.c:749
+#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/readelf.c:710
+#: src/readelf.c:736
#, c-format
msgid "error while rewinding file descriptor"
msgstr "ファイル記述å­ã‚’å·»ã戻ã—ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼"
-#: src/readelf.c:744
+#: src/readelf.c:770
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ãªãã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–索引を表示ã§ãã¾ã›ã‚“"
-#: src/readelf.c:848
+#: src/readelf.c:874
#, c-format
msgid "cannot stat input file"
msgstr "入力ファイルを stat ã§ãã¾ã›ã‚“"
-#: src/readelf.c:850
+#: src/readelf.c:876
#, c-format
msgid "input file is empty"
msgstr "入力ファイルãŒç©ºã§ã™"
-#: src/readelf.c:852
+#: src/readelf.c:878
#, c-format
msgid "failed reading '%s': %s"
msgstr "'%s' ã®èª­è¾¼ã¿ã«å¤±æ•—: %s"
-#: src/readelf.c:881
+#: src/readelf.c:907
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:940
+#: src/readelf.c:966
#, c-format
msgid "cannot read ELF header: %s"
msgstr "ELF ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/readelf.c:948
+#: src/readelf.c:974
#, c-format
msgid "cannot create EBL handle"
msgstr "EBL ãƒãƒ³ãƒ‰ãƒ«ã‚’作æˆã§ãã¾ã›ã‚“"
-#: src/readelf.c:961
+#: src/readelf.c:985
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "プログラムヘッダã®æ•°ã‚’決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:993
+#: src/readelf.c:1017
#, c-format
msgid "cannot read ELF: %s"
msgstr "ELFを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/readelf.c:1054
+#: src/readelf.c:1078
msgid "NONE (None)"
msgstr "ãªã— (ãªã—)"
-#: src/readelf.c:1055
+#: src/readelf.c:1079
msgid "REL (Relocatable file)"
msgstr "REL (リロケータブルファイル)"
-#: src/readelf.c:1056
+#: src/readelf.c:1080
msgid "EXEC (Executable file)"
msgstr "(EXEC (実行ファイル)"
-#: src/readelf.c:1057
+#: src/readelf.c:1081
msgid "DYN (Shared object file)"
msgstr "DYN (共用オブジェクトファイル)"
-#: src/readelf.c:1058
+#: src/readelf.c:1082
msgid "CORE (Core file)"
msgstr "CORE (コアファイル)"
-#: src/readelf.c:1063
+#: src/readelf.c:1087
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS 固有: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1065
+#: src/readelf.c:1089
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "プロセッサー固有: (%x)\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1099
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4240,7 +4252,7 @@ msgstr ""
"ELF ヘッダー:\n"
" マジック: "
-#: src/readelf.c:1079
+#: src/readelf.c:1103
#, c-format
msgid ""
"\n"
@@ -4249,123 +4261,123 @@ msgstr ""
"\n"
" クラス: %s\n"
-#: src/readelf.c:1084
+#: src/readelf.c:1108
#, c-format
msgid " Data: %s\n"
msgstr " データ: %s\n"
-#: src/readelf.c:1090
+#: src/readelf.c:1114
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " 識別ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd %s\n"
-#: src/readelf.c:1092 src/readelf.c:1114
+#: src/readelf.c:1116 src/readelf.c:1138
msgid "(current)"
msgstr "(ç¾åœ¨)"
-#: src/readelf.c:1096
+#: src/readelf.c:1120
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1099
+#: src/readelf.c:1123
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd\n"
-#: src/readelf.c:1102
+#: src/readelf.c:1126
msgid " Type: "
msgstr " タイプ: "
-#: src/readelf.c:1107
+#: src/readelf.c:1131
#, c-format
msgid " Machine: %s\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:1109
+#: src/readelf.c:1133
#, fuzzy, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:1112
+#: src/readelf.c:1136
#, c-format
msgid " Version: %d %s\n"
msgstr " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %d %s\n"
-#: src/readelf.c:1116
+#: src/readelf.c:1140
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:1119
+#: src/readelf.c:1143
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " プログラムヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1120 src/readelf.c:1123
+#: src/readelf.c:1144 src/readelf.c:1147
msgid "(bytes into file)"
msgstr "(ファイルã¸ã®ãƒã‚¤ãƒˆæ•°)"
-#: src/readelf.c:1122
+#: src/readelf.c:1146
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " セクションヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1125
+#: src/readelf.c:1149
#, c-format
msgid " Flags: %s\n"
msgstr " フラグ: %s\n"
-#: src/readelf.c:1128
+#: src/readelf.c:1152
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " ã“ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã®å¤§ãã•: %<PRId16> %s\n"
-#: src/readelf.c:1129 src/readelf.c:1132 src/readelf.c:1149
+#: src/readelf.c:1153 src/readelf.c:1156 src/readelf.c:1173
msgid "(bytes)"
msgstr "(ãƒã‚¤ãƒˆ)"
-#: src/readelf.c:1131
+#: src/readelf.c:1155
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " プログラムヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1134
+#: src/readelf.c:1158
#, fuzzy, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " プログラムヘッダー項目ã®æ•° : %<PRId16>\n"
-#: src/readelf.c:1141
+#: src/readelf.c:1165
#, fuzzy, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1144 src/readelf.c:1161 src/readelf.c:1175
+#: src/readelf.c:1168 src/readelf.c:1185 src/readelf.c:1199
msgid " ([0] not available)"
msgstr "([0]ã¯ä½¿ãˆã¾ã›ã‚“)"
-#: src/readelf.c:1148
+#: src/readelf.c:1172
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " セクションヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1151
+#: src/readelf.c:1175
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " セクションヘッダー項目ã®æ•° : %<PRId16>"
-#: src/readelf.c:1158
+#: src/readelf.c:1182
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " ([0].sh_size ã® %<PRIu32>)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1171
+#: src/readelf.c:1195
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1179
+#: src/readelf.c:1203
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4374,7 +4386,7 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: XINDEX%s\n"
"\n"
-#: src/readelf.c:1183
+#: src/readelf.c:1207
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4383,12 +4395,12 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: %<PRId16>\n"
"\n"
-#: src/readelf.c:1230 src/readelf.c:1440
+#: src/readelf.c:1253 src/readelf.c:1461
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1233
+#: src/readelf.c:1256
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4397,16 +4409,16 @@ msgstr ""
"オフセット %2$#<PRIx64> ã‹ã‚‰å§‹ã¾ã‚‹ %1$d 個ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚ã‚Šã¾ã™:\n"
"\n"
-#: src/readelf.c:1242
+#: src/readelf.c:1264
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
-#: src/readelf.c:1245
+#: src/readelf.c:1267
msgid "Section Headers:"
msgstr "セクションヘッダー:"
-#: src/readelf.c:1248
+#: src/readelf.c:1270
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4414,7 +4426,7 @@ msgstr ""
"[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES フラグLk "
"Inf Al"
-#: src/readelf.c:1250
+#: src/readelf.c:1272
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4422,35 +4434,35 @@ msgstr ""
"[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES "
"フラグLk Inf Al"
-#: src/readelf.c:1255
+#: src/readelf.c:1277
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1257
+#: src/readelf.c:1279
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1335
+#: src/readelf.c:1357
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "セクションヘッダー文字列セクションを生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1346
+#: src/readelf.c:1368
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:1364
+#: src/readelf.c:1386
msgid "Program Headers:"
msgstr "プログラムヘッダー:"
-#: src/readelf.c:1366
+#: src/readelf.c:1388
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" タイプ オフセ 仮アドレス 物アドレス ãƒ•ã‚¡ã‚¤é‡ ãƒ¡ãƒ¢é‡ Flg 調整 "
-#: src/readelf.c:1369
+#: src/readelf.c:1391
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4458,12 +4470,12 @@ msgstr ""
" タイプ オフセ 仮想アドレス 物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ ファイルé‡ãƒ¡ãƒ¢"
"é‡ Flg 調整 "
-#: src/readelf.c:1426
+#: src/readelf.c:1448
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[プログラム割込ã¿ã‚’è¦æ±‚: %s]\n"
-#: src/readelf.c:1453
+#: src/readelf.c:1473
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4473,12 +4485,12 @@ msgstr ""
" セクションã‹ã‚‰ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ãƒžãƒƒãƒ“ング:\n"
" セグメント セクション..."
-#: src/readelf.c:1464 src/unstrip.c:2117 src/unstrip.c:2159 src/unstrip.c:2166
+#: src/readelf.c:1484 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
#, c-format
msgid "cannot get program header: %s"
msgstr "プログラムヘッダーを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:1610
+#: src/readelf.c:1628
#, c-format
msgid ""
"\n"
@@ -4491,7 +4503,7 @@ msgstr[0] ""
"ç½²å '%3$s' ã‚’æŒã¤ COMDAT セクショングループ [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®"
"é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:1615
+#: src/readelf.c:1633
#, c-format
msgid ""
"\n"
@@ -4504,31 +4516,31 @@ msgstr[0] ""
"ç½²å '%3$s' ã‚’æŒã¤ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ— [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …ç›®ãŒã‚"
"ã‚Šã¾ã™:\n"
-#: src/readelf.c:1623
+#: src/readelf.c:1641
msgid "<INVALID SYMBOL>"
msgstr "<ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«>"
-#: src/readelf.c:1637
+#: src/readelf.c:1655
msgid "<INVALID SECTION>"
msgstr "<ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³>"
-#: src/readelf.c:1660 src/readelf.c:2387 src/readelf.c:3494 src/readelf.c:12705
-#: src/readelf.c:12712 src/readelf.c:12756 src/readelf.c:12763
+#: src/readelf.c:1678 src/readelf.c:2461 src/readelf.c:3563 src/readelf.c:12873
+#: src/readelf.c:12880 src/readelf.c:12924 src/readelf.c:12931
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1665 src/readelf.c:2392 src/readelf.c:3499
+#: src/readelf.c:1682 src/readelf.c:2466 src/readelf.c:3567
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:1809 src/readelf.c:2459 src/readelf.c:2725 src/readelf.c:2801
-#: src/readelf.c:3105 src/readelf.c:3179 src/readelf.c:5407
+#: src/readelf.c:1851 src/readelf.c:2532 src/readelf.c:2797 src/readelf.c:2872
+#: src/readelf.c:3175 src/readelf.c:3249 src/readelf.c:5570
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ä¸å½“㪠.debug_line セクション"
-#: src/readelf.c:1812
+#: src/readelf.c:1854
#, c-format
msgid ""
"\n"
@@ -4544,36 +4556,66 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1867
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Dynamic segment contains %lu entry:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+#| msgid_plural ""
+#| "\n"
+#| "Dynamic segment contains %lu entries:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+msgid ""
+"\n"
+"Dynamic segment contains %lu entry:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgid_plural ""
+"\n"
+"Dynamic segment contains %lu entries:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgstr[0] ""
+"\n"
+"動的セグメントã«ã¯ %lu 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
+" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
+"[%2u] '%s'\n"
+
+#: src/readelf.c:1877
msgid " Type Value\n"
msgstr " タイプ 値\n"
-#: src/readelf.c:1846
+#: src/readelf.c:1886
+#, fuzzy
+#| msgid "cannot get string section data: %s"
+msgid "cannot get string table by using dynamic segment"
+msgstr "文字列セクションデータをå–å¾—ã§ãã¾ã›ã‚“: %s"
+
+#: src/readelf.c:1925
#, c-format
msgid "Shared library: [%s]\n"
msgstr "共用ライブラリー: [%s]\n"
-#: src/readelf.c:1851
+#: src/readelf.c:1929
#, c-format
msgid "Library soname: [%s]\n"
msgstr "ライブラリー so å: [%s]\n"
-#: src/readelf.c:1856
+#: src/readelf.c:1933
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "ライブラリー rパス: [%s]\n"
-#: src/readelf.c:1861
+#: src/readelf.c:1937
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "ライブラリー run パス: [%s]\n"
-#: src/readelf.c:1881
+#: src/readelf.c:1956
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (ãƒã‚¤ãƒˆ)\n"
-#: src/readelf.c:1994 src/readelf.c:2184
+#: src/readelf.c:2070 src/readelf.c:2259
#, c-format
msgid ""
"\n"
@@ -4582,7 +4624,7 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:2012 src/readelf.c:2202
+#: src/readelf.c:2087 src/readelf.c:2276
#, c-format
msgid ""
"\n"
@@ -4603,7 +4645,7 @@ msgstr[0] ""
#. The .rela.dyn section does not refer to a specific section but
#. instead of section index zero. Do not try to print a section
#. name.
-#: src/readelf.c:2027 src/readelf.c:2217
+#: src/readelf.c:2102 src/readelf.c:2291
#, c-format
msgid ""
"\n"
@@ -4616,29 +4658,29 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> ã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2u] '%2$s' ã«ã¯ %4$d "
"個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:2037
+#: src/readelf.c:2112
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2039
+#: src/readelf.c:2114
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2092 src/readelf.c:2103 src/readelf.c:2116 src/readelf.c:2137
-#: src/readelf.c:2149 src/readelf.c:2283 src/readelf.c:2295 src/readelf.c:2309
-#: src/readelf.c:2331 src/readelf.c:2344
+#: src/readelf.c:2167 src/readelf.c:2178 src/readelf.c:2191 src/readelf.c:2212
+#: src/readelf.c:2224 src/readelf.c:2357 src/readelf.c:2369 src/readelf.c:2383
+#: src/readelf.c:2405 src/readelf.c:2418
msgid "<INVALID RELOC>"
msgstr "<ä¸å½“ãªRELOC>"
-#: src/readelf.c:2227
+#: src/readelf.c:2301
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2229
+#: src/readelf.c:2303
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2467
+#: src/readelf.c:2540
#, c-format
msgid ""
"\n"
@@ -4650,39 +4692,39 @@ msgstr[0] ""
"\n"
"シンボルテーブル [%2u] '%s' ã«ã¯ %u 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:2472
+#: src/readelf.c:2545
#, 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:2480
+#: src/readelf.c:2553
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2482
+#: src/readelf.c:2555
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2502
+#: src/readelf.c:2575
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
-#: src/readelf.c:2595
+#: src/readelf.c:2668
#, c-format
msgid "bad dynamic symbol"
msgstr "ä¸æ­£ãªå‹•çš„シンボル"
-#: src/readelf.c:2680
+#: src/readelf.c:2753
msgid "none"
msgstr "ãªã—"
-#: src/readelf.c:2697
+#: src/readelf.c:2770
msgid "| <unknown>"
msgstr "| <ä¸æ˜Ž>"
-#: src/readelf.c:2728
+#: src/readelf.c:2800
#, c-format
msgid ""
"\n"
@@ -4698,17 +4740,17 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2749
+#: src/readelf.c:2821
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu ファイル: %s æ•°: %hu\n"
-#: src/readelf.c:2762
+#: src/readelf.c:2834
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: åå‰: %s フラグ: %s ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu\n"
-#: src/readelf.c:2805
+#: src/readelf.c:2876
#, c-format
msgid ""
"\n"
@@ -4724,18 +4766,18 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2833
+#: src/readelf.c:2904
#, 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:2848
+#: src/readelf.c:2919
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: 親 %d: %s\n"
#. Print the header.
-#: src/readelf.c:3109
+#: src/readelf.c:3179
#, c-format
msgid ""
"\n"
@@ -4751,15 +4793,15 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'"
-#: src/readelf.c:3137
+#: src/readelf.c:3207
msgid " 0 *local* "
msgstr " 0 *ローカル* "
-#: src/readelf.c:3142
+#: src/readelf.c:3212
msgid " 1 *global* "
msgstr " 1 *グローãƒãƒ«* "
-#: src/readelf.c:3184
+#: src/readelf.c:3254
#, c-format
msgid ""
"\n"
@@ -4777,22 +4819,22 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:3206
+#: src/readelf.c:3276
#, fuzzy, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " é•·ã• æ•° 全体ã®% 範囲 \n"
-#: src/readelf.c:3208
+#: src/readelf.c:3278
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3215
+#: src/readelf.c:3285
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3228
+#: src/readelf.c:3298
#, fuzzy, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -4801,37 +4843,37 @@ msgstr ""
" テストã®å¹³å‡æ•°: 検索æˆåŠŸ: %f\n"
" 検索失敗: %f\n"
-#: src/readelf.c:3246 src/readelf.c:3310 src/readelf.c:3376
+#: src/readelf.c:3316 src/readelf.c:3380 src/readelf.c:3446
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:3254
+#: src/readelf.c:3324
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3283
+#: src/readelf.c:3353
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3318
+#: src/readelf.c:3388
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3349
+#: src/readelf.c:3419
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3385
+#: src/readelf.c:3455
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3451
+#: src/readelf.c:3521
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4841,7 +4883,7 @@ msgstr ""
" ビットマスクã®å¤§ãã•: %zu ãƒã‚¤ãƒˆ %<PRIuFAST32>%% ビット設定 第2ãƒãƒƒã‚·ãƒ¥ã‚·ãƒ•"
"ト: %u\n"
-#: src/readelf.c:3539
+#: src/readelf.c:3606
#, c-format
msgid ""
"\n"
@@ -4854,7 +4896,7 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> ã®ãƒ©ã‚¤ãƒ–ラリー一覧セクション [%1$2zu] '%2$s' ã«ã¯ "
"%4$d 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:3553
+#: src/readelf.c:3620
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4862,7 +4904,7 @@ msgstr ""
" ライブラリー タイムスタンプ ãƒã‚§ãƒƒã‚¯ã‚µãƒ  ãƒãƒ¼"
"ジョン フラグ"
-#: src/readelf.c:3612
+#: src/readelf.c:3680
#, c-format
msgid ""
"\n"
@@ -4873,102 +4915,101 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ã‚ªãƒ–ジェクト属性セクション "
"[%1$2zu] '%2$s':\n"
-#: src/readelf.c:3629
+#: src/readelf.c:3697
msgid " Owner Size\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:3653
+#: src/readelf.c:3721
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3692
+#: src/readelf.c:3760
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3697
+#: src/readelf.c:3765
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " ファイル: %11<PRIu32>\n"
-#: src/readelf.c:3746
+#: src/readelf.c:3814
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>ã€%s\n"
-#: src/readelf.c:3749
+#: src/readelf.c:3817
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3752
+#: src/readelf.c:3820
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3762
+#: src/readelf.c:3830
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3765
+#: src/readelf.c:3833
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3835
-#, c-format
+#: src/readelf.c:3903
msgid "sprintf failure"
msgstr ""
-#: src/readelf.c:4317
+#: src/readelf.c:4387
msgid "empty block"
msgstr "空ブロック"
-#: src/readelf.c:4320
+#: src/readelf.c:4390
#, c-format
msgid "%zu byte block:"
msgstr "%zu ãƒã‚¤ãƒˆã®ãƒ–ロック:"
-#: src/readelf.c:4798
+#: src/readelf.c:4868
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:4865
+#: src/readelf.c:5028
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:4872
+#: src/readelf.c:5035
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:4879
+#: src/readelf.c:5042
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:4886
+#: src/readelf.c:5049
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:4986
+#: src/readelf.c:5149
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:4994
+#: src/readelf.c:5157
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5097
+#: src/readelf.c:5260
#, c-format
msgid ""
"\n"
@@ -4979,7 +5020,7 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" [ コード]\n"
-#: src/readelf.c:5105
+#: src/readelf.c:5268
#, c-format
msgid ""
"\n"
@@ -4988,20 +5029,20 @@ msgstr ""
"\n"
"オフセット %<PRIu64> ã®ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³:\n"
-#: src/readelf.c:5118
+#: src/readelf.c:5281
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** 略語を読んã§ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:5134
+#: src/readelf.c:5297
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] オフセット: %<PRId64>ã€å­: %sã€ã‚¿ã‚°: %s\n"
-#: src/readelf.c:5167 src/readelf.c:5476 src/readelf.c:5643 src/readelf.c:6028
-#: src/readelf.c:6644 src/readelf.c:8399 src/readelf.c:9145 src/readelf.c:9618
-#: src/readelf.c:9869 src/readelf.c:10035 src/readelf.c:10422
-#: src/readelf.c:10482
+#: src/readelf.c:5330 src/readelf.c:5639 src/readelf.c:5806 src/readelf.c:6191
+#: src/readelf.c:6807 src/readelf.c:8562 src/readelf.c:9308 src/readelf.c:9791
+#: src/readelf.c:10042 src/readelf.c:10208 src/readelf.c:10595
+#: src/readelf.c:10655
#, c-format
msgid ""
"\n"
@@ -5010,52 +5051,52 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:5180
+#: src/readelf.c:5343
#, fuzzy, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
-#: src/readelf.c:5280 src/readelf.c:5304 src/readelf.c:5688 src/readelf.c:9190
+#: src/readelf.c:5443 src/readelf.c:5467 src/readelf.c:5851 src/readelf.c:9353
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5282 src/readelf.c:5319 src/readelf.c:5701 src/readelf.c:9203
+#: src/readelf.c:5445 src/readelf.c:5482 src/readelf.c:5864 src/readelf.c:9366
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5283 src/readelf.c:5328 src/readelf.c:5710 src/readelf.c:9212
+#: src/readelf.c:5446 src/readelf.c:5491 src/readelf.c:5873 src/readelf.c:9375
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5285 src/readelf.c:5338 src/readelf.c:5720 src/readelf.c:9222
+#: src/readelf.c:5448 src/readelf.c:5501 src/readelf.c:5883 src/readelf.c:9385
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5323 src/readelf.c:5705 src/readelf.c:9207 src/readelf.c:10614
+#: src/readelf.c:5486 src/readelf.c:5868 src/readelf.c:9370 src/readelf.c:10787
#, fuzzy, c-format
msgid "Unknown version"
msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-#: src/readelf.c:5333 src/readelf.c:5546 src/readelf.c:5715 src/readelf.c:9217
+#: src/readelf.c:5496 src/readelf.c:5709 src/readelf.c:5878 src/readelf.c:9380
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:5344 src/readelf.c:5557 src/readelf.c:5725 src/readelf.c:9227
+#: src/readelf.c:5507 src/readelf.c:5720 src/readelf.c:5888 src/readelf.c:9390
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5397 src/readelf.c:5471
+#: src/readelf.c:5560 src/readelf.c:5634
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ".debug_aragnes ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5412
+#: src/readelf.c:5575
#, c-format
msgid ""
"\n"
@@ -5068,19 +5109,19 @@ msgstr[0] ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:5443
+#: src/readelf.c:5606
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5608
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
" [%*zu] 開始: %0#*<PRIx64>ã€é•·ã•: %5<PRIu64>ã€CU DIE オフセット: %6<PRId64>\n"
-#: src/readelf.c:5489 src/readelf.c:8426
+#: src/readelf.c:5652 src/readelf.c:8589
#, fuzzy, c-format
msgid ""
"\n"
@@ -5089,152 +5130,152 @@ msgstr ""
"\n"
"オフセット %Zu ã®ãƒ†ãƒ¼ãƒ–ル:\n"
-#: src/readelf.c:5493 src/readelf.c:5669 src/readelf.c:6668 src/readelf.c:8437
-#: src/readelf.c:9171
+#: src/readelf.c:5656 src/readelf.c:5832 src/readelf.c:6831 src/readelf.c:8600
+#: src/readelf.c:9334
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:5509
+#: src/readelf.c:5672
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5521
+#: src/readelf.c:5684
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5525
+#: src/readelf.c:5688
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5536
+#: src/readelf.c:5699
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5542
+#: src/readelf.c:5705
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5553
+#: src/readelf.c:5716
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5608
+#: src/readelf.c:5771
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5652
+#: src/readelf.c:5815
#, fuzzy, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5675 src/readelf.c:9177
+#: src/readelf.c:5838 src/readelf.c:9340
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5730 src/readelf.c:9232
+#: src/readelf.c:5893 src/readelf.c:9395
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5746 src/readelf.c:9248
+#: src/readelf.c:5909 src/readelf.c:9411
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5748 src/readelf.c:9250
+#: src/readelf.c:5911 src/readelf.c:9413
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5754 src/readelf.c:9256
+#: src/readelf.c:5917 src/readelf.c:9419
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5765 src/readelf.c:9267
+#: src/readelf.c:5928 src/readelf.c:9430
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5769 src/readelf.c:9271
+#: src/readelf.c:5932 src/readelf.c:9434
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:5821
+#: src/readelf.c:5984
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:6006 src/readelf.c:9596
+#: src/readelf.c:6169 src/readelf.c:9769
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:6023
+#: src/readelf.c:6186
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6059 src/readelf.c:9651
+#: src/readelf.c:6222 src/readelf.c:9824
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:6061 src/readelf.c:9653
+#: src/readelf.c:6224 src/readelf.c:9826
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:6070 src/readelf.c:9679 src/readelf.c:9705
+#: src/readelf.c:6233 src/readelf.c:9852 src/readelf.c:9878
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6095 src/readelf.c:9789
+#: src/readelf.c:6258 src/readelf.c:9962
#, fuzzy
msgid "base address"
msgstr "アドレスを %s ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:6105 src/readelf.c:9799
+#: src/readelf.c:6268 src/readelf.c:9972
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6365
+#: src/readelf.c:6528
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6622
+#: src/readelf.c:6785
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6640
+#: src/readelf.c:6803
#, c-format
msgid ""
"\n"
@@ -5243,7 +5284,7 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠フレーム情報呼出ã—セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:6690
+#: src/readelf.c:6853
#, c-format
msgid ""
"\n"
@@ -5252,65 +5293,65 @@ msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6791 src/readelf.c:6945
+#: src/readelf.c:6954 src/readelf.c:7108
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ä¸å½“ãªæ‹¡å¤§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰"
-#: src/readelf.c:6806
+#: src/readelf.c:6969
msgid "FDE address encoding: "
msgstr "FDE アドレスエンコード"
-#: src/readelf.c:6812
+#: src/readelf.c:6975
msgid "LSDA pointer encoding: "
msgstr "LSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:6922
+#: src/readelf.c:7085
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:6929
+#: src/readelf.c:7092
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:6966
+#: src/readelf.c:7129
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sLSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼: %#<PRIx64>\n"
-#: src/readelf.c:7051
+#: src/readelf.c:7214
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "属性コードを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7061
+#: src/readelf.c:7224
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "属性様å¼ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7083
+#: src/readelf.c:7246
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "属性値を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7413
+#: src/readelf.c:7576
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«"
-#: src/readelf.c:7417
+#: src/readelf.c:7580
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:7421
+#: src/readelf.c:7584
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7736
+#: src/readelf.c:7899
#, c-format
msgid ""
"\n"
@@ -5321,12 +5362,12 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" [オフセット]\n"
-#: src/readelf.c:7786
+#: src/readelf.c:7949
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7806
+#: src/readelf.c:7969
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5338,7 +5379,7 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:7818
+#: src/readelf.c:7981
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5349,39 +5390,39 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:7828 src/readelf.c:7989
+#: src/readelf.c:7991 src/readelf.c:8152
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:7855
+#: src/readelf.c:8018
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:7884
+#: src/readelf.c:8047
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "DIE オフセットを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7893
+#: src/readelf.c:8056
#, fuzzy, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"セクション '%2$s' 中ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$<PRIu64> ã® DIE ã®ã‚¿ã‚°ã‚’得られã¾ã›ã‚“: "
"%3$s"
-#: src/readelf.c:7929
+#: src/readelf.c:8092
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s\n"
-#: src/readelf.c:7937
+#: src/readelf.c:8100
#, c-format
msgid "cannot get next DIE: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7981
+#: src/readelf.c:8144
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5392,7 +5433,7 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:8033
+#: src/readelf.c:8196
#, fuzzy, c-format
msgid ""
"\n"
@@ -5402,18 +5443,18 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:8365
+#: src/readelf.c:8528
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "ä¸æ˜Žãªæ§˜å¼ %<PRIx64>"
-#: src/readelf.c:8413
+#: src/readelf.c:8576
#, c-format
msgid "cannot get line data section data: %s"
msgstr "ラインデータセクションデータを得られã¾ã›ã‚“: %s"
#. Print what we got so far.
-#: src/readelf.c:8517
+#: src/readelf.c:8680
#, fuzzy, c-format
msgid ""
"\n"
@@ -5443,33 +5484,33 @@ msgstr ""
"\n"
"命令コード:\n"
-#: src/readelf.c:8539
+#: src/readelf.c:8702
#, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr ".debug_line ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’扱ãˆã¾ã›ã‚“: %u\n"
-#: src/readelf.c:8547
+#: src/readelf.c:8710
#, c-format
msgid "cannot handle address size: %u\n"
msgstr "アドレスサイズを扱ãˆã¾ã›ã‚“: %u\n"
-#: src/readelf.c:8555
+#: src/readelf.c:8718
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "セグメントセレクタサイズを扱ãˆã¾ã›ã‚“: %u\n"
-#: src/readelf.c:8565
+#: src/readelf.c:8728
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "セクション [%2$zu] '%3$s' 中ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$tu ã«ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:8580
+#: src/readelf.c:8743
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:8591
+#: src/readelf.c:8754
msgid ""
"\n"
"Directory table:"
@@ -5477,12 +5518,12 @@ msgstr ""
"\n"
"ディレクトリーテーブル:"
-#: src/readelf.c:8597 src/readelf.c:8674
+#: src/readelf.c:8760 src/readelf.c:8837
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8668
+#: src/readelf.c:8831
#, fuzzy
msgid ""
"\n"
@@ -5491,7 +5532,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:8729
+#: src/readelf.c:8892
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5499,7 +5540,7 @@ msgstr ""
"ファイルåテーブル:\n"
" Entry Dir 時刻 大ãã• åå‰"
-#: src/readelf.c:8775
+#: src/readelf.c:8938
#, fuzzy
msgid ""
"\n"
@@ -5508,7 +5549,7 @@ msgstr ""
"\n"
"è¡Œ ç•ªå· æ–‡:"
-#: src/readelf.c:8779
+#: src/readelf.c:8942
msgid ""
"\n"
"Line number statements:"
@@ -5516,129 +5557,129 @@ msgstr ""
"\n"
"è¡Œ ç•ªå· æ–‡:"
-#: src/readelf.c:8794
+#: src/readelf.c:8957
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:8828
+#: src/readelf.c:8991
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8832
+#: src/readelf.c:8995
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:8835
+#: src/readelf.c:8998
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:8853
+#: src/readelf.c:9016
#, c-format
msgid " extended opcode %u: "
msgstr " 拡張命令コード %u: "
-#: src/readelf.c:8858
+#: src/readelf.c:9021
#, fuzzy
msgid " end of sequence"
msgstr "列ã®çµ‚ã‚ã‚Š"
-#: src/readelf.c:8876
+#: src/readelf.c:9039
#, fuzzy, c-format
msgid " set address to "
msgstr "アドレスを %s ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8904
+#: src/readelf.c:9067
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"新ファイルを定義ã™ã‚‹: dir=%uã€mtime=%<PRIu64>ã€é•·ã•h=%<PRIu64>ã€åå‰=%s\n"
-#: src/readelf.c:8918
+#: src/readelf.c:9081
#, fuzzy, c-format
msgid " set discriminator to %u\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:8945
+#: src/readelf.c:9108
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:8969
+#: src/readelf.c:9132
#, fuzzy, c-format
#| msgid "Also show function names"
msgid " set function name %s (0x%x)\n"
msgstr "関数åも表示"
#. Unknown, ignore it.
-#: src/readelf.c:8976
+#: src/readelf.c:9139
msgid " unknown opcode"
msgstr "ä¸æ˜Žãªã‚ªãƒšã‚³ãƒ¼ãƒ‰"
#. Takes no argument.
-#: src/readelf.c:8988
+#: src/readelf.c:9151
msgid " copy"
msgstr "複写"
-#: src/readelf.c:8999
+#: src/readelf.c:9162
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "アドレスを %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:9003 src/readelf.c:9064
+#: src/readelf.c:9166 src/readelf.c:9227
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:9015
+#: src/readelf.c:9178
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr "行を定数 %d ã ã‘進ã‚㦠%<PRId64> ã«ã™ã‚‹\n"
-#: src/readelf.c:9025
+#: src/readelf.c:9188
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:9036
+#: src/readelf.c:9199
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:9043
+#: src/readelf.c:9206
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' ã‚’ %<PRIuFAST8> ã«è¨­å®šã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:9049
+#: src/readelf.c:9212
msgid " set basic block flag"
msgstr "基本ブロックフラグを設定ã™ã‚‹"
-#: src/readelf.c:9060
+#: src/readelf.c:9223
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "アドレスを定数 %u ã ã‘済ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:9080
+#: src/readelf.c:9243
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "アドレスを固定値 %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:9090
+#: src/readelf.c:9253
msgid " set prologue end flag"
msgstr "プロローグ終了フラグを設定ã™ã‚‹"
#. Takes no argument.
-#: src/readelf.c:9095
+#: src/readelf.c:9258
msgid " set epilogue begin flag"
msgstr "エピローグ開始フラグを設定ã™ã‚‹"
-#: src/readelf.c:9105
+#: src/readelf.c:9268
#, fuzzy, c-format
msgid " set isa to %u\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
@@ -5646,103 +5687,103 @@ msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:9114
+#: src/readelf.c:9277
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:9154
+#: src/readelf.c:9317
#, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr ".debug_loclists ã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:9320
+#: src/readelf.c:9483
#, fuzzy, c-format
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:9360
+#: src/readelf.c:9523
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:9613
+#: src/readelf.c:9786
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr ".debug_loc ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9826 src/readelf.c:10870
+#: src/readelf.c:9999 src/readelf.c:11043
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:9881 src/readelf.c:10044
+#: src/readelf.c:10054 src/readelf.c:10217
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "マクロ情報セクションã®ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:9961
+#: src/readelf.c:10134
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:9984
+#: src/readelf.c:10157
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:10085
+#: src/readelf.c:10258
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:10097
+#: src/readelf.c:10270
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10103 src/readelf.c:10990
+#: src/readelf.c:10276 src/readelf.c:11163
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:10110
+#: src/readelf.c:10283
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:10139
+#: src/readelf.c:10312
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10147
+#: src/readelf.c:10320
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10172
+#: src/readelf.c:10345
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:10179
+#: src/readelf.c:10352
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10191
+#: src/readelf.c:10364
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:10206
+#: src/readelf.c:10379
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10407
+#: src/readelf.c:10580
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
@@ -5750,7 +5791,7 @@ msgstr ""
# # "オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
# # " %4$*s 文字列\n" ãŒã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã¯ä½•æ•…? å–ã‚Šæ•¢ãˆãš fuzzy扱ã„
-#: src/readelf.c:10451
+#: src/readelf.c:10624
#, fuzzy, c-format
msgid ""
"\n"
@@ -5762,42 +5803,42 @@ msgstr ""
" %4$*s 文字列\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10456
+#: src/readelf.c:10629
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10466
+#: src/readelf.c:10639
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** 文字列ã®èª­è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10668
#, fuzzy, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr ".degub_ranges ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:10594
+#: src/readelf.c:10767
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10596
+#: src/readelf.c:10769
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10610
+#: src/readelf.c:10783
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10619
+#: src/readelf.c:10792
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10673
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
@@ -5806,7 +5847,7 @@ msgstr ""
"\n"
"呼出ã—フレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10775
+#: src/readelf.c:10948
#, c-format
msgid ""
"\n"
@@ -5815,22 +5856,22 @@ msgstr ""
"\n"
"例外å–扱ã„テーブルセクション [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10798
+#: src/readelf.c:10971
#, c-format
msgid " LPStart encoding: %#x "
msgstr " LPStart コード化: %#x "
-#: src/readelf.c:10810
+#: src/readelf.c:10983
#, c-format
msgid " TType encoding: %#x "
msgstr "TType コード化: %#x "
-#: src/readelf.c:10825
+#: src/readelf.c:10998
#, c-format
msgid " Call site encoding: %#x "
msgstr "呼出ã—サイトコード化: %#x "
-#: src/readelf.c:10838
+#: src/readelf.c:11011
msgid ""
"\n"
" Call site table:"
@@ -5838,7 +5879,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:10852
+#: src/readelf.c:11025
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5851,12 +5892,12 @@ msgstr ""
" 離ç€é™¸å ´: %#<PRIx64>\n"
" 行動: %u\n"
-#: src/readelf.c:10925
+#: src/readelf.c:11098
#, c-format
msgid "invalid TType encoding"
msgstr "ä¸å½“㪠TType コード化"
-#: src/readelf.c:10952
+#: src/readelf.c:11125
#, fuzzy, c-format
msgid ""
"\n"
@@ -5866,37 +5907,37 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11154
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10999
+#: src/readelf.c:11172
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:11006
+#: src/readelf.c:11179
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:11013
+#: src/readelf.c:11186
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:11020
+#: src/readelf.c:11193
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:11027
+#: src/readelf.c:11200
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:11041
+#: src/readelf.c:11214
#, fuzzy, c-format
msgid ""
"\n"
@@ -5906,7 +5947,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11066
+#: src/readelf.c:11239
#, fuzzy, c-format
msgid ""
"\n"
@@ -5916,7 +5957,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11095
+#: src/readelf.c:11268
#, fuzzy, c-format
msgid ""
"\n"
@@ -5926,7 +5967,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11127
+#: src/readelf.c:11300
#, fuzzy, c-format
msgid ""
"\n"
@@ -5935,18 +5976,18 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:11265
+#: src/readelf.c:11438
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "デãƒãƒƒã‚°å†…容記述å­ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:11633 src/readelf.c:12260 src/readelf.c:12371
-#: src/readelf.c:12429
+#: src/readelf.c:11804 src/readelf.c:12431 src/readelf.c:12541
+#: src/readelf.c:12598
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータã®å¤‰æ›ãŒã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:11996
+#: src/readelf.c:12168
#, c-format
msgid ""
"\n"
@@ -5955,21 +5996,21 @@ msgstr ""
"\n"
"%*s... < %u 回ã®ç¹°è¿”ã—> ..."
-#: src/readelf.c:12508
+#: src/readelf.c:12677
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大ãã•ã‚¿ã‚¤ãƒ—\n"
-#: src/readelf.c:12536
+#: src/readelf.c:12705
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12757
#, c-format
msgid "cannot get content of note: %s"
msgstr "ノートセクションã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:12622
+#: src/readelf.c:12790
#, c-format
msgid ""
"\n"
@@ -5979,7 +6020,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2zu] "
"'%2$s':\n"
-#: src/readelf.c:12645
+#: src/readelf.c:12813
#, c-format
msgid ""
"\n"
@@ -5988,7 +6029,7 @@ msgstr ""
"\n"
"オフセット %2$#0<PRIx64> ã® %1$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚°ãƒ¡ãƒ³ãƒˆ:\n"
-#: src/readelf.c:12692
+#: src/readelf.c:12860
#, fuzzy, c-format
msgid ""
"\n"
@@ -5997,12 +6038,12 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12719 src/readelf.c:12770
+#: src/readelf.c:12887 src/readelf.c:12938
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:12724
+#: src/readelf.c:12892
#, fuzzy, c-format
msgid ""
"\n"
@@ -6012,7 +6053,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン"
"プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n"
-#: src/readelf.c:12729
+#: src/readelf.c:12897
#, fuzzy, c-format
msgid ""
"\n"
@@ -6023,7 +6064,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン"
"プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n"
-#: src/readelf.c:12743
+#: src/readelf.c:12911
#, fuzzy, c-format
msgid ""
"\n"
@@ -6032,7 +6073,7 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12775
+#: src/readelf.c:12943
#, fuzzy, c-format
msgid ""
"\n"
@@ -6042,7 +6083,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ"
"イトã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12780
+#: src/readelf.c:12948
#, fuzzy, c-format
msgid ""
"\n"
@@ -6053,7 +6094,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ"
"イトã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12829
+#: src/readelf.c:12996
#, c-format
msgid ""
"\n"
@@ -6062,7 +6103,7 @@ msgstr ""
"\n"
"セクション [%lu] ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:12859
+#: src/readelf.c:13026
#, c-format
msgid ""
"\n"
@@ -6071,12 +6112,12 @@ msgstr ""
"\n"
"セクション '%s' ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:12916
+#: src/readelf.c:13081
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼• '%s' を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:12919
+#: src/readelf.c:13084
#, c-format
msgid ""
"\n"
@@ -6085,7 +6126,7 @@ msgstr ""
"\n"
"アーカイブ '%s' ã«ã¯ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/readelf.c:12923
+#: src/readelf.c:13088
#, c-format
msgid ""
"\n"
@@ -6094,17 +6135,17 @@ msgstr ""
"\n"
"アーカイブ '%s' ã®ç´¢å¼•ã¯ %zu 個ã®é …目をæŒã¡ã¾ã™:\n"
-#: src/readelf.c:12941
+#: src/readelf.c:13106
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "'%2$s' 㮠オフセット %1$zu ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’抽出ã§ãã¾ã›ã‚“: %3$s"
-#: src/readelf.c:12946
+#: src/readelf.c:13111
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "アーカイブメンãƒãƒ¼ '%s' ã«ã¯ä»¥ä¸‹ãŒã‚ã‚Šã¾ã™:\n"
-#: src/size.c:56
+#: src/size.c:55
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default "
"is `bsd'"
@@ -6112,119 +6153,118 @@ msgstr ""
"出力形å¼ã¨ã—㦠FORMAT を使ã£ã¦ãã ã•ã„。 FORMAT 㯠`bsd'〠`sysv' ã®ã©ã¡ã‚‰ã‹"
"ã§ã™ã€‚ デフォルト㯠`bsd'ã§ã™"
-#: src/size.c:58
+#: src/size.c:57
msgid "Same as `--format=sysv'"
msgstr "`--format=sysv' ã¨åŒã˜"
-#: src/size.c:59
+#: src/size.c:58
msgid "Same as `--format=bsd'"
msgstr "`--format=bsd' ã¨åŒã˜"
-#: src/size.c:62
+#: src/size.c:61
msgid "Same as `--radix=10'"
msgstr "`--radix=10' ã¨åŒã˜"
-#: src/size.c:63
+#: src/size.c:62
msgid "Same as `--radix=8'"
msgstr "`--radix=8' ã¨åŒã˜"
-#: src/size.c:64
+#: src/size.c:63
msgid "Same as `--radix=16'"
msgstr "`--radix=16' ã¨åŒã˜"
-#: src/size.c:66
+#: src/size.c:65
msgid "Similar to `--format=sysv' output but in one line"
msgstr "`--format=sysv' ã®å‡ºåŠ›ã¨ ä¼¼ã¦ã„ã¾ã™ãŒã€ 1è¡Œã§ã™"
-#: src/size.c:70
+#: src/size.c:69
msgid "Print size and permission flags for loadable segments"
msgstr "ロードå¯èƒ½ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ ã®å¤§ãã•ã¨ 許å¯ãƒ•ãƒ©ã‚°ã® 表示"
-#: src/size.c:71
+#: src/size.c:70
msgid "Display the total sizes (bsd only)"
msgstr "åˆè¨ˆã®å¤§ãã•ã‚’表示 (bsd ã®ã¿)"
#. Short description of program.
-#: src/size.c:76
+#: src/size.c:75
msgid "List section sizes of FILEs (a.out by default)."
msgstr "FILE ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã® 大ãã•ã® 一覧表示 (デフォルトã§ã¯ a.out)"
-#: src/size.c:240
+#: src/size.c:239
#, c-format
msgid "Invalid format: %s"
msgstr "ä¸å½“ãªå½¢å¼: %s"
-#: src/size.c:251
+#: src/size.c:250
#, c-format
msgid "Invalid radix: %s"
msgstr "ä¸å½“ãªåŸºæ•°: %s"
-#: src/size.c:310
+#: src/size.c:309
#, c-format
msgid "%s: file format not recognized"
msgstr "%s: ファイル形å¼ã‚’èªè­˜ã§ãã¾ã›ã‚“"
-#: src/size.c:328
+#: src/size.c:327
msgctxt "bsd"
msgid "text"
msgstr ""
-#: src/size.c:329
+#: src/size.c:328
msgctxt "bsd"
msgid "data"
msgstr ""
-#: src/size.c:330
+#: src/size.c:329
msgctxt "bsd"
msgid "bss"
msgstr ""
-#: src/size.c:331
+#: src/size.c:330
msgctxt "bsd"
msgid "dec"
msgstr ""
-#: src/size.c:332
+#: src/size.c:331
msgctxt "bsd"
msgid "hex"
msgstr ""
-#: src/size.c:333
+#: src/size.c:332
msgctxt "bsd"
msgid "filename"
msgstr ""
-#: src/size.c:418 src/size.c:560
+#: src/size.c:416 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
-#: src/size.c:420
+#: src/size.c:418
msgctxt "sysv"
msgid "section"
msgstr ""
-#: src/size.c:421
+#: src/size.c:419
msgctxt "sysv"
msgid "size"
msgstr ""
-#: src/size.c:422
+#: src/size.c:420
msgctxt "sysv"
msgid "addr"
msgstr ""
-#: src/size.c:451 src/size.c:454 src/size.c:457
+#: src/size.c:449 src/size.c:452 src/size.c:455
msgctxt "sysv"
msgid "Total"
msgstr ""
-#: src/size.c:482
-#, c-format
+#: src/size.c:479
msgid "cannot get section header"
msgstr "セクションヘッダーをå–å¾—ã§ãã¾ã›ã‚“"
-#: src/size.c:585
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(åˆè¨ˆ)\n"
@@ -6348,19 +6388,19 @@ msgstr ""
msgid "Couldn't show any frames."
msgstr "フレームを表示ã§ãã¾ã›ã‚“"
-#: src/strings.c:65
+#: src/strings.c:64
msgid "Output Selection:"
msgstr "出力é¸æŠžï¼š"
-#: src/strings.c:66
+#: src/strings.c:65
msgid "Scan entire file, not only loaded sections"
msgstr "ロードã•ã‚Œã‚‹ セクションã ã‘ ã§ãªã ファイル全体を スキャンã™ã‚‹"
-#: src/strings.c:68
+#: src/strings.c:67
msgid "Only NUL-terminated sequences of MIN-LEN characters or more are printed"
msgstr "ヌル終端ã•ã‚ŒãŸ MIN-LEN 文字以上㮠シーケンス ã®ã¿ã‚’ 表示"
-#: src/strings.c:69
+#: src/strings.c:68
msgid ""
"Select character size and endianness: s = 7-bit, S = 8-bit, {b,l} = 16-bit, "
"{B,L} = 32-bit"
@@ -6368,85 +6408,81 @@ msgstr ""
"文字サイズ㨠エンディアンを é¸æŠžï¼š s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,"
"L} = 32-bit"
-#: src/strings.c:73
+#: src/strings.c:72
msgid "Print name of the file before each string."
msgstr "å„文字列㮠å‰ã« ファイルåを表示"
-#: src/strings.c:75
+#: src/strings.c:74
msgid "Print location of the string in base 8, 10, or 16 respectively."
msgstr "文字列㮠ä½ç½®ã‚’ 基数 8〠10〠16 㧠å„々表示"
-#: src/strings.c:76
+#: src/strings.c:75
msgid "Alias for --radix=o"
msgstr "--radix=o ã¨åŒã˜"
#. Short description of program.
-#: src/strings.c:83
+#: src/strings.c:82
msgid "Print the strings of printable characters in files."
msgstr "ファイル中ã®è¡¨ç¤ºå¯èƒ½æ–‡å­—ã‹ã‚‰ãªã‚‹æ–‡å­—列を表示ã™ã‚‹ã€‚"
-#: src/strings.c:256 src/strings.c:291
+#: src/strings.c:255 src/strings.c:290
#, c-format
msgid "invalid value '%s' for %s parameter"
msgstr ""
-#: src/strings.c:302
-#, c-format
+#: src/strings.c:300
msgid "invalid minimum length of matched string size"
msgstr ""
-#: src/strings.c:585
-#, c-format
+#: src/strings.c:583
msgid "lseek failed"
msgstr ""
-#: src/strings.c:602 src/strings.c:666
-#, c-format
+#: src/strings.c:600 src/strings.c:664
msgid "re-mmap failed"
msgstr ""
-#: src/strings.c:639
-#, c-format
+#: src/strings.c:637
msgid "mprotect failed"
msgstr ""
-#: src/strings.c:728
+#: src/strings.c:726
#, c-format
msgid "Skipping section %zd '%s' data outside file"
msgstr ""
-#: src/strip.c:71
+#: src/strip.c:70
msgid "Place stripped output into FILE"
msgstr "ストリップã—㟠出力を FILE ã«ç½®ã"
-#: src/strip.c:72
+#: src/strip.c:71
msgid "Extract the removed sections into FILE"
msgstr "抽出ã—㦠å–り除ã„㟠セクションを FILE ã«ç½®ã"
-#: src/strip.c:73
+#: src/strip.c:72
msgid "Embed name FILE instead of -f argument"
msgstr "-f 引数㮠代ã‚ã‚Šã« åå‰ FILE を有効ã«ã™ã‚‹"
-#: src/strip.c:77
+#: src/strip.c:76
msgid "Remove all debugging symbols"
msgstr "デãƒãƒƒã‚°ç”¨ シンボルを 全㦠å–り除ã"
-#: src/strip.c:81
+#: src/strip.c:80
msgid "Remove section headers (not recommended)"
msgstr "セクションヘッダーを å–り除ã (éžæŽ¨å¥¨ï¼‰"
-#: src/strip.c:83
+#: src/strip.c:82
msgid "Copy modified/access timestamps to the output"
msgstr "修正/アクセス タイムスタンプを 出力㸠複製ã™ã‚‹"
-#: src/strip.c:85
+#: src/strip.c:84
msgid ""
"Resolve all trivial relocations between debug sections if the removed "
"sections are placed in a debug file (only relevant for ET_REL files, "
"operation is not reversible, needs -f)"
msgstr ""
-#: src/strip.c:87
+#: src/strip.c:86
msgid ""
"Similar to --reloc-debug-sections, but resolve all trivial relocations "
"between debug sections in place. No other stripping is performed (operation "
@@ -6454,11 +6490,11 @@ msgid ""
"section)"
msgstr ""
-#: src/strip.c:89
+#: src/strip.c:88
msgid "Remove .comment section"
msgstr ".comment セクションをå–り除ã"
-#: src/strip.c:90
+#: src/strip.c:89
msgid ""
"Remove the named section. SECTION is an extended wildcard pattern. May be "
"given more than once. Only non-allocated sections can be removed."
@@ -6467,7 +6503,7 @@ msgstr ""
"ン。 2回以上 与㈠られã¦ã‚‚ よã„。割り当㦠ã•ã‚Œãªã„ セクション ã®ã¿ å–り除ã‘"
"る。"
-#: src/strip.c:91
+#: src/strip.c:90
msgid ""
"Keep the named section. SECTION is an extended wildcard pattern. May be "
"given more than once."
@@ -6476,58 +6512,54 @@ msgstr ""
"ン。 2回以上 与㈠られã¦ã‚‚ よã„。"
#. Short description of program.
-#: src/strip.c:98
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "オブジェクトファイルã‹ã‚‰ã‚·ãƒ³ãƒœãƒ«ã‚’æ¨ã¦åŽ»ã‚‹"
-#: src/strip.c:247
-#, c-format
+#: src/strip.c:245
msgid "--reloc-debug-sections used without -f"
msgstr ""
-#: src/strip.c:253
-#, c-format
+#: src/strip.c:251
msgid ""
"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --"
"remove-section"
msgstr ""
-#: src/strip.c:267
-#, c-format
+#: src/strip.c:265
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "'-o' 㨠'-f' ã¨ä¸€ç·’ã®å ´åˆã¯å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¯ 1 ã¤ã—ã‹èªã‚られã¾ã›ã‚“"
-#: src/strip.c:290
+#: src/strip.c:287
#, c-format
msgid "-f option specified twice"
msgstr "-f オプション㌠2 回指定ã•ã‚Œã¦ã„ã¾ã™"
-#: src/strip.c:299
+#: src/strip.c:296
#, c-format
msgid "-F option specified twice"
msgstr "-F オプション㌠2 回指定ã•ã‚Œã¦ã„ã¾ã™"
-#: src/strip.c:362
+#: src/strip.c:359
#, c-format
msgid "cannot both keep and remove .comment section"
msgstr ".comment セクションをä¿æŒã—ã¤ã¤å–り除ãã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: src/strip.c:481
-#, c-format
+#: src/strip.c:478
msgid "bad relocation"
msgstr ""
-#: src/strip.c:751 src/strip.c:775
+#: src/strip.c:756 src/strip.c:780
#, c-format
msgid "cannot stat input file '%s'"
msgstr "入力ファイル '%s' ã‚’ stat ã§ãã¾ã›ã‚“"
-#: src/strip.c:765
+#: src/strip.c:770
#, c-format
msgid "while opening '%s'"
msgstr "'%s' ã‚’é–‹ã„ã¦ã„ã‚‹é–“"
-#: src/strip.c:803
+#: src/strip.c:808
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr "%s: アーカイブã‹ã‚‰æŠœã出ã—ã¦ã„る時㯠-o ã‚„ -f ã¯ä½¿ãˆã¾ã›ã‚“"
@@ -6538,77 +6570,76 @@ msgstr "%s: アーカイブã‹ã‚‰æŠœã出ã—ã¦ã„る時㯠-o ã‚„ -f ã¯ä½¿ãˆ
#. result = handle_ar (fd, elf, NULL, fname,
#. preserve_dates ? tv : NULL);
#.
-#: src/strip.c:815
+#: src/strip.c:820
#, c-format
msgid "%s: no support for stripping archive"
msgstr "%s: アーカイブã®ã‚¹ãƒˆãƒªãƒƒãƒ—ã«ã¯å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“"
-#: src/strip.c:1052
+#: src/strip.c:1057
#, c-format
msgid "cannot open EBL backend"
msgstr "EBL ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/strip.c:1097
-#, c-format
+#: src/strip.c:1101
msgid "cannot get number of phdrs"
msgstr "phdrs ã®æ•°ã‚’å–å¾—ã§ãã¾ã›ã‚“"
-#: src/strip.c:1111 src/strip.c:1154
+#: src/strip.c:1115 src/strip.c:1158
#, c-format
msgid "cannot create new ehdr for file '%s': %s"
msgstr "ファイル '%s' ã®æ–°ã—ã„ ehdr を作æˆã§ãã¾ã›ã‚“: %s"
-#: src/strip.c:1121 src/strip.c:1164
+#: src/strip.c:1125 src/strip.c:1168
#, c-format
msgid "cannot create new phdr for file '%s': %s"
msgstr "ファイル '%s' ã®æ–°ã—ã„ phdr を作æˆã§ãã¾ã›ã‚“: %s"
-#: src/strip.c:1244
+#: src/strip.c:1248
#, c-format
msgid "illformed file '%s'"
msgstr "ä¸é©æ ¼ãªãƒ•ã‚¡ã‚¤ãƒ« '%s'"
-#: src/strip.c:1254
+#: src/strip.c:1258
#, c-format
msgid "Cannot remove allocated section '%s'"
msgstr "割り当ã¦ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ '%s' ã¯å–り除ã‘ã¾ã›ã‚“"
-#: src/strip.c:1263
+#: src/strip.c:1267
#, c-format
msgid "Cannot both keep and remove section '%s'"
msgstr "セクション '%s' ã‚’ä¿æŒã—ã¤ã¤å–り除ãã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: src/strip.c:1628 src/strip.c:1743
+#: src/strip.c:1631 src/strip.c:1746
#, c-format
msgid "while generating output file: %s"
msgstr "出力ファイルを生æˆã—ã¦ã„ã‚‹é–“: %s"
-#: src/strip.c:1692
+#: src/strip.c:1695
#, c-format
msgid "%s: error while updating ELF header: %s"
msgstr "%s: ELF ヘッダーã®æ›´æ–°ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:1701
+#: src/strip.c:1704
#, c-format
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: shdrstrndx ã®å–得中ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:1709 src/strip.c:2554
+#: src/strip.c:1712 src/strip.c:2553
#, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: shdrstrndx ã®æ›´æ–°ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:1726
+#: src/strip.c:1729
#, c-format
msgid "while preparing output for '%s'"
msgstr "'%s' ã®ãŸã‚ã®å‡ºåŠ›ã‚’準備ã—ã¦ã„ã‚‹é–“"
-#: src/strip.c:1788 src/strip.c:1851
+#: src/strip.c:1790 src/strip.c:1852
#, c-format
msgid "while create section header section: %s"
msgstr "セクションヘッダーセクションを生æˆã—ã¦ã„ã‚‹é–“: %s"
-#: src/strip.c:1797
+#: src/strip.c:1799
#, c-format
msgid "cannot allocate section data: %s"
msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
@@ -6618,459 +6649,454 @@ msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
msgid "while create section header string table: %s"
msgstr "セクションヘッダー文字列テーブルを生æˆä¸­: %s"
-#: src/strip.c:1870
-#, c-format
+#: src/strip.c:1869
msgid "no memory to create section header string table"
msgstr "セクションヘッダー文字列テーブルを作æˆã™ã‚‹ãƒ¡ãƒ¢ãƒªãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/strip.c:2083
+#: src/strip.c:2082
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2470 src/strip.c:2578
+#: src/strip.c:2469 src/strip.c:2577
#, c-format
msgid "while writing '%s': %s"
msgstr "'%s' を書込ã¿ä¸­: %s"
-#: src/strip.c:2481
+#: src/strip.c:2480
#, c-format
msgid "while creating '%s'"
msgstr "'%s' を生æˆä¸­"
-#: src/strip.c:2504
+#: src/strip.c:2503
#, c-format
msgid "while computing checksum for debug information"
msgstr "デãƒãƒƒã‚°æƒ…å ±ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã‚’計算中"
-#: src/strip.c:2545
+#: src/strip.c:2544
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2563
+#: src/strip.c:2562
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: ファイルを読込ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2603 src/strip.c:2623
+#: src/strip.c:2602 src/strip.c:2622
#, c-format
msgid "while writing '%s'"
msgstr "書ãè¾¼ã¿ä¸­ '%s'"
-#: src/strip.c:2660 src/strip.c:2667
+#: src/strip.c:2659 src/strip.c:2666
#, c-format
msgid "error while finishing '%s': %s"
msgstr "'%s' ã®çµ‚了中ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2684 src/strip.c:2760
+#: src/strip.c:2683 src/strip.c:2759
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "'%s' ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨å¤‰æ›´æ—¥ä»˜ã‚’設定ã§ãã¾ã›ã‚“"
-#: src/unstrip.c:66
+#: src/unstrip.c:65
msgid "Match MODULE against file names, not module names"
msgstr "モジュールåã§ã¯ãªã ファイルå㧠MODULE を一致ã•ã›ã‚‹"
-#: src/unstrip.c:67
+#: src/unstrip.c:66
msgid "Silently skip unfindable files"
msgstr "見ã¤ã‹ã‚‰ãªã„ ファイルを é™ã‹ã« スキップ"
-#: src/unstrip.c:70
+#: src/unstrip.c:69
msgid "Place output into FILE"
msgstr "出力を FILE ã«ç½®ã"
-#: src/unstrip.c:72
+#: src/unstrip.c:71
msgid "Create multiple output files under DIRECTORY"
msgstr "複数㮠出力ファイルを DIRECTORY ã®ä¸‹ã« 作æˆ"
-#: src/unstrip.c:73
+#: src/unstrip.c:72
msgid "Use module rather than file names"
msgstr "ファイルåã§ã¯ãªã モジュールåã‚’ 使用"
-#: src/unstrip.c:75
+#: src/unstrip.c:74
msgid "Create output for modules that have no separate debug information"
msgstr "分離ã•ã‚ŒãŸ デãƒãƒƒã‚°æƒ…報を æŒãŸãªã„ モジュール用㫠出力を 作æˆ"
-#: src/unstrip.c:78
+#: src/unstrip.c:77
msgid "Apply relocations to section contents in ET_REL files"
msgstr "ET_REL ファイル㮠セクション内容㫠リロケーションを é©ç”¨"
-#: src/unstrip.c:80
+#: src/unstrip.c:79
msgid "Only list module and file names, build IDs"
msgstr "モジュールå〠ファイルå〠ビルドID㮠リスト表示ã®ã¿"
-#: src/unstrip.c:82
+#: src/unstrip.c:81
msgid "Force combining files even if some ELF headers don't seem to match"
msgstr ""
"ã„ãã¤ã‹ã® ELF ヘッダー ㌠一致ã—ãªã„ よã†ã« 見ãˆãŸ ã¨ã—ã¦ã‚‚ ファイル㮠çµåˆ"
"を 強制"
-#: src/unstrip.c:126
+#: src/unstrip.c:125
#, c-format
msgid "-d option specified twice"
msgstr ""
-#: src/unstrip.c:161
+#: src/unstrip.c:160
#, c-format
msgid "only one of -o or -d allowed"
msgstr ""
-#: src/unstrip.c:170
+#: src/unstrip.c:169
#, c-format
msgid "-n cannot be used with explicit files or -o or -d"
msgstr ""
-#: src/unstrip.c:185
+#: src/unstrip.c:184
#, c-format
msgid "output directory '%s'"
msgstr "出力ディレクトリ '%s'"
-#: src/unstrip.c:194
+#: src/unstrip.c:193
#, c-format
msgid "exactly two file arguments are required"
msgstr "ã¡ã‚‡ã†ã©ï¼’ã¤ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
-#: src/unstrip.c:200
+#: src/unstrip.c:199
#, c-format
msgid "-m, -a, -R, and -i options not allowed with explicit files"
msgstr ""
"明示的ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã™ã‚‹éš›ã¯ -m, -a, -R, -i オプションã¯èªã‚られã¦ã„ã¾ã›ã‚“"
-#: src/unstrip.c:213
+#: src/unstrip.c:212
#, c-format
msgid "-o or -d is required when using implicit files"
msgstr "暗黙的ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã™ã‚‹éš›ã¯ -o ã¾ãŸã¯ -d ãŒå¿…è¦ã§ã™"
-#: src/unstrip.c:236
+#: src/unstrip.c:235
#, c-format
msgid "cannot create ELF header: %s"
msgstr "ELF ヘッダーを作æˆã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:240
+#: src/unstrip.c:239
#, c-format
msgid "cannot get shdrstrndx:%s"
msgstr "shdrstrndx ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:244 src/unstrip.c:2088
+#: src/unstrip.c:243 src/unstrip.c:2085
#, c-format
msgid "cannot get ELF header: %s"
msgstr "ELF ヘッダーをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:254
+#: src/unstrip.c:253
#, c-format
msgid "cannot get new zero section: %s"
msgstr "æ–°ã—ã„ zero セクションをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:257
+#: src/unstrip.c:256
#, c-format
msgid "cannot update new zero section: %s"
msgstr "æ–°ã—ã„ zero セクションを更新ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:261
+#: src/unstrip.c:260
#, c-format
msgid "cannot copy ELF header: %s"
msgstr "ELF ヘッダーを複製ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:265 src/unstrip.c:2106 src/unstrip.c:2149
+#: src/unstrip.c:264 src/unstrip.c:2103 src/unstrip.c:2146
#, c-format
msgid "cannot get number of program headers: %s"
msgstr "プログラムヘッダ数をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:270 src/unstrip.c:2110
+#: src/unstrip.c:269 src/unstrip.c:2107
#, c-format
msgid "cannot create program headers: %s"
msgstr "プログラムヘッダーを作æˆã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:276
+#: src/unstrip.c:275
#, c-format
msgid "cannot copy program header: %s"
msgstr "プログラムヘッダーを複製ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:286
+#: src/unstrip.c:285
#, c-format
msgid "cannot copy section header: %s"
msgstr "セクションヘッダーを複製ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:289 src/unstrip.c:1710
+#: src/unstrip.c:288 src/unstrip.c:1707
#, c-format
msgid "cannot get section data: %s"
msgstr "セクションデータをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:291 src/unstrip.c:1712
+#: src/unstrip.c:290 src/unstrip.c:1709
#, c-format
msgid "cannot copy section data: %s"
msgstr "セクションデータを複製ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:319
+#: src/unstrip.c:318
#, c-format
msgid "cannot create directory '%s'"
msgstr "ディレクトリ '%s' を作æˆã§ãã¾ã›ã‚“"
-#: src/unstrip.c:393 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861
-#: src/unstrip.c:1752
+#: src/unstrip.c:392 src/unstrip.c:657 src/unstrip.c:691 src/unstrip.c:859
+#: src/unstrip.c:1749
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "シンボルテーブル項目をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:409 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696
-#: src/unstrip.c:1773 src/unstrip.c:1968 src/unstrip.c:1992
+#: src/unstrip.c:408 src/unstrip.c:660 src/unstrip.c:681 src/unstrip.c:694
+#: src/unstrip.c:1770 src/unstrip.c:1965 src/unstrip.c:1989
#, c-format
msgid "cannot update symbol table: %s"
msgstr "シンボルテーブルを更新ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:419
+#: src/unstrip.c:418
#, c-format
msgid "cannot update section header: %s"
msgstr "セクションヘッダーを更新ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:465
+#: src/unstrip.c:464
#, c-format
msgid "gelf_getrel failed: %s"
msgstr ""
-#: src/unstrip.c:468 src/unstrip.c:483
+#: src/unstrip.c:467 src/unstrip.c:482
#, c-format
msgid "cannot update relocation: %s"
msgstr "リロケーションを更新ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:480
+#: src/unstrip.c:479
#, c-format
msgid "gelf_getrela failed: %s"
msgstr ""
-#: src/unstrip.c:582
+#: src/unstrip.c:580
#, c-format
msgid "cannot get symbol version: %s"
msgstr "シンボルãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:595
+#: src/unstrip.c:593
#, c-format
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr ""
-#: src/unstrip.c:850
+#: src/unstrip.c:848
#, c-format
msgid "cannot get symbol section data: %s"
msgstr "シンボルセクションデータをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:852
+#: src/unstrip.c:850
#, c-format
msgid "cannot get string section data: %s"
msgstr "文字列セクションデータをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:869
+#: src/unstrip.c:867
#, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "シンボル [%zu] ã®ä¸­ã«ä¸å½“ãªæ–‡å­—列オフセットãŒã‚ã‚Šã¾ã™"
-#: src/unstrip.c:1027 src/unstrip.c:1435
+#: src/unstrip.c:1025 src/unstrip.c:1433
#, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "セクション [%zu] ã®åå‰ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/unstrip.c:1042
+#: src/unstrip.c:1040
#, c-format
msgid "bad sh_link for group section: %s"
msgstr "グループセクションã«å¯¾ã™ã‚‹èª¤ã£ãŸ sh_link ã§ã™: %s"
-#: src/unstrip.c:1048
+#: src/unstrip.c:1046
#, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "グループセクションã«å¯¾ã™ã‚‹ shdr ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s"
-#: src/unstrip.c:1053
+#: src/unstrip.c:1051
#, c-format
msgid "bad data for group symbol section: %s"
msgstr "グループシンボルセクションã«å¯¾ã™ã‚‹èª¤ã£ãŸãƒ‡ãƒ¼ã‚¿ã§ã™: %s"
-#: src/unstrip.c:1059
+#: src/unstrip.c:1057
#, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "グループセクションã«å¯¾ã™ã‚‹ã‚·ãƒ³ãƒœãƒ«ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s"
-#: src/unstrip.c:1064
+#: src/unstrip.c:1062
#, c-format
msgid "bad symbol name for group section: %s"
msgstr "グループセクションã«å¯¾ã™ã‚‹èª¤ã£ãŸã‚·ãƒ³ãƒœãƒ«åã§ã™: %s"
-#: src/unstrip.c:1075 src/unstrip.c:1556
+#: src/unstrip.c:1073 src/unstrip.c:1553
#, fuzzy, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/unstrip.c:1120 src/unstrip.c:1139 src/unstrip.c:1177
+#: src/unstrip.c:1118 src/unstrip.c:1137 src/unstrip.c:1175
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr ""
-#: src/unstrip.c:1157
+#: src/unstrip.c:1155
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr ""
-#: src/unstrip.c:1168
+#: src/unstrip.c:1166
#, c-format
msgid "invalid contents in '%s' section"
msgstr ""
-#: src/unstrip.c:1339 src/unstrip.c:1355 src/unstrip.c:1636 src/unstrip.c:1927
+#: src/unstrip.c:1337 src/unstrip.c:1353 src/unstrip.c:1633 src/unstrip.c:1924
#, c-format
msgid "cannot add section name to string table: %s"
msgstr ""
-#: src/unstrip.c:1364
+#: src/unstrip.c:1362
#, c-format
msgid "cannot update section header string table data: %s"
msgstr ""
-#: src/unstrip.c:1393 src/unstrip.c:1397
+#: src/unstrip.c:1391 src/unstrip.c:1395
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
-#: src/unstrip.c:1401 src/unstrip.c:1405 src/unstrip.c:1651
+#: src/unstrip.c:1399 src/unstrip.c:1403 src/unstrip.c:1648
#, c-format
msgid "cannot get section count: %s"
msgstr ""
-#: src/unstrip.c:1408
-#, c-format
+#: src/unstrip.c:1406
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
-#: src/unstrip.c:1412
-#, c-format
+#: src/unstrip.c:1410
msgid "no sections in stripped file"
msgstr ""
-#: src/unstrip.c:1460 src/unstrip.c:1571
+#: src/unstrip.c:1458 src/unstrip.c:1568
#, c-format
msgid "cannot read section header string table: %s"
msgstr ""
-#: src/unstrip.c:1630
+#: src/unstrip.c:1627
#, c-format
msgid "cannot add new section: %s"
msgstr ""
-#: src/unstrip.c:1760
+#: src/unstrip.c:1757
#, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "シンボル [%zu] ãŒä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼•ã‚’æŒã£ã¦ã„ã¾ã™"
-#: src/unstrip.c:1792
+#: src/unstrip.c:1789
#, c-format
msgid "group has invalid section index [%zd]"
msgstr "グループãŒä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ç´¢å¼• [%zd] ã‚’æŒã£ã¦ã„ã¾ã™"
-#: src/unstrip.c:2067
+#: src/unstrip.c:2064
#, c-format
msgid "cannot read section data: %s"
msgstr "セクションデータを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/unstrip.c:2096
+#: src/unstrip.c:2093
#, c-format
msgid "cannot update ELF header: %s"
msgstr "ELF ヘッダーを更新ã§ãã¾ã›ã‚“: %s"
-#: src/unstrip.c:2120
+#: src/unstrip.c:2117
#, c-format
msgid "cannot update program header: %s"
msgstr ""
-#: src/unstrip.c:2125 src/unstrip.c:2208
+#: src/unstrip.c:2122 src/unstrip.c:2205
#, c-format
msgid "cannot write output file: %s"
msgstr ""
-#: src/unstrip.c:2176
+#: src/unstrip.c:2173
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2179
+#: src/unstrip.c:2176
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
msgstr ""
-#: src/unstrip.c:2199 src/unstrip.c:2251 src/unstrip.c:2263 src/unstrip.c:2353
+#: src/unstrip.c:2196 src/unstrip.c:2248 src/unstrip.c:2260 src/unstrip.c:2350
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr ""
-#: src/unstrip.c:2237
+#: src/unstrip.c:2234
msgid "WARNING: "
msgstr ""
-#: src/unstrip.c:2239
+#: src/unstrip.c:2236
msgid ", use --force"
msgstr ""
-#: src/unstrip.c:2267
+#: src/unstrip.c:2264
msgid "ELF header identification (e_ident) different"
msgstr ""
-#: src/unstrip.c:2271
+#: src/unstrip.c:2268
msgid "ELF header type (e_type) different"
msgstr ""
-#: src/unstrip.c:2275
+#: src/unstrip.c:2272
msgid "ELF header machine type (e_machine) different"
msgstr ""
-#: src/unstrip.c:2279
+#: src/unstrip.c:2276
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr ""
-#: src/unstrip.c:2310
+#: src/unstrip.c:2307
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2314
+#: src/unstrip.c:2311
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2329
+#: src/unstrip.c:2326
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2333
+#: src/unstrip.c:2330
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2346
+#: src/unstrip.c:2343
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr ""
-#: src/unstrip.c:2377
+#: src/unstrip.c:2374
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr ""
-#: src/unstrip.c:2505
-#, c-format
+#: src/unstrip.c:2502
msgid "no matching modules found"
msgstr ""
-#: src/unstrip.c:2515
-#, c-format
+#: src/unstrip.c:2512
msgid "matched more than one module"
msgstr ""
-#: src/unstrip.c:2560
+#: src/unstrip.c:2557
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
msgstr ""
-#: src/unstrip.c:2561
+#: src/unstrip.c:2558
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
@@ -7112,6 +7138,8 @@ msgid ""
"executable PATH\n"
"source BUILDID /FILENAME\n"
"source PATH /FILENAME\n"
+"section BUILDID SECTION-NAME\n"
+"section PATH SECTION-NAME\n"
msgstr ""
#: tests/backtrace.c:483
diff --git a/po/pl.po b/po/pl.po
index f50b9f8a..b32ecc21 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2021-11-10 16:21+0100\n"
+"POT-Creation-Date: 2022-11-02 13:30+0100\n"
"PO-Revision-Date: 2021-02-22 16:25+0100\n"
"Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
@@ -19,14 +19,14 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-#: lib/color.c:53
+#: lib/color.c:51
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â€"
-#: lib/color.c:129
+#: lib/color.c:127
#, c-format
msgid ""
"%s: invalid argument '%s' for '--color'\n"
@@ -41,7 +41,7 @@ msgstr ""
" • „neverâ€, „noâ€, „noneâ€\n"
" • „autoâ€, „ttyâ€, „if-ttyâ€\n"
-#: lib/printversion.c:40
+#: lib/printversion.c:39
#, c-format
msgid ""
"Copyright (C) %s The elfutils developers <%s>.\n"
@@ -54,70 +54,70 @@ msgstr ""
"BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n"
"HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n"
-#: lib/xmalloc.c:48 lib/xmalloc.c:61 lib/xmalloc.c:73 src/readelf.c:11582
-#: src/unstrip.c:312
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11754
+#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
-#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
-#: libelf/elf_error.c:60
+#: libasm/asm_error.c:64 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
+#: libelf/elf_error.c:59
msgid "no error"
msgstr "brak błędu"
-#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
-#: libelf/elf_error.c:91
+#: libasm/asm_error.c:65 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
+#: libelf/elf_error.c:90
msgid "out of memory"
msgstr "brak pamięci"
-#: libasm/asm_error.c:67
+#: libasm/asm_error.c:66
msgid "cannot create output file"
msgstr "nie można utworzyć pliku wyjściowego"
-#: libasm/asm_error.c:68
+#: libasm/asm_error.c:67
msgid "invalid parameter"
msgstr "nieprawidłowy parametr"
-#: libasm/asm_error.c:69
+#: libasm/asm_error.c:68
msgid "cannot change mode of output file"
msgstr "nie można zmienić trybu pliku wyjściowego"
-#: libasm/asm_error.c:70
+#: libasm/asm_error.c:69
msgid "cannot rename output file"
msgstr "nie można zmienić nazwy pliku wyjściowego"
-#: libasm/asm_error.c:71
+#: libasm/asm_error.c:70
msgid "duplicate symbol"
msgstr "powtórzony symbol"
-#: libasm/asm_error.c:72
+#: libasm/asm_error.c:71
msgid "invalid section type for operation"
msgstr "nieprawidłowy typ sekcji dla działania"
-#: libasm/asm_error.c:73
+#: libasm/asm_error.c:72
msgid "error during output of data"
msgstr "błąd podczas wyprowadzania danych"
-#: libasm/asm_error.c:74
+#: libasm/asm_error.c:73
msgid "no backend support available"
msgstr "brak dostępnej obsługi zaplecza"
-#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
-#: libelf/elf_error.c:63
+#: libasm/asm_error.c:82 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
+#: libelf/elf_error.c:62
msgid "unknown error"
msgstr "nieznany błąd"
-#: libcpu/i386_lex.l:122
+#: libcpu/i386_lex.l:121
#, c-format
msgid "invalid character '%c' at line %d; ignored"
msgstr "nieprawidłowy znak „%c†w %d. wierszu; zignorowano"
-#: libcpu/i386_lex.l:123
+#: libcpu/i386_lex.l:122
#, c-format
msgid "invalid character '\\%o' at line %d; ignored"
msgstr "nieprawidłowy znak „\\%o†w %d. wierszu; zignorowano"
-#: libcpu/i386_parse.y:554
+#: libcpu/i386_parse.y:553
#, c-format
msgid "while reading i386 CPU description: %s at line %d"
msgstr "podczas odczytywania opisu procesora i386: %s w %d. wierszu"
@@ -158,7 +158,7 @@ msgstr "nie można uzyskać nagłówka ELF"
msgid "not implemented"
msgstr "niezaimplementowane"
-#: libdw/dwarf_error.c:69 libelf/elf_error.c:111 libelf/elf_error.c:159
+#: libdw/dwarf_error.c:69 libelf/elf_error.c:110 libelf/elf_error.c:158
msgid "invalid command"
msgstr "nieprawidłowe polecenie"
@@ -266,7 +266,7 @@ msgstr "brak pasującego zakresu adresów"
msgid "no flag value"
msgstr "brak wartości flagi"
-#: libdw/dwarf_error.c:96 libelf/elf_error.c:236
+#: libdw/dwarf_error.c:96 libelf/elf_error.c:235
msgid "invalid offset"
msgstr "nieprawidłowy offset"
@@ -302,23 +302,23 @@ msgstr "nieznany kod języka"
msgid ".debug_addr section missing"
msgstr "brak sekcji .debug_addr"
-#: libdwfl/argp-std.c:47 src/stack.c:643 src/unstrip.c:2550
+#: libdwfl/argp-std.c:45 src/stack.c:643 src/unstrip.c:2547
msgid "Input selection options:"
msgstr "Opcje wyboru wejścia:"
-#: libdwfl/argp-std.c:48
+#: libdwfl/argp-std.c:46
msgid "Find addresses in FILE"
msgstr "Wyszukuje adresy w PLIKU"
-#: libdwfl/argp-std.c:50
+#: libdwfl/argp-std.c:48
msgid "Find addresses from signatures found in COREFILE"
msgstr "Wyszukuje adresy z podpisów odnalezionych w PLIKU-CORE"
-#: libdwfl/argp-std.c:52
+#: libdwfl/argp-std.c:50
msgid "Find addresses in files mapped into process PID"
msgstr "Wyszukuje adresy w plikach zmapowanych do PID procesów"
-#: libdwfl/argp-std.c:54
+#: libdwfl/argp-std.c:52
msgid ""
"Find addresses in files mapped as read from FILE in Linux /proc/PID/maps "
"format"
@@ -326,45 +326,45 @@ msgstr ""
"Wyszukuje adresy w plikach zmapowanych jako odczyt z PLIKU w formacie /proc/"
"PID/maps systemu Linux"
-#: libdwfl/argp-std.c:56
+#: libdwfl/argp-std.c:54
msgid "Find addresses in the running kernel"
msgstr "Wyszukuje adresy w uruchomionych jądrze"
-#: libdwfl/argp-std.c:58
+#: libdwfl/argp-std.c:56
msgid "Kernel with all modules"
msgstr "Jądro ze wszystkimi modułami"
-#: libdwfl/argp-std.c:60 src/stack.c:650
+#: libdwfl/argp-std.c:58 src/stack.c:650
msgid "Search path for separate debuginfo files"
msgstr "Wyszukuje ścieżkę dla oddzielnych plików debuginfo"
-#: libdwfl/argp-std.c:161
+#: libdwfl/argp-std.c:159
msgid "only one of -e, -p, -k, -K, or --core allowed"
msgstr "dopuszczalna jest tylko jedna z opcji -e, -p, -k, -K lub --core"
-#: libdwfl/argp-std.c:234
+#: libdwfl/argp-std.c:232
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:238
+#: libdwfl/argp-std.c:236
msgid "cannot find kernel modules"
msgstr "nie można odnaleźć modułów jądra"
-#: libdwfl/argp-std.c:255
+#: libdwfl/argp-std.c:253
msgid "cannot find kernel or modules"
msgstr "nie można odnaleźć jądra lub modułów"
-#: libdwfl/argp-std.c:294
+#: libdwfl/argp-std.c:292
#, c-format
msgid "cannot read ELF core file: %s"
msgstr "nie można odczytać pliku core ELF: %s"
-#: libdwfl/argp-std.c:317
+#: libdwfl/argp-std.c:315
msgid "Not enough memory"
msgstr "Za mało pamięci"
-#: libdwfl/argp-std.c:327
+#: libdwfl/argp-std.c:325
msgid "No modules recognized in core file"
msgstr "Nie rozpoznano żadnych modułów w pliku core"
@@ -416,7 +416,7 @@ msgstr "Nieobsługiwany typ relokacji"
msgid "r_offset is bogus"
msgstr "r_offset jest fałszywe"
-#: libdwfl/libdwflP.h:66 libelf/elf_error.c:115 libelf/elf_error.c:175
+#: libdwfl/libdwflP.h:66 libelf/elf_error.c:114 libelf/elf_error.c:174
msgid "offset out of range"
msgstr "offset spoza zakresu"
@@ -481,46 +481,52 @@ msgid "Invalid register"
msgstr "Nieprawidłowy rejestr"
#: libdwfl/libdwflP.h:84
+#, fuzzy
+#| msgid "no reference value"
+msgid "Unknown register value"
+msgstr "brak wartości odwołania"
+
+#: libdwfl/libdwflP.h:85
msgid "Error reading process memory"
msgstr "Błąd podczas odczytywania pamięci procesu"
-#: libdwfl/libdwflP.h:85
+#: libdwfl/libdwflP.h:86
msgid "Couldn't find architecture of any ELF"
msgstr "Nie można odnaleźć architektury żadnego ELF"
-#: libdwfl/libdwflP.h:86
+#: libdwfl/libdwflP.h:87
msgid "Error parsing /proc filesystem"
msgstr "Błąd podczas przetwarzania systemu plików /proc"
-#: libdwfl/libdwflP.h:87
+#: libdwfl/libdwflP.h:88
msgid "Invalid DWARF"
msgstr "Nieprawidłowy DWARF"
-#: libdwfl/libdwflP.h:88
+#: libdwfl/libdwflP.h:89
msgid "Unsupported DWARF"
msgstr "Nieobsługiwany DWARF"
-#: libdwfl/libdwflP.h:89
+#: libdwfl/libdwflP.h:90
msgid "Unable to find more threads"
msgstr "Nie można odnaleźć więcej wątków"
-#: libdwfl/libdwflP.h:90
+#: libdwfl/libdwflP.h:91
msgid "Dwfl already has attached state"
msgstr "Dwfl już ma załączony stan"
-#: libdwfl/libdwflP.h:91
+#: libdwfl/libdwflP.h:92
msgid "Dwfl has no attached state"
msgstr "Dwfl nie ma załączonego stanu"
-#: libdwfl/libdwflP.h:92
+#: libdwfl/libdwflP.h:93
msgid "Unwinding not supported for this architecture"
msgstr "Odwijanie nie jest obsługiwane dla tej architektury"
-#: libdwfl/libdwflP.h:93
+#: libdwfl/libdwflP.h:94
msgid "Invalid argument"
msgstr "Nieprawidłowy parametr"
-#: libdwfl/libdwflP.h:94
+#: libdwfl/libdwflP.h:95
msgid "Not an ET_CORE ELF file"
msgstr "Nie jest plikiem ELF ET_CORE"
@@ -529,7 +535,7 @@ msgid "No backend"
msgstr "Brak zaplecza"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
-#: libebl/eblobjnotetypename.c:110 libebl/eblobjnotetypename.c:131
+#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
@@ -580,18 +586,18 @@ msgstr " Nazwa: "
msgid " Args: "
msgstr " Parametry: "
-#: libebl/eblobjnote.c:300
+#: libebl/eblobjnote.c:304
#, c-format
msgid " Build ID: "
msgstr " Identyfikator kopii: "
#. A non-null terminated version string.
-#: libebl/eblobjnote.c:311
+#: libebl/eblobjnote.c:315
#, c-format
msgid " Linker version: %.*s\n"
msgstr " Wersja konsolidatora: %.*s\n"
-#: libebl/eblobjnote.c:638
+#: libebl/eblobjnote.c:642
#, c-format
msgid " OS: %s, ABI: "
msgstr " System operacyjny: %s, ABI: "
@@ -605,225 +611,227 @@ msgstr "Samodzielny"
msgid "<unknown>: %d"
msgstr "<nieznany>: %d"
-#: libelf/elf_error.c:67
+#: libelf/elf_error.c:66
msgid "unknown version"
msgstr "nieznana wersja"
-#: libelf/elf_error.c:71
+#: libelf/elf_error.c:70
msgid "unknown type"
msgstr "nieznany typ"
-#: libelf/elf_error.c:75
+#: libelf/elf_error.c:74
msgid "invalid `Elf' handle"
msgstr "nieprawidÅ‚owa obsÅ‚uga „Elfâ€"
-#: libelf/elf_error.c:79
+#: libelf/elf_error.c:78
msgid "invalid size of source operand"
msgstr "nieprawidłowy rozmiar operandu źródłowego"
-#: libelf/elf_error.c:83
+#: libelf/elf_error.c:82
msgid "invalid size of destination operand"
msgstr "nieprawidłowy rozmiar operandu docelowego"
-#: libelf/elf_error.c:87 src/readelf.c:6215
+#: libelf/elf_error.c:86 src/readelf.c:6378
#, c-format
msgid "invalid encoding"
msgstr "nieprawidłowe kodowanie"
-#: libelf/elf_error.c:95
+#: libelf/elf_error.c:94
msgid "invalid file descriptor"
msgstr "nieprawidłowy deskryptor pliku"
-#: libelf/elf_error.c:99
+#: libelf/elf_error.c:98
msgid "invalid ELF file data"
msgstr "nieprawidłowe dane pliku ELF"
-#: libelf/elf_error.c:103
+#: libelf/elf_error.c:102
msgid "invalid operation"
msgstr "nieprawidłowe działanie"
-#: libelf/elf_error.c:107
+#: libelf/elf_error.c:106
msgid "ELF version not set"
msgstr "wersja ELF nie została ustawiona"
-#: libelf/elf_error.c:119
+#: libelf/elf_error.c:118
msgid "invalid fmag field in archive header"
msgstr "nieprawidłowe pole fmag w nagłówku archiwum"
-#: libelf/elf_error.c:123
+#: libelf/elf_error.c:122
msgid "invalid archive file"
msgstr "nieprawidłowy plik archiwum"
-#: libelf/elf_error.c:127
+#: libelf/elf_error.c:126
msgid "descriptor is not for an archive"
msgstr "deskryptor nie jest dla archiwum"
-#: libelf/elf_error.c:131
+#: libelf/elf_error.c:130
msgid "no index available"
msgstr "brak dostępnego indeksu"
-#: libelf/elf_error.c:135
+#: libelf/elf_error.c:134
msgid "cannot read data from file"
msgstr "nie można odczytać danych z pliku"
-#: libelf/elf_error.c:139
+#: libelf/elf_error.c:138
msgid "cannot write data to file"
msgstr "nie można zapisać danych do pliku"
-#: libelf/elf_error.c:143
+#: libelf/elf_error.c:142
msgid "invalid binary class"
msgstr "nieprawidłowa klasa pliku binarnego"
-#: libelf/elf_error.c:147
+#: libelf/elf_error.c:146
msgid "invalid section index"
msgstr "nieprawidłowy indeks sekcji"
-#: libelf/elf_error.c:151
+#: libelf/elf_error.c:150
msgid "invalid operand"
msgstr "nieprawidłowy operand"
-#: libelf/elf_error.c:155
+#: libelf/elf_error.c:154
msgid "invalid section"
msgstr "nieprawidłowa sekcja"
-#: libelf/elf_error.c:163
+#: libelf/elf_error.c:162
msgid "executable header not created first"
msgstr "nie utworzono najpierw nagłówka pliku wykonywalnego"
-#: libelf/elf_error.c:167
+#: libelf/elf_error.c:166
msgid "file descriptor disabled"
msgstr "deskryptor pliku jest wyłączony"
-#: libelf/elf_error.c:171
+#: libelf/elf_error.c:170
msgid "archive/member file descriptor mismatch"
msgstr "deskryptory archiwum/elementu nie zgadzajÄ… siÄ™"
-#: libelf/elf_error.c:179
+#: libelf/elf_error.c:178
msgid "cannot manipulate null section"
msgstr "nie można zmieniać pustej sekcji"
-#: libelf/elf_error.c:183
+#: libelf/elf_error.c:182
msgid "data/scn mismatch"
msgstr "dane/scn nie zgadzajÄ… siÄ™"
-#: libelf/elf_error.c:187
+#: libelf/elf_error.c:186
msgid "invalid section header"
msgstr "nieprawidłowy nagłówek sekcji"
-#: libelf/elf_error.c:191 src/readelf.c:10093 src/readelf.c:10693
-#: src/readelf.c:10794 src/readelf.c:10976
+#: libelf/elf_error.c:190 src/readelf.c:10266 src/readelf.c:10866
+#: src/readelf.c:10967 src/readelf.c:11149
#, c-format
msgid "invalid data"
msgstr "nieprawidłowe dane"
-#: libelf/elf_error.c:195
+#: libelf/elf_error.c:194
msgid "unknown data encoding"
msgstr "nieznane kodowanie danych"
-#: libelf/elf_error.c:199
+#: libelf/elf_error.c:198
msgid "section `sh_size' too small for data"
msgstr "sekcja „sh_size†jest za mała dla danych"
-#: libelf/elf_error.c:203
+#: libelf/elf_error.c:202
msgid "invalid section alignment"
msgstr "nieprawidłowe wyrównanie sekcji"
-#: libelf/elf_error.c:207
+#: libelf/elf_error.c:206
msgid "invalid section entry size"
msgstr "nieprawidłowy rozmiar wpisu sekcji"
-#: libelf/elf_error.c:211
+#: libelf/elf_error.c:210
msgid "update() for write on read-only file"
msgstr "update() dla zapisu pliku tylko do odczytu"
-#: libelf/elf_error.c:215
+#: libelf/elf_error.c:214
msgid "no such file"
msgstr "nie ma takiego pliku"
-#: libelf/elf_error.c:219
+#: libelf/elf_error.c:218
msgid "only relocatable files can contain section groups"
msgstr "tylko relokowalne pliki mogą zawierać grupy sekcji"
-#: libelf/elf_error.c:224
+#: libelf/elf_error.c:223
msgid ""
"program header only allowed in executables, shared objects, and core files"
msgstr ""
"tylko pliki wykonywalne, obiektów współdzielone i pliki core mogą mieć "
"nagłówki programu"
-#: libelf/elf_error.c:231
+#: libelf/elf_error.c:230
msgid "file has no program header"
msgstr "plik nie ma nagłówków programu"
-#: libelf/elf_error.c:241
+#: libelf/elf_error.c:240
msgid "invalid section type"
msgstr "nieprawidłowy typ sekcji"
-#: libelf/elf_error.c:246
+#: libelf/elf_error.c:245
msgid "invalid section flags"
msgstr "nieprawidłowe flagi sekcji"
-#: libelf/elf_error.c:251
+#: libelf/elf_error.c:250
msgid "section does not contain compressed data"
msgstr "sekcja nie zawiera skompresowanych danych"
-#: libelf/elf_error.c:256
+#: libelf/elf_error.c:255
msgid "section contains compressed data"
msgstr "sekcja zawiera skompresowane dane"
-#: libelf/elf_error.c:261
+#: libelf/elf_error.c:260
msgid "unknown compression type"
msgstr "nieznany typ kompresji"
-#: libelf/elf_error.c:266
+#: libelf/elf_error.c:265
msgid "cannot compress data"
msgstr "nie można kompresować danych"
-#: libelf/elf_error.c:271
+#: libelf/elf_error.c:270
msgid "cannot decompress data"
msgstr "nie można dekompresować danych"
-#: src/addr2line.c:57
+#: src/addr2line.c:58
msgid "Input format options:"
msgstr "Opcje formatowania wejścia:"
-#: src/addr2line.c:59
+#: src/addr2line.c:60
msgid "Treat addresses as offsets relative to NAME section."
msgstr "Traktuje adresy jako offsety względne do sekcji NAZWA."
-#: src/addr2line.c:61
+#: src/addr2line.c:62
msgid "Output format options:"
msgstr "Opcje formatowania wyjścia:"
-#: src/addr2line.c:62
+#: src/addr2line.c:63
msgid "Print address before each entry"
msgstr "Wyświetla adres pliku przed każdym wpisem"
-#: src/addr2line.c:63
+#: src/addr2line.c:64
msgid "Show only base names of source files"
msgstr "Wyświetla tylko podstawowe nazwy plików źródłowych"
-#: src/addr2line.c:65
-msgid "Show absolute file names using compilation directory"
+#: src/addr2line.c:66
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show absolute file names using compilation directory (default)"
msgstr "Wyświetla bezwzględne nazwy plików używając katalogu kompilacji"
-#: src/addr2line.c:66
+#: src/addr2line.c:67
msgid "Also show function names"
msgstr "Wyświetla także nazwy funkcji"
-#: src/addr2line.c:67
+#: src/addr2line.c:68
msgid "Also show symbol or section names"
msgstr "Wyświetla także nazwy symboli lub sekcji"
-#: src/addr2line.c:68
+#: src/addr2line.c:69
msgid "Also show symbol and the section names"
msgstr "Wyświetla także nazwy symboli i sekcji"
-#: src/addr2line.c:69
+#: src/addr2line.c:70
msgid "Also show line table flags"
msgstr "Wyświetla także flagi tabeli wierszy"
-#: src/addr2line.c:71
+#: src/addr2line.c:72
msgid ""
"Show all source locations that caused inline expansion of subroutines at the "
"address."
@@ -831,22 +839,28 @@ msgstr ""
"Wyświetla wszystkie położenia źródłowe, które spowodowały wstawione "
"rozszerzenie podprogramów pod tym adresem."
-#: src/addr2line.c:74
+#: src/addr2line.c:75
msgid "Show demangled symbols (ARG is always ignored)"
msgstr ""
"Wyświetla symbole z usuniętym dekorowaniem (PARAMETR jest zawsze ignorowany)"
-#: src/addr2line.c:76
+#: src/addr2line.c:77
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:78 src/elfcmp.c:70 src/findtextrel.c:66 src/nm.c:100
-#: src/strings.c:78
+#: src/addr2line.c:79
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show relative file names without compilation directory"
+msgstr "Wyświetla bezwzględne nazwy plików używając katalogu kompilacji"
+
+#: src/addr2line.c:81 src/elfcmp.c:69 src/findtextrel.c:65 src/nm.c:99
+#: src/strings.c:77
msgid "Miscellaneous:"
msgstr "Różne:"
#. Short description of program.
-#: src/addr2line.c:86
+#: src/addr2line.c:89
msgid ""
"Locate source files and line information for ADDRs (in a.out by default)."
msgstr ""
@@ -854,324 +868,321 @@ msgstr ""
"w a.out)."
#. Strings for arguments in help texts.
-#: src/addr2line.c:90
+#: src/addr2line.c:93
msgid "[ADDR...]"
msgstr "[ADRES…]"
-#: src/addr2line.c:519
-#, c-format
+#: src/addr2line.c:526
msgid "Section syntax requires exactly one module"
msgstr "Składnia sekcji wymaga dokładnie jednego modułu"
-#: src/addr2line.c:542
+#: src/addr2line.c:548
#, c-format
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr "offset %#<PRIxMAX> leży poza sekcjÄ… „%sâ€"
-#: src/addr2line.c:652
+#: src/addr2line.c:658
#, c-format
msgid "cannot find symbol '%s'"
msgstr "nie można odnaleźć symbolu „%sâ€"
-#: src/addr2line.c:657
+#: src/addr2line.c:663
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr "offset %#<PRIxMAX> leży poza zawartoÅ›ciÄ… „%sâ€"
-#: src/ar.c:67
+#: src/ar.c:66
msgid "Commands:"
msgstr "Polecenia:"
-#: src/ar.c:68
+#: src/ar.c:67
msgid "Delete files from archive."
msgstr "Usuwa pliki z archiwum."
-#: src/ar.c:69
+#: src/ar.c:68
msgid "Move files in archive."
msgstr "Przenosi pliki w archiwum."
-#: src/ar.c:70
+#: src/ar.c:69
msgid "Print files in archive."
msgstr "Wyświetla pliki w archiwum."
-#: src/ar.c:71
+#: src/ar.c:70
msgid "Quick append files to archive."
msgstr "Szybko dodaje pliki do archiwum."
-#: src/ar.c:73
+#: src/ar.c:72
msgid "Replace existing or insert new file into archive."
msgstr "Zastępuje istniejący lub umieszcza nowy plik w archiwum."
-#: src/ar.c:74
+#: src/ar.c:73
msgid "Display content of archive."
msgstr "Wyświetla zawartość archiwum."
-#: src/ar.c:75
+#: src/ar.c:74
msgid "Extract files from archive."
msgstr "Wypakowuje pliki z archiwum."
-#: src/ar.c:77
+#: src/ar.c:76
msgid "Command Modifiers:"
msgstr "Modyfikatory poleceń:"
-#: src/ar.c:78
+#: src/ar.c:77
msgid "Preserve original dates."
msgstr "Zachowuje pierwotne daty."
-#: src/ar.c:79
+#: src/ar.c:78
msgid "Use instance [COUNT] of name."
msgstr "Używa wystąpienia [LICZNIK] nazwy."
-#: src/ar.c:81
+#: src/ar.c:80
msgid "Do not replace existing files with extracted files."
msgstr "Nie zastępuje istniejących plików wypakowanymi plikami."
-#: src/ar.c:82
+#: src/ar.c:81
msgid "Allow filename to be truncated if necessary."
msgstr "Zezwala na skrócenie nazwy pliku, jeśli jest to wymagane."
-#: src/ar.c:84
+#: src/ar.c:83
msgid "Provide verbose output."
msgstr "Wyświetla więcej informacji."
-#: src/ar.c:85
+#: src/ar.c:84
msgid "Force regeneration of symbol table."
msgstr "Wymusza ponowne utworzenie tabeli symboli."
-#: src/ar.c:86
+#: src/ar.c:85
msgid "Insert file after [MEMBER]."
msgstr "Umieszcza plik po [ELEMENCIE]."
-#: src/ar.c:87
+#: src/ar.c:86
msgid "Insert file before [MEMBER]."
msgstr "Umieszcza plik przed [ELEMENTEM]."
-#: src/ar.c:88
+#: src/ar.c:87
msgid "Same as -b."
msgstr "To samo, co -b."
-#: src/ar.c:89
+#: src/ar.c:88
msgid "Suppress message when library has to be created."
msgstr "Zmniejsza komunikat, jeśli biblioteka musi zostać utworzona."
-#: src/ar.c:91
+#: src/ar.c:90
msgid "Use full path for file matching."
msgstr "Używa pełnej ścieżki do dopasowywania plików."
-#: src/ar.c:92
+#: src/ar.c:91
msgid "Update only older files in archive."
msgstr "Aktualizuje tylko starsze pliki w archiwum."
#. Short description of program.
-#: src/ar.c:98
+#: src/ar.c:97
msgid "Create, modify, and extract from archives."
msgstr "Tworzenie, modyfikowanie i wypakowywanie archiwów."
#. Strings for arguments in help texts.
-#: src/ar.c:101
+#: src/ar.c:100
msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK…]"
-#: src/ar.c:180
+#: src/ar.c:179
#, 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â€"
-#: src/ar.c:185
+#: src/ar.c:184
#, c-format
msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers"
msgstr "parametr ELEMENT jest wymagany dla modyfikatorów „aâ€, „b†i „iâ€"
-#: src/ar.c:201
+#: src/ar.c:200
#, c-format
msgid "'N' is only meaningful with the 'x' and 'd' options"
msgstr "„N†ma znaczenie tylko z opcjami „x†i „dâ€"
-#: src/ar.c:206
+#: src/ar.c:205
#, c-format
msgid "COUNT parameter required"
msgstr "wymagany jest parametr LICZNIK"
-#: src/ar.c:218
+#: src/ar.c:217
#, c-format
msgid "invalid COUNT parameter %s"
msgstr "nieprawidłowy parametr LICZNIK %s"
-#: src/ar.c:225
+#: src/ar.c:224
#, c-format
msgid "'%c' is only meaningful with the 'x' option"
msgstr "„%c†ma znaczenie tylko z opcjÄ… „xâ€"
-#: src/ar.c:231
+#: src/ar.c:230
#, c-format
msgid "archive name required"
msgstr "wymagana jest nazwa archiwum"
-#: src/ar.c:244
+#: src/ar.c:243
#, c-format
msgid "command option required"
msgstr "wymagana jest opcja polecenia"
-#: src/ar.c:295
+#: src/ar.c:294
#, c-format
msgid "More than one operation specified"
msgstr "Podano więcej niż jedno działanie"
-#: src/ar.c:389
+#: src/ar.c:388
#, c-format
msgid "cannot open archive '%s'"
msgstr "nie można otworzyć archiwum „%sâ€"
-#: src/ar.c:399
+#: src/ar.c:398
#, c-format
msgid "cannot open archive '%s': %s"
msgstr "nie można otworzyć archiwum „%sâ€: %s"
-#: src/ar.c:403
+#: src/ar.c:402
#, c-format
msgid "%s: not an archive file"
msgstr "%s: nie jest plikiem archiwum"
-#: src/ar.c:407
+#: src/ar.c:406
#, c-format
msgid "cannot stat archive '%s'"
msgstr "nie można wykonać stat na archiwum „%sâ€"
-#: src/ar.c:419
+#: src/ar.c:418
#, c-format
msgid "no entry %s in archive\n"
msgstr "brak wpisu %s w archiwum\n"
-#: src/ar.c:472 src/ar.c:927 src/ar.c:1134
-#, c-format
+#: src/ar.c:471 src/ar.c:925 src/ar.c:1131
msgid "cannot create hash table"
msgstr "nie można utworzyć tabeli mieszającej"
-#: src/ar.c:479 src/ar.c:934 src/ar.c:1143
-#, c-format
+#: src/ar.c:477 src/ar.c:931 src/ar.c:1139
msgid "cannot insert into hash table"
msgstr "nie można umieścić w tabeli mieszającej"
-#: src/ar.c:487 src/ranlib.c:148
+#: src/ar.c:485 src/ranlib.c:147
#, c-format
msgid "cannot stat '%s'"
msgstr "nie można wykonać stat na „%sâ€"
-#: src/ar.c:589
+#: src/ar.c:587
#, c-format
msgid "cannot read content of %s: %s"
msgstr "nie można odczytać zawartości %s: %s"
-#: src/ar.c:632
+#: src/ar.c:630
#, c-format
msgid "cannot open %.*s"
msgstr "nie można otworzyć %.*s"
-#: src/ar.c:654
+#: src/ar.c:652
#, c-format
msgid "failed to write %s"
msgstr "zapisanie %s się nie powiodło"
-#: src/ar.c:666
+#: src/ar.c:664
#, c-format
msgid "cannot change mode of %s"
msgstr "nie można zmienić trybu %s"
-#: src/ar.c:682
+#: src/ar.c:680
#, c-format
msgid "cannot change modification time of %s"
msgstr "nie można zmienić czasu modyfikacji %s"
-#: src/ar.c:728
+#: src/ar.c:726
#, c-format
msgid "cannot rename temporary file to %.*s"
msgstr "nie można zmienić nazwy pliku tymczasowego na %.*s"
-#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222
+#: src/ar.c:762 src/ar.c:1016 src/ar.c:1419 src/ranlib.c:221
#, c-format
msgid "cannot create new file"
msgstr "nie można utworzyć nowego pliku"
-#: src/ar.c:1225
+#: src/ar.c:1221
#, c-format
msgid "position member %s not found"
msgstr "nie odnaleziono położenia elementu %s"
-#: src/ar.c:1235
+#: src/ar.c:1231
#, c-format
msgid "%s: no entry %s in archive!\n"
msgstr "%s: brak wpisu %s w archiwum.\n"
-#: src/ar.c:1264 src/objdump.c:241
+#: src/ar.c:1260 src/objdump.c:240
#, c-format
msgid "cannot open %s"
msgstr "nie można otworzyć %s"
-#: src/ar.c:1269
+#: src/ar.c:1265
#, c-format
msgid "cannot stat %s"
msgstr "nie można wykonać stat na %s"
-#: src/ar.c:1275
+#: src/ar.c:1271
#, c-format
msgid "%s is no regular file"
msgstr "%s nie jest zwykłym plikiem"
-#: src/ar.c:1288
+#: src/ar.c:1284
#, c-format
msgid "cannot get ELF descriptor for %s: %s\n"
msgstr "nie można uzyskać deskryptora ELF dla %s: %s\n"
-#: src/ar.c:1308
+#: src/ar.c:1304
#, c-format
msgid "cannot read %s: %s"
msgstr "nie można odczytać %s: %s"
-#: src/ar.c:1483
+#: src/ar.c:1479
#, c-format
msgid "cannot represent ar_date"
msgstr "nie można przedstawić ar_date"
-#: src/ar.c:1489
+#: src/ar.c:1485
#, c-format
msgid "cannot represent ar_uid"
msgstr "nie można przedstawić ar_uid"
-#: src/ar.c:1495
+#: src/ar.c:1491
#, c-format
msgid "cannot represent ar_gid"
msgstr "nie można przedstawić ar_gid"
-#: src/ar.c:1501
+#: src/ar.c:1497
#, c-format
msgid "cannot represent ar_mode"
msgstr "nie można przedstawić ar_mode"
-#: src/ar.c:1507
+#: src/ar.c:1503
#, c-format
msgid "cannot represent ar_size"
msgstr "nie można przedstawić ar_size"
-#: src/arlib-argp.c:32
+#: src/arlib-argp.c:31
msgid "Use zero for uid, gid, and date in archive members."
msgstr "Używa zero jako UID, GID i datę w elementach archiwum."
-#: src/arlib-argp.c:34
+#: src/arlib-argp.c:33
msgid "Use actual uid, gid, and date in archive members."
msgstr "Używa prawdziwe UID, GID i datę w elementach archiwum."
-#: src/arlib-argp.c:63
+#: src/arlib-argp.c:62
#, c-format
msgid "%s (default)"
msgstr "%s (domyślnie)"
#. The archive is too big.
-#: src/arlib.c:213
+#: src/arlib.c:212
#, c-format
msgid "the archive '%s' is too large"
msgstr "archiwum „%s†jest za duże"
-#: src/arlib.c:226
+#: src/arlib.c:225
#, c-format
msgid "cannot read ELF header of %s(%s): %s"
msgstr "nie można odczytać nagłówka ELF %s(%s): %s"
@@ -1356,8 +1367,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr "Zmniejsza wyjście błędów (odpowiednik opcji --verbose)"
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1334 src/elflint.c:77
-#: src/readelf.c:158
+#: src/elfclassify.c:979 src/elfcompress.c:1358 src/elflint.c:76
+#: src/readelf.c:160
msgid "FILE..."
msgstr "PLIK…"
@@ -1436,15 +1447,15 @@ msgstr ""
"Opcje --quiet i -q zmniejszają wyjście błędów i ostrzeżeń, ale nie zmieniają "
"stanów zakończenia."
-#: src/elfcmp.c:60
+#: src/elfcmp.c:59
msgid "Control options:"
msgstr "Opcje sterujÄ…ce:"
-#: src/elfcmp.c:62
+#: src/elfcmp.c:61
msgid "Output all differences, not just the first"
msgstr "Wyświetlanie wszystkich różnic, nie tylko pierwszej"
-#: src/elfcmp.c:63
+#: src/elfcmp.c:62
msgid ""
"Control treatment of gaps in loadable segments [ignore|match] (default: "
"ignore)"
@@ -1452,215 +1463,215 @@ msgstr ""
"Sterowanie traktowaniem luk w segmentach wczytywalnych [ignore|match] "
"(domyślne: ignore)"
-#: src/elfcmp.c:65
+#: src/elfcmp.c:64
msgid "Ignore permutation of buckets in SHT_HASH section"
msgstr "Ignorowanie permutacji kubełków w sekcji SHT_HASH"
-#: src/elfcmp.c:67
+#: src/elfcmp.c:66
msgid "Ignore differences in build ID"
msgstr "Ignorowanie różnic w identyfikatorze kopii"
-#: src/elfcmp.c:68
+#: src/elfcmp.c:67
msgid "Output nothing; yield exit status only"
msgstr "Bez wypisywania; przekazanie tylko kodu wyjścia"
#. Short description of program.
-#: src/elfcmp.c:75
+#: src/elfcmp.c:74
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:79
+#: src/elfcmp.c:78
msgid "FILE1 FILE2"
msgstr "PLIK1 PLIK2"
-#: src/elfcmp.c:141
+#: src/elfcmp.c:140
msgid "Invalid number of parameters.\n"
msgstr "Nieprawidłowa liczba parametrów.\n"
-#: src/elfcmp.c:172 src/elfcmp.c:177
+#: src/elfcmp.c:171 src/elfcmp.c:176
#, c-format
msgid "cannot get ELF header of '%s': %s"
msgstr "nie można uzyskać nagłówka ELF „%sâ€: %s"
-#: src/elfcmp.c:203
+#: src/elfcmp.c:202
#, c-format
msgid "%s %s diff: ELF header"
msgstr "%s %s różnią się: nagłówek ELF"
-#: src/elfcmp.c:210 src/elfcmp.c:213
+#: src/elfcmp.c:209 src/elfcmp.c:212
#, c-format
msgid "cannot get section count of '%s': %s"
msgstr "nie można uzyskać licznika sekcji „%sâ€: %s"
-#: src/elfcmp.c:218
+#: src/elfcmp.c:217
#, c-format
msgid "%s %s diff: section count"
msgstr "%s %s różnią się: licznik sekcji"
-#: src/elfcmp.c:225 src/elfcmp.c:228
+#: src/elfcmp.c:224 src/elfcmp.c:227
#, c-format
msgid "cannot get program header count of '%s': %s"
msgstr "nie można uzyskać licznika nagłówka programu „%sâ€: %s"
-#: src/elfcmp.c:233
+#: src/elfcmp.c:232
#, c-format
msgid "%s %s diff: program header count"
msgstr "%s %s różnią się: licznik nagłówka programu"
-#: src/elfcmp.c:241 src/elfcmp.c:244
+#: src/elfcmp.c:240 src/elfcmp.c:243
#, c-format
msgid "cannot get hdrstrndx of '%s': %s"
msgstr "nie można uzyskać hdrstrndx „%sâ€: %s"
-#: src/elfcmp.c:249
+#: src/elfcmp.c:248
#, c-format
msgid "%s %s diff: shdr string index"
msgstr "%s %s różnią się: indeks ciągu shdr"
-#: src/elfcmp.c:307
+#: src/elfcmp.c:306
#, c-format
msgid "%s %s differ: section [%zu], [%zu] name"
msgstr "%s %s różnią się: nazwa sekcji [%zu], [%zu]"
-#: src/elfcmp.c:330
+#: src/elfcmp.c:329
#, c-format
msgid "%s %s differ: section [%zu] '%s' header"
msgstr "%s %s różniÄ… siÄ™: nagłówek sekcji [%zu] „%sâ€"
-#: src/elfcmp.c:338 src/elfcmp.c:344
+#: src/elfcmp.c:337 src/elfcmp.c:343
#, c-format
msgid "cannot get content of section %zu in '%s': %s"
msgstr "nie można uzyskać zawartoÅ›ci sekcji %zu w „%sâ€: %s"
-#: src/elfcmp.c:353
+#: src/elfcmp.c:352
#, c-format
msgid "symbol table [%zu] in '%s' has zero sh_entsize"
msgstr "tabela symboli [%zu] w „%s†ma zerowe sh_entsize"
-#: src/elfcmp.c:365 src/elfcmp.c:371
+#: src/elfcmp.c:364 src/elfcmp.c:370
#, c-format
msgid "cannot get symbol in '%s': %s"
msgstr "nie można uzyskać symbolu w „%sâ€: %s"
-#: src/elfcmp.c:393
+#: src/elfcmp.c:392
#, c-format
msgid "%s %s differ: symbol table [%zu]"
msgstr "%s %s różnią się: tabela symboli [%zu]"
-#: src/elfcmp.c:396
+#: src/elfcmp.c:395
#, c-format
msgid "%s %s differ: symbol table [%zu,%zu]"
msgstr "%s %s różnią się: tabela symboli [%zu,%zu]"
-#: src/elfcmp.c:443 src/elfcmp.c:513
+#: src/elfcmp.c:442 src/elfcmp.c:512
#, c-format
msgid "%s %s differ: section [%zu] '%s' number of notes"
msgstr "%s %s różniÄ… siÄ™: liczba notatek sekcji [%zu] „%sâ€"
-#: src/elfcmp.c:451
+#: src/elfcmp.c:450
#, c-format
msgid "cannot read note section [%zu] '%s' in '%s': %s"
msgstr "nie można odczytać notatki sekcji [%zu] „%s†w „%sâ€: %s"
-#: src/elfcmp.c:462
+#: src/elfcmp.c:461
#, c-format
msgid "%s %s differ: section [%zu] '%s' note name"
msgstr "%s %s różniÄ… siÄ™: nazwa notatki sekcji [%zu] „%sâ€"
-#: src/elfcmp.c:470
+#: src/elfcmp.c:469
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' type"
msgstr "%s %s różnią się: sekcja [%zu] „%s†notatka „%s†typ"
-#: src/elfcmp.c:485
+#: src/elfcmp.c:484
#, c-format
msgid "%s %s differ: build ID length"
msgstr "%s %s różnią się: długość identyfikatora kopii"
-#: src/elfcmp.c:493
+#: src/elfcmp.c:492
#, c-format
msgid "%s %s differ: build ID content"
msgstr "%s %s różnią się: zawartość identyfikatora kopii"
-#: src/elfcmp.c:502
+#: src/elfcmp.c:501
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' content"
msgstr "%s %s różnią się: sekcja [%zu] „%s†notatka „%s†zawartość"
-#: src/elfcmp.c:543
+#: src/elfcmp.c:542
#, c-format
msgid "%s %s differ: section [%zu] '%s' content"
msgstr "%s %s różniÄ… siÄ™: zawartość sekcji [%zu] „%sâ€"
-#: src/elfcmp.c:547
+#: src/elfcmp.c:546
#, c-format
msgid "%s %s differ: section [%zu,%zu] '%s' content"
msgstr "%s %s różniÄ… siÄ™: zawartość sekcji [%zu,%zu] „%sâ€"
-#: src/elfcmp.c:562
+#: src/elfcmp.c:561
#, c-format
msgid "%s %s differ: unequal amount of important sections"
msgstr "%s %s różnią się: różna liczba ważnych sekcji"
-#: src/elfcmp.c:595 src/elfcmp.c:600
+#: src/elfcmp.c:594 src/elfcmp.c:599
#, c-format
msgid "cannot load data of '%s': %s"
msgstr "nie można wczytać danych z „%sâ€: %s"
-#: src/elfcmp.c:619 src/elfcmp.c:625
+#: src/elfcmp.c:618 src/elfcmp.c:624
#, 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"
-#: src/elfcmp.c:631
+#: src/elfcmp.c:630
#, c-format
msgid "%s %s differ: program header %d"
msgstr "%s %s różnią się: nagłówek programu %d"
-#: src/elfcmp.c:655
+#: src/elfcmp.c:654
#, c-format
msgid "%s %s differ: gap"
msgstr "%s %s różnią się: luka"
-#: src/elfcmp.c:706
+#: src/elfcmp.c:705
#, c-format
msgid "Invalid value '%s' for --gaps parameter."
msgstr "Nieprawidłowa wartość „%s†dla parametru --gaps."
-#: src/elfcmp.c:734 src/findtextrel.c:195 src/nm.c:364 src/ranlib.c:141
-#: src/size.c:272 src/strings.c:185 src/strip.c:1035 src/strip.c:1072
-#: src/unstrip.c:2197 src/unstrip.c:2226
+#: src/elfcmp.c:733 src/findtextrel.c:194 src/nm.c:363 src/ranlib.c:140
+#: src/size.c:271 src/strings.c:184 src/strip.c:1040 src/strip.c:1077
+#: src/unstrip.c:2194 src/unstrip.c:2223
#, c-format
msgid "cannot open '%s'"
msgstr "nie można otworzyć „%sâ€"
-#: src/elfcmp.c:738 src/findtextrel.c:214 src/ranlib.c:158
+#: src/elfcmp.c:737 src/findtextrel.c:213 src/ranlib.c:157
#, c-format
msgid "cannot create ELF descriptor for '%s': %s"
msgstr "nie można utworzyć deskryptora ELF dla „%sâ€: %s"
-#: src/elfcmp.c:743
+#: src/elfcmp.c:742
#, c-format
msgid "cannot create EBL descriptor for '%s'"
msgstr "nie można utworzyć deskryptora EBL dla „%sâ€"
-#: src/elfcmp.c:761 src/findtextrel.c:385
+#: src/elfcmp.c:760 src/findtextrel.c:384
#, 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:771
+#: src/elfcmp.c:770
#, c-format
msgid "cannot get content of section %zu: %s"
msgstr "nie można uzyskać zawartości sekcji %zu: %s"
-#: src/elfcmp.c:781 src/elfcmp.c:795
+#: src/elfcmp.c:780 src/elfcmp.c:794
#, c-format
msgid "cannot get relocation: %s"
msgstr "nie można uzyskać relokacji: %s"
-#: src/elfcompress.c:117 src/strip.c:308 src/unstrip.c:117
+#: src/elfcompress.c:117 src/strip.c:305 src/unstrip.c:116
#, c-format
msgid "-o option specified twice"
msgstr "OpcjÄ™ -o podano dwukrotnie"
@@ -1676,21 +1687,21 @@ msgid "unknown compression type '%s'"
msgstr "nieznany typ kompresji „%sâ€"
#. We need at least one input file.
-#: src/elfcompress.c:145 src/elfcompress.c:1345
+#: src/elfcompress.c:145 src/elfcompress.c:1369
#, c-format
msgid "No input file given"
msgstr "Nie podano pliku wejściowego"
-#: src/elfcompress.c:151 src/elfcompress.c:1350
+#: src/elfcompress.c:151 src/elfcompress.c:1373
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "Tylko jeden plik wejÅ›ciowy jest dozwolony z „-oâ€"
-#: src/elfcompress.c:1307
+#: src/elfcompress.c:1331
msgid "Place (de)compressed output into FILE"
msgstr "Umieszcza zdekompresowane wyjście w PLIKU"
-#: src/elfcompress.c:1310
+#: src/elfcompress.c:1334
msgid ""
"What type of compression to apply. TYPE can be 'none' (decompress), "
"'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias) or 'zlib-"
@@ -1700,7 +1711,7 @@ msgstr ""
"„zlib†(kompresja zlib ELF, domyślna, „zlib-gabi†to alias) lub „zlib-"
"gnu†(kompresja .zdebug w stylu GNU, „gnu†to alias)"
-#: src/elfcompress.c:1313
+#: src/elfcompress.c:1337
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
@@ -1708,11 +1719,11 @@ msgstr ""
"Nazwa SEKCJI do (de)kompresowania, SEKCJA jest rozszerzonym wzorem "
"(domyÅ›lnie „.?(z)debug*â€)"
-#: src/elfcompress.c:1316
+#: src/elfcompress.c:1340
msgid "Print a message for each section being (de)compressed"
msgstr "Wyświetla komunikat dla każdej (de)kompresowanej sekcji"
-#: src/elfcompress.c:1319
+#: src/elfcompress.c:1343
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
@@ -1721,31 +1732,31 @@ msgstr ""
"zaktualizowanie/przepisanie pliku, nawet jeśli żadna sekcja nie zostałaby "
"(zde)kompresowana"
-#: src/elfcompress.c:1322 src/strip.c:93
+#: src/elfcompress.c:1346 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "Åagodzi kilka reguÅ‚, aby obsÅ‚użyć lekko uszkodzone pliki ELF"
-#: src/elfcompress.c:1325
+#: src/elfcompress.c:1349
msgid "Be silent when a section cannot be compressed"
msgstr "Bez zgłaszania, kiedy nie można zdekompresować sekcji"
-#: src/elfcompress.c:1335
+#: src/elfcompress.c:1359
msgid "Compress or decompress sections in an ELF file."
msgstr "Kompresuje lub dekompresuje sekcje w pliku ELF."
-#: src/elflint.c:63
+#: src/elflint.c:62
msgid "Be extremely strict, flag level 2 features."
msgstr "Bardzo ścisłe sprawdzanie, cechy poziomu 2 flag."
-#: src/elflint.c:64
+#: src/elflint.c:63
msgid "Do not print anything if successful"
msgstr "Nie wypisywanie niczego w przypadku powodzenia"
-#: src/elflint.c:65
+#: src/elflint.c:64
msgid "Binary is a separate debuginfo file"
msgstr "Plik binarny jest oddzielnym plikiem debuginfo"
-#: src/elflint.c:67
+#: src/elflint.c:66
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1754,172 +1765,172 @@ msgstr ""
"w pewien sposób"
#. Short description of program.
-#: src/elflint.c:73
+#: src/elflint.c:72
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
"Szczegółowe sprawdzanie zgodności plików ELF ze specyfikacją gABI/psABI."
-#: src/elflint.c:154 src/readelf.c:368
+#: src/elflint.c:153 src/readelf.c:391
#, c-format
msgid "cannot open input file '%s'"
msgstr "nie można otworzyć pliku wejÅ›ciowego „%sâ€"
-#: src/elflint.c:161
+#: src/elflint.c:160
#, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "nie można utworzyć deskryptora ELF dla „%sâ€: %s\n"
-#: src/elflint.c:180
+#: src/elflint.c:179
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "błąd podczas zamykania deskryptora ELF: %s\n"
-#: src/elflint.c:184
+#: src/elflint.c:183
msgid "No errors"
msgstr "Brak błędów"
-#: src/elflint.c:219 src/readelf.c:577
+#: src/elflint.c:218 src/readelf.c:603
msgid "Missing file name.\n"
msgstr "Brak nazwy pliku.\n"
-#: src/elflint.c:284
+#: src/elflint.c:283
#, c-format
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:292
+#: src/elflint.c:291
#, c-format
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "To nie jest plik ELF — ma błędne bajty magiczne na początku\n"
-#: src/elflint.c:357
+#: src/elflint.c:356
#, c-format
msgid "e_ident[%d] == %d is no known class\n"
msgstr "e_ident[%d] == %d nie jest znanÄ… klasÄ…\n"
-#: src/elflint.c:362
+#: src/elflint.c:361
#, c-format
msgid "e_ident[%d] == %d is no known data encoding\n"
msgstr "e_ident[%d] == %d nie jest znanym kodowaniem danych\n"
-#: src/elflint.c:366
+#: src/elflint.c:365
#, c-format
msgid "unknown ELF header version number e_ident[%d] == %d\n"
msgstr "nieznany numer wersji nagłówka ELF e_ident[%d] == %d\n"
-#: src/elflint.c:374
+#: src/elflint.c:373
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
msgstr "nieobsÅ‚ugiwane ABI systemu operacyjnego e_ident[%d] == „%sâ€\n"
-#: src/elflint.c:380
+#: src/elflint.c:379
#, c-format
msgid "unsupported ABI version e_ident[%d] == %d\n"
msgstr "nieobsługiwana wersja ABI e_ident[%d] == %d\n"
-#: src/elflint.c:385
+#: src/elflint.c:384
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] nie wynosi zero\n"
-#: src/elflint.c:390
+#: src/elflint.c:389
#, c-format
msgid "unknown object file type %d\n"
msgstr "nieznany typ pliku obiektu %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:396
#, c-format
msgid "unknown machine type %d\n"
msgstr "nieznany typ komputera %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:400
#, c-format
msgid "unknown object file version\n"
msgstr "nieznana wersja pliku obiektu\n"
-#: src/elflint.c:407
+#: src/elflint.c:406
#, c-format
msgid "invalid program header offset\n"
msgstr "nieprawidłowy offset nagłówka programu\n"
-#: src/elflint.c:409
+#: src/elflint.c:408
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
"pliki wykonywalne i DSO nie mogą mieć zerowego offsetu nagłówka programu\n"
-#: src/elflint.c:413
+#: src/elflint.c:412
#, c-format
msgid "invalid number of program header entries\n"
msgstr "nieprawidłowa liczba wpisów nagłówka programu\n"
-#: src/elflint.c:421
+#: src/elflint.c:420
#, c-format
msgid "invalid section header table offset\n"
msgstr "nieprawidłowy offset tabeli nagłówków sekcji\n"
-#: src/elflint.c:424
+#: src/elflint.c:423
#, c-format
msgid "section header table must be present\n"
msgstr "tabela nagłówków sekcji musi istnieć\n"
-#: src/elflint.c:438
+#: src/elflint.c:437
#, c-format
msgid "invalid number of section header table entries\n"
msgstr "nieprawidłowa liczba wpisów tabeli nagłówków sekcji\n"
-#: src/elflint.c:455
+#: src/elflint.c:454
#, c-format
msgid "invalid section header index\n"
msgstr "nieprawidłowy indeks nagłówka sekcji\n"
-#: src/elflint.c:473
+#: src/elflint.c:472
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr "Można sprawdzić tylko nagłówki %u, shnum wynosiło %u\n"
-#: src/elflint.c:487
+#: src/elflint.c:486
#, c-format
msgid "invalid number of program header table entries\n"
msgstr "nieprawidłowa liczba wpisów tabeli nagłówka programu\n"
-#: src/elflint.c:504
+#: src/elflint.c:503
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr "Można sprawdzić tylko nagłówki %u, phnum wynosiło %u\n"
-#: src/elflint.c:509
+#: src/elflint.c:508
#, c-format
msgid "invalid machine flags: %s\n"
msgstr "nieprawidłowe flagi komputera: %s\n"
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:515 src/elflint.c:532
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr "nieprawidłowy rozmiar nagłówka ELF: %hd\n"
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:518 src/elflint.c:535
#, c-format
msgid "invalid program header size: %hd\n"
msgstr "nieprawidłowa rozmiar nagłówka programu: %hd\n"
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:521 src/elflint.c:538
#, c-format
msgid "invalid program header position or size\n"
msgstr "nieprawidłowe położenie lub rozmiar nagłówka programu\n"
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:524 src/elflint.c:541
#, c-format
msgid "invalid section header size: %hd\n"
msgstr "nieprawidłowy rozmiar nagłówka sekcji: %hd\n"
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:527 src/elflint.c:544
#, c-format
msgid "invalid section header position or size\n"
msgstr "nieprawidłowe położenie lub rozmiar nagłówka sekcji\n"
-#: src/elflint.c:590
+#: src/elflint.c:589
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1927,21 +1938,21 @@ msgid ""
msgstr ""
"sekcja [%2d] „%sâ€: sekcja z flagÄ… SHF_GROUP nie jest częściÄ… grupy sekcji\n"
-#: src/elflint.c:594
+#: src/elflint.c:593
#, 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"
-#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
-#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106
-#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4458
+#: src/elflint.c:609 src/elflint.c:1497 src/elflint.c:1548 src/elflint.c:1654
+#: src/elflint.c:1990 src/elflint.c:2316 src/elflint.c:2942 src/elflint.c:3105
+#: src/elflint.c:3253 src/elflint.c:3455 src/elflint.c:4464
#, 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:623 src/elflint.c:1662
+#: src/elflint.c:622 src/elflint.c:1661
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1950,7 +1961,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: użyta jako tabela ciÄ…gów dla sekcji [%2d] „%sâ€, ale nie "
"jest typu SHT_STRTAB\n"
-#: src/elflint.c:646
+#: src/elflint.c:645
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1959,12 +1970,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: tabela symboli nie może mieć wiÄ™cej niż jednej "
"rozszerzonej sekcji indeksów\n"
-#: src/elflint.c:658
+#: src/elflint.c:657
#, 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"
-#: src/elflint.c:662
+#: src/elflint.c:661
#, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
@@ -1973,33 +1984,33 @@ msgstr ""
"sekcja [%2u] „%sâ€: liczba lokalnych wpisów w „st_info†jest wiÄ™ksza niż "
"rozmiar tabeli\n"
-#: src/elflint.c:671
+#: src/elflint.c:670
#, c-format
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:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685
-#: src/elflint.c:688 src/elflint.c:691
+#: src/elflint.c:675 src/elflint.c:678 src/elflint.c:681 src/elflint.c:684
+#: src/elflint.c:687 src/elflint.c:690
#, 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"
-#: src/elflint.c:694
+#: src/elflint.c:693
#, 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"
-#: src/elflint.c:704
+#: src/elflint.c:703
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
msgstr "sekcja [%2d] „%sâ€: nie można uzyskać symbolu %zu: %s\n"
-#: src/elflint.c:713
+#: src/elflint.c:712
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr "sekcja [%2d] „%sâ€: symbol %zu: nieprawidÅ‚owa wartość nazwy\n"
-#: src/elflint.c:728
+#: src/elflint.c:727
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -2008,7 +2019,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): za duży indeks sekcji, ale nie ma sekcji "
"rozszerzonych indeksów sekcji\n"
-#: src/elflint.c:734
+#: src/elflint.c:733
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -2018,28 +2029,28 @@ msgstr ""
"zmieściłby się w st_shndx (%<PRIu32>)\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:745
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n"
msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nieprawidÅ‚owy indeks sekcji\n"
-#: src/elflint.c:754
+#: src/elflint.c:753
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n"
msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nieznany typ\n"
-#: src/elflint.c:760
+#: src/elflint.c:759
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n"
msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nieznane dowiÄ…zanie symbolu\n"
-#: src/elflint.c:765
+#: src/elflint.c:764
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n"
msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): unikalny symbol nie jest typem obiektu\n"
-#: src/elflint.c:773
+#: src/elflint.c:772
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2048,26 +2059,26 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): COMMON jest dozwolone tylko w plikach "
"relokowalnych\n"
-#: src/elflint.c:777
+#: src/elflint.c:776
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): lokalne symbole COMMON to nonsens\n"
-#: src/elflint.c:781
+#: src/elflint.c:780
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): funkcja w sekcji COMMON to nonsens\n"
-#: src/elflint.c:832
+#: src/elflint.c:831
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n"
msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): st_value spoza zakresu\n"
-#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912
+#: src/elflint.c:837 src/elflint.c:862 src/elflint.c:911
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2076,7 +2087,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s) nie mieÅ›ci siÄ™ w caÅ‚oÅ›ci we wskazywanej "
"sekcji [%2d] „%sâ€\n"
-#: src/elflint.c:847
+#: src/elflint.c:846
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2085,7 +2096,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): wskazywana sekcja [%2d] „%s†nie ma "
"ustawionej flagi SHF_TLS\n"
-#: src/elflint.c:857 src/elflint.c:905
+#: src/elflint.c:856 src/elflint.c:904
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2094,7 +2105,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): st_value spoza zakresu wskazywanej "
"sekcji [%2d] „%sâ€\n"
-#: src/elflint.c:884
+#: src/elflint.c:883
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2103,7 +2114,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): symbol TLS, ale brak wpisu TLS nagłówka "
"programu\n"
-#: src/elflint.c:890
+#: src/elflint.c:889
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2112,7 +2123,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): symbol TLS, ale nie można uzyskać wpisu "
"TLS nagłówka programu\n"
-#: src/elflint.c:898
+#: src/elflint.c:897
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2121,7 +2132,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): st_value pomija wskazywanÄ… sekcjÄ™ [%2d] "
"„%sâ€\n"
-#: src/elflint.c:925
+#: src/elflint.c:924
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2130,7 +2141,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): lokalny symbol spoza zakresu okreÅ›lonego "
"w sh_info\n"
-#: src/elflint.c:932
+#: src/elflint.c:931
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2139,12 +2150,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): nielokalny symbol spoza zakresu "
"określonego w sh_info\n"
-#: src/elflint.c:939
+#: src/elflint.c:938
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n"
msgstr "sekcja [%2d] „%sâ€: symbol %zu (%s): nielokalny symbol sekcji\n"
-#: src/elflint.c:989
+#: src/elflint.c:988
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2153,7 +2164,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol _GLOBAL_OFFSET_TABLE_ odnosi siÄ™ do bÅ‚Ä™dnej sekcji "
"[%2d]\n"
-#: src/elflint.c:996
+#: src/elflint.c:995
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2165,7 +2176,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:1012
+#: src/elflint.c:1011
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2174,7 +2185,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: wartość symbolu _GLOBAL_OFFSET_TABLE_ %#<PRIx64> nie "
"pasuje do adresu sekcji %s %#<PRIx64>\n"
-#: src/elflint.c:1019
+#: src/elflint.c:1018
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2183,7 +2194,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: rozmiar symbolu _GLOBAL_OFFSET_TABLE_ %<PRIu64> nie "
"pasuje do rozmiaru sekcji %s %<PRIu64>\n"
-#: src/elflint.c:1027
+#: src/elflint.c:1026
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2192,7 +2203,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ."
"got\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1042
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2201,7 +2212,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do adresu "
"segmentu dynamicznego %#<PRIx64>\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1049
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2210,7 +2221,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do "
"rozmiaru segmentu dynamicznego %<PRIu64>\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1062
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2219,28 +2230,28 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): symbol w dynamicznej tabeli symboli "
"z niedomyślną widocznością\n"
-#: src/elflint.c:1067
+#: src/elflint.c:1066
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n"
msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): ustawiono nieznany bit w st_other\n"
-#: src/elflint.c:1105
+#: src/elflint.c:1104
#, 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:1121
+#: src/elflint.c:1120
#, 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:1132 src/elflint.c:1185
+#: src/elflint.c:1131 src/elflint.c:1184
#, 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:1157 src/elflint.c:1210
+#: src/elflint.c:1156 src/elflint.c:1209
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2249,7 +2260,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: relokacje wzglÄ™dne po indeksie %d podanym przez "
"DT_RELCOUNT\n"
-#: src/elflint.c:1163 src/elflint.c:1216
+#: src/elflint.c:1162 src/elflint.c:1215
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2258,50 +2269,50 @@ msgstr ""
"sekcja [%2d] „%sâ€: relokacja bezwzglÄ™dna pod indeksem %zu; DT_RELCOUNT podaÅ‚ "
"%d relokacji względnych\n"
-#: src/elflint.c:1175
+#: src/elflint.c:1174
#, 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:1258
+#: src/elflint.c:1257
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr "sekcja [%2d] „%sâ€: nieprawidÅ‚owy indeks sekcji docelowej\n"
-#: src/elflint.c:1270
+#: src/elflint.c:1269
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr "sekcja [%2d] „%sâ€: nieprawidÅ‚owy typ sekcji docelowej\n"
-#: src/elflint.c:1278
+#: src/elflint.c:1277
#, c-format
msgid "section [%2d] '%s': sh_info should be zero\n"
msgstr "sekcja [%2d] „%sâ€: sh_info musi wynosić zero\n"
-#: src/elflint.c:1286
+#: src/elflint.c:1285
#, 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:1294
+#: src/elflint.c:1293
#, 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:1354
+#: src/elflint.c:1353
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
"flaga relokacji tekstu jest ustawiona, ale nie ma segmentu tylko do odczytu\n"
-#: src/elflint.c:1381
+#: src/elflint.c:1380
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr "sekcja [%2d] „%sâ€: relokacja %zu: nieprawidÅ‚owy typ\n"
-#: src/elflint.c:1389
+#: src/elflint.c:1388
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2310,12 +2321,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: relokacja %zu: typ relokacji nieprawidÅ‚owy dla tego typu "
"pliku\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1396
#, 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:1415
+#: src/elflint.c:1414
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2324,12 +2335,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: relokacja %zu: z %s można użyć tylko symbolu "
"„_GLOBAL_OFFSET_TABLE_â€\n"
-#: src/elflint.c:1432
+#: src/elflint.c:1431
#, 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:1447
+#: src/elflint.c:1446
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2337,7 +2348,7 @@ msgid ""
msgstr ""
"sekcja [%2d] „%sâ€: relokacja %zu: relokacja kopii wzglÄ™dem symbolu typu %s\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1467
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2346,23 +2357,23 @@ msgstr ""
"sekcja [%2d] „%sâ€: relokacja %zu: sekcja tylko do odczytu zostaÅ‚a "
"zmodyfikowana, ale nie ustawiono flagi relokacji tekstu\n"
-#: src/elflint.c:1483
+#: src/elflint.c:1482
#, 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:1523 src/elflint.c:1574
+#: src/elflint.c:1522 src/elflint.c:1573
#, 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:1650
+#: src/elflint.c:1649
#, c-format
msgid "more than one dynamic section present\n"
msgstr "obecna jest więcej niż jedna sekcja dynamiczna\n"
-#: src/elflint.c:1668
+#: src/elflint.c:1667
#, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2371,43 +2382,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:1676
+#: src/elflint.c:1675
#, 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:1681 src/elflint.c:1970
+#: src/elflint.c:1680 src/elflint.c:1969
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr "sekcja [%2d] „%sâ€: sh_info nie wynosi zero\n"
-#: src/elflint.c:1691
+#: src/elflint.c:1690
#, 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:1699
+#: src/elflint.c:1698
#, 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:1706
+#: src/elflint.c:1705
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr "sekcja [%2d] „%sâ€: wpis %zu: nieznany znacznik\n"
-#: src/elflint.c:1717
+#: src/elflint.c:1716
#, 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:1727
+#: src/elflint.c:1726
#, 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:1745
+#: src/elflint.c:1744
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -2415,7 +2426,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis %zu: wartość DT_PLTREL musi wynosić DT_REL lub "
"DT_RELA\n"
-#: src/elflint.c:1758
+#: src/elflint.c:1757
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -2424,14 +2435,14 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] „%s†"
"wskazywanej przez sh_link\n"
-#: src/elflint.c:1801
+#: src/elflint.c:1800
#, 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:1816
+#: src/elflint.c:1815
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -2440,48 +2451,48 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis %zu: wartość %s musi być prawidÅ‚owym offsetem "
"w sekcji [%2d] „%sâ€\n"
-#: src/elflint.c:1836 src/elflint.c:1864
+#: src/elflint.c:1835 src/elflint.c:1863
#, 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:1848
+#: src/elflint.c:1847
#, 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:1857
+#: src/elflint.c:1856
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
msgstr "sekcja [%2d] „%sâ€: brak sekcji skrótów\n"
-#: src/elflint.c:1872 src/elflint.c:1879
+#: src/elflint.c:1871 src/elflint.c:1878
#, 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:1889 src/elflint.c:1893
+#: src/elflint.c:1888 src/elflint.c:1892
#, 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:1899
+#: src/elflint.c:1898
#, 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:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922
+#: src/elflint.c:1909 src/elflint.c:1913 src/elflint.c:1917 src/elflint.c:1921
#, 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:1934
+#: src/elflint.c:1933
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2489,7 +2500,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: tylko pliki relokowalne mogÄ… mieć rozszerzonÄ… sekcjÄ™ "
"indeksów\n"
-#: src/elflint.c:1944
+#: src/elflint.c:1943
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
@@ -2497,31 +2508,31 @@ msgstr ""
"sekcja [%2d] „%sâ€: sekcja rozszerzonych indeksów sekcji nie dla tabeli "
"symboli\n"
-#: src/elflint.c:1948
+#: src/elflint.c:1947
#, 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:1953
+#: src/elflint.c:1952
#, c-format
msgid "cannot get data for symbol section\n"
msgstr "nie można uzyskać danych dla sekcji symboli\n"
-#: src/elflint.c:1956
+#: src/elflint.c:1955
#, 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:1965
+#: src/elflint.c:1964
#, 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:1980
+#: src/elflint.c:1979
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2530,24 +2541,24 @@ msgstr ""
"sekcja [%2d] „%sâ€: rozszerzony indeks sekcji w sekcji [%2zu] „%s†odwoÅ‚uje "
"siÄ™ do tej samej tabeli symboli\n"
-#: src/elflint.c:1998
+#: src/elflint.c:1997
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr "symbol 0 musi mieć zerowy rozszerzony indeks sekcji\n"
-#: src/elflint.c:2010
+#: src/elflint.c:2009
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr "nie można uzyskać danych dla symbolu %zu\n"
-#: src/elflint.c:2015
+#: src/elflint.c:2014
#, c-format
msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
msgstr ""
"rozszerzony indeks sekcji wynosi %<PRIu32>, ale indeks symbolu nie wynosi "
"XINDEX\n"
-#: src/elflint.c:2032 src/elflint.c:2089
+#: src/elflint.c:2031 src/elflint.c:2088
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2555,43 +2566,43 @@ msgstr ""
"sekcja [%2d] „%sâ€: sekcja tabeli mieszajÄ…cej jest za maÅ‚a (%ld, oczekiwano "
"%ld)\n"
-#: src/elflint.c:2046 src/elflint.c:2103
+#: src/elflint.c:2045 src/elflint.c:2102
#, 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:2060 src/elflint.c:2117
+#: src/elflint.c:2059 src/elflint.c:2116
#, 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:2070
+#: src/elflint.c:2069
#, 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:2127
+#: src/elflint.c:2126
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
"sekcja [%2d] „%sâ€: odwoÅ‚anie do Å‚aÅ„cucha skrótu %<PRIu64> jest spoza "
"zakresu\n"
-#: src/elflint.c:2140
+#: src/elflint.c:2139
#, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr "sekcja [%2d] „%sâ€: brak wystarczajÄ…cej iloÅ›ci danych\n"
-#: src/elflint.c:2152
+#: src/elflint.c:2151
#, 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:2168
+#: src/elflint.c:2167
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2600,13 +2611,13 @@ msgstr ""
"sekcja [%2d] „%sâ€: sekcja tabeli mieszajÄ…cej jest za maÅ‚a (wynosi %ld, "
"oczekiwano co najmniej %ld)\n"
-#: src/elflint.c:2177
+#: src/elflint.c:2176
#, 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:2211
+#: src/elflint.c:2210
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2614,7 +2625,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: Å‚aÅ„cuch mieszajÄ…cy dla kubeÅ‚ka %zu jest mniejszy niż "
"przesunięcie indeksu symboli\n"
-#: src/elflint.c:2232
+#: src/elflint.c:2231
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2623,7 +2634,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %u wskazywany w łaÅ„cuchu dla kubeÅ‚ka %zu jest "
"nieokreślony\n"
-#: src/elflint.c:2245
+#: src/elflint.c:2244
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2631,7 +2642,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:2254
+#: src/elflint.c:2253
#, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2639,12 +2650,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: indeks maski dla symbolu %u w łaÅ„cuchu dla kubeÅ‚ka %zu "
"jest błędny\n"
-#: src/elflint.c:2284
+#: src/elflint.c:2283
#, 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:2289
+#: src/elflint.c:2288
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2652,41 +2663,41 @@ msgstr ""
"sekcja [%2d] „%sâ€: odwoÅ‚anie do symbolu w łaÅ„cuchu dla kubeÅ‚ka %zu jest "
"spoza zakresu\n"
-#: src/elflint.c:2295
+#: src/elflint.c:2294
#, 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:2308
+#: src/elflint.c:2307
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
"sekcja [%2d] „%sâ€: pliki relokowalne nie mogÄ… mieć tabeli mieszajÄ…cych\n"
-#: src/elflint.c:2326
+#: src/elflint.c:2325
#, 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:2330
+#: src/elflint.c:2329
#, 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:2340
+#: src/elflint.c:2339
#, 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:2345
+#: src/elflint.c:2344
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr "sekcja [%2d] „%sâ€: nieoznaczona do przydzielenia\n"
-#: src/elflint.c:2350
+#: src/elflint.c:2349
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2695,29 +2706,29 @@ msgstr ""
"sekcja [%2d] „%sâ€: tabela mieszajÄ…ca nie ma miejsca nawet na poczÄ…tkowe "
"wpisy administracyjne\n"
-#: src/elflint.c:2399
+#: src/elflint.c:2398
#, 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:2423 src/elflint.c:2488 src/elflint.c:2523
+#: src/elflint.c:2422 src/elflint.c:2487 src/elflint.c:2522
#, 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:2444
+#: src/elflint.c:2443
#, c-format
msgid "hash section [%2zu] '%s' has zero bit mask words\n"
msgstr "sekcja mieszania [%2zu] „%s†ma zerowe słowa maski bitów\n"
-#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536
+#: src/elflint.c:2454 src/elflint.c:2498 src/elflint.c:2535
#, 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:2470
+#: src/elflint.c:2469
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
@@ -2726,17 +2737,17 @@ msgstr ""
"sekcja mieszająca [%2zu] „%s†nieprawidłowy indeks symboli %<PRIu32> "
"(max_nsyms: %<PRIu32>, nentries: %<PRIu32>\n"
-#: src/elflint.c:2557
+#: src/elflint.c:2556
#, c-format
msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
msgstr "sekcja mieszania [%2zu] „%s†nieprawidłowe sh_entsize\n"
-#: src/elflint.c:2567 src/elflint.c:2571
+#: src/elflint.c:2566 src/elflint.c:2570
#, 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:2578
+#: src/elflint.c:2577
#, c-format
msgid ""
"symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2745,7 +2756,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:2590
+#: src/elflint.c:2589
#, c-format
msgid ""
"symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2754,12 +2765,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:2606
+#: src/elflint.c:2605
#, 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:2626
+#: src/elflint.c:2625
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2767,96 +2778,96 @@ msgstr ""
"sekcja [%2d] „%sâ€: w plikach obiektów relokowalnych dozwolone sÄ… tylko grupy "
"sekcji\n"
-#: src/elflint.c:2637
+#: src/elflint.c:2636
#, 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:2642
+#: src/elflint.c:2641
#, c-format
msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
msgstr ""
"sekcja [%2d] „%sâ€: odwoÅ‚anie do sekcji w sh_link nie ma tabeli symboli\n"
-#: src/elflint.c:2648
+#: src/elflint.c:2647
#, 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:2653
+#: src/elflint.c:2652
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr "sekcja [%2d] „%sâ€: niezerowe sh_flags\n"
-#: src/elflint.c:2660
+#: src/elflint.c:2659
#, 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:2664
+#: src/elflint.c:2663
#, 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:2669
+#: src/elflint.c:2668
#, 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:2675
+#: src/elflint.c:2674
#, 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:2681
+#: src/elflint.c:2680
#, 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:2690
+#: src/elflint.c:2689
#, 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:2696
+#: src/elflint.c:2695
#, 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:2704
+#: src/elflint.c:2703
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr "sekcja [%2d] „%sâ€: grupa sekcji bez elementów\n"
-#: src/elflint.c:2708
+#: src/elflint.c:2707
#, 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:2719
+#: src/elflint.c:2718
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr "sekcja [%2d] „%sâ€: nieznane flagi grupy sekcji\n"
-#: src/elflint.c:2731
+#: src/elflint.c:2730
#, 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:2740
+#: src/elflint.c:2739
#, 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:2747
+#: src/elflint.c:2746
#, 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:2753
+#: src/elflint.c:2752
#, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2865,12 +2876,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: element %zu odwoÅ‚uje siÄ™ do sekcji [%2d] „%s†bez flagi "
"SHF_GROUP\n"
-#: src/elflint.c:2760
+#: src/elflint.c:2759
#, 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:2957
+#: src/elflint.c:2956
#, c-format
msgid ""
"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2879,7 +2890,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:2969
+#: src/elflint.c:2968
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2887,76 +2898,76 @@ msgid ""
msgstr ""
"sekcja [%2d] „%s†ma innÄ… liczbÄ™ wpisów niż tabela symboli [%2d] „%sâ€\n"
-#: src/elflint.c:2985
+#: src/elflint.c:2984
#, 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:3001
+#: src/elflint.c:3000
#, 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:3009
+#: src/elflint.c:3008
#, 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:3023
+#: src/elflint.c:3022
#, 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:3028
+#: src/elflint.c:3027
#, 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:3038
+#: src/elflint.c:3037
#, 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:3091
+#: src/elflint.c:3090
#, 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:3099 src/elflint.c:3246
+#: src/elflint.c:3098 src/elflint.c:3245
#, 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:3124 src/elflint.c:3300
+#: src/elflint.c:3123 src/elflint.c:3299
#, c-format
msgid "section [%2d] '%s': entry %d has wrong version %d\n"
msgstr "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dnÄ… wersjÄ™ %d\n"
-#: src/elflint.c:3131 src/elflint.c:3307
+#: src/elflint.c:3130 src/elflint.c:3306
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
msgstr "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dny offset dla danych dodatkowych\n"
-#: src/elflint.c:3141
+#: src/elflint.c:3140
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
msgstr "sekcja [%2d] „%sâ€: symbol %d ma bÅ‚Ä™dne odniesienie do pliku\n"
-#: src/elflint.c:3149
+#: src/elflint.c:3148
#, 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:3161
+#: src/elflint.c:3160
#, c-format
msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
msgstr "sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma nieznanÄ… flagÄ™\n"
-#: src/elflint.c:3169
+#: src/elflint.c:3168
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2965,7 +2976,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma nieprawidÅ‚owe "
"odniesienie do nazwy\n"
-#: src/elflint.c:3178
+#: src/elflint.c:3177
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -2974,7 +2985,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma bÅ‚Ä™dnÄ… wartość skrótu: "
"%#x, oczekiwano %#x\n"
-#: src/elflint.c:3187
+#: src/elflint.c:3186
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -2983,19 +2994,19 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma powtórzonÄ… nazwÄ™ wersji "
"„%sâ€\n"
-#: src/elflint.c:3198
+#: src/elflint.c:3197
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
msgstr ""
"sekcja [%2d] „%sâ€: wpis dodatkowy %d do wpisu %d ma bÅ‚Ä™dne nastÄ™pne pole\n"
-#: src/elflint.c:3215 src/elflint.c:3391
+#: src/elflint.c:3214 src/elflint.c:3390
#, c-format
msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
msgstr "sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dny offset do nastÄ™pnego wpisu\n"
-#: src/elflint.c:3223 src/elflint.c:3399
+#: src/elflint.c:3222 src/elflint.c:3398
#, c-format
msgid ""
"section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -3004,43 +3015,43 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis %d ma zerowy offset do nastÄ™pnego wpisu, ale sh_info "
"zawiera informacje o większej liczbie wpisów\n"
-#: src/elflint.c:3238
+#: src/elflint.c:3237
#, 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:3285
+#: src/elflint.c:3284
#, 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:3289
+#: src/elflint.c:3288
#, c-format
msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
msgstr "sekcja [%2d] „%sâ€: definicja BASE musi mieć indeks VER_NDX_GLOBAL\n"
-#: src/elflint.c:3295
+#: src/elflint.c:3294
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr "sekcja [%2d] „%sâ€: wpis %d ma nieznanÄ… flagÄ™\n"
-#: src/elflint.c:3322
+#: src/elflint.c:3321
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
msgstr "sekcja [%2d] „%sâ€: wpis %d ma nieprawidÅ‚owe odniesienie do nazwy\n"
-#: src/elflint.c:3329
+#: src/elflint.c:3328
#, c-format
msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
msgstr ""
"sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dnÄ… wartość skrótu: %#x, oczekiwano %#x\n"
-#: src/elflint.c:3337
+#: src/elflint.c:3336
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
msgstr "sekcja [%2d] „%sâ€: wpis %d ma powtórzonÄ… nazwÄ™ wersji „%sâ€\n"
-#: src/elflint.c:3357
+#: src/elflint.c:3356
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -3048,51 +3059,51 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis %d ma nieprawidÅ‚owe odniesienie do nazwy w danych "
"dodatkowych\n"
-#: src/elflint.c:3374
+#: src/elflint.c:3373
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
msgstr ""
"sekcja [%2d] „%sâ€: wpis %d ma bÅ‚Ä™dne nastÄ™pne pole w danych dodatkowych\n"
-#: src/elflint.c:3407
+#: src/elflint.c:3406
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr "sekcja [%2d] „%sâ€: brak definicji BASE\n"
-#: src/elflint.c:3423
+#: src/elflint.c:3422
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr "sekcja [%2d] „%sâ€: nieznana wersja rodzica „%sâ€\n"
-#: src/elflint.c:3448
+#: src/elflint.c:3447
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr "sekcja [%2d] „%sâ€: pusta sekcja atrybutów obiektu\n"
-#: src/elflint.c:3464
+#: src/elflint.c:3463
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr "sekcja [%2d] „%sâ€: nierozpoznany format atrybutu\n"
-#: src/elflint.c:3475
+#: src/elflint.c:3474
#, 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:3484
+#: src/elflint.c:3483
#, 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:3496
+#: src/elflint.c:3495
#, 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:3513
+#: src/elflint.c:3512
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -3100,19 +3111,19 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: niekoÅ„czÄ…ce siÄ™ ULEB128 w znaczniku podsekcji "
"atrybutów\n"
-#: src/elflint.c:3522
+#: src/elflint.c:3521
#, 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:3531
+#: src/elflint.c:3530
#, 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:3546
+#: src/elflint.c:3545
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -3120,7 +3131,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: nieprawidÅ‚owa dÅ‚ugość w podsekcji atrybutów\n"
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3556
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -3128,23 +3139,23 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: podsekcja atrybutów ma nieoczekiwany znacznik "
"%u\n"
-#: src/elflint.c:3575
+#: src/elflint.c:3574
#, 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:3586
+#: src/elflint.c:3585
#, 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:3599
+#: src/elflint.c:3598
#, 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:3603
+#: src/elflint.c:3602
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
@@ -3152,12 +3163,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: atrybut %s ma nierozpoznanÄ… wartość "
"%<PRIu64>\n"
-#: src/elflint.c:3613
+#: src/elflint.c:3612
#, 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:3619
+#: src/elflint.c:3618
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -3165,47 +3176,47 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: dodatkowe bajty po ostatniej sekcji "
"atrybutów\n"
-#: src/elflint.c:3716
+#: src/elflint.c:3715
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr "nie można uzyskać nagłówka sekcji zerowej\n"
-#: src/elflint.c:3720
+#: src/elflint.c:3719
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr "sekcja zerowa ma niezerowÄ… nazwÄ™\n"
-#: src/elflint.c:3722
+#: src/elflint.c:3721
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr "sekcja zerowa ma niezerowy typ\n"
-#: src/elflint.c:3724
+#: src/elflint.c:3723
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr "sekcja zerowa ma niezerowe flagi\n"
-#: src/elflint.c:3726
+#: src/elflint.c:3725
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr "sekcja zerowa ma niezerowy adres\n"
-#: src/elflint.c:3728
+#: src/elflint.c:3727
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr "sekcja zerowa ma niezerowy offset\n"
-#: src/elflint.c:3730
+#: src/elflint.c:3729
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr "sekcja zerowa ma niezerową wartość wyrównania\n"
-#: src/elflint.c:3732
+#: src/elflint.c:3731
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr "sekcja zerowa ma niezerową wartość rozmiaru wpisu\n"
-#: src/elflint.c:3735
+#: src/elflint.c:3734
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -3214,7 +3225,7 @@ msgstr ""
"sekcja zerowa ma niezerową wartość rozmiaru, a nagłówek ELF ma niezerową "
"wartość shnum\n"
-#: src/elflint.c:3739
+#: src/elflint.c:3738
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3223,7 +3234,7 @@ msgstr ""
"sekcja zerowa ma niezerową wartość dowiązań, a nagłówek ELF nie wskazuje "
"przepełnienia w shstrndx\n"
-#: src/elflint.c:3743
+#: src/elflint.c:3742
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3232,46 +3243,46 @@ msgstr ""
"sekcja zerowa ma niezerową wartość dowiązań, a nagłówek ELF nie wskazuje "
"przepełnienia w phnum\n"
-#: src/elflint.c:3761
+#: src/elflint.c:3760
#, 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:3770
+#: src/elflint.c:3769
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr "sekcja [%2zu]: nieprawidłowa nazwa\n"
-#: src/elflint.c:3797
+#: src/elflint.c:3796
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr "sekcja [%2d] „%s†ma błędny typ: oczekiwano %s, jest %s\n"
-#: src/elflint.c:3814
+#: src/elflint.c:3813
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr "sekcja [%2zu] „%s†ma błędne flagi: oczekiwano %s, jest %s\n"
-#: src/elflint.c:3832
+#: src/elflint.c:3831
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
msgstr ""
"sekcja [%2zu] „%s†ma błędne flagi: oczekiwano %s i być może %s, jest %s\n"
-#: src/elflint.c:3849
+#: src/elflint.c:3848
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr "sekcja [%2zu] „%s†jest obecna w pliku obiektu\n"
-#: src/elflint.c:3855 src/elflint.c:3887
+#: src/elflint.c:3854 src/elflint.c:3886
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
msgstr ""
"sekcja [%2zu] „%s†ma flagę SHF_ALLOC, ale nie ma segmentu wczytywalnego\n"
-#: src/elflint.c:3860 src/elflint.c:3892
+#: src/elflint.c:3859 src/elflint.c:3891
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -3279,7 +3290,7 @@ msgid ""
msgstr ""
"sekcja [%2zu] „%s†nie ma flagi SHF_ALLOC, ale są segmenty wczytywalne\n"
-#: src/elflint.c:3868
+#: src/elflint.c:3867
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -3287,22 +3298,22 @@ msgstr ""
"sekcja [%2zu] „%s†jest tabelą indeksów sekcji rozszerzeń w pliku "
"nieobiektowym\n"
-#: src/elflint.c:3911
+#: src/elflint.c:3910
#, 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:3916
+#: src/elflint.c:3915
#, c-format
msgid "cannot get section header\n"
msgstr "nie można uzyskać nagłówka sekcji\n"
-#: src/elflint.c:3926
+#: src/elflint.c:3925
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "sekcja [%2zu] „%s†ma nieobsługiwany typ %d\n"
-#: src/elflint.c:3946
+#: src/elflint.c:3945
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3310,74 +3321,74 @@ msgstr ""
"sekcja [%2zu] „%s†zawiera nieprawidłowe flagi dla konkretnego procesora "
"%#<PRIx64>\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3955
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "sekcja [%2zu] „%s†zawiera nieznane flagi %#<PRIx64>\n"
-#: src/elflint.c:3964
+#: src/elflint.c:3963
#, 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:3974
+#: src/elflint.c:3973
#, 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:3979
+#: src/elflint.c:3978
#, 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:3985
+#: src/elflint.c:3984
#, 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:3991
+#: src/elflint.c:3990
#, 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:3996
+#: src/elflint.c:3995
#, 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:4003
+#: src/elflint.c:4002
#, 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:4008
+#: src/elflint.c:4007
#, 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:4027
+#: src/elflint.c:4026
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr "sekcja [%2zu] „%s†ma nieoczekiwany typ %d dla sekcji wykonywalnej\n"
-#: src/elflint.c:4036
+#: src/elflint.c:4035
#, 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:4043
+#: src/elflint.c:4042
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "sekcja [%2zu] „%s†jest wykonywalne i zapisywalne\n"
-#: src/elflint.c:4074
+#: src/elflint.c:4073
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3386,7 +3397,7 @@ msgstr ""
"sekcja [%2zu] „%s†nie jest w całości zawarta w segmencie wpisu %d nagłówka "
"programu\n"
-#: src/elflint.c:4084
+#: src/elflint.c:4083
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3395,7 +3406,7 @@ msgstr ""
"sekcja [%2zu] „%s†ma typ NOBITS, a jest odczytywana z pliku w segmencie "
"wpisu %d nagłówka programu\n"
-#: src/elflint.c:4110
+#: src/elflint.c:4109
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3404,7 +3415,7 @@ msgstr ""
"sekcja [%2zu] „%s†ma typ NOBITS, ale jest odczytywana z pliku w segmencie "
"wpisu %d nagłówka programu, a zawartość pliku jest niezerowa\n"
-#: src/elflint.c:4121
+#: src/elflint.c:4120
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3413,17 +3424,17 @@ msgstr ""
"sekcja [%2zu] „%s†nie ma typu NOBITS, a nie jest odczytywana z pliku "
"w segmencie wpisu %d nagłówka programu\n"
-#: src/elflint.c:4132
+#: src/elflint.c:4131
#, 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:4142
+#: src/elflint.c:4141
#, 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:4152
+#: src/elflint.c:4151
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3431,7 +3442,7 @@ msgstr ""
"sekcja [%2zu] „%sâ€: ma flagÄ™ alloc, ale sekcja nie jest w żadnym segmencie "
"wczytywalnym\n"
-#: src/elflint.c:4158
+#: src/elflint.c:4157
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3440,7 +3451,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:4166
+#: src/elflint.c:4165
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3448,17 +3459,17 @@ msgstr ""
"sekcja [%2zu] „%sâ€: pliki relokowalne nie mogÄ… mieć tabeli symboli "
"dynamicznych\n"
-#: src/elflint.c:4217
+#: src/elflint.c:4216
#, 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:4240
+#: src/elflint.c:4239
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr "jest wpis nagłówka programu INTERP, ale nie ma sekcji .interp\n"
-#: src/elflint.c:4251
+#: src/elflint.c:4250
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
@@ -3466,14 +3477,14 @@ msgstr ""
"wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych "
"sekcji\n"
-#: src/elflint.c:4257
+#: src/elflint.c:4256
#, 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:4268
+#: src/elflint.c:4267
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3482,23 +3493,23 @@ msgstr ""
"brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu."
"versym_r\n"
-#: src/elflint.c:4281
+#: src/elflint.c:4280
#, c-format
msgid "duplicate version index %d\n"
msgstr "powtórzony indeks wersji %d\n"
-#: src/elflint.c:4295
+#: src/elflint.c:4294
#, 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:4344
+#: src/elflint.c:4343
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
"phdr[%d]: nieznany typ notatki pliku core %<PRIu32> pod offsetem %<PRIu64>\n"
-#: src/elflint.c:4348
+#: src/elflint.c:4347
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3506,7 +3517,7 @@ msgstr ""
"sekcja [%2d]: „%sâ€: nieznany typ notatki pliku core %<PRIu32> pod offsetem "
"%zu\n"
-#: src/elflint.c:4397
+#: src/elflint.c:4403
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3515,7 +3526,7 @@ msgstr ""
"phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> o nazwie właściciela "
"„%s†pod offsetem %zu\n"
-#: src/elflint.c:4402
+#: src/elflint.c:4408
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3524,37 +3535,37 @@ msgstr ""
"sekcja [%2d] „%sâ€: nieznany typ notatki pliku obiektu %<PRIu32> o nazwie "
"właściciela „%s†pod offsetem %zu\n"
-#: src/elflint.c:4421
+#: src/elflint.c:4427
#, 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:4441
+#: src/elflint.c:4447
#, 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:4444
+#: src/elflint.c:4450
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: dodatkowe %<PRIu64> B po ostatniej notatce\n"
-#: src/elflint.c:4465
+#: src/elflint.c:4471
#, 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:4472
+#: src/elflint.c:4478
#, 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:4475
+#: src/elflint.c:4481
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr "sekcja [%2d] „%sâ€: dodatkowe %<PRIu64> B po ostatniej notatce\n"
-#: src/elflint.c:4493
+#: src/elflint.c:4499
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3562,135 +3573,135 @@ msgstr ""
"tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą mieć "
"nagłówki programu\n"
-#: src/elflint.c:4508
+#: src/elflint.c:4514
#, 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:4518
+#: src/elflint.c:4524
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"wpis nagłówka programu %d: nieznany typ wpisu nagłówka programu %#<PRIx64>\n"
-#: src/elflint.c:4529
+#: src/elflint.c:4535
#, 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:4537
+#: src/elflint.c:4543
#, 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:4544
+#: src/elflint.c:4550
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "statyczny plik wykonywalny nie może mieć sekcji dynamicznych\n"
-#: src/elflint.c:4558
+#: src/elflint.c:4564
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr "odniesienie sekcji dynamicznej w nagłówku programu ma błędny offset\n"
-#: src/elflint.c:4561
+#: src/elflint.c:4567
#, 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:4571
+#: src/elflint.c:4577
#, 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:4592
+#: src/elflint.c:4598
#, 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:4603
+#: src/elflint.c:4609
#, 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:4610
+#: src/elflint.c:4616
#, 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:4619 src/elflint.c:4642
+#: src/elflint.c:4625 src/elflint.c:4648
#, 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:4648
+#: src/elflint.c:4654
#, 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:4675
+#: src/elflint.c:4681
#, 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 ma "
"błędny offset\n"
-#: src/elflint.c:4678
+#: src/elflint.c:4684
#, 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:4691
+#: src/elflint.c:4697
#, 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:4699
+#: src/elflint.c:4705
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n"
-#: src/elflint.c:4702
+#: src/elflint.c:4708
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "sekcja [%2zu] „%sâ€: musi być przydzielona\n"
-#: src/elflint.c:4706
+#: src/elflint.c:4712
#, 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:4709
+#: src/elflint.c:4715
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "sekcja [%2zu] „%s†nie może być zapisywalna\n"
-#: src/elflint.c:4714
+#: src/elflint.c:4720
#, 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:4717
+#: src/elflint.c:4723
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "sekcja [%2zu] „%s†nie może być wykonywalna\n"
-#: src/elflint.c:4728
+#: src/elflint.c:4737
#, 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:4735
+#: src/elflint.c:4744
#, 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:4738
+#: src/elflint.c:4747
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3699,7 +3710,7 @@ msgstr ""
"wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są "
"wielokrotnością wyrównania\n"
-#: src/elflint.c:4751
+#: src/elflint.c:4760
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3708,106 +3719,106 @@ msgstr ""
"plik wykonywalny/DSO z sekcją .eh_frame_hdr nie ma wpisu nagłówka programu "
"PT_GNU_EH_FRAME"
-#: src/elflint.c:4785
+#: src/elflint.c:4794
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "nie można odczytać nagłówka ELF: %s\n"
-#: src/elflint.c:4797
+#: src/elflint.c:4806
#, c-format
msgid "cannot create backend for ELF file\n"
msgstr "nie można utworzyć zaplecza dla pliku ELF\n"
-#: src/elflint.c:4818
+#: src/elflint.c:4827
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n"
-#: src/findtextrel.c:61
+#: src/findtextrel.c:60
msgid "Input Selection:"
msgstr "Wybór wejścia:"
-#: src/findtextrel.c:62
+#: src/findtextrel.c:61
msgid "Prepend PATH to all file names"
msgstr "Dołącza ŚCIEŻKĘ do wszystkich nazw plików"
-#: src/findtextrel.c:64
+#: src/findtextrel.c:63
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:71
+#: src/findtextrel.c:70
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:75 src/nm.c:108 src/objdump.c:71 src/size.c:80
-#: src/strings.c:87 src/strip.c:101
+#: src/findtextrel.c:74 src/nm.c:107 src/objdump.c:70 src/size.c:79
+#: src/strings.c:86 src/strip.c:100
msgid "[FILE...]"
msgstr "[PLIK…]"
-#: src/findtextrel.c:224
+#: src/findtextrel.c:223
#, c-format
msgid "cannot get ELF header '%s': %s"
msgstr "nie można uzyskać nagłówka ELF „%sâ€: %s"
-#: src/findtextrel.c:235
+#: src/findtextrel.c:234
#, c-format
msgid "'%s' is not a DSO or PIE"
msgstr "„%s†nie jest DSO ani PIE"
-#: src/findtextrel.c:255
+#: src/findtextrel.c:254
#, c-format
msgid "getting get section header of section %zu: %s"
msgstr "uzyskiwanie nagłówka sekcji dla sekcji %zu: %s"
-#: src/findtextrel.c:279
+#: src/findtextrel.c:278
#, c-format
msgid "cannot read dynamic section: %s"
msgstr "nie można odczytać sekcji dynamicznej: %s"
-#: src/findtextrel.c:300
+#: src/findtextrel.c:299
#, c-format
msgid "no text relocations reported in '%s'"
msgstr "brak relokacji tekstu w „%sâ€"
-#: src/findtextrel.c:311
+#: src/findtextrel.c:310
#, c-format
msgid "while reading ELF file"
msgstr "podczas odczytywania pliku ELF"
-#: src/findtextrel.c:315
+#: src/findtextrel.c:314
#, c-format
msgid "cannot get program header count: %s"
msgstr "nie można uzyskać liczby nagłówków programu: %s"
-#: src/findtextrel.c:326 src/findtextrel.c:341
+#: src/findtextrel.c:325 src/findtextrel.c:340
#, c-format
msgid "cannot get program header index at offset %zd: %s"
msgstr "nie można uzyskać indeksu nagłówka programu pod offsetem %zd: %s"
-#: src/findtextrel.c:397
+#: src/findtextrel.c:396
#, c-format
msgid "cannot get symbol table section %zu in '%s': %s"
msgstr "nie można uzyskać sekcji tabeli symboli %zu w „%sâ€: %s"
-#: src/findtextrel.c:418 src/findtextrel.c:441
+#: src/findtextrel.c:417 src/findtextrel.c:440
#, 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"
-#: src/findtextrel.c:507
+#: src/findtextrel.c:506
#, c-format
msgid "%s not compiled with -fpic/-fPIC\n"
msgstr "%s nie został skompilowany z -fpic/-fPIC\n"
-#: src/findtextrel.c:561
+#: src/findtextrel.c:560
#, 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"
-#: src/findtextrel.c:568 src/findtextrel.c:588
+#: src/findtextrel.c:567 src/findtextrel.c:587
#, c-format
msgid ""
"the file containing the function '%s' might not be compiled with -fpic/-"
@@ -3815,7 +3826,7 @@ msgid ""
msgstr ""
"plik zawierający funkcję „%s†mógł nie zostać skompilowany z -fpic/-fPIC\n"
-#: src/findtextrel.c:576
+#: src/findtextrel.c:575
#, c-format
msgid ""
"either the file containing the function '%s' or the file containing the "
@@ -3824,7 +3835,7 @@ msgstr ""
"plik zawierający funkcję „%s†lub plik zawierający funkcję „%s†nie został "
"skompilowany z -fpic/-fPIC\n"
-#: src/findtextrel.c:596
+#: src/findtextrel.c:595
#, c-format
msgid ""
"a relocation modifies memory at offset %llu in a write-protected segment\n"
@@ -3832,43 +3843,43 @@ msgstr ""
"relokacja modyfikuje pamięć pod offsetem %llu w segmencie zabezpieczonym "
"przed zapisem\n"
-#: src/nm.c:66 src/strip.c:70
+#: src/nm.c:65 src/strip.c:69
msgid "Output selection:"
msgstr "Wybór wyjścia:"
-#: src/nm.c:67
+#: src/nm.c:66
msgid "Display debugger-only symbols"
msgstr "Wyświetla symbole wyłącznie debugowania"
-#: src/nm.c:68
+#: src/nm.c:67
msgid "Display only defined symbols"
msgstr "Wyświetla tylko określone symbole"
-#: src/nm.c:71
+#: src/nm.c:70
msgid "Display dynamic symbols instead of normal symbols"
msgstr "Wyświetla symbole dynamiczne zamiast zwykłych"
-#: src/nm.c:72
+#: src/nm.c:71
msgid "Display only external symbols"
msgstr "Wyświetla tylko symbole zewnętrzne"
-#: src/nm.c:73
+#: src/nm.c:72
msgid "Display only undefined symbols"
msgstr "Wyświetla tylko nieokreślone symbole"
-#: src/nm.c:75
+#: src/nm.c:74
msgid "Include index for symbols from archive members"
msgstr "Dołącza indeks dla symboli z elementów archiwum"
-#: src/nm.c:77 src/size.c:54
+#: src/nm.c:76 src/size.c:53
msgid "Output format:"
msgstr "Format wyjścia:"
-#: src/nm.c:79
+#: src/nm.c:78
msgid "Print name of the input file before every symbol"
msgstr "Wyświetla nazwę pliku wejściowego przed każdym symbolem"
-#: src/nm.c:82
+#: src/nm.c:81
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The "
"default is `sysv'"
@@ -3876,73 +3887,73 @@ msgstr ""
"Używa FORMATU wyjÅ›ciowego. Może to być „bsdâ€, „sysv†lub „posixâ€. DomyÅ›lny "
"jest format „sysvâ€"
-#: src/nm.c:84
+#: src/nm.c:83
msgid "Same as --format=bsd"
msgstr "To samo, co --format=bsd"
-#: src/nm.c:85
+#: src/nm.c:84
msgid "Same as --format=posix"
msgstr "To samo co, --format=posix"
-#: src/nm.c:86 src/size.c:60
+#: src/nm.c:85 src/size.c:59
msgid "Use RADIX for printing symbol values"
msgstr "Używa BAZY do wypisywania wartości symboli"
-#: src/nm.c:87
+#: src/nm.c:86
msgid "Mark special symbols"
msgstr "Oznacza specjalne symbole"
-#: src/nm.c:89
+#: src/nm.c:88
msgid "Print size of defined symbols"
msgstr "Wyświetla rozmiar określonych symboli"
-#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:69
+#: src/nm.c:90 src/size.c:67 src/strip.c:74 src/unstrip.c:68
msgid "Output options:"
msgstr "Opcje wyjścia:"
-#: src/nm.c:92
+#: src/nm.c:91
msgid "Sort symbols numerically by address"
msgstr "Porządkuje symbole numerycznie według adresu"
-#: src/nm.c:94
+#: src/nm.c:93
msgid "Do not sort the symbols"
msgstr "Bez porzÄ…dkowania symboli"
-#: src/nm.c:95
+#: src/nm.c:94
msgid "Reverse the sense of the sort"
msgstr "Odwraca kierunek porzÄ…dkowania"
-#: src/nm.c:98
+#: src/nm.c:97
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
+#: src/nm.c:104
msgid "List symbols from FILEs (a.out by default)."
msgstr "Wyświetla listę symboli z PLIKU (domyślnie a.out)."
-#: src/nm.c:116 src/objdump.c:79
+#: src/nm.c:115 src/objdump.c:78
msgid "Output formatting"
msgstr "Formatowanie wyjścia"
-#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133
+#: src/nm.c:139 src/objdump.c:102 src/size.c:104 src/strip.c:132
#, c-format
msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: BÅÄ„D WEWNĘTRZNY %d (%s): %s"
-#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2767
+#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
+#: src/strip.c:2766
#, c-format
msgid "while closing '%s'"
msgstr "podczas zamykania „%sâ€"
-#: src/nm.c:403 src/objdump.c:280 src/strip.c:822
+#: src/nm.c:402 src/objdump.c:279 src/strip.c:827
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: nie rozpoznano formatu pliku"
#. Note: 0 is no valid offset.
-#: src/nm.c:443
+#: src/nm.c:442
msgid ""
"\n"
"Archive index:\n"
@@ -3950,44 +3961,43 @@ msgstr ""
"\n"
"Indeks archiwum:\n"
-#: src/nm.c:452
+#: src/nm.c:451
#, c-format
msgid "invalid offset %zu for symbol %s"
msgstr "nieprawidłowy offset %zu dla symbolu %s"
-#: src/nm.c:457
+#: src/nm.c:456
#, c-format
msgid "%s in %s\n"
msgstr "%s w %s\n"
-#: src/nm.c:465
+#: src/nm.c:464
#, c-format
msgid "cannot reset archive offset to beginning"
msgstr "nie można przywrócić offsetu w archiwum na początek"
-#: src/nm.c:490 src/objdump.c:328
+#: src/nm.c:489 src/objdump.c:327
#, c-format
msgid "%s%s%s: file format not recognized"
msgstr "%s%s%s: nie rozpoznano formatu pliku"
-#: src/nm.c:704
-#, c-format
+#: src/nm.c:702
msgid "cannot create search tree"
msgstr "nie można utworzyć drzewa wyszukiwania"
-#: src/nm.c:745 src/nm.c:1238 src/objdump.c:781 src/readelf.c:637
-#: src/readelf.c:1451 src/readelf.c:1602 src/readelf.c:1803 src/readelf.c:2009
-#: src/readelf.c:2199 src/readelf.c:2377 src/readelf.c:2453 src/readelf.c:2719
-#: src/readelf.c:2795 src/readelf.c:2882 src/readelf.c:3478 src/readelf.c:3528
-#: src/readelf.c:3598 src/readelf.c:11409 src/readelf.c:12603
-#: src/readelf.c:12814 src/readelf.c:12883 src/size.c:398 src/size.c:470
-#: src/strip.c:1089
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
+#: src/readelf.c:1471 src/readelf.c:1620 src/readelf.c:1847 src/readelf.c:2084
+#: src/readelf.c:2273 src/readelf.c:2451 src/readelf.c:2526 src/readelf.c:2791
+#: src/readelf.c:2866 src/readelf.c:2952 src/readelf.c:3547 src/readelf.c:3595
+#: src/readelf.c:3664 src/readelf.c:11581 src/readelf.c:12771
+#: src/readelf.c:12981 src/readelf.c:13049 src/size.c:396 src/size.c:467
+#: src/strip.c:1093
#, 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:770
+#: src/nm.c:767
#, c-format
msgid ""
"\n"
@@ -4001,7 +4011,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:773
+#: src/nm.c:770
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -4010,7 +4020,7 @@ msgstr ""
"%*s%-*s %-*s Klasa Typ %-*s %*s Sekcja\n"
"\n"
-#: src/nm.c:775
+#: src/nm.c:772
#, fuzzy
#| msgid " Name: "
msgctxt "sysv"
@@ -4018,96 +4028,96 @@ msgid "Name"
msgstr " Nazwa: "
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:777
+#: src/nm.c:774
msgctxt "sysv"
msgid "Value"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:779
+#: src/nm.c:776
msgctxt "sysv"
msgid "Size"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:781
+#: src/nm.c:778
msgctxt "sysv"
msgid "Line"
msgstr ""
-#: src/nm.c:1249
+#: src/nm.c:1245
#, 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:1254
+#: src/nm.c:1250
#, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: rozmiar sekcji %zd „%s†nie jest wielokrotnością rozmiaru wpisu"
-#: src/nm.c:1335
+#: src/nm.c:1330
#, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: wpisy (%zd) w sekcji %zd „%s†są za duże"
#. XXX Add machine specific object file types.
-#: src/nm.c:1571
+#: src/nm.c:1566
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: nieprawidłowe działanie"
-#: src/nm.c:1621
+#: src/nm.c:1616
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: brak symboli"
-#: src/objdump.c:52
+#: src/objdump.c:51
msgid "Mode selection:"
msgstr "Wybór trybu:"
-#: src/objdump.c:53
+#: src/objdump.c:52
msgid "Display relocation information."
msgstr "Wyświetla informacje o relokacji."
-#: src/objdump.c:55
+#: src/objdump.c:54
msgid "Display the full contents of all sections requested"
msgstr "Wyświetla pełną zawartość żądanych sekcji"
-#: src/objdump.c:57
+#: src/objdump.c:56
msgid "Display assembler code of executable sections"
msgstr "Wyświetla kod asemblera sekcji wykonywalnych"
-#: src/objdump.c:59
+#: src/objdump.c:58
msgid "Output content selection:"
msgstr "Wybór zawartości wyjścia:"
-#: src/objdump.c:61
+#: src/objdump.c:60
msgid "Only display information for section NAME."
msgstr "Wyświetla tylko informacje o sekcji NAZWA."
#. Short description of program.
-#: src/objdump.c:67
+#: src/objdump.c:66
msgid "Show information from FILEs (a.out by default)."
msgstr "Wyświetla informacje z PLIKÓW (domyślnie a.out)."
-#: src/objdump.c:218 src/readelf.c:582
+#: src/objdump.c:217 src/readelf.c:608
msgid "No operation specified.\n"
msgstr "Nie podano działania.\n"
-#: src/objdump.c:258 src/objdump.c:270
+#: src/objdump.c:257 src/objdump.c:269
#, c-format
msgid "while close `%s'"
msgstr "podczas zamykania „%sâ€"
-#: src/objdump.c:363 src/readelf.c:2104 src/readelf.c:2296
+#: src/objdump.c:362 src/readelf.c:2179 src/readelf.c:2370
msgid "INVALID SYMBOL"
msgstr "NIEPRAWIDÅOWY SYMBOL"
-#: src/objdump.c:378 src/readelf.c:2138 src/readelf.c:2332
+#: src/objdump.c:377 src/readelf.c:2213 src/readelf.c:2406
msgid "INVALID SECTION"
msgstr "NIEPRAWIDÅOWA SEKCJA"
-#: src/objdump.c:498
+#: src/objdump.c:497
#, c-format
msgid ""
"\n"
@@ -4118,62 +4128,60 @@ msgstr ""
"PISY RELOKACJI DLA [%s]:\n"
"%-*s TYP WARTOŚĆ\n"
-#: src/objdump.c:501
+#: src/objdump.c:500
msgid "OFFSET"
msgstr "OFFSET"
-#: src/objdump.c:566
+#: src/objdump.c:565
#, c-format
msgid "Contents of section %s:\n"
msgstr "Zawartość sekcji %s:\n"
-#: src/objdump.c:687
-#, c-format
+#: src/objdump.c:686
msgid "cannot disassemble"
msgstr "nie można deasemblować"
-#: src/objdump.c:759
-#, c-format
+#: src/objdump.c:757
msgid "cannot create backend for elf file"
msgstr "nie można utworzyć zaplecza dla pliku ELF"
#. Short description of program.
-#: src/ranlib.c:63
+#: src/ranlib.c:62
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:66
+#: src/ranlib.c:65
msgid "ARCHIVE"
msgstr "ARCHIWUM"
-#: src/ranlib.c:102
+#: src/ranlib.c:101
#, c-format
msgid "Archive name required"
msgstr "Wymagana jest nazwa archiwum"
-#: src/ranlib.c:166
+#: src/ranlib.c:165
#, c-format
msgid "'%s' is no archive"
msgstr "„%s†nie jest archiwum"
-#: src/ranlib.c:201
+#: src/ranlib.c:200
#, c-format
msgid "error while freeing sub-ELF descriptor: %s"
msgstr "błąd podczas zwalniania deskryptora pod-ELF: %s"
-#: src/readelf.c:97
+#: src/readelf.c:96
msgid "ELF input selection:"
msgstr "Wybór wyjścia ELF:"
-#: src/readelf.c:99
+#: src/readelf.c:98
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:102
+#: src/readelf.c:101
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
@@ -4181,43 +4189,43 @@ msgstr ""
"Używane z opcją -w do wyszukiwania szkieletów jednostek kompilacji w PLIKU "
"powiązanych z jednostkami podzielonej kompilacji w pliku wejściowym .dwo"
-#: src/readelf.c:104
+#: src/readelf.c:103
msgid "ELF output selection:"
msgstr "Wybór wyjścia ELF:"
-#: src/readelf.c:106
+#: src/readelf.c:105
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr "Wszystkie te plus -p .strtab -p .dynstr -p .comment"
-#: src/readelf.c:107
+#: src/readelf.c:106
msgid "Display the dynamic segment"
msgstr "Wyświetla segment dynamiczny"
-#: src/readelf.c:108
+#: src/readelf.c:107
msgid "Display the ELF file header"
msgstr "Wyświetla nagłówek pliku ELF"
-#: src/readelf.c:110
+#: src/readelf.c:109
msgid "Display histogram of bucket list lengths"
msgstr "Wyświetla histogram długości list kubełków"
-#: src/readelf.c:111
+#: src/readelf.c:110
msgid "Display the program headers"
msgstr "Wyświetla nagłówki programu"
-#: src/readelf.c:113
+#: src/readelf.c:112
msgid "Display relocations"
msgstr "Wyświetla relokacje"
-#: src/readelf.c:114
+#: src/readelf.c:113
msgid "Display the section groups"
msgstr "Wyświetla grupy sekcji"
-#: src/readelf.c:115
+#: src/readelf.c:114
msgid "Display the sections' headers"
msgstr "Wyświetla nagłówki sekcji"
-#: src/readelf.c:118
+#: src/readelf.c:117
msgid "Display the symbol table sections"
msgstr "Wyświetla sekcje tabeli symboli"
@@ -4268,25 +4276,29 @@ msgid "Display the symbol index of an archive"
msgstr "Wyświetla indeks symboli archiwum"
#: src/readelf.c:141
+msgid "Use the dynamic segment when possible for displaying info"
+msgstr ""
+
+#: src/readelf.c:143
msgid "Output control:"
msgstr "Kontrola wyjścia:"
-#: src/readelf.c:143
+#: src/readelf.c:145
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:145
+#: src/readelf.c:147
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:147
+#: src/readelf.c:149
msgid "Ignored for compatibility (lines always wide)"
msgstr "Ignorowane dla zgodności (wiersze są zawsze szerokie)"
-#: src/readelf.c:149
+#: src/readelf.c:151
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
@@ -4296,156 +4308,156 @@ msgstr ""
"używane z opcją -p lub -x)"
#. Short description of program.
-#: src/readelf.c:154
+#: src/readelf.c:156
msgid "Print information from ELF file in human-readable form."
msgstr "Wyświetla informacje z pliku ELF w postaci czytelnej dla człowieka."
#. Look up once.
-#: src/readelf.c:350
+#: src/readelf.c:373
msgid "yes"
msgstr "tak"
-#: src/readelf.c:351
+#: src/readelf.c:374
msgid "no"
msgstr "nie"
-#: src/readelf.c:550
+#: src/readelf.c:576
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Nieznana sekcja debugowania DWARF „%sâ€.\n"
-#: src/readelf.c:621 src/readelf.c:732
+#: src/readelf.c:647 src/readelf.c:758
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "nie można utworzyć deskryptora ELF: %s"
-#: src/readelf.c:628 src/readelf.c:955 src/strip.c:1184
+#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "nie można określić liczby sekcji: %s"
-#: src/readelf.c:646 src/readelf.c:1265 src/readelf.c:1475
+#: src/readelf.c:672 src/readelf.c:1287 src/readelf.c:1495
#, c-format
msgid "cannot get section: %s"
msgstr "nie można uzyskać sekcji: %s"
-#: src/readelf.c:655 src/readelf.c:1272 src/readelf.c:1483 src/readelf.c:12834
-#: src/unstrip.c:397 src/unstrip.c:428 src/unstrip.c:491 src/unstrip.c:612
-#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1224
-#: src/unstrip.c:1351 src/unstrip.c:1375 src/unstrip.c:1431 src/unstrip.c:1472
-#: src/unstrip.c:1665 src/unstrip.c:1816 src/unstrip.c:1959 src/unstrip.c:2058
+#: src/readelf.c:681 src/readelf.c:1294 src/readelf.c:1502 src/readelf.c:13001
+#: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610
+#: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222
+#: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470
+#: src/unstrip.c:1662 src/unstrip.c:1813 src/unstrip.c:1956 src/unstrip.c:2055
#, c-format
msgid "cannot get section header: %s"
msgstr "nie można uzyskać nagłówka sekcji: %s"
-#: src/readelf.c:663
+#: src/readelf.c:689
#, c-format
msgid "cannot get section name"
msgstr "nie można uzyskać nazwy sekcji"
-#: src/readelf.c:672 src/readelf.c:6634 src/readelf.c:10681 src/readelf.c:10783
-#: src/readelf.c:10961
+#: src/readelf.c:698 src/readelf.c:6797 src/readelf.c:10854 src/readelf.c:10956
+#: src/readelf.c:11134
#, c-format
msgid "cannot get %s content: %s"
msgstr "nie można uzyskać zwartości %s: %s"
-#: src/readelf.c:688
+#: src/readelf.c:714
#, c-format
msgid "cannot create temp file '%s'"
msgstr "nie można utworzyć pliku tymczasowego „%sâ€"
-#: src/readelf.c:697
+#: src/readelf.c:723
#, c-format
msgid "cannot write section data"
msgstr "nie można zapisać danych sekcji"
-#: src/readelf.c:703 src/readelf.c:720 src/readelf.c:749
+#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "błąd podczas zamykania deskryptora ELF: %s"
-#: src/readelf.c:710
+#: src/readelf.c:736
#, c-format
msgid "error while rewinding file descriptor"
msgstr "błąd podczas przewijania deskryptora pliku"
-#: src/readelf.c:744
+#: src/readelf.c:770
#, 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:848
+#: src/readelf.c:874
#, c-format
msgid "cannot stat input file"
msgstr "nie można wykonać stat na pliku wejściowym"
-#: src/readelf.c:850
+#: src/readelf.c:876
#, c-format
msgid "input file is empty"
msgstr "plik wejściowy jest pusty"
-#: src/readelf.c:852
+#: src/readelf.c:878
#, c-format
msgid "failed reading '%s': %s"
msgstr "odczytanie „%s†się nie powiodło: %s"
-#: src/readelf.c:881
+#: src/readelf.c:907
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "Brak sekcji „%s†w „%sâ€"
-#: src/readelf.c:940
+#: src/readelf.c:966
#, c-format
msgid "cannot read ELF header: %s"
msgstr "nie można odczytać nagłówka ELF: %s"
-#: src/readelf.c:948
+#: src/readelf.c:974
#, c-format
msgid "cannot create EBL handle"
msgstr "nie można utworzyć uchwytu EBL"
-#: src/readelf.c:961
+#: src/readelf.c:985
#, 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:993
+#: src/readelf.c:1017
#, c-format
msgid "cannot read ELF: %s"
msgstr "nie można odczytać danych ELF: %s"
-#: src/readelf.c:1054
+#: src/readelf.c:1078
msgid "NONE (None)"
msgstr "NONE (żaden)"
-#: src/readelf.c:1055
+#: src/readelf.c:1079
msgid "REL (Relocatable file)"
msgstr "REL (plik relokowalny)"
-#: src/readelf.c:1056
+#: src/readelf.c:1080
msgid "EXEC (Executable file)"
msgstr "EXEC (plik wykonywalny)"
-#: src/readelf.c:1057
+#: src/readelf.c:1081
msgid "DYN (Shared object file)"
msgstr "DYN (plik obiektu współdzielonego)"
-#: src/readelf.c:1058
+#: src/readelf.c:1082
msgid "CORE (Core file)"
msgstr "CORE (plik core)"
-#: src/readelf.c:1063
+#: src/readelf.c:1087
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "Zależny od systemu: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1065
+#: src/readelf.c:1089
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Zależny od procesora: (%x)\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1099
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4453,7 +4465,7 @@ msgstr ""
"Nagłówek ELF:\n"
" Magic: "
-#: src/readelf.c:1079
+#: src/readelf.c:1103
#, c-format
msgid ""
"\n"
@@ -4462,123 +4474,123 @@ msgstr ""
"\n"
" Klasa: %s\n"
-#: src/readelf.c:1084
+#: src/readelf.c:1108
#, c-format
msgid " Data: %s\n"
msgstr " Dane: %s\n"
-#: src/readelf.c:1090
+#: src/readelf.c:1114
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Wersja Ident: %hhd %s\n"
-#: src/readelf.c:1092 src/readelf.c:1114
+#: src/readelf.c:1116 src/readelf.c:1138
msgid "(current)"
msgstr "(bieżąca)"
-#: src/readelf.c:1096
+#: src/readelf.c:1120
#, c-format
msgid " OS/ABI: %s\n"
msgstr " System operacyjny/ABI: %s\n"
-#: src/readelf.c:1099
+#: src/readelf.c:1123
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Wersja ABI: %hhd\n"
-#: src/readelf.c:1102
+#: src/readelf.c:1126
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1107
+#: src/readelf.c:1131
#, c-format
msgid " Machine: %s\n"
msgstr " Komputer: %s\n"
-#: src/readelf.c:1109
+#: src/readelf.c:1133
#, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Komputer: <nieznany>: 0x%x\n"
-#: src/readelf.c:1112
+#: src/readelf.c:1136
#, c-format
msgid " Version: %d %s\n"
msgstr " Wersja: %d %s\n"
-#: src/readelf.c:1116
+#: src/readelf.c:1140
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Adres punktu wejściowego: %#<PRIx64>\n"
-#: src/readelf.c:1119
+#: src/readelf.c:1143
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Początek nagłówków programu: %<PRId64> %s\n"
-#: src/readelf.c:1120 src/readelf.c:1123
+#: src/readelf.c:1144 src/readelf.c:1147
msgid "(bytes into file)"
msgstr "(bajtów w pliku)"
-#: src/readelf.c:1122
+#: src/readelf.c:1146
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Początek nagłówków sekcji: %<PRId64> %s\n"
-#: src/readelf.c:1125
+#: src/readelf.c:1149
#, c-format
msgid " Flags: %s\n"
msgstr " Flagi: %s\n"
-#: src/readelf.c:1128
+#: src/readelf.c:1152
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n"
-#: src/readelf.c:1129 src/readelf.c:1132 src/readelf.c:1149
+#: src/readelf.c:1153 src/readelf.c:1156 src/readelf.c:1173
msgid "(bytes)"
msgstr "(bajtów)"
-#: src/readelf.c:1131
+#: src/readelf.c:1155
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n"
-#: src/readelf.c:1134
+#: src/readelf.c:1158
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków programu: %<PRId16>"
-#: src/readelf.c:1141
+#: src/readelf.c:1165
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> w [0].sh_info)"
-#: src/readelf.c:1144 src/readelf.c:1161 src/readelf.c:1175
+#: src/readelf.c:1168 src/readelf.c:1185 src/readelf.c:1199
msgid " ([0] not available)"
msgstr " ([0] niedostępny)"
-#: src/readelf.c:1148
+#: src/readelf.c:1172
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n"
-#: src/readelf.c:1151
+#: src/readelf.c:1175
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>"
-#: src/readelf.c:1158
+#: src/readelf.c:1182
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> w [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1171
+#: src/readelf.c:1195
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> w [0].sh_link)"
-#: src/readelf.c:1179
+#: src/readelf.c:1203
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4587,7 +4599,7 @@ msgstr ""
" Indeks tabeli ciągów nagłówków sekcji: XINDEX%s\n"
"\n"
-#: src/readelf.c:1183
+#: src/readelf.c:1207
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4596,12 +4608,12 @@ msgstr ""
" Indeks tabeli ciągów nagłówków sekcji: %<PRId16>\n"
"\n"
-#: src/readelf.c:1230 src/readelf.c:1440
+#: src/readelf.c:1253 src/readelf.c:1461
#, c-format
msgid "cannot get number of sections: %s"
msgstr "nie można uzyskać liczby sekcji: %s"
-#: src/readelf.c:1233
+#: src/readelf.c:1256
#, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4610,16 +4622,16 @@ msgstr ""
"Liczba nagłówków sekcji: %zd, rozpoczynających się od offsetu %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1242
+#: src/readelf.c:1264
#, c-format
msgid "cannot get section header string table index: %s"
msgstr "nie można uzyskać indeksu tabeli ciągów nagłówków sekcji: %s"
-#: src/readelf.c:1245
+#: src/readelf.c:1267
msgid "Section Headers:"
msgstr "Nagłówki sekcji:"
-#: src/readelf.c:1248
+#: src/readelf.c:1270
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4627,7 +4639,7 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozm. ES Flagi Lk "
"Inf Al"
-#: src/readelf.c:1250
+#: src/readelf.c:1272
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4635,36 +4647,36 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozmiar ES "
"Flagi Lk Inf Al"
-#: src/readelf.c:1255
+#: src/readelf.c:1277
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1257
+#: src/readelf.c:1279
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1335
+#: src/readelf.c:1357
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr "błędny nagłówek kompresji dla sekcji %zd: %s"
-#: src/readelf.c:1346
+#: src/readelf.c:1368
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "błędny rozmiar kompresji gnu dla sekcji %zd: %s"
-#: src/readelf.c:1364
+#: src/readelf.c:1386
msgid "Program Headers:"
msgstr "Nagłówki programu:"
-#: src/readelf.c:1366
+#: src/readelf.c:1388
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg "
"Wyrównanie"
-#: src/readelf.c:1369
+#: src/readelf.c:1391
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4672,12 +4684,12 @@ msgstr ""
" Typ Offset AdresWirtualny AdresFizyczny RozmPlik "
"RozmPam Flg Wyrównanie"
-#: src/readelf.c:1426
+#: src/readelf.c:1448
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Wywołanie interpretera programu: %s]\n"
-#: src/readelf.c:1453
+#: src/readelf.c:1473
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4687,12 +4699,12 @@ msgstr ""
" Mapowanie sekcji do segmentów:\n"
" Segment sekcji…"
-#: src/readelf.c:1464 src/unstrip.c:2117 src/unstrip.c:2159 src/unstrip.c:2166
+#: src/readelf.c:1484 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
#, c-format
msgid "cannot get program header: %s"
msgstr "nie można uzyskać nagłówka programu: %s"
-#: src/readelf.c:1610
+#: src/readelf.c:1628
#, c-format
msgid ""
"\n"
@@ -4710,7 +4722,7 @@ msgstr[2] ""
"\n"
"Grupa sekcji COMDAT [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n"
-#: src/readelf.c:1615
+#: src/readelf.c:1633
#, c-format
msgid ""
"\n"
@@ -4728,31 +4740,31 @@ msgstr[2] ""
"\n"
"Grupa sekcji [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n"
-#: src/readelf.c:1623
+#: src/readelf.c:1641
msgid "<INVALID SYMBOL>"
msgstr "<NIEPRAWIDÅOWY SYMBOL>"
-#: src/readelf.c:1637
+#: src/readelf.c:1655
msgid "<INVALID SECTION>"
msgstr "<NIEPRAWIDÅOWY SEKCJA>"
-#: src/readelf.c:1660 src/readelf.c:2387 src/readelf.c:3494 src/readelf.c:12705
-#: src/readelf.c:12712 src/readelf.c:12756 src/readelf.c:12763
+#: src/readelf.c:1678 src/readelf.c:2461 src/readelf.c:3563 src/readelf.c:12873
+#: src/readelf.c:12880 src/readelf.c:12924 src/readelf.c:12931
msgid "Couldn't uncompress section"
msgstr "Nie można dekompresować sekcji"
-#: src/readelf.c:1665 src/readelf.c:2392 src/readelf.c:3499
+#: src/readelf.c:1682 src/readelf.c:2466 src/readelf.c:3567
#, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "nie można uzyskać nagłówka sekcji [%zd]: %s"
-#: src/readelf.c:1809 src/readelf.c:2459 src/readelf.c:2725 src/readelf.c:2801
-#: src/readelf.c:3105 src/readelf.c:3179 src/readelf.c:5407
+#: src/readelf.c:1851 src/readelf.c:2532 src/readelf.c:2797 src/readelf.c:2872
+#: src/readelf.c:3175 src/readelf.c:3249 src/readelf.c:5570
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "nieprawidłowa wartość sh_link w sekcji %zu"
-#: src/readelf.c:1812
+#: src/readelf.c:1854
#, c-format
msgid ""
"\n"
@@ -4778,36 +4790,76 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"'%s'\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1867
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Dynamic segment contains %lu entry:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+#| msgid_plural ""
+#| "\n"
+#| "Dynamic segment contains %lu entries:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+msgid ""
+"\n"
+"Dynamic segment contains %lu entry:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgid_plural ""
+"\n"
+"Dynamic segment contains %lu entries:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgstr[0] ""
+"\n"
+"Segment dynamiczny zawiera %lu wpis:\n"
+" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
+"'%s'\n"
+msgstr[1] ""
+"\n"
+"Segment dynamiczny zawiera %lu wpisy:\n"
+" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
+"'%s'\n"
+msgstr[2] ""
+"\n"
+"Segment dynamiczny zawiera %lu wpisów:\n"
+" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
+"'%s'\n"
+
+#: src/readelf.c:1877
msgid " Type Value\n"
msgstr " Typ Wartość\n"
-#: src/readelf.c:1846
+#: src/readelf.c:1886
+#, fuzzy
+#| msgid "cannot get string section data: %s"
+msgid "cannot get string table by using dynamic segment"
+msgstr "nie można uzyskać danych sekcji ciągów: %s"
+
+#: src/readelf.c:1925
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteka współdzielona: [%s]\n"
-#: src/readelf.c:1851
+#: src/readelf.c:1929
#, c-format
msgid "Library soname: [%s]\n"
msgstr "soname biblioteki: [%s]\n"
-#: src/readelf.c:1856
+#: src/readelf.c:1933
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "rpath biblioteki: [%s]\n"
-#: src/readelf.c:1861
+#: src/readelf.c:1937
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "runpath biblioteki: [%s]\n"
-#: src/readelf.c:1881
+#: src/readelf.c:1956
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bajtów)\n"
-#: src/readelf.c:1994 src/readelf.c:2184
+#: src/readelf.c:2070 src/readelf.c:2259
#, c-format
msgid ""
"\n"
@@ -4816,7 +4868,7 @@ msgstr ""
"\n"
"Nieprawidłowa tabela symboli pod offsetem %#0<PRIx64>\n"
-#: src/readelf.c:2012 src/readelf.c:2202
+#: src/readelf.c:2087 src/readelf.c:2276
#, c-format
msgid ""
"\n"
@@ -4845,7 +4897,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:2027 src/readelf.c:2217
+#: src/readelf.c:2102 src/readelf.c:2291
#, c-format
msgid ""
"\n"
@@ -4863,30 +4915,30 @@ msgstr[2] ""
"\n"
"Sekcja relokacji [%2u] „%s†pod offsetem %#0<PRIx64> zawiera %d wpisów:\n"
-#: src/readelf.c:2037
+#: src/readelf.c:2112
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2039
+#: src/readelf.c:2114
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2092 src/readelf.c:2103 src/readelf.c:2116 src/readelf.c:2137
-#: src/readelf.c:2149 src/readelf.c:2283 src/readelf.c:2295 src/readelf.c:2309
-#: src/readelf.c:2331 src/readelf.c:2344
+#: src/readelf.c:2167 src/readelf.c:2178 src/readelf.c:2191 src/readelf.c:2212
+#: src/readelf.c:2224 src/readelf.c:2357 src/readelf.c:2369 src/readelf.c:2383
+#: src/readelf.c:2405 src/readelf.c:2418
msgid "<INVALID RELOC>"
msgstr "<NIEPRAWIDÅOWA RELOKACJA>"
-#: src/readelf.c:2227
+#: src/readelf.c:2301
msgid " Offset Type Value Addend Name\n"
msgstr " Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2229
+#: src/readelf.c:2303
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2467
+#: src/readelf.c:2540
#, c-format
msgid ""
"\n"
@@ -4904,7 +4956,7 @@ msgstr[2] ""
"\n"
"Tabela symboli [%2u] „%s†zawiera %u wpisów:\n"
-#: src/readelf.c:2472
+#: src/readelf.c:2545
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -4912,33 +4964,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:2480
+#: src/readelf.c:2553
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:2482
+#: src/readelf.c:2555
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:2502
+#: src/readelf.c:2575
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
-#: src/readelf.c:2595
+#: src/readelf.c:2668
#, c-format
msgid "bad dynamic symbol"
msgstr "błędny symbol dynamiczny"
-#: src/readelf.c:2680
+#: src/readelf.c:2753
msgid "none"
msgstr "brak"
-#: src/readelf.c:2697
+#: src/readelf.c:2770
msgid "| <unknown>"
msgstr "| <nieznany>"
-#: src/readelf.c:2728
+#: src/readelf.c:2800
#, c-format
msgid ""
"\n"
@@ -4964,17 +5016,17 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:2749
+#: src/readelf.c:2821
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n"
-#: src/readelf.c:2762
+#: src/readelf.c:2834
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n"
-#: src/readelf.c:2805
+#: src/readelf.c:2876
#, c-format
msgid ""
"\n"
@@ -5000,19 +5052,19 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:2833
+#: src/readelf.c:2904
#, 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:2848
+#: src/readelf.c:2919
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Rodzic %d: %s\n"
#. Print the header.
-#: src/readelf.c:3109
+#: src/readelf.c:3179
#, c-format
msgid ""
"\n"
@@ -5035,15 +5087,15 @@ msgstr[2] ""
"Sekcja symboli wersji [%2u] „%s†zawiera %d wpisów:\n"
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] „%sâ€"
-#: src/readelf.c:3137
+#: src/readelf.c:3207
msgid " 0 *local* "
msgstr " 0 *lokalny* "
-#: src/readelf.c:3142
+#: src/readelf.c:3212
msgid " 1 *global* "
msgstr " 1 *globalny* "
-#: src/readelf.c:3184
+#: src/readelf.c:3254
#, c-format
msgid ""
"\n"
@@ -5074,22 +5126,22 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:3206
+#: src/readelf.c:3276
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Długość Liczba % całości Pokrycie\n"
-#: src/readelf.c:3208
+#: src/readelf.c:3278
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3215
+#: src/readelf.c:3285
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3228
+#: src/readelf.c:3298
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -5098,37 +5150,37 @@ msgstr ""
" Średnia liczba testów: udane wyszukania: %f\n"
"\t\t\t nieudane wyszukania: %f\n"
-#: src/readelf.c:3246 src/readelf.c:3310 src/readelf.c:3376
+#: src/readelf.c:3316 src/readelf.c:3380 src/readelf.c:3446
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "nie można uzyskać danych dla sekcji %d: %s"
-#: src/readelf.c:3254
+#: src/readelf.c:3324
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash %d"
-#: src/readelf.c:3283
+#: src/readelf.c:3353
#, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "nieprawidłowy łańcuch w sekcji sysv.hash %d"
-#: src/readelf.c:3318
+#: src/readelf.c:3388
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash64 %d"
-#: src/readelf.c:3349
+#: src/readelf.c:3419
#, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "nieprawidłowy łańcuch w sekcji sysv.hash64 %d"
-#: src/readelf.c:3385
+#: src/readelf.c:3455
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "nieprawidłowe dane w sekcji gnu.hash %d"
-#: src/readelf.c:3451
+#: src/readelf.c:3521
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -5138,7 +5190,7 @@ msgstr ""
" Rozmiar maski bitowej: %zu B %<PRIuFAST32>%% b ustawionych drugie "
"przesunięcie skrótu: %u\n"
-#: src/readelf.c:3539
+#: src/readelf.c:3606
#, c-format
msgid ""
"\n"
@@ -5159,7 +5211,7 @@ msgstr[2] ""
"Sekcja listy bibliotek [%2zu] „%s†pod offsetem %#0<PRIx64> zawiera %d "
"wpisów:\n"
-#: src/readelf.c:3553
+#: src/readelf.c:3620
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -5167,7 +5219,7 @@ msgstr ""
" Biblioteka Czas Suma k. Wersja "
"Flagi"
-#: src/readelf.c:3612
+#: src/readelf.c:3680
#, c-format
msgid ""
"\n"
@@ -5177,102 +5229,101 @@ msgstr ""
"\n"
"Sekcja atrybutów obiektu [%2zu] „%s†%<PRIu64> B pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:3629
+#: src/readelf.c:3697
msgid " Owner Size\n"
msgstr " Właściciel Rozmiar\n"
-#: src/readelf.c:3653
+#: src/readelf.c:3721
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3692
+#: src/readelf.c:3760
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3697
+#: src/readelf.c:3765
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Plik: %11<PRIu32>\n"
-#: src/readelf.c:3746
+#: src/readelf.c:3814
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3749
+#: src/readelf.c:3817
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3752
+#: src/readelf.c:3820
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3762
+#: src/readelf.c:3830
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3765
+#: src/readelf.c:3833
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3835
-#, c-format
+#: src/readelf.c:3903
msgid "sprintf failure"
msgstr "sprintf się nie powiodło"
-#: src/readelf.c:4317
+#: src/readelf.c:4387
msgid "empty block"
msgstr "pusty blok"
-#: src/readelf.c:4320
+#: src/readelf.c:4390
#, c-format
msgid "%zu byte block:"
msgstr "blok o %zu B:"
-#: src/readelf.c:4798
+#: src/readelf.c:4868
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%2<PRIuMAX>] %s <SKRÓCONE>\n"
-#: src/readelf.c:4865
+#: src/readelf.c:5028
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami adresu"
-#: src/readelf.c:4872
+#: src/readelf.c:5035
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> zostało użyte z różnymi rozmiarami offsetu"
-#: src/readelf.c:4879
+#: src/readelf.c:5042
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> zostało użyte z różnymi adresami podstawowymi"
-#: src/readelf.c:4886
+#: src/readelf.c:5049
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> zostało użyte z różnymi atrybutami %s i %s"
-#: src/readelf.c:4986
+#: src/readelf.c:5149
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE W RESZCIE SEKCJI>\n"
-#: src/readelf.c:4994
+#: src/readelf.c:5157
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE>… %<PRIu64> B…\n"
-#: src/readelf.c:5097
+#: src/readelf.c:5260
#, c-format
msgid ""
"\n"
@@ -5283,7 +5334,7 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" [ Kod]\n"
-#: src/readelf.c:5105
+#: src/readelf.c:5268
#, c-format
msgid ""
"\n"
@@ -5292,20 +5343,20 @@ msgstr ""
"\n"
"Sekcja skrótów pod offsetem %<PRIu64>:\n"
-#: src/readelf.c:5118
+#: src/readelf.c:5281
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** błąd podczas odczytywania skrótu: %s\n"
-#: src/readelf.c:5134
+#: src/readelf.c:5297
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n"
-#: src/readelf.c:5167 src/readelf.c:5476 src/readelf.c:5643 src/readelf.c:6028
-#: src/readelf.c:6644 src/readelf.c:8399 src/readelf.c:9145 src/readelf.c:9618
-#: src/readelf.c:9869 src/readelf.c:10035 src/readelf.c:10422
-#: src/readelf.c:10482
+#: src/readelf.c:5330 src/readelf.c:5639 src/readelf.c:5806 src/readelf.c:6191
+#: src/readelf.c:6807 src/readelf.c:8562 src/readelf.c:9308 src/readelf.c:9791
+#: src/readelf.c:10042 src/readelf.c:10208 src/readelf.c:10595
+#: src/readelf.c:10655
#, c-format
msgid ""
"\n"
@@ -5314,52 +5365,52 @@ msgstr ""
"\n"
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:5180
+#: src/readelf.c:5343
#, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "nie można uzyskać danych sekcji .debug_addr: %s"
-#: src/readelf.c:5280 src/readelf.c:5304 src/readelf.c:5688 src/readelf.c:9190
+#: src/readelf.c:5443 src/readelf.c:5467 src/readelf.c:5851 src/readelf.c:9353
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Długość: %8<PRIu64>\n"
-#: src/readelf.c:5282 src/readelf.c:5319 src/readelf.c:5701 src/readelf.c:9203
+#: src/readelf.c:5445 src/readelf.c:5482 src/readelf.c:5864 src/readelf.c:9366
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %8<PRIu16>\n"
-#: src/readelf.c:5283 src/readelf.c:5328 src/readelf.c:5710 src/readelf.c:9212
+#: src/readelf.c:5446 src/readelf.c:5491 src/readelf.c:5873 src/readelf.c:9375
#, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Rozmiar adresu: %8<PRIu64>\n"
-#: src/readelf.c:5285 src/readelf.c:5338 src/readelf.c:5720 src/readelf.c:9222
+#: src/readelf.c:5448 src/readelf.c:5501 src/readelf.c:5883 src/readelf.c:9385
#, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " Rozmiar segmentu: %8<PRIu64>\n"
-#: src/readelf.c:5323 src/readelf.c:5705 src/readelf.c:9207 src/readelf.c:10614
+#: src/readelf.c:5486 src/readelf.c:5868 src/readelf.c:9370 src/readelf.c:10787
#, c-format
msgid "Unknown version"
msgstr "Nieznana wersja"
-#: src/readelf.c:5333 src/readelf.c:5546 src/readelf.c:5715 src/readelf.c:9217
+#: src/readelf.c:5496 src/readelf.c:5709 src/readelf.c:5878 src/readelf.c:9380
#, c-format
msgid "unsupported address size"
msgstr "nieobsługiwany rozmiar adresu"
-#: src/readelf.c:5344 src/readelf.c:5557 src/readelf.c:5725 src/readelf.c:9227
+#: src/readelf.c:5507 src/readelf.c:5720 src/readelf.c:5888 src/readelf.c:9390
#, c-format
msgid "unsupported segment size"
msgstr "nieobsługiwany rozmiar segmentu"
-#: src/readelf.c:5397 src/readelf.c:5471
+#: src/readelf.c:5560 src/readelf.c:5634
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "nie można uzyskać zawartości .debug_aranges: %s"
-#: src/readelf.c:5412
+#: src/readelf.c:5575
#, c-format
msgid ""
"\n"
@@ -5377,12 +5428,12 @@ msgstr[2] ""
"\n"
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
-#: src/readelf.c:5443
+#: src/readelf.c:5606
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5608
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5390,7 +5441,7 @@ msgstr ""
" [%*zu] początek: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5489 src/readelf.c:8426
+#: src/readelf.c:5652 src/readelf.c:8589
#, c-format
msgid ""
"\n"
@@ -5399,13 +5450,13 @@ msgstr ""
"\n"
"Tabela pod offsetem %zu:\n"
-#: src/readelf.c:5493 src/readelf.c:5669 src/readelf.c:6668 src/readelf.c:8437
-#: src/readelf.c:9171
+#: src/readelf.c:5656 src/readelf.c:5832 src/readelf.c:6831 src/readelf.c:8600
+#: src/readelf.c:9334
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "nieprawidÅ‚owe dane w sekcji [%zu] „%sâ€"
-#: src/readelf.c:5509
+#: src/readelf.c:5672
#, c-format
msgid ""
"\n"
@@ -5414,27 +5465,27 @@ msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5521
+#: src/readelf.c:5684
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5525
+#: src/readelf.c:5688
#, c-format
msgid "unsupported aranges version"
msgstr "nieobsługiwana wersja aranges"
-#: src/readelf.c:5536
+#: src/readelf.c:5699
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Offset CU: %6<PRIx64>\n"
-#: src/readelf.c:5542
+#: src/readelf.c:5705
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5553
+#: src/readelf.c:5716
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5443,17 +5494,17 @@ msgstr ""
" Rozmiar segmentu: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5608
+#: src/readelf.c:5771
#, c-format
msgid " %zu padding bytes\n"
msgstr " %zu B wypełnienia\n"
-#: src/readelf.c:5652
+#: src/readelf.c:5815
#, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "nie można uzyskać zawartości .debug_rnglists: %s"
-#: src/readelf.c:5675 src/readelf.c:9177
+#: src/readelf.c:5838 src/readelf.c:9340
#, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
@@ -5462,42 +5513,42 @@ msgstr ""
"Tabela pod offsetem 0x%<PRIx64>:\n"
"\n"
-#: src/readelf.c:5730 src/readelf.c:9232
+#: src/readelf.c:5893 src/readelf.c:9395
#, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Wpisy offsetu: %8<PRIu64>\n"
-#: src/readelf.c:5746 src/readelf.c:9248
+#: src/readelf.c:5909 src/readelf.c:9411
#, c-format
msgid " Unknown CU base: "
msgstr " Nieznana podstawa CU: "
-#: src/readelf.c:5748 src/readelf.c:9250
+#: src/readelf.c:5911 src/readelf.c:9413
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr " Podstawa CU [%6<PRIx64>]: "
-#: src/readelf.c:5754 src/readelf.c:9256
+#: src/readelf.c:5917 src/readelf.c:9419
#, c-format
msgid " Not associated with a CU.\n"
msgstr " Brak powiązania z CU.\n"
-#: src/readelf.c:5765 src/readelf.c:9267
+#: src/readelf.c:5928 src/readelf.c:9430
#, c-format
msgid "too many offset entries for unit length"
msgstr "za dużo wpisów offsetu dla długości jednostki"
-#: src/readelf.c:5769 src/readelf.c:9271
+#: src/readelf.c:5932 src/readelf.c:9434
#, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Offsety zaczynające się w 0x%<PRIx64>:\n"
-#: src/readelf.c:5821
+#: src/readelf.c:5984
#, c-format
msgid "invalid range list data"
msgstr "nieprawidłowe dane listy zakresów"
-#: src/readelf.c:6006 src/readelf.c:9596
+#: src/readelf.c:6169 src/readelf.c:9769
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -5506,12 +5557,12 @@ msgstr ""
" %zu B wypełnienia\n"
"\n"
-#: src/readelf.c:6023
+#: src/readelf.c:6186
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "nie można uzyskać zawartości .debug_ranges: %s"
-#: src/readelf.c:6059 src/readelf.c:9651
+#: src/readelf.c:6222 src/readelf.c:9824
#, c-format
msgid ""
"\n"
@@ -5520,7 +5571,7 @@ msgstr ""
"\n"
" Nieznana podstawa CU: "
-#: src/readelf.c:6061 src/readelf.c:9653
+#: src/readelf.c:6224 src/readelf.c:9826
#, c-format
msgid ""
"\n"
@@ -5529,30 +5580,30 @@ msgstr ""
"\n"
" Podstawa CU [%6<PRIx64>]: "
-#: src/readelf.c:6070 src/readelf.c:9679 src/readelf.c:9705
+#: src/readelf.c:6233 src/readelf.c:9852 src/readelf.c:9878
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6095 src/readelf.c:9789
+#: src/readelf.c:6258 src/readelf.c:9962
msgid "base address"
msgstr "adres podstawowy"
-#: src/readelf.c:6105 src/readelf.c:9799
+#: src/readelf.c:6268 src/readelf.c:9972
#, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] pusta lista\n"
-#: src/readelf.c:6365
+#: src/readelf.c:6528
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6622
+#: src/readelf.c:6785
#, c-format
msgid "cannot get ELF: %s"
msgstr "nie można uzyskać ELF: %s"
-#: src/readelf.c:6640
+#: src/readelf.c:6803
#, c-format
msgid ""
"\n"
@@ -5561,7 +5612,7 @@ msgstr ""
"\n"
"Sekcja informacji o ramce wywołania [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:6690
+#: src/readelf.c:6853
#, c-format
msgid ""
"\n"
@@ -5570,65 +5621,65 @@ msgstr ""
"\n"
" [%6tx] Zerowy koniec\n"
-#: src/readelf.c:6791 src/readelf.c:6945
+#: src/readelf.c:6954 src/readelf.c:7108
#, c-format
msgid "invalid augmentation length"
msgstr "nieprawidłowa długość powiększenia"
-#: src/readelf.c:6806
+#: src/readelf.c:6969
msgid "FDE address encoding: "
msgstr "Kodowanie adresu FDE: "
-#: src/readelf.c:6812
+#: src/readelf.c:6975
msgid "LSDA pointer encoding: "
msgstr "Kodowanie wskaźnika LSDA: "
-#: src/readelf.c:6922
+#: src/readelf.c:7085
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (offset: %#<PRIx64>)"
-#: src/readelf.c:6929
+#: src/readelf.c:7092
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (kończący offset: %#<PRIx64>)"
-#: src/readelf.c:6966
+#: src/readelf.c:7129
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n"
-#: src/readelf.c:7051
+#: src/readelf.c:7214
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "DIE [%<PRIx64>] nie można uzyskać kodu atrybutu: %s"
-#: src/readelf.c:7061
+#: src/readelf.c:7224
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "DIE [%<PRIx64>] nie można uzyskać formy atrybutu: %s"
-#: src/readelf.c:7083
+#: src/readelf.c:7246
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "DIE [%<PRIx64>] nie można uzyskać wartości atrybutu „%s†(%s): %s"
-#: src/readelf.c:7413
+#: src/readelf.c:7576
#, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "nieprawidłowy plik (%<PRId64>): %s"
-#: src/readelf.c:7417
+#: src/readelf.c:7580
#, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "brak plików źródłowych dla CU [%<PRIx64>]"
-#: src/readelf.c:7421
+#: src/readelf.c:7584
#, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "nie można uzyskać CU DWARF: %s"
-#: src/readelf.c:7736
+#: src/readelf.c:7899
#, c-format
msgid ""
"\n"
@@ -5639,12 +5690,12 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:7786
+#: src/readelf.c:7949
#, c-format
msgid "cannot get next unit: %s"
msgstr "nie można uzyskać następnej jednostki: %s"
-#: src/readelf.c:7806
+#: src/readelf.c:7969
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5657,7 +5708,7 @@ msgstr ""
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
" Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64> [%<PRIx64>]\n"
-#: src/readelf.c:7818
+#: src/readelf.c:7981
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5668,38 +5719,38 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:7828 src/readelf.c:7989
+#: src/readelf.c:7991 src/readelf.c:8152
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr " Typ jednostki: %s (%<PRIu8>)"
-#: src/readelf.c:7855
+#: src/readelf.c:8018
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr "nieznana wersja (%d) lub typ jednostki (%d)"
-#: src/readelf.c:7884
+#: src/readelf.c:8047
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "nie można uzyskać offsetu DIE: %s"
-#: src/readelf.c:7893
+#: src/readelf.c:8056
#, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"nie można uzyskać znacznika DIE pod offsetem [%<PRIx64>] w sekcji „%sâ€: %s"
-#: src/readelf.c:7929
+#: src/readelf.c:8092
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "nie można uzyskać następnego DIE: %s\n"
-#: src/readelf.c:7937
+#: src/readelf.c:8100
#, c-format
msgid "cannot get next DIE: %s"
msgstr "nie można uzyskać następnego DIE: %s"
-#: src/readelf.c:7981
+#: src/readelf.c:8144
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5710,7 +5761,7 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:8033
+#: src/readelf.c:8196
#, c-format
msgid ""
"\n"
@@ -5721,18 +5772,18 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8365
+#: src/readelf.c:8528
#, c-format
msgid "unknown form: %s"
msgstr "nieznana forma: %s"
-#: src/readelf.c:8413
+#: src/readelf.c:8576
#, 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:8517
+#: src/readelf.c:8680
#, c-format
msgid ""
"\n"
@@ -5765,27 +5816,27 @@ msgstr ""
"\n"
"Instrukcje:\n"
-#: src/readelf.c:8539
+#: src/readelf.c:8702
#, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "nie można obsłużyć wersji .debug_line: %u\n"
-#: src/readelf.c:8547
+#: src/readelf.c:8710
#, c-format
msgid "cannot handle address size: %u\n"
msgstr "nie można obsłużyć rozmiaru adresu: %u\n"
-#: src/readelf.c:8555
+#: src/readelf.c:8718
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "nie można obsłużyć rozmiaru selektora segmentu: %u\n"
-#: src/readelf.c:8565
+#: src/readelf.c:8728
#, 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:8580
+#: src/readelf.c:8743
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5793,7 +5844,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu parametr\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu parametry\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu parametrów\n"
-#: src/readelf.c:8591
+#: src/readelf.c:8754
msgid ""
"\n"
"Directory table:"
@@ -5801,12 +5852,12 @@ msgstr ""
"\n"
"Tabela katalogu:"
-#: src/readelf.c:8597 src/readelf.c:8674
+#: src/readelf.c:8760 src/readelf.c:8837
#, c-format
msgid " ["
msgstr " ["
-#: src/readelf.c:8668
+#: src/readelf.c:8831
msgid ""
"\n"
"File name table:"
@@ -5814,11 +5865,11 @@ msgstr ""
"\n"
"Tabela nazw plików:"
-#: src/readelf.c:8729
+#: src/readelf.c:8892
msgid " Entry Dir Time Size Name"
msgstr " Wpis Kat Czas Rozmiar Nazwa"
-#: src/readelf.c:8775
+#: src/readelf.c:8938
msgid ""
"\n"
"No line number statements."
@@ -5826,7 +5877,7 @@ msgstr ""
"\n"
"Brak instrukcji numerów wierszy."
-#: src/readelf.c:8779
+#: src/readelf.c:8942
msgid ""
"\n"
"Line number statements:"
@@ -5834,129 +5885,129 @@ msgstr ""
"\n"
"Instrukcje numerów wierszy:"
-#: src/readelf.c:8794
+#: src/readelf.c:8957
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero"
-#: src/readelf.c:8828
+#: src/readelf.c:8991
#, c-format
msgid " special opcode %u: address+%u = "
msgstr " instrukcja specjalna %u: adres+%u = "
-#: src/readelf.c:8832
+#: src/readelf.c:8995
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ", op_index = %u, wiersz%+d = %zu\n"
-#: src/readelf.c:8835
+#: src/readelf.c:8998
#, c-format
msgid ", line%+d = %zu\n"
msgstr ", wiersz%+d = %zu\n"
-#: src/readelf.c:8853
+#: src/readelf.c:9016
#, c-format
msgid " extended opcode %u: "
msgstr " instrukcja rozszerzona %u: "
-#: src/readelf.c:8858
+#: src/readelf.c:9021
msgid " end of sequence"
msgstr " koniec sekwencji"
-#: src/readelf.c:8876
+#: src/readelf.c:9039
#, c-format
msgid " set address to "
msgstr " ustawienie adresu na "
-#: src/readelf.c:8904
+#: src/readelf.c:9067
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-" definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, nazwa="
-"%s\n"
+" definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, "
+"nazwa=%s\n"
-#: src/readelf.c:8918
+#: src/readelf.c:9081
#, c-format
msgid " set discriminator to %u\n"
msgstr " ustawienie dyskryminatora na %u\n"
-#: src/readelf.c:8945
+#: src/readelf.c:9108
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:8969
+#: src/readelf.c:9132
#, fuzzy, c-format
#| msgid "Also show function names"
msgid " set function name %s (0x%x)\n"
msgstr "Wyświetla także nazwy funkcji"
#. Unknown, ignore it.
-#: src/readelf.c:8976
+#: src/readelf.c:9139
msgid " unknown opcode"
msgstr " nieznana instrukcja"
#. Takes no argument.
-#: src/readelf.c:8988
+#: src/readelf.c:9151
msgid " copy"
msgstr " kopiowanie"
-#: src/readelf.c:8999
+#: src/readelf.c:9162
#, c-format
msgid " advance address by %u to "
msgstr " zwiększenie adresu o %u do "
-#: src/readelf.c:9003 src/readelf.c:9064
+#: src/readelf.c:9166 src/readelf.c:9227
#, c-format
msgid ", op_index to %u"
msgstr ", op_index do %u"
-#: src/readelf.c:9015
+#: src/readelf.c:9178
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " zwiększenie wiersza o stałą %d do %<PRId64>\n"
-#: src/readelf.c:9025
+#: src/readelf.c:9188
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:9036
+#: src/readelf.c:9199
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:9043
+#: src/readelf.c:9206
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " ustawienie „%s†na %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:9049
+#: src/readelf.c:9212
msgid " set basic block flag"
msgstr " ustawienie podstawowej flagi bloku"
-#: src/readelf.c:9060
+#: src/readelf.c:9223
#, c-format
msgid " advance address by constant %u to "
msgstr " zwiększenie adresu o stałą %u do "
-#: src/readelf.c:9080
+#: src/readelf.c:9243
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr " zwiększenie adresu o stałą wartość %u do \n"
#. Takes no argument.
-#: src/readelf.c:9090
+#: src/readelf.c:9253
msgid " set prologue end flag"
msgstr " ustawienie flagi końca prologu"
#. Takes no argument.
-#: src/readelf.c:9095
+#: src/readelf.c:9258
msgid " set epilogue begin flag"
msgstr " ustawienie flagi poczÄ…tku epilogu"
-#: src/readelf.c:9105
+#: src/readelf.c:9268
#, c-format
msgid " set isa to %u\n"
msgstr " ustawienie isa na %u\n"
@@ -5964,7 +6015,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:9114
+#: src/readelf.c:9277
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5972,101 +6023,101 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:"
msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:"
-#: src/readelf.c:9154
+#: src/readelf.c:9317
#, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "nie można uzyskać zawartości .debug_loclists: %s"
-#: src/readelf.c:9320
+#: src/readelf.c:9483
#, c-format
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:9360
+#: src/readelf.c:9523
#, c-format
msgid "invalid loclists data"
msgstr "nieprawidłowe dane loclists"
-#: src/readelf.c:9613
+#: src/readelf.c:9786
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "nie można uzyskać zawartości .debug_log: %s"
-#: src/readelf.c:9826 src/readelf.c:10870
+#: src/readelf.c:9999 src/readelf.c:11043
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:9881 src/readelf.c:10044
+#: src/readelf.c:10054 src/readelf.c:10217
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "nie można uzyskać danych sekcji informacji o makrach: %s"
-#: src/readelf.c:9961
+#: src/readelf.c:10134
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** niezakończony ciąg na końcu sekcji"
-#: src/readelf.c:9984
+#: src/readelf.c:10157
#, 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:10085
+#: src/readelf.c:10258
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:10097
+#: src/readelf.c:10270
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Wersja: %<PRIu16>\n"
-#: src/readelf.c:10103 src/readelf.c:10990
+#: src/readelf.c:10276 src/readelf.c:11163
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " nieznana wersja, nie można przetworzyć sekcji\n"
-#: src/readelf.c:10110
+#: src/readelf.c:10283
#, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Flaga: 0x%<PRIx8>"
-#: src/readelf.c:10139
+#: src/readelf.c:10312
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:10147
+#: src/readelf.c:10320
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:10172
+#: src/readelf.c:10345
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n"
-#: src/readelf.c:10179
+#: src/readelf.c:10352
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:10191
+#: src/readelf.c:10364
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " Parametry %<PRIu8>:"
-#: src/readelf.c:10206
+#: src/readelf.c:10379
#, c-format
msgid " no arguments."
msgstr " brak parametrów."
-#: src/readelf.c:10407
+#: src/readelf.c:10580
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr " [%5d] offset DIE: %6<PRId64>, offset CU DIE: %6<PRId64>, nazwa: %s\n"
-#: src/readelf.c:10451
+#: src/readelf.c:10624
#, c-format
msgid ""
"\n"
@@ -6078,42 +6129,42 @@ msgstr ""
" %*s CiÄ…g\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10456
+#: src/readelf.c:10629
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10466
+#: src/readelf.c:10639
#, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** błąd, brak znaku kończącego ciąg\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10668
#, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "nie można uzyskać danych sekcji .debug_str_offsets: %s"
-#: src/readelf.c:10594
+#: src/readelf.c:10767
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Długość: %8<PRIu64>\n"
-#: src/readelf.c:10596
+#: src/readelf.c:10769
#, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Rozmiar offsetu: %8<PRIu8>\n"
-#: src/readelf.c:10610
+#: src/readelf.c:10783
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %8<PRIu16>\n"
-#: src/readelf.c:10619
+#: src/readelf.c:10792
#, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " Wypełnienie: %8<PRIx16>\n"
-#: src/readelf.c:10673
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
@@ -6122,7 +6173,7 @@ msgstr ""
"\n"
"Sekcja tabeli wyszukiwania ramki wywoÅ‚ania [%2zu] „.eh_frame_hdrâ€:\n"
-#: src/readelf.c:10775
+#: src/readelf.c:10948
#, c-format
msgid ""
"\n"
@@ -6131,22 +6182,22 @@ msgstr ""
"\n"
"Sekcja tabeli obsÅ‚ugiwania wyjÄ…tków [%2zu] „.gcc_except_tableâ€:\n"
-#: src/readelf.c:10798
+#: src/readelf.c:10971
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Kodowanie LPStart: %#x "
-#: src/readelf.c:10810
+#: src/readelf.c:10983
#, c-format
msgid " TType encoding: %#x "
msgstr " Kodowanie TType: %#x "
-#: src/readelf.c:10825
+#: src/readelf.c:10998
#, c-format
msgid " Call site encoding: %#x "
msgstr " Kodowanie strony wywołania: %#x "
-#: src/readelf.c:10838
+#: src/readelf.c:11011
msgid ""
"\n"
" Call site table:"
@@ -6154,7 +6205,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:10852
+#: src/readelf.c:11025
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6167,12 +6218,12 @@ msgstr ""
" LÄ…dowisko: %#<PRIx64>\n"
" Działanie: %u\n"
-#: src/readelf.c:10925
+#: src/readelf.c:11098
#, c-format
msgid "invalid TType encoding"
msgstr "nieprawidłowe kodowanie TType"
-#: src/readelf.c:10952
+#: src/readelf.c:11125
#, c-format
msgid ""
"\n"
@@ -6181,37 +6232,37 @@ msgstr ""
"\n"
"Sekcja GDB [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %<PRId64> B:\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11154
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Wersja: %<PRId32>\n"
-#: src/readelf.c:10999
+#: src/readelf.c:11172
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " offset CU: %#<PRIx32>\n"
-#: src/readelf.c:11006
+#: src/readelf.c:11179
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " offset TU: %#<PRIx32>\n"
-#: src/readelf.c:11013
+#: src/readelf.c:11186
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " offset adresu: %#<PRIx32>\n"
-#: src/readelf.c:11020
+#: src/readelf.c:11193
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " offset symbolu: %#<PRIx32>\n"
-#: src/readelf.c:11027
+#: src/readelf.c:11200
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " offset stałej: %#<PRIx32>\n"
-#: src/readelf.c:11041
+#: src/readelf.c:11214
#, c-format
msgid ""
"\n"
@@ -6220,7 +6271,7 @@ msgstr ""
"\n"
" Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:11066
+#: src/readelf.c:11239
#, c-format
msgid ""
"\n"
@@ -6229,7 +6280,7 @@ msgstr ""
"\n"
" Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:11095
+#: src/readelf.c:11268
#, c-format
msgid ""
"\n"
@@ -6238,7 +6289,7 @@ msgstr ""
"\n"
" Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:11127
+#: src/readelf.c:11300
#, c-format
msgid ""
"\n"
@@ -6247,18 +6298,18 @@ msgstr ""
"\n"
" Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n"
-#: src/readelf.c:11265
+#: src/readelf.c:11438
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s"
-#: src/readelf.c:11633 src/readelf.c:12260 src/readelf.c:12371
-#: src/readelf.c:12429
+#: src/readelf.c:11804 src/readelf.c:12431 src/readelf.c:12541
+#: src/readelf.c:12598
#, c-format
msgid "cannot convert core note data: %s"
msgstr "nie można konwertować danych notatki core: %s"
-#: src/readelf.c:11996
+#: src/readelf.c:12168
#, c-format
msgid ""
"\n"
@@ -6267,21 +6318,21 @@ msgstr ""
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: src/readelf.c:12508
+#: src/readelf.c:12677
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:12536
+#: src/readelf.c:12705
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12757
#, c-format
msgid "cannot get content of note: %s"
msgstr "nie można uzyskać zawartości notatki: %s"
-#: src/readelf.c:12622
+#: src/readelf.c:12790
#, c-format
msgid ""
"\n"
@@ -6291,7 +6342,7 @@ msgstr ""
"Segment notatki [%2zu] „%s†o długości %<PRIu64> B pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12645
+#: src/readelf.c:12813
#, c-format
msgid ""
"\n"
@@ -6300,7 +6351,7 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRIu64> B pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12692
+#: src/readelf.c:12860
#, c-format
msgid ""
"\n"
@@ -6309,12 +6360,12 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s†nie ma danych do zrzucenia.\n"
-#: src/readelf.c:12719 src/readelf.c:12770
+#: src/readelf.c:12887 src/readelf.c:12938
#, 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:12724
+#: src/readelf.c:12892
#, c-format
msgid ""
"\n"
@@ -6324,7 +6375,7 @@ msgstr ""
"Segment zrzutu szesnastkowego [%zu] „%sâ€, %<PRIu64> B pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12729
+#: src/readelf.c:12897
#, c-format
msgid ""
"\n"
@@ -6335,7 +6386,7 @@ msgstr ""
"Zrzut szesnastkowy sekcji [%zu] „%sâ€, %<PRIu64> B (%zd nieskompresowanych) "
"pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12743
+#: src/readelf.c:12911
#, c-format
msgid ""
"\n"
@@ -6344,7 +6395,7 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s†nie ma ciągów do zrzucenia.\n"
-#: src/readelf.c:12775
+#: src/readelf.c:12943
#, c-format
msgid ""
"\n"
@@ -6353,7 +6404,7 @@ msgstr ""
"\n"
"Sekcja ciągów [%zu] „%s†zawiera %<PRIu64> B pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12780
+#: src/readelf.c:12948
#, c-format
msgid ""
"\n"
@@ -6364,7 +6415,7 @@ msgstr ""
"Sekcja ciągów [%zu] „%s†zawiera %<PRIu64> B (%zd nieskompresowanych) pod "
"offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12829
+#: src/readelf.c:12996
#, c-format
msgid ""
"\n"
@@ -6373,7 +6424,7 @@ msgstr ""
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:12859
+#: src/readelf.c:13026
#, c-format
msgid ""
"\n"
@@ -6382,12 +6433,12 @@ msgstr ""
"\n"
"sekcja „%s†nie istnieje"
-#: src/readelf.c:12916
+#: src/readelf.c:13081
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "nie można uzyskać indeksu symboli archiwum „%sâ€: %s"
-#: src/readelf.c:12919
+#: src/readelf.c:13084
#, c-format
msgid ""
"\n"
@@ -6396,7 +6447,7 @@ msgstr ""
"\n"
"Archiwum „%s†nie ma indeksu symboli\n"
-#: src/readelf.c:12923
+#: src/readelf.c:13088
#, c-format
msgid ""
"\n"
@@ -6405,138 +6456,137 @@ msgstr ""
"\n"
"Indeks archiwum „%s†ma %zu wpisów:\n"
-#: src/readelf.c:12941
+#: src/readelf.c:13106
#, 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:12946
+#: src/readelf.c:13111
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Element archiwum „%s†zawiera:\n"
-#: src/size.c:56
+#: src/size.c:55
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â€"
-#: src/size.c:58
+#: src/size.c:57
msgid "Same as `--format=sysv'"
msgstr "To samo, co „--format=sysvâ€"
-#: src/size.c:59
+#: src/size.c:58
msgid "Same as `--format=bsd'"
msgstr "To samo, co „--format=bsdâ€"
-#: src/size.c:62
+#: src/size.c:61
msgid "Same as `--radix=10'"
msgstr "To samo, co „--radix=10â€"
-#: src/size.c:63
+#: src/size.c:62
msgid "Same as `--radix=8'"
msgstr "To samo, co „--radix=8â€"
-#: src/size.c:64
+#: src/size.c:63
msgid "Same as `--radix=16'"
msgstr "To samo, co „--radix=16â€"
-#: src/size.c:66
+#: src/size.c:65
msgid "Similar to `--format=sysv' output but in one line"
msgstr "Podobne do wyjÅ›cia „--format=sysvâ€, ale w jednym wierszu"
-#: src/size.c:70
+#: src/size.c:69
msgid "Print size and permission flags for loadable segments"
msgstr "Wyświetla rozmiar i flagi uprawnień dla segmentów wczytywalnych"
-#: src/size.c:71
+#: src/size.c:70
msgid "Display the total sizes (bsd only)"
msgstr "Wyświetla całkowite rozmiary (tylko bsd)"
#. Short description of program.
-#: src/size.c:76
+#: src/size.c:75
msgid "List section sizes of FILEs (a.out by default)."
msgstr "Wyświetla listę rozmiarów sekcji PLIKU (domyślnie a.out)."
-#: src/size.c:240
+#: src/size.c:239
#, c-format
msgid "Invalid format: %s"
msgstr "Nieprawidłowy format: %s"
-#: src/size.c:251
+#: src/size.c:250
#, c-format
msgid "Invalid radix: %s"
msgstr "Nieprawidłowa baza: %s"
-#: src/size.c:310
+#: src/size.c:309
#, c-format
msgid "%s: file format not recognized"
msgstr "%s: nie rozpoznano formatu pliku"
-#: src/size.c:328
+#: src/size.c:327
msgctxt "bsd"
msgid "text"
msgstr ""
-#: src/size.c:329
+#: src/size.c:328
msgctxt "bsd"
msgid "data"
msgstr ""
-#: src/size.c:330
+#: src/size.c:329
msgctxt "bsd"
msgid "bss"
msgstr ""
-#: src/size.c:331
+#: src/size.c:330
msgctxt "bsd"
msgid "dec"
msgstr ""
-#: src/size.c:332
+#: src/size.c:331
msgctxt "bsd"
msgid "hex"
msgstr ""
-#: src/size.c:333
+#: src/size.c:332
msgctxt "bsd"
msgid "filename"
msgstr ""
-#: src/size.c:418 src/size.c:560
+#: src/size.c:416 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (ex %s)"
-#: src/size.c:420
+#: src/size.c:418
#, fuzzy
#| msgid "invalid section"
msgctxt "sysv"
msgid "section"
msgstr "nieprawidłowa sekcja"
-#: src/size.c:421
+#: src/size.c:419
msgctxt "sysv"
msgid "size"
msgstr ""
-#: src/size.c:422
+#: src/size.c:420
msgctxt "sysv"
msgid "addr"
msgstr ""
-#: src/size.c:451 src/size.c:454 src/size.c:457
+#: src/size.c:449 src/size.c:452 src/size.c:455
msgctxt "sysv"
msgid "Total"
msgstr ""
-#: src/size.c:482
-#, c-format
+#: src/size.c:479
msgid "cannot get section header"
msgstr "nie można uzyskać nagłówka sekcji"
-#: src/size.c:585
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(CAÅKOWITE)\n"
@@ -6673,21 +6723,21 @@ msgstr ""
msgid "Couldn't show any frames."
msgstr "Nie można wyświetlić żadnych ramek."
-#: src/strings.c:65
+#: src/strings.c:64
msgid "Output Selection:"
msgstr "Wybór wyjścia:"
-#: src/strings.c:66
+#: src/strings.c:65
msgid "Scan entire file, not only loaded sections"
msgstr "Przeszukuje cały plik, nie tylko wczytane sekcje"
-#: src/strings.c:68
+#: src/strings.c:67
msgid "Only NUL-terminated sequences of MIN-LEN characters or more are printed"
msgstr ""
"Wyświetlane są tylko zakończone NUL sekwencje o MIN-LEN lub większej liczbie "
"znaków"
-#: src/strings.c:69
+#: src/strings.c:68
msgid ""
"Select character size and endianness: s = 7-bit, S = 8-bit, {b,l} = 16-bit, "
"{B,L} = 32-bit"
@@ -6695,78 +6745,74 @@ msgstr ""
"Wybór rozmiaru i kolejności znaków: s = 7 bitów, S = 8 bitów, {b,l} = 16 "
"bitów, {B,L} = 32 bity"
-#: src/strings.c:73
+#: src/strings.c:72
msgid "Print name of the file before each string."
msgstr "Wyświetla nazwę pliku przed każdym ciągiem."
-#: src/strings.c:75
+#: src/strings.c:74
msgid "Print location of the string in base 8, 10, or 16 respectively."
msgstr "Wyświetla położenie ciągu z podstawą odpowiednio 8, 10 lub 16."
-#: src/strings.c:76
+#: src/strings.c:75
msgid "Alias for --radix=o"
msgstr "Alias dla --radix=o"
#. Short description of program.
-#: src/strings.c:83
+#: src/strings.c:82
msgid "Print the strings of printable characters in files."
msgstr "Wyświetla ciągi znaków drukowalnych w plikach."
-#: src/strings.c:256 src/strings.c:291
+#: src/strings.c:255 src/strings.c:290
#, c-format
msgid "invalid value '%s' for %s parameter"
msgstr "nieprawidłowa wartość „%s†dla parametru %s"
-#: src/strings.c:302
-#, c-format
+#: src/strings.c:300
msgid "invalid minimum length of matched string size"
msgstr "nieprawidłowa minimalna długość dopasowanego rozmiaru ciągu"
-#: src/strings.c:585
-#, c-format
+#: src/strings.c:583
msgid "lseek failed"
msgstr "lseek się nie powiodło"
-#: src/strings.c:602 src/strings.c:666
-#, c-format
+#: src/strings.c:600 src/strings.c:664
msgid "re-mmap failed"
msgstr "ponowne mmap się nie powiodło"
-#: src/strings.c:639
-#, c-format
+#: src/strings.c:637
msgid "mprotect failed"
msgstr "mprotect się nie powiodło"
-#: src/strings.c:728
+#: src/strings.c:726
#, c-format
msgid "Skipping section %zd '%s' data outside file"
msgstr "Pomijanie sekcji %zd „%s†dane poza plikiem"
-#: src/strip.c:71
+#: src/strip.c:70
msgid "Place stripped output into FILE"
msgstr "Umieszcza okrojone wyjście w PLIKU"
-#: src/strip.c:72
+#: src/strip.c:71
msgid "Extract the removed sections into FILE"
msgstr "Wydobywa usunięte sekcje do PLIKU"
-#: src/strip.c:73
+#: src/strip.c:72
msgid "Embed name FILE instead of -f argument"
msgstr "Osadza nazwÄ™ PLIKU zamiast parametru -f"
-#: src/strip.c:77
+#: src/strip.c:76
msgid "Remove all debugging symbols"
msgstr "Usuwa wszystkie symbole debugowania"
-#: src/strip.c:81
+#: src/strip.c:80
msgid "Remove section headers (not recommended)"
msgstr "Usuwa nagłówki sekcji (niezalecane)"
-#: src/strip.c:83
+#: src/strip.c:82
msgid "Copy modified/access timestamps to the output"
msgstr "Kopiuje czasy modyfikacji/dostępu do wyjścia"
-#: src/strip.c:85
+#: src/strip.c:84
msgid ""
"Resolve all trivial relocations between debug sections if the removed "
"sections are placed in a debug file (only relevant for ET_REL files, "
@@ -6776,7 +6822,7 @@ msgstr ""
"usunięte sekcje zostały umieszczone w pliku debugowania (ma znaczenie tylko "
"dla plików ET_REL, działanie jest nieodwracalne, wymaga użycia opcji -f)"
-#: src/strip.c:87
+#: src/strip.c:86
msgid ""
"Similar to --reloc-debug-sections, but resolve all trivial relocations "
"between debug sections in place. No other stripping is performed (operation "
@@ -6788,11 +6834,11 @@ msgstr ""
"jest wykonywane (działania nie jest odwracalne, nie jest zgodne z opcjami -"
"f, -g, --remove-comment i --remove-section)"
-#: src/strip.c:89
+#: src/strip.c:88
msgid "Remove .comment section"
msgstr "Usuwa sekcjÄ™ .comment"
-#: src/strip.c:90
+#: src/strip.c:89
msgid ""
"Remove the named section. SECTION is an extended wildcard pattern. May be "
"given more than once. Only non-allocated sections can be removed."
@@ -6800,7 +6846,7 @@ msgstr ""
"Usuwa podaną sekcję. SEKCJA jest rozszerzonym wzorem. Może być podane więcej "
"niż raz. Można usuwać tylko nieprzydzielone sekcje."
-#: src/strip.c:91
+#: src/strip.c:90
msgid ""
"Keep the named section. SECTION is an extended wildcard pattern. May be "
"given more than once."
@@ -6809,17 +6855,15 @@ msgstr ""
"więcej niż raz."
#. Short description of program.
-#: src/strip.c:98
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Odrzuca symbole z plików obiektów."
-#: src/strip.c:247
-#, c-format
+#: src/strip.c:245
msgid "--reloc-debug-sections used without -f"
msgstr "Użyto --reloc-debug-sections bez opcji -f"
-#: src/strip.c:253
-#, c-format
+#: src/strip.c:251
msgid ""
"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --"
"remove-section"
@@ -6827,42 +6871,40 @@ msgstr ""
"Opcja --reloc-debug-sections-only jest niezgodna z -f, -g, --remove-comment "
"i --remove-section"
-#: src/strip.c:267
-#, c-format
+#: src/strip.c:265
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr "Tylko jeden plik wejÅ›ciowy jest dozwolony z „-o†i „-fâ€"
-#: src/strip.c:290
+#: src/strip.c:287
#, c-format
msgid "-f option specified twice"
msgstr "OpcjÄ™ -f podano dwukrotnie"
-#: src/strip.c:299
+#: src/strip.c:296
#, c-format
msgid "-F option specified twice"
msgstr "OpcjÄ™ -F podano dwukrotnie"
-#: src/strip.c:362
+#: src/strip.c:359
#, c-format
msgid "cannot both keep and remove .comment section"
msgstr "nie można jednocześnie zachować i usunąć sekcji .comment"
-#: src/strip.c:481
-#, c-format
+#: src/strip.c:478
msgid "bad relocation"
msgstr "błędna relokacja"
-#: src/strip.c:751 src/strip.c:775
+#: src/strip.c:756 src/strip.c:780
#, c-format
msgid "cannot stat input file '%s'"
msgstr "nie można wykonać stat na pliku wejÅ›ciowym „%sâ€"
-#: src/strip.c:765
+#: src/strip.c:770
#, c-format
msgid "while opening '%s'"
msgstr "podczas otwierania „%sâ€"
-#: src/strip.c:803
+#: src/strip.c:808
#, 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"
@@ -6873,77 +6915,76 @@ msgstr "%s: nie można używać -o lub -f podczas okrajania archiwum"
#. result = handle_ar (fd, elf, NULL, fname,
#. preserve_dates ? tv : NULL);
#.
-#: src/strip.c:815
+#: src/strip.c:820
#, c-format
msgid "%s: no support for stripping archive"
msgstr "%s: brak obsługi okrajania archiwum"
-#: src/strip.c:1052
+#: src/strip.c:1057
#, c-format
msgid "cannot open EBL backend"
msgstr "nie można otworzyć zaplecza EBL"
-#: src/strip.c:1097
-#, c-format
+#: src/strip.c:1101
msgid "cannot get number of phdrs"
msgstr "nie można uzyskać liczby phdr"
-#: src/strip.c:1111 src/strip.c:1154
+#: src/strip.c:1115 src/strip.c:1158
#, c-format
msgid "cannot create new ehdr for file '%s': %s"
msgstr "nie można utworzyć nowego ehdr dla pliku „%sâ€: %s"
-#: src/strip.c:1121 src/strip.c:1164
+#: src/strip.c:1125 src/strip.c:1168
#, c-format
msgid "cannot create new phdr for file '%s': %s"
msgstr "nie można utworzyć nowego phdr dla pliku „%sâ€: %s"
-#: src/strip.c:1244
+#: src/strip.c:1248
#, c-format
msgid "illformed file '%s'"
msgstr "plik „%s†ma błędny format"
-#: src/strip.c:1254
+#: src/strip.c:1258
#, c-format
msgid "Cannot remove allocated section '%s'"
msgstr "Nie można usunąć przydzielonej sekcji „%sâ€"
-#: src/strip.c:1263
+#: src/strip.c:1267
#, c-format
msgid "Cannot both keep and remove section '%s'"
msgstr "Nie można jednoczeÅ›nie zachować i usunąć sekcji „%sâ€"
-#: src/strip.c:1628 src/strip.c:1743
+#: src/strip.c:1631 src/strip.c:1746
#, c-format
msgid "while generating output file: %s"
msgstr "podczas tworzenia pliku wyjściowego: %s"
-#: src/strip.c:1692
+#: src/strip.c:1695
#, c-format
msgid "%s: error while updating ELF header: %s"
msgstr "%s: błąd podczas aktualizowania nagłówka ELF: %s"
-#: src/strip.c:1701
+#: src/strip.c:1704
#, c-format
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: błąd podczas uzyskiwania shdrstrndx: %s"
-#: src/strip.c:1709 src/strip.c:2554
+#: src/strip.c:1712 src/strip.c:2553
#, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: błąd podczas aktualizowania shdrstrndx: %s"
-#: src/strip.c:1726
+#: src/strip.c:1729
#, c-format
msgid "while preparing output for '%s'"
msgstr "podczas przygotowywania wyjÅ›cia dla „%sâ€"
-#: src/strip.c:1788 src/strip.c:1851
+#: src/strip.c:1790 src/strip.c:1852
#, c-format
msgid "while create section header section: %s"
msgstr "podczas tworzenia sekcji nagłówka sekcji: %s"
-#: src/strip.c:1797
+#: src/strip.c:1799
#, c-format
msgid "cannot allocate section data: %s"
msgstr "nie można przydzielić danych sekcji: %s"
@@ -6953,381 +6994,378 @@ msgstr "nie można przydzielić danych sekcji: %s"
msgid "while create section header string table: %s"
msgstr "podczas tworzenia tabeli ciągów nagłówka sekcji: %s"
-#: src/strip.c:1870
-#, c-format
+#: src/strip.c:1869
msgid "no memory to create section header string table"
msgstr "brak pamięci do utworzenia tabeli ciągów nagłówka sekcji"
-#: src/strip.c:2083
+#: src/strip.c:2082
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr "Nie można usunąć symbolu [%zd] z przydzielonej tabeli symboli [%zd]"
-#: src/strip.c:2470 src/strip.c:2578
+#: src/strip.c:2469 src/strip.c:2577
#, c-format
msgid "while writing '%s': %s"
msgstr "podczas zapisywania „%sâ€: %s"
-#: src/strip.c:2481
+#: src/strip.c:2480
#, c-format
msgid "while creating '%s'"
msgstr "podczas tworzenia „%sâ€"
-#: src/strip.c:2504
+#: src/strip.c:2503
#, c-format
msgid "while computing checksum for debug information"
msgstr "podczas obliczania sumy kontrolnej dla informacji debugowania"
-#: src/strip.c:2545
+#: src/strip.c:2544
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
-#: src/strip.c:2563
+#: src/strip.c:2562
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: błąd podczas odczytywania pliku: %s"
-#: src/strip.c:2603 src/strip.c:2623
+#: src/strip.c:2602 src/strip.c:2622
#, c-format
msgid "while writing '%s'"
msgstr "podczas zapisywania „%sâ€"
-#: src/strip.c:2660 src/strip.c:2667
+#: src/strip.c:2659 src/strip.c:2666
#, c-format
msgid "error while finishing '%s': %s"
msgstr "bÅ‚Ä…d podczas koÅ„czenia „%sâ€: %s"
-#: src/strip.c:2684 src/strip.c:2760
+#: src/strip.c:2683 src/strip.c:2759
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "nie można ustawić czasu dostÄ™pu i modyfikacji „%sâ€"
-#: src/unstrip.c:66
+#: src/unstrip.c:65
msgid "Match MODULE against file names, not module names"
msgstr "Dopasowuje MODUÅY do nazw plików, a nie nazwy modułów"
-#: src/unstrip.c:67
+#: src/unstrip.c:66
msgid "Silently skip unfindable files"
msgstr "Pomija nieodnalezione pliki bez zgłaszania tego"
-#: src/unstrip.c:70
+#: src/unstrip.c:69
msgid "Place output into FILE"
msgstr "Umieszcza wyjście w PLIKU"
-#: src/unstrip.c:72
+#: src/unstrip.c:71
msgid "Create multiple output files under DIRECTORY"
msgstr "Tworzy wiele plików wyjściowych w KATALOGU"
-#: src/unstrip.c:73
+#: src/unstrip.c:72
msgid "Use module rather than file names"
msgstr "Używa nazw modułów zamiast nazw plików"
-#: src/unstrip.c:75
+#: src/unstrip.c:74
msgid "Create output for modules that have no separate debug information"
msgstr ""
"Tworzy wyjście dla modułów niemających oddzielnych informacji debugowania"
-#: src/unstrip.c:78
+#: src/unstrip.c:77
msgid "Apply relocations to section contents in ET_REL files"
msgstr "Zastosowuje relokacje do zawartości sekcji w plikach ET_REL"
-#: src/unstrip.c:80
+#: src/unstrip.c:79
msgid "Only list module and file names, build IDs"
msgstr "Wyświetla tylko nazwy modułów i plików, identyfikatory kopii"
-#: src/unstrip.c:82
+#: src/unstrip.c:81
msgid "Force combining files even if some ELF headers don't seem to match"
msgstr ""
"Wymusza łączenie plików, nawet jeśli niektóre nagłówki ELF się nie zgadzają"
-#: src/unstrip.c:126
+#: src/unstrip.c:125
#, c-format
msgid "-d option specified twice"
msgstr "opcjÄ™ -d podano dwukrotnie"
-#: src/unstrip.c:161
+#: src/unstrip.c:160
#, c-format
msgid "only one of -o or -d allowed"
msgstr "dozwolona jest tylko jedna z opcji -o lub -d"
-#: src/unstrip.c:170
+#: src/unstrip.c:169
#, c-format
msgid "-n cannot be used with explicit files or -o or -d"
msgstr "opcja -n nie może być używana z jawnymi plikami albo z opcją -o lub -d"
-#: src/unstrip.c:185
+#: src/unstrip.c:184
#, c-format
msgid "output directory '%s'"
msgstr "katalog wyjÅ›ciowy „%sâ€"
-#: src/unstrip.c:194
+#: src/unstrip.c:193
#, c-format
msgid "exactly two file arguments are required"
msgstr "wymagane są dokładnie dwa parametry plików"
-#: src/unstrip.c:200
+#: src/unstrip.c:199
#, c-format
msgid "-m, -a, -R, and -i options not allowed with explicit files"
msgstr "opcje -m, -a, -R oraz -i nie są dozwolone z jawnymi plikami"
-#: src/unstrip.c:213
+#: src/unstrip.c:212
#, c-format
msgid "-o or -d is required when using implicit files"
msgstr "opcja -o lub -d jest wymagana podczas używania ukrytych plików"
-#: src/unstrip.c:236
+#: src/unstrip.c:235
#, c-format
msgid "cannot create ELF header: %s"
msgstr "nie można utworzyć nagłówka ELF: %s"
-#: src/unstrip.c:240
+#: src/unstrip.c:239
#, c-format
msgid "cannot get shdrstrndx:%s"
msgstr "nie można uzyskać shdrstrndx: %s"
-#: src/unstrip.c:244 src/unstrip.c:2088
+#: src/unstrip.c:243 src/unstrip.c:2085
#, c-format
msgid "cannot get ELF header: %s"
msgstr "nie można uzyskać nagłówka ELF: %s"
-#: src/unstrip.c:254
+#: src/unstrip.c:253
#, c-format
msgid "cannot get new zero section: %s"
msgstr "nie można uzyskać nowej sekcji zerowej: %s"
-#: src/unstrip.c:257
+#: src/unstrip.c:256
#, c-format
msgid "cannot update new zero section: %s"
msgstr "nie można zaktualizować nowej sekcji zerowej: %s"
-#: src/unstrip.c:261
+#: src/unstrip.c:260
#, c-format
msgid "cannot copy ELF header: %s"
msgstr "nie można skopiować nagłówka ELF: %s"
-#: src/unstrip.c:265 src/unstrip.c:2106 src/unstrip.c:2149
+#: src/unstrip.c:264 src/unstrip.c:2103 src/unstrip.c:2146
#, c-format
msgid "cannot get number of program headers: %s"
msgstr "nie można uzyskać liczby nagłówków programu: %s"
-#: src/unstrip.c:270 src/unstrip.c:2110
+#: src/unstrip.c:269 src/unstrip.c:2107
#, c-format
msgid "cannot create program headers: %s"
msgstr "nie można utworzyć nagłówków programu: %s"
-#: src/unstrip.c:276
+#: src/unstrip.c:275
#, c-format
msgid "cannot copy program header: %s"
msgstr "nie można skopiować nagłówka programu: %s"
-#: src/unstrip.c:286
+#: src/unstrip.c:285
#, c-format
msgid "cannot copy section header: %s"
msgstr "nie można skopiować nagłówka sekcji: %s"
-#: src/unstrip.c:289 src/unstrip.c:1710
+#: src/unstrip.c:288 src/unstrip.c:1707
#, c-format
msgid "cannot get section data: %s"
msgstr "nie można uzyskać danych sekcji: %s"
-#: src/unstrip.c:291 src/unstrip.c:1712
+#: src/unstrip.c:290 src/unstrip.c:1709
#, c-format
msgid "cannot copy section data: %s"
msgstr "nie można skopiować danych sekcji: %s"
-#: src/unstrip.c:319
+#: src/unstrip.c:318
#, c-format
msgid "cannot create directory '%s'"
msgstr "nie można utworzyć katalogu „%sâ€"
-#: src/unstrip.c:393 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861
-#: src/unstrip.c:1752
+#: src/unstrip.c:392 src/unstrip.c:657 src/unstrip.c:691 src/unstrip.c:859
+#: src/unstrip.c:1749
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "nie można uzyskać wpisu tabeli symboli: %s"
-#: src/unstrip.c:409 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696
-#: src/unstrip.c:1773 src/unstrip.c:1968 src/unstrip.c:1992
+#: src/unstrip.c:408 src/unstrip.c:660 src/unstrip.c:681 src/unstrip.c:694
+#: src/unstrip.c:1770 src/unstrip.c:1965 src/unstrip.c:1989
#, c-format
msgid "cannot update symbol table: %s"
msgstr "nie można zaktualizować tabeli symboli: %s"
-#: src/unstrip.c:419
+#: src/unstrip.c:418
#, c-format
msgid "cannot update section header: %s"
msgstr "nie można zaktualizować nagłówka sekcji: %s"
-#: src/unstrip.c:465
+#: src/unstrip.c:464
#, c-format
msgid "gelf_getrel failed: %s"
msgstr ""
-#: src/unstrip.c:468 src/unstrip.c:483
+#: src/unstrip.c:467 src/unstrip.c:482
#, c-format
msgid "cannot update relocation: %s"
msgstr "nie można zaktualizować relokacji: %s"
-#: src/unstrip.c:480
+#: src/unstrip.c:479
#, c-format
msgid "gelf_getrela failed: %s"
msgstr ""
-#: src/unstrip.c:582
+#: src/unstrip.c:580
#, c-format
msgid "cannot get symbol version: %s"
msgstr "nie można uzyskać wersji symbolu: %s"
-#: src/unstrip.c:595
+#: src/unstrip.c:593
#, 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:850
+#: src/unstrip.c:848
#, c-format
msgid "cannot get symbol section data: %s"
msgstr "nie można uzyskać danych sekcji symboli: %s"
-#: src/unstrip.c:852
+#: src/unstrip.c:850
#, c-format
msgid "cannot get string section data: %s"
msgstr "nie można uzyskać danych sekcji ciągów: %s"
-#: src/unstrip.c:869
+#: src/unstrip.c:867
#, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "nieprawidłowy offset ciągu w symbolu [%zu]"
-#: src/unstrip.c:1027 src/unstrip.c:1435
+#: src/unstrip.c:1025 src/unstrip.c:1433
#, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "nie można odczytać nazwy sekcji [%zu]: %s"
-#: src/unstrip.c:1042
+#: src/unstrip.c:1040
#, c-format
msgid "bad sh_link for group section: %s"
msgstr "błędne sh_link dla sekcji grupy: %s"
-#: src/unstrip.c:1048
+#: src/unstrip.c:1046
#, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "nie można uzyskać shdr dla sekcji grupy: %s"
-#: src/unstrip.c:1053
+#: src/unstrip.c:1051
#, c-format
msgid "bad data for group symbol section: %s"
msgstr "błędne dane dla sekcji symboli grupy: %s"
-#: src/unstrip.c:1059
+#: src/unstrip.c:1057
#, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "nie można uzyskać symbolu dla sekcji grupy: %s"
-#: src/unstrip.c:1064
+#: src/unstrip.c:1062
#, c-format
msgid "bad symbol name for group section: %s"
msgstr "błędna nazwa symbolu dla sekcji grupy: %s"
-#: src/unstrip.c:1075 src/unstrip.c:1556
+#: src/unstrip.c:1073 src/unstrip.c:1553
#, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "nie można odnaleźć pasujÄ…cej sekcji dla [%zu] „%sâ€"
-#: src/unstrip.c:1120 src/unstrip.c:1139 src/unstrip.c:1177
+#: src/unstrip.c:1118 src/unstrip.c:1137 src/unstrip.c:1175
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "nie można odczytać sekcji „.gnu.prelink_undoâ€: %s"
-#: src/unstrip.c:1157
+#: src/unstrip.c:1155
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr "przepeÅ‚nienie z shnum = %zu w sekcji „%sâ€"
-#: src/unstrip.c:1168
+#: src/unstrip.c:1166
#, c-format
msgid "invalid contents in '%s' section"
msgstr "nieprawidÅ‚owa zawartość w sekcji „%sâ€"
-#: src/unstrip.c:1339 src/unstrip.c:1355 src/unstrip.c:1636 src/unstrip.c:1927
+#: src/unstrip.c:1337 src/unstrip.c:1353 src/unstrip.c:1633 src/unstrip.c:1924
#, 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:1364
+#: src/unstrip.c:1362
#, 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:1393 src/unstrip.c:1397
+#: src/unstrip.c:1391 src/unstrip.c:1395
#, 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:1401 src/unstrip.c:1405 src/unstrip.c:1651
+#: src/unstrip.c:1399 src/unstrip.c:1403 src/unstrip.c:1648
#, c-format
msgid "cannot get section count: %s"
msgstr "nie można uzyskać licznika sekcji: %s"
-#: src/unstrip.c:1408
-#, c-format
+#: src/unstrip.c:1406
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:1412
-#, c-format
+#: src/unstrip.c:1410
msgid "no sections in stripped file"
msgstr "brak sekcji w okrojonym pliku"
-#: src/unstrip.c:1460 src/unstrip.c:1571
+#: src/unstrip.c:1458 src/unstrip.c:1568
#, 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:1630
+#: src/unstrip.c:1627
#, c-format
msgid "cannot add new section: %s"
msgstr "nie można dodać nowej sekcji: %s"
-#: src/unstrip.c:1760
+#: src/unstrip.c:1757
#, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "symbol [%zu] ma nieprawidłowy indeks sekcji"
-#: src/unstrip.c:1792
+#: src/unstrip.c:1789
#, c-format
msgid "group has invalid section index [%zd]"
msgstr "grupa ma nieprawidłowy indeks sekcji [%zd]"
-#: src/unstrip.c:2067
+#: src/unstrip.c:2064
#, c-format
msgid "cannot read section data: %s"
msgstr "nie można odczytać danych sekcji: %s"
-#: src/unstrip.c:2096
+#: src/unstrip.c:2093
#, c-format
msgid "cannot update ELF header: %s"
msgstr "nie można zaktualizować nagłówka ELF: %s"
-#: src/unstrip.c:2120
+#: src/unstrip.c:2117
#, c-format
msgid "cannot update program header: %s"
msgstr "nie można zaktualizować nagłówka programu: %s"
-#: src/unstrip.c:2125 src/unstrip.c:2208
+#: src/unstrip.c:2122 src/unstrip.c:2205
#, c-format
msgid "cannot write output file: %s"
msgstr "nie można zapisać pliku wyjściowego: %s"
-#: src/unstrip.c:2176
+#: src/unstrip.c:2173
#, 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:2179
+#: src/unstrip.c:2176
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -7335,77 +7373,75 @@ msgstr ""
"Dane DWARF w „%s†nie zostały dostosowane do przesunięcia wczesnego "
"konsolidowania; proszę rozważyć polecenie prelink -u"
-#: src/unstrip.c:2199 src/unstrip.c:2251 src/unstrip.c:2263 src/unstrip.c:2353
+#: src/unstrip.c:2196 src/unstrip.c:2248 src/unstrip.c:2260 src/unstrip.c:2350
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "nie można utworzyć deskryptora ELF: %s"
-#: src/unstrip.c:2237
+#: src/unstrip.c:2234
msgid "WARNING: "
msgstr "OSTRZEŻENIE: "
-#: src/unstrip.c:2239
+#: src/unstrip.c:2236
msgid ", use --force"
msgstr ", należy użyć opcji --force"
-#: src/unstrip.c:2267
+#: src/unstrip.c:2264
msgid "ELF header identification (e_ident) different"
msgstr "Różna identyfikacja nagłówka ELF (e_ident)"
-#: src/unstrip.c:2271
+#: src/unstrip.c:2268
msgid "ELF header type (e_type) different"
msgstr "Różne typy nagłówka ELF (e_type)"
-#: src/unstrip.c:2275
+#: src/unstrip.c:2272
msgid "ELF header machine type (e_machine) different"
msgstr "Różne typy maszyny nagłówka ELF (e_machine)"
-#: src/unstrip.c:2279
+#: src/unstrip.c:2276
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr "okrojony nagłówek programu (e_phnum) jest mniejszy niż nieokrojony"
-#: src/unstrip.c:2310
+#: src/unstrip.c:2307
#, 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:2314
+#: src/unstrip.c:2311
#, 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:2329
+#: src/unstrip.c:2326
#, 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:2333
+#: src/unstrip.c:2330
#, 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:2346
+#: src/unstrip.c:2343
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "moduł „%s†pliku „%s†nie został okrojony"
-#: src/unstrip.c:2377
+#: src/unstrip.c:2374
#, 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:2505
-#, c-format
+#: src/unstrip.c:2502
msgid "no matching modules found"
msgstr "nie odnaleziono pasujących modułów"
-#: src/unstrip.c:2515
-#, c-format
+#: src/unstrip.c:2512
msgid "matched more than one module"
msgstr "pasuje więcej niż jeden moduł"
-#: src/unstrip.c:2560
+#: src/unstrip.c:2557
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -7413,7 +7449,7 @@ msgstr ""
"OKROJONY-PLIK PLIK-DEBUGOWANIA\n"
"[MODUÅ…]"
-#: src/unstrip.c:2561
+#: src/unstrip.c:2558
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
@@ -7475,6 +7511,14 @@ msgstr "Żąda zawartość powiązaną z debuginfo z debuginfod wymienionych w
#. Strings for arguments in help texts.
#: debuginfod/debuginfod-find.c:46
+#, fuzzy
+#| msgid ""
+#| "debuginfo BUILDID\n"
+#| "debuginfo PATH\n"
+#| "executable BUILDID\n"
+#| "executable PATH\n"
+#| "source BUILDID /FILENAME\n"
+#| "source PATH /FILENAME\n"
msgid ""
"debuginfo BUILDID\n"
"debuginfo PATH\n"
@@ -7482,6 +7526,8 @@ msgid ""
"executable PATH\n"
"source BUILDID /FILENAME\n"
"source PATH /FILENAME\n"
+"section BUILDID SECTION-NAME\n"
+"section PATH SECTION-NAME\n"
msgstr ""
"debuginfo IDENTYFIKATOR-KOPII\n"
"debuginfo ŚCIEŻKA\n"
diff --git a/po/uk.po b/po/uk.po
index cac761e3..199041a4 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -5,9 +5,9 @@
# Yuri Chornoivan <yurchor@ukr.net>, 2010, 2011, 2012, 2013, 2014, 2015, 2020.
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2021-11-10 16:21+0100\n"
+"POT-Creation-Date: 2022-11-02 13:30+0100\n"
"PO-Revision-Date: 2020-03-28 14:59+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
@@ -15,18 +15,18 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 20.03.70\n"
-#: lib/color.c:53
+#: lib/color.c:51
msgid ""
"colorize the output. WHEN defaults to 'always' or can be 'auto' or 'never'"
msgstr ""
"розфарбовувати виведене. Типові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«always» (завжди), «auto» (авто) "
"або «never» (ніколи)"
-#: lib/color.c:129
+#: lib/color.c:127
#, c-format
msgid ""
"%s: invalid argument '%s' for '--color'\n"
@@ -41,7 +41,7 @@ msgstr ""
" - «never», «no», «none»\n"
" - «auto», «tty», «if-tty»\n"
-#: lib/printversion.c:40
+#: lib/printversion.c:39
#, c-format
msgid ""
"Copyright (C) %s The elfutils developers <%s>.\n"
@@ -53,72 +53,72 @@ msgstr ""
"початкових кодах. Умовами Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ ÐЕ передбачено жодних "
"гарантій, зокрема гарантій працездатноÑÑ‚Ñ– або придатноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— мети.\n"
-#: lib/xmalloc.c:48 lib/xmalloc.c:61 lib/xmalloc.c:73 src/readelf.c:11582
-#: src/unstrip.c:312
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11754
+#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
msgstr "пам’ÑÑ‚ÑŒ вичерпано"
-#: libasm/asm_error.c:65 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
-#: libelf/elf_error.c:60
+#: libasm/asm_error.c:64 libdw/dwarf_error.c:57 libdwfl/libdwflP.h:51
+#: libelf/elf_error.c:59
msgid "no error"
msgstr "без помилок"
-#: libasm/asm_error.c:66 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
-#: libelf/elf_error.c:91
+#: libasm/asm_error.c:65 libdw/dwarf_error.c:67 libdwfl/libdwflP.h:53
+#: libelf/elf_error.c:90
msgid "out of memory"
msgstr "неÑтача пам'ÑÑ‚Ñ–"
-#: libasm/asm_error.c:67
+#: libasm/asm_error.c:66
msgid "cannot create output file"
msgstr "не вдалоÑÑ Ñтворити файл виводу даних"
-#: libasm/asm_error.c:68
+#: libasm/asm_error.c:67
msgid "invalid parameter"
msgstr "некоректний параметр"
-#: libasm/asm_error.c:69
+#: libasm/asm_error.c:68
msgid "cannot change mode of output file"
msgstr "не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ права доÑтупу до файла виводу даних"
-#: libasm/asm_error.c:70
+#: libasm/asm_error.c:69
msgid "cannot rename output file"
msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ñ‚Ð¸ файл виводу даних"
-#: libasm/asm_error.c:71
+#: libasm/asm_error.c:70
msgid "duplicate symbol"
msgstr "Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñимволів"
-#: libasm/asm_error.c:72
+#: libasm/asm_error.c:71
msgid "invalid section type for operation"
msgstr "некоректний тип розділу Ð´Ð»Ñ Ð´Ñ–Ñ—"
-#: libasm/asm_error.c:73
+#: libasm/asm_error.c:72
msgid "error during output of data"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…"
-#: libasm/asm_error.c:74
+#: libasm/asm_error.c:73
msgid "no backend support available"
msgstr "підтримки Ñерверів не передбачено"
-#: libasm/asm_error.c:83 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
-#: libelf/elf_error.c:63
+#: libasm/asm_error.c:82 libdw/dwarf_error.c:58 libdwfl/libdwflP.h:52
+#: libelf/elf_error.c:62
msgid "unknown error"
msgstr "невідома помилка"
-#: libcpu/i386_lex.l:122
+#: libcpu/i386_lex.l:121
#, fuzzy, c-format
#| msgid "invalid page size value '%s': ignored"
msgid "invalid character '%c' at line %d; ignored"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñторінки «%s»: проігноровано"
-#: libcpu/i386_lex.l:123
+#: libcpu/i386_lex.l:122
#, fuzzy, c-format
#| msgid "invalid page size value '%s': ignored"
msgid "invalid character '\\%o' at line %d; ignored"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñторінки «%s»: проігноровано"
-#: libcpu/i386_parse.y:554
+#: libcpu/i386_parse.y:553
#, fuzzy, c-format
#| msgid "while reading linker script '%s': %s at line %d"
msgid "while reading i386 CPU description: %s at line %d"
@@ -160,7 +160,7 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF"
msgid "not implemented"
msgstr "не реалізовано"
-#: libdw/dwarf_error.c:69 libelf/elf_error.c:111 libelf/elf_error.c:159
+#: libdw/dwarf_error.c:69 libelf/elf_error.c:110 libelf/elf_error.c:158
msgid "invalid command"
msgstr "некоректна команда"
@@ -268,7 +268,7 @@ msgstr "не виÑвлено відповідного діапазону адр
msgid "no flag value"
msgstr "немає Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ"
-#: libdw/dwarf_error.c:96 libelf/elf_error.c:236
+#: libdw/dwarf_error.c:96 libelf/elf_error.c:235
msgid "invalid offset"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ"
@@ -304,23 +304,23 @@ msgstr "невідомий код мови"
msgid ".debug_addr section missing"
msgstr "пропущено розділ .debug_addr"
-#: libdwfl/argp-std.c:47 src/stack.c:643 src/unstrip.c:2550
+#: libdwfl/argp-std.c:45 src/stack.c:643 src/unstrip.c:2547
msgid "Input selection options:"
msgstr "Вибір параметрів Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…:"
-#: libdwfl/argp-std.c:48
+#: libdwfl/argp-std.c:46
msgid "Find addresses in FILE"
msgstr "Знайти адреÑи у ФÐЙЛІ"
-#: libdwfl/argp-std.c:50
+#: libdwfl/argp-std.c:48
msgid "Find addresses from signatures found in COREFILE"
msgstr "Знайти адреÑи за Ñигнатурами з файла COREFILE"
-#: libdwfl/argp-std.c:52
+#: libdwfl/argp-std.c:50
msgid "Find addresses in files mapped into process PID"
msgstr "Знайти адреÑи у файлах, відображених на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID"
-#: libdwfl/argp-std.c:54
+#: libdwfl/argp-std.c:52
msgid ""
"Find addresses in files mapped as read from FILE in Linux /proc/PID/maps "
"format"
@@ -328,46 +328,46 @@ msgstr ""
"Знайти адреÑи у файлах, відображених Ñк read за ФÐЙЛОМ у форматі /proc/PID/"
"maps Linux"
-#: libdwfl/argp-std.c:56
+#: libdwfl/argp-std.c:54
msgid "Find addresses in the running kernel"
msgstr "Знайти адреÑи у запущеному Ñдрі"
-#: libdwfl/argp-std.c:58
+#: libdwfl/argp-std.c:56
msgid "Kernel with all modules"
msgstr "Ядро з уÑіма модулÑми"
-#: libdwfl/argp-std.c:60 src/stack.c:650
+#: libdwfl/argp-std.c:58 src/stack.c:650
msgid "Search path for separate debuginfo files"
msgstr "Шукати у вказаному каталозі окремі файли debuginfo"
-#: libdwfl/argp-std.c:161
+#: libdwfl/argp-std.c:159
msgid "only one of -e, -p, -k, -K, or --core allowed"
msgstr ""
"можна викориÑтовувати лише один за параметрів: -e, -p, -k, -K або --core"
-#: libdwfl/argp-std.c:234
+#: libdwfl/argp-std.c:232
msgid "cannot load kernel symbols"
msgstr "не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñимволи Ñдра"
#. Non-fatal to have no modules since we do have the kernel.
-#: libdwfl/argp-std.c:238
+#: libdwfl/argp-std.c:236
msgid "cannot find kernel modules"
msgstr "не вдалоÑÑ Ð²Ð¸Ñвити модулі Ñдра"
-#: libdwfl/argp-std.c:255
+#: libdwfl/argp-std.c:253
msgid "cannot find kernel or modules"
msgstr "не вдалоÑÑ Ð²Ð¸Ñвити Ñдро або модулі"
-#: libdwfl/argp-std.c:294
+#: libdwfl/argp-std.c:292
#, c-format
msgid "cannot read ELF core file: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл core ELF: %s"
-#: libdwfl/argp-std.c:317
+#: libdwfl/argp-std.c:315
msgid "Not enough memory"
msgstr "Бракує пам'ÑÑ‚Ñ–"
-#: libdwfl/argp-std.c:327
+#: libdwfl/argp-std.c:325
msgid "No modules recognized in core file"
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ñвити модулі у файлі core"
@@ -420,7 +420,7 @@ msgstr "Ðепідтримуваний тип переÑуваннÑ"
msgid "r_offset is bogus"
msgstr "r_offset є фіктивним"
-#: libdwfl/libdwflP.h:66 libelf/elf_error.c:115 libelf/elf_error.c:175
+#: libdwfl/libdwflP.h:66 libelf/elf_error.c:114 libelf/elf_error.c:174
msgid "offset out of range"
msgstr "Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ð³Ð¾ зміщеннÑ"
@@ -485,46 +485,52 @@ msgid "Invalid register"
msgstr "Ðекоректний регіÑÑ‚Ñ€"
#: libdwfl/libdwflP.h:84
+#, fuzzy
+#| msgid "no reference value"
+msgid "Unknown register value"
+msgstr "немає Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½ÑннÑ"
+
+#: libdwfl/libdwflP.h:85
msgid "Error reading process memory"
msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ– процеÑу"
-#: libdwfl/libdwflP.h:85
+#: libdwfl/libdwflP.h:86
msgid "Couldn't find architecture of any ELF"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ хоч ÑкуÑÑŒ архітектуру ELF"
-#: libdwfl/libdwflP.h:86
+#: libdwfl/libdwflP.h:87
msgid "Error parsing /proc filesystem"
msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби обробки файлової ÑиÑтеми /proc"
-#: libdwfl/libdwflP.h:87
+#: libdwfl/libdwflP.h:88
msgid "Invalid DWARF"
msgstr "Ðекоректний Ð·Ð°Ð¿Ð¸Ñ DWARF"
-#: libdwfl/libdwflP.h:88
+#: libdwfl/libdwflP.h:89
msgid "Unsupported DWARF"
msgstr "Ðепідтримуваний Ð·Ð°Ð¿Ð¸Ñ DWARF"
-#: libdwfl/libdwflP.h:89
+#: libdwfl/libdwflP.h:90
msgid "Unable to find more threads"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ додаткові потоки"
-#: libdwfl/libdwflP.h:90
+#: libdwfl/libdwflP.h:91
msgid "Dwfl already has attached state"
msgstr "Dwfl уже перебуває у Ñтані Ð´Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ процеÑу"
-#: libdwfl/libdwflP.h:91
+#: libdwfl/libdwflP.h:92
msgid "Dwfl has no attached state"
msgstr "Dwfl не перебуває у Ñтані Ð´Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ процеÑу"
-#: libdwfl/libdwflP.h:92
+#: libdwfl/libdwflP.h:93
msgid "Unwinding not supported for this architecture"
msgstr "Ð”Ð»Ñ Ñ†Ñ–Ñ”Ñ— архітектури Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ передбачено"
-#: libdwfl/libdwflP.h:93
+#: libdwfl/libdwflP.h:94
msgid "Invalid argument"
msgstr "Ðекоректний аргумент"
-#: libdwfl/libdwflP.h:94
+#: libdwfl/libdwflP.h:95
msgid "Not an ET_CORE ELF file"
msgstr "Ðе Ñ” файлом ET_CORE ELF"
@@ -533,7 +539,7 @@ msgid "No backend"
msgstr "Ðемає Ñервера"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
-#: libebl/eblobjnotetypename.c:110 libebl/eblobjnotetypename.c:131
+#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
@@ -584,18 +590,18 @@ msgstr "Ðазва: "
msgid " Args: "
msgstr " Ðрг.: "
-#: libebl/eblobjnote.c:300
+#: libebl/eblobjnote.c:304
#, c-format
msgid " Build ID: "
msgstr " Ід. збираннÑ: "
#. A non-null terminated version string.
-#: libebl/eblobjnote.c:311
+#: libebl/eblobjnote.c:315
#, c-format
msgid " Linker version: %.*s\n"
msgstr " ВерÑÑ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°: %.*s\n"
-#: libebl/eblobjnote.c:638
+#: libebl/eblobjnote.c:642
#, c-format
msgid " OS: %s, ABI: "
msgstr " ОС: %s, ABI: "
@@ -609,225 +615,227 @@ msgstr "Окремий"
msgid "<unknown>: %d"
msgstr "<невідомий>: %d"
-#: libelf/elf_error.c:67
+#: libelf/elf_error.c:66
msgid "unknown version"
msgstr "невідома верÑÑ–Ñ"
-#: libelf/elf_error.c:71
+#: libelf/elf_error.c:70
msgid "unknown type"
msgstr "невизначений тип"
-#: libelf/elf_error.c:75
+#: libelf/elf_error.c:74
msgid "invalid `Elf' handle"
msgstr "некоректний деÑкриптор «Elf»"
-#: libelf/elf_error.c:79
+#: libelf/elf_error.c:78
msgid "invalid size of source operand"
msgstr "некоректна розмірніÑÑ‚ÑŒ вхідного параметра"
-#: libelf/elf_error.c:83
+#: libelf/elf_error.c:82
msgid "invalid size of destination operand"
msgstr "некоректна розмірніÑÑ‚ÑŒ вихідного параметра"
-#: libelf/elf_error.c:87 src/readelf.c:6215
+#: libelf/elf_error.c:86 src/readelf.c:6378
#, c-format
msgid "invalid encoding"
msgstr "некоректне кодуваннÑ"
-#: libelf/elf_error.c:95
+#: libelf/elf_error.c:94
msgid "invalid file descriptor"
msgstr "некоректний деÑкриптор файла"
-#: libelf/elf_error.c:99
+#: libelf/elf_error.c:98
msgid "invalid ELF file data"
msgstr "некоректні дані щодо файла ELF"
-#: libelf/elf_error.c:103
+#: libelf/elf_error.c:102
msgid "invalid operation"
msgstr "недійÑна діÑ"
-#: libelf/elf_error.c:107
+#: libelf/elf_error.c:106
msgid "ELF version not set"
msgstr "верÑÑ–ÑŽ ELF не вказано"
-#: libelf/elf_error.c:119
+#: libelf/elf_error.c:118
msgid "invalid fmag field in archive header"
msgstr "некоректне поле fmag у заголовку архіву"
-#: libelf/elf_error.c:123
+#: libelf/elf_error.c:122
msgid "invalid archive file"
msgstr "некоректний файл архіву"
-#: libelf/elf_error.c:127
+#: libelf/elf_error.c:126
msgid "descriptor is not for an archive"
msgstr "деÑкриптор не належить архіву"
-#: libelf/elf_error.c:131
+#: libelf/elf_error.c:130
msgid "no index available"
msgstr "такого номера немає"
-#: libelf/elf_error.c:135
+#: libelf/elf_error.c:134
msgid "cannot read data from file"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані з файла"
-#: libelf/elf_error.c:139
+#: libelf/elf_error.c:138
msgid "cannot write data to file"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати дані до файла"
-#: libelf/elf_error.c:143
+#: libelf/elf_error.c:142
msgid "invalid binary class"
msgstr "некоректний бінарний клаÑ"
-#: libelf/elf_error.c:147
+#: libelf/elf_error.c:146
msgid "invalid section index"
msgstr "некоректний номер розділу"
-#: libelf/elf_error.c:151
+#: libelf/elf_error.c:150
msgid "invalid operand"
msgstr "некоректний параметр"
-#: libelf/elf_error.c:155
+#: libelf/elf_error.c:154
msgid "invalid section"
msgstr "некоректний розділ"
-#: libelf/elf_error.c:163
+#: libelf/elf_error.c:162
msgid "executable header not created first"
msgstr "заголовок виконуваного файла не було Ñтворено першим"
-#: libelf/elf_error.c:167
+#: libelf/elf_error.c:166
msgid "file descriptor disabled"
msgstr "деÑкриптор файла вимкнено"
-#: libelf/elf_error.c:171
+#: libelf/elf_error.c:170
msgid "archive/member file descriptor mismatch"
msgstr "невідповідніÑÑ‚ÑŒ деÑкрипторів файлів архіву/елемента"
-#: libelf/elf_error.c:179
+#: libelf/elf_error.c:178
msgid "cannot manipulate null section"
msgstr "не можна оперувати нульовим розділом"
-#: libelf/elf_error.c:183
+#: libelf/elf_error.c:182
msgid "data/scn mismatch"
msgstr "невідповідніÑÑ‚ÑŒ полів data/scn"
-#: libelf/elf_error.c:187
+#: libelf/elf_error.c:186
msgid "invalid section header"
msgstr "некоректний заголовок розділу"
-#: libelf/elf_error.c:191 src/readelf.c:10093 src/readelf.c:10693
-#: src/readelf.c:10794 src/readelf.c:10976
+#: libelf/elf_error.c:190 src/readelf.c:10266 src/readelf.c:10866
+#: src/readelf.c:10967 src/readelf.c:11149
#, c-format
msgid "invalid data"
msgstr "некоректні дані"
-#: libelf/elf_error.c:195
+#: libelf/elf_error.c:194
msgid "unknown data encoding"
msgstr "невідоме ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…"
-#: libelf/elf_error.c:199
+#: libelf/elf_error.c:198
msgid "section `sh_size' too small for data"
msgstr "розділ «sh_size» Ñ” замалим Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ…"
-#: libelf/elf_error.c:203
+#: libelf/elf_error.c:202
msgid "invalid section alignment"
msgstr "некоректне Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
-#: libelf/elf_error.c:207
+#: libelf/elf_error.c:206
msgid "invalid section entry size"
msgstr "некоректна розмірніÑÑ‚ÑŒ запиÑу розділу"
-#: libelf/elf_error.c:211
+#: libelf/elf_error.c:210
msgid "update() for write on read-only file"
msgstr "update() Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу придатного лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: libelf/elf_error.c:215
+#: libelf/elf_error.c:214
msgid "no such file"
msgstr "такого файла не виÑвлено"
-#: libelf/elf_error.c:219
+#: libelf/elf_error.c:218
msgid "only relocatable files can contain section groups"
msgstr "міÑтити групи розділів можуть лише придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸"
-#: libelf/elf_error.c:224
+#: libelf/elf_error.c:223
msgid ""
"program header only allowed in executables, shared objects, and core files"
msgstr ""
"заголовок програми можна викориÑтовувати лише у виконуваних файлах, об’єктах "
"Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð° файлах Ñдра"
-#: libelf/elf_error.c:231
+#: libelf/elf_error.c:230
msgid "file has no program header"
msgstr "у файлі немає заголовка програми"
-#: libelf/elf_error.c:241
+#: libelf/elf_error.c:240
msgid "invalid section type"
msgstr "некоректний тип розділу"
-#: libelf/elf_error.c:246
+#: libelf/elf_error.c:245
msgid "invalid section flags"
msgstr "некоректні прапорці розділу"
-#: libelf/elf_error.c:251
+#: libelf/elf_error.c:250
msgid "section does not contain compressed data"
msgstr "розділ не міÑтить ÑтиÑнутих даних"
-#: libelf/elf_error.c:256
+#: libelf/elf_error.c:255
msgid "section contains compressed data"
msgstr "розділ міÑтить ÑтиÑнені дані"
-#: libelf/elf_error.c:261
+#: libelf/elf_error.c:260
msgid "unknown compression type"
msgstr "невідомий тип ÑтиÑненнÑ"
-#: libelf/elf_error.c:266
+#: libelf/elf_error.c:265
msgid "cannot compress data"
msgstr "неможливо ÑтиÑнути дані"
-#: libelf/elf_error.c:271
+#: libelf/elf_error.c:270
msgid "cannot decompress data"
msgstr "неможливо розпакувати дані"
-#: src/addr2line.c:57
+#: src/addr2line.c:58
msgid "Input format options:"
msgstr "Параметри Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… даних:"
-#: src/addr2line.c:59
+#: src/addr2line.c:60
msgid "Treat addresses as offsets relative to NAME section."
msgstr "Вважати адреÑи зміщеннÑми відноÑно розділу ÐÐЗВÐ."
-#: src/addr2line.c:61
+#: src/addr2line.c:62
msgid "Output format options:"
msgstr "Параметри Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð²:"
-#: src/addr2line.c:62
+#: src/addr2line.c:63
msgid "Print address before each entry"
msgstr "Виводити адреÑу перед кожним запиÑом"
-#: src/addr2line.c:63
+#: src/addr2line.c:64
msgid "Show only base names of source files"
msgstr "Показувати лише базові назви файлів коду програми"
-#: src/addr2line.c:65
-msgid "Show absolute file names using compilation directory"
+#: src/addr2line.c:66
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show absolute file names using compilation directory (default)"
msgstr "Показувати абÑолютні назви файлів з викориÑтаннÑм каталогу збираннÑ"
-#: src/addr2line.c:66
+#: src/addr2line.c:67
msgid "Also show function names"
msgstr "Показувати також назви функцій"
-#: src/addr2line.c:67
+#: src/addr2line.c:68
msgid "Also show symbol or section names"
msgstr "Показувати також назви Ñимволів та розділів"
-#: src/addr2line.c:68
+#: src/addr2line.c:69
msgid "Also show symbol and the section names"
msgstr "Показувати також назви Ñимволів та розділів"
-#: src/addr2line.c:69
+#: src/addr2line.c:70
msgid "Also show line table flags"
msgstr "Показувати також прапорці Ñ€Ñдків таблиці"
-#: src/addr2line.c:71
+#: src/addr2line.c:72
msgid ""
"Show all source locations that caused inline expansion of subroutines at the "
"address."
@@ -835,349 +843,352 @@ msgstr ""
"Показати уÑÑ– міÑÑ†Ñ Ñƒ початковому коді, у Ñких було виÑвлено вбудоване "
"Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼ за вказаною адреÑою."
-#: src/addr2line.c:74
+#: src/addr2line.c:75
msgid "Show demangled symbols (ARG is always ignored)"
msgstr "Виводити розшифровані Ñимволи (ÐРГ завжди ігноруєтьÑÑ)"
-#: src/addr2line.c:76
+#: src/addr2line.c:77
msgid "Print all information on one line, and indent inlines"
msgstr "ВивеÑти уÑÑ– дані у один Ñ€Ñдок Ñ– додати відÑтупи до перенеÑених Ñ€Ñдків"
-#: src/addr2line.c:78 src/elfcmp.c:70 src/findtextrel.c:66 src/nm.c:100
-#: src/strings.c:78
+#: src/addr2line.c:79
+#, fuzzy
+#| msgid "Show absolute file names using compilation directory"
+msgid "Show relative file names without compilation directory"
+msgstr "Показувати абÑолютні назви файлів з викориÑтаннÑм каталогу збираннÑ"
+
+#: src/addr2line.c:81 src/elfcmp.c:69 src/findtextrel.c:65 src/nm.c:99
+#: src/strings.c:77
msgid "Miscellaneous:"
msgstr "Інше:"
#. Short description of program.
-#: src/addr2line.c:86
+#: src/addr2line.c:89
msgid ""
"Locate source files and line information for ADDRs (in a.out by default)."
msgstr "Шукати ÐДРЕСИ у файлах кодів та даних про Ñ€Ñдки (типово, у a.out)."
#. Strings for arguments in help texts.
-#: src/addr2line.c:90
+#: src/addr2line.c:93
msgid "[ADDR...]"
msgstr "[ÐДРЕСÐ...]"
-#: src/addr2line.c:519
-#, c-format
+#: src/addr2line.c:526
msgid "Section syntax requires exactly one module"
msgstr "СинтакÑÐ¸Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² вимагає точного одного модулÑ"
-#: src/addr2line.c:542
+#: src/addr2line.c:548
#, c-format
msgid "offset %#<PRIxMAX> lies outside section '%s'"
msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %#<PRIxMAX> розташовано поза межами розділу «%s»"
-#: src/addr2line.c:652
+#: src/addr2line.c:658
#, c-format
msgid "cannot find symbol '%s'"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñимвол «%s»"
-#: src/addr2line.c:657
+#: src/addr2line.c:663
#, c-format
msgid "offset %#<PRIxMAX> lies outside contents of '%s'"
msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %#<PRIxMAX> розташовано поза межами вміÑту «%s»"
-#: src/ar.c:67
+#: src/ar.c:66
msgid "Commands:"
msgstr "Команди:"
-#: src/ar.c:68
+#: src/ar.c:67
msgid "Delete files from archive."
msgstr "Вилучити файли з архіву."
-#: src/ar.c:69
+#: src/ar.c:68
msgid "Move files in archive."
msgstr "ПереÑунути файли до архіву."
-#: src/ar.c:70
+#: src/ar.c:69
msgid "Print files in archive."
msgstr "Ðадрукувати ÑпиÑок файлів у архіві."
-#: src/ar.c:71
+#: src/ar.c:70
msgid "Quick append files to archive."
msgstr "Швидко додати файли до архіву."
-#: src/ar.c:73
+#: src/ar.c:72
msgid "Replace existing or insert new file into archive."
msgstr "Замінити поточний або вÑтавити новий файл до архіву."
-#: src/ar.c:74
+#: src/ar.c:73
msgid "Display content of archive."
msgstr "Показати вміÑÑ‚ архіву."
-#: src/ar.c:75
+#: src/ar.c:74
msgid "Extract files from archive."
msgstr "Видобути файли з архіву."
-#: src/ar.c:77
+#: src/ar.c:76
msgid "Command Modifiers:"
msgstr "Модифікатори команд:"
-#: src/ar.c:78
+#: src/ar.c:77
msgid "Preserve original dates."
msgstr "Зберігати початкові чаÑові мітки."
-#: src/ar.c:79
+#: src/ar.c:78
msgid "Use instance [COUNT] of name."
msgstr "ВикориÑтовувати екземплÑÑ€ [ÐОМЕР] назви."
-#: src/ar.c:81
+#: src/ar.c:80
msgid "Do not replace existing files with extracted files."
msgstr "Ðе замінювати поточні файли видобутими."
-#: src/ar.c:82
+#: src/ar.c:81
msgid "Allow filename to be truncated if necessary."
msgstr "Уможливити, за потреби, Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð² файлів."
-#: src/ar.c:84
+#: src/ar.c:83
msgid "Provide verbose output."
msgstr "Докладний вивід даних."
-#: src/ar.c:85
+#: src/ar.c:84
msgid "Force regeneration of symbol table."
msgstr "ПримуÑове повторне ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів."
-#: src/ar.c:86
+#: src/ar.c:85
msgid "Insert file after [MEMBER]."
msgstr "Ð’Ñтавити файл піÑÐ»Ñ [ЕЛЕМЕÐТ]."
-#: src/ar.c:87
+#: src/ar.c:86
msgid "Insert file before [MEMBER]."
msgstr "Ð’Ñтавити файл перед [ЕЛЕМЕÐТ]."
-#: src/ar.c:88
+#: src/ar.c:87
msgid "Same as -b."
msgstr "Те Ñаме, що Ñ– -b."
-#: src/ar.c:89
+#: src/ar.c:88
msgid "Suppress message when library has to be created."
msgstr "Придушити повідомленнÑ, Ñкщо має бути Ñтворено бібліотеку."
-#: src/ar.c:91
+#: src/ar.c:90
msgid "Use full path for file matching."
msgstr "ВикориÑтовувати Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½ÑÐ½Ð½Ñ Ð¿Ð¾Ð²Ð½Ð¸Ð¹ шлÑÑ… до файла."
-#: src/ar.c:92
+#: src/ar.c:91
msgid "Update only older files in archive."
msgstr "Оновлювати у архіві лише Ñтаріші файли."
#. Short description of program.
-#: src/ar.c:98
+#: src/ar.c:97
msgid "Create, modify, and extract from archives."
msgstr "СтвореннÑ, зміна архівів Ñ– Ð²Ð¸Ð´Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з архівів."
#. Strings for arguments in help texts.
-#: src/ar.c:101
+#: src/ar.c:100
msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]"
msgstr "[ЕЛЕМЕÐТ] [ÐОМЕР] ÐРХІВ [ФÐЙЛ...]"
-#: src/ar.c:180
+#: src/ar.c:179
#, c-format
msgid "'a', 'b', and 'i' are only allowed with the 'm' and 'r' options"
msgstr ""
"модифікатори «a», «b» Ñ– «i» можна викориÑтовувати лише разом з параметрами "
"«m» і «r»"
-#: src/ar.c:185
+#: src/ar.c:184
#, c-format
msgid "MEMBER parameter required for 'a', 'b', and 'i' modifiers"
msgstr ""
"Ð”Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð² «a», «b» та «i» Ñлід викориÑтовувати параметр ЕЛЕМЕÐТ"
-#: src/ar.c:201
+#: src/ar.c:200
#, c-format
msgid "'N' is only meaningful with the 'x' and 'd' options"
msgstr "«N» має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ разом з параметрами «x» Ñ– «d»"
-#: src/ar.c:206
+#: src/ar.c:205
#, c-format
msgid "COUNT parameter required"
msgstr "потрібен параметр ÐОМЕР"
-#: src/ar.c:218
+#: src/ar.c:217
#, c-format
msgid "invalid COUNT parameter %s"
msgstr "некоректний параметр ÐОМЕР %s"
-#: src/ar.c:225
+#: src/ar.c:224
#, c-format
msgid "'%c' is only meaningful with the 'x' option"
msgstr "«%c» має ÑÐµÐ½Ñ Ð»Ð¸ÑˆÐµ у разі викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «x»"
-#: src/ar.c:231
+#: src/ar.c:230
#, c-format
msgid "archive name required"
msgstr "Ñлід вказати назву архіву"
-#: src/ar.c:244
+#: src/ar.c:243
#, c-format
msgid "command option required"
msgstr "має бути вказано параметр команди"
-#: src/ar.c:295
+#: src/ar.c:294
#, c-format
msgid "More than one operation specified"
msgstr "Вказано більше за одну дію"
-#: src/ar.c:389
+#: src/ar.c:388
#, c-format
msgid "cannot open archive '%s'"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ архів «%s»"
-#: src/ar.c:399
+#: src/ar.c:398
#, c-format
msgid "cannot open archive '%s': %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ архів «%s»: %s"
-#: src/ar.c:403
+#: src/ar.c:402
#, c-format
msgid "%s: not an archive file"
msgstr "%s: не є файлом архіву"
-#: src/ar.c:407
+#: src/ar.c:406
#, c-format
msgid "cannot stat archive '%s'"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані архіву «%s» за допомогою stat"
-#: src/ar.c:419
+#: src/ar.c:418
#, c-format
msgid "no entry %s in archive\n"
msgstr "у архіві немає запиÑу %s\n"
-#: src/ar.c:472 src/ar.c:927 src/ar.c:1134
-#, c-format
+#: src/ar.c:471 src/ar.c:925 src/ar.c:1131
msgid "cannot create hash table"
msgstr "не вдалоÑÑ Ñтворити таблицю хешів"
-#: src/ar.c:479 src/ar.c:934 src/ar.c:1143
-#, c-format
+#: src/ar.c:477 src/ar.c:931 src/ar.c:1139
msgid "cannot insert into hash table"
msgstr "не вдалоÑÑ Ð²Ñтавити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ таблиці хешів"
-#: src/ar.c:487 src/ranlib.c:148
+#: src/ar.c:485 src/ranlib.c:147
#, c-format
msgid "cannot stat '%s'"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з «%s» за допомогою stat"
-#: src/ar.c:589
+#: src/ar.c:587
#, c-format
msgid "cannot read content of %s: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вміÑÑ‚ з %s: %s"
-#: src/ar.c:632
+#: src/ar.c:630
#, c-format
msgid "cannot open %.*s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %.*s"
-#: src/ar.c:654
+#: src/ar.c:652
#, c-format
msgid "failed to write %s"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати %s"
-#: src/ar.c:666
+#: src/ar.c:664
#, c-format
msgid "cannot change mode of %s"
msgstr "не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ права доÑтупу до %s"
-#: src/ar.c:682
+#: src/ar.c:680
#, c-format
msgid "cannot change modification time of %s"
msgstr "не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ чаÑову мітку зміни %s"
-#: src/ar.c:728
+#: src/ar.c:726
#, c-format
msgid "cannot rename temporary file to %.*s"
msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ñ‚Ð¸ файл тимчаÑових даних на %.*s"
-#: src/ar.c:764 src/ar.c:1019 src/ar.c:1423 src/ranlib.c:222
+#: src/ar.c:762 src/ar.c:1016 src/ar.c:1419 src/ranlib.c:221
#, c-format
msgid "cannot create new file"
msgstr "не вдалоÑÑ Ñтворити файл"
-#: src/ar.c:1225
+#: src/ar.c:1221
#, c-format
msgid "position member %s not found"
msgstr "не виÑвлено елемента позиції %s"
-#: src/ar.c:1235
+#: src/ar.c:1231
#, c-format
msgid "%s: no entry %s in archive!\n"
msgstr "%s: у архіві немає запиÑу %s!\n"
-#: src/ar.c:1264 src/objdump.c:241
+#: src/ar.c:1260 src/objdump.c:240
#, c-format
msgid "cannot open %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s"
-#: src/ar.c:1269
+#: src/ar.c:1265
#, c-format
msgid "cannot stat %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s за допомогою stat"
-#: src/ar.c:1275
+#: src/ar.c:1271
#, c-format
msgid "%s is no regular file"
msgstr "%s не є звичайним файлом"
-#: src/ar.c:1288
+#: src/ar.c:1284
#, c-format
msgid "cannot get ELF descriptor for %s: %s\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор ELF Ð´Ð»Ñ %s: %s\n"
-#: src/ar.c:1308
+#: src/ar.c:1304
#, c-format
msgid "cannot read %s: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %s: %s"
-#: src/ar.c:1483
+#: src/ar.c:1479
#, c-format
msgid "cannot represent ar_date"
msgstr "неможливо предÑтавити ar_date"
-#: src/ar.c:1489
+#: src/ar.c:1485
#, c-format
msgid "cannot represent ar_uid"
msgstr "неможливо предÑтавити ar_uid"
-#: src/ar.c:1495
+#: src/ar.c:1491
#, c-format
msgid "cannot represent ar_gid"
msgstr "неможливо предÑтавити ar_gid"
-#: src/ar.c:1501
+#: src/ar.c:1497
#, c-format
msgid "cannot represent ar_mode"
msgstr "неможливо предÑтавити ar_mode"
-#: src/ar.c:1507
+#: src/ar.c:1503
#, c-format
msgid "cannot represent ar_size"
msgstr "неможливо предÑтавити ar_size"
-#: src/arlib-argp.c:32
+#: src/arlib-argp.c:31
msgid "Use zero for uid, gid, and date in archive members."
msgstr ""
"ВикориÑтовувати нульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ uid, gid, та дати у елементах архіву."
-#: src/arlib-argp.c:34
+#: src/arlib-argp.c:33
msgid "Use actual uid, gid, and date in archive members."
msgstr ""
"ВикориÑтовувати поточні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ uid, gid, та дати у елементах архіву."
-#: src/arlib-argp.c:63
+#: src/arlib-argp.c:62
#, c-format
msgid "%s (default)"
msgstr "%s (типово)"
#. The archive is too big.
-#: src/arlib.c:213
+#: src/arlib.c:212
#, c-format
msgid "the archive '%s' is too large"
msgstr "розмір архіву «%s» є занадто великим"
-#: src/arlib.c:226
+#: src/arlib.c:225
#, c-format
msgid "cannot read ELF header of %s(%s): %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF з %s(%s): %s"
@@ -1367,8 +1378,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1334 src/elflint.c:77
-#: src/readelf.c:158
+#: src/elfclassify.c:979 src/elfcompress.c:1358 src/elflint.c:76
+#: src/readelf.c:160
msgid "FILE..."
msgstr "ФÐЙЛ..."
@@ -1411,15 +1422,15 @@ msgid ""
"change the exit status."
msgstr ""
-#: src/elfcmp.c:60
+#: src/elfcmp.c:59
msgid "Control options:"
msgstr "Параметри керуваннÑ:"
-#: src/elfcmp.c:62
+#: src/elfcmp.c:61
msgid "Output all differences, not just the first"
msgstr "Показати вÑÑ– відмінноÑÑ‚Ñ–, не лише першу з них"
-#: src/elfcmp.c:63
+#: src/elfcmp.c:62
msgid ""
"Control treatment of gaps in loadable segments [ignore|match] (default: "
"ignore)"
@@ -1427,216 +1438,216 @@ msgstr ""
"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¾ÑŽ проміжків у придатних до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегментах [ignore|"
"match] (типово, ignore)"
-#: src/elfcmp.c:65
+#: src/elfcmp.c:64
msgid "Ignore permutation of buckets in SHT_HASH section"
msgstr "Ігнорувати переÑтавлÑÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð² у розділі SHT_HASH"
-#: src/elfcmp.c:67
+#: src/elfcmp.c:66
msgid "Ignore differences in build ID"
msgstr "Ігнорувати відмінноÑÑ‚Ñ– у ідентифікаторі збираннÑ"
-#: src/elfcmp.c:68
+#: src/elfcmp.c:67
msgid "Output nothing; yield exit status only"
msgstr "Ðічого не виводити; визначити лише Ñтан виходу"
#. Short description of program.
-#: src/elfcmp.c:75
+#: src/elfcmp.c:74
msgid "Compare relevant parts of two ELF files for equality."
msgstr "Порівнює відповідні чаÑтини двох файлів ELF."
#. Strings for arguments in help texts.
-#: src/elfcmp.c:79
+#: src/elfcmp.c:78
msgid "FILE1 FILE2"
msgstr "ФÐЙЛ1 ФÐЙЛ2"
-#: src/elfcmp.c:141
+#: src/elfcmp.c:140
msgid "Invalid number of parameters.\n"
msgstr "Ðекоректна кількіÑÑ‚ÑŒ параметрів.\n"
-#: src/elfcmp.c:172 src/elfcmp.c:177
+#: src/elfcmp.c:171 src/elfcmp.c:176
#, c-format
msgid "cannot get ELF header of '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF «%s»: %s"
-#: src/elfcmp.c:203
+#: src/elfcmp.c:202
#, c-format
msgid "%s %s diff: ELF header"
msgstr "%s %s diff: заголовок ELF"
-#: src/elfcmp.c:210 src/elfcmp.c:213
+#: src/elfcmp.c:209 src/elfcmp.c:212
#, c-format
msgid "cannot get section count of '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ даних щодо кількоÑÑ‚Ñ– розділів «%s»: %s"
-#: src/elfcmp.c:218
+#: src/elfcmp.c:217
#, c-format
msgid "%s %s diff: section count"
msgstr "%s %s diff: кількіÑÑ‚ÑŒ розділів"
-#: src/elfcmp.c:225 src/elfcmp.c:228
+#: src/elfcmp.c:224 src/elfcmp.c:227
#, c-format
msgid "cannot get program header count of '%s': %s"
msgstr ""
"не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ даних щодо кількоÑÑ‚Ñ– заголовків програми у «%s»: %s"
-#: src/elfcmp.c:233
+#: src/elfcmp.c:232
#, c-format
msgid "%s %s diff: program header count"
msgstr "%s %s diff: кількіÑÑ‚ÑŒ заголовків програми"
-#: src/elfcmp.c:241 src/elfcmp.c:244
+#: src/elfcmp.c:240 src/elfcmp.c:243
#, c-format
msgid "cannot get hdrstrndx of '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ hdrstrndx «%s»: %s"
-#: src/elfcmp.c:249
+#: src/elfcmp.c:248
#, c-format
msgid "%s %s diff: shdr string index"
msgstr "Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ Ð¼Ñ–Ð¶ %s Ñ– %s: Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ñдків shdr"
-#: src/elfcmp.c:307
+#: src/elfcmp.c:306
#, c-format
msgid "%s %s differ: section [%zu], [%zu] name"
msgstr "%s %s diff: розділ [%zu], назва [%zu]"
-#: src/elfcmp.c:330
+#: src/elfcmp.c:329
#, c-format
msgid "%s %s differ: section [%zu] '%s' header"
msgstr "%s %s diff: розділ [%zu] заголовок «%s»"
-#: src/elfcmp.c:338 src/elfcmp.c:344
+#: src/elfcmp.c:337 src/elfcmp.c:343
#, c-format
msgid "cannot get content of section %zu in '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу %zu у «%s»: %s"
-#: src/elfcmp.c:353
+#: src/elfcmp.c:352
#, c-format
msgid "symbol table [%zu] in '%s' has zero sh_entsize"
msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%zu] у «%s» міÑтить нульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_entsize"
-#: src/elfcmp.c:365 src/elfcmp.c:371
+#: src/elfcmp.c:364 src/elfcmp.c:370
#, c-format
msgid "cannot get symbol in '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол у «%s»: %s"
-#: src/elfcmp.c:393
+#: src/elfcmp.c:392
#, c-format
msgid "%s %s differ: symbol table [%zu]"
msgstr "%s %s diff: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%zu]"
-#: src/elfcmp.c:396
+#: src/elfcmp.c:395
#, c-format
msgid "%s %s differ: symbol table [%zu,%zu]"
msgstr "%s %s diff: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%zu,%zu]"
-#: src/elfcmp.c:443 src/elfcmp.c:513
+#: src/elfcmp.c:442 src/elfcmp.c:512
#, c-format
msgid "%s %s differ: section [%zu] '%s' number of notes"
msgstr "%s %s diff: розділ [%zu] кількіÑÑ‚ÑŒ нотаток «%s»"
-#: src/elfcmp.c:451
+#: src/elfcmp.c:450
#, c-format
msgid "cannot read note section [%zu] '%s' in '%s': %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ нотаток [%zu] «%s» у «%s»: %s"
-#: src/elfcmp.c:462
+#: src/elfcmp.c:461
#, c-format
msgid "%s %s differ: section [%zu] '%s' note name"
msgstr "%s %s diff: розділ [%zu] назва нотатки «%s»"
-#: src/elfcmp.c:470
+#: src/elfcmp.c:469
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' type"
msgstr "%s %s diff: розділ [%zu] нотатка «%s» тип «%s»"
-#: src/elfcmp.c:485
+#: src/elfcmp.c:484
#, c-format
msgid "%s %s differ: build ID length"
msgstr "%s %s diff: довжина ідентифікатора збираннÑ"
-#: src/elfcmp.c:493
+#: src/elfcmp.c:492
#, c-format
msgid "%s %s differ: build ID content"
msgstr "%s %s diff: вміÑÑ‚ ідентифікатора збираннÑ"
-#: src/elfcmp.c:502
+#: src/elfcmp.c:501
#, c-format
msgid "%s %s differ: section [%zu] '%s' note '%s' content"
msgstr "%s %s diff: розділ [%zu] нотатка «%s» вміÑÑ‚ «%s»"
-#: src/elfcmp.c:543
+#: src/elfcmp.c:542
#, c-format
msgid "%s %s differ: section [%zu] '%s' content"
msgstr "%s %s diff: розділ [%zu] «%s», вміÑÑ‚"
-#: src/elfcmp.c:547
+#: src/elfcmp.c:546
#, c-format
msgid "%s %s differ: section [%zu,%zu] '%s' content"
msgstr "%s %s diff: розділ [%zu,%zu] «%s», вміÑÑ‚"
-#: src/elfcmp.c:562
+#: src/elfcmp.c:561
#, c-format
msgid "%s %s differ: unequal amount of important sections"
msgstr "%s %s diff: невідповідніÑÑ‚ÑŒ об’ємів важливих розділів"
-#: src/elfcmp.c:595 src/elfcmp.c:600
+#: src/elfcmp.c:594 src/elfcmp.c:599
#, c-format
msgid "cannot load data of '%s': %s"
msgstr "не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ дані «%s»: %s"
-#: src/elfcmp.c:619 src/elfcmp.c:625
+#: src/elfcmp.c:618 src/elfcmp.c:624
#, c-format
msgid "cannot get program header entry %d of '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d «%s»: %s"
-#: src/elfcmp.c:631
+#: src/elfcmp.c:630
#, c-format
msgid "%s %s differ: program header %d"
msgstr "%s %s diff: заголовок програми %d"
-#: src/elfcmp.c:655
+#: src/elfcmp.c:654
#, c-format
msgid "%s %s differ: gap"
msgstr "%s %s diff: проміжок"
-#: src/elfcmp.c:706
+#: src/elfcmp.c:705
#, c-format
msgid "Invalid value '%s' for --gaps parameter."
msgstr "Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%s» параметра --gaps."
-#: src/elfcmp.c:734 src/findtextrel.c:195 src/nm.c:364 src/ranlib.c:141
-#: src/size.c:272 src/strings.c:185 src/strip.c:1035 src/strip.c:1072
-#: src/unstrip.c:2197 src/unstrip.c:2226
+#: src/elfcmp.c:733 src/findtextrel.c:194 src/nm.c:363 src/ranlib.c:140
+#: src/size.c:271 src/strings.c:184 src/strip.c:1040 src/strip.c:1077
+#: src/unstrip.c:2194 src/unstrip.c:2223
#, c-format
msgid "cannot open '%s'"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ «%s»"
-#: src/elfcmp.c:738 src/findtextrel.c:214 src/ranlib.c:158
+#: src/elfcmp.c:737 src/findtextrel.c:213 src/ranlib.c:157
#, c-format
msgid "cannot create ELF descriptor for '%s': %s"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор ELF Ð´Ð»Ñ Â«%s»: %s"
-#: src/elfcmp.c:743
+#: src/elfcmp.c:742
#, c-format
msgid "cannot create EBL descriptor for '%s'"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL Ð´Ð»Ñ Â«%s»"
-#: src/elfcmp.c:761 src/findtextrel.c:385
+#: src/elfcmp.c:760 src/findtextrel.c:384
#, c-format
msgid "cannot get section header of section %zu: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу %zu: %s"
-#: src/elfcmp.c:771
+#: src/elfcmp.c:770
#, c-format
msgid "cannot get content of section %zu: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу %zu: %s"
-#: src/elfcmp.c:781 src/elfcmp.c:795
+#: src/elfcmp.c:780 src/elfcmp.c:794
#, c-format
msgid "cannot get relocation: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ переÑуваннÑ: %s"
-#: src/elfcompress.c:117 src/strip.c:308 src/unstrip.c:117
+#: src/elfcompress.c:117 src/strip.c:305 src/unstrip.c:116
#, c-format
msgid "-o option specified twice"
msgstr "параметр -o вказано двічі"
@@ -1652,21 +1663,21 @@ msgid "unknown compression type '%s'"
msgstr "невідомий тип ÑтиÑÐ½ÐµÐ½Ð½Ñ Â«%s»"
#. We need at least one input file.
-#: src/elfcompress.c:145 src/elfcompress.c:1345
+#: src/elfcompress.c:145 src/elfcompress.c:1369
#, c-format
msgid "No input file given"
msgstr "Ðе надано файла вхідних даних"
-#: src/elfcompress.c:151 src/elfcompress.c:1350
+#: src/elfcompress.c:151 src/elfcompress.c:1373
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "З параметром «-o» можна викориÑтовувати лише один файл вхідних даних"
-#: src/elfcompress.c:1307
+#: src/elfcompress.c:1331
msgid "Place (de)compressed output into FILE"
msgstr "ПоміÑтити результати Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð¾ ФÐЙЛа"
-#: src/elfcompress.c:1310
+#: src/elfcompress.c:1334
msgid ""
"What type of compression to apply. TYPE can be 'none' (decompress), "
"'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias) or 'zlib-"
@@ -1677,7 +1688,7 @@ msgstr ""
"назва — «zlib-gabi») або «zlib-gnu» (ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ Ñтилі GNU .zdebug, інша "
"назва — «gnu»)"
-#: src/elfcompress.c:1313
+#: src/elfcompress.c:1337
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
@@ -1685,12 +1696,12 @@ msgstr ""
"назва РОЗДІЛу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÑтиÑканнÑ, РОЗДІЛ Ñ” розширеним взірцем із "
"замінниками (типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ -- «.?(z)debug*»)"
-#: src/elfcompress.c:1316
+#: src/elfcompress.c:1340
msgid "Print a message for each section being (de)compressed"
msgstr ""
"ВивеÑти Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ розділу, Ñкий розпаковуєтьÑÑ Ñ‡Ð¸ ÑтиÑкаєтьÑÑ"
-#: src/elfcompress.c:1319
+#: src/elfcompress.c:1343
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
@@ -1698,32 +1709,32 @@ msgstr ""
"ПримуÑове ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, навіть Ñкщо він Ñтане більшим, або Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð¸ "
"Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°, навіть Ñкщо жодного розділу не буде розпаковано або ÑтиÑнено"
-#: src/elfcompress.c:1322 src/strip.c:93
+#: src/elfcompress.c:1346 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
"Знехтувати декількома правилами Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ трохи пошкоджених файлів ELF"
-#: src/elfcompress.c:1325
+#: src/elfcompress.c:1349
msgid "Be silent when a section cannot be compressed"
msgstr "Ðе Ñповіщати, Ñкщо розділ неможливо ÑтиÑнути"
-#: src/elfcompress.c:1335
+#: src/elfcompress.c:1359
msgid "Compress or decompress sections in an ELF file."
msgstr "СтиÑнути або розпакувати розділи у файлі ELF."
-#: src/elflint.c:63
+#: src/elflint.c:62
msgid "Be extremely strict, flag level 2 features."
msgstr "ВиÑока ÑтрогіÑÑ‚ÑŒ, увімкнути можливоÑÑ‚Ñ– Ñ€Ñ–Ð²Ð½Ñ 2."
-#: src/elflint.c:64
+#: src/elflint.c:63
msgid "Do not print anything if successful"
msgstr "Ðе виводити ніÑких даних у разі уÑпіху"
-#: src/elflint.c:65
+#: src/elflint.c:64
msgid "Binary is a separate debuginfo file"
msgstr "Бінарний файл є окремим файлом debuginfo"
-#: src/elflint.c:67
+#: src/elflint.c:66
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1732,173 +1743,173 @@ msgstr ""
"певної міри неправильним"
#. Short description of program.
-#: src/elflint.c:73
+#: src/elflint.c:72
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
"Педантична перевірка файлів ELF на ÑуміÑніÑÑ‚ÑŒ зі ÑпецифікаціÑми gABI/psABI."
-#: src/elflint.c:154 src/readelf.c:368
+#: src/elflint.c:153 src/readelf.c:391
#, c-format
msgid "cannot open input file '%s'"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ вхідний файл «%s»"
-#: src/elflint.c:161
+#: src/elflint.c:160
#, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf Ð´Ð»Ñ Â«%s»: %s\n"
-#: src/elflint.c:180
+#: src/elflint.c:179
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s\n"
-#: src/elflint.c:184
+#: src/elflint.c:183
msgid "No errors"
msgstr "Без помилок"
-#: src/elflint.c:219 src/readelf.c:577
+#: src/elflint.c:218 src/readelf.c:603
msgid "Missing file name.\n"
msgstr "Ðе вказано назви файла.\n"
-#: src/elflint.c:284
+#: src/elflint.c:283
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr " помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора Ñуб-ELF: %s\n"
#. We cannot do anything.
-#: src/elflint.c:292
+#: src/elflint.c:291
#, c-format
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "Ðе Ñ” файлом ELF. ВиÑвлено помилкові магічні байти на початку файла\n"
-#: src/elflint.c:357
+#: src/elflint.c:356
#, c-format
msgid "e_ident[%d] == %d is no known class\n"
msgstr "e_ident[%d] == %d не Ñ” відомим клаÑом\n"
-#: src/elflint.c:362
+#: src/elflint.c:361
#, c-format
msgid "e_ident[%d] == %d is no known data encoding\n"
msgstr "e_ident[%d] == %d не Ñ” відомим кодуваннÑм даних\n"
-#: src/elflint.c:366
+#: src/elflint.c:365
#, c-format
msgid "unknown ELF header version number e_ident[%d] == %d\n"
msgstr "невідомий номер верÑÑ–Ñ— заголовка ELF e_ident[%d] == %d\n"
-#: src/elflint.c:374
+#: src/elflint.c:373
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
msgstr "непідтримуване ABI ОС e_ident[%d] == «%s»\n"
-#: src/elflint.c:380
+#: src/elflint.c:379
#, c-format
msgid "unsupported ABI version e_ident[%d] == %d\n"
msgstr "непідтримувана верÑÑ–Ñ ABI e_ident[%d] == %d\n"
-#: src/elflint.c:385
+#: src/elflint.c:384
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] не дорівнює нулеві\n"
-#: src/elflint.c:390
+#: src/elflint.c:389
#, c-format
msgid "unknown object file type %d\n"
msgstr "невідомий тип об’єктних файлів %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:396
#, c-format
msgid "unknown machine type %d\n"
msgstr "невідомий тип архітектури %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:400
#, c-format
msgid "unknown object file version\n"
msgstr "невідома верÑÑ–Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлів\n"
-#: src/elflint.c:407
+#: src/elflint.c:406
#, c-format
msgid "invalid program header offset\n"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми\n"
-#: src/elflint.c:409
+#: src/elflint.c:408
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
"виконувані файли Ñ– DSO не можуть міÑтити заголовка програми з нульовим "
"зміщеннÑм\n"
-#: src/elflint.c:413
+#: src/elflint.c:412
#, c-format
msgid "invalid number of program header entries\n"
msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів заголовків програми\n"
-#: src/elflint.c:421
+#: src/elflint.c:420
#, c-format
msgid "invalid section header table offset\n"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– заголовків розділів\n"
-#: src/elflint.c:424
+#: src/elflint.c:423
#, c-format
msgid "section header table must be present\n"
msgstr "має бути вказано таблицю заголовків розділів\n"
-#: src/elflint.c:438
+#: src/elflint.c:437
#, c-format
msgid "invalid number of section header table entries\n"
msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів таблиці заголовків розділів\n"
-#: src/elflint.c:455
+#: src/elflint.c:454
#, c-format
msgid "invalid section header index\n"
msgstr "некоректний Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу\n"
-#: src/elflint.c:473
+#: src/elflint.c:472
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr "Можна перевірити лише %u заголовків, значеннÑм же shnum було %u\n"
-#: src/elflint.c:487
+#: src/elflint.c:486
#, c-format
msgid "invalid number of program header table entries\n"
msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів таблиці заголовків програми\n"
-#: src/elflint.c:504
+#: src/elflint.c:503
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr "Можна перевірити лише %u заголовків, значеннÑм же phnum було %u\n"
-#: src/elflint.c:509
+#: src/elflint.c:508
#, c-format
msgid "invalid machine flags: %s\n"
msgstr "некоректні прапорці архітектури: %s\n"
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:515 src/elflint.c:532
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr "некоректний розмір заголовка ELF: %hd\n"
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:518 src/elflint.c:535
#, c-format
msgid "invalid program header size: %hd\n"
msgstr "некоректний розмір заголовка програми: %hd\n"
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:521 src/elflint.c:538
#, c-format
msgid "invalid program header position or size\n"
msgstr "некоректне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розмір заголовка програми\n"
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:524 src/elflint.c:541
#, c-format
msgid "invalid section header size: %hd\n"
msgstr "некоректний розмір заголовка розділу: %hd\n"
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:527 src/elflint.c:544
#, c-format
msgid "invalid section header position or size\n"
msgstr "некоректне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розмір заголовка розділу\n"
-#: src/elflint.c:590
+#: src/elflint.c:589
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1907,7 +1918,7 @@ msgstr ""
"розділ [%2d] «%s»: розділ з вÑтановленим прапорцем SHF_GROUP не Ñ” чаÑтиною "
"групи розділів\n"
-#: src/elflint.c:594
+#: src/elflint.c:593
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
@@ -1915,14 +1926,14 @@ msgstr ""
"розділ [%2d] «%s»: групу розділів [%2zu] «%s» мало бути визначено до розділу-"
"елемента цієї групи\n"
-#: src/elflint.c:610 src/elflint.c:1498 src/elflint.c:1549 src/elflint.c:1655
-#: src/elflint.c:1991 src/elflint.c:2317 src/elflint.c:2943 src/elflint.c:3106
-#: src/elflint.c:3254 src/elflint.c:3456 src/elflint.c:4458
+#: src/elflint.c:609 src/elflint.c:1497 src/elflint.c:1548 src/elflint.c:1654
+#: src/elflint.c:1990 src/elflint.c:2316 src/elflint.c:2942 src/elflint.c:3105
+#: src/elflint.c:3253 src/elflint.c:3455 src/elflint.c:4464
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу\n"
-#: src/elflint.c:623 src/elflint.c:1662
+#: src/elflint.c:622 src/elflint.c:1661
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1931,7 +1942,7 @@ msgstr ""
"розділ [%2d] «%s»: надано поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю Ñ€Ñдків розділу [%2d] «%s», "
"але типом даних не є SHT_STRTAB\n"
-#: src/elflint.c:646
+#: src/elflint.c:645
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1940,12 +1951,12 @@ msgstr ""
"розділ [%2d] «%s»: у таблиці Ñимволів не може бути більше одного розширеного "
"розділу покажчика\n"
-#: src/elflint.c:658
+#: src/elflint.c:657
#, c-format
msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
msgstr "розділ [%2u] «%s»: розмірніÑÑ‚ÑŒ запиÑу не відповідає ElfXX_Sym\n"
-#: src/elflint.c:662
+#: src/elflint.c:661
#, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
@@ -1954,33 +1965,33 @@ msgstr ""
"розділ [%2u] «%s»: кількіÑÑ‚ÑŒ локальних запиÑів у «st_info» перевищує розмір "
"таблиці\n"
-#: src/elflint.c:671
+#: src/elflint.c:670
#, c-format
msgid "section [%2d] '%s': cannot get symbol %d: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол %d: %s\n"
-#: src/elflint.c:676 src/elflint.c:679 src/elflint.c:682 src/elflint.c:685
-#: src/elflint.c:688 src/elflint.c:691
+#: src/elflint.c:675 src/elflint.c:678 src/elflint.c:681 src/elflint.c:684
+#: src/elflint.c:687 src/elflint.c:690
#, c-format
msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
msgstr "розділ [%2d] «%s»: «%s» у нульовому запиÑÑ– не Ñ” нулем\n"
-#: src/elflint.c:694
+#: src/elflint.c:693
#, c-format
msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
msgstr "розділ [%2d] «%s»: XINDEX Ð´Ð»Ñ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ð³Ð¾ запиÑу не Ñ” нулем\n"
-#: src/elflint.c:704
+#: src/elflint.c:703
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол %zu: %s\n"
-#: src/elflint.c:713
+#: src/elflint.c:712
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸\n"
-#: src/elflint.c:728
+#: src/elflint.c:727
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -1989,7 +2000,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: занадто великий покажчик розділу за умови, що "
"не визначено розділу розширеного покажчика розділів\n"
-#: src/elflint.c:734
+#: src/elflint.c:733
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -1999,29 +2010,29 @@ msgstr ""
"відповідає st_shndx (%<PRIu32>)\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:745
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): invalid section index\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ\n"
-#: src/elflint.c:754
+#: src/elflint.c:753
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown type\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: невідомий тип\n"
-#: src/elflint.c:760
+#: src/elflint.c:759
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown symbol binding\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: невідома прив’Ñзка Ñимволу\n"
-#: src/elflint.c:765
+#: src/elflint.c:764
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n"
msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: унікальний Ñимвол, що не належить до типу "
"об’єктів\n"
-#: src/elflint.c:773
+#: src/elflint.c:772
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2030,7 +2041,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: COMMON можна викориÑтовувати лише у файлах, "
"придатних до переÑуваннÑ\n"
-#: src/elflint.c:777
+#: src/elflint.c:776
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
@@ -2038,7 +2049,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів COMMON "
"позбавлене ÑенÑу\n"
-#: src/elflint.c:781
+#: src/elflint.c:780
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
@@ -2046,13 +2057,13 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— у розділі COMMON "
"позбавлене ÑенÑу\n"
-#: src/elflint.c:832
+#: src/elflint.c:831
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): st_value out of bounds\n"
msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value поза можливим діапазоном\n"
-#: src/elflint.c:838 src/elflint.c:863 src/elflint.c:912
+#: src/elflint.c:837 src/elflint.c:862 src/elflint.c:911
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2061,7 +2072,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu не повніÑÑ‚ÑŽ відповідає розділу, на Ñкий "
"поÑилаєтьÑÑ, [%2d] «%s»\n"
-#: src/elflint.c:847
+#: src/elflint.c:846
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2070,7 +2081,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ поÑÐ¸Ð»Ð°Ð½Ð½Ñ [%2d] «%s» не "
"вÑтановлено прапорець SHF_TLS\n"
-#: src/elflint.c:857 src/elflint.c:905
+#: src/elflint.c:856 src/elflint.c:904
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2079,7 +2090,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value поза межами розділу "
"поÑиланнÑ, [%2d] «%s»\n"
-#: src/elflint.c:884
+#: src/elflint.c:883
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2087,7 +2098,7 @@ msgid ""
msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ñимвол TLS без запиÑу заголовка програми TLS\n"
-#: src/elflint.c:890
+#: src/elflint.c:889
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2096,7 +2107,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: маємо Ñимвол TLS, але не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ "
"Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми TLS\n"
-#: src/elflint.c:898
+#: src/elflint.c:897
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2105,7 +2116,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value перед розділом поÑиланнÑ, "
"[%2d] «%s»\n"
-#: src/elflint.c:925
+#: src/elflint.c:924
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2114,7 +2125,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: у sh_info опиÑано локальний Ñимвол поза "
"діапазоном\n"
-#: src/elflint.c:932
+#: src/elflint.c:931
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2123,12 +2134,12 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: у sh_info опиÑано нелокальний Ñимвол поза "
"діапазоном\n"
-#: src/elflint.c:939
+#: src/elflint.c:938
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): non-local section symbol\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: нелокальний Ñимвол розділу\n"
-#: src/elflint.c:989
+#: src/elflint.c:988
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2137,7 +2148,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол _GLOBAL_OFFSET_TABLE_ поÑилаєтьÑÑ Ð½Ð° помилковий "
"розділ, [%2d]\n"
-#: src/elflint.c:996
+#: src/elflint.c:995
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2149,7 +2160,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:1012
+#: src/elflint.c:1011
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2158,7 +2169,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу _GLOBAL_OFFSET_TABLE_ %#<PRIx64> не "
"відповідає адреÑÑ– розділу %s %#<PRIx64>\n"
-#: src/elflint.c:1019
+#: src/elflint.c:1018
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2167,7 +2178,7 @@ msgstr ""
"розділ [%2d] «%s»: розмір Ñимволу _GLOBAL_OFFSET_TABLE_ %<PRIu64> не "
"відповідає розміру розділу %s %<PRIu64>\n"
-#: src/elflint.c:1027
+#: src/elflint.c:1026
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2176,7 +2187,7 @@ msgstr ""
"розділ [%2d] «%s»: виÑвлено Ñимвол _GLOBAL_OFFSET_TABLE_, але не виÑвлено "
"розділу .got\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1042
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2185,7 +2196,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу _DYNAMIC_ %#<PRIx64> не відповідає "
"адреÑÑ– динамічного Ñегмента %#<PRIx64>\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1049
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2194,7 +2205,7 @@ msgstr ""
"розділ [%2d] «%s»: розмір Ñимволу _DYNAMIC %<PRIu64> не відповідає розміру "
"динамічного Ñегмента %<PRIu64>\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1062
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2203,29 +2214,29 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ñимвол у динамічній таблиці Ñимволів з "
"нетиповою видиміÑÑ‚ÑŽ\n"
-#: src/elflint.c:1067
+#: src/elflint.c:1066
#, fuzzy, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unknown bit set in st_other\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: невідомий набір бітів у st_other\n"
-#: src/elflint.c:1105
+#: src/elflint.c:1104
#, c-format
msgid "section [%2d] '%s': cannot get section data.\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу.\n"
-#: src/elflint.c:1121
+#: src/elflint.c:1120
#, c-format
msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n"
msgstr "розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу RELA викориÑтано DT_RELCOUNT\n"
-#: src/elflint.c:1132 src/elflint.c:1185
+#: src/elflint.c:1131 src/elflint.c:1184
#, 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:1157 src/elflint.c:1210
+#: src/elflint.c:1156 src/elflint.c:1209
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2234,7 +2245,7 @@ msgstr ""
"розділ [%2d] «%s»: відноÑні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ— %d, вказаної за "
"допомогою DT_RELCOUNT\n"
-#: src/elflint.c:1163 src/elflint.c:1216
+#: src/elflint.c:1162 src/elflint.c:1215
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2243,27 +2254,27 @@ msgstr ""
"розділ [%2d] «%s»: безвідноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° позиції %zu; DT_RELCOUNT "
"визначено %d відноÑних переÑуваннÑ\n"
-#: src/elflint.c:1175
+#: src/elflint.c:1174
#, c-format
msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
msgstr "розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу REL викориÑтано DT_RELACOUNT\n"
-#: src/elflint.c:1258
+#: src/elflint.c:1257
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr "розділ [%2d] «%s»: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ призначеннÑ\n"
-#: src/elflint.c:1270
+#: src/elflint.c:1269
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr "розділ [%2d] «%s»: некоректний тип розділу призначеннÑ\n"
-#: src/elflint.c:1278
+#: src/elflint.c:1277
#, c-format
msgid "section [%2d] '%s': sh_info should be zero\n"
msgstr "розділ [%2d] «%s»: sh_info має бути нульовим\n"
-#: src/elflint.c:1286
+#: src/elflint.c:1285
#, c-format
msgid ""
"section [%2d] '%s': no relocations for merge-able string sections possible\n"
@@ -2271,25 +2282,25 @@ msgstr ""
"розділ [%2d] «%s»: неможливі переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ñ€Ñдків, Ñкі непридатні "
"до об'єднаннÑ\n"
-#: src/elflint.c:1294
+#: src/elflint.c:1293
#, c-format
msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
msgstr ""
"розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу розділу не відповідає ElfXX_Rela\n"
-#: src/elflint.c:1354
+#: src/elflint.c:1353
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
"вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту, але Ñегмент придатний лише до "
"читаннÑ\n"
-#: src/elflint.c:1381
+#: src/elflint.c:1380
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний тип\n"
-#: src/elflint.c:1389
+#: src/elflint.c:1388
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2298,12 +2309,12 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ "
"файла\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1396
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу\n"
-#: src/elflint.c:1415
+#: src/elflint.c:1414
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2312,12 +2323,12 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: з %s можна викориÑтовувати лише Ñимвол "
"«_GLOBAL_OFFSET_TABLE_»\n"
-#: src/elflint.c:1432
+#: src/elflint.c:1431
#, c-format
msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð° межі діапазону\n"
-#: src/elflint.c:1447
+#: src/elflint.c:1446
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2326,7 +2337,7 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñимволу типу "
"%s\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1467
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2335,22 +2346,22 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: змінено придатний лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ "
"розділ, але не вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту\n"
-#: src/elflint.c:1483
+#: src/elflint.c:1482
#, c-format
msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n"
msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð¸Ñ… Ñ– незавантажених даних\n"
-#: src/elflint.c:1523 src/elflint.c:1574
+#: src/elflint.c:1522 src/elflint.c:1573
#, c-format
msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: %s\n"
-#: src/elflint.c:1650
+#: src/elflint.c:1649
#, c-format
msgid "more than one dynamic section present\n"
msgstr "вказано більше одного динамічного розділу\n"
-#: src/elflint.c:1668
+#: src/elflint.c:1667
#, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2359,46 +2370,46 @@ msgstr ""
"розділ [%2d]: надано поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю Ñ€Ñдків розділу [%2d] «%s», але "
"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ Ñ” некоректним\n"
-#: src/elflint.c:1676
+#: src/elflint.c:1675
#, c-format
msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"
msgstr ""
"розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу розділу не відповідає ElfXX_Dyn\n"
-#: src/elflint.c:1681 src/elflint.c:1970
+#: src/elflint.c:1680 src/elflint.c:1969
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr "розділ [%2d] «%s»: sh_info не є нульовим\n"
-#: src/elflint.c:1691
+#: src/elflint.c:1690
#, c-format
msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
msgstr ""
"розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ розділу %zu: %s\n"
-#: src/elflint.c:1699
+#: src/elflint.c:1698
#, 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:1706
+#: src/elflint.c:1705
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: невідома мітка\n"
-#: src/elflint.c:1717
+#: src/elflint.c:1716
#, 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:1727
+#: src/elflint.c:1726
#, c-format
msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: викориÑтано мітку Ñ€Ñ–Ð²Ð½Ñ 2 %s\n"
-#: src/elflint.c:1745
+#: src/elflint.c:1744
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -2406,7 +2417,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: значеннÑм DT_PLTREL має бути DT_REL або "
"DT_RELA\n"
-#: src/elflint.c:1758
+#: src/elflint.c:1757
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -2415,7 +2426,7 @@ msgstr ""
"розділ [%2d] «%s»: розділ %zu: вказівник не відповідає адреÑÑ– розділу [%2d] "
"«%s», на Ñку поÑилаєтьÑÑ sh_link\n"
-#: src/elflint.c:1801
+#: src/elflint.c:1800
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
@@ -2423,7 +2434,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s має вказувати на завантажений "
"Ñегмент\n"
-#: src/elflint.c:1816
+#: src/elflint.c:1815
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -2432,48 +2443,48 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: значеннÑм %s має бути коректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ "
"розділі [%2d] «%s»\n"
-#: src/elflint.c:1836 src/elflint.c:1864
+#: src/elflint.c:1835 src/elflint.c:1863
#, c-format
msgid "section [%2d] '%s': contains %s entry but not %s\n"
msgstr "розділ [%2d] «%s»: міÑтить Ð·Ð°Ð¿Ð¸Ñ %s, але не %s\n"
-#: src/elflint.c:1848
+#: src/elflint.c:1847
#, c-format
msgid "section [%2d] '%s': mandatory tag %s not present\n"
msgstr "розділ [%2d] «%s»: немає обов’Ñзкової мітки %s\n"
-#: src/elflint.c:1857
+#: src/elflint.c:1856
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
msgstr "розділ [%2d] «%s»: не виÑвлено розділу хешів\n"
-#: src/elflint.c:1872 src/elflint.c:1879
+#: src/elflint.c:1871 src/elflint.c:1878
#, 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:1889 src/elflint.c:1893
+#: src/elflint.c:1888 src/elflint.c:1892
#, c-format
msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
msgstr ""
"розділ [%2d] «%s»: у DSO, позначеному на кроці попереднього компонуваннÑ, "
"немає мітки %s\n"
-#: src/elflint.c:1899
+#: src/elflint.c:1898
#, c-format
msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n"
msgstr ""
"розділ [%2d] «%s»: під Ñ‡Ð°Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñк залежніÑÑ‚ÑŒ позначено "
"файл, Ñкий не Ñ” файлом DSO\n"
-#: src/elflint.c:1910 src/elflint.c:1914 src/elflint.c:1918 src/elflint.c:1922
+#: src/elflint.c:1909 src/elflint.c:1913 src/elflint.c:1917 src/elflint.c:1921
#, c-format
msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
msgstr ""
"розділ [%2d] «%s»: у попередньо Ñкомпонованому виконуваному файлі не "
"міÑтитьÑÑ Ð¼Ñ–Ñ‚ÐºÐ¸ %s\n"
-#: src/elflint.c:1934
+#: src/elflint.c:1933
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2481,7 +2492,7 @@ msgstr ""
"розділ [%2d] «%s»: розширений розділ покажчика можуть мати лише файли, "
"придатні до переÑуваннÑ\n"
-#: src/elflint.c:1944
+#: src/elflint.c:1943
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
@@ -2489,29 +2500,29 @@ msgstr ""
"розділ [%2d] «%s»: розділ розширеного покажчика розділів не призначено Ð´Ð»Ñ "
"таблиць Ñимволів\n"
-#: src/elflint.c:1948
+#: src/elflint.c:1947
#, 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:1953
+#: src/elflint.c:1952
#, c-format
msgid "cannot get data for symbol section\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñимволів\n"
-#: src/elflint.c:1956
+#: src/elflint.c:1955
#, c-format
msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
msgstr "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу не відповідає Elf32_Word\n"
-#: src/elflint.c:1965
+#: src/elflint.c:1964
#, c-format
msgid "section [%2d] '%s': extended index table too small for symbol table\n"
msgstr ""
"розділ [%2d] «%s»: розширена Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° замала Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів\n"
-#: src/elflint.c:1980
+#: src/elflint.c:1979
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2520,24 +2531,24 @@ msgstr ""
"розділ [%2d] «%s»: розширений покажчик розділів у розділі [%2zu] «%s» "
"поÑилаєтьÑÑ Ð½Ð° ту Ñаму таблицю розділів\n"
-#: src/elflint.c:1998
+#: src/elflint.c:1997
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr "Ñимволу 0 має відповідати нульовий Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ розділу\n"
-#: src/elflint.c:2010
+#: src/elflint.c:2009
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñимволу %zu\n"
-#: src/elflint.c:2015
+#: src/elflint.c:2014
#, c-format
msgid "extended section index is %<PRIu32> but symbol index is not XINDEX\n"
msgstr ""
"Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ розділу дорівнює %<PRIu32>, але Ñ–Ð½Ð´ÐµÐºÑ Ñимволу не Ñ” "
"XINDEX\n"
-#: src/elflint.c:2032 src/elflint.c:2089
+#: src/elflint.c:2031 src/elflint.c:2088
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2545,43 +2556,43 @@ msgstr ""
"розділ [%2d] «%s»: розділ таблиці хешів занадто малий (розмір %ld, мало бути "
"— %ld)\n"
-#: src/elflint.c:2046 src/elflint.c:2103
+#: src/elflint.c:2045 src/elflint.c:2102
#, c-format
msgid "section [%2d] '%s': chain array too large\n"
msgstr "розділ [%2d] «%s»: маÑив ланцюжка занадто великий\n"
-#: src/elflint.c:2060 src/elflint.c:2117
+#: src/elflint.c:2059 src/elflint.c:2116
#, c-format
msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
msgstr ""
"розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° хеш блоку %zu лежить поза межами діапазону\n"
-#: src/elflint.c:2070
+#: src/elflint.c:2069
#, c-format
msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
msgstr ""
"розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÐ° хешів %zu лежить поза межами "
"діапазону\n"
-#: src/elflint.c:2127
+#: src/elflint.c:2126
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
"розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÐ° хешів %<PRIu64> лежить поза межами "
"діапазону\n"
-#: src/elflint.c:2140
+#: src/elflint.c:2139
#, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr "розділ [%2d] «%s»: недоÑтатньо даних\n"
-#: src/elflint.c:2152
+#: src/elflint.c:2151
#, 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:2168
+#: src/elflint.c:2167
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2590,12 +2601,12 @@ msgstr ""
"розділ [%2d] «%s»: розділ таблиці хешів є надто малим (маємо %ld, мало бути "
"принаймні %ld)\n"
-#: src/elflint.c:2177
+#: src/elflint.c:2176
#, c-format
msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
msgstr "розділ [%2d] «%s»: зÑув 2-ої функції Ñ…ÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ великий: %u\n"
-#: src/elflint.c:2211
+#: src/elflint.c:2210
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2603,7 +2614,7 @@ msgstr ""
"розділ [%2d] '%s': ланцюжок хешів Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu розташовано нижче за позицію "
"Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу Ñимволу\n"
-#: src/elflint.c:2232
+#: src/elflint.c:2231
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2612,7 +2623,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %u, на Ñкий поÑилаєтьÑÑ Ð»Ð°Ð½Ñ†ÑŽÐ¶Ð¾Ðº у блоці %zu не "
"визначено\n"
-#: src/elflint.c:2245
+#: src/elflint.c:2244
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2620,7 +2631,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ…ÐµÑˆÑƒ Ð´Ð»Ñ Ñимволу %u у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu Ñ” "
"помилковим\n"
-#: src/elflint.c:2254
+#: src/elflint.c:2253
#, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2628,14 +2639,14 @@ msgstr ""
"розділ [%2d] «%s»: Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð°Ñки Ð´Ð»Ñ Ñимволу %u у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu Ñ” "
"помилковим\n"
-#: src/elflint.c:2284
+#: src/elflint.c:2283
#, c-format
msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
msgstr ""
"розділ [%2d] «%s»: ланцюжок хешів Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu лежить поза межами "
"діапазону\n"
-#: src/elflint.c:2289
+#: src/elflint.c:2288
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2643,43 +2654,43 @@ msgstr ""
"розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu лежить поза "
"межами діапазону\n"
-#: src/elflint.c:2295
+#: src/elflint.c:2294
#, c-format
msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
msgstr "розділ [%2d] «%s»: бітова маÑка не відповідає назвам у таблиці хешів\n"
-#: src/elflint.c:2308
+#: src/elflint.c:2307
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
"розділ [%2d] «%s»: придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸ не можуть міÑтити таблиць "
"хешів\n"
-#: src/elflint.c:2326
+#: src/elflint.c:2325
#, c-format
msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
msgstr ""
"розділ [%2d] «%s»: таблицю хешів не призначено Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– "
"динамічних Ñимволів\n"
-#: src/elflint.c:2330
+#: src/elflint.c:2329
#, 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:2340
+#: src/elflint.c:2339
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
msgstr "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу таблиці хешів Ñ” некоректною\n"
-#: src/elflint.c:2345
+#: src/elflint.c:2344
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr "розділ [%2d] «%s»: не позначено Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑуваннÑ\n"
-#: src/elflint.c:2350
+#: src/elflint.c:2349
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2688,27 +2699,27 @@ msgstr ""
"розділ [%2d] «%s»: у таблиці хешів виÑвлено незвичайне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ "
"початкових адмініÑтративних запиÑів\n"
-#: src/elflint.c:2399
+#: src/elflint.c:2398
#, 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:2423 src/elflint.c:2488 src/elflint.c:2523
+#: src/elflint.c:2422 src/elflint.c:2487 src/elflint.c:2522
#, c-format
msgid "hash section [%2zu] '%s' does not contain enough data\n"
msgstr "розділ хешу [%2zu] «%s» міÑтить недоÑтатньо даних\n"
-#: src/elflint.c:2444
+#: src/elflint.c:2443
#, c-format
msgid "hash section [%2zu] '%s' has zero bit mask words\n"
msgstr "розділ хешу [%2zu] «%s» міÑтить нульові Ñлова бітової маÑки\n"
-#: src/elflint.c:2455 src/elflint.c:2499 src/elflint.c:2536
+#: src/elflint.c:2454 src/elflint.c:2498 src/elflint.c:2535
#, c-format
msgid "hash section [%2zu] '%s' uses too much data\n"
msgstr "розділ хешу [%2zu] «%s» викориÑтовує надто багато даних\n"
-#: src/elflint.c:2470
+#: src/elflint.c:2469
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
@@ -2717,17 +2728,17 @@ msgstr ""
"розділ хешу [%2zu] «%s» некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %<PRIu32> (макÑ. к-Ñ‚ÑŒ "
"Ñимволів: %<PRIu32>, кількіÑÑ‚ÑŒ запиÑів: %<PRIu32>\n"
-#: src/elflint.c:2557
+#: src/elflint.c:2556
#, c-format
msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
msgstr "розділ хешу [%2zu] «%s» некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_entsize\n"
-#: src/elflint.c:2567 src/elflint.c:2571
+#: src/elflint.c:2566 src/elflint.c:2570
#, c-format
msgid "section [%2zu] '%s': reference to symbol index 0\n"
msgstr "розділ [%2zu] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñ–Ð½Ð´ÐµÐºÑ Ñимволів 0\n"
-#: src/elflint.c:2578
+#: src/elflint.c:2577
#, c-format
msgid ""
"symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2736,7 +2747,7 @@ msgstr ""
"виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол %d у новій таблиці хешів у [%2zu] «%s», але "
"його немає у Ñтарій таблиці хешів у [%2zu] «%s»\n"
-#: src/elflint.c:2590
+#: src/elflint.c:2589
#, c-format
msgid ""
"symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2745,12 +2756,12 @@ msgstr ""
"виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол %d у Ñтарій таблиці хешів у [%2zu] «%s», але "
"його немає у новій таблиці хешів у [%2zu] «%s»\n"
-#: src/elflint.c:2606
+#: src/elflint.c:2605
#, c-format
msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
msgstr "розділ [%2d] «%s»: ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_%s Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ NULL\n"
-#: src/elflint.c:2626
+#: src/elflint.c:2625
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2758,95 +2769,95 @@ msgstr ""
"розділ [%2d] «%s»: групи розділів передбачено лише Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… до "
"переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлах\n"
-#: src/elflint.c:2637
+#: src/elflint.c:2636
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ таблицю Ñимволів: %s\n"
-#: src/elflint.c:2642
+#: src/elflint.c:2641
#, 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:2648
+#: src/elflint.c:2647
#, c-format
msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
msgstr "розділ [%2d] «%s»: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу у sh_info\n"
-#: src/elflint.c:2653
+#: src/elflint.c:2652
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr "розділ [%2d] «%s»: sh_flags не є нульовим\n"
-#: src/elflint.c:2660
+#: src/elflint.c:2659
#, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу\n"
-#: src/elflint.c:2664
+#: src/elflint.c:2663
#, c-format
msgid "section [%2d] '%s': cannot get symbol name for signature\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву Ñимволу Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу\n"
-#: src/elflint.c:2669
+#: src/elflint.c:2668
#, c-format
msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
msgstr "розділ [%2d] «%s»: Ñимвол підпиÑу не може бути порожнім Ñ€Ñдком\n"
-#: src/elflint.c:2675
+#: src/elflint.c:2674
#, c-format
msgid "section [%2d] '%s': sh_flags not set correctly\n"
msgstr "розділ [%2d] «%s»: Ð´Ð»Ñ sh_flags вÑтановлено помилкове значеннÑ\n"
-#: src/elflint.c:2681
+#: src/elflint.c:2680
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані: %s\n"
-#: src/elflint.c:2690
+#: src/elflint.c:2689
#, 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:2696
+#: src/elflint.c:2695
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
msgstr "розділ [%2d] «%s»: група розділів без Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ word прапорців\n"
-#: src/elflint.c:2704
+#: src/elflint.c:2703
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr "розділ [%2d] «%s»: група розділів без елементів\n"
-#: src/elflint.c:2708
+#: src/elflint.c:2707
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
msgstr "розділ [%2d] «%s»: група розділів, що міÑтить лише один елемент\n"
-#: src/elflint.c:2719
+#: src/elflint.c:2718
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr "розділ [%2d] «%s»: невідомі прапорці групи розділів\n"
-#: src/elflint.c:2731
+#: src/elflint.c:2730
#, c-format
msgid "section [%2d] '%s': section index %zu out of range\n"
msgstr "розділ [%2d] «%s»: Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zu поза межами діапазону\n"
-#: src/elflint.c:2740
+#: src/elflint.c:2739
#, c-format
msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
msgstr ""
"розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу Ð´Ð»Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° %zu: "
"%s\n"
-#: src/elflint.c:2747
+#: src/elflint.c:2746
#, c-format
msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
msgstr "розділ [%2d] «%s»: група розділів міÑтить іншу групу [%2d] «%s»\n"
-#: src/elflint.c:2753
+#: src/elflint.c:2752
#, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2855,12 +2866,12 @@ msgstr ""
"розділ [%2d] «%s»: елемент %zu поÑилаєтьÑÑ Ð½Ð° розділ [%2d] «%s» без "
"вÑтановленого Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ SHF_GROUP\n"
-#: src/elflint.c:2760
+#: src/elflint.c:2759
#, c-format
msgid "section [%2d] '%s' is contained in more than one section group\n"
msgstr "розділ [%2d] «%s» міÑтитьÑÑ Ñƒ більше ніж одній групі розділів\n"
-#: src/elflint.c:2957
+#: src/elflint.c:2956
#, c-format
msgid ""
"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2869,7 +2880,7 @@ msgstr ""
"розділ [%2d] «%s» поÑилаєтьÑÑ Ñƒ sh_link на розділ [%2d] «%s», Ñкий не має "
"динамічної таблиці Ñимволів\n"
-#: src/elflint.c:2969
+#: src/elflint.c:2968
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2878,28 +2889,28 @@ msgstr ""
"кількіÑÑ‚ÑŒ запиÑів у розділі [%2d] «%s» відрізнÑєтьÑÑ Ð²Ñ–Ð´ кількоÑÑ‚Ñ– у таблиці "
"Ñимволів [%2d] «%s»\n"
-#: src/elflint.c:2985
+#: src/elflint.c:2984
#, c-format
msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
msgstr "розділ [%2d] «%s»: Ñимвол %d: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані щодо верÑÑ–Ñ—\n"
-#: src/elflint.c:3001
+#: src/elflint.c:3000
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
msgstr ""
"розділ [%2d] «%s»: Ñимвол %d: локальний Ñимвол у загальному контекÑÑ‚Ñ–\n"
-#: src/elflint.c:3009
+#: src/elflint.c:3008
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
msgstr "розділ [%2d] «%s»: Ñимвол %d: локальний Ñимвол з верÑією\n"
-#: src/elflint.c:3023
+#: src/elflint.c:3022
#, c-format
msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
msgstr "розділ [%2d] «%s»: Ñимвол %d: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ð²ÐµÑ€ÑÑ–Ñ— %d\n"
-#: src/elflint.c:3028
+#: src/elflint.c:3027
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
@@ -2907,7 +2918,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %d: індекÑи верÑÑ–Ñ— %d призначено до визначеної "
"верÑÑ–Ñ—\n"
-#: src/elflint.c:3038
+#: src/elflint.c:3037
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
@@ -2915,45 +2926,45 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %d: Ñ–Ð½Ð´ÐµÐºÑ Ð²ÐµÑ€ÑÑ–Ñ— %d призначено Ð´Ð»Ñ Ð²ÐµÑ€ÑÑ–Ñ—, на Ñку "
"надійшов запит\n"
-#: src/elflint.c:3091
+#: src/elflint.c:3090
#, c-format
msgid "more than one version reference section present\n"
msgstr "виÑвлено більше за один розділ поÑилань на верÑÑ–Ñ—\n"
-#: src/elflint.c:3099 src/elflint.c:3246
+#: src/elflint.c:3098 src/elflint.c:3245
#, c-format
msgid "section [%2d] '%s': sh_link does not link to string table\n"
msgstr "розділ [%2d] «%s»: sh_link не поÑилаєтьÑÑ Ð½Ð° таблицю Ñ€Ñдків\n"
-#: src/elflint.c:3124 src/elflint.c:3300
+#: src/elflint.c:3123 src/elflint.c:3299
#, c-format
msgid "section [%2d] '%s': entry %d has wrong version %d\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має помилкову верÑÑ–ÑŽ %d\n"
-#: src/elflint.c:3131 src/elflint.c:3307
+#: src/elflint.c:3130 src/elflint.c:3306
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить помилкове Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ допоміжних даних\n"
-#: src/elflint.c:3141
+#: src/elflint.c:3140
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° файл\n"
-#: src/elflint.c:3149
+#: src/elflint.c:3148
#, c-format
msgid "section [%2d] '%s': entry %d references unknown dependency\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d поÑилаєтьÑÑ Ð½Ð° невідому залежніÑÑ‚ÑŒ\n"
-#: src/elflint.c:3161
+#: src/elflint.c:3160
#, 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:3169
+#: src/elflint.c:3168
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2962,7 +2973,7 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d міÑтить некоректне "
"поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву\n"
-#: src/elflint.c:3178
+#: src/elflint.c:3177
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -2971,7 +2982,7 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d має помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
"хешу: %#x, мало бути %#x\n"
-#: src/elflint.c:3187
+#: src/elflint.c:3186
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -2980,7 +2991,7 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d міÑтить дублікати назви "
"верÑÑ–Ñ— «%s»\n"
-#: src/elflint.c:3198
+#: src/elflint.c:3197
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
@@ -2988,13 +2999,13 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d має помилкове наÑтупне "
"поле\n"
-#: src/elflint.c:3215 src/elflint.c:3391
+#: src/elflint.c:3214 src/elflint.c:3390
#, c-format
msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ наÑтупного запиÑу\n"
-#: src/elflint.c:3223 src/elflint.c:3399
+#: src/elflint.c:3222 src/elflint.c:3398
#, c-format
msgid ""
"section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -3003,44 +3014,44 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має нульове Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ наÑтупного запиÑу, але "
"за sh_info можна зрозуміти, що запиÑів більше\n"
-#: src/elflint.c:3238
+#: src/elflint.c:3237
#, c-format
msgid "more than one version definition section present\n"
msgstr "виÑвлено більше за один розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€Ñій\n"
-#: src/elflint.c:3285
+#: src/elflint.c:3284
#, c-format
msgid "section [%2d] '%s': more than one BASE definition\n"
msgstr "розділ [%2d] «%s»: повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE\n"
-#: src/elflint.c:3289
+#: src/elflint.c:3288
#, 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:3295
+#: src/elflint.c:3294
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr "розділ [%2d] «%s»: невідомий прапорець запиÑу %d\n"
-#: src/elflint.c:3322
+#: src/elflint.c:3321
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву\n"
-#: src/elflint.c:3329
+#: src/elflint.c:3328
#, 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:3337
+#: src/elflint.c:3336
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить дублікати назви верÑÑ–Ñ— «%s»\n"
-#: src/elflint.c:3357
+#: src/elflint.c:3356
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -3048,53 +3059,53 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву у "
"допоміжних даних\n"
-#: src/elflint.c:3374
+#: src/elflint.c:3373
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
msgstr ""
"розділ [%2d] «%s»: у допоміжних даних запиÑу %d міÑтитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ поле "
"наÑтупного запиÑу\n"
-#: src/elflint.c:3407
+#: src/elflint.c:3406
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr "розділ [%2d] «%s»: немає Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE\n"
-#: src/elflint.c:3423
+#: src/elflint.c:3422
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr "розділ [%2d] «%s»: невідома оÑновна верÑÑ–Ñ Â«%s»\n"
-#: src/elflint.c:3448
+#: src/elflint.c:3447
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr "розділ [%2d] «%s»: порожній розділ атрибутів об’єкта\n"
-#: src/elflint.c:3464
+#: src/elflint.c:3463
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ формат атрибутів\n"
-#: src/elflint.c:3475
+#: src/elflint.c:3474
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: поле нульового розміру у розділі атрибутів\n"
-#: src/elflint.c:3484
+#: src/elflint.c:3483
#, c-format
msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: некоректна довжина у розділі атрибутів\n"
-#: src/elflint.c:3496
+#: src/elflint.c:3495
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений Ñ€Ñдок назви поÑтачальника\n"
-#: src/elflint.c:3513
+#: src/elflint.c:3512
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -3102,12 +3113,12 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершене поле ULEB128 у тезі підрозділу "
"атрибутів\n"
-#: src/elflint.c:3522
+#: src/elflint.c:3521
#, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: обрізаний розділ атрибутів\n"
-#: src/elflint.c:3531
+#: src/elflint.c:3530
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
@@ -3115,7 +3126,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: поле нульового розміру у підрозділі "
"атрибутів\n"
-#: src/elflint.c:3546
+#: src/elflint.c:3545
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -3123,7 +3134,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: некоректна довжина у підрозділі атрибутів\n"
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3556
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -3131,35 +3142,35 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: підрозділ атрибутів міÑтить неочікуваний "
"теґ %u\n"
-#: src/elflint.c:3575
+#: src/elflint.c:3574
#, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершене поле ULEB128 у тезі атрибуту\n"
-#: src/elflint.c:3586
+#: src/elflint.c:3585
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений Ñ€Ñдок у атрибуті\n"
-#: src/elflint.c:3599
+#: src/elflint.c:3598
#, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений теґ атрибуту %u\n"
-#: src/elflint.c:3603
+#: src/elflint.c:3602
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s атрибуту %<PRIu64>\n"
-#: src/elflint.c:3613
+#: src/elflint.c:3612
#, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: невідомий поÑтачальник «%s»\n"
-#: src/elflint.c:3619
+#: src/elflint.c:3618
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -3167,47 +3178,47 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: зайві байти піÑÐ»Ñ Ð¾Ñтаннього розділу "
"атрибутів\n"
-#: src/elflint.c:3716
+#: src/elflint.c:3715
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок нульового розділу\n"
-#: src/elflint.c:3720
+#: src/elflint.c:3719
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr "нульовий розділ має ненульову назву\n"
-#: src/elflint.c:3722
+#: src/elflint.c:3721
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr "нульовий розділ має ненульовий тип\n"
-#: src/elflint.c:3724
+#: src/elflint.c:3723
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr "нульовий розділ має ненульові прапорці\n"
-#: src/elflint.c:3726
+#: src/elflint.c:3725
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr "нульовий розділ має ненульову адреÑу\n"
-#: src/elflint.c:3728
+#: src/elflint.c:3727
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr "нульовий розділ має ненульове зміщеннÑ\n"
-#: src/elflint.c:3730
+#: src/elflint.c:3729
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ\n"
-#: src/elflint.c:3732
+#: src/elflint.c:3731
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ запиÑу\n"
-#: src/elflint.c:3735
+#: src/elflint.c:3734
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -3216,7 +3227,7 @@ msgstr ""
"нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ, хоча заголовок ELF ман "
"ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ shnum\n"
-#: src/elflint.c:3739
+#: src/elflint.c:3738
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3225,7 +3236,7 @@ msgstr ""
"нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ, хоча у заголовку ELF "
"немає Ñигналу Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ shstrndx\n"
-#: src/elflint.c:3743
+#: src/elflint.c:3742
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3234,28 +3245,28 @@ msgstr ""
"нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ, хоча у заголовку ELF "
"немає Ñигналу Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ phnum\n"
-#: src/elflint.c:3761
+#: src/elflint.c:3760
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу [%2zu] «%s»: %s\n"
-#: src/elflint.c:3770
+#: src/elflint.c:3769
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr "розділ [%2zu]: некоректна назва\n"
-#: src/elflint.c:3797
+#: src/elflint.c:3796
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr ""
"розділ [%2d] «%s» належить до помилкового типу: мав бути %s, маємо %s\n"
-#: src/elflint.c:3814
+#: src/elflint.c:3813
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, маємо %s\n"
-#: src/elflint.c:3832
+#: src/elflint.c:3831
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
@@ -3263,12 +3274,12 @@ msgstr ""
"розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, можливо, %s, але "
"маємо %s\n"
-#: src/elflint.c:3849
+#: src/elflint.c:3848
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr "у об’єктному файлі виÑвлено розділ [%2zu] «%s»\n"
-#: src/elflint.c:3855 src/elflint.c:3887
+#: src/elflint.c:3854 src/elflint.c:3886
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
@@ -3276,7 +3287,7 @@ msgstr ""
"у розділ [%2zu] «%s» вÑтановлено прапорець SHF_ALLOC, але немає придатного "
"до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента\n"
-#: src/elflint.c:3860 src/elflint.c:3892
+#: src/elflint.c:3859 src/elflint.c:3891
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -3285,7 +3296,7 @@ msgstr ""
"у розділі [%2zu] «%s» не вÑтановлено прапорець SHF_ALLOC, але Ñ” придатні до "
"Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегменти\n"
-#: src/elflint.c:3868
+#: src/elflint.c:3867
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -3293,22 +3304,22 @@ msgstr ""
"розділ [%2zu] «%s» Ñ” таблицею-покажчиком розділу розширень у файлі, Ñкий не "
"є об’єктним\n"
-#: src/elflint.c:3911
+#: src/elflint.c:3910
#, c-format
msgid "section [%2zu] '%s': size not multiple of entry size\n"
msgstr "розділ [%2zu] «%s»: розмір не Ñ” кратним до розміру запиÑу\n"
-#: src/elflint.c:3916
+#: src/elflint.c:3915
#, c-format
msgid "cannot get section header\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу\n"
-#: src/elflint.c:3926
+#: src/elflint.c:3925
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n"
-#: src/elflint.c:3946
+#: src/elflint.c:3945
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3316,74 +3327,74 @@ msgstr ""
"розділ [%2zu] «%s» міÑтить некоректні Ñпецифічні Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора прапорці "
"%#<PRIx64>\n"
-#: src/elflint.c:3956
+#: src/elflint.c:3955
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "розділ [%2zu] «%s» міÑтить невідомі прапорці %#<PRIx64>\n"
-#: src/elflint.c:3964
+#: src/elflint.c:3963
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
"розділ [%2zu] «%s»: адреÑа розділів локальних даних потоків не Ñ” нульовою\n"
-#: src/elflint.c:3974
+#: src/elflint.c:3973
#, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr ""
"розділ [%2zu] «%s»: розміщений у пам'ÑÑ‚Ñ– розділ не може бути ÑтиÑнений\n"
-#: src/elflint.c:3979
+#: src/elflint.c:3978
#, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "розділ [%2zu] «%s»: розділ nobits не може бути ÑтиÑнений\n"
-#: src/elflint.c:3985
+#: src/elflint.c:3984
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr "розділ [%2zu] «%s»: ÑтиÑнений розділ без заголовка ÑтиÑненнÑ: %s\n"
-#: src/elflint.c:3991
+#: src/elflint.c:3990
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
"розділ [%2zu] «%s»: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у значенні компонуваннÑ\n"
-#: src/elflint.c:3996
+#: src/elflint.c:3995
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
"розділ [%2zu] «%s»: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у значенні відомоÑтей\n"
-#: src/elflint.c:4003
+#: src/elflint.c:4002
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr "розділ [%2zu] «%s»: вÑтановлено прапорець strings без Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ merge\n"
-#: src/elflint.c:4008
+#: src/elflint.c:4007
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
"розділ [%2zu] «%s»: вÑтановлено прапорець merge, але розмір запиÑу Ñ” "
"нульовим\n"
-#: src/elflint.c:4027
+#: src/elflint.c:4026
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr "розділ [%2zu] «%s» має неочікуваний тип %d Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ розділу\n"
-#: src/elflint.c:4036
+#: src/elflint.c:4035
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr "розділ [%2zu] «%s» у файлах debuginfo має належати до типу NOBITS\n"
-#: src/elflint.c:4043
+#: src/elflint.c:4042
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "розділ [%2zu] «%s» Ñ” одночаÑно виконуваним Ñ– придатним до запиÑу\n"
-#: src/elflint.c:4074
+#: src/elflint.c:4073
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3392,7 +3403,7 @@ msgstr ""
"розділ [%2zu] «%s» не повніÑÑ‚ÑŽ міÑтитьÑÑ Ñƒ Ñегменті запиÑу заголовка "
"програми %d\n"
-#: src/elflint.c:4084
+#: src/elflint.c:4083
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3401,7 +3412,7 @@ msgstr ""
"розділ [%2zu] «%s» належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð· "
"файла у Ñегментів запиÑу заголовка програми %d\n"
-#: src/elflint.c:4110
+#: src/elflint.c:4109
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3410,7 +3421,7 @@ msgstr ""
"розділ [%2zu] «%s» належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð· "
"файла у Ñегментів запиÑу заголовка програми %d, а вміÑÑ‚ файла Ñ” ненульовим\n"
-#: src/elflint.c:4121
+#: src/elflint.c:4120
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3419,19 +3430,19 @@ msgstr ""
"розділ [%2zu] «%s» не належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ "
"виконуєтьÑÑ Ð· файла у Ñегментів запиÑу заголовка програми %d\n"
-#: src/elflint.c:4132
+#: src/elflint.c:4131
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr "розділ [%2zu] «%s» Ñ” виконуваним у невиконуваному Ñегменті %d\n"
-#: src/elflint.c:4142
+#: src/elflint.c:4141
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
"розділ [%2zu] «%s» Ñ” придатним до запиÑу у непридатному до запиÑу Ñегменті "
"%d\n"
-#: src/elflint.c:4152
+#: src/elflint.c:4151
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3439,7 +3450,7 @@ msgstr ""
"розділ [%2zu] «%s»: вÑтановлено прапорець alloc, але розділ не перебуває у "
"жодному завантаженому Ñегменті\n"
-#: src/elflint.c:4158
+#: src/elflint.c:4157
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3448,7 +3459,7 @@ msgstr ""
"розділ [%2zu] «%s»: заголовок ELF повідомлÑÑ” про те, що це Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ€Ñдків "
"заголовка розділу, але Ñ†Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ðµ належить до типу SHT_TYPE\n"
-#: src/elflint.c:4166
+#: src/elflint.c:4165
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3456,17 +3467,17 @@ msgstr ""
"розділ [%2zu] «%s»: придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸ не можуть міÑтити "
"динамічних таблиць Ñимволів\n"
-#: src/elflint.c:4217
+#: src/elflint.c:4216
#, c-format
msgid "more than one version symbol table present\n"
msgstr "виÑвлено більше за одну таблицю Ñимволів верÑій\n"
-#: src/elflint.c:4240
+#: src/elflint.c:4239
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr "Ñ–Ñнує Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми INTERP, але не розділ .interp\n"
-#: src/elflint.c:4251
+#: src/elflint.c:4250
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
@@ -3474,14 +3485,14 @@ msgstr ""
"придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент [%u] Ñ” виконуваним, але не міÑтить "
"виконуваних розділів\n"
-#: src/elflint.c:4257
+#: src/elflint.c:4256
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
"придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð» [%u] Ñ” придатним до запиÑу, але не міÑтить "
"придатних до запиÑу розділів\n"
-#: src/elflint.c:4268
+#: src/elflint.c:4267
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3490,24 +3501,24 @@ msgstr ""
"немає розділу .gnu.versym, хоча Ñ–Ñнує розділ .gnu.versym_d або .gnu."
"versym_r\n"
-#: src/elflint.c:4281
+#: src/elflint.c:4280
#, c-format
msgid "duplicate version index %d\n"
msgstr "дублікат індекÑу верÑÑ–Ñ— %d\n"
-#: src/elflint.c:4295
+#: src/elflint.c:4294
#, 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:4344
+#: src/elflint.c:4343
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
"phdr[%d]: невідомий тип нотатки файла core %<PRIu32> за зміщеннÑм %<PRIu64>\n"
-#: src/elflint.c:4348
+#: src/elflint.c:4347
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3515,7 +3526,7 @@ msgstr ""
"розділ [%2d] «%s»: невідомий тип нотатки файла core %<PRIu32> за зміщеннÑм "
"%zu\n"
-#: src/elflint.c:4397
+#: src/elflint.c:4403
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3524,7 +3535,7 @@ msgstr ""
"phdr[%d]: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із іменем "
"влаÑника «%s» за зміщеннÑм %zu\n"
-#: src/elflint.c:4402
+#: src/elflint.c:4408
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3533,39 +3544,39 @@ msgstr ""
"розділ [%2d] «%s»: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із "
"іменем влаÑника «%s» за зміщеннÑм %zu\n"
-#: src/elflint.c:4421
+#: src/elflint.c:4427
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr "phdr[%d]: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n"
-#: src/elflint.c:4441
+#: src/elflint.c:4447
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr "phdr[%d]: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток: %s\n"
-#: src/elflint.c:4444
+#: src/elflint.c:4450
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: зайві %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтаннього запиÑу нотатки\n"
-#: src/elflint.c:4465
+#: src/elflint.c:4471
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
"розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n"
-#: src/elflint.c:4472
+#: src/elflint.c:4478
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток\n"
-#: src/elflint.c:4475
+#: src/elflint.c:4481
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
"розділ [%2d] «%s»: додаткові %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтанньої нотатки\n"
-#: src/elflint.c:4493
+#: src/elflint.c:4499
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3573,66 +3584,66 @@ msgstr ""
"заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів "
"Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ файлів core\n"
-#: src/elflint.c:4508
+#: src/elflint.c:4514
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: %s\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4524
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: невідомий тип запиÑу заголовка програми "
"%#<PRIx64>\n"
-#: src/elflint.c:4529
+#: src/elflint.c:4535
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ INTERP у заголовку програми\n"
-#: src/elflint.c:4537
+#: src/elflint.c:4543
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ TLS у заголовку програми\n"
-#: src/elflint.c:4544
+#: src/elflint.c:4550
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "у Ñтатичному виконуваному файлі не може бути динамічних розділів\n"
-#: src/elflint.c:4558
+#: src/elflint.c:4564
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
"поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° динамічний розділ у заголовку програми має помилкове зміщеннÑ\n"
-#: src/elflint.c:4561
+#: src/elflint.c:4567
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
"розміри динамічного розділу у заголовку програми та у заголовку розділу не "
"збігаютьÑÑ\n"
-#: src/elflint.c:4571
+#: src/elflint.c:4577
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ GNU_RELRO у заголовку програми\n"
-#: src/elflint.c:4592
+#: src/elflint.c:4598
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
"придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент, до Ñкого звертаєтьÑÑ GNU_RELRO, "
"непридатний до запиÑу\n"
-#: src/elflint.c:4603
+#: src/elflint.c:4609
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
"прапорці придатного до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента [%u] не відповідають прапорцÑм "
"GNU_RELRO [%u]\n"
-#: src/elflint.c:4610
+#: src/elflint.c:4616
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
@@ -3640,76 +3651,76 @@ msgstr ""
"прапорці GNU_RELRO [%u] не Ñ” підмножиною прапорців завантажуваного Ñегмента "
"[%u]\n"
-#: src/elflint.c:4619 src/elflint.c:4642
+#: src/elflint.c:4625 src/elflint.c:4648
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr "Ñегмент %s не міÑтитьÑÑ Ñƒ завантаженому Ñегменті\n"
-#: src/elflint.c:4648
+#: src/elflint.c:4654
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми у заголовку ELF Ñ– Ð·Ð°Ð¿Ð¸Ñ PHDR не збігаютьÑÑ"
-#: src/elflint.c:4675
+#: src/elflint.c:4681
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
"поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю вікон викликів у заголовку програми має помилкове "
"зміщеннÑ\n"
-#: src/elflint.c:4678
+#: src/elflint.c:4684
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
"розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку "
"розділу не збігаютьÑÑ\n"
-#: src/elflint.c:4691
+#: src/elflint.c:4697
#, 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:4699
+#: src/elflint.c:4705
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’ÑÑ‚Ñ–\n"
-#: src/elflint.c:4702
+#: src/elflint.c:4708
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "розділ [%2zu] «%s» має бути розміщено у пам’ÑÑ‚Ñ–\n"
-#: src/elflint.c:4706
+#: src/elflint.c:4712
#, c-format
msgid "call frame search table must not be writable\n"
msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до запиÑу\n"
-#: src/elflint.c:4709
+#: src/elflint.c:4715
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "розділ [%2zu] «%s» не повинен бути придатним до запиÑу\n"
-#: src/elflint.c:4714
+#: src/elflint.c:4720
#, c-format
msgid "call frame search table must not be executable\n"
msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до виконаннÑ\n"
-#: src/elflint.c:4717
+#: src/elflint.c:4723
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконаннÑ\n"
-#: src/elflint.c:4728
+#: src/elflint.c:4737
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: розмір файла перевищує об’єм пам’ÑÑ‚Ñ–\n"
-#: src/elflint.c:4735
+#: src/elflint.c:4744
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” Ñтепенем 2\n"
-#: src/elflint.c:4738
+#: src/elflint.c:4747
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3718,7 +3729,7 @@ msgstr ""
"Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ файлі Ñ– віртуальна адреÑа не "
"ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð· вирівнюваннÑм\n"
-#: src/elflint.c:4751
+#: src/elflint.c:4760
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3727,109 +3738,109 @@ msgstr ""
"виконуваний модуль/DSO з розділом .eh_frame_hdr не міÑтить запиÑу заголовка "
"програми PT_GNU_EH_FRAME"
-#: src/elflint.c:4785
+#: src/elflint.c:4794
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s\n"
-#: src/elflint.c:4797
+#: src/elflint.c:4806
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "не вдалоÑÑ Ñтворити файл"
-#: src/elflint.c:4818
+#: src/elflint.c:4827
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
"вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту, але такий прапорець не потрібен\n"
-#: src/findtextrel.c:61
+#: src/findtextrel.c:60
msgid "Input Selection:"
msgstr "Вибір параметрів виводу даних:"
-#: src/findtextrel.c:62
+#: src/findtextrel.c:61
msgid "Prepend PATH to all file names"
msgstr "Додавати ШЛЯХ до вÑÑ–Ñ… назв файлів"
-#: src/findtextrel.c:64
+#: src/findtextrel.c:63
msgid "Use PATH as root of debuginfo hierarchy"
msgstr "ВикориÑтовувати ШЛЯХ Ñк кореневий каталог Ð´Ð»Ñ Ñ–Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ— debuginfo"
#. Short description of program.
-#: src/findtextrel.c:71
+#: src/findtextrel.c:70
msgid "Locate source of text relocations in FILEs (a.out by default)."
msgstr "Шукає джерело переÑуваного текÑту у ФÐЙЛÐÐ¥ (типово, a.out)."
#. Strings for arguments in help texts.
-#: src/findtextrel.c:75 src/nm.c:108 src/objdump.c:71 src/size.c:80
-#: src/strings.c:87 src/strip.c:101
+#: src/findtextrel.c:74 src/nm.c:107 src/objdump.c:70 src/size.c:79
+#: src/strings.c:86 src/strip.c:100
msgid "[FILE...]"
msgstr "[ФÐЙЛ...]"
-#: src/findtextrel.c:224
+#: src/findtextrel.c:223
#, c-format
msgid "cannot get ELF header '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF «%s»: %s"
-#: src/findtextrel.c:235
+#: src/findtextrel.c:234
#, c-format
msgid "'%s' is not a DSO or PIE"
msgstr "«%s» не є DSO або PIE"
-#: src/findtextrel.c:255
+#: src/findtextrel.c:254
#, c-format
msgid "getting get section header of section %zu: %s"
msgstr "Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу get розділу %zu: %s"
-#: src/findtextrel.c:279
+#: src/findtextrel.c:278
#, c-format
msgid "cannot read dynamic section: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ динамічний розділ: %s"
-#: src/findtextrel.c:300
+#: src/findtextrel.c:299
#, c-format
msgid "no text relocations reported in '%s'"
msgstr "у «%s» не виÑвлено переÑувань текÑту"
-#: src/findtextrel.c:311
+#: src/findtextrel.c:310
#, c-format
msgid "while reading ELF file"
msgstr "під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° ELF"
-#: src/findtextrel.c:315
+#: src/findtextrel.c:314
#, c-format
msgid "cannot get program header count: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/findtextrel.c:326 src/findtextrel.c:341
+#: src/findtextrel.c:325 src/findtextrel.c:340
#, c-format
msgid "cannot get program header index at offset %zd: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми за зміщеннÑм %zd: %s"
-#: src/findtextrel.c:397
+#: src/findtextrel.c:396
#, c-format
msgid "cannot get symbol table section %zu in '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ таблицю Ñимволів розділу %zu у «%s»: %s"
-#: src/findtextrel.c:418 src/findtextrel.c:441
+#: src/findtextrel.c:417 src/findtextrel.c:440
#, c-format
msgid "cannot get relocation at index %d in section %zu in '%s': %s"
msgstr ""
"не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° індекÑом %d у розділі %zu у «%s»: %s"
-#: src/findtextrel.c:507
+#: src/findtextrel.c:506
#, c-format
msgid "%s not compiled with -fpic/-fPIC\n"
msgstr "%s не зібрано з -fpic/-fPIC\n"
-#: src/findtextrel.c:561
+#: src/findtextrel.c:560
#, c-format
msgid ""
"the file containing the function '%s' is not compiled with -fpic/-fPIC\n"
msgstr ""
"файл, що міÑтить функцію «%s», не було зібрано з параметрами -fpic/-fPIC\n"
-#: src/findtextrel.c:568 src/findtextrel.c:588
+#: src/findtextrel.c:567 src/findtextrel.c:587
#, c-format
msgid ""
"the file containing the function '%s' might not be compiled with -fpic/-"
@@ -3838,7 +3849,7 @@ msgstr ""
"файл, що міÑтить функцію «%s», ймовірно, не було зібрано з параметрами -"
"fpic/-fPIC\n"
-#: src/findtextrel.c:576
+#: src/findtextrel.c:575
#, c-format
msgid ""
"either the file containing the function '%s' or the file containing the "
@@ -3847,7 +3858,7 @@ msgstr ""
"файл, що міÑтить функцію «%s», або файл, що міÑтить функцію «%s», зібрано "
"без параметрів -fpic/-fPIC\n"
-#: src/findtextrel.c:596
+#: src/findtextrel.c:595
#, c-format
msgid ""
"a relocation modifies memory at offset %llu in a write-protected segment\n"
@@ -3855,43 +3866,43 @@ msgstr ""
"переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до зміни запиÑу пам’ÑÑ‚Ñ– за зміщеннÑм %llu у "
"захищеному від запиÑу Ñегменті\n"
-#: src/nm.c:66 src/strip.c:70
+#: src/nm.c:65 src/strip.c:69
msgid "Output selection:"
msgstr "Вибір виводу:"
-#: src/nm.c:67
+#: src/nm.c:66
msgid "Display debugger-only symbols"
msgstr "Показувати лише діагноÑтичні Ñимволи"
-#: src/nm.c:68
+#: src/nm.c:67
msgid "Display only defined symbols"
msgstr "Показувати лише визначені Ñимволи"
-#: src/nm.c:71
+#: src/nm.c:70
msgid "Display dynamic symbols instead of normal symbols"
msgstr "Показувати динамічні Ñимволи заміÑÑ‚ÑŒ звичайних Ñимволів"
-#: src/nm.c:72
+#: src/nm.c:71
msgid "Display only external symbols"
msgstr "Показувати лише зовнішні Ñимволи"
-#: src/nm.c:73
+#: src/nm.c:72
msgid "Display only undefined symbols"
msgstr "Показувати лише невизначені Ñимволи"
-#: src/nm.c:75
+#: src/nm.c:74
msgid "Include index for symbols from archive members"
msgstr "Включити покажчик Ð´Ð»Ñ Ñимволів з елементів архіву"
-#: src/nm.c:77 src/size.c:54
+#: src/nm.c:76 src/size.c:53
msgid "Output format:"
msgstr "Формат виводу:"
-#: src/nm.c:79
+#: src/nm.c:78
msgid "Print name of the input file before every symbol"
msgstr "Виводити перед кожним Ñимволом назву вхідного файла"
-#: src/nm.c:82
+#: src/nm.c:81
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The "
"default is `sysv'"
@@ -3899,73 +3910,73 @@ msgstr ""
"ВикориÑтовувати формат виводу ФОРМÐТ. ФОРМÐТом може бути «bsd», «sysv» або "
"«posix». Типовим форматом є «sysv»"
-#: src/nm.c:84
+#: src/nm.c:83
msgid "Same as --format=bsd"
msgstr "Те Ñаме, що Ñ– --format=bsd"
-#: src/nm.c:85
+#: src/nm.c:84
msgid "Same as --format=posix"
msgstr "Те Ñаме, що Ñ– --format=posix"
-#: src/nm.c:86 src/size.c:60
+#: src/nm.c:85 src/size.c:59
msgid "Use RADIX for printing symbol values"
msgstr "ВикориÑтовувати ОСÐОВУ чиÑÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñƒ Ñимвольних значень"
-#: src/nm.c:87
+#: src/nm.c:86
msgid "Mark special symbols"
msgstr "Позначати Ñпеціальні Ñимволи"
-#: src/nm.c:89
+#: src/nm.c:88
msgid "Print size of defined symbols"
msgstr "ВивеÑти розмір визначених Ñимволів"
-#: src/nm.c:91 src/size.c:68 src/strip.c:75 src/unstrip.c:69
+#: src/nm.c:90 src/size.c:67 src/strip.c:74 src/unstrip.c:68
msgid "Output options:"
msgstr "Параметри виводу:"
-#: src/nm.c:92
+#: src/nm.c:91
msgid "Sort symbols numerically by address"
msgstr "ЧиÑлове впорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñимволів за адреÑою"
-#: src/nm.c:94
+#: src/nm.c:93
msgid "Do not sort the symbols"
msgstr "Ðе впорÑдковувати Ñимволи"
-#: src/nm.c:95
+#: src/nm.c:94
msgid "Reverse the sense of the sort"
msgstr "Змінити порÑдок на протилежний"
-#: src/nm.c:98
+#: src/nm.c:97
msgid "Decode low-level symbol names into source code names"
msgstr "Визначати за низькорівневими назвами Ñимволів назви у початковому коді"
#. Short description of program.
-#: src/nm.c:105
+#: src/nm.c:104
msgid "List symbols from FILEs (a.out by default)."
msgstr "Показати ÑпиÑок Ñимволів з ФÐЙЛів (типово з a.out)."
-#: src/nm.c:116 src/objdump.c:79
+#: src/nm.c:115 src/objdump.c:78
msgid "Output formatting"
msgstr "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ñƒ"
-#: src/nm.c:140 src/objdump.c:103 src/size.c:105 src/strip.c:133
+#: src/nm.c:139 src/objdump.c:102 src/size.c:104 src/strip.c:132
#, c-format
msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: Ð’ÐУТРІШÐЯ ПОМИЛКР%d (%s): %s"
-#: src/nm.c:381 src/nm.c:393 src/size.c:288 src/size.c:297 src/size.c:308
-#: src/strip.c:2767
+#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
+#: src/strip.c:2766
#, c-format
msgid "while closing '%s'"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
-#: src/nm.c:403 src/objdump.c:280 src/strip.c:822
+#: src/nm.c:402 src/objdump.c:279 src/strip.c:827
#, c-format
msgid "%s: File format not recognized"
msgstr "%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла"
#. Note: 0 is no valid offset.
-#: src/nm.c:443
+#: src/nm.c:442
msgid ""
"\n"
"Archive index:\n"
@@ -3973,44 +3984,43 @@ msgstr ""
"\n"
"Покажчик архіву:\n"
-#: src/nm.c:452
+#: src/nm.c:451
#, c-format
msgid "invalid offset %zu for symbol %s"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu Ð´Ð»Ñ Ñимволу %s"
-#: src/nm.c:457
+#: src/nm.c:456
#, c-format
msgid "%s in %s\n"
msgstr "%s у %s\n"
-#: src/nm.c:465
+#: src/nm.c:464
#, c-format
msgid "cannot reset archive offset to beginning"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ архіву"
-#: src/nm.c:490 src/objdump.c:328
+#: src/nm.c:489 src/objdump.c:327
#, c-format
msgid "%s%s%s: file format not recognized"
msgstr "%s%s%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла"
-#: src/nm.c:704
-#, c-format
+#: src/nm.c:702
msgid "cannot create search tree"
msgstr "не вдалоÑÑ Ñтворити дерево пошуку"
-#: src/nm.c:745 src/nm.c:1238 src/objdump.c:781 src/readelf.c:637
-#: src/readelf.c:1451 src/readelf.c:1602 src/readelf.c:1803 src/readelf.c:2009
-#: src/readelf.c:2199 src/readelf.c:2377 src/readelf.c:2453 src/readelf.c:2719
-#: src/readelf.c:2795 src/readelf.c:2882 src/readelf.c:3478 src/readelf.c:3528
-#: src/readelf.c:3598 src/readelf.c:11409 src/readelf.c:12603
-#: src/readelf.c:12814 src/readelf.c:12883 src/size.c:398 src/size.c:470
-#: src/strip.c:1089
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
+#: src/readelf.c:1471 src/readelf.c:1620 src/readelf.c:1847 src/readelf.c:2084
+#: src/readelf.c:2273 src/readelf.c:2451 src/readelf.c:2526 src/readelf.c:2791
+#: src/readelf.c:2866 src/readelf.c:2952 src/readelf.c:3547 src/readelf.c:3595
+#: src/readelf.c:3664 src/readelf.c:11581 src/readelf.c:12771
+#: src/readelf.c:12981 src/readelf.c:13049 src/size.c:396 src/size.c:467
+#: src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків"
#. We always print this prolog.
-#: src/nm.c:770
+#: src/nm.c:767
#, c-format
msgid ""
"\n"
@@ -4024,7 +4034,7 @@ msgstr ""
"\n"
#. The header line.
-#: src/nm.c:773
+#: src/nm.c:770
#, c-format
msgid ""
"%*s%-*s %-*s Class Type %-*s %*s Section\n"
@@ -4033,7 +4043,7 @@ msgstr ""
"%*s%-*s %-*s ÐšÐ»Ð°Ñ Ð¢Ð¸Ð¿ %-*s %*s Розділ\n"
"\n"
-#: src/nm.c:775
+#: src/nm.c:772
#, fuzzy
#| msgid " Name: "
msgctxt "sysv"
@@ -4041,96 +4051,96 @@ msgid "Name"
msgstr "Ðазва: "
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:777
+#: src/nm.c:774
msgctxt "sysv"
msgid "Value"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:779
+#: src/nm.c:776
msgctxt "sysv"
msgid "Size"
msgstr ""
#. TRANS: the "sysv|" parts makes the string unique.
-#: src/nm.c:781
+#: src/nm.c:778
msgctxt "sysv"
msgid "Line"
msgstr ""
-#: src/nm.c:1249
+#: src/nm.c:1245
#, c-format
msgid "%s: entry size in section %zd `%s' is not what we expect"
msgstr "%s: розмір запиÑу у розділі %zd «%s» не Ñ” очікуваним"
-#: src/nm.c:1254
+#: src/nm.c:1250
#, c-format
msgid "%s: size of section %zd `%s' is not multiple of entry size"
msgstr "%s: розмір розділу %zd «%s» не Ñ” кратним до розміру запиÑу"
-#: src/nm.c:1335
+#: src/nm.c:1330
#, c-format
msgid "%s: entries (%zd) in section %zd `%s' is too large"
msgstr "%s: запиÑи (%zd) у розділі %zd, «%s» Ñ” завеликим"
#. XXX Add machine specific object file types.
-#: src/nm.c:1571
+#: src/nm.c:1566
#, c-format
msgid "%s%s%s%s: Invalid operation"
msgstr "%s%s%s%s: некоректна діÑ"
-#: src/nm.c:1621
+#: src/nm.c:1616
#, c-format
msgid "%s%s%s: no symbols"
msgstr "%s%s%s: немає Ñимволів"
-#: src/objdump.c:52
+#: src/objdump.c:51
msgid "Mode selection:"
msgstr "Вибір режиму:"
-#: src/objdump.c:53
+#: src/objdump.c:52
msgid "Display relocation information."
msgstr "Показати інформацію про переÑуваннÑ."
-#: src/objdump.c:55
+#: src/objdump.c:54
msgid "Display the full contents of all sections requested"
msgstr "Показати веÑÑŒ вміÑÑ‚ вÑÑ–Ñ… вказаних розділів"
-#: src/objdump.c:57
+#: src/objdump.c:56
msgid "Display assembler code of executable sections"
msgstr "Показати код аÑемблера виконуваних розділів"
-#: src/objdump.c:59
+#: src/objdump.c:58
msgid "Output content selection:"
msgstr "Вибір виведених даних:"
-#: src/objdump.c:61
+#: src/objdump.c:60
msgid "Only display information for section NAME."
msgstr "Показати інформацію лише з розділу ÐÐЗВÐ."
#. Short description of program.
-#: src/objdump.c:67
+#: src/objdump.c:66
msgid "Show information from FILEs (a.out by default)."
msgstr "Показати інформацію з ФÐЙЛів (типово a.out)."
-#: src/objdump.c:218 src/readelf.c:582
+#: src/objdump.c:217 src/readelf.c:608
msgid "No operation specified.\n"
msgstr "Ðе вказано дії.\n"
-#: src/objdump.c:258 src/objdump.c:270
+#: src/objdump.c:257 src/objdump.c:269
#, c-format
msgid "while close `%s'"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
-#: src/objdump.c:363 src/readelf.c:2104 src/readelf.c:2296
+#: src/objdump.c:362 src/readelf.c:2179 src/readelf.c:2370
msgid "INVALID SYMBOL"
msgstr "ÐЕКОРЕКТÐИЙ СИМВОЛ"
-#: src/objdump.c:378 src/readelf.c:2138 src/readelf.c:2332
+#: src/objdump.c:377 src/readelf.c:2213 src/readelf.c:2406
msgid "INVALID SECTION"
msgstr "ÐЕКОРЕКТÐИЙ РОЗДІЛ"
-#: src/objdump.c:498
+#: src/objdump.c:497
#, c-format
msgid ""
"\n"
@@ -4141,62 +4151,61 @@ msgstr ""
"ЗÐПИСИ ПЕРЕМІЩЕÐÐЯ ДЛЯ [%s]:\n"
"%-*s ТИП ЗÐÐЧЕÐÐЯ\n"
-#: src/objdump.c:501
+#: src/objdump.c:500
msgid "OFFSET"
msgstr "ЗМІЩЕÐÐЯ"
-#: src/objdump.c:566
+#: src/objdump.c:565
#, c-format
msgid "Contents of section %s:\n"
msgstr "ВміÑÑ‚ розділу %s:\n"
-#: src/objdump.c:687
-#, c-format
+#: src/objdump.c:686
msgid "cannot disassemble"
msgstr "не вдалоÑÑ Ð´Ð¸Ð·Ð°Ñемблювати"
-#: src/objdump.c:759
-#, fuzzy, c-format
+#: src/objdump.c:757
+#, fuzzy
msgid "cannot create backend for elf file"
msgstr "не вдалоÑÑ Ñтворити файл"
#. Short description of program.
-#: src/ranlib.c:63
+#: src/ranlib.c:62
msgid "Generate an index to speed access to archives."
msgstr "Створювати покажчик Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑˆÐ²Ð¸Ð´ÑˆÐµÐ½Ð½Ñ Ð´Ð¾Ñтупу до архівів."
#. Strings for arguments in help texts.
-#: src/ranlib.c:66
+#: src/ranlib.c:65
msgid "ARCHIVE"
msgstr "ÐРХІВ"
-#: src/ranlib.c:102
+#: src/ranlib.c:101
#, c-format
msgid "Archive name required"
msgstr "Слід вказати назву архіву"
-#: src/ranlib.c:166
+#: src/ranlib.c:165
#, c-format
msgid "'%s' is no archive"
msgstr "«%s» не є архівом"
-#: src/ranlib.c:201
+#: src/ranlib.c:200
#, c-format
msgid "error while freeing sub-ELF descriptor: %s"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора під-ELF: %s"
-#: src/readelf.c:97
+#: src/readelf.c:96
msgid "ELF input selection:"
msgstr "Вибір вихідних даних ELF:"
-#: src/readelf.c:99
+#: src/readelf.c:98
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
"ВикориÑтовувати вказаний за іменем РОЗДІЛ (типово .gnu_debugdata) Ñк "
"(ÑтиÑнені) вхідні дані ELF"
-#: src/readelf.c:102
+#: src/readelf.c:101
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
@@ -4204,43 +4213,43 @@ msgstr ""
"ВикориÑтовуєтьÑÑ Ð· -w Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ оÑнови компільованих модулів у ФÐЙЛі, "
"пов'Ñзаному із модулÑми розділеної компілÑції у вхідному файлі .dwo"
-#: src/readelf.c:104
+#: src/readelf.c:103
msgid "ELF output selection:"
msgstr "Вибір виводу ELF:"
-#: src/readelf.c:106
+#: src/readelf.c:105
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr "Ð’Ñе це Ð¿Ð»ÑŽÑ -p .strtab -p .dynstr -p .comment"
-#: src/readelf.c:107
+#: src/readelf.c:106
msgid "Display the dynamic segment"
msgstr "Показувати динамічний Ñегмент"
-#: src/readelf.c:108
+#: src/readelf.c:107
msgid "Display the ELF file header"
msgstr "Показувати заголовок файла ELF"
-#: src/readelf.c:110
+#: src/readelf.c:109
msgid "Display histogram of bucket list lengths"
msgstr "Показати гіÑтограму довжин ÑпиÑку блоків"
-#: src/readelf.c:111
+#: src/readelf.c:110
msgid "Display the program headers"
msgstr "Показувати заголовки програми"
-#: src/readelf.c:113
+#: src/readelf.c:112
msgid "Display relocations"
msgstr "Показувати переÑуваннÑ"
-#: src/readelf.c:114
+#: src/readelf.c:113
msgid "Display the section groups"
msgstr "Показувати групи розділів"
-#: src/readelf.c:115
+#: src/readelf.c:114
msgid "Display the sections' headers"
msgstr "Показувати заголовки розділів"
-#: src/readelf.c:118
+#: src/readelf.c:117
msgid "Display the symbol table sections"
msgstr "Показати розділи таблиці Ñимволів"
@@ -4293,23 +4302,27 @@ msgid "Display the symbol index of an archive"
msgstr "Показувати покажчик Ñимволів архіву"
#: src/readelf.c:141
+msgid "Use the dynamic segment when possible for displaying info"
+msgstr ""
+
+#: src/readelf.c:143
msgid "Output control:"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¾Ð¼:"
-#: src/readelf.c:143
+#: src/readelf.c:145
msgid "Do not find symbol names for addresses in DWARF data"
msgstr "Ðе шукати назви Ñимволів Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑ Ñƒ даних DWARF"
-#: src/readelf.c:145
+#: src/readelf.c:147
msgid ""
"Display just offsets instead of resolving values to addresses in DWARF data"
msgstr "Показати лише зміщеннÑ, а не визначені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи у даних DWARF"
-#: src/readelf.c:147
+#: src/readelf.c:149
msgid "Ignored for compatibility (lines always wide)"
msgstr "ІгноруєтьÑÑ Ð· міркувань ÑуміÑноÑÑ‚Ñ– (Ñ€Ñдки завжди широкі)"
-#: src/readelf.c:149
+#: src/readelf.c:151
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
@@ -4318,156 +4331,156 @@ msgstr ""
"розпакувати розділ до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ даних (Ñкщо викориÑтано з -p або -x)"
#. Short description of program.
-#: src/readelf.c:154
+#: src/readelf.c:156
msgid "Print information from ELF file in human-readable form."
msgstr "Виводити відомоÑÑ‚Ñ– з файла ELF у придатному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–."
#. Look up once.
-#: src/readelf.c:350
+#: src/readelf.c:373
msgid "yes"
msgstr "так"
-#: src/readelf.c:351
+#: src/readelf.c:374
msgid "no"
msgstr "ні"
-#: src/readelf.c:550
+#: src/readelf.c:576
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Ðевідомий діагноÑтичний розділ DWARF «%s».\n"
-#: src/readelf.c:621 src/readelf.c:732
+#: src/readelf.c:647 src/readelf.c:758
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf: %s"
-#: src/readelf.c:628 src/readelf.c:955 src/strip.c:1184
+#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:646 src/readelf.c:1265 src/readelf.c:1475
+#: src/readelf.c:672 src/readelf.c:1287 src/readelf.c:1495
#, c-format
msgid "cannot get section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/readelf.c:655 src/readelf.c:1272 src/readelf.c:1483 src/readelf.c:12834
-#: src/unstrip.c:397 src/unstrip.c:428 src/unstrip.c:491 src/unstrip.c:612
-#: src/unstrip.c:633 src/unstrip.c:673 src/unstrip.c:889 src/unstrip.c:1224
-#: src/unstrip.c:1351 src/unstrip.c:1375 src/unstrip.c:1431 src/unstrip.c:1472
-#: src/unstrip.c:1665 src/unstrip.c:1816 src/unstrip.c:1959 src/unstrip.c:2058
+#: src/readelf.c:681 src/readelf.c:1294 src/readelf.c:1502 src/readelf.c:13001
+#: src/unstrip.c:396 src/unstrip.c:427 src/unstrip.c:490 src/unstrip.c:610
+#: src/unstrip.c:631 src/unstrip.c:671 src/unstrip.c:887 src/unstrip.c:1222
+#: src/unstrip.c:1349 src/unstrip.c:1373 src/unstrip.c:1429 src/unstrip.c:1470
+#: src/unstrip.c:1662 src/unstrip.c:1813 src/unstrip.c:1956 src/unstrip.c:2055
#, c-format
msgid "cannot get section header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s"
-#: src/readelf.c:663
+#: src/readelf.c:689
#, c-format
msgid "cannot get section name"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву розділу"
-#: src/readelf.c:672 src/readelf.c:6634 src/readelf.c:10681 src/readelf.c:10783
-#: src/readelf.c:10961
+#: src/readelf.c:698 src/readelf.c:6797 src/readelf.c:10854 src/readelf.c:10956
+#: src/readelf.c:11134
#, c-format
msgid "cannot get %s content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s: %s"
-#: src/readelf.c:688
+#: src/readelf.c:714
#, c-format
msgid "cannot create temp file '%s'"
msgstr "не вдалоÑÑ Ñтворити файл тимчаÑових даних «%s»"
-#: src/readelf.c:697
+#: src/readelf.c:723
#, c-format
msgid "cannot write section data"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати дані розділу"
-#: src/readelf.c:703 src/readelf.c:720 src/readelf.c:749
+#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s"
-#: src/readelf.c:710
+#: src/readelf.c:736
#, c-format
msgid "error while rewinding file descriptor"
msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початкового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла"
-#: src/readelf.c:744
+#: src/readelf.c:770
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "«%s» не Ñ” архівом, Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° архіву неможливе"
-#: src/readelf.c:848
+#: src/readelf.c:874
#, c-format
msgid "cannot stat input file"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла за допомогою stat"
-#: src/readelf.c:850
+#: src/readelf.c:876
#, c-format
msgid "input file is empty"
msgstr "вхідний файл є порожнім"
-#: src/readelf.c:852
+#: src/readelf.c:878
#, c-format
msgid "failed reading '%s': %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s"
-#: src/readelf.c:881
+#: src/readelf.c:907
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "У «%2$s» немає розділу «%1$s»"
-#: src/readelf.c:940
+#: src/readelf.c:966
#, c-format
msgid "cannot read ELF header: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s"
-#: src/readelf.c:948
+#: src/readelf.c:974
#, c-format
msgid "cannot create EBL handle"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL"
-#: src/readelf.c:961
+#: src/readelf.c:985
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/readelf.c:993
+#: src/readelf.c:1017
#, c-format
msgid "cannot read ELF: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:1054
+#: src/readelf.c:1078
msgid "NONE (None)"
msgstr "NONE (Ðемає)"
-#: src/readelf.c:1055
+#: src/readelf.c:1079
msgid "REL (Relocatable file)"
msgstr "REL (Придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»)"
-#: src/readelf.c:1056
+#: src/readelf.c:1080
msgid "EXEC (Executable file)"
msgstr "EXEC (Виконуваний файл)"
-#: src/readelf.c:1057
+#: src/readelf.c:1081
msgid "DYN (Shared object file)"
msgstr "DYN (Файл об’єктів Ñпільного викориÑтаннÑ)"
-#: src/readelf.c:1058
+#: src/readelf.c:1082
msgid "CORE (Core file)"
msgstr "CORE (Файл Ñдра)"
-#: src/readelf.c:1063
+#: src/readelf.c:1087
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "ОС-Ñпецифічне: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1065
+#: src/readelf.c:1089
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Специфічне Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора: (%x)\n"
-#: src/readelf.c:1075
+#: src/readelf.c:1099
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4475,7 +4488,7 @@ msgstr ""
"Заголовок ELF:\n"
" Magic: "
-#: src/readelf.c:1079
+#: src/readelf.c:1103
#, c-format
msgid ""
"\n"
@@ -4484,123 +4497,123 @@ msgstr ""
"\n"
" КлаÑ: %s\n"
-#: src/readelf.c:1084
+#: src/readelf.c:1108
#, c-format
msgid " Data: %s\n"
msgstr " Дані: %s\n"
-#: src/readelf.c:1090
+#: src/readelf.c:1114
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " ВерÑÑ–Ñ Ident: %hhd %s\n"
-#: src/readelf.c:1092 src/readelf.c:1114
+#: src/readelf.c:1116 src/readelf.c:1138
msgid "(current)"
msgstr "(поточний)"
-#: src/readelf.c:1096
+#: src/readelf.c:1120
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ABI: %s\n"
-#: src/readelf.c:1099
+#: src/readelf.c:1123
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ВерÑÑ–Ñ ABI: %hhd\n"
-#: src/readelf.c:1102
+#: src/readelf.c:1126
msgid " Type: "
msgstr " Тип: "
-#: src/readelf.c:1107
+#: src/readelf.c:1131
#, c-format
msgid " Machine: %s\n"
msgstr " Ðрхітектура: %s\n"
-#: src/readelf.c:1109
+#: src/readelf.c:1133
#, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Ðрхітектура: <невідома>: 0x%x\n"
-#: src/readelf.c:1112
+#: src/readelf.c:1136
#, c-format
msgid " Version: %d %s\n"
msgstr " ВерÑÑ–Ñ: %d %s\n"
-#: src/readelf.c:1116
+#: src/readelf.c:1140
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " ÐдреÑа вхідної точки: %#<PRIx64>\n"
-#: src/readelf.c:1119
+#: src/readelf.c:1143
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Початок заголовків програм: %<PRId64> %s\n"
-#: src/readelf.c:1120 src/readelf.c:1123
+#: src/readelf.c:1144 src/readelf.c:1147
msgid "(bytes into file)"
msgstr "(байтів у файл)"
-#: src/readelf.c:1122
+#: src/readelf.c:1146
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Початок заголовків розділів: %<PRId64> %s\n"
-#: src/readelf.c:1125
+#: src/readelf.c:1149
#, c-format
msgid " Flags: %s\n"
msgstr " Прапорці: %s\n"
-#: src/readelf.c:1128
+#: src/readelf.c:1152
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Розмір цього заголовка: %<PRId16> %s\n"
-#: src/readelf.c:1129 src/readelf.c:1132 src/readelf.c:1149
+#: src/readelf.c:1153 src/readelf.c:1156 src/readelf.c:1173
msgid "(bytes)"
msgstr "(байтів)"
-#: src/readelf.c:1131
+#: src/readelf.c:1155
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовка програми: %<PRId16> %s\n"
-#: src/readelf.c:1134
+#: src/readelf.c:1158
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків програми: %<PRId16>"
-#: src/readelf.c:1141
+#: src/readelf.c:1165
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> у [0].sh_info)"
-#: src/readelf.c:1144 src/readelf.c:1161 src/readelf.c:1175
+#: src/readelf.c:1168 src/readelf.c:1185 src/readelf.c:1199
msgid " ([0] not available)"
msgstr " ([0] недоÑтупний)"
-#: src/readelf.c:1148
+#: src/readelf.c:1172
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовків розділів: %<PRId16> %s\n"
-#: src/readelf.c:1151
+#: src/readelf.c:1175
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків розділів: %<PRId16>"
-#: src/readelf.c:1158
+#: src/readelf.c:1182
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> у [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1171
+#: src/readelf.c:1195
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> у [0].sh_link)"
-#: src/readelf.c:1179
+#: src/readelf.c:1203
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4609,7 +4622,7 @@ msgstr ""
" Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: XINDEX%s\n"
"\n"
-#: src/readelf.c:1183
+#: src/readelf.c:1207
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4618,12 +4631,12 @@ msgstr ""
" Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %<PRId16>\n"
"\n"
-#: src/readelf.c:1230 src/readelf.c:1440
+#: src/readelf.c:1253 src/readelf.c:1461
#, c-format
msgid "cannot get number of sections: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:1233
+#: src/readelf.c:1256
#, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4632,16 +4645,16 @@ msgstr ""
"ВиÑвлено %zd заголовків розділів, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ — %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1242
+#: src/readelf.c:1264
#, c-format
msgid "cannot get section header string table index: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %s"
-#: src/readelf.c:1245
+#: src/readelf.c:1267
msgid "Section Headers:"
msgstr "Заголовки розділів:"
-#: src/readelf.c:1248
+#: src/readelf.c:1270
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4649,7 +4662,7 @@ msgstr ""
"[â„– ] Ðазва Тип Ðдр Змі Розмір ES Прап Lk "
"Інф Al"
-#: src/readelf.c:1250
+#: src/readelf.c:1272
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4657,35 +4670,35 @@ msgstr ""
"[â„– ] Ðазва Тип Ðдр Змі Розмір ES "
"Прап Lk Інф Al"
-#: src/readelf.c:1255
+#: src/readelf.c:1277
msgid " [Compression Size Al]"
msgstr " [СтиÑÐºÐ°Ð½Ð½Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðл]"
-#: src/readelf.c:1257
+#: src/readelf.c:1279
msgid " [Compression Size Al]"
msgstr " [СтиÑÐºÐ°Ð½Ð½Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðл]"
-#: src/readelf.c:1335
+#: src/readelf.c:1357
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr "помилковий заголовок ÑтиÑÐ½ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zd: %s"
-#: src/readelf.c:1346
+#: src/readelf.c:1368
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑтиÑненого розміру gnu Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zd: %s"
-#: src/readelf.c:1364
+#: src/readelf.c:1386
msgid "Program Headers:"
msgstr "Заголовки програми:"
-#: src/readelf.c:1366
+#: src/readelf.c:1388
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр РозмФайл РозмПам Пра Вирів"
-#: src/readelf.c:1369
+#: src/readelf.c:1391
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4693,12 +4706,12 @@ msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр "
"РозмФайлРозмПам Пра Вирів"
-#: src/readelf.c:1426
+#: src/readelf.c:1448
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Запит щодо інтерпретатора програми: %s]\n"
-#: src/readelf.c:1453
+#: src/readelf.c:1473
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4708,12 +4721,12 @@ msgstr ""
" Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² на Ñегмент:\n"
" Розділи Ñегмента..."
-#: src/readelf.c:1464 src/unstrip.c:2117 src/unstrip.c:2159 src/unstrip.c:2166
+#: src/readelf.c:1484 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
#, c-format
msgid "cannot get program header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок програми: %s"
-#: src/readelf.c:1610
+#: src/readelf.c:1628
#, c-format
msgid ""
"\n"
@@ -4731,7 +4744,7 @@ msgstr[2] ""
"\n"
"Група розділів COMDAT [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1615
+#: src/readelf.c:1633
#, c-format
msgid ""
"\n"
@@ -4749,31 +4762,31 @@ msgstr[2] ""
"\n"
"Група розділів [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1623
+#: src/readelf.c:1641
msgid "<INVALID SYMBOL>"
msgstr "<ÐЕКОРЕКТÐИЙ СИМВОЛ>"
-#: src/readelf.c:1637
+#: src/readelf.c:1655
msgid "<INVALID SECTION>"
msgstr "<ÐЕКОРЕКТÐИЙ РОЗДІЛ>"
-#: src/readelf.c:1660 src/readelf.c:2387 src/readelf.c:3494 src/readelf.c:12705
-#: src/readelf.c:12712 src/readelf.c:12756 src/readelf.c:12763
+#: src/readelf.c:1678 src/readelf.c:2461 src/readelf.c:3563 src/readelf.c:12873
+#: src/readelf.c:12880 src/readelf.c:12924 src/readelf.c:12931
msgid "Couldn't uncompress section"
msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ розділ"
-#: src/readelf.c:1665 src/readelf.c:2392 src/readelf.c:3499
+#: src/readelf.c:1682 src/readelf.c:2466 src/readelf.c:3567
#, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу [%zd]: %s"
-#: src/readelf.c:1809 src/readelf.c:2459 src/readelf.c:2725 src/readelf.c:2801
-#: src/readelf.c:3105 src/readelf.c:3179 src/readelf.c:5407
+#: src/readelf.c:1851 src/readelf.c:2532 src/readelf.c:2797 src/readelf.c:2872
+#: src/readelf.c:3175 src/readelf.c:3249 src/readelf.c:5570
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu"
-#: src/readelf.c:1812
+#: src/readelf.c:1854
#, c-format
msgid ""
"\n"
@@ -4796,36 +4809,73 @@ msgstr[2] ""
"Динамічний Ñегмент міÑтить %lu запиÑів:\n"
" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
-#: src/readelf.c:1822
+#: src/readelf.c:1867
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| "Dynamic segment contains %lu entry:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+#| msgid_plural ""
+#| "\n"
+#| "Dynamic segment contains %lu entries:\n"
+#| " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n"
+msgid ""
+"\n"
+"Dynamic segment contains %lu entry:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgid_plural ""
+"\n"
+"Dynamic segment contains %lu entries:\n"
+" Addr: %#0*<PRIx64> Offset: %#08<PRIx64>\n"
+msgstr[0] ""
+"\n"
+"Динамічний Ñегмент міÑтить %lu запиÑ:\n"
+" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
+msgstr[1] ""
+"\n"
+"Динамічний Ñегмент міÑтить %lu запиÑи:\n"
+" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
+msgstr[2] ""
+"\n"
+"Динамічний Ñегмент міÑтить %lu запиÑів:\n"
+" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
+
+#: src/readelf.c:1877
msgid " Type Value\n"
msgstr " Тип ЗначеннÑ\n"
-#: src/readelf.c:1846
+#: src/readelf.c:1886
+#, fuzzy
+#| msgid "cannot get string section data: %s"
+msgid "cannot get string table by using dynamic segment"
+msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу Ñ€Ñдків: %s"
+
+#: src/readelf.c:1925
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Спільна бібліотека: [%s]\n"
-#: src/readelf.c:1851
+#: src/readelf.c:1929
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Ðазва so бібліотеки: [%s]\n"
-#: src/readelf.c:1856
+#: src/readelf.c:1933
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath бібліотеки: [%s]\n"
-#: src/readelf.c:1861
+#: src/readelf.c:1937
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Runpath бібліотеки: [%s]\n"
-#: src/readelf.c:1881
+#: src/readelf.c:1956
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (байт)\n"
-#: src/readelf.c:1994 src/readelf.c:2184
+#: src/readelf.c:2070 src/readelf.c:2259
#, c-format
msgid ""
"\n"
@@ -4834,7 +4884,7 @@ msgstr ""
"\n"
"Ðекоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#0<PRIx64>\n"
-#: src/readelf.c:2012 src/readelf.c:2202
+#: src/readelf.c:2087 src/readelf.c:2276
#, c-format
msgid ""
"\n"
@@ -4863,7 +4913,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:2027 src/readelf.c:2217
+#: src/readelf.c:2102 src/readelf.c:2291
#, c-format
msgid ""
"\n"
@@ -4881,30 +4931,30 @@ msgstr[2] ""
"\n"
"Розділ переÑÑƒÐ²Ð°Ð½Ð½Ñ [%2u] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d запиÑів:\n"
-#: src/readelf.c:2037
+#: src/readelf.c:2112
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2039
+#: src/readelf.c:2114
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2092 src/readelf.c:2103 src/readelf.c:2116 src/readelf.c:2137
-#: src/readelf.c:2149 src/readelf.c:2283 src/readelf.c:2295 src/readelf.c:2309
-#: src/readelf.c:2331 src/readelf.c:2344
+#: src/readelf.c:2167 src/readelf.c:2178 src/readelf.c:2191 src/readelf.c:2212
+#: src/readelf.c:2224 src/readelf.c:2357 src/readelf.c:2369 src/readelf.c:2383
+#: src/readelf.c:2405 src/readelf.c:2418
msgid "<INVALID RELOC>"
msgstr "<ÐЕКОРЕКТÐЕ ПЕРЕМІЩЕÐÐЯ>"
-#: src/readelf.c:2227
+#: src/readelf.c:2301
msgid " Offset Type Value Addend Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2229
+#: src/readelf.c:2303
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2467
+#: src/readelf.c:2540
#, c-format
msgid ""
"\n"
@@ -4922,7 +4972,7 @@ msgstr[2] ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%2u] «%s» міÑтить %u запиÑів:\n"
-#: src/readelf.c:2472
+#: src/readelf.c:2545
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -4930,33 +4980,33 @@ msgstr[0] " %lu лок. Ñимвол Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «
msgstr[1] " %lu лок. Ñимволи Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n"
msgstr[2] " %lu лок. Ñимволів Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n"
-#: src/readelf.c:2480
+#: src/readelf.c:2553
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2482
+#: src/readelf.c:2555
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2502
+#: src/readelf.c:2575
#, c-format
msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
-#: src/readelf.c:2595
+#: src/readelf.c:2668
#, c-format
msgid "bad dynamic symbol"
msgstr "помилковий динамічний Ñимвол"
-#: src/readelf.c:2680
+#: src/readelf.c:2753
msgid "none"
msgstr "немає"
-#: src/readelf.c:2697
+#: src/readelf.c:2770
msgid "| <unknown>"
msgstr "| <невідомо>"
-#: src/readelf.c:2728
+#: src/readelf.c:2800
#, c-format
msgid ""
"\n"
@@ -4979,17 +5029,17 @@ msgstr[2] ""
"Розділ потреби у верÑÑ–ÑÑ… [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:2749
+#: src/readelf.c:2821
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ВерÑÑ–Ñ: %hu Файл: %s Кть: %hu\n"
-#: src/readelf.c:2762
+#: src/readelf.c:2834
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Ðазва: %s Прап: %s ВерÑÑ–Ñ: %hu\n"
-#: src/readelf.c:2805
+#: src/readelf.c:2876
#, c-format
msgid ""
"\n"
@@ -5012,18 +5062,18 @@ msgstr[2] ""
"Розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ— [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:2833
+#: src/readelf.c:2904
#, 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:2848
+#: src/readelf.c:2919
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: батьківÑький %d: %s\n"
#. Print the header.
-#: src/readelf.c:3109
+#: src/readelf.c:3179
#, c-format
msgid ""
"\n"
@@ -5046,15 +5096,15 @@ msgstr[2] ""
"Розділ Ñимволів верÑій [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»"
-#: src/readelf.c:3137
+#: src/readelf.c:3207
msgid " 0 *local* "
msgstr " 0 *локальний* "
-#: src/readelf.c:3142
+#: src/readelf.c:3212
msgid " 1 *global* "
msgstr " 1 *загальний* "
-#: src/readelf.c:3184
+#: src/readelf.c:3254
#, c-format
msgid ""
"\n"
@@ -5082,22 +5132,22 @@ msgstr[2] ""
"блоками):\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:3206
+#: src/readelf.c:3276
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Довжина Ðомер % від загал. ПокриттÑ\n"
-#: src/readelf.c:3208
+#: src/readelf.c:3278
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3215
+#: src/readelf.c:3285
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3228
+#: src/readelf.c:3298
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -5106,37 +5156,37 @@ msgstr ""
" Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ теÑтів: уÑпішний пошук: %f\n"
"\t\t\t неуÑпішний пошук: %f\n"
-#: src/readelf.c:3246 src/readelf.c:3310 src/readelf.c:3376
+#: src/readelf.c:3316 src/readelf.c:3380 src/readelf.c:3446
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s"
-#: src/readelf.c:3254
+#: src/readelf.c:3324
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "некоректні дані у розділі sysv.hash %d"
-#: src/readelf.c:3283
+#: src/readelf.c:3353
#, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "некоректний ланцюжок у розділі sysv.hash %d"
-#: src/readelf.c:3318
+#: src/readelf.c:3388
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "некоректні дані у розділі sysv.hash64 %d"
-#: src/readelf.c:3349
+#: src/readelf.c:3419
#, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "некоректний ланцюжок у розділі sysv.hash64 %d"
-#: src/readelf.c:3385
+#: src/readelf.c:3455
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "некоректні дані у розділі gnu.hash %d"
-#: src/readelf.c:3451
+#: src/readelf.c:3521
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -5146,7 +5196,7 @@ msgstr ""
" Розмір бітової маÑки: %zu байтів %<PRIuFAST32>%% вÑтановлених бітів зÑув "
"2-го хешу: %u\n"
-#: src/readelf.c:3539
+#: src/readelf.c:3606
#, c-format
msgid ""
"\n"
@@ -5167,7 +5217,7 @@ msgstr[2] ""
"Розділ ÑпиÑку бібліотек [%2zu] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d "
"запиÑів:\n"
-#: src/readelf.c:3553
+#: src/readelf.c:3620
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -5175,7 +5225,7 @@ msgstr ""
" Бібліотека ЧаÑовий штамп ВерÑÑ–Ñ Ñуми "
"Прапорці"
-#: src/readelf.c:3612
+#: src/readelf.c:3680
#, c-format
msgid ""
"\n"
@@ -5186,102 +5236,101 @@ msgstr ""
"Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:3629
+#: src/readelf.c:3697
msgid " Owner Size\n"
msgstr " ВлаÑник Розмір\n"
-#: src/readelf.c:3653
+#: src/readelf.c:3721
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3692
+#: src/readelf.c:3760
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3697
+#: src/readelf.c:3765
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Файл: %11<PRIu32>\n"
-#: src/readelf.c:3746
+#: src/readelf.c:3814
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3749
+#: src/readelf.c:3817
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3752
+#: src/readelf.c:3820
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3762
+#: src/readelf.c:3830
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3765
+#: src/readelf.c:3833
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3835
-#, c-format
+#: src/readelf.c:3903
msgid "sprintf failure"
msgstr "помилка sprintf"
-#: src/readelf.c:4317
+#: src/readelf.c:4387
msgid "empty block"
msgstr "порожній блок"
-#: src/readelf.c:4320
+#: src/readelf.c:4390
#, c-format
msgid "%zu byte block:"
msgstr "%zu-байтовий блок:"
-#: src/readelf.c:4798
+#: src/readelf.c:4868
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%2<PRIuMAX>] %s <ОБРІЗÐÐО>\n"
-#: src/readelf.c:4865
+#: src/readelf.c:5028
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ"
-#: src/readelf.c:4872
+#: src/readelf.c:5035
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами зміщень"
-#: src/readelf.c:4879
+#: src/readelf.c:5042
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> викориÑтано з різними базовими адреÑами"
-#: src/readelf.c:4886
+#: src/readelf.c:5049
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> викориÑтано з різними атрибутами, %s Ñ– %s"
-#: src/readelf.c:4986
+#: src/readelf.c:5149
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ У РЕШТІ РОЗДІЛУ>\n"
-#: src/readelf.c:4994
+#: src/readelf.c:5157
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ> ... %<PRIu64> байтів ...\n"
-#: src/readelf.c:5097
+#: src/readelf.c:5260
#, c-format
msgid ""
"\n"
@@ -5292,7 +5341,7 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:5105
+#: src/readelf.c:5268
#, c-format
msgid ""
"\n"
@@ -5301,20 +5350,20 @@ msgstr ""
"\n"
"Розділ Ñкорочень за зміщеннÑм %<PRIu64>:\n"
-#: src/readelf.c:5118
+#: src/readelf.c:5281
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÑкороченнÑ: %s\n"
-#: src/readelf.c:5134
+#: src/readelf.c:5297
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] зміщеннÑ: %<PRId64>, дочірній: %s, мітка: %s\n"
-#: src/readelf.c:5167 src/readelf.c:5476 src/readelf.c:5643 src/readelf.c:6028
-#: src/readelf.c:6644 src/readelf.c:8399 src/readelf.c:9145 src/readelf.c:9618
-#: src/readelf.c:9869 src/readelf.c:10035 src/readelf.c:10422
-#: src/readelf.c:10482
+#: src/readelf.c:5330 src/readelf.c:5639 src/readelf.c:5806 src/readelf.c:6191
+#: src/readelf.c:6807 src/readelf.c:8562 src/readelf.c:9308 src/readelf.c:9791
+#: src/readelf.c:10042 src/readelf.c:10208 src/readelf.c:10595
+#: src/readelf.c:10655
#, c-format
msgid ""
"\n"
@@ -5323,54 +5372,54 @@ msgstr ""
"\n"
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:5180
+#: src/readelf.c:5343
#, c-format
msgid "cannot get .debug_addr section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу .debug_addr: %s"
-#: src/readelf.c:5280 src/readelf.c:5304 src/readelf.c:5688 src/readelf.c:9190
+#: src/readelf.c:5443 src/readelf.c:5467 src/readelf.c:5851 src/readelf.c:9353
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Довжина: %8<PRIu64>\n"
-#: src/readelf.c:5282 src/readelf.c:5319 src/readelf.c:5701 src/readelf.c:9203
+#: src/readelf.c:5445 src/readelf.c:5482 src/readelf.c:5864 src/readelf.c:9366
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %8<PRIu16>\n"
-#: src/readelf.c:5283 src/readelf.c:5328 src/readelf.c:5710 src/readelf.c:9212
+#: src/readelf.c:5446 src/readelf.c:5491 src/readelf.c:5873 src/readelf.c:9375
#, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Розмір адреÑи: %8<PRIu64>\n"
-#: src/readelf.c:5285 src/readelf.c:5338 src/readelf.c:5720 src/readelf.c:9222
+#: src/readelf.c:5448 src/readelf.c:5501 src/readelf.c:5883 src/readelf.c:9385
#, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr ""
" Розмір Ñегмента: %8<PRIu64>\n"
"\n"
-#: src/readelf.c:5323 src/readelf.c:5705 src/readelf.c:9207 src/readelf.c:10614
+#: src/readelf.c:5486 src/readelf.c:5868 src/readelf.c:9370 src/readelf.c:10787
#, c-format
msgid "Unknown version"
msgstr "Ðевідома верÑÑ–Ñ"
-#: src/readelf.c:5333 src/readelf.c:5546 src/readelf.c:5715 src/readelf.c:9217
+#: src/readelf.c:5496 src/readelf.c:5709 src/readelf.c:5878 src/readelf.c:9380
#, c-format
msgid "unsupported address size"
msgstr "непідтримуваний розмір адреÑи"
-#: src/readelf.c:5344 src/readelf.c:5557 src/readelf.c:5725 src/readelf.c:9227
+#: src/readelf.c:5507 src/readelf.c:5720 src/readelf.c:5888 src/readelf.c:9390
#, c-format
msgid "unsupported segment size"
msgstr "непідтримуваний розмір Ñегмента"
-#: src/readelf.c:5397 src/readelf.c:5471
+#: src/readelf.c:5560 src/readelf.c:5634
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані get .debug_aranges: %s"
-#: src/readelf.c:5412
+#: src/readelf.c:5575
#, c-format
msgid ""
"\n"
@@ -5388,12 +5437,12 @@ msgstr[2] ""
"\n"
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:5443
+#: src/readelf.c:5606
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5445
+#: src/readelf.c:5608
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5401,7 +5450,7 @@ msgstr ""
" [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5489 src/readelf.c:8426
+#: src/readelf.c:5652 src/readelf.c:8589
#, c-format
msgid ""
"\n"
@@ -5410,13 +5459,13 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм %zu:\n"
-#: src/readelf.c:5493 src/readelf.c:5669 src/readelf.c:6668 src/readelf.c:8437
-#: src/readelf.c:9171
+#: src/readelf.c:5656 src/readelf.c:5832 src/readelf.c:6831 src/readelf.c:8600
+#: src/readelf.c:9334
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "некоректні дані у розділі [%zu] «%s»"
-#: src/readelf.c:5509
+#: src/readelf.c:5672
#, c-format
msgid ""
"\n"
@@ -5425,27 +5474,27 @@ msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5521
+#: src/readelf.c:5684
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5525
+#: src/readelf.c:5688
#, c-format
msgid "unsupported aranges version"
msgstr "непідтримувана верÑÑ–Ñ aranges"
-#: src/readelf.c:5536
+#: src/readelf.c:5699
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %6<PRIx64>\n"
-#: src/readelf.c:5542
+#: src/readelf.c:5705
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Розмір адреÑи: %6<PRIu64>\n"
-#: src/readelf.c:5553
+#: src/readelf.c:5716
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5454,17 +5503,17 @@ msgstr ""
" Розмір Ñегмента: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5608
+#: src/readelf.c:5771
#, c-format
msgid " %zu padding bytes\n"
msgstr " %zu байтів доповненнÑ\n"
-#: src/readelf.c:5652
+#: src/readelf.c:5815
#, c-format
msgid "cannot get .debug_rnglists content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_rnglists: %s"
-#: src/readelf.c:5675 src/readelf.c:9177
+#: src/readelf.c:5838 src/readelf.c:9340
#, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
@@ -5473,42 +5522,42 @@ msgstr ""
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм 0x%<PRIx64>:\n"
"\n"
-#: src/readelf.c:5730 src/readelf.c:9232
+#: src/readelf.c:5893 src/readelf.c:9395
#, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " ЗапиÑи зміщеннÑ: %8<PRIu64>\n"
-#: src/readelf.c:5746 src/readelf.c:9248
+#: src/readelf.c:5909 src/readelf.c:9411
#, c-format
msgid " Unknown CU base: "
msgstr " Ðевідома оÑнова CU: "
-#: src/readelf.c:5748 src/readelf.c:9250
+#: src/readelf.c:5911 src/readelf.c:9413
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr " ОÑнова CU [%6<PRIx64>]: "
-#: src/readelf.c:5754 src/readelf.c:9256
+#: src/readelf.c:5917 src/readelf.c:9419
#, c-format
msgid " Not associated with a CU.\n"
msgstr " Ðе пов'Ñзано із CU.\n"
-#: src/readelf.c:5765 src/readelf.c:9267
+#: src/readelf.c:5928 src/readelf.c:9430
#, c-format
msgid "too many offset entries for unit length"
msgstr "забагато запиÑів зÑуву Ð´Ð»Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ модулÑ"
-#: src/readelf.c:5769 src/readelf.c:9271
+#: src/readelf.c:5932 src/readelf.c:9434
#, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " ЗміщеннÑ, що починаютьÑÑ Ð· 0x%<PRIx64>:\n"
-#: src/readelf.c:5821
+#: src/readelf.c:5984
#, c-format
msgid "invalid range list data"
msgstr "некоректні дані ÑпиÑку діапазонів"
-#: src/readelf.c:6006 src/readelf.c:9596
+#: src/readelf.c:6169 src/readelf.c:9769
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -5517,12 +5566,12 @@ msgstr ""
" %zu байтів доповненнÑ\n"
"\n"
-#: src/readelf.c:6023
+#: src/readelf.c:6186
#, c-format
msgid "cannot get .debug_ranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані .debug_ranges: %s"
-#: src/readelf.c:6059 src/readelf.c:9651
+#: src/readelf.c:6222 src/readelf.c:9824
#, c-format
msgid ""
"\n"
@@ -5531,7 +5580,7 @@ msgstr ""
"\n"
" Ðевідома оÑнова CU: "
-#: src/readelf.c:6061 src/readelf.c:9653
+#: src/readelf.c:6224 src/readelf.c:9826
#, c-format
msgid ""
"\n"
@@ -5540,31 +5589,31 @@ msgstr ""
"\n"
" ОÑнова CU [%6<PRIx64>]: "
-#: src/readelf.c:6070 src/readelf.c:9679 src/readelf.c:9705
+#: src/readelf.c:6233 src/readelf.c:9852 src/readelf.c:9878
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6095 src/readelf.c:9789
+#: src/readelf.c:6258 src/readelf.c:9962
#, fuzzy
msgid "base address"
msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
-#: src/readelf.c:6105 src/readelf.c:9799
+#: src/readelf.c:6268 src/readelf.c:9972
#, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] порожній ÑпиÑок\n"
-#: src/readelf.c:6365
+#: src/readelf.c:6528
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6622
+#: src/readelf.c:6785
#, c-format
msgid "cannot get ELF: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:6640
+#: src/readelf.c:6803
#, c-format
msgid ""
"\n"
@@ -5573,7 +5622,7 @@ msgstr ""
"\n"
"Розділ відомоÑтей щодо вікна викликів [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:6690
+#: src/readelf.c:6853
#, c-format
msgid ""
"\n"
@@ -5582,65 +5631,65 @@ msgstr ""
"\n"
" [%6tx] нульовий переривач\n"
-#: src/readelf.c:6791 src/readelf.c:6945
+#: src/readelf.c:6954 src/readelf.c:7108
#, c-format
msgid "invalid augmentation length"
msgstr "некоректна довжина збільшеннÑ"
-#: src/readelf.c:6806
+#: src/readelf.c:6969
msgid "FDE address encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи FDE: "
-#: src/readelf.c:6812
+#: src/readelf.c:6975
msgid "LSDA pointer encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° LSDA: "
-#: src/readelf.c:6922
+#: src/readelf.c:7085
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (зміщеннÑ: %#<PRIx64>)"
-#: src/readelf.c:6929
+#: src/readelf.c:7092
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ кінцÑ: %#<PRIx64>)"
-#: src/readelf.c:6966
+#: src/readelf.c:7129
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sвказівник LSDA: %#<PRIx64>\n"
-#: src/readelf.c:7051
+#: src/readelf.c:7214
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ код атрибута: %s"
-#: src/readelf.c:7061
+#: src/readelf.c:7224
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ форму атрибута: %s"
-#: src/readelf.c:7083
+#: src/readelf.c:7246
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° «%s» (%s): %s"
-#: src/readelf.c:7413
+#: src/readelf.c:7576
#, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "некоректний файл (%<PRId64>): %s"
-#: src/readelf.c:7417
+#: src/readelf.c:7580
#, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "немає srcfiles Ð´Ð»Ñ CU [%<PRIx64>]"
-#: src/readelf.c:7421
+#: src/readelf.c:7584
#, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ CU DWARF: %s"
-#: src/readelf.c:7736
+#: src/readelf.c:7899
#, c-format
msgid ""
"\n"
@@ -5651,12 +5700,12 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
" [ЗміщеннÑ]\n"
-#: src/readelf.c:7786
+#: src/readelf.c:7949
#, c-format
msgid "cannot get next unit: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ наÑтупний модуль: %s"
-#: src/readelf.c:7806
+#: src/readelf.c:7969
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5669,7 +5718,7 @@ msgstr ""
"%<PRIu8>, Розмір зміщеннÑ: %<PRIu8>\n"
" ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64> [%<PRIx64>]\n"
-#: src/readelf.c:7818
+#: src/readelf.c:7981
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5680,38 +5729,38 @@ msgstr ""
" ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, "
"ЗміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:7828 src/readelf.c:7989
+#: src/readelf.c:7991 src/readelf.c:8152
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr " Тип модулÑ: %s (%<PRIu8>)"
-#: src/readelf.c:7855
+#: src/readelf.c:8018
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr "невідома верÑÑ–Ñ (%d) або тип Ð¼Ð¾Ð´ÑƒÐ»Ñ (%d)"
-#: src/readelf.c:7884
+#: src/readelf.c:8047
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %s"
-#: src/readelf.c:7893
+#: src/readelf.c:8056
#, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ мітку DIE за зміщеннÑм [%<PRIu64>] у розділі «%s»: %s"
-#: src/readelf.c:7929
+#: src/readelf.c:8092
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s\n"
-#: src/readelf.c:7937
+#: src/readelf.c:8100
#, c-format
msgid "cannot get next DIE: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s"
-#: src/readelf.c:7981
+#: src/readelf.c:8144
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5722,7 +5771,7 @@ msgstr ""
" ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, "
"ЗміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:8033
+#: src/readelf.c:8196
#, c-format
msgid ""
"\n"
@@ -5733,18 +5782,18 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8365
+#: src/readelf.c:8528
#, c-format
msgid "unknown form: %s"
msgstr "невідома форма: %s"
-#: src/readelf.c:8413
+#: src/readelf.c:8576
#, c-format
msgid "cannot get line data section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу лінійних даних: %s"
#. Print what we got so far.
-#: src/readelf.c:8517
+#: src/readelf.c:8680
#, c-format
msgid ""
"\n"
@@ -5777,27 +5826,27 @@ msgstr ""
"\n"
"Коди операцій:\n"
-#: src/readelf.c:8539
+#: src/readelf.c:8702
#, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ верÑÑ–ÑŽ .debug_line: %u\n"
-#: src/readelf.c:8547
+#: src/readelf.c:8710
#, c-format
msgid "cannot handle address size: %u\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розмір адреÑи: %u\n"
-#: src/readelf.c:8555
+#: src/readelf.c:8718
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розмір Ñелектора Ñегментів: %u\n"
-#: src/readelf.c:8565
+#: src/readelf.c:8728
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "некоректні дані зі зміщеннÑм %tu у розділі [%zu] «%s»"
-#: src/readelf.c:8580
+#: src/readelf.c:8743
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5805,7 +5854,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n"
-#: src/readelf.c:8591
+#: src/readelf.c:8754
msgid ""
"\n"
"Directory table:"
@@ -5813,12 +5862,12 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ:"
-#: src/readelf.c:8597 src/readelf.c:8674
+#: src/readelf.c:8760 src/readelf.c:8837
#, c-format
msgid " ["
msgstr " ["
-#: src/readelf.c:8668
+#: src/readelf.c:8831
msgid ""
"\n"
"File name table:"
@@ -5826,11 +5875,11 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð°Ð·Ð² файлів:"
-#: src/readelf.c:8729
+#: src/readelf.c:8892
msgid " Entry Dir Time Size Name"
msgstr " Ð—Ð°Ð¿Ð¸Ñ ÐšÐ°Ñ‚ Ð§Ð°Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðазва"
-#: src/readelf.c:8775
+#: src/readelf.c:8938
#, fuzzy
msgid ""
"\n"
@@ -5839,7 +5888,7 @@ msgstr ""
"\n"
"Оператори номерів Ñ€Ñдків:"
-#: src/readelf.c:8779
+#: src/readelf.c:8942
msgid ""
"\n"
"Line number statements:"
@@ -5847,129 +5896,129 @@ msgstr ""
"\n"
"Оператори номерів Ñ€Ñдків:"
-#: src/readelf.c:8794
+#: src/readelf.c:8957
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "некоректну кількіÑÑ‚ÑŒ операцій на інÑтрукцію прирівнÑно до нулÑ"
-#: src/readelf.c:8828
+#: src/readelf.c:8991
#, c-format
msgid " special opcode %u: address+%u = "
msgstr " Ñпеціальний код операції %u: адреÑа+%u = "
-#: src/readelf.c:8832
+#: src/readelf.c:8995
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ", індекÑ_оп = %u, Ñ€Ñдок%+d = %zu\n"
-#: src/readelf.c:8835
+#: src/readelf.c:8998
#, c-format
msgid ", line%+d = %zu\n"
msgstr ", Ñ€Ñдок%+d = %zu\n"
-#: src/readelf.c:8853
+#: src/readelf.c:9016
#, c-format
msgid " extended opcode %u: "
msgstr " розширений код операції %u: "
-#: src/readelf.c:8858
+#: src/readelf.c:9021
msgid " end of sequence"
msgstr " кінець поÑлідовноÑÑ‚Ñ–"
-#: src/readelf.c:8876
+#: src/readelf.c:9039
#, c-format
msgid " set address to "
msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
-#: src/readelf.c:8904
+#: src/readelf.c:9067
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-" Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, назва="
-"%s\n"
+" Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, "
+"назва=%s\n"
-#: src/readelf.c:8918
+#: src/readelf.c:9081
#, c-format
msgid " set discriminator to %u\n"
msgstr " вÑтановити Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ %u\n"
-#: src/readelf.c:8945
+#: src/readelf.c:9108
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:8969
+#: src/readelf.c:9132
#, fuzzy, c-format
#| msgid "Also show function names"
msgid " set function name %s (0x%x)\n"
msgstr "Показувати також назви функцій"
#. Unknown, ignore it.
-#: src/readelf.c:8976
+#: src/readelf.c:9139
msgid " unknown opcode"
msgstr " невідомий код операції"
#. Takes no argument.
-#: src/readelf.c:8988
+#: src/readelf.c:9151
msgid " copy"
msgstr " копіÑ"
-#: src/readelf.c:8999
+#: src/readelf.c:9162
#, c-format
msgid " advance address by %u to "
msgstr " Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи на %u до "
-#: src/readelf.c:9003 src/readelf.c:9064
+#: src/readelf.c:9166 src/readelf.c:9227
#, c-format
msgid ", op_index to %u"
msgstr ", op_index до %u"
-#: src/readelf.c:9015
+#: src/readelf.c:9178
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " проÑувати Ñ€Ñдок на Ñталу %d до %<PRId64>\n"
-#: src/readelf.c:9025
+#: src/readelf.c:9188
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " вÑтановити файл у %<PRIu64>\n"
-#: src/readelf.c:9036
+#: src/readelf.c:9199
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтовпчика %<PRIu64>\n"
-#: src/readelf.c:9043
+#: src/readelf.c:9206
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " вÑтановити «%s» у %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:9049
+#: src/readelf.c:9212
msgid " set basic block flag"
msgstr " вÑтановити прапорець базового блоку"
-#: src/readelf.c:9060
+#: src/readelf.c:9223
#, c-format
msgid " advance address by constant %u to "
msgstr " збільшити адреÑу на Ñталу величину %u до "
-#: src/readelf.c:9080
+#: src/readelf.c:9243
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr " збільшити адреÑу на фікÑовану величину %u до \n"
#. Takes no argument.
-#: src/readelf.c:9090
+#: src/readelf.c:9253
msgid " set prologue end flag"
msgstr " вÑтановити прапорець ÐºÑ–Ð½Ñ†Ñ Ð²Ñтупу"
#. Takes no argument.
-#: src/readelf.c:9095
+#: src/readelf.c:9258
msgid " set epilogue begin flag"
msgstr " вÑтановити прапорець початку епілогу"
-#: src/readelf.c:9105
+#: src/readelf.c:9268
#, c-format
msgid " set isa to %u\n"
msgstr " вÑтановити isa у %u\n"
@@ -5977,7 +6026,7 @@ msgstr " вÑтановити isa у %u\n"
#. This is a new opcode the generator but not we know about.
#. Read the parameters associated with it but then discard
#. everything. Read all the parameters for this opcode.
-#: src/readelf.c:9114
+#: src/readelf.c:9277
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -5985,102 +6034,102 @@ msgstr[0] " невідомий код операції з %<PRIu8> парамеÑ
msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
-#: src/readelf.c:9154
+#: src/readelf.c:9317
#, c-format
msgid "cannot get .debug_loclists content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loclists: %s"
-#: src/readelf.c:9320
+#: src/readelf.c:9483
#, fuzzy, c-format
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:9360
+#: src/readelf.c:9523
#, c-format
msgid "invalid loclists data"
msgstr "некоректні дані loclists"
-#: src/readelf.c:9613
+#: src/readelf.c:9786
#, c-format
msgid "cannot get .debug_loc content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ .debug_loc: %s"
-#: src/readelf.c:9826 src/readelf.c:10870
+#: src/readelf.c:9999 src/readelf.c:11043
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:9881 src/readelf.c:10044
+#: src/readelf.c:10054 src/readelf.c:10217
#, c-format
msgid "cannot get macro information section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу відомоÑтей щодо макроÑів: %s"
-#: src/readelf.c:9961
+#: src/readelf.c:10134
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** незавершений Ñ€Ñдок наприкінці розділу"
-#: src/readelf.c:9984
+#: src/readelf.c:10157
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу"
-#: src/readelf.c:10085
+#: src/readelf.c:10258
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " ЗміщеннÑ: 0x%<PRIx64>\n"
-#: src/readelf.c:10097
+#: src/readelf.c:10270
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " ВерÑÑ–Ñ: %<PRIu16>\n"
-#: src/readelf.c:10103 src/readelf.c:10990
+#: src/readelf.c:10276 src/readelf.c:11163
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " невідома верÑÑ–Ñ, не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розділ\n"
-#: src/readelf.c:10110
+#: src/readelf.c:10283
#, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Прапорець: 0x%<PRIx8>"
-#: src/readelf.c:10139
+#: src/readelf.c:10312
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:10147
+#: src/readelf.c:10320
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:10172
+#: src/readelf.c:10345
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ¾Ð´Ñ–Ð² операцій розширень, запиÑів — %<PRIu8>:\n"
-#: src/readelf.c:10179
+#: src/readelf.c:10352
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:10191
+#: src/readelf.c:10364
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " %<PRIu8> аргументів:"
-#: src/readelf.c:10206
+#: src/readelf.c:10379
#, c-format
msgid " no arguments."
msgstr " немає аргументів."
-#: src/readelf.c:10407
+#: src/readelf.c:10580
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
" [%5d] Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %6<PRId64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: %6<PRId64>, назва: %s\n"
-#: src/readelf.c:10451
+#: src/readelf.c:10624
#, c-format
msgid ""
"\n"
@@ -6092,42 +6141,42 @@ msgstr ""
" %*s РÑдок\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10456
+#: src/readelf.c:10629
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10466
+#: src/readelf.c:10639
#, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** помилка, пропущено роздільник Ñ€Ñдків\n"
-#: src/readelf.c:10495
+#: src/readelf.c:10668
#, c-format
msgid "cannot get .debug_str_offsets section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу .debug_str_offsets: %s"
-#: src/readelf.c:10594
+#: src/readelf.c:10767
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Довжина: %8<PRIu64>\n"
-#: src/readelf.c:10596
+#: src/readelf.c:10769
#, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Розмір зÑуву: %8<PRIu8>\n"
-#: src/readelf.c:10610
+#: src/readelf.c:10783
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %8<PRIu16>\n"
-#: src/readelf.c:10619
+#: src/readelf.c:10792
#, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " ЗаповненнÑ: %8<PRIx16>\n"
-#: src/readelf.c:10673
+#: src/readelf.c:10846
#, c-format
msgid ""
"\n"
@@ -6136,7 +6185,7 @@ msgstr ""
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10775
+#: src/readelf.c:10948
#, c-format
msgid ""
"\n"
@@ -6145,22 +6194,22 @@ msgstr ""
"\n"
"Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:10798
+#: src/readelf.c:10971
#, c-format
msgid " LPStart encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LPStart: %#x "
-#: src/readelf.c:10810
+#: src/readelf.c:10983
#, c-format
msgid " TType encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType: %#x "
-#: src/readelf.c:10825
+#: src/readelf.c:10998
#, c-format
msgid " Call site encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:%#x "
-#: src/readelf.c:10838
+#: src/readelf.c:11011
msgid ""
"\n"
" Call site table:"
@@ -6168,7 +6217,7 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:"
-#: src/readelf.c:10852
+#: src/readelf.c:11025
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6181,12 +6230,12 @@ msgstr ""
" МіÑце заÑтоÑуваннÑ: %#<PRIx64>\n"
" ДіÑ: %u\n"
-#: src/readelf.c:10925
+#: src/readelf.c:11098
#, c-format
msgid "invalid TType encoding"
msgstr "некоректне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType"
-#: src/readelf.c:10952
+#: src/readelf.c:11125
#, c-format
msgid ""
"\n"
@@ -6195,37 +6244,37 @@ msgstr ""
"\n"
"Розділ GDB [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %<PRId64> байтів:\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11154
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " ВерÑÑ–Ñ: %<PRId32>\n"
-#: src/readelf.c:10999
+#: src/readelf.c:11172
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %#<PRIx32>\n"
-#: src/readelf.c:11006
+#: src/readelf.c:11179
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ TU: %#<PRIx32>\n"
-#: src/readelf.c:11013
+#: src/readelf.c:11186
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %#<PRIx32>\n"
-#: src/readelf.c:11020
+#: src/readelf.c:11193
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñимволу: %#<PRIx32>\n"
-#: src/readelf.c:11027
+#: src/readelf.c:11200
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n"
-#: src/readelf.c:11041
+#: src/readelf.c:11214
#, c-format
msgid ""
"\n"
@@ -6234,7 +6283,7 @@ msgstr ""
"\n"
" СпиÑок CU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:11066
+#: src/readelf.c:11239
#, c-format
msgid ""
"\n"
@@ -6243,7 +6292,7 @@ msgstr ""
"\n"
" СпиÑок TU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:11095
+#: src/readelf.c:11268
#, c-format
msgid ""
"\n"
@@ -6252,7 +6301,7 @@ msgstr ""
"\n"
" СпиÑок Ð°Ð´Ñ€ÐµÑ Ð·Ñ– зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:11127
+#: src/readelf.c:11300
#, c-format
msgid ""
"\n"
@@ -6261,18 +6310,18 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n"
-#: src/readelf.c:11265
+#: src/readelf.c:11438
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор контекÑту зневаджуваннÑ: %s"
-#: src/readelf.c:11633 src/readelf.c:12260 src/readelf.c:12371
-#: src/readelf.c:12429
+#: src/readelf.c:11804 src/readelf.c:12431 src/readelf.c:12541
+#: src/readelf.c:12598
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані запиÑу Ñдра: %s"
-#: src/readelf.c:11996
+#: src/readelf.c:12168
#, c-format
msgid ""
"\n"
@@ -6281,21 +6330,21 @@ msgstr ""
"\n"
"%*s... <повторюєтьÑÑ %u разів> ..."
-#: src/readelf.c:12508
+#: src/readelf.c:12677
msgid " Owner Data size Type\n"
msgstr " ВлаÑник Розм. даних Тип\n"
-#: src/readelf.c:12536
+#: src/readelf.c:12705
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12588
+#: src/readelf.c:12757
#, c-format
msgid "cannot get content of note: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ нотатки: %s"
-#: src/readelf.c:12622
+#: src/readelf.c:12790
#, c-format
msgid ""
"\n"
@@ -6305,7 +6354,7 @@ msgstr ""
"Розділ запиÑів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12645
+#: src/readelf.c:12813
#, c-format
msgid ""
"\n"
@@ -6314,7 +6363,7 @@ msgstr ""
"\n"
"Сегмент запиÑів з %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12692
+#: src/readelf.c:12860
#, c-format
msgid ""
"\n"
@@ -6323,12 +6372,12 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12719 src/readelf.c:12770
+#: src/readelf.c:12887 src/readelf.c:12938
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zu] «%s»: %s"
-#: src/readelf.c:12724
+#: src/readelf.c:12892
#, c-format
msgid ""
"\n"
@@ -6337,7 +6386,7 @@ msgstr ""
"\n"
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12729
+#: src/readelf.c:12897
#, c-format
msgid ""
"\n"
@@ -6348,7 +6397,7 @@ msgstr ""
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів (%zd неÑтиÑнено) за "
"зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12743
+#: src/readelf.c:12911
#, c-format
msgid ""
"\n"
@@ -6357,7 +6406,7 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ñ€Ñдків Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12775
+#: src/readelf.c:12943
#, c-format
msgid ""
"\n"
@@ -6366,7 +6415,7 @@ msgstr ""
"\n"
"Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12780
+#: src/readelf.c:12948
#, c-format
msgid ""
"\n"
@@ -6377,7 +6426,7 @@ msgstr ""
"РÑдок розділу [%zu] «%s» міÑтить %<PRIu64> байти (%zd неÑтиÑнено) на "
"зміщенні %#0<PRIx64>:\n"
-#: src/readelf.c:12829
+#: src/readelf.c:12996
#, c-format
msgid ""
"\n"
@@ -6386,7 +6435,7 @@ msgstr ""
"\n"
"розділу [%lu] не Ñ–Ñнує"
-#: src/readelf.c:12859
+#: src/readelf.c:13026
#, c-format
msgid ""
"\n"
@@ -6395,12 +6444,12 @@ msgstr ""
"\n"
"розділу «%s» не Ñ–Ñнує"
-#: src/readelf.c:12916
+#: src/readelf.c:13081
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ покажчик Ñимволів архіву «%s»: %s"
-#: src/readelf.c:12919
+#: src/readelf.c:13084
#, c-format
msgid ""
"\n"
@@ -6409,7 +6458,7 @@ msgstr ""
"\n"
"У архіві «%s» немає покажчика Ñимволів\n"
-#: src/readelf.c:12923
+#: src/readelf.c:13088
#, c-format
msgid ""
"\n"
@@ -6418,17 +6467,17 @@ msgstr ""
"\n"
"Покажчик архіву «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:12941
+#: src/readelf.c:13106
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ елемент за зміщеннÑм %zu у «%s»: %s"
-#: src/readelf.c:12946
+#: src/readelf.c:13111
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Елемент архіву «%s» міÑтить:\n"
-#: src/size.c:56
+#: src/size.c:55
msgid ""
"Use the output format FORMAT. FORMAT can be `bsd' or `sysv'. The default "
"is `bsd'"
@@ -6436,123 +6485,122 @@ msgstr ""
"ВикориÑтовувати формат виводу ФОРМÐТ. ФОРМÐТом може бути «bsd» або «sysv». "
"Типовим Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«bsd»"
-#: src/size.c:58
+#: src/size.c:57
msgid "Same as `--format=sysv'"
msgstr "Те Ñаме, що Ñ– «--format=sysv»"
-#: src/size.c:59
+#: src/size.c:58
msgid "Same as `--format=bsd'"
msgstr "Те Ñаме, що Ñ– «--format=bsd»"
-#: src/size.c:62
+#: src/size.c:61
msgid "Same as `--radix=10'"
msgstr "Те Ñаме, що Ñ– «--radix=10»"
-#: src/size.c:63
+#: src/size.c:62
msgid "Same as `--radix=8'"
msgstr "Те Ñаме, що Ñ– «--radix=8»"
-#: src/size.c:64
+#: src/size.c:63
msgid "Same as `--radix=16'"
msgstr "Те Ñаме, що Ñ– «--radix=16»"
-#: src/size.c:66
+#: src/size.c:65
msgid "Similar to `--format=sysv' output but in one line"
msgstr "Вивід даних у форматі, подібному до «--format=sysv», але у один Ñ€Ñдок"
-#: src/size.c:70
+#: src/size.c:69
msgid "Print size and permission flags for loadable segments"
msgstr ""
"ВивеÑти розмір Ñ– прапорці прав доÑтупу Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ "
"Ñегментів"
-#: src/size.c:71
+#: src/size.c:70
msgid "Display the total sizes (bsd only)"
msgstr "Показувати загальні розміри (лише bsd)"
#. Short description of program.
-#: src/size.c:76
+#: src/size.c:75
msgid "List section sizes of FILEs (a.out by default)."
msgstr "Показати розміри розділів ФÐЙЛів (типово a.out)."
-#: src/size.c:240
+#: src/size.c:239
#, c-format
msgid "Invalid format: %s"
msgstr "Ðекоректний формат: %s"
-#: src/size.c:251
+#: src/size.c:250
#, c-format
msgid "Invalid radix: %s"
msgstr "Ðекоректна оÑнова чиÑленнÑ: %s"
-#: src/size.c:310
+#: src/size.c:309
#, c-format
msgid "%s: file format not recognized"
msgstr "%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла"
-#: src/size.c:328
+#: src/size.c:327
msgctxt "bsd"
msgid "text"
msgstr ""
-#: src/size.c:329
+#: src/size.c:328
msgctxt "bsd"
msgid "data"
msgstr ""
-#: src/size.c:330
+#: src/size.c:329
msgctxt "bsd"
msgid "bss"
msgstr ""
-#: src/size.c:331
+#: src/size.c:330
msgctxt "bsd"
msgid "dec"
msgstr ""
-#: src/size.c:332
+#: src/size.c:331
msgctxt "bsd"
msgid "hex"
msgstr ""
-#: src/size.c:333
+#: src/size.c:332
msgctxt "bsd"
msgid "filename"
msgstr ""
-#: src/size.c:418 src/size.c:560
+#: src/size.c:416 src/size.c:557
#, c-format
msgid " (ex %s)"
msgstr " (прикл. %s)"
-#: src/size.c:420
+#: src/size.c:418
#, fuzzy
#| msgid "invalid section"
msgctxt "sysv"
msgid "section"
msgstr "некоректний розділ"
-#: src/size.c:421
+#: src/size.c:419
msgctxt "sysv"
msgid "size"
msgstr ""
-#: src/size.c:422
+#: src/size.c:420
msgctxt "sysv"
msgid "addr"
msgstr ""
-#: src/size.c:451 src/size.c:454 src/size.c:457
+#: src/size.c:449 src/size.c:452 src/size.c:455
msgctxt "sysv"
msgid "Total"
msgstr ""
-#: src/size.c:482
-#, c-format
+#: src/size.c:479
msgid "cannot get section header"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу"
-#: src/size.c:585
+#: src/size.c:582
msgid "(TOTALS)\n"
msgstr "(ЗÐГÐЛОМ)\n"
@@ -6691,21 +6739,21 @@ msgstr ""
msgid "Couldn't show any frames."
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð²ÐµÑти жодного вікна."
-#: src/strings.c:65
+#: src/strings.c:64
msgid "Output Selection:"
msgstr "Вибір виводу:"
-#: src/strings.c:66
+#: src/strings.c:65
msgid "Scan entire file, not only loaded sections"
msgstr "Шукати у вÑьому файлі, а не лише у завантажених розділах"
-#: src/strings.c:68
+#: src/strings.c:67
msgid "Only NUL-terminated sequences of MIN-LEN characters or more are printed"
msgstr ""
"Буде виведено лише поÑлідовноÑÑ‚Ñ– з не менше, ніж MIN-LEN Ñимволів, що "
"завершуютьÑÑ Ð½Ð° NUL"
-#: src/strings.c:69
+#: src/strings.c:68
msgid ""
"Select character size and endianness: s = 7-bit, S = 8-bit, {b,l} = 16-bit, "
"{B,L} = 32-bit"
@@ -6713,78 +6761,74 @@ msgstr ""
"Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð½Ð¾ÑÑ‚Ñ– та порÑдку бітів Ñимволів: s = 7-бітові, S = 8-"
"бітові, {b,l} = 16-бітові, {B,L} = 32-бітові"
-#: src/strings.c:73
+#: src/strings.c:72
msgid "Print name of the file before each string."
msgstr "Виводити назву файла перед кожним Ñ€Ñдком."
-#: src/strings.c:75
+#: src/strings.c:74
msgid "Print location of the string in base 8, 10, or 16 respectively."
msgstr "Виводити адреÑу Ñ€Ñдка за оÑновами 8, 10 та 16, відповідно."
-#: src/strings.c:76
+#: src/strings.c:75
msgid "Alias for --radix=o"
msgstr "Замінник --radix=o"
#. Short description of program.
-#: src/strings.c:83
+#: src/strings.c:82
msgid "Print the strings of printable characters in files."
msgstr "ВивеÑти Ñ€Ñдки файлів з Ñимволів, придатних Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ."
-#: src/strings.c:256 src/strings.c:291
+#: src/strings.c:255 src/strings.c:290
#, c-format
msgid "invalid value '%s' for %s parameter"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%s» параметра %s"
-#: src/strings.c:302
-#, c-format
+#: src/strings.c:300
msgid "invalid minimum length of matched string size"
msgstr "некоректна мінімальна довжина розмірноÑÑ‚Ñ– Ñ€Ñдка Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½ÑннÑ"
-#: src/strings.c:585
-#, c-format
+#: src/strings.c:583
msgid "lseek failed"
msgstr "помилка lseek"
-#: src/strings.c:602 src/strings.c:666
-#, c-format
+#: src/strings.c:600 src/strings.c:664
msgid "re-mmap failed"
msgstr "помилка повторного викориÑÑ‚Ð°Ð½Ð½Ñ mmap"
-#: src/strings.c:639
-#, c-format
+#: src/strings.c:637
msgid "mprotect failed"
msgstr "помилка mprotect"
-#: src/strings.c:728
+#: src/strings.c:726
#, c-format
msgid "Skipping section %zd '%s' data outside file"
msgstr "ПропуÑкаємо дані %zd «%s» поза файлом"
-#: src/strip.c:71
+#: src/strip.c:70
msgid "Place stripped output into FILE"
msgstr "ВивеÑти дані піÑÐ»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ ФÐЙЛа"
-#: src/strip.c:72
+#: src/strip.c:71
msgid "Extract the removed sections into FILE"
msgstr "Видобути вилучені розділи до ФÐЙЛа"
-#: src/strip.c:73
+#: src/strip.c:72
msgid "Embed name FILE instead of -f argument"
msgstr "Вбудувати назву ФÐЙЛа заміÑÑ‚ÑŒ аргументу -f"
-#: src/strip.c:77
+#: src/strip.c:76
msgid "Remove all debugging symbols"
msgstr "Вилучити вÑÑ– Ñимволи зневаджуваннÑ"
-#: src/strip.c:81
+#: src/strip.c:80
msgid "Remove section headers (not recommended)"
msgstr "Вилучити заголовки розділів (не рекомендовано)"
-#: src/strip.c:83
+#: src/strip.c:82
msgid "Copy modified/access timestamps to the output"
msgstr "Скопіювати чаÑові позначки зміни/доÑтупу до виведених даних"
-#: src/strip.c:85
+#: src/strip.c:84
msgid ""
"Resolve all trivial relocations between debug sections if the removed "
"sections are placed in a debug file (only relevant for ET_REL files, "
@@ -6794,7 +6838,7 @@ msgstr ""
"вилучені розділи було розташовано у діагноÑтичному файлі (ÑтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ "
"файлів ET_REL, ÑкаÑувати дію неможливо, потребує параметра -f)"
-#: src/strip.c:87
+#: src/strip.c:86
msgid ""
"Similar to --reloc-debug-sections, but resolve all trivial relocations "
"between debug sections in place. No other stripping is performed (operation "
@@ -6806,11 +6850,11 @@ msgstr ""
"виконуєтьÑÑ (дію неможливо ÑкаÑувати, параметр неÑуміÑний із -f, -g, --"
"remove-comment та --remove-section)"
-#: src/strip.c:89
+#: src/strip.c:88
msgid "Remove .comment section"
msgstr "Вилучити розділ .comment"
-#: src/strip.c:90
+#: src/strip.c:89
msgid ""
"Remove the named section. SECTION is an extended wildcard pattern. May be "
"given more than once. Only non-allocated sections can be removed."
@@ -6819,7 +6863,7 @@ msgstr ""
"замінниками. Можна вказувати декілька розділів. Може бути вилучено лише "
"нерозміщені у пам'ÑÑ‚Ñ– розділи."
-#: src/strip.c:91
+#: src/strip.c:90
msgid ""
"Keep the named section. SECTION is an extended wildcard pattern. May be "
"given more than once."
@@ -6828,17 +6872,15 @@ msgstr ""
"замінниками. Можна вказувати декілька розділів."
#. Short description of program.
-#: src/strip.c:98
+#: src/strip.c:97
msgid "Discard symbols from object files."
msgstr "Відкинути Ñимволи з об’єктних файлів"
-#: src/strip.c:247
-#, c-format
+#: src/strip.c:245
msgid "--reloc-debug-sections used without -f"
msgstr "--reloc-debug-sections викориÑтано без -f"
-#: src/strip.c:253
-#, c-format
+#: src/strip.c:251
msgid ""
"--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --"
"remove-section"
@@ -6846,43 +6888,41 @@ msgstr ""
"--reloc-debug-sections-only Ñ” неÑуміÑним із -f, -g, --remove-comment та --"
"remove-section"
-#: src/strip.c:267
-#, c-format
+#: src/strip.c:265
msgid "Only one input file allowed together with '-o' and '-f'"
msgstr ""
"Разом з «-o» або «-f» можна викориÑтовувати лише один файл вхідних даних"
-#: src/strip.c:290
+#: src/strip.c:287
#, c-format
msgid "-f option specified twice"
msgstr "параметр -f вказано двічі"
-#: src/strip.c:299
+#: src/strip.c:296
#, c-format
msgid "-F option specified twice"
msgstr "параметр -F вказано двічі"
-#: src/strip.c:362
+#: src/strip.c:359
#, c-format
msgid "cannot both keep and remove .comment section"
msgstr "неможливо одночаÑно зберегти Ñ– вилучити розділ .comment"
-#: src/strip.c:481
-#, c-format
+#: src/strip.c:478
msgid "bad relocation"
msgstr "помилкове переÑуваннÑ"
-#: src/strip.c:751 src/strip.c:775
+#: src/strip.c:756 src/strip.c:780
#, c-format
msgid "cannot stat input file '%s'"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла «%s» за допомогою stat"
-#: src/strip.c:765
+#: src/strip.c:770
#, c-format
msgid "while opening '%s'"
msgstr "під Ñ‡Ð°Ñ Ñпроби Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
-#: src/strip.c:803
+#: src/strip.c:808
#, c-format
msgid "%s: cannot use -o or -f when stripping archive"
msgstr ""
@@ -6895,77 +6935,76 @@ msgstr ""
#. result = handle_ar (fd, elf, NULL, fname,
#. preserve_dates ? tv : NULL);
#.
-#: src/strip.c:815
+#: src/strip.c:820
#, c-format
msgid "%s: no support for stripping archive"
msgstr "%s: підтримки Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ вміÑту з архіву не передбачено"
-#: src/strip.c:1052
+#: src/strip.c:1057
#, c-format
msgid "cannot open EBL backend"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ канал Ñервера EBL"
-#: src/strip.c:1097
-#, c-format
+#: src/strip.c:1101
msgid "cannot get number of phdrs"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ phdr"
-#: src/strip.c:1111 src/strip.c:1154
+#: src/strip.c:1115 src/strip.c:1158
#, c-format
msgid "cannot create new ehdr for file '%s': %s"
msgstr "не вдалоÑÑ Ñтворити ehdr Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° «%s»: %s"
-#: src/strip.c:1121 src/strip.c:1164
+#: src/strip.c:1125 src/strip.c:1168
#, c-format
msgid "cannot create new phdr for file '%s': %s"
msgstr "не вдалоÑÑ Ñтворити phdr Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° «%s»: %s"
-#: src/strip.c:1244
+#: src/strip.c:1248
#, c-format
msgid "illformed file '%s'"
msgstr "помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° «%s»"
-#: src/strip.c:1254
+#: src/strip.c:1258
#, c-format
msgid "Cannot remove allocated section '%s'"
msgstr "Ðеможливо вилучити розміщений у пам'ÑÑ‚Ñ– розділ «%s»"
-#: src/strip.c:1263
+#: src/strip.c:1267
#, c-format
msgid "Cannot both keep and remove section '%s'"
msgstr "Ðеможливо одночаÑно зберегти та вилучити розділ «%s»"
-#: src/strip.c:1628 src/strip.c:1743
+#: src/strip.c:1631 src/strip.c:1746
#, c-format
msgid "while generating output file: %s"
msgstr "під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° з виведеними даними: %s"
-#: src/strip.c:1692
+#: src/strip.c:1695
#, c-format
msgid "%s: error while updating ELF header: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s"
-#: src/strip.c:1701
+#: src/strip.c:1704
#, c-format
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ shdrstrndx: %s"
-#: src/strip.c:1709 src/strip.c:2554
+#: src/strip.c:1712 src/strip.c:2553
#, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ shdrstrndx: %s"
-#: src/strip.c:1726
+#: src/strip.c:1729
#, c-format
msgid "while preparing output for '%s'"
msgstr "під Ñ‡Ð°Ñ Ð¿Ñ€Ð¸Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… даних Ð´Ð»Ñ Â«%s»"
-#: src/strip.c:1788 src/strip.c:1851
+#: src/strip.c:1790 src/strip.c:1852
#, c-format
msgid "while create section header section: %s"
msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ заголовка розділу: %s"
-#: src/strip.c:1797
+#: src/strip.c:1799
#, c-format
msgid "cannot allocate section data: %s"
msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити дані розділу: %s"
@@ -6975,388 +7014,385 @@ msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити дані розділу: %s"
msgid "while create section header string table: %s"
msgstr "під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків заголовка розділу: %s"
-#: src/strip.c:1870
-#, c-format
+#: src/strip.c:1869
msgid "no memory to create section header string table"
msgstr "недоÑтатньо пам'ÑÑ‚Ñ– Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñдків заголовка розділу"
-#: src/strip.c:2083
+#: src/strip.c:2082
#, c-format
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
"Ðеможливо вилучити Ñимвол [%zd] з розміщеної у пам'ÑÑ‚Ñ– таблиці Ñимволів [%zd]"
-#: src/strip.c:2470 src/strip.c:2578
+#: src/strip.c:2469 src/strip.c:2577
#, c-format
msgid "while writing '%s': %s"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу «%s»: %s"
-#: src/strip.c:2481
+#: src/strip.c:2480
#, c-format
msgid "while creating '%s'"
msgstr "під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Â«%s»"
-#: src/strip.c:2504
+#: src/strip.c:2503
#, c-format
msgid "while computing checksum for debug information"
msgstr "під Ñ‡Ð°Ñ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми Ð´Ð»Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичних даних"
-#: src/strip.c:2545
+#: src/strip.c:2544
#, c-format
msgid "%s: error while creating ELF header: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s"
-#: src/strip.c:2563
+#: src/strip.c:2562
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s"
-#: src/strip.c:2603 src/strip.c:2623
+#: src/strip.c:2602 src/strip.c:2622
#, c-format
msgid "while writing '%s'"
msgstr "під Ñ‡Ð°Ñ Ñпроби запиÑу «%s»"
-#: src/strip.c:2660 src/strip.c:2667
+#: src/strip.c:2659 src/strip.c:2666
#, c-format
msgid "error while finishing '%s': %s"
msgstr "помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Â«%s»: %s"
-#: src/strip.c:2684 src/strip.c:2760
+#: src/strip.c:2683 src/strip.c:2759
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "не вдалоÑÑ Ð²Ñтановити права доÑтупу та дату зміни «%s»"
-#: src/unstrip.c:66
+#: src/unstrip.c:65
msgid "Match MODULE against file names, not module names"
msgstr ""
"Ð’Ñтановити відповідніÑÑ‚ÑŒ МОДУЛЯ назвам файлів, а не назвам модулів names"
-#: src/unstrip.c:67
+#: src/unstrip.c:66
msgid "Silently skip unfindable files"
msgstr "ПропуÑтити незнайдені файли без додаткових повідомлень"
-#: src/unstrip.c:70
+#: src/unstrip.c:69
msgid "Place output into FILE"
msgstr "ВивеÑти дані у ФÐЙЛ"
-#: src/unstrip.c:72
+#: src/unstrip.c:71
msgid "Create multiple output files under DIRECTORY"
msgstr "Створити декілька файлів виведених даних у КÐТÐЛОЗІ"
-#: src/unstrip.c:73
+#: src/unstrip.c:72
msgid "Use module rather than file names"
msgstr "ВикориÑтовувати назви модулів, а не файлів"
-#: src/unstrip.c:75
+#: src/unstrip.c:74
msgid "Create output for modules that have no separate debug information"
msgstr ""
"ВивеÑти дані Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð², Ñкі не міÑÑ‚ÑÑ‚ÑŒ окремих діагноÑтичних відомоÑтей"
-#: src/unstrip.c:78
+#: src/unstrip.c:77
msgid "Apply relocations to section contents in ET_REL files"
msgstr "ЗаÑтоÑувати переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ вміÑту розділів у файлах ET_REL"
-#: src/unstrip.c:80
+#: src/unstrip.c:79
msgid "Only list module and file names, build IDs"
msgstr "ВивеÑти лише ÑпиÑок назв модулів, файлів, побудувати ідентифікатори"
-#: src/unstrip.c:82
+#: src/unstrip.c:81
msgid "Force combining files even if some ELF headers don't seem to match"
msgstr ""
"ПримуÑово поєднати файли, навіть Ñкщо буде вÑтановлено невідповідніÑÑ‚ÑŒ "
"ÑкихоÑÑŒ із заголовків ELF"
-#: src/unstrip.c:126
+#: src/unstrip.c:125
#, c-format
msgid "-d option specified twice"
msgstr "параметр -d вказано двічі"
-#: src/unstrip.c:161
+#: src/unstrip.c:160
#, c-format
msgid "only one of -o or -d allowed"
msgstr "можна викориÑтовувати лише один з параметрів: -o або -d"
-#: src/unstrip.c:170
+#: src/unstrip.c:169
#, c-format
msgid "-n cannot be used with explicit files or -o or -d"
msgstr ""
"-n не можна викориÑтовувати з файлами, заданими Ñвно, або параметрами -o Ñ– -d"
-#: src/unstrip.c:185
+#: src/unstrip.c:184
#, c-format
msgid "output directory '%s'"
msgstr "каталог Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… «%s»"
-#: src/unstrip.c:194
+#: src/unstrip.c:193
#, c-format
msgid "exactly two file arguments are required"
msgstr "Ñк аргументи має бути вказано точно два файла"
-#: src/unstrip.c:200
+#: src/unstrip.c:199
#, c-format
msgid "-m, -a, -R, and -i options not allowed with explicit files"
msgstr ""
"Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², заданих Ñвно, не можна викориÑтовувати параметри -m, -a, -R Ñ– -i"
-#: src/unstrip.c:213
+#: src/unstrip.c:212
#, c-format
msgid "-o or -d is required when using implicit files"
msgstr ""
"Ñкщо викориÑтовуютьÑÑ Ñ„Ð°Ð¹Ð»Ð¸, задані неÑвно, Ñлід додавати параметр -o або -d"
-#: src/unstrip.c:236
+#: src/unstrip.c:235
#, c-format
msgid "cannot create ELF header: %s"
msgstr "не вдалоÑÑ Ñтворити заголовок ELF: %s"
-#: src/unstrip.c:240
+#: src/unstrip.c:239
#, c-format
msgid "cannot get shdrstrndx:%s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ shdrstrndx:%s"
-#: src/unstrip.c:244 src/unstrip.c:2088
+#: src/unstrip.c:243 src/unstrip.c:2085
#, c-format
msgid "cannot get ELF header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок ELF: %s"
-#: src/unstrip.c:254
+#: src/unstrip.c:253
#, c-format
msgid "cannot get new zero section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ новий нульовий розділ: %s"
-#: src/unstrip.c:257
+#: src/unstrip.c:256
#, c-format
msgid "cannot update new zero section: %s"
msgstr "неможливо оновити новий нульовий розділ: %s"
-#: src/unstrip.c:261
+#: src/unstrip.c:260
#, c-format
msgid "cannot copy ELF header: %s"
msgstr "не вдалоÑÑ Ñкопіювати заголовок ELF: %s"
-#: src/unstrip.c:265 src/unstrip.c:2106 src/unstrip.c:2149
+#: src/unstrip.c:264 src/unstrip.c:2103 src/unstrip.c:2146
#, c-format
msgid "cannot get number of program headers: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/unstrip.c:270 src/unstrip.c:2110
+#: src/unstrip.c:269 src/unstrip.c:2107
#, c-format
msgid "cannot create program headers: %s"
msgstr "не вдалоÑÑ Ñтворити заголовки програми: %s"
-#: src/unstrip.c:276
+#: src/unstrip.c:275
#, c-format
msgid "cannot copy program header: %s"
msgstr "не вдалоÑÑ Ñкопіювати заголовок програми: %s"
-#: src/unstrip.c:286
+#: src/unstrip.c:285
#, c-format
msgid "cannot copy section header: %s"
msgstr "не вдалоÑÑ Ñкопіювати заголовок розділу: %s"
-#: src/unstrip.c:289 src/unstrip.c:1710
+#: src/unstrip.c:288 src/unstrip.c:1707
#, c-format
msgid "cannot get section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/unstrip.c:291 src/unstrip.c:1712
+#: src/unstrip.c:290 src/unstrip.c:1709
#, c-format
msgid "cannot copy section data: %s"
msgstr "не вдалоÑÑ Ñкопіювати дані розділу: %s"
-#: src/unstrip.c:319
+#: src/unstrip.c:318
#, c-format
msgid "cannot create directory '%s'"
msgstr "не вдалоÑÑ Ñтворити каталог «%s»"
-#: src/unstrip.c:393 src/unstrip.c:659 src/unstrip.c:693 src/unstrip.c:861
-#: src/unstrip.c:1752
+#: src/unstrip.c:392 src/unstrip.c:657 src/unstrip.c:691 src/unstrip.c:859
+#: src/unstrip.c:1749
#, c-format
msgid "cannot get symbol table entry: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñимволів: %s"
-#: src/unstrip.c:409 src/unstrip.c:662 src/unstrip.c:683 src/unstrip.c:696
-#: src/unstrip.c:1773 src/unstrip.c:1968 src/unstrip.c:1992
+#: src/unstrip.c:408 src/unstrip.c:660 src/unstrip.c:681 src/unstrip.c:694
+#: src/unstrip.c:1770 src/unstrip.c:1965 src/unstrip.c:1989
#, c-format
msgid "cannot update symbol table: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ таблицю Ñимволів: %s"
-#: src/unstrip.c:419
+#: src/unstrip.c:418
#, c-format
msgid "cannot update section header: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок розділу: %s"
-#: src/unstrip.c:465
+#: src/unstrip.c:464
#, c-format
msgid "gelf_getrel failed: %s"
msgstr ""
-#: src/unstrip.c:468 src/unstrip.c:483
+#: src/unstrip.c:467 src/unstrip.c:482
#, c-format
msgid "cannot update relocation: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ переÑуваннÑ: %s"
-#: src/unstrip.c:480
+#: src/unstrip.c:479
#, c-format
msgid "gelf_getrela failed: %s"
msgstr ""
-#: src/unstrip.c:582
+#: src/unstrip.c:580
#, c-format
msgid "cannot get symbol version: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ верÑÑ–ÑŽ Ñимволу: %s"
-#: src/unstrip.c:595
+#: src/unstrip.c:593
#, c-format
msgid "unexpected section type in [%zu] with sh_link to symtab"
msgstr "неочікуваний тип розділу у [%zu] з поÑиланнÑм sh_link на symtab"
-#: src/unstrip.c:850
+#: src/unstrip.c:848
#, c-format
msgid "cannot get symbol section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу Ñимволів: %s"
-#: src/unstrip.c:852
+#: src/unstrip.c:850
#, c-format
msgid "cannot get string section data: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу Ñ€Ñдків: %s"
-#: src/unstrip.c:869
+#: src/unstrip.c:867
#, c-format
msgid "invalid string offset in symbol [%zu]"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ñдка у Ñимволі [%zu]"
-#: src/unstrip.c:1027 src/unstrip.c:1435
+#: src/unstrip.c:1025 src/unstrip.c:1433
#, c-format
msgid "cannot read section [%zu] name: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ назву розділу [%zu]: %s"
-#: src/unstrip.c:1042
+#: src/unstrip.c:1040
#, c-format
msgid "bad sh_link for group section: %s"
msgstr "помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ груп: %s"
-#: src/unstrip.c:1048
+#: src/unstrip.c:1046
#, c-format
msgid "couldn't get shdr for group section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ shdr Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ груп: %s"
-#: src/unstrip.c:1053
+#: src/unstrip.c:1051
#, c-format
msgid "bad data for group symbol section: %s"
msgstr "помилкові дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñимволів груп: %s"
-#: src/unstrip.c:1059
+#: src/unstrip.c:1057
#, c-format
msgid "couldn't get symbol for group section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ груп: %s"
-#: src/unstrip.c:1064
+#: src/unstrip.c:1062
#, c-format
msgid "bad symbol name for group section: %s"
msgstr "помилкова назва Ñимволу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ груп: %s"
-#: src/unstrip.c:1075 src/unstrip.c:1556
+#: src/unstrip.c:1073 src/unstrip.c:1553
#, c-format
msgid "cannot find matching section for [%zu] '%s'"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідний розділ Ð´Ð»Ñ [%zu] «%s»"
-#: src/unstrip.c:1120 src/unstrip.c:1139 src/unstrip.c:1177
+#: src/unstrip.c:1118 src/unstrip.c:1137 src/unstrip.c:1175
#, c-format
msgid "cannot read '.gnu.prelink_undo' section: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ «.gnu.prelink_undo»: %s"
-#: src/unstrip.c:1157
+#: src/unstrip.c:1155
#, c-format
msgid "overflow with shnum = %zu in '%s' section"
msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð· shnum = %zu у розділі «%s»"
-#: src/unstrip.c:1168
+#: src/unstrip.c:1166
#, c-format
msgid "invalid contents in '%s' section"
msgstr "некоректний вміÑÑ‚ розділу «%s»"
-#: src/unstrip.c:1339 src/unstrip.c:1355 src/unstrip.c:1636 src/unstrip.c:1927
+#: src/unstrip.c:1337 src/unstrip.c:1353 src/unstrip.c:1633 src/unstrip.c:1924
#, c-format
msgid "cannot add section name to string table: %s"
msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ назву розділу до таблиці Ñ€Ñдків: %s"
-#: src/unstrip.c:1364
+#: src/unstrip.c:1362
#, c-format
msgid "cannot update section header string table data: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ дані заголовка розділу у таблиці Ñ€Ñдків: %s"
-#: src/unstrip.c:1393 src/unstrip.c:1397
+#: src/unstrip.c:1391 src/unstrip.c:1395
#, c-format
msgid "cannot get section header string table section index: %s"
msgstr ""
"не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ заголовка розділу у таблиці Ñ€Ñдків: %s"
-#: src/unstrip.c:1401 src/unstrip.c:1405 src/unstrip.c:1651
+#: src/unstrip.c:1399 src/unstrip.c:1403 src/unstrip.c:1648
#, c-format
msgid "cannot get section count: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/unstrip.c:1408
-#, c-format
+#: src/unstrip.c:1406
msgid "more sections in stripped file than debug file -- arguments reversed?"
msgstr ""
"у очищеному файлі більше розділів ніж у файлі з даними Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ â€” "
"помилковий порÑдок параметрів?"
-#: src/unstrip.c:1412
-#, c-format
+#: src/unstrip.c:1410
msgid "no sections in stripped file"
msgstr "у очищеному файлі немає розділів"
-#: src/unstrip.c:1460 src/unstrip.c:1571
+#: src/unstrip.c:1458 src/unstrip.c:1568
#, c-format
msgid "cannot read section header string table: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ таблицю Ñ€Ñдків заголовка розділу: %s"
-#: src/unstrip.c:1630
+#: src/unstrip.c:1627
#, c-format
msgid "cannot add new section: %s"
msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ новий розділ: %s"
-#: src/unstrip.c:1760
+#: src/unstrip.c:1757
#, c-format
msgid "symbol [%zu] has invalid section index"
msgstr "Ñимвол [%zu] має некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
-#: src/unstrip.c:1792
+#: src/unstrip.c:1789
#, c-format
msgid "group has invalid section index [%zd]"
msgstr "група міÑтить некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zd]"
-#: src/unstrip.c:2067
+#: src/unstrip.c:2064
#, c-format
msgid "cannot read section data: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані розділу: %s"
-#: src/unstrip.c:2096
+#: src/unstrip.c:2093
#, c-format
msgid "cannot update ELF header: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок ELF: %s"
-#: src/unstrip.c:2120
+#: src/unstrip.c:2117
#, c-format
msgid "cannot update program header: %s"
msgstr "не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ заголовок програми: %s"
-#: src/unstrip.c:2125 src/unstrip.c:2208
+#: src/unstrip.c:2122 src/unstrip.c:2205
#, c-format
msgid "cannot write output file: %s"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл виведених даних: %s"
-#: src/unstrip.c:2176
+#: src/unstrip.c:2173
#, c-format
msgid "DWARF data not adjusted for prelinking bias; consider prelink -u"
msgstr ""
"Дані DWARF не Ñкориговано відповідно до Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ компонуваннÑм; "
"Ñпробуйте виправити це командою prelink -u"
-#: src/unstrip.c:2179
+#: src/unstrip.c:2176
#, c-format
msgid ""
"DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"
@@ -7364,76 +7400,74 @@ msgstr ""
"Дані DWARF у «%s» не Ñкориговано відповідно до Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´ "
"компонуваннÑм; Ñпробуйте виправити це командою prelink -u"
-#: src/unstrip.c:2199 src/unstrip.c:2251 src/unstrip.c:2263 src/unstrip.c:2353
+#: src/unstrip.c:2196 src/unstrip.c:2248 src/unstrip.c:2260 src/unstrip.c:2350
#, c-format
msgid "cannot create ELF descriptor: %s"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор ELF: %s"
-#: src/unstrip.c:2237
+#: src/unstrip.c:2234
msgid "WARNING: "
msgstr "УВÐГÐ: "
-#: src/unstrip.c:2239
+#: src/unstrip.c:2236
msgid ", use --force"
msgstr ", ÑкориÑтайтеÑÑ --force"
-#: src/unstrip.c:2267
+#: src/unstrip.c:2264
msgid "ELF header identification (e_ident) different"
msgstr "Різні ідентифікатори заголовків ELF (e_ident)"
-#: src/unstrip.c:2271
+#: src/unstrip.c:2268
msgid "ELF header type (e_type) different"
msgstr "Різні типи заголовків ELF (e_type)"
-#: src/unstrip.c:2275
+#: src/unstrip.c:2272
msgid "ELF header machine type (e_machine) different"
msgstr "Різні типи архітектур заголовків ELF (e_machine)"
-#: src/unstrip.c:2279
+#: src/unstrip.c:2276
msgid "stripped program header (e_phnum) smaller than unstripped"
msgstr "очищений заголовок програми (e_phnum) є меншим за неочищений"
-#: src/unstrip.c:2310
+#: src/unstrip.c:2307
#, c-format
msgid "cannot find stripped file for module '%s': %s"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очищений файл Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2314
+#: src/unstrip.c:2311
#, c-format
msgid "cannot open stripped file '%s' for module '%s': %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ очищений файл «%s» Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2329
+#: src/unstrip.c:2326
#, c-format
msgid "cannot find debug file for module '%s': %s"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл діагноÑтичних даних Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2333
+#: src/unstrip.c:2330
#, c-format
msgid "cannot open debug file '%s' for module '%s': %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл діагноÑтичних даних «%s» Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2346
+#: src/unstrip.c:2343
#, c-format
msgid "module '%s' file '%s' is not stripped"
msgstr "у модулі «%s» файл «%s» не очищено strip"
-#: src/unstrip.c:2377
+#: src/unstrip.c:2374
#, c-format
msgid "cannot cache section addresses for module '%s': %s"
msgstr "не вдалоÑÑ ÐºÐµÑˆÑƒÐ²Ð°Ñ‚Ð¸ адреÑи розділів Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Â«%s»: %s"
-#: src/unstrip.c:2505
-#, c-format
+#: src/unstrip.c:2502
msgid "no matching modules found"
msgstr "відповідних модулів не виÑвлено"
-#: src/unstrip.c:2515
-#, c-format
+#: src/unstrip.c:2512
msgid "matched more than one module"
msgstr "вÑтановлено відповідніÑÑ‚ÑŒ декількох модулів"
-#: src/unstrip.c:2560
+#: src/unstrip.c:2557
msgid ""
"STRIPPED-FILE DEBUG-FILE\n"
"[MODULE...]"
@@ -7441,7 +7475,7 @@ msgstr ""
"ОЧИЩЕÐИЙ-ФÐЙЛ ФÐЙЛ-DEBUG\n"
"[МОДУЛЬ...]"
-#: src/unstrip.c:2561
+#: src/unstrip.c:2558
msgid ""
"Combine stripped files with separate symbols and debug information.\n"
"\n"
@@ -7514,6 +7548,8 @@ msgid ""
"executable PATH\n"
"source BUILDID /FILENAME\n"
"source PATH /FILENAME\n"
+"section BUILDID SECTION-NAME\n"
+"section PATH SECTION-NAME\n"
msgstr ""
#: tests/backtrace.c:483
diff --git a/src/ChangeLog b/src/ChangeLog
index 05b2522d..d3399a5c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,103 @@
+2022-10-28 Arsen Arsenović <arsen@aarsen.me>
+
+ * readelf.c (options): Add Binutils-style --syms alias.
+
+2022-10-19 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (dwarf_loc_list_encoding_string): Handle
+ DW_LLE_GNU_view_pair.
+ (print_debug_loclists_section): Likewise.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * arlib.h: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
+
+2022-08-28 Mark Wielaard <mark@klomp.org>
+
+ * ar.c (do_oper_extract): Predecrement instance before compare
+ to zero.
+ (do_oper_delete): Likewise.
+
+2022-08-10 Andreas Schwab <schwab@suse.de>
+
+ * readelf.c (print_attributes): Also handle SHT_RISCV_ATTRIBUTES.
+
+2022-08-09 Andreas Schwab <schwab@suse.de>
+
+ * elflint.c (check_program_header): Don't complain about p_filesz
+ > p_memsz if p_memsz is zero and p_type is PT_RISCV_ATTRIBUTES.
+
+2022-08-01 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (handle_dynamic): Pass start of buffer to memrchr.
+ Use dyn->d_un.d_val for offsets instead of d_ptr.
+
+2022-04-28 Di Chen <dichen@redhat.com>
+
+ * readelf.c (options): Add use-dynamic 'D'.
+ (use_dynamic_segment): New static bool.
+ (enum dyn_idx): New.
+ (get_dynscn_strtab): New function.
+ (get_dynscn_addrs): Likewise.
+ (find_offsets): Likewise.
+ (parse_opt): Handle 'D'.
+ (handle_dynamic): New argument phdr. Get data either through the shdr
+ or phdr. Print segment info when use_dynamic_segment. Use
+ get_dynscn_strtab. Get library name and paths through strtab_data.
+
+2022-05-09 Mark Wielaard <mark@klomp.org>
+
+ * strip.c (remove_debug_relocations): Check gelf_getshdr, gelf_getrela,
+ gelf_getrel and gelf_getsymshndx don't return NULL.
+
+2022-05-10 Mark Wielaard <mark@klomp.org>
+
+ * elfcompress.c (process_file): Sanity check shstrtab_name,
+ shstrtab_newname and symstrents are only set once.
+
+2022-04-24 Mark Wielaard <mark@klomp.org>
+
+ * elfclassify.c (main): Use classify_flag_no_stdin for no-std in options.
+
+2022-04-19 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (get_dyn_ents): Define dyn_mem outside the while loop.
+
+2022-03-01 Di Chen <dichen@redhat.com>
+
+ * readelf.c (get_dyn_ents): New function.
+ (handle_dynamic): Use get_dyn_ents to get the actual number of
+ Dynamic entries in the section.
+
+2022-03-27 Mark Wielaard <mark@klomp.org>
+
+ * addr2line.c: Replace error (EXIT_FAILURE, ...) with error_exit(...).
+ * ar.c: Likewise.
+ * arlib.c: Likewise.
+ * elfcompress.c: Likewise.
+ * nm.c: Likewise.
+ * objdump.c: Likewise.
+ * readelf.c: Likewise.
+ * size.c: Likewise.
+ * strings.c: Likewise.
+ * strip.c: Likewise.
+ * unstrip.c: Likewise.
+
+2022-03-24 Mark Wielaard <mark@klomp.org>
+
+ * elflint.c (check_note_data): Recognize NT_FDO_PACKAGING_METADATA.
+
+2022-03-11 Mark Wielaard <mark@klomp.org>
+
+ * addr2line.c (OPT_RELATIVE): New constant.
+ (options): Add --relative.
+ (use_comp_dir): Initialize to true.
+ (parse_opt): Handle OPT_RELATIVE.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (print_ehdr): Pass sizeof (buf) - 1 to strncpy.
+
2021-10-20 John M Mellor-Crummey <johnmc@rice.edu>
* readelf.c (print_debug_line_section): Try to read
diff --git a/src/addr2line.c b/src/addr2line.c
index 34945046..7768b266 100644
--- a/src/addr2line.c
+++ b/src/addr2line.c
@@ -1,5 +1,6 @@
/* Locate source files and line information for given addresses
Copyright (C) 2005-2010, 2012, 2013, 2015 Red Hat, Inc.
+ Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2005.
@@ -27,7 +28,6 @@
#include <inttypes.h>
#include <libdwfl.h>
#include <dwarf.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdio.h>
@@ -49,7 +49,8 @@ ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
/* Values for the parameters which have no short form. */
#define OPT_DEMANGLER 0x100
-#define OPT_PRETTY 0x101 /* 'p' is already used to select the process. */
+#define OPT_PRETTY 0x101 /* 'p' is already used to select the process. */
+#define OPT_RELATIVE 0x102 /* 'r' is something else in binutils addr2line. */
/* Definitions of arguments for argp functions. */
static const struct argp_option options[] =
@@ -62,7 +63,7 @@ static const struct argp_option options[] =
{ "addresses", 'a', NULL, 0, N_("Print address before each entry"), 0 },
{ "basenames", 's', NULL, 0, N_("Show only base names of source files"), 0 },
{ "absolute", 'A', NULL, 0,
- N_("Show absolute file names using compilation directory"), 0 },
+ N_("Show absolute file names using compilation directory (default)"), 0 },
{ "functions", 'f', NULL, 0, N_("Also show function names"), 0 },
{ "symbols", 'S', NULL, 0, N_("Also show symbol or section names"), 0 },
{ "symbols-sections", 'x', NULL, 0, N_("Also show symbol and the section names"), 0 },
@@ -74,6 +75,8 @@ static const struct argp_option options[] =
N_("Show demangled symbols (ARG is always ignored)"), 0 },
{ "pretty-print", OPT_PRETTY, NULL, 0,
N_("Print all information on one line, and indent inlines"), 0 },
+ { "relative", OPT_RELATIVE, NULL, 0,
+ N_("Show relative file names without compilation directory"), 0 },
{ NULL, 0, NULL, 0, N_("Miscellaneous:"), 0 },
/* Unsupported options. */
@@ -111,7 +114,7 @@ static bool print_addresses;
static bool only_basenames;
/* True if absolute file names based on DW_AT_comp_dir should be shown. */
-static bool use_comp_dir;
+static bool use_comp_dir = true;
/* True if line flags should be shown. */
static bool show_flags;
@@ -236,6 +239,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
use_comp_dir = true;
break;
+ case OPT_RELATIVE:
+ use_comp_dir = false;
+ break;
+
case 'f':
show_functions = true;
break;
@@ -516,8 +523,7 @@ adjust_to_section (const char *name, uintmax_t *addr, Dwfl *dwfl)
Dwfl_Module *mod = NULL;
if (dwfl_getmodules (dwfl, &see_one_module, &mod, 0) != 0
|| mod == NULL)
- error (EXIT_FAILURE, 0, _("Section syntax requires"
- " exactly one module"));
+ error_exit (0, _("Section syntax requires exactly one module"));
int nscn = dwfl_module_relocations (mod);
for (int i = 0; i < nscn; ++i)
diff --git a/src/ar.c b/src/ar.c
index ab6098f0..3bcb18fe 100644
--- a/src/ar.c
+++ b/src/ar.c
@@ -24,7 +24,6 @@
#include <assert.h>
#include <fcntl.h>
#include <gelf.h>
-#include <libintl.h>
#include <limits.h>
#include <locale.h>
#include <search.h>
@@ -386,8 +385,8 @@ open_archive (const char *arfname, int flags, int mode, Elf **elf,
if (miss_allowed)
return -1;
- error (EXIT_FAILURE, errno, _("cannot open archive '%s'"),
- arfname);
+ error_exit (errno, _("cannot open archive '%s'"),
+ arfname);
}
if (elf != NULL)
@@ -396,16 +395,16 @@ open_archive (const char *arfname, int flags, int mode, Elf **elf,
*elf = elf_begin (fd, cmd, NULL);
if (*elf == NULL)
- error (EXIT_FAILURE, 0, _("cannot open archive '%s': %s"),
- arfname, elf_errmsg (-1));
+ error_exit (0, _("cannot open archive '%s': %s"),
+ arfname, elf_errmsg (-1));
if (flags == O_RDONLY && elf_kind (*elf) != ELF_K_AR)
- error (EXIT_FAILURE, 0, _("%s: not an archive file"), arfname);
+ error_exit (0, _("%s: not an archive file"), arfname);
}
if (st != NULL && fstat (fd, st) != 0)
- error (EXIT_FAILURE, errno, _("cannot stat archive '%s'"),
- arfname);
+ error_exit (errno, _("cannot stat archive '%s'"),
+ arfname);
return fd;
}
@@ -469,14 +468,13 @@ do_oper_extract (int oper, const char *arfname, char **argv, int argc,
int fd = open_archive (arfname, O_RDONLY, 0, &elf, NULL, false);
if (hcreate (2 * argc) == 0)
- error (EXIT_FAILURE, errno, _("cannot create hash table"));
+ error_exit (errno, _("cannot create hash table"));
for (int cnt = 0; cnt < argc; ++cnt)
{
ENTRY entry = { .key = argv[cnt], .data = &argv[cnt] };
if (hsearch (entry, ENTER) == NULL)
- error (EXIT_FAILURE, errno,
- _("cannot insert into hash table"));
+ error_exit (errno, _("cannot insert into hash table"));
}
struct stat st;
@@ -519,7 +517,7 @@ do_oper_extract (int oper, const char *arfname, char **argv, int argc,
ENTRY entry;
entry.key = arhdr->ar_name;
ENTRY *res = hsearch (entry, FIND);
- if (res != NULL && (instance < 0 || instance-- == 0)
+ if (res != NULL && (instance < 0 || --instance == 0)
&& !found[(char **) res->data - argv])
found[(char **) res->data - argv] = do_extract = true;
}
@@ -924,14 +922,13 @@ do_oper_delete (const char *arfname, char **argv, int argc,
int fd = open_archive (arfname, O_RDONLY, 0, &elf, &st, false);
if (hcreate (2 * argc) == 0)
- error (EXIT_FAILURE, errno, _("cannot create hash table"));
+ error_exit (errno, _("cannot create hash table"));
for (int cnt = 0; cnt < argc; ++cnt)
{
ENTRY entry = { .key = argv[cnt], .data = &argv[cnt] };
if (hsearch (entry, ENTER) == NULL)
- error (EXIT_FAILURE, errno,
- _("cannot insert into hash table"));
+ error_exit (errno, _("cannot insert into hash table"));
}
arlib_init ();
@@ -954,7 +951,7 @@ do_oper_delete (const char *arfname, char **argv, int argc,
ENTRY entry;
entry.key = arhdr->ar_name;
ENTRY *res = hsearch (entry, FIND);
- if (res != NULL && (instance < 0 || instance-- == 0)
+ if (res != NULL && (instance < 0 || --instance == 0)
&& !found[(char **) res->data - argv])
found[(char **) res->data - argv] = do_delete = true;
}
@@ -1131,7 +1128,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
if (oper != oper_qappend)
{
if (hcreate (2 * argc) == 0)
- error (EXIT_FAILURE, errno, _("cannot create hash table"));
+ error_exit (errno, _("cannot create hash table"));
for (int cnt = 0; cnt < argc; ++cnt)
{
@@ -1139,8 +1136,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
entry.key = full_path ? argv[cnt] : basename (argv[cnt]);
entry.data = &argv[cnt];
if (hsearch (entry, ENTER) == NULL)
- error (EXIT_FAILURE, errno,
- _("cannot insert into hash table"));
+ error_exit (errno, _("cannot insert into hash table"));
}
}
@@ -1214,7 +1210,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
next:
cmd = elf_next (subelf);
if (elf_end (subelf) != 0)
- error (EXIT_FAILURE, 0, "%s: %s", arfname, elf_errmsg (-1));
+ error_exit (0, "%s: %s", arfname, elf_errmsg (-1));
}
if (oper != oper_qappend)
@@ -1222,8 +1218,8 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
no_old:
if (member != NULL)
- error (EXIT_FAILURE, 0, _("position member %s not found"),
- member);
+ error_exit (0, _("position member %s not found"),
+ member);
if (oper == oper_move)
{
@@ -1305,8 +1301,8 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
found[cnt]->mem = elf_rawfile (newelf, &found[cnt]->size);
if (found[cnt]->mem == NULL
|| elf_cntl (newelf, ELF_C_FDDONE) != 0)
- error (EXIT_FAILURE, 0, _("cannot read %s: %s"),
- argv[cnt], elf_errmsg (-1));
+ error_exit (0, _("cannot read %s: %s"),
+ argv[cnt], elf_errmsg (-1));
close (newfd);
@@ -1374,7 +1370,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
|| (arhdr = elf_getarhdr (subelf)) == NULL)
/* This should never happen since we already looked at the
archive content. But who knows... */
- error (EXIT_FAILURE, 0, "%s: %s", arfname, elf_errmsg (-1));
+ error_exit (0, "%s: %s", arfname, elf_errmsg (-1));
arlib_add_symbols (subelf, arfname, arhdr->ar_name, cur_off);
diff --git a/src/arlib-argp.c b/src/arlib-argp.c
index a3c12e4d..115b9d76 100644
--- a/src/arlib-argp.c
+++ b/src/arlib-argp.c
@@ -20,7 +20,6 @@
#endif
#include <argp.h>
-#include <libintl.h>
#include "arlib.h"
diff --git a/src/arlib.c b/src/arlib.c
index a14c44d3..b8f89ba7 100644
--- a/src/arlib.c
+++ b/src/arlib.c
@@ -23,7 +23,6 @@
#include <assert.h>
#include <gelf.h>
#include <inttypes.h>
-#include <libintl.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
@@ -210,8 +209,8 @@ arlib_add_symbols (Elf *elf, const char *arfname, const char *membername,
{
if (sizeof (off) > sizeof (uint32_t) && off > ~((uint32_t) 0))
/* The archive is too big. */
- error (EXIT_FAILURE, 0, _("the archive '%s' is too large"),
- arfname);
+ error_exit (0, _("the archive '%s' is too large"),
+ arfname);
/* We only add symbol tables for ELF files. It makes not much sense
to add symbols from executables but we do so for compatibility.
@@ -223,8 +222,8 @@ arlib_add_symbols (Elf *elf, const char *arfname, const char *membername,
GElf_Ehdr ehdr_mem;
GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
if (ehdr == NULL)
- error (EXIT_FAILURE, 0, _("cannot read ELF header of %s(%s): %s"),
- arfname, membername, elf_errmsg (-1));
+ error_exit (0, _("cannot read ELF header of %s(%s): %s"),
+ arfname, membername, elf_errmsg (-1));
GElf_Word symtype;
if (ehdr->e_type == ET_REL)
diff --git a/src/arlib.h b/src/arlib.h
index e117166e..d4a42210 100644
--- a/src/arlib.h
+++ b/src/arlib.h
@@ -46,7 +46,7 @@ extern const struct argp_child arlib_argp_children[];
#define AR_HDR_WORDS (sizeof (struct ar_hdr) / sizeof (uint32_t))
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
# define le_bswap_32(val) bswap_32 (val)
#else
# define le_bswap_32(val) (val)
diff --git a/src/arlib2.c b/src/arlib2.c
index 11f44e5d..9ae6662c 100644
--- a/src/arlib2.c
+++ b/src/arlib2.c
@@ -20,7 +20,6 @@
# include <config.h>
#endif
-#include <libintl.h>
#include <limits.h>
#include <string.h>
diff --git a/src/elfclassify.c b/src/elfclassify.c
index 2f70b29a..25fe9a65 100644
--- a/src/elfclassify.c
+++ b/src/elfclassify.c
@@ -946,7 +946,7 @@ separated by newlines"), 2 },
{ "stdin0", classify_flag_stdin0, NULL, 0,
N_("Also read file names to process from standard input, \
separated by ASCII NUL bytes"), 2 },
- { "no-stdin", classify_flag_stdin, NULL, 0,
+ { "no-stdin", classify_flag_no_stdin, NULL, 0,
N_("Do not read files from standard input (default)"), 2 },
{ "compressed", 'z', NULL, 0,
N_("Try to open compressed files or embedded (kernel) ELF images"),
diff --git a/src/elfcmp.c b/src/elfcmp.c
index 21d8d9dc..fba67e02 100644
--- a/src/elfcmp.c
+++ b/src/elfcmp.c
@@ -25,7 +25,6 @@
#include <errno.h>
#include <fcntl.h>
#include <locale.h>
-#include <libintl.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/elfcompress.c b/src/elfcompress.c
index 2c6d91ba..6f18e47d 100644
--- a/src/elfcompress.c
+++ b/src/elfcompress.c
@@ -730,6 +730,15 @@ process_file (const char *fname)
{
shstrtab_size = size;
shstrtab_compressed = T_COMPRESS_GNU;
+ if (shstrtab_name != NULL
+ || shstrtab_newname != NULL)
+ {
+ error (0, 0, "Internal error,"
+ " shstrtab_name already set,"
+ " while handling section [%zd] %s",
+ ndx, sname);
+ goto cleanup;
+ }
shstrtab_name = xstrdup (sname);
shstrtab_newname = xstrdup (newname);
}
@@ -786,6 +795,15 @@ process_file (const char *fname)
{
shstrtab_size = size;
shstrtab_compressed = T_COMPRESS_ZLIB;
+ if (shstrtab_name != NULL
+ || shstrtab_newname != NULL)
+ {
+ error (0, 0, "Internal error,"
+ " shstrtab_name already set,"
+ " while handling section [%zd] %s",
+ ndx, sname);
+ goto cleanup;
+ }
shstrtab_name = xstrdup (sname);
shstrtab_newname = (newname == NULL
? NULL : xstrdup (newname));
@@ -919,6 +937,12 @@ process_file (const char *fname)
}
size_t elsize = gelf_fsize (elfnew, ELF_T_SYM, 1, EV_CURRENT);
size_t syms = symd->d_size / elsize;
+ if (symstrents != NULL)
+ {
+ error (0, 0, "Internal error, symstrents already set,"
+ " while handling section [%zd] %s", ndx, name);
+ goto cleanup;
+ }
symstrents = xmalloc (syms * sizeof (Dwelf_Strent *));
for (size_t i = 0; i < syms; i++)
{
@@ -1342,12 +1366,11 @@ main (int argc, char **argv)
/* 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"));
+ error_exit (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'"));
+ error_exit (0, N_("Only one input file allowed together with '-o'"));
elf_version (EV_CURRENT);
diff --git a/src/elflint.c b/src/elflint.c
index ef7725ce..565cffdc 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -27,7 +27,6 @@
#include <fcntl.h>
#include <gelf.h>
#include <inttypes.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdlib.h>
@@ -4384,6 +4383,13 @@ section [%2d] '%s': unknown core file note type %" PRIu32
else
goto unknown_note;
+ case NT_FDO_PACKAGING_METADATA:
+ if (nhdr.n_namesz == sizeof ELF_NOTE_FDO
+ && strcmp (data->d_buf + name_offset, ELF_NOTE_FDO) == 0)
+ break;
+ else
+ goto unknown_note;
+
case 0:
/* Linux vDSOs use a type 0 note for the kernel version word. */
if (nhdr.n_namesz == sizeof "Linux"
@@ -4724,7 +4730,10 @@ section [%2zu] '%s' must not be executable\n"),
}
if (phdr->p_filesz > phdr->p_memsz
- && (phdr->p_memsz != 0 || phdr->p_type != PT_NOTE))
+ && (phdr->p_memsz != 0
+ || (phdr->p_type != PT_NOTE
+ && !(ehdr->e_machine == EM_RISCV
+ && phdr->p_type == PT_RISCV_ATTRIBUTES))))
ERROR (_("\
program header entry %d: file size greater than memory size\n"),
cnt);
diff --git a/src/findtextrel.c b/src/findtextrel.c
index ecb1d118..d3021a3a 100644
--- a/src/findtextrel.c
+++ b/src/findtextrel.c
@@ -26,7 +26,6 @@
#include <fcntl.h>
#include <gelf.h>
#include <libdw.h>
-#include <libintl.h>
#include <locale.h>
#include <search.h>
#include <stdbool.h>
diff --git a/src/nm.c b/src/nm.c
index 2ae29c4d..b46c1fd7 100644
--- a/src/nm.c
+++ b/src/nm.c
@@ -30,7 +30,6 @@
#include <gelf.h>
#include <inttypes.h>
#include <libdw.h>
-#include <libintl.h>
#include <locale.h>
#include <obstack.h>
#include <search.h>
@@ -137,8 +136,8 @@ static int handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
#define INTERNAL_ERROR(fname) \
- error (EXIT_FAILURE, 0, _("%s: INTERNAL ERROR %d (%s): %s"), \
- fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1))
+ error_exit (0, _("%s: INTERNAL ERROR %d (%s): %s"), \
+ fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1))
/* Internal representation of symbols. */
@@ -378,7 +377,7 @@ process_file (const char *fname, bool more_than_one)
INTERNAL_ERROR (fname);
if (close (fd) != 0)
- error (EXIT_FAILURE, errno, _("while closing '%s'"), fname);
+ error_exit (errno, _("while closing '%s'"), fname);
return result;
}
@@ -390,7 +389,7 @@ process_file (const char *fname, bool more_than_one)
INTERNAL_ERROR (fname);
if (close (fd) != 0)
- error (EXIT_FAILURE, errno, _("while closing '%s'"), fname);
+ error_exit (errno, _("while closing '%s'"), fname);
return result;
}
@@ -700,8 +699,7 @@ get_local_names (Dwarf *dbg)
struct local_name **tres = tsearch (newp, &local_root,
local_compare);
if (tres == NULL)
- error (EXIT_FAILURE, errno,
- _("cannot create search tree"));
+ error_exit (errno, _("cannot create search tree"));
else if (*tres != newp)
free (newp);
}
@@ -741,8 +739,7 @@ show_symbols_sysv (Ebl *ebl, GElf_Word strndx, const char *fullname,
/* Get the section header string table index. */
size_t shstrndx;
if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
/* Cache the section names. */
Elf_Scn *scn = NULL;
@@ -1234,8 +1231,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr,
/* Get the section header string table index. */
size_t shstrndx;
if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
/* The section is that large. */
size_t size = shdr->sh_size;
@@ -1331,10 +1327,9 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr,
can use the data memory instead of copying again if what we read
is a 64 bit file. */
if (nentries > SIZE_MAX / sizeof (GElf_SymX))
- error (EXIT_FAILURE, 0,
- _("%s: entries (%zd) in section %zd `%s' is too large"),
- fullname, nentries, elf_ndxscn (scn),
- elf_strptr (ebl->elf, shstrndx, shdr->sh_name));
+ error_exit (0, _("%s: entries (%zd) in section %zd `%s' is too large"),
+ fullname, nentries, elf_ndxscn (scn),
+ elf_strptr (ebl->elf, shstrndx, shdr->sh_name));
GElf_SymX *sym_mem;
if (nentries * sizeof (GElf_SymX) < MAX_STACK_ALLOC)
sym_mem = (GElf_SymX *) alloca (nentries * sizeof (GElf_SymX));
diff --git a/src/objdump.c b/src/objdump.c
index f7ea6c92..d43c1dd6 100644
--- a/src/objdump.c
+++ b/src/objdump.c
@@ -23,7 +23,6 @@
#include <argp.h>
#include <fcntl.h>
#include <inttypes.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdio.h>
@@ -100,8 +99,8 @@ static int handle_elf (Elf *elf, const char *prefix, const char *fname,
#define INTERNAL_ERROR(fname) \
- error (EXIT_FAILURE, 0, _("%s: INTERNAL ERROR %d (%s): %s"), \
- fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1))
+ error_exit (0, _("%s: INTERNAL ERROR %d (%s): %s"), \
+ fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1))
/* List of sections which should be used. */
@@ -255,7 +254,7 @@ process_file (const char *fname, bool more_than_one)
INTERNAL_ERROR (fname);
if (close (fd) != 0)
- error (EXIT_FAILURE, errno, _("while close `%s'"), fname);
+ error_exit (errno, _("while close `%s'"), fname);
return result;
}
@@ -267,7 +266,7 @@ process_file (const char *fname, bool more_than_one)
INTERNAL_ERROR (fname);
if (close (fd) != 0)
- error (EXIT_FAILURE, errno, _("while close `%s'"), fname);
+ error_exit (errno, _("while close `%s'"), fname);
return result;
}
@@ -684,7 +683,7 @@ show_disasm (Ebl *ebl, const char *fname, uint32_t shstrndx)
{
DisasmCtx_t *ctx = disasm_begin (ebl, ebl->elf, NULL /* XXX TODO */);
if (ctx == NULL)
- error (EXIT_FAILURE, 0, _("cannot disassemble"));
+ error_exit (0, _("cannot disassemble"));
Elf_Scn *scn = NULL;
while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
@@ -755,8 +754,7 @@ handle_elf (Elf *elf, const char *prefix, const char *fname,
/* Get the backend for this object file type. */
Ebl *ebl = ebl_openbackend (elf);
if (ebl == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot create backend for elf file"));
+ error_exit (0, _("cannot create backend for elf file"));
printf ("%s: elf%d-%s\n\n",
fname, gelf_getclass (elf) == ELFCLASS32 ? 32 : 64,
@@ -777,8 +775,7 @@ handle_elf (Elf *elf, const char *prefix, const char *fname,
/* Get the section header string table index. */
size_t shstrndx;
if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
int result = 0;
if (print_disasm)
diff --git a/src/ranlib.c b/src/ranlib.c
index bd7e1d8a..7838d69e 100644
--- a/src/ranlib.c
+++ b/src/ranlib.c
@@ -26,7 +26,6 @@
#include <errno.h>
#include <fcntl.h>
#include <gelf.h>
-#include <libintl.h>
#include <locale.h>
#include <obstack.h>
#include <stdlib.h>
diff --git a/src/readelf.c b/src/readelf.c
index c10038e3..0e0b05c4 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -30,7 +30,6 @@
#include <langinfo.h>
#include <libdw.h>
#include <libdwfl.h>
-#include <libintl.h>
#include <locale.h>
#include <stdarg.h>
#include <stdbool.h>
@@ -116,6 +115,7 @@ static const struct argp_option options[] =
{ "sections", 'S', NULL, OPTION_ALIAS | OPTION_HIDDEN, NULL, 0 },
{ "symbols", 's', "SECTION", OPTION_ARG_OPTIONAL,
N_("Display the symbol table sections"), 0 },
+ { "syms", 's', NULL, OPTION_ALIAS | OPTION_HIDDEN, NULL, 0 },
{ "dyn-syms", PRINT_DYNSYM_TABLE, NULL, 0,
N_("Display (only) the dynamic symbol table"), 0 },
{ "version-info", 'V', NULL, 0, N_("Display versioning information"), 0 },
@@ -137,6 +137,8 @@ static const struct argp_option options[] =
{ "string-dump", 'p', NULL, OPTION_ALIAS | OPTION_HIDDEN, NULL, 0 },
{ "archive-index", 'c', NULL, 0,
N_("Display the symbol index of an archive"), 0 },
+ { "use-dynamic", 'D', NULL, 0,
+ N_("Use the dynamic segment when possible for displaying info"), 0 },
{ NULL, 0, NULL, 0, N_("Output control:"), 0 },
{ "numeric-addresses", 'N', NULL, 0,
@@ -195,6 +197,9 @@ static bool print_symbol_table;
/* True if (only) the dynsym table should be printed. */
static bool print_dynsym_table;
+/* True if reconstruct dynamic symbol table from the PT_DYNAMIC segment. */
+static bool use_dynamic_segment;
+
/* A specific section name, or NULL to print all symbol tables. */
static char *symbol_table_section;
@@ -318,6 +323,24 @@ static void dump_strings (Ebl *ebl);
static void print_strings (Ebl *ebl);
static void dump_archive_index (Elf *, const char *);
+enum dyn_idx
+{
+ i_strsz,
+ i_verneed,
+ i_verdef,
+ i_versym,
+ i_symtab,
+ i_strtab,
+ i_hash,
+ i_gnu_hash,
+ i_max
+};
+
+/* Declarations of local functions for use-dynamic. */
+static Elf_Data *get_dynscn_strtab (Elf *elf, GElf_Phdr *phdr);
+static void get_dynscn_addrs (Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max]);
+static void find_offsets (Elf *elf, GElf_Addr main_bias, size_t n,
+ GElf_Addr addrs[n], GElf_Off offs[n]);
/* Looked up once with gettext in main. */
static char *yes_str;
@@ -429,6 +452,9 @@ parse_opt (int key, char *arg,
print_dynamic_table = true;
any_control_option = true;
break;
+ case 'D':
+ use_dynamic_segment = true;
+ break;
case 'e':
print_debug_sections |= section_exception;
any_control_option = true;
@@ -828,7 +854,7 @@ create_dwfl (int fd, const char *fname)
/* Duplicate an fd for dwfl_report_offline to swallow. */
int dwfl_fd = dup (fd);
if (unlikely (dwfl_fd < 0))
- error (EXIT_FAILURE, errno, "dup");
+ error_exit (errno, "dup");
/* Use libdwfl in a trivial way to open the libdw handle for us.
This takes care of applying relocations to DWARF data in ET_REL files. */
@@ -951,15 +977,13 @@ process_elf_file (Dwfl_Module *dwflmod, int fd)
/* Determine the number of sections. */
if (unlikely (elf_getshdrnum (ebl->elf, &shnum) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot determine number of sections: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot determine number of sections: %s"),
+ elf_errmsg (-1));
/* Determine the number of phdrs. */
if (unlikely (elf_getphdrnum (ebl->elf, &phnum) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot determine number of program headers: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("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. If there are any
@@ -1172,7 +1196,7 @@ print_ehdr (Ebl *ebl, GElf_Ehdr *ehdr)
(uint32_t) shdr->sh_link);
else
{
- strncpy (buf, _(" ([0] not available)"), sizeof (buf));
+ strncpy (buf, _(" ([0] not available)"), sizeof (buf) - 1);
buf[sizeof (buf) - 1] = '\0';
}
@@ -1226,9 +1250,8 @@ print_shdr (Ebl *ebl, GElf_Ehdr *ehdr)
{
size_t sections;
if (unlikely (elf_getshdrnum (ebl->elf, &sections) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get number of sections: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get number of sections: %s"),
+ elf_errmsg (-1));
printf (_("\
There are %zd section headers, starting at offset %#" PRIx64 ":\n\
@@ -1238,9 +1261,8 @@ There are %zd section headers, starting at offset %#" PRIx64 ":\n\
/* Get the section header string table index. */
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section header string table index: %s"),
+ elf_errmsg (-1));
puts (_("Section Headers:"));
@@ -1262,15 +1284,15 @@ There are %zd section headers, starting at offset %#" PRIx64 ":\n\
Elf_Scn *scn = elf_getscn (ebl->elf, cnt);
if (unlikely (scn == NULL))
- error (EXIT_FAILURE, 0, _("cannot get section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section: %s"),
+ elf_errmsg (-1));
/* Get the section header. */
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0, _("cannot get section header: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section header: %s"),
+ elf_errmsg (-1));
char flagbuf[20];
char *cp = flagbuf;
@@ -1436,9 +1458,8 @@ print_phdr (Ebl *ebl, GElf_Ehdr *ehdr)
size_t sections;
if (unlikely (elf_getshdrnum (ebl->elf, &sections) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get number of sections: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get number of sections: %s"),
+ elf_errmsg (-1));
if (sections == 0)
/* No sections in the file. Punt. */
@@ -1447,8 +1468,7 @@ print_phdr (Ebl *ebl, GElf_Ehdr *ehdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
puts (_("\n Section to Segment mapping:\n Segment Sections..."));
@@ -1461,8 +1481,8 @@ print_phdr (Ebl *ebl, GElf_Ehdr *ehdr)
GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &phdr_mem);
/* This must not happen. */
if (unlikely (phdr == NULL))
- error (EXIT_FAILURE, 0, _("cannot get program header: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get program header: %s"),
+ elf_errmsg (-1));
/* Iterate over the sections. */
bool in_relro = false;
@@ -1472,16 +1492,15 @@ print_phdr (Ebl *ebl, GElf_Ehdr *ehdr)
Elf_Scn *scn = elf_getscn (ebl->elf, inner);
/* This should not happen. */
if (unlikely (scn == NULL))
- error (EXIT_FAILURE, 0, _("cannot get section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section: %s"),
+ elf_errmsg (-1));
/* Get the section header. */
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0,
- _("cannot get section header: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section header: %s"),
+ elf_errmsg (-1));
if (shdr->sh_size > 0
/* Compare allocated sections by VMA, unallocated
@@ -1598,8 +1617,7 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
Elf32_Word *grpref = (Elf32_Word *) data->d_buf;
@@ -1661,10 +1679,9 @@ print_scngrp (Ebl *ebl)
elf_ndxscn (scn));
shdr = gelf_getshdr (scn, &shdr_mem);
if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0,
- _("cannot get section [%zd] header: %s"),
- elf_ndxscn (scn),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section [%zd] header: %s"),
+ elf_ndxscn (scn),
+ elf_errmsg (-1));
}
handle_scngrp (ebl, scn, shdr);
}
@@ -1781,8 +1798,26 @@ print_dt_posflag_1 (int class, GElf_Xword d_val)
}
+static size_t
+get_dyn_ents (Elf_Data * dyn_data)
+{
+ GElf_Dyn *dyn;
+ GElf_Dyn dyn_mem;
+ size_t dyn_idx = 0;
+ do
+ {
+ dyn = gelf_getdyn(dyn_data, dyn_idx, &dyn_mem);
+ if (dyn != NULL)
+ ++dyn_idx;
+ }
+ while (dyn != NULL && dyn->d_tag != DT_NULL);
+
+ return dyn_idx;
+}
+
+
static void
-handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
+handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
{
int class = gelf_getclass (ebl->elf);
GElf_Shdr glink_mem;
@@ -1790,38 +1825,68 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
Elf_Data *data;
size_t cnt;
size_t shstrndx;
- size_t sh_entsize;
+ size_t dyn_ents;
/* Get the data of the section. */
- data = elf_getdata (scn, NULL);
+ if (use_dynamic_segment)
+ data = elf_getdata_rawchunk(ebl->elf, phdr->p_offset,
+ phdr->p_filesz, ELF_T_DYN);
+ else
+ data = elf_getdata (scn, NULL);
+
if (data == NULL)
return;
- /* Get the section header string table index. */
- if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ /* Get the dynamic section entry number */
+ dyn_ents = get_dyn_ents (data);
- sh_entsize = gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT);
+ if (!use_dynamic_segment)
+ {
+ /* Get the section header string table index. */
+ if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
+ error_exit (0, _("cannot get section header string table index"));
- glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
- if (glink == NULL)
- error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"),
- elf_ndxscn (scn));
+ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
+ if (glink == NULL)
+ error_exit (0, _("invalid sh_link value in section %zu"),
+ elf_ndxscn (scn));
- printf (ngettext ("\
+ printf (ngettext ("\
\nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
"\
\nDynamic segment contains %lu entries:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
- shdr->sh_size / sh_entsize),
- (unsigned long int) (shdr->sh_size / sh_entsize),
- class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
- shdr->sh_offset,
- (int) shdr->sh_link,
- elf_strptr (ebl->elf, shstrndx, glink->sh_name));
+ dyn_ents),
+ (unsigned long int) dyn_ents,
+ class == ELFCLASS32 ? 10 : 18, shdr->sh_addr,
+ shdr->sh_offset,
+ (int) shdr->sh_link,
+ elf_strptr (ebl->elf, shstrndx, glink->sh_name));
+ }
+ else
+ {
+ printf (ngettext ("\
+\nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 "\n",
+ "\
+\nDynamic segment contains %lu entries:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 "\n",
+ dyn_ents),
+ (unsigned long int) dyn_ents,
+ class == ELFCLASS32 ? 10 : 18, phdr->p_paddr,
+ phdr->p_offset);
+ }
+
fputs_unlocked (_(" Type Value\n"), stdout);
- for (cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt)
+ /* if --use-dynamic option is enabled,
+ use the string table to get the related library info. */
+ Elf_Data *strtab_data = NULL;
+ if (use_dynamic_segment)
+ {
+ strtab_data = get_dynscn_strtab(ebl->elf, phdr);
+ if (strtab_data == NULL)
+ error_exit (0, _("cannot get string table by using dynamic segment"));
+ }
+
+ for (cnt = 0; cnt < dyn_ents; ++cnt)
{
GElf_Dyn dynmem;
GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem);
@@ -1832,6 +1897,20 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
printf (" %-17s ",
ebl_dynamic_tag_name (ebl, dyn->d_tag, buf, sizeof (buf)));
+ char *name = NULL;
+ if (dyn->d_tag == DT_NEEDED
+ || dyn->d_tag == DT_SONAME
+ || dyn->d_tag == DT_RPATH
+ || dyn->d_tag == DT_RUNPATH)
+ {
+ if (! use_dynamic_segment)
+ name = elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val);
+ else if (dyn->d_un.d_val < strtab_data->d_size
+ && memrchr (strtab_data->d_buf + dyn->d_un.d_val, '\0',
+ strtab_data->d_size - 1 - dyn->d_un.d_val) != NULL)
+ name = ((char *) strtab_data->d_buf) + dyn->d_un.d_val;
+ }
+
switch (dyn->d_tag)
{
case DT_NULL:
@@ -1843,23 +1922,19 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
break;
case DT_NEEDED:
- printf (_("Shared library: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
+ printf (_("Shared library: [%s]\n"), name);
break;
case DT_SONAME:
- printf (_("Library soname: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
+ printf (_("Library soname: [%s]\n"), name);
break;
case DT_RPATH:
- printf (_("Library rpath: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
+ printf (_("Library rpath: [%s]\n"), name);
break;
case DT_RUNPATH:
- printf (_("Library runpath: [%s]\n"),
- elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val));
+ printf (_("Library runpath: [%s]\n"), name);
break;
case DT_PLTRELSZ:
@@ -1933,8 +2008,9 @@ print_dynamic (Ebl *ebl)
Elf_Scn *scn = gelf_offscn (ebl->elf, phdr->p_offset);
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr != NULL && shdr->sh_type == SHT_DYNAMIC)
- handle_dynamic (ebl, scn, shdr);
+ if ((use_dynamic_segment && phdr != NULL)
+ || (shdr != NULL && shdr->sh_type == SHT_DYNAMIC))
+ handle_dynamic (ebl, scn, shdr, phdr);
break;
}
}
@@ -2005,8 +2081,7 @@ handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
if (shdr->sh_info != 0)
printf (ngettext ("\
@@ -2195,8 +2270,7 @@ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
if (shdr->sh_info != 0)
printf (ngettext ("\
@@ -2373,8 +2447,8 @@ print_symtab (Ebl *ebl, int type)
size_t shstrndx;
const char *sname;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0,
+ _("cannot get section header string table index"));
sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
if (sname == NULL || strcmp (sname, symbol_table_section) != 0)
continue;
@@ -2388,9 +2462,9 @@ print_symtab (Ebl *ebl, int type)
elf_ndxscn (scn));
shdr = gelf_getshdr (scn, &shdr_mem);
if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0,
- _("cannot get section [%zd] header: %s"),
- elf_ndxscn (scn), elf_errmsg (-1));
+ error_exit (0,
+ _("cannot get section [%zd] header: %s"),
+ elf_ndxscn (scn), elf_errmsg (-1));
}
handle_symtab (ebl, scn, shdr);
}
@@ -2449,15 +2523,14 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
GElf_Shdr glink_mem;
GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
&glink_mem);
if (glink == NULL)
- error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"),
- elf_ndxscn (scn));
+ error_exit (0, _("invalid sh_link value in section %zu"),
+ elf_ndxscn (scn));
/* Now we can compute the number of entries in the section. */
unsigned int nsyms = data->d_size / (class == ELFCLASS32
@@ -2715,15 +2788,14 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
GElf_Shdr glink_mem;
GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
&glink_mem);
if (glink == NULL)
- error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"),
- elf_ndxscn (scn));
+ error_exit (0, _("invalid sh_link value in section %zu"),
+ elf_ndxscn (scn));
printf (ngettext ("\
\nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n",
@@ -2791,15 +2863,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
GElf_Shdr glink_mem;
GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
&glink_mem);
if (glink == NULL)
- error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"),
- elf_ndxscn (scn));
+ error_exit (0, _("invalid sh_link value in section %zu"),
+ elf_ndxscn (scn));
int class = gelf_getclass (ebl->elf);
printf (ngettext ("\
@@ -2878,8 +2949,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
/* We have to find the version definition section and extract the
version names. */
@@ -3102,8 +3172,8 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
&glink_mem);
size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_HALF, 1, EV_CURRENT);
if (glink == NULL)
- error (EXIT_FAILURE, 0, _("invalid sh_link value in section %zu"),
- elf_ndxscn (scn));
+ error_exit (0, _("invalid sh_link value in section %zu"),
+ elf_ndxscn (scn));
/* Print the header. */
printf (ngettext ("\
@@ -3474,8 +3544,7 @@ handle_hash (Ebl *ebl)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
Elf_Scn *scn = NULL;
while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
@@ -3495,9 +3564,8 @@ handle_hash (Ebl *ebl)
elf_ndxscn (scn));
shdr = gelf_getshdr (scn, &shdr_mem);
if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0,
- _("cannot get section [%zd] header: %s"),
- elf_ndxscn (scn), elf_errmsg (-1));
+ error_exit (0, _("cannot get section [%zd] header: %s"),
+ elf_ndxscn (scn), elf_errmsg (-1));
}
if (shdr->sh_type == SHT_HASH)
@@ -3524,8 +3592,7 @@ print_liblist (Ebl *ebl)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
{
@@ -3594,8 +3661,7 @@ print_attributes (Ebl *ebl, const GElf_Ehdr *ehdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
{
@@ -3606,7 +3672,9 @@ print_attributes (Ebl *ebl, const GElf_Ehdr *ehdr)
&& (shdr->sh_type != SHT_ARM_ATTRIBUTES
|| ehdr->e_machine != EM_ARM)
&& (shdr->sh_type != SHT_CSKY_ATTRIBUTES
- || ehdr->e_machine != EM_CSKY)))
+ || ehdr->e_machine != EM_CSKY)
+ && (shdr->sh_type != SHT_RISCV_ATTRIBUTES
+ || ehdr->e_machine != EM_RISCV)))
continue;
printf (_("\
@@ -3832,7 +3900,7 @@ print_dwarf_addr (Dwfl_Module *dwflmod,
: (address_size == 0
? printf ("%#" PRIx64, address)
: printf ("%#0*" PRIx64, 2 + address_size * 2, address)))) < 0)
- error (EXIT_FAILURE, 0, _("sprintf failure"));
+ error_exit (0, _("sprintf failure"));
}
@@ -4118,6 +4186,8 @@ dwarf_loc_list_encoding_string (unsigned int kind)
#define DWARF_ONE_KNOWN_DW_LLE(NAME, CODE) case CODE: return #NAME;
DWARF_ALL_KNOWN_DW_LLE
#undef DWARF_ONE_KNOWN_DW_LLE
+ /* DW_LLE_GNU_view_pair is special/incompatible with default codes. */
+ case DW_LLE_GNU_view_pair: return "GNU_view_pair";
default:
return NULL;
}
@@ -4802,6 +4872,99 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest,
}
+/* Turn the addresses into file offsets by using the phdrs. */
+static void
+find_offsets(Elf *elf, GElf_Addr main_bias, size_t n,
+ GElf_Addr addrs[n], GElf_Off offs[n])
+{
+ size_t unsolved = n;
+ for (size_t i = 0; i < phnum; ++i) {
+ GElf_Phdr phdr_mem;
+ GElf_Phdr *phdr = gelf_getphdr(elf, i, &phdr_mem);
+ if (phdr != NULL && phdr->p_type == PT_LOAD && phdr->p_memsz > 0)
+ for (size_t j = 0; j < n; ++j)
+ if (offs[j] == 0 && addrs[j] >= phdr->p_vaddr + main_bias &&
+ addrs[j] - (phdr->p_vaddr + main_bias) < phdr->p_filesz) {
+ offs[j] = addrs[j] - (phdr->p_vaddr + main_bias) + phdr->p_offset;
+ if (--unsolved == 0)
+ break;
+ }
+ }
+}
+
+/* The dynamic segment (type PT_DYNAMIC), contains the .dynamic section.
+ And .dynamic section contains an array of the dynamic structures.
+ We use the array to get:
+ DT_STRTAB: the address of the string table
+ DT_SYMTAB: the address of the symbol table
+ DT_STRSZ: the size, in bytes, of the string table
+ ... */
+static void
+get_dynscn_addrs(Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max])
+{
+ Elf_Data *data = elf_getdata_rawchunk(
+ elf, phdr->p_offset, phdr->p_filesz, ELF_T_DYN);
+
+ int dyn_idx = 0;
+ for (;; ++dyn_idx) {
+ GElf_Dyn dyn_mem;
+ GElf_Dyn *dyn = gelf_getdyn(data, dyn_idx, &dyn_mem);
+ /* DT_NULL Marks end of dynamic section. */
+ if (dyn->d_tag == DT_NULL)
+ break;
+
+ switch (dyn->d_tag) {
+ case DT_SYMTAB:
+ addrs[i_symtab] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_HASH:
+ addrs[i_hash] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_GNU_HASH:
+ addrs[i_gnu_hash] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_STRTAB:
+ addrs[i_strtab] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_VERSYM:
+ addrs[i_versym] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_VERDEF:
+ addrs[i_verdef] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_VERNEED:
+ addrs[i_verneed] = dyn->d_un.d_ptr;
+ break;
+
+ case DT_STRSZ:
+ addrs[i_strsz] = dyn->d_un.d_val;
+ break;
+ }
+ }
+}
+
+
+/* Use dynamic segment to get data for the string table section. */
+static Elf_Data *
+get_dynscn_strtab(Elf *elf, GElf_Phdr *phdr)
+{
+ Elf_Data *strtab_data;
+ GElf_Addr addrs[i_max] = {0,};
+ GElf_Off offs[i_max] = {0,};
+ get_dynscn_addrs(elf, phdr, addrs);
+ find_offsets(elf, 0, i_max, addrs, offs);
+ strtab_data = elf_getdata_rawchunk(
+ elf, offs[i_strtab], addrs[i_strsz], ELF_T_BYTE);
+ return strtab_data;
+}
+
+
struct listptr
{
Dwarf_Off offset:(64 - 3);
@@ -9584,6 +9747,16 @@ print_debug_loclists_section (Dwfl_Module *dwflmod,
readp += len;
break;
+ case DW_LLE_GNU_view_pair:
+ if ((uint64_t) (nexthdr - readp) < 1)
+ goto invalid_entry;
+ get_uleb128 (op1, readp, nexthdr);
+ if ((uint64_t) (nexthdr - readp) < 1)
+ goto invalid_entry;
+ get_uleb128 (op2, readp, nexthdr);
+ printf (" %" PRIx64 ", %" PRIx64 "\n", op1, op2);
+ break;
+
default:
goto invalid_entry;
}
@@ -11405,8 +11578,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
/* If the .debug_info section is listed as implicitly required then
we must make sure to handle it before handling any other debug
@@ -11579,7 +11751,7 @@ print_core_item (unsigned int colno, char sep, unsigned int wrap,
int out_len = vasprintf (&out, format, ap);
va_end (ap);
if (out_len == -1)
- error (EXIT_FAILURE, 0, _("memory exhausted"));
+ error_exit (0, _("memory exhausted"));
size_t n = name_width + sizeof ": " - 1 + out_len;
@@ -11629,8 +11801,8 @@ convert (Elf *core, Elf_Type type, uint_fast16_t count,
? elf32_xlatetom : elf64_xlatetom)
(&valuedata, &indata, elf_getident (core, NULL)[EI_DATA]);
if (d == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot convert core note data: %s"), elf_errmsg (-1));
+ error_exit (0, _("cannot convert core note data: %s"),
+ elf_errmsg (-1));
return data + indata.d_size;
}
@@ -12256,8 +12428,7 @@ handle_auxv_note (Ebl *ebl, Elf *core, GElf_Word descsz, GElf_Off desc_pos)
Elf_Data *data = elf_getdata_rawchunk (core, desc_pos, descsz, ELF_T_AUXV);
if (data == NULL)
elf_error:
- error (EXIT_FAILURE, 0,
- _("cannot convert core note data: %s"), elf_errmsg (-1));
+ error_exit (0, _("cannot convert core note data: %s"), elf_errmsg (-1));
const size_t nauxv = descsz / gelf_fsize (core, ELF_T_AUXV, 1, EV_CURRENT);
for (size_t i = 0; i < nauxv; ++i)
@@ -12367,8 +12538,7 @@ handle_siginfo_note (Elf *core, GElf_Word descsz, GElf_Off desc_pos)
{
Elf_Data *data = elf_getdata_rawchunk (core, desc_pos, descsz, ELF_T_BYTE);
if (data == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot convert core note data: %s"), elf_errmsg (-1));
+ error_exit (0, _("cannot convert core note data: %s"), elf_errmsg (-1));
unsigned char const *ptr = data->d_buf;
unsigned char const *const end = data->d_buf + data->d_size;
@@ -12425,8 +12595,7 @@ handle_file_note (Elf *core, GElf_Word descsz, GElf_Off desc_pos)
{
Elf_Data *data = elf_getdata_rawchunk (core, desc_pos, descsz, ELF_T_BYTE);
if (data == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot convert core note data: %s"), elf_errmsg (-1));
+ error_exit (0, _("cannot convert core note data: %s"), elf_errmsg (-1));
unsigned char const *ptr = data->d_buf;
unsigned char const *const end = data->d_buf + data->d_size;
@@ -12599,8 +12768,7 @@ handle_notes (Ebl *ebl, GElf_Ehdr *ehdr)
/* Get the section header string table index. */
size_t shstrndx;
if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
Elf_Scn *scn = NULL;
while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
@@ -12810,8 +12978,7 @@ for_each_section_argument (Elf *elf, const struct section_argument *list,
/* Get the section header string table index. */
size_t shstrndx;
if (elf_getshdrstrndx (elf, &shstrndx) < 0)
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
for (const struct section_argument *a = list; a != NULL; a = a->next)
{
@@ -12831,8 +12998,8 @@ for_each_section_argument (Elf *elf, const struct section_argument *list,
}
if (gelf_getshdr (scn, &shdr_mem) == NULL)
- error (EXIT_FAILURE, 0, _("cannot get section header: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot get section header: %s"),
+ elf_errmsg (-1));
name = elf_strptr (elf, shstrndx, shdr_mem.sh_name);
(*dump) (scn, &shdr_mem, name);
}
@@ -12879,8 +13046,7 @@ print_strings (Ebl *ebl)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
Elf_Scn *scn;
GElf_Shdr shdr_mem;
@@ -12912,9 +13078,8 @@ dump_archive_index (Elf *elf, const char *fname)
{
int result = elf_errno ();
if (unlikely (result != ELF_E_NO_INDEX))
- error (EXIT_FAILURE, 0,
- _("cannot get symbol index of archive '%s': %s"),
- fname, elf_errmsg (result));
+ error_exit (0, _("cannot get symbol index of archive '%s': %s"),
+ fname, elf_errmsg (result));
else
printf (_("\nArchive '%s' has no symbol index\n"), fname);
return;
@@ -12937,9 +13102,9 @@ dump_archive_index (Elf *elf, const char *fname)
#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7)
while (1)
#endif
- error (EXIT_FAILURE, 0,
- _("cannot extract member at offset %zu in '%s': %s"),
- as_off, fname, elf_errmsg (-1));
+ error_exit (0,
+ _("cannot extract member at offset %zu in '%s': %s"),
+ as_off, fname, elf_errmsg (-1));
const Elf_Arhdr *h = elf_getarhdr (subelf);
diff --git a/src/size.c b/src/size.c
index 322ff53e..ff8ca075 100644
--- a/src/size.c
+++ b/src/size.c
@@ -25,7 +25,6 @@
#include <gelf.h>
#include <inttypes.h>
#include <libelf.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdio.h>
@@ -102,8 +101,8 @@ static void handle_elf (Elf *elf, const char *fullname, const char *fname);
static void show_bsd_totals (void);
#define INTERNAL_ERROR(fname) \
- error (EXIT_FAILURE, 0, _("%s: INTERNAL ERROR %d (%s): %s"), \
- fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1))
+ error_exit (0, _("%s: INTERNAL ERROR %d (%s): %s"), \
+ fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1))
/* User-selectable options. */
@@ -237,7 +236,7 @@ parse_opt (int key, char *arg,
else if (likely (strcmp (arg, "sysv") == 0))
format = format_sysv;
else
- error (EXIT_FAILURE, 0, _("Invalid format: %s"), arg);
+ error_exit (0, _("Invalid format: %s"), arg);
break;
case OPT_RADIX:
@@ -248,7 +247,7 @@ parse_opt (int key, char *arg,
else if (strcmp (arg, "o") == 0 || strcmp (arg, "8") == 0)
radix = radix_octal;
else
- error (EXIT_FAILURE, 0, _("Invalid radix: %s"), arg);
+ error_exit (0, _("Invalid radix: %s"), arg);
break;
case 't':
@@ -285,7 +284,7 @@ process_file (const char *fname)
INTERNAL_ERROR (fname);
if (unlikely (close (fd) != 0))
- error (EXIT_FAILURE, errno, _("while closing '%s'"), fname);
+ error_exit (errno, _("while closing '%s'"), fname);
return 0;
}
@@ -294,7 +293,7 @@ process_file (const char *fname)
int result = handle_ar (fd, elf, NULL, fname);
if (unlikely (close (fd) != 0))
- error (EXIT_FAILURE, errno, _("while closing '%s'"), fname);
+ error_exit (errno, _("while closing '%s'"), fname);
return result;
}
@@ -305,7 +304,7 @@ process_file (const char *fname)
}
if (unlikely (close (fd) != 0))
- error (EXIT_FAILURE, errno, _("while closing '%s'"), fname);
+ error_exit (errno, _("while closing '%s'"), fname);
error (0, 0, _("%s: file format not recognized"), fname);
@@ -394,8 +393,7 @@ show_sysv (Elf *elf, const char *prefix, const char *fname,
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
/* First round over the sections: determine the longest section name. */
Elf_Scn *scn = NULL;
@@ -466,8 +464,7 @@ show_sysv_one_line (Elf *elf)
/* Get the section header string table index. */
size_t shstrndx;
if (unlikely (elf_getshdrstrndx (elf, &shstrndx) < 0))
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
/* Iterate over all sections. */
GElf_Off total = 0;
@@ -479,7 +476,7 @@ show_sysv_one_line (Elf *elf)
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
if (unlikely (shdr == NULL))
- error (EXIT_FAILURE, 0, _("cannot get section header"));
+ error_exit (0, _("cannot get section header"));
/* Ignore all sections which are not used at runtime. */
if ((shdr->sh_flags & SHF_ALLOC) == 0)
diff --git a/src/strings.c b/src/strings.c
index eb278f8e..55b047be 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -28,7 +28,6 @@
#include <fcntl.h>
#include <gelf.h>
#include <inttypes.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdio.h>
@@ -298,8 +297,7 @@ parse_opt (int key, char *arg,
case ARGP_KEY_FINI:
/* Compute the length in bytes of any match. */
if (min_len <= 0 || min_len > INT_MAX / bytes_per_char)
- error (EXIT_FAILURE, 0,
- _("invalid minimum length of matched string size"));
+ error_exit (0, _("invalid minimum length of matched string size"));
min_len_bytes = min_len * bytes_per_char;
break;
@@ -582,7 +580,7 @@ read_block (int fd, const char *fname, off_t fdlen, off_t from, off_t to)
// XXX Eventually add flag which avoids this if the position
// XXX is known to match.
if (from != 0 && lseek (fd, from, SEEK_SET) != from)
- error (EXIT_FAILURE, errno, _("lseek failed"));
+ error_exit (errno, _("lseek failed"));
return read_block_no_mmap (fd, fname, from, to - from);
}
@@ -599,7 +597,7 @@ read_block (int fd, const char *fname, off_t fdlen, off_t from, off_t to)
if (mmap (elfmap, elfmap_size, PROT_READ,
MAP_PRIVATE | MAP_POPULATE | MAP_FIXED, fd, from)
== MAP_FAILED)
- error (EXIT_FAILURE, errno, _("re-mmap failed"));
+ error_exit (errno, _("re-mmap failed"));
elfmap_base = elfmap;
}
@@ -636,7 +634,7 @@ read_block (int fd, const char *fname, off_t fdlen, off_t from, off_t to)
and for this we have to make the data writable. */
if (unlikely (mprotect (elfmap, keep_area, PROT_READ | PROT_WRITE)
!= 0))
- error (EXIT_FAILURE, errno, _("mprotect failed"));
+ error_exit (errno, _("mprotect failed"));
elfmap_base = elfmap + keep_area;
}
@@ -663,7 +661,7 @@ read_block (int fd, const char *fname, off_t fdlen, off_t from, off_t to)
if (mmap (remap_base, read_now, PROT_READ,
MAP_PRIVATE | MAP_POPULATE | MAP_FIXED, fd, handled_to)
== MAP_FAILED)
- error (EXIT_FAILURE, errno, _("re-mmap failed"));
+ error_exit (errno, _("re-mmap failed"));
elfmap_off = handled_to;
process_chunk (fname, remap_base - to_keep,
diff --git a/src/strip.c b/src/strip.c
index d5b753d7..2a2cc801 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -28,7 +28,6 @@
#include <fnmatch.h>
#include <gelf.h>
#include <libelf.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdio.h>
@@ -130,8 +129,8 @@ static void cleanup_debug (void);
#define INTERNAL_ERROR(fname) \
do { \
cleanup_debug (); \
- error (EXIT_FAILURE, 0, _("%s: INTERNAL ERROR %d (%s): %s"), \
- fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1)); \
+ error_exit (0, _("%s: INTERNAL ERROR %d (%s): %s"), \
+ fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1)); \
} while (0)
@@ -243,14 +242,13 @@ main (int argc, char *argv[])
return EXIT_FAILURE;
if (reloc_debug && debug_fname == NULL)
- error (EXIT_FAILURE, 0,
- _("--reloc-debug-sections used without -f"));
+ error_exit (0, _("--reloc-debug-sections used without -f"));
if (reloc_debug_only &&
(debug_fname != NULL || remove_secs != NULL
|| remove_comment == true || remove_debug == true))
- error (EXIT_FAILURE, 0,
- _("--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --remove-section"));
+ error_exit (0,
+ _("--reloc-debug-sections-only incompatible with -f, -g, --remove-comment and --remove-section"));
/* Tell the library which version we are expecting. */
elf_version (EV_CURRENT);
@@ -264,8 +262,7 @@ main (int argc, char *argv[])
input file. */
if ((output_fname != NULL || debug_fname != NULL)
&& remaining + 1 < argc)
- error (EXIT_FAILURE, 0, _("\
-Only one input file allowed together with '-o' and '-f'"));
+ error_exit (0, _("Only one input file allowed together with '-o' and '-f'"));
/* Process all the remaining files. */
do
@@ -478,7 +475,7 @@ relocate (Elf *elf, GElf_Addr offset, const GElf_Sxword addend,
|| tdata->d_size - offset < size)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0, _("bad relocation"));
+ error_exit (0, _("bad relocation"));
}
/* When the symbol value is zero then for SHT_REL
@@ -578,7 +575,8 @@ remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr,
might want to change the size. */
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
- if (shdr->sh_type == SHT_REL || shdr->sh_type == SHT_RELA)
+ if (shdr != NULL
+ && (shdr->sh_type == SHT_REL || shdr->sh_type == SHT_RELA))
{
/* Make sure that this relocation section points to a
section to relocate with contents, that isn't
@@ -586,7 +584,8 @@ remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr,
Elf_Scn *tscn = elf_getscn (elf, shdr->sh_info);
GElf_Shdr tshdr_mem;
GElf_Shdr *tshdr = gelf_getshdr (tscn, &tshdr_mem);
- if (tshdr->sh_type == SHT_NOBITS
+ if (tshdr == NULL
+ || tshdr->sh_type == SHT_NOBITS
|| tshdr->sh_size == 0
|| (tshdr->sh_flags & SHF_ALLOC) != 0)
continue;
@@ -655,6 +654,8 @@ remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr,
if (is_rela)
{
GElf_Rela *r = gelf_getrela (reldata, relidx, &mem.rela);
+ if (r == NULL)
+ INTERNAL_ERROR (fname);
offset = r->r_offset;
addend = r->r_addend;
rtype = GELF_R_TYPE (r->r_info);
@@ -664,6 +665,8 @@ remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr,
else
{
GElf_Rel *r = gelf_getrel (reldata, relidx, &mem.rel);
+ if (r == NULL)
+ INTERNAL_ERROR (fname);
offset = r->r_offset;
addend = 0;
rtype = GELF_R_TYPE (r->r_info);
@@ -687,6 +690,8 @@ remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr,
GElf_Sym *sym = gelf_getsymshndx (symdata, xndxdata,
symndx, &sym_mem,
&xndx);
+ if (sym == NULL)
+ INTERNAL_ERROR (fname);
Elf32_Word sec = (sym->st_shndx == SHN_XINDEX
? xndx : sym->st_shndx);
@@ -1085,8 +1090,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (unlikely (elf_getshdrstrndx (elf, &shstrndx) < 0))
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("cannot get section header string table index"));
+ error_exit (0, _("cannot get section header string table index"));
}
/* Get the number of phdrs in the old file. */
@@ -1094,7 +1098,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (elf_getphdrnum (elf, &phnum) != 0)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0, _("cannot get number of phdrs"));
+ error_exit (0, _("cannot get number of phdrs"));
}
/* We now create a new ELF descriptor for the same file. We
@@ -1624,9 +1628,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (scn == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("while generating output file: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("while generating output file: %s"),
+ elf_errmsg (-1));
}
bool discard_section = (shdr_info[cnt].idx > 0
@@ -1723,8 +1726,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (shst == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, errno, _("while preparing output for '%s'"),
- output_fname ?: fname);
+ error_exit (errno, _("while preparing output for '%s'"),
+ output_fname ?: fname);
}
/* Assign new section numbers. */
@@ -1739,8 +1742,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (shdr_info[cnt].newscn == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("while generating output file: %s"),
+ error_exit (0,
+ _("while generating output file: %s"),
elf_errmsg (-1));
}
@@ -1784,9 +1787,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (shdr_info[cnt].newscn == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("while create section header section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("while create section header section: %s"),
+ elf_errmsg (-1));
}
elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx);
@@ -1794,8 +1796,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (shdr_info[cnt].data == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0, _("cannot allocate section data: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("cannot allocate section data: %s"),
+ elf_errmsg (-1));
}
char *debug_basename = basename (debug_fname_embed ?: debug_fname);
@@ -1847,9 +1849,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (shdr_info[cnt].newscn == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("while create section header section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("while create section header section: %s"),
+ elf_errmsg (-1));
}
elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == idx);
@@ -1859,15 +1860,13 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
if (shstrtab_data == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("while create section header string table: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("while create section header string table: %s"),
+ elf_errmsg (-1));
}
if (dwelf_strtab_finalize (shst, shstrtab_data) == NULL)
{
cleanup_debug ();
- error (EXIT_FAILURE, 0,
- _("no memory to create section header string table"));
+ error_exit (0, _("no memory to create section header string table"));
}
/* We have to set the section size. */
@@ -2764,7 +2763,7 @@ cannot set access and modification date of '%s'"), fname);
}
if (unlikely (close (fd) != 0))
- error (EXIT_FAILURE, errno, _("while closing '%s'"), fname);
+ error_exit (errno, _("while closing '%s'"), fname);
return result;
}
diff --git a/src/unstrip.c b/src/unstrip.c
index aacc9aad..d5bd1821 100644
--- a/src/unstrip.c
+++ b/src/unstrip.c
@@ -33,7 +33,6 @@
#include <errno.h>
#include <fcntl.h>
#include <fnmatch.h>
-#include <libintl.h>
#include <locale.h>
#include <stdbool.h>
#include <stdio.h>
@@ -225,7 +224,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
do \
{ \
if (unlikely (!(call))) \
- error (EXIT_FAILURE, 0, msg, elf_errmsg (-1)); \
+ error_exit (0, msg, elf_errmsg (-1)); \
} while (0)
/* Copy INELF to newly-created OUTELF, exit via error for any problems. */
@@ -316,7 +315,7 @@ make_directories (const char *path)
if (errno == ENOENT)
make_directories (dir);
else
- error (EXIT_FAILURE, errno, _("cannot create directory '%s'"), dir);
+ error_exit (errno, _("cannot create directory '%s'"), dir);
}
free (dir);
}
@@ -440,7 +439,7 @@ adjust_reloc (GElf_Xword *info,
if (ndx != STN_UNDEF)
{
if (ndx > map_size)
- error (EXIT_FAILURE, 0, "bad symbol ndx section");
+ error_exit (0, "bad symbol ndx section");
*info = GELF_R_INFO (map[ndx - 1], GELF_R_TYPE (*info));
}
}
@@ -456,7 +455,7 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
{
case SHT_REL:
if (shdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0, "REL section cannot have zero sh_entsize");
+ error_exit (0, "REL section cannot have zero sh_entsize");
for (size_t i = 0; i < shdr->sh_size / shdr->sh_entsize; ++i)
{
@@ -471,7 +470,7 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
case SHT_RELA:
if (shdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0, "RELA section cannot have zero sh_entsize");
+ error_exit (0, "RELA section cannot have zero sh_entsize");
for (size_t i = 0; i < shdr->sh_size / shdr->sh_entsize; ++i)
{
@@ -501,13 +500,13 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
/* We must expand the table and rejigger its contents. */
{
if (shdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0, "HASH section cannot have zero sh_entsize");
+ error_exit (0, "HASH section cannot have zero sh_entsize");
if (symshdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0, "Symbol table cannot have zero sh_entsize");
+ error_exit (0, "Symbol table cannot have zero sh_entsize");
const size_t nsym = symshdr->sh_size / symshdr->sh_entsize;
const size_t onent = shdr->sh_size / shdr->sh_entsize;
if (data->d_size != shdr->sh_size)
- error (EXIT_FAILURE, 0, "HASH section has inconsistent size");
+ error_exit (0, "HASH section has inconsistent size");
#define CONVERT_HASH(Hash_Word) \
{ \
@@ -517,7 +516,7 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
const Hash_Word *const old_bucket = &old_hash[2]; \
const Hash_Word *const old_chain = &old_bucket[nbucket]; \
if (onent != 2 + nbucket + nchain) \
- error (EXIT_FAILURE, 0, "HASH section has inconsistent entsize"); \
+ error_exit (0, "HASH section has inconsistent entsize"); \
\
const size_t nent = 2 + nbucket + nsym; \
Hash_Word *const new_hash = xcalloc (nent, sizeof new_hash[0]); \
@@ -562,10 +561,9 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
/* We must expand the table and move its elements around. */
{
if (shdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0,
- "GNU_versym section cannot have zero sh_entsize");
+ error_exit (0, "GNU_versym section cannot have zero sh_entsize");
if (symshdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0, "Symbol table cannot have zero sh_entsize");
+ error_exit (0, "Symbol table cannot have zero sh_entsize");
const size_t nent = symshdr->sh_size / symshdr->sh_entsize;
const size_t onent = shdr->sh_size / shdr->sh_entsize;
assert (nent >= onent);
@@ -591,9 +589,9 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr,
break;
default:
- error (EXIT_FAILURE, 0,
- _("unexpected section type in [%zu] with sh_link to symtab"),
- elf_ndxscn (inscn));
+ error_exit (0,
+ _("unexpected section type in [%zu] with sh_link to symtab"),
+ elf_ndxscn (inscn));
}
}
@@ -632,7 +630,7 @@ add_new_section_symbols (Elf_Scn *old_symscn, size_t old_shnum,
GElf_Shdr *shdr = gelf_getshdr (symscn, &shdr_mem);
ELF_CHECK (shdr != NULL, _("cannot get section header: %s"));
if (shdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0, "Symbol table section cannot have zero sh_entsize");
+ error_exit (0, "Symbol table section cannot have zero sh_entsize");
const size_t nsym = shdr->sh_size / shdr->sh_entsize;
size_t symndx_map[nsym - 1];
@@ -865,8 +863,8 @@ collect_symbols (Elf *outelf, bool rel, Elf_Scn *symscn, Elf_Scn *strscn,
if (sym->st_name >= strdata->d_size
|| memrchr (strdata->d_buf + sym->st_name, '\0',
strdata->d_size - sym->st_name) == NULL)
- error (EXIT_FAILURE, 0,
- _("invalid string offset in symbol [%zu]"), i);
+ error_exit (0,
+ _("invalid string offset in symbol [%zu]"), i);
struct symbol *s = &table[i - 1];
s->map = &map[i - 1];
@@ -948,13 +946,13 @@ compare_symbols_output (const void *a, const void *b)
/* binutils always puts section symbols in section index order. */
CMP (shndx);
else if (s1 != s2)
- error (EXIT_FAILURE, 0, "section symbols in unexpected order");
+ error_exit (0, "section symbols in unexpected order");
}
/* Nothing really matters, so preserve the original order. */
CMP (map);
else if (s1 != s2)
- error (EXIT_FAILURE, 0, "found two identical symbols");
+ error_exit (0, "found two identical symbols");
}
return cmp;
@@ -1024,8 +1022,8 @@ static inline const char *
get_section_name (size_t ndx, const GElf_Shdr *shdr, const Elf_Data *shstrtab)
{
if (shdr->sh_name >= shstrtab->d_size)
- error (EXIT_FAILURE, 0, _("cannot read section [%zu] name: %s"),
- ndx, elf_errmsg (-1));
+ error_exit (0, _("cannot read section [%zu] name: %s"),
+ ndx, elf_errmsg (-1));
return shstrtab->d_buf + shdr->sh_name;
}
@@ -1039,30 +1037,30 @@ get_group_sig (Elf *elf, GElf_Shdr *shdr)
Elf_Scn *symscn = elf_getscn (elf, shdr->sh_link);
if (symscn == NULL)
- error (EXIT_FAILURE, 0, _("bad sh_link for group section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("bad sh_link for group section: %s"),
+ elf_errmsg (-1));
GElf_Shdr symshdr_mem;
GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem);
if (symshdr == NULL)
- error (EXIT_FAILURE, 0, _("couldn't get shdr for group section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("couldn't get shdr for group section: %s"),
+ elf_errmsg (-1));
Elf_Data *symdata = elf_getdata (symscn, NULL);
if (symdata == NULL)
- error (EXIT_FAILURE, 0, _("bad data for group symbol section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("bad data for group symbol section: %s"),
+ elf_errmsg (-1));
GElf_Sym sym_mem;
GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem);
if (sym == NULL)
- error (EXIT_FAILURE, 0, _("couldn't get symbol for group section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("couldn't get symbol for group section: %s"),
+ elf_errmsg (-1));
const char *sig = elf_strptr (elf, symshdr->sh_link, sym->st_name);
if (sig == NULL)
- error (EXIT_FAILURE, 0, _("bad symbol name for group section: %s"),
- elf_errmsg (-1));
+ error_exit (0, _("bad symbol name for group section: %s"),
+ elf_errmsg (-1));
return sig;
}
@@ -1154,8 +1152,8 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab,
bool class32 = ehdr.e32.e_ident[EI_CLASS] == ELFCLASS32;
size_t shsize = class32 ? sizeof (Elf32_Shdr) : sizeof (Elf64_Shdr);
if (unlikely (shnum == 0 || shnum > SIZE_MAX / shsize + 1))
- error (EXIT_FAILURE, 0, _("overflow with shnum = %zu in '%s' section"),
- (size_t) shnum, ".gnu.prelink_undo");
+ error_exit (0, _("overflow with shnum = %zu in '%s' section"),
+ (size_t) shnum, ".gnu.prelink_undo");
--shnum;
@@ -1165,8 +1163,8 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab,
src.d_type = ELF_T_SHDR;
if ((size_t) (src.d_buf - undodata->d_buf) > undodata->d_size
|| undodata->d_size - (src.d_buf - undodata->d_buf) != src.d_size)
- error (EXIT_FAILURE, 0, _("invalid contents in '%s' section"),
- ".gnu.prelink_undo");
+ error_exit (0, _("invalid contents in '%s' section"),
+ ".gnu.prelink_undo");
const size_t shdr_bytes = shnum * shsize;
void *shdr = xmalloc (shdr_bytes);
@@ -1363,7 +1361,7 @@ new_shstrtab (Elf *unstripped, size_t unstripped_shnum,
ELF_CHECK (elf_flagdata (strtab_data, ELF_C_SET, ELF_F_DIRTY),
_("cannot update section header string table data: %s"));
if (dwelf_strtab_finalize (strtab, strtab_data) == NULL)
- error (EXIT_FAILURE, 0, "Not enough memory to create string table");
+ error_exit (0, "Not enough memory to create string table");
/* Update the sh_name fields of sections we aren't modifying later. */
for (size_t i = 0; i < unstripped_shnum - 1; ++i)
@@ -1405,11 +1403,11 @@ copy_elided_sections (Elf *unstripped, Elf *stripped,
_("cannot get section count: %s"));
if (unlikely (stripped_shnum > unstripped_shnum))
- error (EXIT_FAILURE, 0, _("\
+ error_exit (0, _("\
more sections in stripped file than debug file -- arguments reversed?"));
if (unlikely (stripped_shnum == 0))
- error (EXIT_FAILURE, 0, _("no sections in stripped file"));
+ error_exit (0, _("no sections in stripped file"));
/* Used as sanity check for allocated section offset, if the section
offset needs to be preserved. We want to know the max size of the
@@ -1432,8 +1430,8 @@ more sections in stripped file than debug file -- arguments reversed?"));
sections[i].name = elf_strptr (stripped, stripped_shstrndx,
shdr->sh_name);
if (sections[i].name == NULL)
- error (EXIT_FAILURE, 0, _("cannot read section [%zu] name: %s"),
- elf_ndxscn (scn), elf_errmsg (-1));
+ error_exit (0, _("cannot read section [%zu] name: %s"),
+ elf_ndxscn (scn), elf_errmsg (-1));
sections[i].scn = scn;
sections[i].outscn = NULL;
sections[i].strent = NULL;
@@ -1552,9 +1550,8 @@ more sections in stripped file than debug file -- arguments reversed?"));
}
if (sec == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot find matching section for [%zu] '%s'"),
- elf_ndxscn (scn), name);
+ error_exit (0, _("cannot find matching section for [%zu] '%s'"),
+ elf_ndxscn (scn), name);
sec->outscn = scn;
}
@@ -1689,17 +1686,17 @@ more sections in stripped file than debug file -- arguments reversed?"));
if (sec->shdr.sh_link != SHN_UNDEF)
{
if (sec->shdr.sh_link > ndx_sec_num)
- error (EXIT_FAILURE, 0,
- "section [%zd] has invalid sh_link %" PRId32,
- elf_ndxscn (sec->scn), sec->shdr.sh_link);
+ error_exit (0,
+ "section [%zd] has invalid sh_link %" PRId32,
+ elf_ndxscn (sec->scn), sec->shdr.sh_link);
shdr_mem.sh_link = ndx_section[sec->shdr.sh_link - 1];
}
if (SH_INFO_LINK_P (&sec->shdr) && sec->shdr.sh_info != 0)
{
if (sec->shdr.sh_info > ndx_sec_num)
- error (EXIT_FAILURE, 0,
- "section [%zd] has invalid sh_info %" PRId32,
- elf_ndxscn (sec->scn), sec->shdr.sh_info);
+ error_exit (0,
+ "section [%zd] has invalid sh_info %" PRId32,
+ elf_ndxscn (sec->scn), sec->shdr.sh_info);
shdr_mem.sh_info = ndx_section[sec->shdr.sh_info - 1];
}
@@ -1717,9 +1714,9 @@ more sections in stripped file than debug file -- arguments reversed?"));
if (stripped_ehdr->e_type != ET_REL && (shdr_mem.sh_flags & SHF_ALLOC))
{
if (max_off > 0 && sec->shdr.sh_offset > (Elf64_Off) max_off)
- error (EXIT_FAILURE, 0,
- "allocated section offset too large [%zd] %" PRIx64,
- elf_ndxscn (sec->scn), sec->shdr.sh_offset);
+ error_exit (0,
+ "allocated section offset too large [%zd] %" PRIx64,
+ elf_ndxscn (sec->scn), sec->shdr.sh_offset);
shdr_mem.sh_offset = sec->shdr.sh_offset;
placed[elf_ndxscn (sec->outscn) - 1] = true;
@@ -1740,8 +1737,8 @@ more sections in stripped file than debug file -- arguments reversed?"));
Elf_Data *shndxdata = NULL; /* XXX */
if (shdr_mem.sh_entsize == 0)
- error (EXIT_FAILURE, 0,
- "SYMTAB section cannot have zero sh_entsize");
+ error_exit (0,
+ "SYMTAB section cannot have zero sh_entsize");
for (size_t i = 1; i < shdr_mem.sh_size / shdr_mem.sh_entsize; ++i)
{
GElf_Sym sym_mem;
@@ -1756,8 +1753,8 @@ more sections in stripped file than debug file -- arguments reversed?"));
if (shndx != SHN_UNDEF && shndx < SHN_LORESERVE)
{
if (shndx >= stripped_shnum)
- error (EXIT_FAILURE, 0,
- _("symbol [%zu] has invalid section index"), i);
+ error_exit (0,
+ _("symbol [%zu] has invalid section index"), i);
shndx = ndx_section[shndx - 1];
if (shndx < SHN_LORESERVE)
@@ -1788,8 +1785,8 @@ more sections in stripped file than debug file -- arguments reversed?"));
Elf32_Word *shndx = (Elf32_Word *) outdata->d_buf;
for (size_t i = 1; i < shdr_mem.sh_size / sizeof (Elf32_Word); ++i)
if (shndx[i] == SHN_UNDEF || shndx[i] >= stripped_shnum)
- error (EXIT_FAILURE, 0,
- _("group has invalid section index [%zd]"), i);
+ error_exit (0,
+ _("group has invalid section index [%zd]"), i);
else
shndx[i] = ndx_section[shndx[i] - 1];
}
@@ -1815,8 +1812,8 @@ more sections in stripped file than debug file -- arguments reversed?"));
GElf_Shdr *shdr = gelf_getshdr (unstripped_symtab, &shdr_mem);
ELF_CHECK (shdr != NULL, _("cannot get section header: %s"));
if (shdr->sh_entsize == 0)
- error (EXIT_FAILURE, 0,
- "unstripped SYMTAB section cannot have zero sh_entsize");
+ error_exit (0,
+ "unstripped SYMTAB section cannot have zero sh_entsize");
const size_t unstripped_nsym = shdr->sh_size / shdr->sh_entsize;
/* First collect all the symbols from both tables. */
@@ -1936,7 +1933,7 @@ more sections in stripped file than debug file -- arguments reversed?"));
}
if (dwelf_strtab_finalize (symstrtab, symstrdata) == NULL)
- error (EXIT_FAILURE, 0, "Not enough memory to create symbol table");
+ error_exit (0, "Not enough memory to create symbol table");
elf_flagdata (symstrdata, ELF_C_SET, ELF_F_DIRTY);
@@ -2194,7 +2191,7 @@ DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u"),
(stripped_ehdr->e_type == ET_REL
? DEFFILEMODE : ACCESSPERMS));
if (outfd < 0)
- error (EXIT_FAILURE, errno, _("cannot open '%s'"), output_file);
+ error_exit (errno, _("cannot open '%s'"), output_file);
Elf *outelf = elf_begin (outfd, ELF_C_WRITE, NULL);
ELF_CHECK (outelf != NULL, _("cannot create ELF descriptor: %s"));
@@ -2223,7 +2220,7 @@ open_file (const char *file, bool writable)
{
int fd = open (file, writable ? O_RDWR : O_RDONLY);
if (fd < 0)
- error (EXIT_FAILURE, errno, _("cannot open '%s'"), file);
+ error_exit (errno, _("cannot open '%s'"), file);
return fd;
}
@@ -2306,13 +2303,13 @@ handle_dwfl_module (const char *output_file, bool create_dirs, bool force,
const char *modname = dwfl_module_info (mod, NULL, NULL, NULL,
NULL, NULL, &file, NULL);
if (file == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot find stripped file for module '%s': %s"),
- modname, dwfl_errmsg (-1));
+ error_exit (0,
+ _("cannot find stripped file for module '%s': %s"),
+ modname, dwfl_errmsg (-1));
else
- error (EXIT_FAILURE, 0,
- _("cannot open stripped file '%s' for module '%s': %s"),
- modname, file, dwfl_errmsg (-1));
+ error_exit (0,
+ _("cannot open stripped file '%s' for module '%s': %s"),
+ modname, file, dwfl_errmsg (-1));
}
Elf *debug = dwarf_getelf (dwfl_module_getdwarf (mod, &bias));
@@ -2325,13 +2322,13 @@ handle_dwfl_module (const char *output_file, bool create_dirs, bool force,
const char *modname = dwfl_module_info (mod, NULL, NULL, NULL,
NULL, NULL, NULL, &file);
if (file == NULL)
- error (EXIT_FAILURE, 0,
- _("cannot find debug file for module '%s': %s"),
- modname, dwfl_errmsg (-1));
+ error_exit (0,
+ _("cannot find debug file for module '%s': %s"),
+ modname, dwfl_errmsg (-1));
else
- error (EXIT_FAILURE, 0,
- _("cannot open debug file '%s' for module '%s': %s"),
- modname, file, dwfl_errmsg (-1));
+ error_exit (0,
+ _("cannot open debug file '%s' for module '%s': %s"),
+ modname, file, dwfl_errmsg (-1));
}
if (debug == stripped)
@@ -2343,8 +2340,8 @@ handle_dwfl_module (const char *output_file, bool create_dirs, bool force,
const char *file;
const char *modname = dwfl_module_info (mod, NULL, NULL, NULL,
NULL, NULL, &file, NULL);
- error (EXIT_FAILURE, 0, _("module '%s' file '%s' is not stripped"),
- modname, file);
+ error_exit (0, _("module '%s' file '%s' is not stripped"),
+ modname, file);
}
}
@@ -2373,10 +2370,10 @@ handle_dwfl_module (const char *output_file, bool create_dirs, bool force,
get sh_addr values assigned have them, even ones not used in DWARF.
They might still be used in the symbol table. */
if (dwfl_module_relocations (mod) < 0)
- error (EXIT_FAILURE, 0,
- _("cannot cache section addresses for module '%s': %s"),
- dwfl_module_info (mod, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
- dwfl_errmsg (-1));
+ error_exit (0,
+ _("cannot cache section addresses for module '%s': %s"),
+ dwfl_module_info (mod, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
+ dwfl_errmsg (-1));
}
handle_file (output_file, create_dirs, stripped, &stripped_ehdr, debug);
@@ -2502,7 +2499,7 @@ handle_implicit_modules (const struct arg_info *info)
struct match_module_info mmi = { info->args, NULL, info->match_files };
ptrdiff_t offset = dwfl_getmodules (info->dwfl, &match_module, &mmi, 0);
if (offset == 0)
- error (EXIT_FAILURE, 0, _("no matching modules found"));
+ error_exit (0, _("no matching modules found"));
if (info->list)
do
@@ -2512,7 +2509,7 @@ handle_implicit_modules (const struct arg_info *info)
else if (info->output_dir == NULL)
{
if (dwfl_getmodules (info->dwfl, &match_module, &mmi, offset) != 0)
- error (EXIT_FAILURE, 0, _("matched more than one module"));
+ error_exit (0, _("matched more than one module"));
handle_dwfl_module (info->output_file, false, info->force, mmi.found,
info->all, info->ignore, info->relocate);
}
diff --git a/tests/ChangeLog b/tests/ChangeLog
index a59cdd51..b656029f 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,189 @@
+2022-11-01 Aaron Merey <amerey@redhat.com>
+
+ * run-debuginfod-section.sh (RPM_BUILDID): Use buildid from non-zstd
+ compressed rpm.
+
+2022-10-31 Aaron Merey <amerey@redhat.com>
+
+ * Makefile.am (TESTS): Add run-debuginfod-section.sh.
+ * run-debuginfod-section.sh: New test.
+
+2022-09-20 Yonggang Luo <luoyonggang@gmail.com>
+
+ * Makefile.am (EXTRA_DIST): Remove debuginfod-rpms/hello2.spec.
+ Add debuginfod-rpms/hello{2,3}.specfile.
+ * tests/debuginfod-rpms/hello2.spec.: Renamed to...
+ * tests/debuginfod-rpms/hello2.specfile: ...this.
+ * tests/debuginfod-rpms/hello3.spec.: Renamed to...
+ * tests/debuginfod-rpms/hello3.specfile: ...this.
+
+2022-10-28 Arsen Arsenović <arsen@aarsen.me>
+
+ * run-readelf-s.sh: Add tests for the --syms alias.
+
+2022-10-27 Mark Wielaard <mark@klomp.org>
+
+ * backtrace-subr.sh: Use grep -E instead of egrep, use grep -F
+ instead of fgrep.
+ * debuginfod-subr.sh: Likewise.
+ * run-debuginfod-archive-rename.sh: Likewise.
+ * run-debuginfod-extraction-passive.sh: Likewise.
+ * run-debuginfod-response-headers.sh: Likewise.
+ * run-debuginfod-webapi-concurrency.sh: Likewise.
+ * run-strip-test.sh: Likewise.
+
+2022-10-16 Mark Wielaard <mark@klomp.org>
+
+ * dwfl-report-offline-memory.c: Include config.h first.
+
+2022-10-16 Mark Wielaard <mark@klomp.org>
+
+ * dwfl-report-offline-memory.c (main): Check lseek, read and malloc
+ results with correct types.
+
+2022-09-13 Aleksei Vetrov <vvvvvv@google.com>
+
+ * Makefile.am (check_PROGRAMS): Add dwfl-report-offline-memory.
+ (TESTS): Add run-dwfl-report-offline-memory.sh.
+ (EXTRA_DIST): Likewise.
+ (dwfl_report_offline_memory_LDADD): New variable.
+ * dwfl-report-offline-memory.c: New file.
+ * run-dwfl-report-offline-memory.sh: Likewise.
+
+2022-09-13 Khem Raj <raj.khem@gmail.com>
+
+ * Makefile.am (*_LDADD): Add libeu if needed for error.
+
+2022-08-26 Mark Wielaard <mark@klomp.org>
+
+ * run-ar-N.sh: New test.
+ * Makefile.am (TESTS): Add run-ar-N.sh.
+ (EXTRA_DIST): Likewise.
+
+2022-09-02 Frank Ch. Eigler <fche@redhat.com>
+
+ * run-debuginfod-response-headers.sh: Use case-insensitive
+ header name matches. Use socat & sleep for greater
+ portability.
+ * run-debuginfod-sizetime.sh: Update for debuginfod-find -v -v.
+
+2022-07-15 Noah Sanci <nsanci@redhat.com>
+
+ * run-debuginfod-response-headers.sh: Added test
+ to ensure that federated servers pass headers down to
+ queried server.
+
+2022-08-04 Sergei Trofimovich <slyich@gmail.com>
+
+ * low_high_pc.c (handle_die): Drop redundant 'lx' suffix.
+
+2022-08-01 Mark Wielaard <mark@klomp.org>
+
+ * run-debuginfod-percent-escape.sh: Add initial scan wait_ready.
+
+2022-04-28 Di Chen <dichen@redhat.com>
+
+ * run-readelf-Dd.sh: New test.
+ * Makefile.am (TESTS): Add run-readelf-Dd.sh.
+ (EXTRA_DIST): Likewise.
+
+2022-06-01 Mark Wielaard <mark@klomp.org>
+
+ * testfile-arm-flags.bz2: New test file.
+ * run-readelf-arm-flags.sh: New test.
+ * Makefile.am (TESTS): Add run-readelf-arm-flags.sh.
+ (EXTRA_DIST): Add readelf-arm-flags.sh and testfile-arm-flags.bz2
+
+2022-05-13 Noah Sanci <nsanci@redhat.com>
+
+ * run-debuginfod-fd-prefetch-caches.sh: Rewritten.
+
+2022-06-02 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (TESTS): Add run-debuginfod-federation-metrics.sh
+ only when OLD_LIBMICROHTTPD conditional is not set.
+
+2022-04-24 Mark Wielaard <mark@klomp.org>
+
+ * run-debuginfod-webapi-concurrency.sh: Fix PR number in xfail.
+
+2022-04-23 Mark Wielaard <mark@klomp.org>
+
+ * run-debuginfod-webapi-concurrency.sh: Lower parallel lookups.
+
+2022-03-01 Di Chen <dichen@redhat.com>
+
+ * alldts.c (dtflags): Put DT_NULL last.
+ * run-alldts.sh: NULL comes last.
+ * run-readelf-d.sh: Adjust Dynamic entries, remove DT_NULL
+ padding.
+
+2022-04-14 Mark Wielaard <mark@klomp.org>
+
+ * run-debuginfod-federation-sqlite.sh: Don't try to corrupt
+ sqlite database.
+
+2022-04-13 Aaron Merey <amerey@redhat.com>
+
+ * Makefile.am (TESTS): Remove run-debuginfod-000-permission.sh
+ and add run-debuginfod-negative-cache.sh.
+ (EXTRA_DIST): Likewise.
+ * run-debuginfod-federation-link.sh: Update comments about
+ negative-hit file.
+ * run-debuginfod-federation-metrics.sh: Likewise.
+ * run-debuginfod-federation-sqlite.sh: Likewise.
+ * run-debuginfod-tmp-home.sh: Likewise.
+
+2022-03-20 Mark Wielaard <mark@klomp.org>
+
+ * run-large-elf-file.sh: Check elf class of addsections binary.
+
+2021-12-17 Mark Wielaard <mark@klomp.org>
+
+ * run-debuginfod-query-retry.sh: Use /bin/sh instead of /bin/ls.
+
+2021-12-09 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod-subr.sh (xfail): New proc.
+ * run-debuginfod-webapi-concurrency.sh: New test for -C.
+ * Makefile.am: List it.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (EXTRA_NLIST_CFLAGS): New variable depends on
+ USE_ADDRESS_SANITIZER.
+ (test_nlist_CFLAGS): Add EXTRA_NLIST_CFLAGS.
+
+2021-12-04 Mark Wielaard <mark@klomp.org>
+
+ * varlocs.c (dwarf_encoding_string): Return "<unknown encoding>" instead
+ of NULL.
+ (dwarf_tag_string): Return "<unknown tag>" instead of NULL.
+ (dwarf_attr_string): Return "<unknown attr>" instead of NULL.
+ (dwarf_form_string): Return "<unknown form>" instead of NULL.
+ (dwarf_opcode_string): Return "<unknown opcode>" instead of NULL.
+ (print_expr): Remove assert.
+
+2021-11-18 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (dwfl_proc_attach_LDFLAGS): Add -rdynamic.
+
+2021-11-11 Mark Wielaard <mark@klomp.org>
+
+ * run-debuginfod-000-permission.sh: Don't set DEBUGINFOD_TIMEOUT.
+ * run-debuginfod-archive-groom.sh: Likewise.
+ * run-debuginfod-archive-rename.sh: Likewise.
+ * run-debuginfod-archive-test.sh: Likewise.
+ * run-debuginfod-artifact-running.sh: Likewise.
+ * run-debuginfod-dlopen.sh: Likewise.
+ * run-debuginfod-extraction.sh: Likewise.
+ * run-debuginfod-federation-link.sh: Likewise.
+ * run-debuginfod-federation-metrics.sh: Likewise.
+ * run-debuginfod-federation-sqlite.sh: Likewise.
+ * run-debuginfod-malformed.sh: Likewise.
+ * run-debuginfod-tmp-home.sh: Likewise.
+ * run-debuginfod-writable.sh: Likewise.
+
2021-11-05 Frank Ch. Eigler <fche@redhat.com>
PR28430
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bfb8b13a..356b3fbf 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -47,6 +47,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
alldts typeiter typeiter2 low_high_pc \
test-elf_cntl_gelf_getshdr dwflsyms dwfllines \
dwfl-report-elf-align dwfl-report-segment-contiguous \
+ dwfl-report-offline-memory \
varlocs backtrace backtrace-child \
backtrace-data backtrace-dwarf debuglink debugaltlink \
buildid deleted deleted-lib.so aggregate_size peel_type \
@@ -87,13 +88,20 @@ endif
# test_nlist checks its own symbol table, and expects various symbols
# to be in the order as specified in the source file. Explicitly set
-# minimal CFLAGS
+# minimal CFLAGS. But add address sanitizer if in use.
+if USE_ADDRESS_SANITIZER
+EXTRA_NLIST_CFLAGS=-fsanitize=address
+else
+EXTRA_NLIST_CFLAGS=
+endif
+
test-nlist$(EXEEXT): test-nlist.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) \
$(test_nlist_CFLAGS) $(GCOV_FLAGS) -o $@ $< $(test_nlist_LDADD)
TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
+ run-ar-N.sh \
update1 update2 update3 update4 \
run-show-die-info.sh run-get-files.sh run-get-lines.sh \
run-next-files.sh run-next-lines.sh \
@@ -142,6 +150,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-readelf-mixed-corenote.sh run-dwfllines.sh \
run-readelf-variant.sh run-readelf-fat-lto.sh \
run-dwfl-report-elf-align.sh run-addr2line-test.sh \
+ run-dwfl-report-offline-memory.sh \
run-addr2line-i-test.sh run-addr2line-i-lex-test.sh \
run-addr2line-i-demangle-test.sh run-addr2line-alt-debugpath.sh \
run-varlocs.sh run-exprlocs.sh run-varlocs-vars.sh run-funcretval.sh \
@@ -158,6 +167,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
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-readelf-zx.sh run-readelf-zp.sh \
+ run-readelf-arm-flags.sh \
run-readelf-addr.sh run-readelf-str.sh \
run-readelf-multi-noline.sh \
run-readelf-types.sh \
@@ -191,7 +201,8 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
msg_tst system-elf-libelf-test \
$(asm_TESTS) run-disasm-bpf.sh run-low_high_pc-dw-form-indirect.sh \
run-nvidia-extended-linemap-libdw.sh run-nvidia-extended-linemap-readelf.sh \
- run-readelf-dw-form-indirect.sh run-strip-largealign.sh
+ run-readelf-dw-form-indirect.sh run-strip-largealign.sh \
+ run-readelf-Dd.sh
if !BIARCH
export ELFUTILS_DISABLE_BIARCH = 1
@@ -221,7 +232,7 @@ TESTS += run-debuginfod-dlopen.sh \
run-debuginfod-file.sh \
run-debuginfod-sizetime.sh \
run-debuginfod-malformed.sh \
- run-debuginfod-000-permission.sh \
+ run-debuginfod-negative-cache.sh \
run-debuginfod-tmp-home.sh \
run-debuginfod-writable.sh \
run-debuginfod-no-urls.sh \
@@ -232,15 +243,22 @@ TESTS += run-debuginfod-dlopen.sh \
run-debuginfod-archive-test.sh \
run-debuginfod-federation-sqlite.sh \
run-debuginfod-federation-link.sh \
- run-debuginfod-federation-metrics.sh \
run-debuginfod-percent-escape.sh \
run-debuginfod-x-forwarded-for.sh \
run-debuginfod-response-headers.sh \
- run-debuginfod-extraction-passive.sh
+ run-debuginfod-extraction-passive.sh \
+ run-debuginfod-webapi-concurrency.sh \
+ run-debuginfod-section.sh
+endif
+if !OLD_LIBMICROHTTPD
+# Will crash on too old libmicrohttpd
+# Too many open file descriptors confuses libmicrohttpd < 0.9.51
+TESTS += run-debuginfod-federation-metrics.sh
endif
endif
EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
+ run-ar-N.sh \
run-show-die-info.sh run-get-files.sh run-get-lines.sh \
run-next-files.sh run-next-lines.sh testfile-only-debug-line.bz2 \
run-get-pubnames.sh run-get-aranges.sh \
@@ -336,6 +354,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.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 \
+ run-readelf-arm-flags.sh testfile-arm-flags.bz2 \
run-readelf-addr.sh run-readelf-str.sh \
run-readelf-multi-noline.sh testfile_multi_noline.bz2 \
run-readelf-types.sh \
@@ -368,6 +387,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile56.bz2 testfile57.bz2 testfile58.bz2 \
run-typeiter.sh testfile59.bz2 \
run-readelf-d.sh testlib_dynseg.so.bz2 \
+ run-readelf-Dd.sh \
testfile-s390x-hash-both.bz2 \
run-readelf-gdb_index.sh testfilegdbindex5.bz2 \
testfilegdbindex7.bz2 \
@@ -396,6 +416,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile69.core.bz2 testfile69.so.bz2 \
testfile70.core.bz2 testfile70.exec.bz2 testfile71.bz2 \
run-dwfllines.sh run-dwfl-report-elf-align.sh \
+ run-dwfl-report-offline-memory.sh \
testfile-dwfl-report-elf-align-shlib.so.bz2 \
testfilenolines.bz2 test-core-lib.so.bz2 test-core.core.bz2 \
test-core.exec.bz2 run-addr2line-test.sh \
@@ -522,7 +543,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-debuginfod-sizetime.sh \
run-debuginfod-dlopen.sh \
run-debuginfod-malformed.sh \
- run-debuginfod-000-permission.sh \
+ run-debuginfod-negative-cache.sh \
run-debuginfod-tmp-home.sh \
run-debuginfod-writable.sh \
run-debuginfod-no-urls.sh \
@@ -533,6 +554,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-debuginfod-percent-escape.sh \
run-debuginfod-response-headers.sh \
run-debuginfod-extraction-passive.sh \
+ run-debuginfod-webapi-concurrency.sh \
+ run-debuginfod-section.sh \
debuginfod-rpms/fedora30/hello2-1.0-2.src.rpm \
debuginfod-rpms/fedora30/hello2-1.0-2.x86_64.rpm \
debuginfod-rpms/fedora30/hello2-debuginfo-1.0-2.x86_64.rpm \
@@ -545,7 +568,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
debuginfod-rpms/fedora31/hello3-debugsource-1.0-2.x86_64.rpm \
debuginfod-rpms/fedora31/hello3-two-1.0-2.x86_64.rpm \
debuginfod-rpms/fedora31/hello3-two-debuginfo-1.0-2.x86_64.rpm \
- debuginfod-rpms/hello2.spec. \
+ debuginfod-rpms/hello2.specfile \
+ debuginfod-rpms/hello3.specfile \
debuginfod-rpms/rhel6/hello2-1.0-2.i686.rpm \
debuginfod-rpms/rhel6/hello2-1.0-2.src.rpm \
debuginfod-rpms/rhel6/hello2-debuginfo-1.0-2.i686.rpm \
@@ -630,17 +654,17 @@ libeu = ../lib/libeu.a
arextract_LDADD = $(libelf)
arsymtest_LDADD = $(libelf)
newfile_LDADD = $(libelf)
-saridx_LDADD = $(libelf)
+saridx_LDADD = $(libeu) $(libelf)
scnnames_LDADD = $(libelf)
-sectiondump_LDADD = $(libelf)
+sectiondump_LDADD = $(libeu) $(libelf)
showptable_LDADD = $(libelf)
hash_LDADD = $(libelf)
-test_nlist_CFLAGS =-g -O0
+test_nlist_CFLAGS =-g -O0 $(EXTRA_NLIST_CFLAGS)
test_nlist_LDADD = $(libelf)
msg_tst_LDADD = $(libelf)
newscn_LDADD = $(libelf)
-early_offscn_LDADD = $(libelf)
-ecp_LDADD = $(libelf)
+early_offscn_LDADD = $(libeu) $(libelf)
+ecp_LDADD = $(libeu) $(libelf)
update1_LDADD = $(libelf)
update2_LDADD = $(libelf)
update3_LDADD = $(libdw) $(libelf)
@@ -654,12 +678,12 @@ get_files_LDADD = $(libdw) $(libelf)
next_files_LDADD = $(libdw) $(libelf)
get_aranges_LDADD = $(libdw) $(libelf)
allfcts_LDADD = $(libdw) $(libelf)
-line2addr_LDADD = $(libdw) $(argp_LDADD)
-addrscopes_LDADD = $(libdw) $(argp_LDADD)
-funcscopes_LDADD = $(libdw) $(argp_LDADD)
-funcretval_LDADD = $(libdw) $(argp_LDADD)
-allregs_LDADD = $(libdw) $(argp_LDADD)
-find_prologues_LDADD = $(libdw) $(argp_LDADD)
+line2addr_LDADD = $(libeu) $(libdw) $(argp_LDADD)
+addrscopes_LDADD = $(libeu) $(libdw) $(argp_LDADD)
+funcscopes_LDADD = $(libeu) $(libdw) $(argp_LDADD)
+funcretval_LDADD = $(libeu) $(libdw) $(argp_LDADD)
+allregs_LDADD = $(libeu) $(libdw) $(argp_LDADD)
+find_prologues_LDADD = $(libeu) $(libdw) $(argp_LDADD)
#show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf)
asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
asm_tst2_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
@@ -670,19 +694,19 @@ asm_tst6_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
asm_tst7_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
asm_tst8_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
asm_tst9_LDADD = $(libasm) $(libebl) $(libelf) $(libdw)
-dwflmodtest_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD)
-rdwrmmap_LDADD = $(libelf)
+dwflmodtest_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) $(argp_LDADD)
+rdwrmmap_LDADD = $(libeu) $(libelf)
dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf)
arls_LDADD = $(libelf)
-dwfl_bug_fd_leak_LDADD = $(libdw) $(libebl) $(libelf)
+dwfl_bug_fd_leak_LDADD = $(libeu) $(libdw) $(libebl) $(libelf)
dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf)
-dwfl_bug_getmodules_LDADD = $(libdw) $(libebl) $(libelf)
-dwfl_addr_sect_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD)
+dwfl_bug_getmodules_LDADD = $(libeu) $(libdw) $(libebl) $(libelf)
+dwfl_addr_sect_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) $(argp_LDADD)
dwarf_getmacros_LDADD = $(libdw)
dwarf_ranges_LDADD = $(libdw)
dwarf_getstring_LDADD = $(libdw)
addrcfi_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD)
-dwarfcfi_LDADD = $(libdw) $(libelf)
+dwarfcfi_LDADD = $(libeu) $(libdw) $(libelf)
test_flag_nobits_LDADD = $(libelf)
rerequest_tag_LDADD = $(libdw)
alldts_LDADD = $(libdw) $(libelf)
@@ -691,35 +715,36 @@ typeiter2_LDADD = $(libdw) $(libelf)
low_high_pc_LDADD = $(libdw) $(libelf) $(argp_LDADD)
test_elf_cntl_gelf_getshdr_LDADD = $(libelf)
dwflsyms_LDADD = $(libdw) $(libelf) $(argp_LDADD)
-dwfllines_LDADD = $(libdw) $(libelf) $(argp_LDADD)
-dwfl_report_elf_align_LDADD = $(libdw)
+dwfllines_LDADD = $(libeu) $(libdw) $(libelf) $(argp_LDADD)
+dwfl_report_elf_align_LDADD = $(libeu) $(libdw)
+dwfl_report_offline_memory_LDADD = $(libeu) $(libdw)
dwfl_report_segment_contiguous_LDADD = $(libdw) $(libebl) $(libelf)
-varlocs_LDADD = $(libdw) $(libelf) $(argp_LDADD)
-backtrace_LDADD = $(libdw) $(libelf) $(argp_LDADD)
+varlocs_LDADD = $(libeu) $(libdw) $(libelf) $(argp_LDADD)
+backtrace_LDADD = $(libeu) $(libdw) $(libelf) $(argp_LDADD)
# backtrace-child-biarch also uses those *_CFLAGS and *_LDLAGS variables:
backtrace_child_CFLAGS = $(fpie_CFLAGS)
backtrace_child_LDFLAGS = -pie -pthread
backtrace_child_biarch_SOURCES = backtrace-child.c
-backtrace_data_LDADD = $(libdw) $(libelf)
+backtrace_data_LDADD = $(libeu) $(libdw) $(libelf)
backtrace_dwarf_CFLAGS = -Wno-unused-parameter
-backtrace_dwarf_LDADD = $(libdw) $(libelf)
-debuglink_LDADD = $(libdw) $(libelf)
-debugaltlink_LDADD = $(libdw) $(libelf)
-buildid_LDADD = $(libdw) $(libelf)
+backtrace_dwarf_LDADD = $(libeu) $(libdw) $(libelf)
+debuglink_LDADD = $(libeu) $(libdw) $(libelf)
+debugaltlink_LDADD = $(libeu) $(libdw) $(libelf)
+buildid_LDADD = $(libeu) $(libdw) $(libelf)
deleted_LDADD = ./deleted-lib.so
deleted_lib_so_LDFLAGS = -shared
deleted_lib_so_CFLAGS = $(fpic_CFLAGS) -fasynchronous-unwind-tables
aggregate_size_LDADD = $(libdw) $(libelf) $(argp_LDADD)
peel_type_LDADD = $(libdw) $(libelf) $(argp_LDADD)
-vdsosyms_LDADD = $(libdw) $(libelf)
-getsrc_die_LDADD = $(libdw) $(libelf)
+vdsosyms_LDADD = $(libeu) $(libdw) $(libelf)
+getsrc_die_LDADD = $(libeu) $(libdw) $(libelf)
strptr_LDADD = $(libelf)
newdata_LDADD = $(libelf)
elfstrtab_LDADD = $(libelf)
-dwfl_proc_attach_LDADD = $(libdw)
-dwfl_proc_attach_LDFLAGS = -pthread $(AM_LDFLAGS)
+dwfl_proc_attach_LDADD = $(libeu) $(libdw)
+dwfl_proc_attach_LDFLAGS = -pthread -rdynamic $(AM_LDFLAGS)
elfshphehdr_LDADD =$(libelf)
-elfstrmerge_LDADD = $(libdw) $(libelf)
+elfstrmerge_LDADD = $(libeu) $(libdw) $(libelf)
dwelfgnucompressed_LDADD = $(libelf) $(libdw)
elfgetchdr_LDADD = $(libelf) $(libdw)
elfgetzdata_LDADD = $(libelf)
@@ -735,7 +760,7 @@ get_units_split_LDADD = $(libdw)
attr_integrate_skel_LDADD = $(libdw)
all_dwarf_ranges_LDADD = $(libdw)
unit_info_LDADD = $(libdw)
-next_cfi_LDADD = $(libelf) $(libdw)
+next_cfi_LDADD = $(libeu) $(libelf) $(libdw)
elfcopy_LDADD = $(libelf)
addsections_LDADD = $(libelf)
debuginfod_build_id_find_LDADD = $(libelf) $(libdw)
diff --git a/tests/alldts.c b/tests/alldts.c
index 3e9f9fe6..d0fe4f24 100644
--- a/tests/alldts.c
+++ b/tests/alldts.c
@@ -44,7 +44,7 @@ main (void)
Dwelf_Strent *shstrtabse;
const Elf32_Sword dtflags[] =
{
- DT_NULL, DT_NEEDED, DT_PLTRELSZ, DT_PLTGOT,
+ DT_NEEDED, DT_PLTRELSZ, DT_PLTGOT,
DT_HASH, DT_STRTAB, DT_SYMTAB, DT_RELA,
DT_RELASZ, DT_RELAENT, DT_STRSZ, DT_SYMENT,
DT_INIT, DT_FINI, DT_SONAME, DT_RPATH,
@@ -61,7 +61,8 @@ main (void)
DT_GNU_LIBLIST, DT_CONFIG, DT_DEPAUDIT, DT_AUDIT,
DT_PLTPAD, DT_MOVETAB, DT_SYMINFO, DT_RELACOUNT,
DT_RELCOUNT, DT_FLAGS_1, DT_VERDEF, DT_VERDEFNUM,
- DT_VERNEED, DT_VERNEEDNUM, DT_AUXILIARY, DT_FILTER
+ DT_VERNEED, DT_VERNEEDNUM, DT_AUXILIARY, DT_FILTER,
+ DT_NULL
};
const int ndtflags = sizeof (dtflags) / sizeof (dtflags[0]);
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh
index 53c719df..b63e3814 100644
--- a/tests/backtrace-subr.sh
+++ b/tests/backtrace-subr.sh
@@ -59,7 +59,7 @@ check_backtracegen()
# Ignore it here as it is a bug of OS, not a bug of elfutils.
check_err()
{
- if [ $(egrep -v <$1 'dwfl_thread_getframes: (No DWARF information found|no matching address range|address out of range|Invalid register|\(null\))$' \
+ if [ $(grep -E -v <$1 'dwfl_thread_getframes: (No DWARF information found|no matching address range|address out of range|Invalid register|\(null\))$' \
| wc -c) \
-eq 0 ]
then
@@ -101,7 +101,7 @@ check_native_unsupported()
# and we can fall back on .debug_frame for the CFI.
case "`uname -m`" in
arm* )
- if egrep 'dwfl_thread_getframes(.*)No DWARF information found' $err; then
+ if grep -E 'dwfl_thread_getframes(.*)No DWARF information found' $err; then
echo >&2 $testname: arm needs debuginfo installed for all libraries
exit 77
fi
diff --git a/tests/debuginfod-rpms/hello2.spec. b/tests/debuginfod-rpms/hello2.specfile
index 0690992f..0690992f 100644
--- a/tests/debuginfod-rpms/hello2.spec.
+++ b/tests/debuginfod-rpms/hello2.specfile
diff --git a/tests/debuginfod-rpms/hello3.spec. b/tests/debuginfod-rpms/hello3.specfile
index ffb95134..ffb95134 100644
--- a/tests/debuginfod-rpms/hello3.spec.
+++ b/tests/debuginfod-rpms/hello3.specfile
diff --git a/tests/debuginfod-subr.sh b/tests/debuginfod-subr.sh
index 59033f35..108dff74 100755
--- a/tests/debuginfod-subr.sh
+++ b/tests/debuginfod-subr.sh
@@ -141,12 +141,12 @@ archive_test() {
get_ports() {
while true; do
PORT1=`expr '(' $RANDOM % 50 ')' + $base`
- ss -atn | fgrep ":$PORT1" || break
+ ss -atn | grep -F ":$PORT1" || break
done
# Some tests will use two servers, so assign the second var
while true; do
PORT2=`expr '(' $RANDOM % 50 ')' + $base + 50`
- ss -atn | fgrep ":$PORT2" || break
+ ss -atn | grep -F ":$PORT2" || break
done
}
@@ -158,3 +158,13 @@ PORT1=0
PORT2=0
PID1=0
PID2=0
+
+
+# run $1 as a sh -c command, invert result code
+xfail() {
+ if sh -c "$1"; then
+ false
+ else
+ true
+ fi
+}
diff --git a/tests/dwfl-report-offline-memory.c b/tests/dwfl-report-offline-memory.c
new file mode 100644
index 00000000..e6cb0a51
--- /dev/null
+++ b/tests/dwfl-report-offline-memory.c
@@ -0,0 +1,102 @@
+/* Test program for dwfl_report_offline_memory.
+ Copyright (C) 2022 Google LLC
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <assert.h>
+#include <fcntl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdio_ext.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include ELFUTILS_HEADER(dwfl)
+#include "system.h"
+
+
+static const Dwfl_Callbacks offline_callbacks =
+ {
+ .find_debuginfo = INTUSE(dwfl_standard_find_debuginfo),
+ .section_address = INTUSE(dwfl_offline_section_address),
+ };
+
+static int
+count_modules (Dwfl_Module *mod __attribute__ ((unused)),
+ void **userdata __attribute__ ((unused)),
+ const char *name __attribute__ ((unused)),
+ Dwarf_Addr base __attribute__ ((unused)), void *arg)
+{
+ unsigned long long *counter = arg;
+ ++(*counter);
+ return DWARF_CB_OK;
+}
+
+int
+main (int argc, char **argv)
+{
+ /* We use no threads here which can interfere with handling a stream. */
+ (void) __fsetlocking (stdout, FSETLOCKING_BYCALLER);
+
+ /* Set locale. */
+ (void) setlocale (LC_ALL, "");
+
+ if (argc != 3)
+ error (-1, 0,
+ "usage: dwfl_report_offline_memory [filename] "
+ "[expected number of modules]");
+
+ const char *fname = argv[1];
+ int fd = open (fname, O_RDONLY);
+ if (fd < 0)
+ error (-1, 0, "can't open file %s: %s", fname, strerror (errno));
+ off_t size = lseek (fd, 0, SEEK_END);
+ if (size < 0)
+ error (-1, 0, "can't lseek file %s: %s", fname, strerror (errno));
+ lseek (fd, 0, SEEK_SET);
+ char *data = malloc (size);
+ if (data == NULL)
+ error (-1, 0, "can't malloc: %s", strerror (errno));
+ ssize_t bytes_read = read (fd, data, size);
+ assert (bytes_read == size);
+ close (fd);
+
+ Dwfl *dwfl = dwfl_begin (&offline_callbacks);
+ assert (dwfl != NULL);
+
+ Dwfl_Module *mod =
+ dwfl_report_offline_memory (dwfl, argv[1], argv[1], data, size);
+ assert (mod != NULL);
+ dwfl_report_end (dwfl, NULL, NULL);
+
+ unsigned long long number_of_modules = 0;
+ ptrdiff_t offset =
+ dwfl_getmodules (dwfl, &count_modules, &number_of_modules, 0);
+ if (offset < 0)
+ error (1, 0, "dwfl_getmodules: %s", dwfl_errmsg (-1));
+ assert (offset == 0);
+
+ char *endptr;
+ unsigned long long expected_number_of_modules =
+ strtoull (argv[2], &endptr, 0);
+ assert (endptr && !*endptr);
+ assert (number_of_modules == expected_number_of_modules);
+
+ dwfl_end (dwfl);
+ free (data);
+
+ return 0;
+}
diff --git a/tests/low_high_pc.c b/tests/low_high_pc.c
index 78b6ad08..cd022b1c 100644
--- a/tests/low_high_pc.c
+++ b/tests/low_high_pc.c
@@ -72,7 +72,7 @@ handle_die (Dwarf_Die *die, void *arg)
&& highpc <= lowpc
&& ! (dwarf_tag (die) == DW_TAG_compile_unit && highpc == lowpc))
{
- printf("lowpc: %" PRIx64 ", highpc: %" PRIx64 "lx\n", lowpc, highpc);
+ printf("lowpc: %" PRIx64 ", highpc: %" PRIx64 "\n", lowpc, highpc);
fail (off, name, "highpc <= lowpc");
}
diff --git a/tests/run-alldts.sh b/tests/run-alldts.sh
index 6a9a9ece..ce3630b0 100755
--- a/tests/run-alldts.sh
+++ b/tests/run-alldts.sh
@@ -27,7 +27,6 @@ testrun_compare ${abs_top_builddir}/src/readelf -d testfile-alldts <<\EOF
Dynamic segment contains 66 entries:
Addr: 0x000001a0 Offset: 0x000078 Link to section: [ 0] ''
Type Value
- NULL
NEEDED Shared library: [(null)]
PLTRELSZ 3735928559 (bytes)
PLTGOT 0xdeadbeef
@@ -93,6 +92,7 @@ Dynamic segment contains 66 entries:
VERNEEDNUM 3735928559
AUXILIARY 0xdeadbeef
FILTER 0xdeadbeef
+ NULL
EOF
exit 0
diff --git a/tests/run-ar-N.sh b/tests/run-ar-N.sh
new file mode 100755
index 00000000..de8f62b3
--- /dev/null
+++ b/tests/run-ar-N.sh
@@ -0,0 +1,65 @@
+#! /usr/bin/env bash
+# Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+tempfiles testfile test.ar
+
+echo create test.ar with 3 testfile
+echo 1 > testfile
+testrun ${abs_top_builddir}/src/ar -vr test.ar testfile
+echo 2 > testfile
+testrun ${abs_top_builddir}/src/ar -vq test.ar testfile
+testrun ${abs_top_builddir}/src/ar -t test.ar
+echo 3 > testfile
+testrun ${abs_top_builddir}/src/ar -vq test.ar testfile
+testrun_compare ${abs_top_builddir}/src/ar -t test.ar << EOF
+testfile
+testfile
+testfile
+EOF
+
+echo list content of testfile 1 2 3
+testrun ${abs_top_builddir}/src/ar -vx -N 1 test.ar testfile
+diff -u testfile - << EOF
+1
+EOF
+testrun ${abs_top_builddir}/src/ar -vx -N 2 test.ar testfile
+diff -u testfile - << EOF
+2
+EOF
+testrun ${abs_top_builddir}/src/ar -vx -N 3 test.ar testfile
+diff -u testfile - << EOF
+3
+EOF
+
+echo delete testfile 2
+testrun ${abs_top_builddir}/src/ar -vd -N 2 test.ar testfile
+testrun_compare ${abs_top_builddir}/src/ar -t test.ar << EOF
+testfile
+testfile
+EOF
+testrun ${abs_top_builddir}/src/ar -vx -N 1 test.ar testfile
+diff -u testfile - << EOF
+1
+EOF
+testrun ${abs_top_builddir}/src/ar -vx -N 2 test.ar testfile
+diff -u testfile - << EOF
+3
+EOF
+
+exit 0
diff --git a/tests/run-debuginfod-archive-groom.sh b/tests/run-debuginfod-archive-groom.sh
index 030e0aa6..e2c394ef 100755
--- a/tests/run-debuginfod-archive-groom.sh
+++ b/tests/run-debuginfod-archive-groom.sh
@@ -28,7 +28,6 @@ get_ports
DB=${PWD}/.debuginfod_tmp.sqlite
tempfiles $DB
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-export DEBUGINFOD_TIMEOUT=10
# Clean old dirictories
mkdir R ${PWD}/F
diff --git a/tests/run-debuginfod-archive-rename.sh b/tests/run-debuginfod-archive-rename.sh
index 5369949b..71f7742a 100755
--- a/tests/run-debuginfod-archive-rename.sh
+++ b/tests/run-debuginfod-archive-rename.sh
@@ -27,7 +27,6 @@ base=8200
get_ports
DB=${PWD}/.debuginfod_tmp.sqlite
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-export DEBUGINFOD_TIMEOUT=10
tempfiles $DEBUGINFOD_CACHE_PATH $DB
# Clean old dirictories
mkdir R ${PWD}/F
@@ -96,7 +95,7 @@ export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1
archive_test bc1febfd03ca05e030f0d205f7659db29f8a4b30 /usr/src/debug/hello-1.0/hello.c $SHA
archive_test f0aa15b8aba4f3c28cac3c2a73801fefa644a9f2 /usr/src/debug/hello-1.0/hello.c $SHA
-egrep '(libc.error.*rhel7)|(bc1febfd03ca)|(f0aa15b8aba)' vlog$PORT1
+grep -E '(libc.error.*rhel7)|(bc1febfd03ca)|(f0aa15b8aba)' vlog$PORT1
kill $PID1
wait $PID1
diff --git a/tests/run-debuginfod-archive-test.sh b/tests/run-debuginfod-archive-test.sh
index 9f7454bc..5f24ea71 100755
--- a/tests/run-debuginfod-archive-test.sh
+++ b/tests/run-debuginfod-archive-test.sh
@@ -42,7 +42,6 @@ wait_ready $PORT1 'ready' 1
wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
export DEBUGINFOD_URLS='http://127.0.0.1:'$PORT1
# Check thread comm names
diff --git a/tests/run-debuginfod-artifact-running.sh b/tests/run-debuginfod-artifact-running.sh
index b9444426..8b9aed37 100755
--- a/tests/run-debuginfod-artifact-running.sh
+++ b/tests/run-debuginfod-artifact-running.sh
@@ -53,9 +53,6 @@ mv prog F
mv prog.debug F
tempfiles prog/F
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
kill -USR1 $PID1
wait_ready $PORT1 'thread_work_total{role="traverse"}' 2
wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
diff --git a/tests/run-debuginfod-dlopen.sh b/tests/run-debuginfod-dlopen.sh
index 39ee5190..7279b02e 100755
--- a/tests/run-debuginfod-dlopen.sh
+++ b/tests/run-debuginfod-dlopen.sh
@@ -42,9 +42,6 @@ errfiles vlog$PORT1
wait_ready $PORT1 'ready' 1
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1/ # or without trailing /
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
# Check thread comm names
ps -q $PID1 -e -L -o '%p %c %a'
ps -q $PID1 -e -L -o '%p %c %a' | grep groom
diff --git a/tests/run-debuginfod-extraction-passive.sh b/tests/run-debuginfod-extraction-passive.sh
index c2724b58..26618f5c 100755
--- a/tests/run-debuginfod-extraction-passive.sh
+++ b/tests/run-debuginfod-extraction-passive.sh
@@ -56,10 +56,10 @@ wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
wait_ready $PORT1 'thread_busy{role="scan"}' 0
# No similar metrics for the passive server
-! (curl http://localhost:$PORT2/metrics | egrep 'role="scan"|role="groom"|role="traverse"')
+! (curl http://localhost:$PORT2/metrics | grep -E 'role="scan"|role="groom"|role="traverse"')
# Confirm no active threads
-! (ps -q $PID2 -e -L -o '%p %c %a' | egrep 'scan|groom|traverse')
+! (ps -q $PID2 -e -L -o '%p %c %a' | grep -E 'scan|groom|traverse')
# Do a random lookup via passive server
env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS=http://localhost:$PORT2 ${abs_builddir}/../debuginfod/debuginfod-find debuginfo cee13b2ea505a7f37bd20d271c6bc7e5f8d2dfcb
diff --git a/tests/run-debuginfod-extraction.sh b/tests/run-debuginfod-extraction.sh
index 06f60e78..a3722c90 100755
--- a/tests/run-debuginfod-extraction.sh
+++ b/tests/run-debuginfod-extraction.sh
@@ -39,9 +39,6 @@ errfiles vlog$PORT1
# Server must become ready
wait_ready $PORT1 'ready' 1
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
# Check thread comm names
ps -q $PID1 -e -L -o '%p %c %a' | grep groom
ps -q $PID1 -e -L -o '%p %c %a' | grep scan
diff --git a/tests/run-debuginfod-fd-prefetch-caches.sh b/tests/run-debuginfod-fd-prefetch-caches.sh
index 7fbf7b20..a538cd48 100755
--- a/tests/run-debuginfod-fd-prefetch-caches.sh
+++ b/tests/run-debuginfod-fd-prefetch-caches.sh
@@ -22,10 +22,19 @@
set -x
unset VALGRIND_CMD
-FDCACHE_FDS=100
-FDCACHE_MBS=100
-PREFETCH_FDS=100
-PREFETCH_MBS=100
+# Set up archive folders for scanning
+mkdir R Z
+cp -rvp ${abs_srcdir}/debuginfod-tars Z
+cp -rvp ${abs_srcdir}/debuginfod-rpms R
+if [ "$zstd" = "false" ]; then # nuke the zstd fedora 31 ones
+ rm -vrf R/debuginfod-rpms/fedora31
+fi
+
+# Set up maximums. 1 is just a convenient cap to test on.
+FDCACHE_MBS=1
+FDCACHE_FDS=1
+PREFETCH_FDS=1
+PREFETCH=2
# This variable is essential and ensures no time-race for claiming ports occurs
# set base to a unique multiple of 100 not used in any other 'run-debuginfod-*' test
base=8800
@@ -35,30 +44,105 @@ DB=${PWD}/.debuginfod_tmp.sqlite
tempfiles $DB
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-echo $PORT1
+######
+# Test fd limits of fd and prefetch cache
+######
+rm -rf $DEBUGINFOD_CACHE_PATH
+rm -rf $DB
+# Testing prefetch fd maximum (Set mb maximums to be beyond consideration)
+# Set --fdcache-mintmp=0 so we don't accidentially trigger an fdcache
+# emergency flush for filling tmpdir
env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -p $PORT1 -d $DB \
- --fdcache-mbs=$FDCACHE_MDS --fdcache-fds=$FDCACHE_FDS --fdcache-prefetch-mbs=$PREFETCH_MBS \
- --fdcache-prefetch-fds=$PREFETCH_FDS --fdcache-mintmp 0 -v -F F > vlog$PORT1 2>&1 &
+ --fdcache-fds=$FDCACHE_FDS --fdcache-prefetch-fds=$PREFETCH_FDS -vvvvv -g 0 -t 0 \
+ -Z .tar.bz2=bzcat Z --fdcache-mbs=100 --fdcache-prefetch-mbs=100 \
+ --fdcache-mintmp=0 --fdcache-prefetch=$PREFETCH > vlog$PORT1 2>&1 &
PID1=$!
tempfiles vlog$PORT1
errfiles vlog$PORT1
# Server must become ready
wait_ready $PORT1 'ready' 1
+########################################################################
+kill -USR1 $PID1
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
+wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
+wait_ready $PORT1 'thread_busy{role="scan"}' 0
+export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1/
+# load prefetch cache with debuginfod-tars/usr/src/debug/hello.c
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo cee13b2ea505a7f37bd20d271c6bc7e5f8d2dfcb
+metrics=$(curl http://127.0.0.1:$PORT1/metrics)
+regex="fdcache_prefetch_count ([0-9])+"
+# Check to see if prefetch cache is maximally loaded. Note fdcache-prefetch (2) > prefetch-fds (1),
+# so the debuginfod will try to load the prefetch cache with 2 files. We want prefetch-fds to cap that
+# off
+if [[ $metrics =~ $regex ]]; then
+ if [[ ${BASH_REMATCH[1]} -ne $PREFETCH_FDS ]]; then
+ err
+ fi
+else
+ err
+fi
+
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find source cee13b2ea505a7f37bd20d271c6bc7e5f8d2dfcb /usr/src/debug/hello.c
+metrics=$(curl http://127.0.0.1:$PORT1/metrics)
+regex="fdcache_op_count\{op=\"prefetch_access\"\} ([0-9])+"
+if [[ $metrics =~ $regex ]]; then
+ # In the test above hello.c should've been loaded into the prefetch cache.
+ # Ensure that searching for hello.c a second time accesses the prefetch cache once
+ if [[ ${BASH_REMATCH[1]} -ne 1 ]]; then
+ err
+ fi
+else
+ err
+fi
+
+kill $PID1
+wait $PID1
+PID1=0
+
+#########
+# Test mb limit on fd cache
+#########
+rm -rf $DEBUGINFOD_CACHE_PATH
+rm -rf $DB
+env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -p $PORT1 -d $DB \
+ --fdcache-mbs=$FDCACHE_MBS -vvvvv -g 0 -t 0 -R R > vlog2$PORT1 2>&1 &
+PID1=$!
+tempfiles vlog2$PORT1
+errfiles vlog2$PORT1
+wait_ready $PORT1 'ready' 1
+########################################################################
+kill -USR1 $PID1
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
+# All rpms need to be in the index, except the dummy permission-000 one
+rpms=$(find R -name \*rpm | grep -v nothing | wc -l)
+wait_ready $PORT1 'scanned_files_total{source=".rpm archive"}' $rpms
+kill -USR1 $PID1
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 2
+wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
+wait_ready $PORT1 'thread_busy{role="scan"}' 0
-grep 'fdcache fds ' vlog$PORT1 #$FDCACHE_FDS
-grep 'fdcache mbs ' vlog$PORT1 #$FDCACHE_MBS
-grep 'prefetch fds ' vlog$PORT1 #$PREFETCH_FDS
-grep 'prefetch mbs ' vlog$PORT1 #$PREFETCH_MBS
-# search the vlog to find what metric counts should be and check the correct metrics
-# were incrimented
-enqueue_nr=$(grep -c 'interned.*front=1' vlog$PORT1 || true)
-wait_ready $PORT1 'fdcache_op_count{op="enqueue"}' $enqueue_nr
-evict_nr=$(grep -c 'evicted a=.*' vlog$PORT1 || true)
-wait_ready $PORT1 'fdcache_op_count{op="evict"}' $evict_nr
-prefetch_enqueue_nr=$(grep -c 'interned.*front=0' vlog$PORT1 || true)
-wait_ready $PORT1 'fdcache_op_count{op="prefetch_enqueue"}' $prefetch_enqueue_nr
-prefetch_evict_nr=$(grep -c 'evicted from prefetch a=.*front=0' vlog$PORT1 || true)
-wait_ready $PORT1 'fdcache_op_count{op="prefetch_evict"}' $prefetch_evict_nr
+# This many archives cause the fd cache to be loaded with just over 1mb of
+# files. So we expect the 1mb cap off
+SHA=f4a1a8062be998ae93b8f1cd744a398c6de6dbb1
+archive_test bc1febfd03ca05e030f0d205f7659db29f8a4b30 /usr/src/debug/hello-1.0/hello.c $SHA
+archive_test c36708a78618d597dee15d0dc989f093ca5f9120 /usr/src/debug/hello2-1.0-2.x86_64/hello.c $SHA
+archive_test 41a236eb667c362a1c4196018cc4581e09722b1b /usr/src/debug/hello2-1.0-2.x86_64/hello.c $SHA
+archive_test bc1febfd03ca05e030f0d205f7659db29f8a4b30 /usr/src/debug/hello-1.0/hello.c $SHA
+archive_test f0aa15b8aba4f3c28cac3c2a73801fefa644a9f2 /usr/src/debug/hello-1.0/hello.c $SHA
+archive_test bbbf92ebee5228310e398609c23c2d7d53f6e2f9 /usr/src/debug/hello-1.0/hello.c $SHA
+metrics=$(curl http://127.0.0.1:$PORT1/metrics)
+regex="fdcache_bytes ([0-9]+)"
+# Since the server metrics report in bytes, $mb is just the total number of bytes allocated
+# to the fd cache. Ensure that this cap isn't crossed
+mb=$(($FDCACHE_MBS*1024*1024))
+if [[ $metrics =~ $regex ]]; then
+ fdbytes=${BASH_REMATCH[1]}
+ if [ $fdbytes -gt $mb ] ; then
+ err
+ fi
+else
+ err
+fi
kill $PID1
wait $PID1
diff --git a/tests/run-debuginfod-federation-link.sh b/tests/run-debuginfod-federation-link.sh
index 1347e7b8..d7827436 100755
--- a/tests/run-debuginfod-federation-link.sh
+++ b/tests/run-debuginfod-federation-link.sh
@@ -24,7 +24,6 @@ unset VALGRIND_CMD
DB=${PWD}/.debuginfod_tmp.sqlite
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-export DEBUGINFOD_TIMEOUT=10
tempfiles $DB
# Clean old dirictories
@@ -137,7 +136,7 @@ file -L L/foo
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1
rm -rf $DEBUGINFOD_CACHE_PATH
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true
-rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop 000-perm negative-hit file
+rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop negative-hit file
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT2
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
@@ -145,7 +144,7 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
export DEBUGINFOD_URLS=127.0.0.1:$PORT1
rm -rf $DEBUGINFOD_CACHE_PATH
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true
-rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop 000-perm negative-hit file
+rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop negative-hit file
export DEBUGINFOD_URLS=127.0.0.1:$PORT2
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
diff --git a/tests/run-debuginfod-federation-metrics.sh b/tests/run-debuginfod-federation-metrics.sh
index 2d0fd6d4..3d716246 100755
--- a/tests/run-debuginfod-federation-metrics.sh
+++ b/tests/run-debuginfod-federation-metrics.sh
@@ -24,7 +24,6 @@ unset VALGRIND_CMD
DB=${PWD}/.debuginfod_tmp.sqlite
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-export DEBUGINFOD_TIMEOUT=10
export DEBUGINFOD_URLS='http://127.0.0.1:0' # Note invalid, will trigger error_count metric
tempfiles $DB
# Clean old dirictories
@@ -131,7 +130,7 @@ file -L L/foo
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1
rm -rf $DEBUGINFOD_CACHE_PATH
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true
-rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop 000-perm negative-hit file
+rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop negative-hit file
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT2
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
@@ -139,7 +138,7 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
export DEBUGINFOD_URLS=127.0.0.1:$PORT1
rm -rf $DEBUGINFOD_CACHE_PATH
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true
-rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop 000-perm negative-hit file
+rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop negative-hit file
export DEBUGINFOD_URLS=127.0.0.1:$PORT2
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
# test parallel queries in client
diff --git a/tests/run-debuginfod-federation-sqlite.sh b/tests/run-debuginfod-federation-sqlite.sh
index 45761ed7..d9321526 100755
--- a/tests/run-debuginfod-federation-sqlite.sh
+++ b/tests/run-debuginfod-federation-sqlite.sh
@@ -24,7 +24,6 @@ unset VALGRIND_CMD
DB=${PWD}/.debuginfod_tmp.sqlite
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-export DEBUGINFOD_TIMEOUT=10
tempfiles $DB
# Clean old dirictories
@@ -118,7 +117,7 @@ file -L L/foo
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1
rm -rf $DEBUGINFOD_CACHE_PATH
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true
-rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop 000-perm negative-hit file
+rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop negative-hit file
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT2
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
@@ -126,7 +125,7 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
export DEBUGINFOD_URLS=127.0.0.1:$PORT1
rm -rf $DEBUGINFOD_CACHE_PATH
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true
-rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop 000-perm negative-hit file
+rm -f $DEBUGINFOD_CACHE_PATH/$BUILDID/debuginfo # drop negative-hit file
export DEBUGINFOD_URLS=127.0.0.1:$PORT2
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
# test parallel queries in client
@@ -168,11 +167,11 @@ curl -s http://127.0.0.1:$PORT1/metrics | grep 'http_responses_after_you.*'
# waiting. A few hundred ms is typical on this developer's workstation.
########################################################################
-# Corrupt the sqlite database and get debuginfod to trip across its errors
-curl -s http://127.0.0.1:$PORT1/metrics | grep 'sqlite3.*reset'
-dd if=/dev/zero of=$DB bs=1 count=1
-
-# trigger some random activity that's Sure to get sqlite3 upset
+# Trigger some some random activity, then trigger a clean shutdown.
+# We used to try to corrupt the database while the debuginfod server
+# was running and check it detected errors, but that was unreliably
+# and slightly dangerous since part of the database was already mapped
+# into memory.
kill -USR1 $PID1
wait_ready $PORT1 'thread_work_total{role="traverse"}' 2
wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
@@ -180,14 +179,15 @@ wait_ready $PORT1 'thread_busy{role="scan"}' 0
kill -USR2 $PID1
wait_ready $PORT1 'thread_work_total{role="groom"}' 2
curl -s http://127.0.0.1:$PORT1/buildid/beefbeefbeefd00dd00d/debuginfo > /dev/null || true
-curl -s http://127.0.0.1:$PORT1/metrics | grep 'error_count.*sqlite'
-# Run the tests again without the servers running. The target file should
-# be found in the cache.
kill -INT $PID1 $PID2
wait $PID1 $PID2
PID1=0
PID2=0
+
+# Run the tests again without the servers running. The target file should
+# be found in the cache.
+
tempfiles .debuginfod_*
testrun ${abs_builddir}/debuginfod_build_id_find -e F/prog 1
diff --git a/tests/run-debuginfod-malformed.sh b/tests/run-debuginfod-malformed.sh
index 3bc9e799..83e6a3a9 100755
--- a/tests/run-debuginfod-malformed.sh
+++ b/tests/run-debuginfod-malformed.sh
@@ -45,9 +45,6 @@ wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1/ # or without trailing /
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
# Check thread comm names
ps -q $PID1 -e -L -o '%p %c %a' | grep groom
ps -q $PID1 -e -L -o '%p %c %a' | grep scan
diff --git a/tests/run-debuginfod-000-permission.sh b/tests/run-debuginfod-negative-cache.sh
index c1b2cf81..f40e99c5 100755
--- a/tests/run-debuginfod-000-permission.sh
+++ b/tests/run-debuginfod-negative-cache.sh
@@ -37,9 +37,6 @@ errfiles vlog$PORT1
wait_ready $PORT1 'ready' 1
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1/ # or without trailing /
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
# Check thread comm names
ps -q $PID1 -e -L -o '%p %c %a' | grep groom
ps -q $PID1 -e -L -o '%p %c %a' | grep scan
@@ -49,15 +46,15 @@ ps -q $PID1 -e -L -o '%p %c %a' | grep traverse
# PR25628
rm -rf $DEBUGINFOD_CACHE_PATH # clean it from previous tests
-# The query is designed to fail, while the 000-permission file should be created.
+# The query is designed to fail, while the empty file should be created.
testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo 01234567 || true
if [ ! -f $DEBUGINFOD_CACHE_PATH/01234567/debuginfo ]; then
echo "could not find cache in $DEBUGINFOD_CACHE_PATH"
err
fi
-if [ `stat -c "%A" $DEBUGINFOD_CACHE_PATH/01234567/debuginfo` != "----------" ]; then
- echo "The cache $DEBUGINFOD_CACHE_PATH/01234567/debuginfo is readable"
+if [ `stat -c "%s" $DEBUGINFOD_CACHE_PATH/01234567/debuginfo` != 0 ]; then
+ echo "The cache $DEBUGINFOD_CACHE_PATH/01234567/debuginfo is not empty"
err
fi
diff --git a/tests/run-debuginfod-percent-escape.sh b/tests/run-debuginfod-percent-escape.sh
index f7d8dc66..cd867427 100755
--- a/tests/run-debuginfod-percent-escape.sh
+++ b/tests/run-debuginfod-percent-escape.sh
@@ -34,7 +34,8 @@ tempfiles vlog$PORT1
errfiles vlog$PORT1
# Server must become ready
wait_ready $PORT1 'ready' 1
-# Be patient when run on a busy machine things might take a bit.
+# And initial scan should be done
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
# Build a non-stripped binary
echo "int main() { return 0; }" > ${PWD}/F/p++r\$\#o^^g.c
@@ -44,7 +45,7 @@ BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \
tempfiles ${PWD}/F/p++r\$\#o^^g.c ${PWD}/F/p++r\$\#o^^g
kill -USR1 $PID1
# Now there should be 1 files in the index
-wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 2
wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
wait_ready $PORT1 'thread_busy{role="scan"}' 0
rm -rf $DEBUGINFOD_CACHE_PATH # clean it from previous tests
diff --git a/tests/run-debuginfod-query-retry.sh b/tests/run-debuginfod-query-retry.sh
index c9192510..0cfdba92 100755
--- a/tests/run-debuginfod-query-retry.sh
+++ b/tests/run-debuginfod-query-retry.sh
@@ -25,7 +25,7 @@ unset VALGRIND_CMD
########################################################################
# set up tests for retrying failed queries.
retry_attempts=`(testrun env DEBUGINFOD_URLS=http://255.255.255.255/JUNKJUNK DEBUGINFOD_RETRY_LIMIT=10 DEBUGINFOD_VERBOSE=1 DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache \
- ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo /bin/ls || true) 2>&1 >/dev/null \
+ ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo /bin/sh || true) 2>&1 >/dev/null \
| grep -c 'Retry failed query'`
if [ $retry_attempts -ne 10 ]; then
echo "retry mechanism failed."
diff --git a/tests/run-debuginfod-response-headers.sh b/tests/run-debuginfod-response-headers.sh
index 10b2ab49..8cb7b843 100755
--- a/tests/run-debuginfod-response-headers.sh
+++ b/tests/run-debuginfod-response-headers.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright (C) 2019-2021 Red Hat, Inc.
+# Copyright (C) 2022 Red Hat, Inc.
# This file is part of elfutils.
#
# This file is free software; you can redistribute it and/or modify
@@ -16,6 +16,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+type socat 2>/dev/null || exit 77
+
. $srcdir/debuginfod-subr.sh # includes set -e
# for test case debugging, uncomment:
@@ -73,20 +75,63 @@ rm -rf $DEBUGINFOD_CACHE_PATH
env DEBUGINFOD_URLS="http://127.0.0.1:"$PORT1 LD_LIBRARY_PATH=$ldpath ${abs_top_builddir}/debuginfod/debuginfod-find\
-vvv executable F/prog > vlog-find$PORT1.1 2>&1
tempfiles vlog-find$PORT1.1
-grep 'Content-Length: ' vlog-find$PORT1.1
-grep 'X-DEBUGINFOD-FILE: ' vlog-find$PORT1.1
-grep 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.1
+errfiles vlog-find$PORT1.1
+cat vlog-find$PORT1.1
+grep 'Headers:' vlog-find$PORT1.1
+grep -i 'X-DEBUGINFOD-FILE: prog' vlog-find$PORT1.1
+grep -i 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.1
# Check to see if an executable file located in an archive prints the file's description and archive
env DEBUGINFOD_URLS="http://127.0.0.1:"$PORT1 LD_LIBRARY_PATH=$ldpath ${abs_top_builddir}/debuginfod/debuginfod-find\
-vvv executable c36708a78618d597dee15d0dc989f093ca5f9120 > vlog-find$PORT1.2 2>&1
tempfiles vlog-find$PORT1.2
-grep 'Content-Length: ' vlog-find$PORT1.2
-grep 'X-DEBUGINFOD-FILE: ' vlog-find$PORT1.2
-grep 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.2
-grep 'X-DEBUGINFOD-ARCHIVE: ' vlog-find$PORT1.2
+errfiles vlog-find$PORT1.2
+cat vlog-find$PORT1.2
+grep 'Headers:' vlog-find$PORT1.2
+grep -i 'X-DEBUGINFOD-FILE: ' vlog-find$PORT1.2
+grep -i 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.2
+grep -i 'X-DEBUGINFOD-ARCHIVE: ' vlog-find$PORT1.2
+
+# Check that X-DEBUGINFOD-SIZE matches the size of each file
+for file in vlog-find$PORT1.1 vlog-find$PORT1.2
+do
+ st_size=$(stat -c%s $(tail -n 1 $file))
+ x_debuginfod_size=$(grep -i 'X-DEBUGINFOD-SIZE' $file | head -1 | grep -E -o '[0-9]+')
+ test $st_size -eq $x_debuginfod_size
+done
+
+rm -rf $DEBUGINFOD_CACHE_PATH
+BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \
+ -a F/prog | grep 'Build ID' | cut -d ' ' -f 7`
+netcat_dir="buildid/$BUILDID/"
+mkdir -p ${PWD}/$netcat_dir
+cp F/prog ${PWD}/$netcat_dir/executable
+tempfiles F/prog
+
+# socat should after answering one request
+(echo -e "HTTP/1.1 200 OK\r\nX-DEBUGINFOD-SIZE: ba:d_size\nX-DEBUGINFOD-\rFILE:\=\+ \r213\n\n $(date)" | socat -u - tcp-listen:$PORT2) &
+PID2=$!
+# Wait a bit until the netcat port is in use. Otherwise debuginfod-find can query
+# before netcat is ready.
+sleep 5
+
+touch vlog-find$PORT2
+errfiles vlog-find$PORT2
+tempfiles vlog-find$PORT2
+
+# calling out to valgrind deliberately, because this process will be forced to parse broken http headers
+${VALGRIND_CMD} env DEBUGINFOD_URLS="http://127.0.0.1:"$PORT2 LD_LIBRARY_PATH=$ldpath ${abs_top_builddir}/debuginfod/debuginfod-find\
+ -vvv executable $BUILDID > vlog-find$PORT2 2>&1 || true # permit curl rejection of the bad headers
+cat vlog-find$PORT2 # won't have any valid x-debuginfod* headers
+rm -f "$netcat_dir"executable
+rmdir -p $netcat_dir
+
+kill $PID2 || true
+wait $PID2 || true
+PID2=0
kill $PID1
wait $PID1
PID1=0
+
exit 0
diff --git a/tests/run-debuginfod-section.sh b/tests/run-debuginfod-section.sh
new file mode 100755
index 00000000..66e53e83
--- /dev/null
+++ b/tests/run-debuginfod-section.sh
@@ -0,0 +1,135 @@
+#!/usr/bin/env bash
+#
+# Copyright (C) 2019-2021 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/debuginfod-subr.sh
+
+# for test case debugging, uncomment:
+set -x
+unset VALGRIND_CMD
+
+DB=${PWD}/.debuginfod_tmp.sqlite
+tempfiles $DB
+export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
+
+# Set up directories for scanning
+mkdir F
+mkdir R
+cp -rvp ${abs_srcdir}/debuginfod-rpms R
+
+# This variable is essential and ensures no time-race for claiming ports occurs
+# set base to a unique multiple of 100 not used in any other 'run-debuginfod-*' test
+base=13000
+get_ports
+
+# We use -t0 and -g0 here to turn off time-based scanning & grooming.
+# For testing purposes, we just sic SIGUSR1 at the process.
+
+env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod $VERBOSE \
+ -R R -F F -p $PORT1 -d $DB -t0 -g0 -v F > vlog$PORT1 2>&1 &
+PID1=$!
+tempfiles vlog$PORT1
+errfiles vlog$PORT1
+# Server must become ready
+wait_ready $PORT1 'ready' 1
+# And initial scan should be done
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
+
+export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1
+
+# Check thread comm names
+ps -q $PID1 -e -L -o '%p %c %a' | grep groom
+ps -q $PID1 -e -L -o '%p %c %a' | grep scan
+ps -q $PID1 -e -L -o '%p %c %a' | grep traverse
+
+########################################################################
+
+# Compile a simple program, strip its debuginfo and save the build-id.
+# Also move the debuginfo into another directory so that elfutils
+# cannot find it without debuginfod.
+tempfiles prog.c
+echo "int main() { return 0; }" > ${PWD}/prog.c
+
+gcc -Wl,--build-id -g -o F/prog ${PWD}/prog.c
+
+testrun ${abs_top_builddir}/src/strip -g -f F/prog.debug ${PWD}/F/prog
+BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \
+ -a F/prog | grep 'Build ID' | cut -d ' ' -f 7`
+
+kill -USR1 $PID1
+# Wait till both files are in the index.
+wait_ready $PORT1 'thread_work_total{role="traverse"}' 2
+wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
+wait_ready $PORT1 'thread_busy{role="scan"}' 0
+
+########################################################################
+
+# Build-id for a file in the one of the testsuite's F31 rpms
+RPM_BUILDID=d44d42cbd7d915bc938c81333a21e355a6022fb7
+
+# Download sections from files indexed with -F
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $BUILDID .debug_info
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $BUILDID .text
+
+# Download sections from files indexed with -R
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $RPM_BUILDID .debug_info
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $RPM_BUILDID .text
+
+# Verify that the downloaded files match the contents of the original sections
+tempfiles ${BUILDID}.debug_info
+objcopy F/prog.debug -O binary --only-section=.debug_info --set-section-flags .debug_info=alloc $BUILDID.debug_info
+cmp ${BUILDID}.debug_info ${DEBUGINFOD_CACHE_PATH}/${BUILDID}/section-.debug_info
+
+tempfiles ${BUILDID}.text
+objcopy F/prog -O binary --only-section=.text ${BUILDID}.text
+cmp ${BUILDID}.text ${DEBUGINFOD_CACHE_PATH}/${BUILDID}/section-.text
+
+# Download the original debuginfo/executable files.
+DEBUGFILE=`env LD_LIBRARY_PATH=$ldpath ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $RPM_BUILDID`
+EXECFILE=`env LD_LIBRARY_PATH=$ldpath ${abs_top_builddir}/debuginfod/debuginfod-find executable $RPM_BUILDID`
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv debuginfo $BUILDID
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv executable $BUILDID
+
+if test "$(arch)" == "x86_64"; then
+ tempfiles DEBUGFILE.debug_info
+ objcopy $DEBUGFILE -O binary --only-section=.debug_info --set-section-flags .debug_info=alloc DEBUGFILE.debug_info
+ testrun diff -u DEBUGFILE.debug_info ${DEBUGINFOD_CACHE_PATH}/${RPM_BUILDID}/section-.debug_info
+
+ tempfiles EXECFILE.text
+ objcopy $EXECFILE -O binary --only-section=.text EXECFILE.text
+ testrun diff -u EXECFILE.text ${DEBUGINFOD_CACHE_PATH}/${RPM_BUILDID}/section-.text
+fi
+
+# Kill the server.
+kill $PID1
+wait $PID1
+PID1=0
+
+# Delete the section files from the cache.
+rm -f ${DEBUGINFOD_CACHE_PATH}/${RPM_BUILDID}/section-.text
+rm -f ${DEBUGINFOD_CACHE_PATH}/${RPM_BUILDID}/section-.debug_info
+rm -f ${DEBUGINFOD_CACHE_PATH}/${BUILDID}/section-.text
+rm -f ${DEBUGINFOD_CACHE_PATH}/${BUILDID}/section-.debug_info
+
+# Verify that the client can extract sections from the debuginfo or executable
+# if they're already in the cache.
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $BUILDID .debug_info
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $BUILDID .text
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $RPM_BUILDID .debug_info
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find -vvv section $RPM_BUILDID .text
+
+exit 0
diff --git a/tests/run-debuginfod-sizetime.sh b/tests/run-debuginfod-sizetime.sh
index 2cf6f252..17307c02 100755
--- a/tests/run-debuginfod-sizetime.sh
+++ b/tests/run-debuginfod-sizetime.sh
@@ -51,7 +51,7 @@ wait_ready $PORT1 'thread_busy{role="scan"}' 0
# Ensure DEBUGINFOD_MAXSIZE is functional and sends back the correct http
# code
env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_RETRY_LIMIT=1 DEBUGINFOD_URLS="http://127.0.0.1:$PORT1/" DEBUGINFOD_MAXSIZE=1 \
- ${abs_top_builddir}/debuginfod/debuginfod-find -v executable ${PWD}/prog 2> find-vlog$PORT1 || true
+ ${abs_top_builddir}/debuginfod/debuginfod-find -v -v executable ${PWD}/prog 2> find-vlog$PORT1 || true
tempfiles find-vlog$PORT1
errfiles find-vlog$PORT1
echo "Checking maxsize"
@@ -66,7 +66,7 @@ if [ -f ${DEBUGINFOD_CACHE_PATH}/${BUILDID} ]; then
fi
# Ensure no file is downloaded for longer than DEBUGINFOD_MAXTIME
env LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS="http://127.0.0.1:$PORT1/" DEBUGINFOD_MAXTIME=1 \
- ${abs_top_builddir}/debuginfod/debuginfod-find -v debuginfo ${PWD}/prog.debug 2> find-vlog$PORT1 || true
+ ${abs_top_builddir}/debuginfod/debuginfod-find -v -v debuginfo ${PWD}/prog.debug 2> find-vlog$PORT1 || true
tempfiles find-vlog$PORT1
grep 'using max time' find-vlog$PORT1
# Ensure p+r%o\$g.debug is NOT cached
diff --git a/tests/run-debuginfod-tmp-home.sh b/tests/run-debuginfod-tmp-home.sh
index dc9accb0..5946777a 100755
--- a/tests/run-debuginfod-tmp-home.sh
+++ b/tests/run-debuginfod-tmp-home.sh
@@ -45,9 +45,6 @@ wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1/ # or without trailing /
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
# Check thread comm names
ps -q $PID1 -e -L -o '%p %c %a' | grep groom
ps -q $PID1 -e -L -o '%p %c %a' | grep scan
@@ -107,7 +104,7 @@ fi
# priority over $HOME/.cache, $XDG_CACHE_HOME.
cp -vr $DEBUGINFOD_CACHE_PATH tmphome/.debuginfod_client_cache || true
# ||true is for tolerating errors, such a valgrind or something else
-# leaving 000-perm files in there
+# leaving negative-hit files in there
# Add a file that doesn't exist in $HOME/.cache, $XDG_CACHE_HOME.
mkdir tmphome/.debuginfod_client_cache/deadbeef
diff --git a/tests/run-debuginfod-webapi-concurrency.sh b/tests/run-debuginfod-webapi-concurrency.sh
new file mode 100755
index 00000000..5c2440ff
--- /dev/null
+++ b/tests/run-debuginfod-webapi-concurrency.sh
@@ -0,0 +1,69 @@
+#!/usr/bin/env bash
+#
+# Copyright (C) 2021 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/debuginfod-subr.sh
+
+# for test case debugging, uncomment:
+set -x
+
+mkdir Z
+# This variable is essential and ensures no time-race for claiming ports occurs
+# set base to a unique multiple of 100 not used in any other 'run-debuginfod-*' test
+base=12000
+get_ports
+
+export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
+
+cp -rvp ${abs_srcdir}/debuginfod-tars Z
+tempfiles Z
+
+
+for Cnum in "" "-C" "-C10" "-C100"
+do
+ env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE $Cnum -d :memory: -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v --fdcache-fds=0 --fdcache-prefetch-fds=0 Z >> vlog$PORT1 2>&1 &
+ PID1=$!
+ tempfiles vlog$PORT1
+ errfiles vlog$PORT1
+
+ wait_ready $PORT1 'ready' 1
+ # Wait for server to finish indexing
+ wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
+ wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
+ wait_ready $PORT1 'thread_busy{role="scan"}' 0
+
+ # Do a bunch of lookups in parallel
+ lookup_nr=64
+ for jobs in `seq $lookup_nr`; do
+ curl -s http://localhost:$PORT1/buildid/cee13b2ea505a7f37bd20d271c6bc7e5f8d2dfcb/debuginfo > /dev/null &
+ done
+
+ # all curls should succeed
+ wait_ready $PORT1 'http_responses_transfer_bytes_count{code="200",type="debuginfo"}' $lookup_nr
+
+ (sleep 5;
+ curl -s http://localhost:$PORT1/metrics | grep -E 'error|responses';
+ kill $PID1) &
+ wait # for all curls, the ()& from just above, and for debuginfod
+ PID1=0
+done
+
+# Note this xfail comes too late, the above wait_ready for
+# http_responses_transfer_bytes_count will have failed.
+xfail "grep Server.reached.connection vlog$PORT1" # PR28661
+
+exit 0
diff --git a/tests/run-debuginfod-writable.sh b/tests/run-debuginfod-writable.sh
index 9cc4ea1d..c521a572 100755
--- a/tests/run-debuginfod-writable.sh
+++ b/tests/run-debuginfod-writable.sh
@@ -44,9 +44,6 @@ wait_ready $PORT1 'thread_work_total{role="traverse"}' 1
export DEBUGINFOD_URLS=http://127.0.0.1:$PORT1/ # or without trailing /
-# Be patient when run on a busy machine things might take a bit.
-export DEBUGINFOD_TIMEOUT=10
-
# Check thread comm names
ps -q $PID1 -e -L -o '%p %c %a' | grep groom
ps -q $PID1 -e -L -o '%p %c %a' | grep scan
diff --git a/tests/run-dwfl-report-offline-memory.sh b/tests/run-dwfl-report-offline-memory.sh
new file mode 100755
index 00000000..644a45dc
--- /dev/null
+++ b/tests/run-dwfl-report-offline-memory.sh
@@ -0,0 +1,26 @@
+#! /bin/sh
+# Copyright (C) 2022 Google LLC
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+testfiles testfile-dwfl-report-elf-align-shlib.so
+testfiles testarchive64.a
+
+testrun ${abs_builddir}/dwfl-report-offline-memory ./testfile-dwfl-report-elf-align-shlib.so 1
+testrun ${abs_builddir}/dwfl-report-offline-memory ./testarchive64.a 3
+
+exit 0
diff --git a/tests/run-large-elf-file.sh b/tests/run-large-elf-file.sh
index 667d24d8..7116de53 100755
--- a/tests/run-large-elf-file.sh
+++ b/tests/run-large-elf-file.sh
@@ -1,5 +1,6 @@
#! /usr/bin/env bash
# Copyright (C) 2019 Red Hat, Inc.
+# Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
# This file is part of elfutils.
#
# This file is free software; you can redistribute it and/or modify
@@ -26,6 +27,16 @@ if test $long_bit -ne 64; then
exit 77
fi
+# The test binary also needs to be 64bits itself
+elfclass=64
+testrun ${abs_top_builddir}/src/readelf -h ${abs_builddir}/addsections | grep ELF32 \
+ && elfclass=32
+echo elfclass: $elfclass
+if test $elfclass -ne 64; then
+ echo "Only 64bit binaries can create > 4GB ELF files"
+ exit 77
+fi
+
# These tests need lots of disk space since they test files > 4GB.
# Skip if there just isn't enough (2.5 * 4 = 10GB).
space_available=$[$(stat -f --format="%a*%S" .)/(1024 * 1024 * 1024)]
diff --git a/tests/run-readelf-Dd.sh b/tests/run-readelf-Dd.sh
new file mode 100755
index 00000000..8c699937
--- /dev/null
+++ b/tests/run-readelf-Dd.sh
@@ -0,0 +1,66 @@
+#! /bin/sh
+# Copyright (C) 2022 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# #include <stdio.h>
+#
+# __thread int i;
+#
+# void print_i ()
+# {
+# printf("%d\n", i);
+# }
+#
+# gcc -fPIC -shared -o testlib_dynseg.so testlib_dynseg.c
+# With ld --version
+# GNU gold (GNU Binutils 2.22.52.20120402) 1.11
+
+# The same testfile is used in run-readelf-d.sh
+testfiles testlib_dynseg.so
+
+testrun_compare ${abs_top_builddir}/src/readelf -Dd testlib_dynseg.so <<\EOF
+
+Dynamic segment contains 23 entries:
+ Addr: 0x00000000000017e0 Offset: 0x0007e0
+ Type Value
+ PLTGOT 0x00000000000019c8
+ PLTRELSZ 72 (bytes)
+ JMPREL 0x0000000000000568
+ PLTREL RELA
+ RELA 0x00000000000004d8
+ RELASZ 144 (bytes)
+ RELAENT 24 (bytes)
+ RELACOUNT 1
+ SYMTAB 0x0000000000000228
+ SYMENT 24 (bytes)
+ STRTAB 0x0000000000000360
+ STRSZ 190 (bytes)
+ GNU_HASH 0x0000000000000420
+ NEEDED Shared library: [libc.so.6]
+ NEEDED Shared library: [ld-linux-x86-64.so.2]
+ INIT 0x00000000000005b0
+ FINI 0x0000000000000748
+ VERSYM 0x0000000000000460
+ VERDEF 0x000000000000047c
+ VERDEFNUM 1
+ VERNEED 0x0000000000000498
+ VERNEEDNUM 2
+ NULL
+EOF
+
+exit 0
diff --git a/tests/run-readelf-arm-flags.sh b/tests/run-readelf-arm-flags.sh
new file mode 100755
index 00000000..25c5477d
--- /dev/null
+++ b/tests/run-readelf-arm-flags.sh
@@ -0,0 +1,30 @@
+#! /bin/sh
+
+. $srcdir/test-subr.sh
+
+# echo "int main () {}" | gcc -xc -o testfile-arm-flags -
+testfiles testfile-arm-flags
+
+testrun_compare ${abs_top_builddir}/src/readelf -h testfile-arm-flags <<\EOF
+ELF Header:
+ Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
+ Class: ELF32
+ Data: 2's complement, little endian
+ Ident Version: 1 (current)
+ OS/ABI: UNIX - System V
+ ABI Version: 0
+ Type: DYN (Shared object file)
+ Machine: ARM
+ Version: 1 (current)
+ Entry point address: 0x3d1
+ Start of program headers: 52 (bytes into file)
+ Start of section headers: 6920 (bytes into file)
+ Flags: Version5 EABI, hard-float ABI
+ Size of this header: 52 (bytes)
+ Size of program header entries: 32 (bytes)
+ Number of program headers entries: 9
+ Size of section header entries: 40 (bytes)
+ Number of section headers entries: 29
+ Section header string table index: 28
+
+EOF
diff --git a/tests/run-readelf-d.sh b/tests/run-readelf-d.sh
index d0b6ed24..69b01c49 100755
--- a/tests/run-readelf-d.sh
+++ b/tests/run-readelf-d.sh
@@ -34,7 +34,7 @@ testfiles testlib_dynseg.so
testrun_compare ${abs_top_builddir}/src/readelf -d testlib_dynseg.so <<\EOF
-Dynamic segment contains 28 entries:
+Dynamic segment contains 23 entries:
Addr: 0x00000000000017e0 Offset: 0x0007e0 Link to section: [ 3] '.dynstr'
Type Value
PLTGOT 0x00000000000019c8
@@ -60,11 +60,6 @@ Dynamic segment contains 28 entries:
VERNEED 0x0000000000000498
VERNEEDNUM 2
NULL
- NULL
- NULL
- NULL
- NULL
- NULL
EOF
exit 0
diff --git a/tests/run-readelf-s.sh b/tests/run-readelf-s.sh
index 527c436c..ee1c0e82 100755
--- a/tests/run-readelf-s.sh
+++ b/tests/run-readelf-s.sh
@@ -277,12 +277,18 @@ EOF
cat testfile.dynsym.in testfile.symtab.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebaztab
+cat testfile.dynsym.in testfile.symtab.in \
+ | testrun_compare ${abs_top_builddir}/src/readelf --syms testfilebaztab
+
# Display just .dynsym
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf \
--symbols=.dynsym testfilebaztab
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf \
+ --syms=.dynsym testfilebaztab
+cat testfile.dynsym.in \
+ | testrun_compare ${abs_top_builddir}/src/readelf \
--dyn-syms testfilebaztab
# Display just .symtab
diff --git a/tests/run-strip-test.sh b/tests/run-strip-test.sh
index 280814e6..317c2256 100755
--- a/tests/run-strip-test.sh
+++ b/tests/run-strip-test.sh
@@ -66,6 +66,6 @@ test $SIZE_stripped -lt $SIZE_original ||
tempfiles testfile.sections
testrun ${abs_top_builddir}/src/readelf -S testfile.temp > testfile.sections || status=$?
-fgrep ' .debug_' testfile.sections && status=1
+grep -F ' .debug_' testfile.sections && status=1
exit $status
diff --git a/tests/testfile-arm-flags.bz2 b/tests/testfile-arm-flags.bz2
new file mode 100755
index 00000000..d1b018ad
--- /dev/null
+++ b/tests/testfile-arm-flags.bz2
Binary files differ
diff --git a/tests/varlocs.c b/tests/varlocs.c
index 152c6555..d2c13767 100644
--- a/tests/varlocs.c
+++ b/tests/varlocs.c
@@ -76,7 +76,7 @@ dwarf_encoding_string (unsigned int code)
if (likely (code < sizeof (known) / sizeof (known[0])))
return known[code];
- return NULL;
+ return "<unknown encoding>";
}
static const char *
@@ -88,7 +88,7 @@ dwarf_tag_string (unsigned int tag)
DWARF_ALL_KNOWN_DW_TAG
#undef DWARF_ONE_KNOWN_DW_TAG
default:
- return NULL;
+ return "<unknown tag>";
}
}
@@ -101,7 +101,7 @@ dwarf_attr_string (unsigned int attrnum)
DWARF_ALL_KNOWN_DW_AT
#undef DWARF_ONE_KNOWN_DW_AT
default:
- return NULL;
+ return "<unknown attr>";
}
}
@@ -114,7 +114,7 @@ dwarf_form_string (unsigned int form)
DWARF_ALL_KNOWN_DW_FORM
#undef DWARF_ONE_KNOWN_DW_FORM
default:
- return NULL;
+ return "<unknown form>";
}
}
@@ -160,7 +160,7 @@ dwarf_opcode_string (unsigned int code)
if (likely (code < sizeof (known) / sizeof (known[0])))
return known[code];
- return NULL;
+ return "<unknown opcode>";
}
// Forward reference for print_expr_block.
@@ -198,7 +198,6 @@ print_expr (Dwarf_Attribute *attr, Dwarf_Op *expr, Dwarf_Addr addr, int depth)
uint8_t atom = expr->atom;
const char *opname = dwarf_opcode_string (atom);
- assert (opname != NULL);
switch (atom)
{
diff --git a/version.h b/version.h
index 99186be7..1e792e6f 100644
--- a/version.h
+++ b/version.h
@@ -30,7 +30,7 @@
#ifndef _ELFUTILS_VERSION_H
#define _ELFUTILS_VERSION_H 1
-#define _ELFUTILS_VERSION 186
+#define _ELFUTILS_VERSION 188
#define _ELFUTILS_PREREQ(major, minor) \
(_ELFUTILS_VERSION >= ((major) * 1000 + (minor)))