aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-02-03 00:29:17 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-02-03 00:29:17 +0000
commit8369edbe3d0be0aa4e0482e3edda864cc5948b8d (patch)
treef4be7ac00fdd3323a582b24249825b0e2d17d27c
parent20922e1fc8fd0c08932eea8e2bf5c498be160447 (diff)
parentbc2a56f3bceeb9530c5da4f26ecfd848bf0a36a8 (diff)
downloadelfutils-simpleperf-release.tar.gz
Merge "Snap for 11400057 from 54d5b039021ff3c15a519ca95e5ef51b79e88a21 to simpleperf-release" into simpleperf-releasesimpleperf-release
-rw-r--r--CONTRIBUTING44
-rw-r--r--ChangeLog5
-rw-r--r--LICENSE2392
-rw-r--r--METADATA14
-rw-r--r--Makefile.am2
-rw-r--r--NEWS25
-rw-r--r--README2
-rw-r--r--SECURITY56
-rw-r--r--backends/ChangeLog40
-rw-r--r--backends/Makefile.am4
-rw-r--r--backends/libebl_CPU.h6
-rw-r--r--backends/loongarch_cfi.c83
-rw-r--r--backends/loongarch_corenote.c114
-rw-r--r--backends/loongarch_init.c12
-rw-r--r--backends/loongarch_initreg.c88
-rw-r--r--backends/loongarch_regs.c141
-rw-r--r--backends/loongarch_reloc.def49
-rw-r--r--backends/loongarch_retval.c202
-rw-r--r--backends/loongarch_symbol.c42
-rw-r--r--backends/loongarch_unwind.c84
-rw-r--r--backends/riscv_reloc.def4
-rw-r--r--config.h9
-rw-r--r--config/elfutils.spec.in18
-rw-r--r--configure.ac7
-rw-r--r--debuginfod/ChangeLog41
-rw-r--r--debuginfod/debuginfod-client.c121
-rw-r--r--debuginfod/debuginfod.cxx460
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/debuginfod.866
-rw-r--r--doc/srcfiles.1133
-rw-r--r--lib/eu-config.h7
-rw-r--r--lib/printversion.h7
-rw-r--r--libdw/ChangeLog44
-rw-r--r--libdw/dwarf_begin_elf.c87
-rw-r--r--libdw/dwarf_end.c3
-rw-r--r--libdw/dwarf_entrypc.c12
-rw-r--r--libdw/dwarf_formstring.c6
-rw-r--r--libdw/dwarf_getaranges.c17
-rw-r--r--libdw/dwarf_getmacros.c28
-rw-r--r--libdw/dwarf_macro_getsrcfiles.c8
-rw-r--r--libdw/dwarf_macro_param2.c21
-rw-r--r--libdw/dwarf_ranges.c4
-rw-r--r--libdw/libdwP.h19
-rw-r--r--libdw/libdw_find_split_unit.c2
-rw-r--r--libdwfl/ChangeLog13
-rw-r--r--libdwfl/dwfl_module.c2
-rw-r--r--libdwfl/dwfl_module_getdwarf.c11
-rw-r--r--libdwfl/dwfl_report_elf.c3
-rw-r--r--libdwfl/gzip.c2
-rw-r--r--libdwfl/libdwflP.h2
-rw-r--r--libdwfl/link_map.c14
-rw-r--r--libdwfl/offline.c13
-rw-r--r--libebl/eblsectiontypename.c3
-rw-r--r--libelf/ChangeLog8
-rw-r--r--libelf/Makefile.am2
-rw-r--r--libelf/elf.h173
-rw-r--r--libelf/elf32_getchdr.c46
-rw-r--r--libelf/elf32_getchdr.h61
-rw-r--r--libelf/elf32_updatenull.c5
-rw-r--r--libelf/elf_compress.c16
-rw-r--r--libelf/elf_end.c32
-rw-r--r--libelf/elf_getdata.c14
-rw-r--r--libelf/elf_getdata_rawchunk.c51
-rw-r--r--libelf/elf_newscn.c6
-rw-r--r--libelf/elf_version.c11
-rw-r--r--libelf/gelf.h3
-rw-r--r--libelf/gelf_fsize.c3
-rw-r--r--libelf/gelf_xlate.c3
-rw-r--r--libelf/gelf_xlate.h1
-rw-r--r--libelf/libelf.h16
-rw-r--r--libelf/libelf.map1
-rw-r--r--libelf/libelfP.h19
-rw-r--r--patches/libdw-check-offset-dwarf_formstring-in-all-cases.patch36
-rw-r--r--patches/libdw-ignore-really-large-discriminator.patch47
-rw-r--r--patches/libdwfl-handle-duplicate-ELFs-when-reporting-archive.patch56
-rw-r--r--patches/libelf-check-decompressed-ZSTD-size.patch33
-rw-r--r--po/de.po1482
-rw-r--r--po/es.po1493
-rw-r--r--po/ja.po1492
-rw-r--r--po/pl.po1495
-rw-r--r--po/uk.po1496
-rw-r--r--src/.gitignore1
-rw-r--r--src/ChangeLog16
-rw-r--r--src/Makefile.am6
-rw-r--r--src/elfcompress.c43
-rw-r--r--src/elflint.c51
-rw-r--r--src/readelf.c727
-rw-r--r--src/srcfiles.cxx218
-rw-r--r--src/strip.c9
-rw-r--r--tests/ChangeLog18
-rw-r--r--tests/Makefile.am43
-rw-r--r--tests/addsections.c7
-rw-r--r--tests/backtrace.c8
-rw-r--r--tests/dwarf-getmacros.c55
-rwxr-xr-xtests/run-copymany-be32.sh15
-rwxr-xr-xtests/run-copymany-be64.sh15
-rwxr-xr-xtests/run-copymany-le32.sh15
-rwxr-xr-xtests/run-copymany-le64.sh15
-rwxr-xr-xtests/run-debuginfod-IXr.sh94
-rwxr-xr-xtests/run-debuginfod-extraction.sh5
-rwxr-xr-xtests/run-debuginfod-federation-metrics.sh3
-rwxr-xr-xtests/run-debuginfod-federation-sqlite.sh4
-rwxr-xr-xtests/run-debuginfod-query-retry.sh2
-rwxr-xr-xtests/run-debuginfod-response-headers.sh8
-rwxr-xr-xtests/run-lfs-symbols.sh4
-rwxr-xr-xtests/run-native-test.sh3
-rwxr-xr-xtests/run-readelf-gdb_index.sh95
-rwxr-xr-xtests/run-readelf-self.sh2
-rwxr-xr-xtests/run-srcfiles-self.sh48
-rwxr-xr-xtests/run-strip-reloc-ko.sh51
-rwxr-xr-xtests/run-strip-reloc-ppc64.sh15
-rwxr-xr-xtests/run-strip-reloc-self.sh20
-rwxr-xr-xtests/run-strip-reloc.sh156
-rwxr-xr-xtests/run-varlocs.sh14
-rwxr-xr-xtests/strip-reloc-subr.sh79
-rw-r--r--tests/system-elf-gelf-test.c36
-rwxr-xr-xtests/test-copymany-subr.sh (renamed from tests/run-copymany-sections.sh)51
-rwxr-xr-xtests/testfilegdbindex9-no-maininfo.bz2bin0 -> 3502 bytes
-rwxr-xr-xtests/testfilegdbindex9.bz2bin0 -> 4266 bytes
-rw-r--r--version.h2
120 files changed, 10142 insertions, 4507 deletions
diff --git a/CONTRIBUTING b/CONTRIBUTING
index bb48975b..5614728e 100644
--- a/CONTRIBUTING
+++ b/CONTRIBUTING
@@ -45,13 +45,28 @@ then you just add a line saying
Signed-off-by: Random J Developer <random@developer.example.org>
-using your real name (sorry, no pseudonyms or anonymous contributions.)
+using a known identity (sorry, no anonymous contributions.)
+The name you use as your identity should not be an anonymous id
+or false name that misrepresents who you are.
git commit --signoff will add such a Signed-off-by line at the end of
the commit log message for you.
-The ideal patch contains a ChangeLog entry and a test case for the
-bug fixed or feature added.
+The ideal patch contains a ChangeLog entry for the commit message and
+a test case for the bug fixed or feature added.
+
+The commit message is expected to start with a one line summary of
+what the patch does, prefixed with the main subdir the patch applies
+to. e.g libelf: Rewind the elf_frob function bar definitions.
+
+Finally please include an ChangeLog entry explicitly listing the files
+and what changed in each of them in the commit message. This will help
+a reviewer understand which changes are expected (and which might be
+accidential). Try to follow the GNU Change Log style:
+https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html
+Note that elfutils previously maintained separate ChangeLog
+files. These are no longer used. All changes should be documented in
+the git commit message.
The testsuite (make check) is expected to have zero failing tests.
Do not knowingly add tests that FAIL. If there are architectures or
@@ -69,6 +84,22 @@ After sending your patch to the mailinglist one of the committers
to the project will review it, give feedback, and if perfect they
will commit it for you.
+All patches sent to the mailing list are tracked at
+https://patchwork.sourceware.org/project/elfutils/list/
+
+To use this from the command line you can use git-pw
+https://patchwork.readthedocs.io/projects/git-pw/en/latest/
+
+For using it with git-pw use these .git/config settings:
+ [pw]
+ server = https://patchwork.sourceware.org/api/1.2/
+ project = elfutils
+ token = <hex-token>
+ states = committed,accepted,superseded,deferred,rejected,under-review
+
+If you would like to help maintain the pending patch list your
+patchwork account can be added as maintainer for the elfutils project.
+
You can become a maintainer/committer yourself after you have provided
at least a handful of accepted patches and agree to the guidelines in
this document for creating, reviewing, accepting and committing patches.
@@ -96,10 +127,15 @@ mailinglist that the patch has been pushed.
committers may also create git branches starting with <nickname>/...
patches on these branches are works in progress, so might not be perfect
yet, but should follow the above guidelines as much as possible and should
-be aimed at integration into master. For merging a branch into master
+be aimed at integration into main. For merging a branch into main
the same process as above should be followed by posting the patches
to the list first.
+Note that a branch starting with <nickname>/try... will be picked up
+by the Sourceware buildbot and can be used to test your patches before
+merging into the main branch:
+https://builder.sourceware.org/buildbot/#/builders?tags=elfutils-try
+
committers/maintainers who repeatedly ignore the above guidelines,
are hostile or offensive towards other committers or contributors,
and don't correct their behavior after being asked by other committers
diff --git a/ChangeLog b/ChangeLog
index 10c23002..6aed95b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2023-03-27 Di Chen <dichen@redhat.com>
+
+ * NEWS: Support readelf -Ds for using dynamic segment to
+ print symbol table.
+
2023-03-03 Mark Wielaard <mark@klomp.org>
* NEWS: Add ELFCOMPRESS_ZSTD support for libelf and elfcompress.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..7340984f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,2392 @@
+elfutils is dual licensed as either LGPLv3+ or GPLv2+. In addition, some files
+(e.g. libelf/elf.h are copied into the project with LGPLv2.1).
+
+We pick the least restrictive option, LGPLv3 and for some files
+LGPLv2. Those are reproduced below.
+
+Note, some tests and tools (like eu-readelf) are licensed GPLv3 and this
+license is therefore listed below as well.
+
+LGPLv3 (as of https://www.gnu.org/licenses/lgpl-3.0.txt)
+-------------------------------------------------------------------------------
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+
+LGPLv2.1 (as of https://www.gnu.org/licenses/lgpl-2.1.txt)
+-------------------------------------------------------------------------------
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+GPLv3 (as of https://www.gnu.org/licenses/gpl-3.0.txt)
+-------------------------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program 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.
+
+ This program 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 <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
+---
+Files: m4/ax_check_compile_flag.m4
+
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice
+and this notice are preserved. This file is offered as-is, without any
+warranty.
+---
+Files: lib/stdatomic-fbsd.h
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS†AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+---
+Files: doc/COPYING-GFDL
+
+ GNU Free Documentation License
+ Version 1.3, 3 November 2008
+
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as "you". You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+The "publisher" means any person or entity that distributes copies of
+the Document to the public.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no
+other conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to
+give them a chance to provide you with an updated version of the
+Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled "History" in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the "History" section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+ or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other
+documents released under this License, and replace the individual
+copies of this License in the various documents with a single copy
+that is included in the collection, provided that you follow the rules
+of this License for verbatim copying of each of the documents in all
+other respects.
+
+You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense, or distribute it is void, and
+will automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions of the
+GNU Free Documentation License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in
+detail to address new problems or concerns. See
+https://www.gnu.org/licenses/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation. If the Document
+specifies that a proxy can decide which future versions of this
+License can be used, that proxy's public statement of acceptance of a
+version permanently authorizes you to choose that version for the
+Document.
+
+11. RELICENSING
+
+"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works. A
+public wiki that anybody can edit is an example of such a server. A
+"Massive Multiauthor Collaboration" (or "MMC") contained in the site
+means any set of copyrightable works thus published on the MMC site.
+
+"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+
+"Incorporate" means to publish or republish a Document, in whole or in
+part, as part of another Document.
+
+An MMC is "eligible for relicensing" if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole or
+in part into the MMC, (1) had no cover texts or invariant sections, and
+(2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+ Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+---
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program 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 2 of the License, or
+ (at your option) any later version.
+
+ This program 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, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+
+---
+Files: Android.bp
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
diff --git a/METADATA b/METADATA
index 61a4ee4b..54866d4c 100644
--- a/METADATA
+++ b/METADATA
@@ -1,6 +1,3 @@
-# *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE
-# CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
-# DEPENDING ON IT IN YOUR PROJECT. ***
name: "elfutils"
description: "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux."
third_party {
@@ -12,12 +9,11 @@ third_party {
type: GIT
value: "git://sourceware.org/git/elfutils.git"
}
- version: "elfutils-0.189"
- license_type: BY_EXCEPTION_ONLY
- license_note: "Would be RESTRICTED save for doc/COPYING-GFDL"
+ version: "elfutils-0.190"
+ license_type: RESTRICTED
last_upgrade_date {
- year: 2023
- month: 11
- day: 2
+ year: 2024
+ month: 01
+ day: 24
}
}
diff --git a/Makefile.am b/Makefile.am
index e92e05c2..41badfd7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,7 +29,7 @@ pkginclude_HEADERS = version.h
SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \
libasm debuginfod src po doc tests
-EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
+EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \
COPYING COPYING-GPLV2 COPYING-LGPLV3
# Make sure the test install uses lib64 when $LIB will yield lib64.
diff --git a/NEWS b/NEWS
index 16e37eca..0420d3b8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,28 @@
+Version 0.190 "Woke!"
+
+CONTRIBUTING: Switch from real name policy to known identity policy.
+ Updated ChangeLog policy (no more separate ChangeLog files).
+ There is a SECURITY bug policy now.
+ The default branch is now 'main'.
+
+libelf: Add RELR support.
+
+libdw: Recognize .debug_[ct]u_index sections
+
+readelf: Support readelf -Ds, --use-dynamic --symbol.
+ Support .gdb_index version 9
+
+scrlines: New tool that compiles a list of source files associated
+ with a specified dwarf/elf file.
+
+debuginfod: Schema change (reindexing required, sorry!) for a 60%
+ compression in filename representation, which was a large
+ part of the sqlite index; also, more deliberate sqlite
+ -wal management during scanning using the
+ --scan-checkpoint option.
+
+backends: Various LoongArch updates.
+
Version 0.189 "Don't deflate!"
configure: eu-nm, eu-addr2line and eu-stack can provide demangled symbols
diff --git a/README b/README
index 06a9fcd0..690febdf 100644
--- a/README
+++ b/README
@@ -29,3 +29,5 @@ Or use the form at https://sourceware.org/mailman/listinfo/elfutils-devel
See the CONTRIBUTING file for how to propose patches to the code.
See the NOTES files for some design decisions and notes.
+
+See the SECURITY file for defining and handling security-sensitive bugs.
diff --git a/SECURITY b/SECURITY
new file mode 100644
index 00000000..677802c6
--- /dev/null
+++ b/SECURITY
@@ -0,0 +1,56 @@
+
+The elfutils library and utilities aim to be generally robust and
+reliable. However, elfutils routinely processes complex binary
+structured data. This makes the code intricate and sometimes brittle.
+While elfutils developers use a variety of static and dynamic checker
+software (valgrind, sanitizers) in testing, bugs may remain. Some of
+these bugs may have security-related implications.
+
+
+While many errors are cleanly detected at runtime, it is possible that
+vulnerabilities exist that could be exploitable. These may arise from
+crafted / fuzzed / erroneous inputs, or perhaps even from valid inputs
+with unforseen characteristics. Therefore, to minimize risks, users
+of elfutils tools and libraries should consider measures such as:
+
+- avoiding running complex elfutils analysis on untrustworthy inputs
+- avoiding running elfutils tools as privileged processes
+- applying common platform level protection mechanisms such as
+ selinux, syscall filtering, hardened compilation, etc.
+
+Since most elfutils tools are run in short-lived, local, interactive,
+development context rather than remotely "in production", we generally
+treat malfunctions as ordinary bugs rather than security vulnerabilities.
+
+
+Elfutils includes one network client/server: debuginfod. The
+debuginfod man page contains a SECURITY section outlining the general
+risks. tl;dr: many classes of server problems are delegated to
+front-end proxies and curated elf/dwarf archives of the operator;
+others to careful configuration of the debuginfod client. These are
+not generally reportable as security vulnerabilities. However, we are
+likely to accept security vulnerability reports related to:
+
+- availability: e.g., remotely exploitable server crash, but not
+ routine resource exhaustion or overload; client crash due to
+ unexpected valid traffic from trusted server
+
+- confidentiality: e.g., allowing the server to expose one client's
+ traffic to another client
+
+- integrity: e.g., causing the server to send erroneous
+ elf/dwarf/source data across the webapi; causing the client to
+ corrupt its cache to lose file integrity
+
+We welcome reports that are tangential to any of these subjects.
+
+Please report bugs via any of:
+- email to <elfutils-devel@sourceware.org>
+- https://sourceware.org/bugzilla/enter_bug.cgi?product=elfutils
+
+After considering the above exclusions, please report suspected
+security vulnerabilities confidentially via any of:
+
+- email to <mark@klomp.org>
+- email to <fche@elastic.org>
+- email to <secalert@redhat.com>
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 81f08314..ddb4e0af 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,43 @@
+2023-05-09 Youling Tang <tangyouling@loongson.cn>
+
+ * Makefile.am (loongarch_SRCS): Add loongarch_initreg.c.
+ * loongarch_initreg.c: New file.
+ * loongarch_init.c (loongarch_init): Hook set_initial_registers_tid.
+
+2023-04-07 Youling Tang <tangyouling@loongson.cn>
+
+ * Makefile.am (loongarch_SRCS): Add loongarch_corenote.c.
+ * loongarch_init.c (loongarch_init): Hook core_note.
+ * loongarch_corenote.c: New file.
+
+2023-04-07 Youling Tang <tangyouling@loongson.cn>
+
+ * Makefile.am (loongarch_SRCS): Add loongarch_unwind.c.
+ * loongarch_init.c (loongarch_init): Hook unwind.
+ * loongarch_unwind.c: New file.
+
+2023-04-07 Youling Tang <tangyouling@loongson.cn>
+
+ * Makefile.am (loongarch_SRCS): Add loongarch_retval.c.
+ * loongarch_init.c (loongarch_init): Hook return_value_location.
+ * loongarch_retval.c: New file.
+
+2023-04-07 Youling Tang <tangyouling@loongson.cn>
+
+ * Makefile.am (loongarch_SRCS): Add loongarch_cfi.c and loongarch_regs.c.
+ * loongarch_cfi.c: New file.
+ * loongarch_regs.c: Likewise.
+ * loongarch_init.c (loongarch_init): Hook register_info and abi_cfi.
+
+2023-04-01 Youling Tang <tangyouling@loongson.cn>
+
+ * loongarch_init.c (loongarch_init): Hook check_special_symbol.
+ * loongarch_symbol.c (loongarch_check_special_symbol): New function.
+
+2023-04-01 Youling Tang <tangyouling@loongson.cn>
+
+ * loongarch_reloc.def: Add RELOC_TYPE B16 to RELAX.
+
2023-02-07 Mark Wielaard <mark@klomp.org>
* libebl_CPU.h (dwarf_peeled_die_type): Explicitly handle
diff --git a/backends/Makefile.am b/backends/Makefile.am
index f373e5fb..bbb2aac7 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -96,7 +96,9 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \
csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
csky_regs.c csky_initreg.c csky_corenote.c
-loongarch_SRCS = loongarch_init.c loongarch_symbol.c
+loongarch_SRCS = loongarch_init.c loongarch_symbol.c loongarch_cfi.c \
+ loongarch_regs.c loongarch_retval.c loongarch_initreg.c \
+ loongarch_unwind.c loongarch_corenote.c
arc_SRCS = arc_init.c arc_symbol.c
diff --git a/backends/libebl_CPU.h b/backends/libebl_CPU.h
index 3b2cc3e4..d138f5f7 100644
--- a/backends/libebl_CPU.h
+++ b/backends/libebl_CPU.h
@@ -66,13 +66,13 @@ dwarf_peeled_die_type (Dwarf_Die *die, Dwarf_Die *result)
/* The function has no return value, like a `void' function in C. */
return 0;
- if (dwarf_formref_die (attr, result) == NULL)
+ if (result == NULL)
return -1;
- if (dwarf_peel_type (result, result) != 0)
+ if (dwarf_formref_die (attr, result) == NULL)
return -1;
- if (result == NULL)
+ if (dwarf_peel_type (result, result) != 0)
return -1;
int tag = dwarf_tag (result);
diff --git a/backends/loongarch_cfi.c b/backends/loongarch_cfi.c
new file mode 100644
index 00000000..5f3cd2c7
--- /dev/null
+++ b/backends/loongarch_cfi.c
@@ -0,0 +1,83 @@
+/* LoongArch ABI-specified defaults for DWARF CFI.
+ Copyright (C) 2023 OpenAnolis community LoongArch SIG.
+ Copyright (C) 2023 Loongson Technology Corporation Limted.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <dwarf.h>
+
+#define BACKEND loongarch_
+#include "libebl_CPU.h"
+
+/* LoongArch ELF ABI specification:
+https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html#_register_convention
+*/
+int
+loongarch_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
+{
+ static const uint8_t abi_cfi[] =
+ {
+ /* The initial Canonical Frame Address is the value of the
+ Stack Pointer ($r3) as setup in the previous frame. */
+ DW_CFA_def_cfa, ULEB128_7 (3), ULEB128_7 (0),
+
+ /* The Stack Pointer ($r3) is restored from CFA address by default. */
+ DW_CFA_val_offset, ULEB128_7 (3), ULEB128_7 (0),
+
+#define SV(n) DW_CFA_same_value, ULEB128_7 (n)
+ /* The return address register contains the return address setup by
+ caller. */
+ SV (1),
+
+ /* Callee-saved registers $s0-$s7. */
+ SV (23), SV (24), SV (25), SV (26), SV (27), SV (28),
+ SV (29), SV (30), SV (31),
+
+ /* The Frame Pointer ($fp, $r22) */
+ SV(22),
+
+ /* Callee-saved registers $fs0-$fs7. */
+ SV (56), SV (57), SV (58), SV (59), SV (60), SV (61),
+ SV (62), SV (63),
+#undef SV
+
+ /* XXX Note: registers intentionally unused by the program,
+ for example as a consequence of the procedure call standard
+ should be initialized as if by DW_CFA_same_value. */
+ };
+
+ abi_info->initial_instructions = abi_cfi;
+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
+ abi_info->data_alignment_factor = -4;
+
+ abi_info->return_address_register = 1; /* ra. */
+
+ return 0;
+}
diff --git a/backends/loongarch_corenote.c b/backends/loongarch_corenote.c
new file mode 100644
index 00000000..b549edc0
--- /dev/null
+++ b/backends/loongarch_corenote.c
@@ -0,0 +1,114 @@
+/* LoongArch specific core note handling.
+ Copyright (C) 2023 Loongson Technology Corporation Limited.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <elf.h>
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/time.h>
+
+#define BACKEND loongarch_
+#include "libebl_CPU.h"
+
+#define ULONG uint64_t
+#define PID_T int32_t
+#define UID_T uint32_t
+#define GID_T uint32_t
+#define ALIGN_ULONG 8
+#define ALIGN_PID_T 4
+#define ALIGN_UID_T 4
+#define ALIGN_GID_T 4
+#define TYPE_ULONG ELF_T_XWORD
+#define TYPE_PID_T ELF_T_SWORD
+#define TYPE_UID_T ELF_T_WORD
+#define TYPE_GID_T ELF_T_WORD
+
+#define PRSTATUS_REGS_SIZE (45 * 8)
+
+static const Ebl_Register_Location prstatus_regs[] =
+ {
+ { .offset = 0, .regno = 0, .count = 32, .bits = 64 }, /* r0..r31 */
+ };
+
+#define PRSTATUS_REGSET_ITEMS \
+ { \
+ .name = "orig_a0", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 32 * 8), \
+ .group = "register" \
+ }, \
+ { \
+ .name = "csr_era", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 33 * 8), \
+ .group = "register", \
+ .pc_register = true \
+ }, \
+ { \
+ .name = "csr_badvaddr", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 34 * 8), \
+ .group = "register" \
+ }, \
+ { \
+ .name = "csr_crmd", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 35 * 8), \
+ .group = "register" \
+ }, \
+ { \
+ .name = "csr_prmd", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 36 * 8), \
+ .group = "register" \
+ }, \
+ { \
+ .name = "csr_euen", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 37 * 8), \
+ .group = "register" \
+ }, \
+ { \
+ .name = "csr_ecfg", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 38 * 8), \
+ .group = "register" \
+ }, \
+ { \
+ .name = "csr_estat", .type = ELF_T_XWORD, .format = 'x', \
+ .offset = (offsetof (struct EBLHOOK(prstatus), pr_reg) \
+ + 39 * 8), \
+ .group = "register" \
+ }
+ /* 40 ~ 44 reserved */
+
+#include "linux-core-note.c"
diff --git a/backends/loongarch_init.c b/backends/loongarch_init.c
index a8ed9e81..2f0d46c9 100644
--- a/backends/loongarch_init.c
+++ b/backends/loongarch_init.c
@@ -1,5 +1,7 @@
/* Initialization of LoongArch specific backend library.
Copyright (C) 2022 Hengqi Chen
+ Copyright (C) 2023 OpenAnolis community LoongArch SIG.
+ Copyright (C) 2023 Loongson Technology Corporation Limted.
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -45,6 +47,16 @@ loongarch_init (Elf *elf __attribute__ ((unused)),
{
loongarch_init_reloc (eh);
HOOK (eh, reloc_simple_type);
+ HOOK (eh, machine_flag_check);
+ HOOK (eh, register_info);
+ HOOK (eh, core_note);
+ HOOK (eh, abi_cfi);
+ /* gcc/config/ #define DWARF_FRAME_REGISTERS. */
+ eh->frame_nregs = 74;
+ HOOK (eh, check_special_symbol);
+ HOOK (eh, set_initial_registers_tid);
+ HOOK (eh, return_value_location);
+ HOOK (eh, unwind);
return eh;
}
diff --git a/backends/loongarch_initreg.c b/backends/loongarch_initreg.c
new file mode 100644
index 00000000..74cb62f5
--- /dev/null
+++ b/backends/loongarch_initreg.c
@@ -0,0 +1,88 @@
+/* Fetch live process registers from TID.
+ Copyright (C) 2023 OpenAnolis community LoongArch SIG.
+ Copyright (C) 2023 Loongson Technology Corporation Limted.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "system.h"
+#include <assert.h>
+#if defined __loongarch__ && defined __linux__
+# include <sys/uio.h>
+# include <sys/procfs.h>
+# include <sys/ptrace.h>
+#endif
+
+#define BACKEND loongarch_
+#include "libebl_CPU.h"
+
+bool
+loongarch_set_initial_registers_tid (pid_t tid __attribute__ ((unused)),
+ ebl_tid_registers_t *setfunc __attribute__ ((unused)),
+ void *arg __attribute__ ((unused)))
+{
+#if !defined __loongarch__ || !defined __linux__
+ return false;
+#else /* __loongarch__ */
+
+ /* General registers. */
+ struct user_regs_struct gregs;
+ struct iovec iovec;
+ iovec.iov_base = &gregs;
+ iovec.iov_len = sizeof (gregs);
+ if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iovec) != 0)
+ return false;
+
+ /* $r0 is constant 0. */
+ Dwarf_Word zero = 0;
+ if (! setfunc (0, 1, &zero, arg))
+ return false;
+
+ /* $r1-$r31. */
+ if (! setfunc (1, 32, (Dwarf_Word *) &gregs.regs[1], arg))
+ return false;
+
+ /* PC. */
+ if (! setfunc (-1, 1, (Dwarf_Word *) &gregs.csr_era, arg))
+ return false;
+
+ /* Floating-point registers (only 64bits are used). */
+ struct user_fp_struct fregs;
+ iovec.iov_base = &fregs;
+ iovec.iov_len = sizeof (fregs);
+ if (ptrace (PTRACE_GETREGSET, tid, NT_FPREGSET, &iovec) != 0)
+ return false;
+
+ /* $f0-$f31 */
+ if (! setfunc (32, 32, (Dwarf_Word *) &fregs.fpr[0], arg))
+ return false;
+
+ return true;
+#endif /* __loongarch__ */
+}
diff --git a/backends/loongarch_regs.c b/backends/loongarch_regs.c
new file mode 100644
index 00000000..4a4b2052
--- /dev/null
+++ b/backends/loongarch_regs.c
@@ -0,0 +1,141 @@
+/* Register names and numbers for LoongArch DWARF.
+ Copyright (C) 2023 OpenAnolis community LoongArch SIG.
+ Copyright (C) 2023 Loongson Technology Corporation Limted.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+#include <dwarf.h>
+
+#define BACKEND loongarch_
+#include "libebl_CPU.h"
+
+ssize_t
+loongarch_register_info (Ebl *ebl, int regno, char *name, size_t namelen,
+ const char **prefix, const char **setname,
+ int *bits, int *type)
+{
+ if (name == NULL)
+ return 64;
+
+ *prefix = "";
+
+ if (regno < 32)
+ {
+ *setname = "integer";
+ *type = DW_ATE_signed;
+ *bits = ebl->class == ELFCLASS64 ? 64 : 32;
+ }
+ else
+ {
+ *setname = "FPU";
+ *type = DW_ATE_float;
+ *bits = 64;
+ }
+
+ switch (regno)
+ {
+ case 0:
+ return stpcpy (name, "zero") + 1 - name;
+
+ case 1:
+ *type = DW_ATE_address;
+ return stpcpy (name, "ra") + 1 - name;
+
+ case 2:
+ *type = DW_ATE_address;
+ return stpcpy (name, "tp") + 1 - name;
+
+ case 3:
+ *type = DW_ATE_address;
+ return stpcpy (name, "sp") + 1 - name;
+
+ case 4 ... 11:
+ name[0] = 'a';
+ name[1] = regno - 4 + '0';
+ namelen = 2;
+ break;
+
+ case 12 ... 20:
+ name[0] = 't';
+ name[1] = regno - 12 + '0';
+ namelen = 2;
+ break;
+
+ case 21:
+ return stpcpy (name, "u0") + 1 - name;
+
+ case 22:
+ *type = DW_ATE_address;
+ return stpcpy (name, "fp") + 1 - name;
+
+ case 23 ... 31:
+ name[0] = 's';
+ name[1] = regno - 23 + '0';
+ namelen = 2;
+ break;
+
+ case 32 ... 39:
+ name[0] = 'f';
+ name[1] = 'a';
+ name[2] = regno - 32 + '0';
+ namelen = 3;
+ break;
+
+ case 40 ... 49:
+ name[0] = 'f';
+ name[1] = 't';
+ name[2] = regno - 40 + '0';
+ namelen = 3;
+ break;
+
+ case 50 ... 55:
+ name[0] = 'f';
+ name[1] = 't';
+ name[2] = '1';
+ name[3] = regno - 50 + '0';
+ namelen = 4;
+ break;
+
+ case 56 ... 63:
+ name[0] = 'f';
+ name[1] = 's';
+ name[2] = regno - 56 + '0';
+ namelen = 3;
+ break;
+
+ default:
+ *setname = NULL;
+ return 0;
+ }
+
+ name[namelen++] = '\0';
+ return namelen;
+}
diff --git a/backends/loongarch_reloc.def b/backends/loongarch_reloc.def
index dd4a6b6d..a39eefd9 100644
--- a/backends/loongarch_reloc.def
+++ b/backends/loongarch_reloc.def
@@ -79,3 +79,52 @@ RELOC_TYPE (SUB32, REL)
RELOC_TYPE (SUB64, REL)
RELOC_TYPE (GNU_VTINHERIT, REL)
RELOC_TYPE (GNU_VTENTRY, REL)
+
+/* reserved 59-63 */
+
+RELOC_TYPE (B16, REL)
+RELOC_TYPE (B21, REL)
+RELOC_TYPE (B26, REL)
+RELOC_TYPE (ABS_HI20, REL)
+RELOC_TYPE (ABS_LO12, REL)
+RELOC_TYPE (ABS64_LO20, REL)
+RELOC_TYPE (ABS64_HI12, REL)
+RELOC_TYPE (PCALA_HI20, REL)
+RELOC_TYPE (PCALA_LO12, REL)
+RELOC_TYPE (PCALA64_LO20, REL)
+RELOC_TYPE (PCALA64_HI12, REL)
+RELOC_TYPE (GOT_PC_HI20, REL)
+RELOC_TYPE (GOT_PC_LO12, REL)
+RELOC_TYPE (GOT64_PC_LO20, REL)
+RELOC_TYPE (GOT64_PC_HI12, REL)
+RELOC_TYPE (GOT_HI20, REL)
+RELOC_TYPE (GOT_LO12, REL)
+RELOC_TYPE (GOT64_LO20, REL)
+RELOC_TYPE (GOT64_HI12, REL)
+RELOC_TYPE (TLS_LE_HI20, REL)
+RELOC_TYPE (TLS_LE_LO12, REL)
+RELOC_TYPE (TLS_LE64_LO20, REL)
+RELOC_TYPE (TLS_LE64_HI12, REL)
+RELOC_TYPE (TLS_IE_PC_HI20, REL)
+RELOC_TYPE (TLS_IE_PC_LO12, REL)
+RELOC_TYPE (TLS_IE64_PC_LO20, REL)
+RELOC_TYPE (TLS_IE64_PC_HI12, REL)
+RELOC_TYPE (TLS_IE_HI20, REL)
+RELOC_TYPE (TLS_IE_LO12, REL)
+RELOC_TYPE (TLS_IE64_LO20, REL)
+RELOC_TYPE (TLS_IE64_HI12, REL)
+RELOC_TYPE (TLS_LD_PC_HI20, REL)
+RELOC_TYPE (TLS_LD_HI20, REL)
+RELOC_TYPE (TLS_GD_PC_HI20, REL)
+RELOC_TYPE (TLS_GD_HI20, REL)
+RELOC_TYPE (32_PCREL, REL)
+RELOC_TYPE (RELAX, REL)
+RELOC_TYPE (DELETE, REL)
+RELOC_TYPE (ALIGN, REL)
+RELOC_TYPE (PCREL20_S2, REL)
+RELOC_TYPE (CFA, REL)
+RELOC_TYPE (ADD6, REL)
+RELOC_TYPE (SUB6, REL)
+RELOC_TYPE (ADD_ULEB128, REL)
+RELOC_TYPE (SUB_ULEB128, REL)
+RELOC_TYPE (64_PCREL, REL)
diff --git a/backends/loongarch_retval.c b/backends/loongarch_retval.c
new file mode 100644
index 00000000..23b33ed5
--- /dev/null
+++ b/backends/loongarch_retval.c
@@ -0,0 +1,202 @@
+/* Function return value location for Linux/LoongArch ABI.
+ Copyright (C) 2013 Red Hat, Inc.
+ Copyright (C) 2023 OpenAnolis community LoongArch SIG.
+ Copyright (C) 2023 Loongson Technology Corporation Limited.
+
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <inttypes.h>
+
+#include <assert.h>
+#include <dwarf.h>
+
+#define BACKEND loongarch_
+#include "libebl_CPU.h"
+
+static int
+dwarf_bytesize_aux (Dwarf_Die *die, Dwarf_Word *sizep)
+{
+ int bits;
+ if (((bits = 8 * dwarf_bytesize (die)) < 0
+ && (bits = dwarf_bitsize (die)) < 0)
+ || bits % 8 != 0)
+ return -1;
+
+ *sizep = bits / 8;
+ return 0;
+}
+
+static int
+pass_in_gpr (const Dwarf_Op **locp, Dwarf_Word size)
+{
+ static const Dwarf_Op loc[] =
+ {
+ { .atom = DW_OP_reg4 }, { .atom = DW_OP_piece, .number = 8 },
+ { .atom = DW_OP_reg5 }, { .atom = DW_OP_piece, .number = 8 }
+ };
+
+ *locp = loc;
+ return size <= 8 ? 1 : 4;
+}
+
+static int
+pass_by_ref (const Dwarf_Op **locp)
+{
+ static const Dwarf_Op loc[] = { { .atom = DW_OP_breg4 } };
+
+ *locp = loc;
+ return 1;
+}
+
+static int
+pass_in_fpr (const Dwarf_Op **locp, Dwarf_Word size)
+{
+ static const Dwarf_Op loc[] =
+ {
+ { .atom = DW_OP_regx, .number = 32 },
+ { .atom = DW_OP_piece, .number = 8 },
+ { .atom = DW_OP_regx, .number = 33 },
+ { .atom = DW_OP_piece, .number = 8 }
+ };
+
+ *locp = loc;
+ return size <= 8 ? 1 : 4;
+}
+
+int
+loongarch_return_value_location(Dwarf_Die *functypedie,
+ const Dwarf_Op **locp)
+{
+ /* Start with the function's type, and get the DW_AT_type attribute,
+ which is the type of the return value. */
+ Dwarf_Die typedie;
+ int tag = dwarf_peeled_die_type (functypedie, &typedie);
+ if (tag <= 0)
+ return tag;
+
+ Dwarf_Word size = (Dwarf_Word)-1;
+
+ /* If the argument type is a Composite Type that is larger than 16
+ bytes, then the argument is copied to memory allocated by the
+ caller and the argument is replaced by a pointer to the copy. */
+ if (tag == DW_TAG_structure_type || tag == DW_TAG_union_type
+ || tag == DW_TAG_class_type || tag == DW_TAG_array_type)
+ {
+ if (dwarf_aggregate_size (&typedie, &size) < 0)
+ return -1;
+
+ /* Aggregates larger than 2*GRLEN bits are passed by reference. */
+ if (size > 16)
+ return pass_by_ref (locp);
+ /* Aggregates whose total size is no more than GRLEN bits are passed in
+ a register. Aggregates whose total size is no more than 2*GRLEN bits
+ are passed in a pair of registers. */
+ else
+ return pass_in_gpr (locp, size);
+ }
+
+ if (tag == DW_TAG_base_type || dwarf_is_pointer (tag))
+ {
+ if (dwarf_bytesize_aux (&typedie, &size) < 0)
+ {
+ if (dwarf_is_pointer (tag))
+ size = 8;
+ else
+ return -1;
+ }
+
+ Dwarf_Attribute attr_mem;
+ if (tag == DW_TAG_base_type)
+ {
+ Dwarf_Word encoding;
+ if (dwarf_formudata (dwarf_attr_integrate (&typedie, DW_AT_encoding,
+ &attr_mem),
+ &encoding) != 0)
+ return -1;
+
+ switch (encoding)
+ {
+ case DW_ATE_boolean:
+ case DW_ATE_signed:
+ case DW_ATE_unsigned:
+ case DW_ATE_unsigned_char:
+ case DW_ATE_signed_char:
+ /* Scalars that are at most GRLEN bits wide are passed in a single
+ argument register. Scalars that are 2*GRLEN bits wide are
+ passed in a pair of argument registers. Scalars wider than
+ 2*GRLEN are passed by reference. */
+ return pass_in_gpr (locp, size);
+
+ case DW_ATE_float:
+ /* A real floating-point argument is passed in a floating-point
+ argument register if it is no more than FLEN bits wide,
+ otherwise it is passed according to the integer calling
+ convention. */
+ switch (size)
+ {
+ case 4: /* single */
+ case 8: /* double */
+ return pass_in_fpr (locp, size);
+
+ case 16: /* quad */
+ return pass_in_gpr (locp, size);
+
+ default:
+ return -2;
+ }
+
+ case DW_ATE_complex_float:
+ /* A complex floating-point number is passed as though it were a
+ struct containing two floating-point reals. */
+ switch (size)
+ {
+ case 8: /* float _Complex */
+ case 16: /* double _Complex */
+ return pass_in_fpr (locp, size);
+
+ case 32: /* long double _Complex */
+ return pass_by_ref (locp);
+
+ default:
+ return -2;
+ }
+ }
+
+ return -2;
+ }
+ else
+ return pass_in_gpr (locp, size);
+ }
+
+ *locp = NULL;
+ return 0;
+}
diff --git a/backends/loongarch_symbol.c b/backends/loongarch_symbol.c
index 8ba66a09..5ce55bad 100644
--- a/backends/loongarch_symbol.c
+++ b/backends/loongarch_symbol.c
@@ -72,3 +72,45 @@ loongarch_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type,
return ELF_T_NUM;
}
}
+
+bool
+loongarch_machine_flag_check (GElf_Word flags)
+{
+ return ((flags &~ (EF_LARCH_ABI_MODIFIER_MASK
+ | EF_LARCH_OBJABI_V1)) == 0);
+}
+
+/* Check whether given symbol's st_value and st_size are OK despite failing
+ normal checks. */
+bool
+loongarch_check_special_symbol (Elf *elf, const GElf_Sym *sym,
+ const char *name, const GElf_Shdr *destshdr)
+{
+ if (name != NULL
+ && strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
+ {
+ size_t shstrndx;
+ if (elf_getshdrstrndx (elf, &shstrndx) != 0)
+ return false;
+ const char *sname = elf_strptr (elf, shstrndx, destshdr->sh_name);
+ if (sname != NULL
+ && (strcmp (sname, ".got") == 0 || strcmp (sname, ".got.plt") == 0))
+ {
+ Elf_Scn *scn = NULL;
+ while ((scn = elf_nextscn (elf, scn)) != NULL)
+ {
+ GElf_Shdr shdr_mem;
+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
+ if (shdr != NULL)
+ {
+ sname = elf_strptr (elf, shstrndx, shdr->sh_name);
+ if (sname != NULL && strcmp (sname, ".got") == 0)
+ return (sym->st_value >= shdr->sh_addr
+ && sym->st_value < shdr->sh_addr + shdr->sh_size);
+ }
+ }
+ }
+ }
+
+ return false;
+}
diff --git a/backends/loongarch_unwind.c b/backends/loongarch_unwind.c
new file mode 100644
index 00000000..fb748083
--- /dev/null
+++ b/backends/loongarch_unwind.c
@@ -0,0 +1,84 @@
+/* Get previous frame state for an existing frame state.
+ Copyright (C) 2023 OpenAnolis community LoongArch SIG.
+ Copyright (C) 2023 Loongson Technology Corporation Limited.
+ 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 loongarch_
+#define RA_REG 1
+#define SP_REG 3
+#define FP_REG 22
+
+#define RA_OFFSET 8
+#define FP_OFFSET 16
+
+#include "libebl_CPU.h"
+
+/* There was no CFI. Maybe we happen to have a frame pointer and can unwind from that? */
+
+bool
+EBLHOOK(unwind) (Ebl *ebl __attribute__ ((unused)), Dwarf_Addr pc __attribute__ ((unused)),
+ ebl_tid_registers_t *setfunc, ebl_tid_registers_get_t *getfunc,
+ ebl_pid_memory_read_t *readfunc, void *arg,
+ bool *signal_framep __attribute__ ((unused)))
+{
+ Dwarf_Word fp, ra, sp;
+
+ if (!getfunc(RA_REG, 1, &ra, arg))
+ return false;
+
+ if (ra == 0 || !setfunc(-1, 1, &ra, arg))
+ return false;
+
+ if (!getfunc(FP_REG, 1, &fp, arg))
+ fp = 0;
+
+ if (!getfunc(SP_REG, 1, &sp, arg))
+ sp = 0;
+
+ Dwarf_Word newRa, newFp, newSp;
+
+ if (!readfunc(fp - RA_OFFSET, &newRa, arg))
+ newRa = 0;
+
+ if (!readfunc(fp - FP_OFFSET, &newFp, arg))
+ newFp = 0;
+
+ newSp = fp;
+
+ // These are not fatal if they don't work. They will just prevent unwinding at the next frame.
+ setfunc(RA_REG, 1, &newRa, arg);
+ setfunc(FP_REG, 1, &newFp, arg);
+ setfunc(SP_REG, 1, &newSp, arg);
+
+ // If the fp is invalid, we might still have a valid ra.
+ // But if the fp is valid, then the stack should be moving in the right direction.
+ return fp == 0 || newSp > sp;
+}
diff --git a/backends/riscv_reloc.def b/backends/riscv_reloc.def
index 2bd3513e..f52f6489 100644
--- a/backends/riscv_reloc.def
+++ b/backends/riscv_reloc.def
@@ -81,3 +81,7 @@ RELOC_TYPE (SET8, REL)
RELOC_TYPE (SET16, REL)
RELOC_TYPE (SET32, REL)
RELOC_TYPE (32_PCREL, REL)
+RELOC_TYPE (IRELATIVE, EXEC|DYN)
+RELOC_TYPE (PLT32, REL)
+RELOC_TYPE (SET_ULEB128, REL)
+RELOC_TYPE (SUB_ULEB128, REL)
diff --git a/config.h b/config.h
index fb46250a..364ce05c 100644
--- a/config.h
+++ b/config.h
@@ -67,6 +67,9 @@
/* Define to 1 if you have the <err.h> header file. */
#define HAVE_ERR_H 1
+/* Define to 1 if you have the <execinfo.h> header file. */
+#define HAVE_EXECINFO_H 1
+
/* Defined if __attribute__((fallthrough)) is supported */
#define HAVE_FALLTHROUGH 1
@@ -149,7 +152,7 @@
#define PACKAGE_NAME "elfutils"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "elfutils 0.189"
+#define PACKAGE_STRING "elfutils 0.190"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "elfutils"
@@ -158,7 +161,7 @@
#define PACKAGE_URL "http://elfutils.org/"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.189"
+#define PACKAGE_VERSION "0.190"
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
@@ -195,7 +198,7 @@
#define USE_ZSTD_COMPRESS 1
/* Version number of package */
-#define VERSION "0.189"
+#define VERSION "0.190"
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index c82a40c5..67e88cb5 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -233,7 +233,7 @@ fi
%files
%license COPYING COPYING-GPLV2 COPYING-LGPLV3 doc/COPYING-GFDL
-%doc README TODO CONTRIBUTING
+%doc README TODO CONTRIBUTING SECURITY
%{_bindir}/eu-addr2line
%{_bindir}/eu-ar
%{_bindir}/eu-elfclassify
@@ -341,6 +341,22 @@ exit 0
%systemd_postun_with_restart debuginfod.service
%changelog
+* Fri Nov 3 2023 Mark Wielaard <mark@klomp.org> 0.190-1
+- CONTRIBUTING: Switch from real name policy to known identity policy.
+ Updated ChangeLog policy (no more separate ChangeLog files).
+ There is a SECURITY bug policy now. The default branch is now 'main'.
+- libelf: Add RELR support.
+- libdw: Recognize .debug_[ct]u_index sections.
+- readelf: Support readelf -Ds, --use-dynamic --symbol.
+ Support .gdb_index version 9
+- scrlines: New tool that compiles a list of source files associated
+ with a specified dwarf/elf file.
+- debuginfod: Schema change (reindexing required, sorry!) for a 60%
+ compression in filename representation, which was a large
+ part of the sqlite index; also, more deliberate sqlite
+ -wal management during scanning using the --scan-checkpoint option.
+- backends: Various LoongArch updates.
+
* Fri Mar 3 2023 Mark Wielaard <mark@klomp.org> 0.189-1
- configure: eu-nm, eu-addr2line and eu-stack can provide demangled
symbols when linked with libstdc++. Use --disable-demangler to disable.
diff --git a/configure.ac b/configure.ac
index 6e881fa0..af5b6bf7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,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.189],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
+AC_INIT([elfutils],[0.190],[https://sourceware.org/bugzilla],[elfutils],[http://elfutils.org/])
dnl Workaround for older autoconf < 2.64
m4_ifndef([AC_PACKAGE_URL],
@@ -169,7 +169,7 @@ if test "$use_msan" = yes; then
CXXFLAGS="$CXXFLAGS -fsanitize=memory -fsanitize-memory-track-origins -D_FORTIFY_SOURCE=0"
LDFLAGS="-shared"
AC_LINK_IFELSE([AC_LANG_SOURCE([int main (int argc, char **argv) { return 0; }])], use_msan=yes, use_msan=no)
- AS_IF([test "x$use_msan" == xyes],
+ AS_IF([test "x$use_msan" = xyes],
ac_cv_zdefs=no NO_UNDEFINED=,
AC_MSG_WARN([clang memory sanitizer not available])
CFLAGS="$old_CFLAGS" CXXFLAGS="$old_CXXFLAGS")
@@ -493,7 +493,7 @@ AC_ARG_ENABLE([demangler],
AS_HELP_STRING([--disable-demangler],
[Disable libstdc++ demangle support]),
[], [enable_demangler=yes])
-AS_IF([test "x$enable_demangler" == xyes],
+AS_IF([test "x$enable_demangler" = xyes],
AC_CHECK_LIB([stdc++], [__cxa_demangle], [dnl
AC_DEFINE([USE_DEMANGLE], [1], [Defined if demangling is enabled])])
AM_CONDITIONAL(DEMANGLE, test "x$ac_cv_lib_stdcpp___cxa_demangle" = "xyes")
@@ -839,6 +839,7 @@ AS_IF([test "x$enable_libdebuginfod" = "xdummy"],
[AC_DEFINE([DUMMY_LIBDEBUGINFOD], [1], [Build dummy libdebuginfod])])
AM_CONDITIONAL([LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xyes" || test "x$enable_libdebuginfod" = "xdummy"])
AM_CONDITIONAL([DUMMY_LIBDEBUGINFOD],[test "x$enable_libdebuginfod" = "xdummy"])
+AC_CHECK_HEADERS([execinfo.h])
# Look for libmicrohttpd, libarchive, sqlite for debuginfo server
# minimum versions as per rhel7.
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index f861eb72..0e4810bb 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,44 @@
+2023-04-21 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (groom): Fix -r / -X logic.
+
+2023-04-13 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx (archive_classify, scan_archive_file): Catch and
+ propagate exceptions during archive scans.
+
+2023-03-30 Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+ * debuginfod-client.c (update_atime): New function.
+ (extract_section, debuginfod_query_server): Call it.
+
+2023-03-30 Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+ * debuginfod-client.c (debuginfod_query_server): Don't modify
+ atime unintentionally.
+ * debuginfod.cxx (extract_section, handle_buildid_r_match): Ditto.
+
+2023-03-30 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Avoid sscanf on
+ mixed-case component of string.
+
+2023-03-29 Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+ * debuginfod-client.c (debuginfod_query_server): s/futimes/futimens/
+ * debuginfod.cxx (extract_section, handle_buildid_r_match): Ditto.
+
+2023-03-29 lilydjwg <lilydjwg@gmail.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Handle dl_size in
+ progress to account for possible curl 8.0.1 changes to
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD*.
+
+2023-03-17 Aaron Merey <amerey@redhat.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Do not create an
+ empty file in the cache if the query was cancelled by the progressfn.
+
2023-02-07 Aaron Merey <amerey@redhat.com>
* debuginfod-client.c (cache_find_section): Avoid returning -ENOENT
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index ef4d47e3..dcf05031 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -248,7 +248,7 @@ debuginfod_write_callback (char *ptr, size_t size, size_t nmemb, void *data)
/* handle config file read and write */
static int
-debuginfod_config_cache(char *config_path,
+debuginfod_config_cache(debuginfod_client *c, char *config_path,
long cache_config_default_s,
struct stat *st)
{
@@ -277,17 +277,27 @@ debuginfod_config_cache(char *config_path,
}
long cache_config;
+ /* PR29696 - NB: When using fdopen, the file descriptor is NOT
+ dup'ed and will be closed when the stream is closed. Manually
+ closing fd after fclose is called will lead to a race condition
+ where, if reused, the file descriptor will compete for its
+ regular use before being incorrectly closed here. */
FILE *config_file = fdopen(fd, "r");
if (config_file)
{
if (fscanf(config_file, "%ld", &cache_config) != 1)
- cache_config = cache_config_default_s;
- fclose(config_file);
+ cache_config = cache_config_default_s;
+ if (0 != fclose (config_file) && c->verbose_fd >= 0)
+ dprintf (c->verbose_fd, "fclose failed with %s (err=%d)\n",
+ strerror (errno), errno);
}
else
- cache_config = cache_config_default_s;
-
- close (fd);
+ {
+ cache_config = cache_config_default_s;
+ if (0 != close (fd) && c->verbose_fd >= 0)
+ dprintf (c->verbose_fd, "close failed with %s (err=%d)\n",
+ strerror (errno), errno);
+ }
return cache_config;
}
@@ -303,7 +313,7 @@ debuginfod_clean_cache(debuginfod_client *c,
struct stat st;
/* Create new interval file. */
- rc = debuginfod_config_cache(interval_path,
+ rc = debuginfod_config_cache(c, interval_path,
cache_clean_default_interval_s, &st);
if (rc < 0)
return rc;
@@ -320,7 +330,7 @@ debuginfod_clean_cache(debuginfod_client *c,
utime (interval_path, NULL);
/* Read max unused age value from config file. */
- rc = debuginfod_config_cache(max_unused_path,
+ rc = debuginfod_config_cache(c, max_unused_path,
cache_default_max_unused_age_s, &st);
if (rc < 0)
return rc;
@@ -558,7 +568,9 @@ 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)
+ if (data->client
+ && data->client->verbose_fd >= 0
+ && numitems > 2)
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)
@@ -618,6 +630,19 @@ path_escape (const char *src, char *dest)
dest[q] = '\0';
}
+/* Attempt to update the atime */
+static void
+update_atime (int fd)
+{
+ struct timespec tvs[2];
+
+ tvs[0].tv_sec = tvs[1].tv_sec = 0;
+ tvs[0].tv_nsec = UTIME_NOW;
+ tvs[1].tv_nsec = UTIME_OMIT;
+
+ (void) futimens (fd, tvs); /* best effort */
+}
+
/* 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.
@@ -761,6 +786,7 @@ extract_section (int fd, const char *section, char *fd_path, char **usr_path)
*usr_path = sec_path;
else
free (sec_path);
+ update_atime(fd);
rc = sec_fd;
goto out2;
}
@@ -1098,6 +1124,7 @@ debuginfod_query_server (debuginfod_client *c,
}
}
/* Success!!!! */
+ update_atime(fd);
rc = fd;
goto out;
}
@@ -1110,7 +1137,7 @@ debuginfod_query_server (debuginfod_client *c,
close(fd); /* no need to hold onto the negative-hit file descriptor */
- rc = debuginfod_config_cache(cache_miss_path,
+ rc = debuginfod_config_cache(c, cache_miss_path,
cache_miss_default_s, &st);
if (rc < 0)
goto out;
@@ -1467,7 +1494,7 @@ debuginfod_query_server (debuginfod_client *c,
goto out2;
}
- long dl_size = 0;
+ long dl_size = -1;
if (target_handle && (c->progressfn || maxsize > 0))
{
/* Get size of file being downloaded. NB: If going through
@@ -1486,7 +1513,7 @@ debuginfod_query_server (debuginfod_client *c,
curl_res = curl_easy_getinfo(target_handle,
CURLINFO_CONTENT_LENGTH_DOWNLOAD,
&cl);
- if (curl_res == CURLE_OK)
+ if (curl_res == CURLE_OK && cl >= 0)
dl_size = (cl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)cl);
#endif
/* If Content-Length is -1, try to get the size from
@@ -1495,9 +1522,9 @@ debuginfod_query_server (debuginfod_client *c,
{
long xdl;
char *hdr = strcasestr(c->winning_headers, "x-debuginfod-size");
+ size_t off = strlen("x-debuginfod-size:");
- if (hdr != NULL
- && sscanf(hdr, "x-debuginfod-size: %ld", &xdl) == 1)
+ if (hdr != NULL && sscanf(hdr + off, "%ld", &xdl) == 1)
dl_size = xdl;
}
}
@@ -1508,26 +1535,40 @@ debuginfod_query_server (debuginfod_client *c,
long pa = loops; /* default param for progress callback */
if (target_handle) /* we've committed to a server; report its download progress */
{
- CURLcode curl_res;
+ /* PR30809: Check actual size of cached file. This same
+ fd is shared by all the multi-curl handles (but only
+ one will end up writing to it). Another way could be
+ to tabulate totals in debuginfod_write_callback(). */
+ struct stat cached;
+ int statrc = fstat(fd, &cached);
+ if (statrc == 0)
+ pa = (long) cached.st_size;
+ else
+ {
+ /* Otherwise, query libcurl for its tabulated total.
+ However, that counts http body length, not
+ decoded/decompressed content length, so does not
+ measure quite the same thing as dl. */
+ CURLcode curl_res;
#if CURL_AT_LEAST_VERSION(7, 55, 0)
- curl_off_t dl;
- curl_res = curl_easy_getinfo(target_handle,
- CURLINFO_SIZE_DOWNLOAD_T,
- &dl);
- if (curl_res == 0 && dl >= 0)
- pa = (dl > LONG_MAX ? LONG_MAX : (long)dl);
+ curl_off_t dl;
+ curl_res = curl_easy_getinfo(target_handle,
+ CURLINFO_SIZE_DOWNLOAD_T,
+ &dl);
+ if (curl_res == 0 && dl >= 0)
+ pa = (dl > LONG_MAX ? LONG_MAX : (long)dl);
#else
- double dl;
- curl_res = curl_easy_getinfo(target_handle,
- CURLINFO_SIZE_DOWNLOAD,
- &dl);
- if (curl_res == 0)
- pa = (dl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)dl);
+ double dl;
+ curl_res = curl_easy_getinfo(target_handle,
+ CURLINFO_SIZE_DOWNLOAD,
+ &dl);
+ if (curl_res == 0)
+ pa = (dl >= (double)(LONG_MAX+1UL) ? LONG_MAX : (long)dl);
#endif
-
+ }
}
- if ((*c->progressfn) (c, pa, dl_size))
+ if ((*c->progressfn) (c, pa, dl_size == -1 ? 0 : dl_size))
{
c->progressfn_cancel = true;
break;
@@ -1667,9 +1708,9 @@ debuginfod_query_server (debuginfod_client *c,
}
} while (num_msg > 0);
- /* Create an empty file named as $HOME/.cache if the query fails
- with ENOENT.*/
- if (rc == -ENOENT)
+ /* Create an empty file in the cache if the query fails with ENOENT and
+ it wasn't cancelled early. */
+ if (rc == -ENOENT && !c->progressfn_cancel)
{
int efd = open (target_cache_path, O_CREAT|O_EXCL, DEFFILEMODE);
if (efd >= 0)
@@ -1718,13 +1759,15 @@ debuginfod_query_server (debuginfod_client *c,
#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 */
-
- struct timeval tvs[2];
- tvs[0].tv_sec = tvs[1].tv_sec = mtime;
- tvs[0].tv_usec = tvs[1].tv_usec = 0;
- (void) futimes (fd, tvs); /* best effort */
+ if (curl_res == CURLE_OK)
+ {
+ struct timespec tvs[2];
+ tvs[0].tv_sec = 0;
+ tvs[0].tv_nsec = UTIME_OMIT;
+ tvs[1].tv_sec = mtime;
+ tvs[1].tv_nsec = 0;
+ (void) futimens (fd, tvs); /* best effort */
+ }
/* PR27571: make cache files casually unwriteable; dirs are already 0700 */
(void) fchmod(fd, 0400);
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index 99b1f2b9..c11aeda1 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -44,6 +44,12 @@ extern "C" {
}
#endif
+#ifdef HAVE_EXECINFO_H
+extern "C" {
+#include <execinfo.h>
+}
+#endif
+
extern "C" {
#include "printversion.h"
#include "system.h"
@@ -85,6 +91,7 @@ extern "C" {
#include <cstring>
#include <vector>
#include <set>
+#include <unordered_set>
#include <map>
#include <string>
#include <iostream>
@@ -94,6 +101,7 @@ extern "C" {
#include <mutex>
#include <deque>
#include <condition_variable>
+#include <exception>
#include <thread>
// #include <regex> // on rhel7 gcc 4.8, not competent
#include <regex.h>
@@ -138,7 +146,7 @@ string_endswith(const string& haystack, const string& needle)
// Roll this identifier for every sqlite schema incompatibility.
-#define BUILDIDS "buildids9"
+#define BUILDIDS "buildids10"
#if SQLITE_VERSION_NUMBER >= 3008000
#define WITHOUT_ROWID "without rowid"
@@ -157,10 +165,23 @@ static const char DEBUGINFOD_SQLITE_DDL[] =
// NB: all these are overridable with -D option
// Normalization table for interning file names
- "create table if not exists " BUILDIDS "_files (\n"
+ "create table if not exists " BUILDIDS "_fileparts (\n"
" id integer primary key not null,\n"
" name text unique not null\n"
" );\n"
+ "create table if not exists " BUILDIDS "_files (\n"
+ " id integer primary key not null,\n"
+ " dirname integer not null,\n"
+ " basename integer not null,\n"
+ " unique (dirname, basename),\n"
+ " foreign key (dirname) references " BUILDIDS "_fileparts(id) on delete cascade,\n"
+ " foreign key (basename) references " BUILDIDS "_fileparts(id) on delete cascade\n"
+ " );\n"
+ "create view if not exists " BUILDIDS "_files_v as\n" // a
+ " select f.id, n1.name || '/' || n2.name as name\n"
+ " from " BUILDIDS "_files f, " BUILDIDS "_fileparts n1, " BUILDIDS "_fileparts n2\n"
+ " where f.dirname = n1.id and f.basename = n2.id;\n"
+
// Normalization table for interning buildids
"create table if not exists " BUILDIDS "_buildids (\n"
" id integer primary key not null,\n"
@@ -230,33 +251,33 @@ static const char DEBUGINFOD_SQLITE_DDL[] =
"create view if not exists " BUILDIDS "_query_d as \n"
"select\n"
" b.hex as buildid, n.mtime, 'F' as sourcetype, f0.name as source0, n.mtime as mtime, null as source1\n"
- " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_f_de n\n"
+ " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_f_de n\n"
" where b.id = n.buildid and f0.id = n.file and n.debuginfo_p = 1\n"
"union all select\n"
" b.hex as buildid, n.mtime, 'R' as sourcetype, f0.name as source0, n.mtime as mtime, f1.name as source1\n"
- " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files f1, " BUILDIDS "_r_de n\n"
+ " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v f1, " BUILDIDS "_r_de n\n"
" where b.id = n.buildid and f0.id = n.file and f1.id = n.content and n.debuginfo_p = 1\n"
";"
// ... and for E queries
"create view if not exists " BUILDIDS "_query_e as \n"
"select\n"
" b.hex as buildid, n.mtime, 'F' as sourcetype, f0.name as source0, n.mtime as mtime, null as source1\n"
- " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_f_de n\n"
+ " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_f_de n\n"
" where b.id = n.buildid and f0.id = n.file and n.executable_p = 1\n"
"union all select\n"
" b.hex as buildid, n.mtime, 'R' as sourcetype, f0.name as source0, n.mtime as mtime, f1.name as source1\n"
- " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files f1, " BUILDIDS "_r_de n\n"
+ " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v f1, " BUILDIDS "_r_de n\n"
" where b.id = n.buildid and f0.id = n.file and f1.id = n.content and n.executable_p = 1\n"
";"
// ... and for S queries
"create view if not exists " BUILDIDS "_query_s as \n"
"select\n"
" b.hex as buildid, fs.name as artifactsrc, 'F' as sourcetype, f0.name as source0, n.mtime as mtime, null as source1, null as source0ref\n"
- " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files fs, " BUILDIDS "_f_s n\n"
+ " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v fs, " BUILDIDS "_f_s n\n"
" where b.id = n.buildid and f0.id = n.file and fs.id = n.artifactsrc\n"
"union all select\n"
" b.hex as buildid, f1.name as artifactsrc, 'R' as sourcetype, f0.name as source0, sd.mtime as mtime, f1.name as source1, fsref.name as source0ref\n"
- " from " BUILDIDS "_buildids b, " BUILDIDS "_files f0, " BUILDIDS "_files f1, " BUILDIDS "_files fsref, "
+ " from " BUILDIDS "_buildids b, " BUILDIDS "_files_v f0, " BUILDIDS "_files_v f1, " BUILDIDS "_files_v fsref, "
" " BUILDIDS "_r_sdef sd, " BUILDIDS "_r_sref sr, " BUILDIDS "_r_de sde\n"
" where b.id = sr.buildid and f0.id = sd.file and fsref.id = sde.file and f1.id = sd.content\n"
" and sr.artifactsrc = sd.content and sde.buildid = sr.buildid\n"
@@ -271,6 +292,7 @@ static const char DEBUGINFOD_SQLITE_DDL[] =
"union all select 'archive sdef',count(*) from " BUILDIDS "_r_sdef\n"
"union all select 'buildids',count(*) from " BUILDIDS "_buildids\n"
"union all select 'filenames',count(*) from " BUILDIDS "_files\n"
+ "union all select 'fileparts',count(*) from " BUILDIDS "_fileparts\n"
"union all select 'files scanned (#)',count(*) from " BUILDIDS "_file_mtime_scanned\n"
"union all select 'files scanned (mb)',coalesce(sum(size)/1024/1024,0) from " BUILDIDS "_file_mtime_scanned\n"
#if SQLITE_VERSION_NUMBER >= 3016000
@@ -281,10 +303,26 @@ static const char DEBUGINFOD_SQLITE_DDL[] =
// schema change history & garbage collection
//
// XXX: we could have migration queries here to bring prior-schema
-// data over instead of just dropping it.
+// data over instead of just dropping it. But that could incur
+// doubled storage costs.
//
-// buildids9: widen the mtime_scanned table
+// buildids10: split the _files table into _parts
"" // <<< we are here
+// buildids9: widen the mtime_scanned table
+ "DROP VIEW IF EXISTS buildids9_stats;\n"
+ "DROP INDEX IF EXISTS buildids9_r_de_idx;\n"
+ "DROP INDEX IF EXISTS buildids9_f_de_idx;\n"
+ "DROP VIEW IF EXISTS buildids9_query_s;\n"
+ "DROP VIEW IF EXISTS buildids9_query_e;\n"
+ "DROP VIEW IF EXISTS buildids9_query_d;\n"
+ "DROP TABLE IF EXISTS buildids9_r_sdef;\n"
+ "DROP TABLE IF EXISTS buildids9_r_sref;\n"
+ "DROP TABLE IF EXISTS buildids9_r_de;\n"
+ "DROP TABLE IF EXISTS buildids9_f_s;\n"
+ "DROP TABLE IF EXISTS buildids9_f_de;\n"
+ "DROP TABLE IF EXISTS buildids9_file_mtime_scanned;\n"
+ "DROP TABLE IF EXISTS buildids9_buildids;\n"
+ "DROP TABLE IF EXISTS buildids9_files;\n"
// buildids8: slim the sref table
"drop table if exists buildids8_f_de;\n"
"drop table if exists buildids8_f_s;\n"
@@ -398,6 +436,8 @@ static const struct argp_option options[] =
{ "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 },
+#define ARGP_SCAN_CHECKPOINT 0x100A
+ { "scan-checkpoint", ARGP_SCAN_CHECKPOINT, "NUM", 0, "Number of files scanned before a WAL checkpoint.", 0 },
{ NULL, 0, NULL, 0, NULL, 0 },
};
@@ -452,6 +492,7 @@ static unsigned forwarded_ttl_limit = 8;
static bool scan_source_info = true;
static string tmpdir;
static bool passive_p = false;
+static long scan_checkpoint = 256;
static void set_metric(const string& key, double value);
// static void inc_metric(const string& key);
@@ -653,6 +694,11 @@ parse_opt (int key, char *arg,
case ARGP_KEY_DISABLE_SOURCE_SCAN:
scan_source_info = false;
break;
+ case ARGP_SCAN_CHECKPOINT:
+ scan_checkpoint = atol (arg);
+ if (scan_checkpoint < 0)
+ argp_failure(state, 1, EINVAL, "scan checkpoint");
+ break;
// case 'h': argp_state_help (state, stderr, ARGP_HELP_LONG|ARGP_HELP_EXIT_OK);
default: return ARGP_ERR_UNKNOWN;
}
@@ -736,7 +782,7 @@ struct elfutils_exception: public reportable_exception
template <typename Payload>
class workq
{
- set<Payload> q; // eliminate duplicates
+ unordered_set<Payload> q; // eliminate duplicates
mutex mtx;
condition_variable cv;
bool dead;
@@ -825,6 +871,24 @@ inline bool operator< (const scan_payload& a, const scan_payload& b)
{
return a.first < b.first; // don't bother compare the stat fields
}
+
+namespace std { // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480
+ template<> struct hash<::scan_payload>
+ {
+ std::size_t operator() (const ::scan_payload& p) const noexcept
+ {
+ return hash<string>()(p.first);
+ }
+ };
+ template<> struct equal_to<::scan_payload>
+ {
+ std::size_t operator() (const ::scan_payload& a, const ::scan_payload& b) const noexcept
+ {
+ return a.first == b.first;
+ }
+ };
+}
+
static workq<scan_payload> scanq; // just a single one
// producer & idler: thread_main_fts_source_paths()
// consumer: thread_main_scanner()
@@ -882,6 +946,72 @@ public:
////////////////////////////////////////////////////////////////////////
+// periodic_barrier is a concurrency control object that lets N threads
+// periodically (based on counter value) agree to wait at a barrier,
+// let one of them carry out some work, then be set free
+
+class periodic_barrier
+{
+private:
+ unsigned period; // number of count() reports to trigger barrier activation
+ unsigned threads; // number of threads participating
+ mutex mtx; // protects all the following fields
+ unsigned counter; // count of count() reports in the current generation
+ unsigned generation; // barrier activation generation
+ unsigned waiting; // number of threads waiting for barrier
+ bool dead; // bring out your
+ condition_variable cv;
+public:
+ periodic_barrier(unsigned t, unsigned p):
+ period(p), threads(t), counter(0), generation(0), waiting(0), dead(false) { }
+ virtual ~periodic_barrier() {}
+
+ virtual void periodic_barrier_work() noexcept = 0;
+ void nuke() {
+ unique_lock<mutex> lock(mtx);
+ dead = true;
+ cv.notify_all();
+ }
+
+ void count()
+ {
+ unique_lock<mutex> lock(mtx);
+ unsigned prev_generation = this->generation;
+ if (counter < period-1) // normal case: counter just freely running
+ {
+ counter ++;
+ return;
+ }
+ else if (counter == period-1) // we're the doer
+ {
+ counter = period; // entering barrier holding phase
+ cv.notify_all();
+ while (waiting < threads-1 && !dead)
+ cv.wait(lock);
+ // all other threads are now stuck in the barrier
+ this->periodic_barrier_work(); // NB: we're holding the mutex the whole time
+ // reset for next barrier, releasing other waiters
+ counter = 0;
+ generation ++;
+ cv.notify_all();
+ return;
+ }
+ else if (counter == period) // we're a waiter, in holding phase
+ {
+ waiting ++;
+ cv.notify_all();
+ while (counter == period && generation == prev_generation && !dead)
+ cv.wait(lock);
+ waiting --;
+ return;
+ }
+ }
+};
+
+
+
+////////////////////////////////////////////////////////////////////////
+
// Print a standard timestamp.
static ostream&
@@ -1026,6 +1156,24 @@ public:
////////////////////////////////////////////////////////////////////////
+
+struct sqlite_checkpoint_pb: public periodic_barrier
+{
+ // NB: don't use sqlite_ps since it can throw exceptions during ctor etc.
+ sqlite_checkpoint_pb(unsigned t, unsigned p):
+ periodic_barrier(t, p) { }
+
+ void periodic_barrier_work() noexcept
+ {
+ (void) sqlite3_exec (db, "pragma wal_checkpoint(truncate);", NULL, NULL, NULL);
+ }
+};
+
+static periodic_barrier* scan_barrier = 0; // initialized in main()
+
+
+////////////////////////////////////////////////////////////////////////
+
// RAII style templated autocloser
template <class Payload, class Ignore>
@@ -1635,13 +1783,14 @@ extract_section (int elf_fd, int64_t parent_mtime,
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];
+ struct timespec 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);
+ tvs[0].tv_sec = 0;
+ tvs[0].tv_nsec = UTIME_OMIT;
+ tvs[1] = fs.st_mtim;
+ (void) futimens (fd, tvs);
/* Add to fdcache. */
fdcache.intern (b_source, section, tmppath, data->d_size, true);
@@ -1727,11 +1876,10 @@ handle_buildid_f_match (bool internal_req_t,
}
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_response_header (r, "X-DEBUGINFOD-FILE", b_source0.c_str());
add_mhd_last_modified (r, s.st_mtime);
if (verbose > 1)
obatched(clog) << "serving file " << b_source0 << " section=" << section << endl;
@@ -1951,10 +2099,12 @@ handle_buildid_r_match (bool internal_req_p,
// Set the mtime so the fdcache file mtimes, even prefetched ones,
// propagate to future webapi clients.
- struct timeval tvs[2];
- tvs[0].tv_sec = tvs[1].tv_sec = archive_entry_mtime(e);
- tvs[0].tv_usec = tvs[1].tv_usec = 0;
- (void) futimes (fd, tvs); /* best effort */
+ struct timespec tvs[2];
+ tvs[0].tv_sec = 0;
+ tvs[0].tv_nsec = UTIME_OMIT;
+ tvs[1].tv_sec = archive_entry_mtime(e);
+ tvs[1].tv_nsec = archive_entry_mtime_nsec(e);
+ (void) futimens (fd, tvs); /* best effort */
if (r != 0) // stage 3
{
@@ -2013,14 +2163,12 @@ handle_buildid_r_match (bool internal_req_p,
}
else
{
- std::string file = b_source1.substr(b_source1.find_last_of("/")+1, b_source1.length());
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_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, archive_entry_mtime(e));
if (verbose > 1)
obatched(clog) << "serving archive " << b_source0
@@ -3037,10 +3185,65 @@ elf_classify (int fd, bool &executable_p, bool &debuginfo_p, string &buildid, se
}
+// Intern the given file name in two parts (dirname & basename) and
+// return the resulting file's id.
+static int64_t
+register_file_name(sqlite_ps& ps_upsert_fileparts,
+ sqlite_ps& ps_upsert_file,
+ sqlite_ps& ps_lookup_file,
+ const string& name)
+{
+ std::size_t slash = name.rfind('/');
+ string dirname, basename;
+ if (slash == std::string::npos)
+ {
+ dirname = "";
+ basename = name;
+ }
+ else
+ {
+ dirname = name.substr(0, slash);
+ basename = name.substr(slash+1);
+ }
+
+ // intern the two substrings
+ ps_upsert_fileparts
+ .reset()
+ .bind(1, dirname)
+ .step_ok_done();
+ ps_upsert_fileparts
+ .reset()
+ .bind(1, basename)
+ .step_ok_done();
+
+ // intern the tuple
+ ps_upsert_file
+ .reset()
+ .bind(1, dirname)
+ .bind(2, basename)
+ .step_ok_done();
+
+ // look up the tuple's id
+ ps_lookup_file
+ .reset()
+ .bind(1, dirname)
+ .bind(2, basename);
+ int rc = ps_lookup_file.step();
+ if (rc != SQLITE_ROW) throw sqlite_exception(rc, "step");
+
+ int64_t id = sqlite3_column_int64 (ps_lookup_file, 0);
+ ps_lookup_file.reset();
+ return id;
+}
+
+
+
static void
scan_source_file (const string& rps, const stat_t& st,
sqlite_ps& ps_upsert_buildids,
- sqlite_ps& ps_upsert_files,
+ sqlite_ps& ps_upsert_fileparts,
+ sqlite_ps& ps_upsert_file,
+ sqlite_ps& ps_lookup_file,
sqlite_ps& ps_upsert_de,
sqlite_ps& ps_upsert_s,
sqlite_ps& ps_query,
@@ -3050,10 +3253,12 @@ scan_source_file (const string& rps, const stat_t& st,
unsigned& fts_debuginfo,
unsigned& fts_sourcefiles)
{
+ int64_t fileid = register_file_name(ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, rps);
+
/* See if we know of it already. */
int rc = ps_query
.reset()
- .bind(1, rps)
+ .bind(1, fileid)
.bind(2, st.st_mtime)
.step();
ps_query.reset();
@@ -3093,12 +3298,6 @@ scan_source_file (const string& rps, const stat_t& st,
if (fd >= 0)
close (fd);
- // register this file name in the interning table
- ps_upsert_files
- .reset()
- .bind(1, rps)
- .step_ok_done();
-
if (buildid == "")
{
// no point storing an elf file without buildid
@@ -3125,7 +3324,7 @@ scan_source_file (const string& rps, const stat_t& st,
.bind(1, buildid)
.bind(2, debuginfo_p ? 1 : 0)
.bind(3, executable_p ? 1 : 0)
- .bind(4, rps)
+ .bind(4, fileid)
.bind(5, st.st_mtime)
.step_ok_done();
}
@@ -3157,11 +3356,6 @@ scan_source_file (const string& rps, const stat_t& st,
<< " mtime=" << sfs.st_mtime
<< " as source " << dwarfsrc << endl;
- ps_upsert_files
- .reset()
- .bind(1, srps)
- .step_ok_done();
-
// PR25548: store canonicalized dwarfsrc path
string dwarfsrc_canon = canon_pathname (dwarfsrc);
if (dwarfsrc_canon != dwarfsrc)
@@ -3170,16 +3364,14 @@ scan_source_file (const string& rps, const stat_t& st,
obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl;
}
- ps_upsert_files
- .reset()
- .bind(1, dwarfsrc_canon)
- .step_ok_done();
+ int64_t fileid1 = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, dwarfsrc_canon);
+ int64_t fileid2 = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, srps);
ps_upsert_s
.reset()
.bind(1, buildid)
- .bind(2, dwarfsrc_canon)
- .bind(3, srps)
+ .bind(2, fileid1)
+ .bind(3, fileid2)
.bind(4, sfs.st_mtime)
.step_ok_done();
@@ -3189,7 +3381,7 @@ scan_source_file (const string& rps, const stat_t& st,
ps_scan_done
.reset()
- .bind(1, rps)
+ .bind(1, fileid)
.bind(2, st.st_mtime)
.bind(3, st.st_size)
.step_ok_done();
@@ -3208,8 +3400,9 @@ scan_source_file (const string& rps, const stat_t& st,
// Analyze given archive file of given age; record buildids / exec/debuginfo-ness of its
// constituent files with given upsert statements.
static void
-archive_classify (const string& rps, string& archive_extension,
- sqlite_ps& ps_upsert_buildids, sqlite_ps& ps_upsert_files,
+archive_classify (const string& rps, string& archive_extension, int64_t archiveid,
+ sqlite_ps& ps_upsert_buildids, sqlite_ps& ps_upsert_fileparts, sqlite_ps& ps_upsert_file,
+ sqlite_ps& ps_lookup_file,
sqlite_ps& ps_upsert_de, sqlite_ps& ps_upsert_sref, sqlite_ps& ps_upsert_sdef,
time_t mtime,
unsigned& fts_executable, unsigned& fts_debuginfo, unsigned& fts_sref, unsigned& fts_sdef,
@@ -3263,8 +3456,9 @@ archive_classify (const string& rps, string& archive_extension,
}
if (verbose > 3)
- obatched(clog) << "libarchive scanning " << rps << endl;
+ obatched(clog) << "libarchive scanning " << rps << " id " << archiveid << endl;
+ bool any_exceptions = false;
while(1) // parse archive entries
{
if (interrupted)
@@ -3316,10 +3510,7 @@ archive_classify (const string& rps, string& archive_extension,
.step_ok_done();
}
- ps_upsert_files // register this rpm constituent file name in interning table
- .reset()
- .bind(1, fn)
- .step_ok_done();
+ int64_t fileid = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, fn);
if (sourcefiles.size() > 0) // sref records needed
{
@@ -3348,15 +3539,13 @@ archive_classify (const string& rps, string& archive_extension,
obatched(clog) << "canonicalized src=" << dwarfsrc << " alias=" << dwarfsrc_canon << endl;
}
- ps_upsert_files
- .reset()
- .bind(1, dwarfsrc_canon)
- .step_ok_done();
-
+ int64_t srcfileid = register_file_name(ps_upsert_fileparts, ps_upsert_file, ps_lookup_file,
+ dwarfsrc_canon);
+
ps_upsert_sref
.reset()
.bind(1, buildid)
- .bind(2, dwarfsrc_canon)
+ .bind(2, srcfileid)
.step_ok_done();
fts_sref ++;
@@ -3375,9 +3564,9 @@ archive_classify (const string& rps, string& archive_extension,
.bind(1, buildid)
.bind(2, debuginfo_p ? 1 : 0)
.bind(3, executable_p ? 1 : 0)
- .bind(4, rps)
+ .bind(4, archiveid)
.bind(5, mtime)
- .bind(6, fn)
+ .bind(6, fileid)
.step_ok_done();
}
else // potential source - sdef record
@@ -3385,9 +3574,9 @@ archive_classify (const string& rps, string& archive_extension,
fts_sdef ++;
ps_upsert_sdef
.reset()
- .bind(1, rps)
+ .bind(1, archiveid)
.bind(2, mtime)
- .bind(3, fn)
+ .bind(3, fileid)
.step_ok_done();
}
@@ -3402,8 +3591,17 @@ archive_classify (const string& rps, string& archive_extension,
catch (const reportable_exception& e)
{
e.report(clog);
+ any_exceptions = true;
+ // NB: but we allow the libarchive iteration to continue, in
+ // case we can still gather some useful information. That
+ // would allow some webapi queries to work, until later when
+ // this archive is rescanned. (Its vitals won't go into the
+ // _file_mtime_scanned table until after a successful scan.)
}
}
+
+ if (any_exceptions)
+ throw reportable_exception("exceptions encountered during archive scan");
}
@@ -3412,7 +3610,9 @@ archive_classify (const string& rps, string& archive_extension,
static void
scan_archive_file (const string& rps, const stat_t& st,
sqlite_ps& ps_upsert_buildids,
- sqlite_ps& ps_upsert_files,
+ sqlite_ps& ps_upsert_fileparts,
+ sqlite_ps& ps_upsert_file,
+ sqlite_ps& ps_lookup_file,
sqlite_ps& ps_upsert_de,
sqlite_ps& ps_upsert_sref,
sqlite_ps& ps_upsert_sdef,
@@ -3424,10 +3624,13 @@ scan_archive_file (const string& rps, const stat_t& st,
unsigned& fts_sref,
unsigned& fts_sdef)
{
+ // intern the archive file name
+ int64_t archiveid = register_file_name (ps_upsert_fileparts, ps_upsert_file, ps_lookup_file, rps);
+
/* See if we know of it already. */
int rc = ps_query
.reset()
- .bind(1, rps)
+ .bind(1, archiveid)
.bind(2, st.st_mtime)
.step();
ps_query.reset();
@@ -3441,20 +3644,15 @@ scan_archive_file (const string& rps, const stat_t& st,
return;
}
- // intern the archive file name
- ps_upsert_files
- .reset()
- .bind(1, rps)
- .step_ok_done();
-
// extract the archive contents
unsigned my_fts_executable = 0, my_fts_debuginfo = 0, my_fts_sref = 0, my_fts_sdef = 0;
bool my_fts_sref_complete_p = true;
+ bool any_exceptions = false;
try
{
string archive_extension;
- archive_classify (rps, archive_extension,
- ps_upsert_buildids, ps_upsert_files,
+ archive_classify (rps, archive_extension, archiveid,
+ ps_upsert_buildids, ps_upsert_fileparts, ps_upsert_file, ps_lookup_file,
ps_upsert_de, ps_upsert_sref, ps_upsert_sdef, // dalt
st.st_mtime,
my_fts_executable, my_fts_debuginfo, my_fts_sref, my_fts_sdef,
@@ -3472,6 +3670,7 @@ scan_archive_file (const string& rps, const stat_t& st,
catch (const reportable_exception& e)
{
e.report(clog);
+ any_exceptions = true;
}
if (verbose > 2)
@@ -3481,6 +3680,7 @@ scan_archive_file (const string& rps, const stat_t& st,
<< " debuginfos=" << my_fts_debuginfo
<< " srefs=" << my_fts_sref
<< " sdefs=" << my_fts_sdef
+ << " exceptions=" << any_exceptions
<< endl;
fts_executable += my_fts_executable;
@@ -3488,10 +3688,13 @@ scan_archive_file (const string& rps, const stat_t& st,
fts_sref += my_fts_sref;
fts_sdef += my_fts_sdef;
+ if (any_exceptions)
+ throw reportable_exception("exceptions encountered during archive scan");
+
if (my_fts_sref_complete_p) // leave incomplete?
ps_scan_done
.reset()
- .bind(1, rps)
+ .bind(1, archiveid)
.bind(2, st.st_mtime)
.bind(3, st.st_size)
.step_ok_done();
@@ -3506,57 +3709,63 @@ scan_archive_file (const string& rps, const stat_t& st,
// The thread that consumes file names off of the scanq. We hold
// the persistent sqlite_ps's at this level and delegate file/archive
// scanning to other functions.
-static void*
-thread_main_scanner (void* arg)
+static void
+scan ()
{
- (void) arg;
-
// all the prepared statements fit to use, the _f_ set:
sqlite_ps ps_f_upsert_buildids (db, "file-buildids-intern", "insert or ignore into " BUILDIDS "_buildids VALUES (NULL, ?);");
- sqlite_ps ps_f_upsert_files (db, "file-files-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, ?);");
+ sqlite_ps ps_f_upsert_fileparts (db, "file-fileparts-intern", "insert or ignore into " BUILDIDS "_fileparts VALUES (NULL, ?);");
+ sqlite_ps ps_f_upsert_file (db, "file-file-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, \n"
+ "(select id from " BUILDIDS "_fileparts where name = ?),\n"
+ "(select id from " BUILDIDS "_fileparts where name = ?));");
+ sqlite_ps ps_f_lookup_file (db, "file-file-lookup",
+ "select f.id\n"
+ " from " BUILDIDS "_files f, " BUILDIDS "_fileparts p1, " BUILDIDS "_fileparts p2 \n"
+ " where f.dirname = p1.id and f.basename = p2.id and p1.name = ? and p2.name = ?;\n");
sqlite_ps ps_f_upsert_de (db, "file-de-upsert",
"insert or ignore into " BUILDIDS "_f_de "
"(buildid, debuginfo_p, executable_p, file, mtime) "
"values ((select id from " BUILDIDS "_buildids where hex = ?),"
- " ?,?,"
- " (select id from " BUILDIDS "_files where name = ?), ?);");
+ " ?,?,?,?);");
sqlite_ps ps_f_upsert_s (db, "file-s-upsert",
"insert or ignore into " BUILDIDS "_f_s "
"(buildid, artifactsrc, file, mtime) "
"values ((select id from " BUILDIDS "_buildids where hex = ?),"
- " (select id from " BUILDIDS "_files where name = ?),"
- " (select id from " BUILDIDS "_files where name = ?),"
- " ?);");
+ " ?,?,?);");
sqlite_ps ps_f_query (db, "file-negativehit-find",
"select 1 from " BUILDIDS "_file_mtime_scanned where sourcetype = 'F' "
- "and file = (select id from " BUILDIDS "_files where name = ?) and mtime = ?;");
+ "and file = ? and mtime = ?;");
sqlite_ps ps_f_scan_done (db, "file-scanned",
"insert or ignore into " BUILDIDS "_file_mtime_scanned (sourcetype, file, mtime, size)"
- "values ('F', (select id from " BUILDIDS "_files where name = ?), ?, ?);");
+ "values ('F', ?,?,?);");
// and now for the _r_ set
sqlite_ps ps_r_upsert_buildids (db, "rpm-buildid-intern", "insert or ignore into " BUILDIDS "_buildids VALUES (NULL, ?);");
- sqlite_ps ps_r_upsert_files (db, "rpm-file-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, ?);");
+ sqlite_ps ps_r_upsert_fileparts (db, "rpm-fileparts-intern", "insert or ignore into " BUILDIDS "_fileparts VALUES (NULL, ?);");
+ sqlite_ps ps_r_upsert_file (db, "rpm-file-intern", "insert or ignore into " BUILDIDS "_files VALUES (NULL, \n"
+ "(select id from " BUILDIDS "_fileparts where name = ?),\n"
+ "(select id from " BUILDIDS "_fileparts where name = ?));");
+ sqlite_ps ps_r_lookup_file (db, "rpm-file-lookup",
+ "select f.id\n"
+ " from " BUILDIDS "_files f, " BUILDIDS "_fileparts p1, " BUILDIDS "_fileparts p2 \n"
+ " where f.dirname = p1.id and f.basename = p2.id and p1.name = ? and p2.name = ?;\n");
sqlite_ps ps_r_upsert_de (db, "rpm-de-insert",
"insert or ignore into " BUILDIDS "_r_de (buildid, debuginfo_p, executable_p, file, mtime, content) values ("
- "(select id from " BUILDIDS "_buildids where hex = ?), ?, ?, "
- "(select id from " BUILDIDS "_files where name = ?), ?, "
- "(select id from " BUILDIDS "_files where name = ?));");
+ "(select id from " BUILDIDS "_buildids where hex = ?), ?, ?, ?, ?, ?);");
sqlite_ps ps_r_upsert_sref (db, "rpm-sref-insert",
"insert or ignore into " BUILDIDS "_r_sref (buildid, artifactsrc) values ("
"(select id from " BUILDIDS "_buildids where hex = ?), "
- "(select id from " BUILDIDS "_files where name = ?));");
+ "?);");
sqlite_ps ps_r_upsert_sdef (db, "rpm-sdef-insert",
"insert or ignore into " BUILDIDS "_r_sdef (file, mtime, content) values ("
- "(select id from " BUILDIDS "_files where name = ?), ?,"
- "(select id from " BUILDIDS "_files where name = ?));");
+ "?, ?, ?);");
sqlite_ps ps_r_query (db, "rpm-negativehit-query",
"select 1 from " BUILDIDS "_file_mtime_scanned where "
- "sourcetype = 'R' and file = (select id from " BUILDIDS "_files where name = ?) and mtime = ?;");
+ "sourcetype = 'R' and file = ? and mtime = ?;");
sqlite_ps ps_r_scan_done (db, "rpm-scanned",
"insert or ignore into " BUILDIDS "_file_mtime_scanned (sourcetype, file, mtime, size)"
- "values ('R', (select id from " BUILDIDS "_files where name = ?), ?, ?);");
-
+ "values ('R', ?, ?, ?);");
+
unsigned fts_cached = 0, fts_executable = 0, fts_debuginfo = 0, fts_sourcefiles = 0;
unsigned fts_sref = 0, fts_sdef = 0;
@@ -3568,6 +3777,9 @@ thread_main_scanner (void* arg)
scan_payload p;
add_metric("thread_busy", "role", "scan", -1);
+ // NB: threads may be blocked within either of these two waiting
+ // states, if the work queue happens to run dry. That's OK.
+ if (scan_barrier) scan_barrier->count();
bool gotone = scanq.wait_front(p);
add_metric("thread_busy", "role", "scan", 1);
@@ -3583,7 +3795,9 @@ thread_main_scanner (void* arg)
if (scan_archive)
scan_archive_file (p.first, p.second,
ps_r_upsert_buildids,
- ps_r_upsert_files,
+ ps_r_upsert_fileparts,
+ ps_r_upsert_file,
+ ps_r_lookup_file,
ps_r_upsert_de,
ps_r_upsert_sref,
ps_r_upsert_sdef,
@@ -3598,7 +3812,9 @@ thread_main_scanner (void* arg)
if (scan_files) // NB: maybe "else if" ?
scan_source_file (p.first, p.second,
ps_f_upsert_buildids,
- ps_f_upsert_files,
+ ps_f_upsert_fileparts,
+ ps_f_upsert_file,
+ ps_f_lookup_file,
ps_f_upsert_de,
ps_f_upsert_s,
ps_f_query,
@@ -3622,8 +3838,25 @@ thread_main_scanner (void* arg)
inc_metric("thread_work_total","role","scan");
}
-
add_metric("thread_busy", "role", "scan", -1);
+}
+
+
+// Use this function as the thread entry point, so it can catch our
+// fleet of exceptions (incl. the sqlite_ps ctors) and report.
+static void*
+thread_main_scanner (void* arg)
+{
+ (void) arg;
+ while (! interrupted)
+ try
+ {
+ scan();
+ }
+ catch (const reportable_exception& e)
+ {
+ e.report(cerr);
+ }
return 0;
}
@@ -3836,7 +4069,7 @@ void groom()
// scan for files that have disappeared
sqlite_ps files (db, "check old files",
"select distinct s.mtime, s.file, f.name from "
- BUILDIDS "_file_mtime_scanned s, " BUILDIDS "_files f "
+ BUILDIDS "_file_mtime_scanned s, " BUILDIDS "_files_v f "
"where f.id = s.file");
// NB: Because _ftime_mtime_scanned can contain both F and
// R records for the same file, this query would return duplicates if the
@@ -3874,7 +4107,7 @@ void 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;
+ regex_file_drop = !reg_include || reg_exclude; // match logic of scan_source_paths
}
rc = stat(filename, &s);
@@ -4136,6 +4369,20 @@ default_concurrency() // guaranteed >= 1
}
+// 30879: Something to help out in case of an uncaught exception.
+void my_terminate_handler()
+{
+#if defined(__GLIBC__)
+ void *array[40];
+ int size = backtrace (array, 40);
+ backtrace_symbols_fd (array, size, STDERR_FILENO);
+#endif
+#if defined(__GLIBCXX__) || defined(__GLIBCPP__)
+ __gnu_cxx::__verbose_terminate_handler();
+#endif
+ abort();
+}
+
int
main (int argc, char *argv[])
@@ -4144,6 +4391,8 @@ main (int argc, char *argv[])
(void) bindtextdomain (PACKAGE_TARNAME, LOCALEDIR);
(void) textdomain (PACKAGE_TARNAME);
+ std::set_terminate(& my_terminate_handler);
+
/* Tell the library which version we are expecting. */
elf_version (EV_CURRENT);
@@ -4364,8 +4613,10 @@ main (int argc, char *argv[])
obatched(clog) << "search concurrency " << concurrency << endl;
obatched(clog) << "webapi connection pool " << connection_pool
<< (connection_pool ? "" : " (unlimited)") << endl;
- if (! passive_p)
+ if (! passive_p) {
obatched(clog) << "rescan time " << rescan_s << endl;
+ obatched(clog) << "scan checkpoint " << scan_checkpoint << endl;
+ }
obatched(clog) << "fdcache fds " << fdcache_fds << endl;
obatched(clog) << "fdcache mbs " << fdcache_mbs << endl;
obatched(clog) << "fdcache prefetch " << fdcache_prefetch << endl;
@@ -4407,6 +4658,9 @@ main (int argc, char *argv[])
if (scan_files || scan_archives.size() > 0)
{
+ if (scan_checkpoint > 0)
+ scan_barrier = new sqlite_checkpoint_pb(concurrency, (unsigned) scan_checkpoint);
+
rc = pthread_create (& pt, NULL, thread_main_fts_source_paths, NULL);
if (rc)
error (EXIT_FAILURE, rc, "cannot spawn thread to traverse source paths\n");
@@ -4433,6 +4687,7 @@ main (int argc, char *argv[])
while (! interrupted)
pause ();
scanq.nuke(); // wake up any remaining scanq-related threads, let them die
+ if (scan_barrier) scan_barrier->nuke(); // ... in case they're stuck in a barrier
set_metric("ready", 0);
if (verbose)
@@ -4458,6 +4713,7 @@ main (int argc, char *argv[])
}
debuginfod_pool_groom ();
+ delete scan_barrier;
// NB: no problem with unconditional free here - an earlier failed regcomp would exit program
(void) regfree (& file_include_regex);
diff --git a/doc/Makefile.am b/doc/Makefile.am
index db5a842e..87de4f0b 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -17,7 +17,7 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
EXTRA_DIST = COPYING-GFDL README
-dist_man1_MANS=readelf.1 elfclassify.1
+dist_man1_MANS=readelf.1 elfclassify.1 srcfiles.1
notrans_dist_man3_MANS=elf_update.3 elf_getdata.3 elf_clone.3 elf_begin.3
notrans_dist_man7_MANS=
notrans_dist_man8_MANS=
diff --git a/doc/debuginfod.8 b/doc/debuginfod.8
index 07cb01ae..4f1f04b3 100644
--- a/doc/debuginfod.8
+++ b/doc/debuginfod.8
@@ -172,7 +172,10 @@ interrupting a groom pass (if any).
.TP
.B "\-r"
-Apply the -I and -X during groom cycles, so that files excluded by the regexes are removed from the index. These parameters are in addition to what normally qualifies a file for grooming, not a replacement.
+Apply the -I and -X during groom cycles, so that most content related
+to files excluded by the regexes are removed from the index. Not all
+content can be practically removed, so eventually a "\-G"
+"maximal-groom" operation may be needed.
.TP
.B "\-g SECONDS" "\-\-groom\-time=SECONDS"
@@ -280,6 +283,13 @@ If a setup has no access to source code, the source info is not
required.
.TP
+.B "\-\-scan\-checkpoint=NUM"
+Run a synchronized SQLITE WAL checkpoint operation after every NUM
+completed archive or file scans. This may slow down parallel scanning
+phase somewhat, but generate much smaller "-wal" temporary files on
+busy servers. The default is 256. Disabled if 0.
+
+.TP
.B "\-v"
Increase verbosity of logging to the standard error file descriptor.
May be repeated to increase details. The default verbosity is 0.
@@ -294,18 +304,35 @@ Unknown buildid / request combinations result in HTTP error codes.
This file service resemblance is intentional, so that an installation
can take advantage of standard HTTP management infrastructure.
-Upon finding a file in an archive or simply in the database, some
-custom http headers are added to the response. For files in the
-database X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE are added.
-X-DEBUGINFOD-FILE is simply the unescaped filename and
-X-DEBUGINFOD-SIZE is the size of the file. For files found in archives,
-in addition to X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE,
-X-DEBUGINFOD-ARCHIVE is added. X-DEBUGINFOD-ARCHIVE is the name of the
-archive the file was found in.
+For most queries, some custom http headers are added to the response,
+providing additional metadata about the buildid-related response. For example:
+
+.SAMPLE
+% debuginfod-find -v debuginfo /bin/ls |& grep -i x-debuginfo
+x-debuginfod-size: 502024
+x-debuginfod-archive: /mnt/fedora_koji_prod/koji/packages/coreutils/9.3/4.fc39/x86_64/coreutils-debuginfo-9.3-4.fc39.x86_64.rpm
+x-debuginfod-file: /usr/lib/debug/usr/bin/ls-9.3-4.fc39.x86_64.debug
+.ESAMPLE
+
+.TP
+X-DEBUGINFOD-SIZE
+The size of the file, in bytes. This may differ from the http Content-Length:
+field (if present), due to compression in transit.
+
+.TP
+X-DEBUGINFOD-FILE
+The full path name of the file related to the given buildid.
+
+.TP
+X-DEBUGINFOD-ARCHIVE
+The full path name of the archive that contained the above file, if any.
+
+
+
-There are three requests. In each case, the buildid is encoded as a
-lowercase hexadecimal string. For example, for a program \fI/bin/ls\fP,
-look at the ELF note GNU_BUILD_ID:
+There are a handful of buildid-related requests. In each case, the
+buildid is encoded as a lowercase hexadecimal string. For example,
+for a program \fI/bin/ls\fP, look at the ELF note GNU_BUILD_ID:
.SAMPLE
% readelf -n /bin/ls | grep -A4 build.id
@@ -381,8 +408,7 @@ contents of the section, not an ELF file.
This endpoint returns a Prometheus formatted text/plain dump of a
variety of statistics about the operation of the debuginfod server.
The exact set of metrics and their meanings may change in future
-versions. Caution: configuration information (path names, versions)
-may be disclosed.
+versions.
.SH DATA MANAGEMENT
@@ -475,8 +501,16 @@ a denial-of-service in terms of RAM, CPU, disk I/O, or network I/O.
If this is a problem, users are advised to install debuginfod with a
HTTPS reverse-proxy front-end that enforces site policies for
firewalling, authentication, integrity, authorization, and load
-control. The \fI/metrics\fP webapi endpoint is probably not
-appropriate for disclosure to the public.
+control.
+
+Front-end proxies may elide sensitive path name components in
+X-DEBUGINFOD-FILE/ARCHIVE response headers. For example, using Apache
+httpd's \fBmod_headers\fP, you can remove the entire directory name
+prefix:
+
+.SAMPLE
+Header edit x-debuginfod-archive ".*/" ""
+.ESAMPLE
When relaying queries to upstream debuginfods, debuginfod \fBdoes not\fP
include any particular security features. It trusts that the binaries
diff --git a/doc/srcfiles.1 b/doc/srcfiles.1
new file mode 100644
index 00000000..6149c21b
--- /dev/null
+++ b/doc/srcfiles.1
@@ -0,0 +1,133 @@
+.\" Copyright 2023 Red Hat Inc.
+.\" Mon 2023-Sept 23 Housam Alamour <halamour@redhat.com>
+.\" Contact elfutils-devel@sourceware.org to correct errors or typos.
+.TH EU-SRCFILES 1 "2023-Sept-25" "elfutils"
+
+.de SAMPLE
+.br
+.RS 0
+.nf
+.nh
+\fB
+..
+.de ESAMPLE
+\fP
+.hy
+.fi
+.RE
+..
+
+.SH "NAME"
+eu-srcfiles \- Lists the source files of a DWARF/ELF file.
+
+.SH "SYNOPSIS"
+eu-srcfiles [\fB\-0\fR|\fB\-\-null\fR] [\fB\-c\fR|\fB\-\-cu\-only\fR] [\fB\-v\fR|\fB\-\-verbose\fR] INPUT
+
+.SH "DESCRIPTION"
+\fBeu-srcfiles\fR lists the source files of a given \s-DWARF/ELF\s0
+file. This list is based on a search of the DWARF debuginfo, which
+may be automatically fetched by debuginfod if applicable. The target
+file may be an executable, a coredump, a process, or even the running
+kernel. The default is the file 'a.out'. The source file names are
+made unique and printed to standard output.
+
+.SH "INPUT OPTIONS"
+The long and short forms of options, shown here as alternatives, are
+equivalent.
+.TP
+\fB--core=COREFILE\fR
+Find addresses from signatures found in COREFILE.
+
+.TP
+\fB--debuginfo-path=PATH\fR
+Search path for separate debuginfo files.
+
+.TP
+\fB-e FILE\fR, \fB--executable=FILE\fR
+Find addresses in FILE.
+
+.TP
+\fB-k\fR, \fB--kernel\fR
+Find addresses in the running kernel.
+
+.TP
+\fB-K\fR, \fB--offline-kernel[=RELEASE]\fR
+Kernel with all modules.
+
+.TP
+\fB-M FILE\fR, \fB--linux-process-map=FILE\fR
+Find addresses in files mapped as read from FILE in Linux /proc/PID/maps format.
+
+.TP
+\fB-p PID\fR, \fB--pid=PID\fR
+Find addresses in files mapped into process PID.
+
+.TP
+\fB-?\fR, \fB--help\fR
+Give this help list.
+
+.TP
+\fB--usage\fR
+Give a short usage message.
+
+.TP
+\fB-V\fR, \fB--version\fR
+Print program version.
+
+.SH "OUTPUT OPTIONS"
+
+.TP
+\fB\-0, \-\-null\fR
+Separate items by a null instead of a newline.
+
+.TP
+\fB\-c, \-\-cu\-only\fR
+Only list the CU names.
+
+.TP
+\fB\-v, \-\-verbose\fR
+Increase verbosity of logging messages.
+
+
+.SH EXAMPLES
+
+List all source files for a binary.
+.SAMPLE
+eu-srcfiles -e /bin/ls
+.ESAMPLE
+
+List all compilation units (CU) names for a given process (including shared libraries).
+.SAMPLE
+eu-srcfiles -c -p $$
+.ESAMPLE
+
+List source files of a binary based on its buildid, using debuginfod.
+.SAMPLE
+binary=`debuginfod-find executable 9c22d8d9e42bd051ffdc1064fdfd456ba781c629`
+eu-srcfiles -c -e $binary
+.ESAMPLE
+
+Show the source code of the first CU of a shared library.
+.SAMPLE
+binary=/usr/lib64/libc.so.6
+srcfile=`eu-srcfiles -c -e $binary | head -1`
+cat `debuginfod-find source $binary $srcfile`
+.ESAMPLE
+
+List the source files of a kernel image.
+.SAMPLE
+eu-srcfiles -e /boot/vmlinuz-`uname -r`
+.ESAMPLE
+
+
+.SH "AUTHOR"
+Written by Housam Alamour.
+
+.SH "REPORTING BUGS"
+Please reports bugs at https://sourceware.org/bugzilla/
+
+.SH "COPYRIGHT"
+Copyright (c) 2023 Red Hat Inc. License GPLv3+: GNU GPL version 3 or
+later <https://gnu.org/licenses/gpl.html>. This is free software: you
+are free to change and redistribute it. There is NO WARRANTY, to the
+extent permitted by law.
diff --git a/lib/eu-config.h b/lib/eu-config.h
index 78a5c4fe..feb079db 100644
--- a/lib/eu-config.h
+++ b/lib/eu-config.h
@@ -33,13 +33,18 @@
# include <pthread.h>
# include <assert.h>
# define rwlock_define(class,name) class pthread_rwlock_t name
+# define once_define(class,name) class pthread_once_t name = PTHREAD_ONCE_INIT
# define RWLOCK_CALL(call) \
({ int _err = pthread_rwlock_ ## call; assert_perror (_err); })
+# define ONCE_CALL(call) \
+ ({ int _err = pthread_ ## call; assert_perror (_err); })
# define rwlock_init(lock) RWLOCK_CALL (init (&lock, NULL))
# define rwlock_fini(lock) RWLOCK_CALL (destroy (&lock))
# define rwlock_rdlock(lock) RWLOCK_CALL (rdlock (&lock))
# define rwlock_wrlock(lock) RWLOCK_CALL (wrlock (&lock))
# define rwlock_unlock(lock) RWLOCK_CALL (unlock (&lock))
+# define once(once_control, init_routine) \
+ ONCE_CALL (once (&once_control, init_routine))
#else
/* Eventually we will allow multi-threaded applications to use the
libraries. Therefore we will add the necessary locking although
@@ -50,6 +55,8 @@
# define rwlock_rdlock(lock) ((void) (lock))
# define rwlock_wrlock(lock) ((void) (lock))
# define rwlock_unlock(lock) ((void) (lock))
+# define once_define(class,name)
+# define once(once_control, init_routine) init_routine()
#endif /* USE_LOCKS */
#include <libintl.h>
diff --git a/lib/printversion.h b/lib/printversion.h
index 4154b328..6811aa5b 100644
--- a/lib/printversion.h
+++ b/lib/printversion.h
@@ -32,6 +32,9 @@
#include <argp.h>
#include <stdio.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
/* Defined in version.c. Common ARGP_PROGRAM_VERSION_HOOK_DEF. */
void print_version (FILE *stream, struct argp_state *state);
@@ -49,4 +52,8 @@ extern const char *const apba__;
#define ARGP_PROGRAM_BUG_ADDRESS_DEF \
const char *const apba__ __asm ("argp_program_bug_address")
+#ifdef __cplusplus
+}
+#endif
+
#endif // PRINTVERSION_H
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 406310ef..b19fc80d 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,47 @@
+2023-09-27 Omar Sandoval <osandov@fb.com>
+
+ * libdwP.h ((Dwarf): Add elfpath.
+ * dwarf_begin_elf.c (__libdw_debugdir): Replace declaration with...
+ (__libdw_elfpath): New declaration.
+ (__libdw_set_debugdir): New declaration.
+ (__libdw_debugdir): Replace with..
+ (__libdw_elfpath): New function.
+ (__libdw_set_debugdir): New function.
+ (valid_p): Call __libdw_elfpath and __libdw_set_debugdir instead of
+ __libdw_debugdir.
+ * dwarf_end.c (dwarf_end): Free dwarf->elfpath.
+
+2023-09-27 Omar Sandoval <osandov@fb.com>
+
+ * libdw_find_split_unit.c (try_split_file): Make static.
+ * dwarf_entrypc.c (dwarf_entrypc): Call dwarf_lowpc.
+ * dwarf_ranges.c (dwarf_ranges): Use skeleton ranges section for
+ skeleton units.
+ * dwarf_macro_param2.c (dwarf_macro_param2): Change form condition to
+ switch statement and add DW_FORM_line_strp, DW_FORM_strp_sup,
+ DW_FORM_strx, and DW_FORM_strx[1-4].
+ * dwarf_getmacros.c (get_macinfo_table): Replace assignment of
+ table->is_64bit with assignments of table->address_size and
+ table->offset_size. Assume default DW_AT_stmt_list of 0 for split
+ DWARF. Set table->dbg.
+ (get_table_for_offset): Ditto.
+ (read_macros): Get fake CU offset_size from table->offset_size instead
+ of table->is_64bit.
+ * dwarf_macro_getsrcfiles.c (dwarf_macro_getsrcfiles): Get
+ address_size for __libdw_getsrclines from table->address_size instead
+ of table->is_64bit. Get dbg for __libdw_getsrclines from table->dbg
+ instead of dbg parameter, which is now unused.
+ * libdwP.h (Dwarf_Macro_Op_Table): Replace is_64bit with address_size
+ and offset_size. Add dbg.
+ Add IDX_debug_cu_index and IDX_debug_tu_index.
+ * dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_cu_index and
+ IDX_debug_tu_index.
+ (scn_to_string_section_idx): Ditto.
+ (scn_dwarf_type): Check for .debug_cu_index, .debug_tu_index,
+ .zdebug_cu_index, and .zdebug_tu_index.
+ (check_section): Change .dwo suffix matching to account for
+ .debug_cu_index and .debug_tu_index.
+
2023-02-22 Mark Wielaard <mark@klomp.org>
* dwarf_getscopes.c (origin_match): Don't free a->scopes.
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
index 92d76d24..323a91d0 100644
--- a/libdw/dwarf_begin_elf.c
+++ b/libdw/dwarf_begin_elf.c
@@ -67,6 +67,8 @@ static const char dwarf_scnnames[IDX_last][19] =
[IDX_debug_macro] = ".debug_macro",
[IDX_debug_ranges] = ".debug_ranges",
[IDX_debug_rnglists] = ".debug_rnglists",
+ [IDX_debug_cu_index] = ".debug_cu_index",
+ [IDX_debug_tu_index] = ".debug_tu_index",
[IDX_gnu_debugaltlink] = ".gnu_debugaltlink"
};
#define ndwarf_scnnames (sizeof (dwarf_scnnames) / sizeof (dwarf_scnnames[0]))
@@ -92,6 +94,8 @@ static const enum string_section_index scn_to_string_section_idx[IDX_last] =
[IDX_debug_macro] = STR_SCN_IDX_last,
[IDX_debug_ranges] = STR_SCN_IDX_last,
[IDX_debug_rnglists] = STR_SCN_IDX_last,
+ [IDX_debug_cu_index] = STR_SCN_IDX_last,
+ [IDX_debug_tu_index] = STR_SCN_IDX_last,
[IDX_gnu_debugaltlink] = STR_SCN_IDX_last
};
@@ -109,6 +113,11 @@ scn_dwarf_type (Dwarf *result, size_t shstrndx, Elf_Scn *scn)
{
if (startswith (scnname, ".gnu.debuglto_.debug"))
return TYPE_GNU_LTO;
+ else if (strcmp (scnname, ".debug_cu_index") == 0
+ || strcmp (scnname, ".debug_tu_index") == 0
+ || strcmp (scnname, ".zdebug_cu_index") == 0
+ || strcmp (scnname, ".zdebug_tu_index") == 0)
+ return TYPE_DWO;
else if (startswith (scnname, ".debug_") || startswith (scnname, ".zdebug_"))
{
size_t len = strlen (scnname);
@@ -173,42 +182,34 @@ check_section (Dwarf *result, size_t shstrndx, Elf_Scn *scn, bool inscngrp)
bool gnu_compressed = false;
for (cnt = 0; cnt < ndwarf_scnnames; ++cnt)
{
+ /* .debug_cu_index and .debug_tu_index don't have a .dwo suffix,
+ but they are for DWO. */
+ if (result->type != TYPE_DWO
+ && (cnt == IDX_debug_cu_index || cnt == IDX_debug_tu_index))
+ continue;
+ bool need_dot_dwo =
+ (result->type == TYPE_DWO
+ && cnt != IDX_debug_cu_index
+ && cnt != IDX_debug_tu_index);
size_t dbglen = strlen (dwarf_scnnames[cnt]);
size_t scnlen = strlen (scnname);
if (strncmp (scnname, dwarf_scnnames[cnt], dbglen) == 0
- && (dbglen == scnlen
- || (scnlen == dbglen + 4
+ && ((!need_dot_dwo && dbglen == scnlen)
+ || (need_dot_dwo
+ && scnlen == dbglen + 4
&& strstr (scnname, ".dwo") == scnname + dbglen)))
- {
- if (dbglen == scnlen)
- {
- if (result->type == TYPE_PLAIN)
- break;
- }
- else if (result->type == TYPE_DWO)
- break;
- }
+ break;
else if (scnname[0] == '.' && scnname[1] == 'z'
&& (strncmp (&scnname[2], &dwarf_scnnames[cnt][1],
dbglen - 1) == 0
- && (scnlen == dbglen + 1
- || (scnlen == dbglen + 5
+ && ((!need_dot_dwo && scnlen == dbglen + 1)
+ || (need_dot_dwo
+ && scnlen == dbglen + 5
&& strstr (scnname,
".dwo") == scnname + dbglen + 1))))
{
- if (scnlen == dbglen + 1)
- {
- if (result->type == TYPE_PLAIN)
- {
- gnu_compressed = true;
- break;
- }
- }
- else if (result->type <= TYPE_DWO)
- {
- gnu_compressed = true;
- break;
- }
+ gnu_compressed = true;
+ break;
}
else if (scnlen > 14 /* .gnu.debuglto_ prefix. */
&& startswith (scnname, ".gnu.debuglto_")
@@ -271,24 +272,27 @@ check_section (Dwarf *result, size_t shstrndx, Elf_Scn *scn, bool inscngrp)
return result;
}
-
-/* Helper function to set debugdir field. We want to cache the dir
- where we found this Dwarf ELF file to locate alt and dwo files. */
char *
-__libdw_debugdir (int fd)
+__libdw_elfpath (int fd)
{
/* strlen ("/proc/self/fd/") = 14 + strlen (<MAXINT>) = 10 + 1 = 25. */
char devfdpath[25];
sprintf (devfdpath, "/proc/self/fd/%u", fd);
- char *fdpath = realpath (devfdpath, NULL);
- char *fddir;
- if (fdpath != NULL && fdpath[0] == '/'
- && (fddir = strrchr (fdpath, '/')) != NULL)
- {
- *++fddir = '\0';
- return fdpath;
- }
- return NULL;
+ return realpath (devfdpath, NULL);
+}
+
+
+void
+__libdw_set_debugdir (Dwarf *dbg)
+{
+ if (dbg->elfpath == NULL || dbg->elfpath[0] != '/')
+ return;
+ size_t dirlen = strrchr (dbg->elfpath, '/') - dbg->elfpath + 1;
+ dbg->debugdir = malloc (dirlen + 1);
+ if (dbg->debugdir == NULL)
+ return;
+ memcpy (dbg->debugdir, dbg->elfpath, dirlen);
+ dbg->debugdir[dirlen] = '\0';
}
@@ -420,7 +424,10 @@ valid_p (Dwarf *result)
}
if (result != NULL)
- result->debugdir = __libdw_debugdir (result->elf->fildes);
+ {
+ result->elfpath = __libdw_elfpath (result->elf->fildes);
+ __libdw_set_debugdir(result);
+ }
return result;
}
diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c
index 8dd075cf..e51d5dd7 100644
--- a/libdw/dwarf_end.c
+++ b/libdw/dwarf_end.c
@@ -144,7 +144,8 @@ dwarf_end (Dwarf *dwarf)
close (dwarf->alt_fd);
}
- /* The cached dir we found the Dwarf ELF file in. */
+ /* The cached path and dir we found the Dwarf ELF file in. */
+ free (dwarf->elfpath);
free (dwarf->debugdir);
/* Free the context descriptor. */
diff --git a/libdw/dwarf_entrypc.c b/libdw/dwarf_entrypc.c
index 0ef3b0ea..543567d4 100644
--- a/libdw/dwarf_entrypc.c
+++ b/libdw/dwarf_entrypc.c
@@ -37,12 +37,10 @@
int
dwarf_entrypc (Dwarf_Die *die, Dwarf_Addr *return_addr)
{
- Dwarf_Attribute attr_mem;
-
- return INTUSE(dwarf_formaddr) (INTUSE(dwarf_attr) (die, DW_AT_entry_pc,
- &attr_mem)
- ?: INTUSE(dwarf_attr) (die, DW_AT_low_pc,
- &attr_mem),
- return_addr);
+ Dwarf_Attribute attr_mem, *attr;
+ if ((attr = INTUSE(dwarf_attr) (die, DW_AT_entry_pc, &attr_mem)) != NULL)
+ return INTUSE(dwarf_formaddr) (attr, return_addr);
+ else
+ return INTUSE(dwarf_lowpc) (die, return_addr);
}
INTDEF(dwarf_entrypc)
diff --git a/libdw/dwarf_formstring.c b/libdw/dwarf_formstring.c
index 0ee42411..65f03a5e 100644
--- a/libdw/dwarf_formstring.c
+++ b/libdw/dwarf_formstring.c
@@ -173,11 +173,11 @@ dwarf_formstring (Dwarf_Attribute *attrp)
off = read_4ubyte_unaligned (dbg, datap);
else
off = read_8ubyte_unaligned (dbg, datap);
-
- if (off >= data_size)
- goto invalid_offset;
}
+ if (off >= data_size)
+ goto invalid_offset;
+
return (const char *) data->d_buf + off;
}
INTDEF(dwarf_formstring)
diff --git a/libdw/dwarf_getaranges.c b/libdw/dwarf_getaranges.c
index de5b81ba..27439d37 100644
--- a/libdw/dwarf_getaranges.c
+++ b/libdw/dwarf_getaranges.c
@@ -1,5 +1,6 @@
/* Return list address ranges.
Copyright (C) 2000-2010, 2016, 2017 Red Hat, Inc.
+ Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2000.
@@ -124,6 +125,10 @@ dwarf_getaranges (Dwarf *dbg, Dwarf_Aranges **aranges, size_t *naranges)
&& length <= DWARF3_LENGTH_MAX_ESCAPE_CODE))
goto invalid;
+ const unsigned char *endp = readp + length;
+ if (unlikely (endp > readendp))
+ goto invalid;
+
if (unlikely (readp + 2 > readendp))
goto invalid;
@@ -182,9 +187,17 @@ dwarf_getaranges (Dwarf *dbg, Dwarf_Aranges **aranges, size_t *naranges)
else
range_length = read_8ubyte_unaligned_inc (dbg, readp);
- /* Two zero values mark the end. */
+ /* Two zero values mark the end. But in some cases (bugs)
+ there might be such entries in the middle of the table.
+ Ignore and continue, we'll check the actual length of
+ the table to see if we are really at the end. */
if (range_address == 0 && range_length == 0)
- break;
+ {
+ if (readp >= endp)
+ break;
+ else
+ continue;
+ }
/* We don't use alloca for these temporary structures because
the total number of them can be quite large. */
diff --git a/libdw/dwarf_getmacros.c b/libdw/dwarf_getmacros.c
index fd929669..a3a78884 100644
--- a/libdw/dwarf_getmacros.c
+++ b/libdw/dwarf_getmacros.c
@@ -124,17 +124,24 @@ get_macinfo_table (Dwarf *dbg, Dwarf_Word macoff, Dwarf_Die *cudie)
= INTUSE(dwarf_attr) (cudie, DW_AT_stmt_list, &attr_mem);
Dwarf_Off line_offset = (Dwarf_Off) -1;
if (attr != NULL)
- if (unlikely (INTUSE(dwarf_formudata) (attr, &line_offset) != 0))
- return NULL;
+ {
+ if (unlikely (INTUSE(dwarf_formudata) (attr, &line_offset) != 0))
+ return NULL;
+ }
+ else if (cudie->cu->unit_type == DW_UT_split_compile
+ && dbg->sectiondata[IDX_debug_line] != NULL)
+ line_offset = 0;
Dwarf_Macro_Op_Table *table = libdw_alloc (dbg, Dwarf_Macro_Op_Table,
macinfo_data_size, 1);
memcpy (table, macinfo_data, macinfo_data_size);
+ table->dbg = dbg;
table->offset = macoff;
table->sec_index = IDX_debug_macinfo;
table->line_offset = line_offset;
- table->is_64bit = cudie->cu->address_size == 8;
+ table->address_size = cudie->cu->address_size;
+ table->offset_size = cudie->cu->offset_size;
table->comp_dir = __libdw_getcompdir (cudie);
return table;
@@ -182,6 +189,15 @@ get_table_for_offset (Dwarf *dbg, Dwarf_Word macoff,
return NULL;
}
+ uint8_t address_size;
+ if (cudie != NULL)
+ address_size = cudie->cu->address_size;
+ else
+ {
+ char *ident = elf_getident (dbg->elf, NULL);
+ address_size = ident[EI_CLASS] == ELFCLASS32 ? 4 : 8;
+ }
+
/* """The macinfo entry types defined in this standard may, but
might not, be described in the table""".
@@ -253,12 +269,14 @@ get_table_for_offset (Dwarf *dbg, Dwarf_Word macoff,
macop_table_size, 1);
*table = (Dwarf_Macro_Op_Table) {
+ .dbg = dbg,
.offset = macoff,
.sec_index = IDX_debug_macro,
.line_offset = line_offset,
.header_len = readp - startp,
.version = version,
- .is_64bit = is_64bit,
+ .address_size = address_size,
+ .offset_size = is_64bit ? 8 : 4,
/* NULL if CUDIE is NULL or DW_AT_comp_dir is absent. */
.comp_dir = __libdw_getcompdir (cudie),
@@ -368,7 +386,7 @@ read_macros (Dwarf *dbg, int sec_index,
.dbg = dbg,
.sec_idx = sec_index,
.version = table->version,
- .offset_size = table->is_64bit ? 8 : 4,
+ .offset_size = table->offset_size,
.str_off_base = str_offsets_base_off (dbg, (cudie != NULL
? cudie->cu: NULL)),
.startp = (void *) startp + offset,
diff --git a/libdw/dwarf_macro_getsrcfiles.c b/libdw/dwarf_macro_getsrcfiles.c
index 3b1794b1..11c587af 100644
--- a/libdw/dwarf_macro_getsrcfiles.c
+++ b/libdw/dwarf_macro_getsrcfiles.c
@@ -36,6 +36,9 @@ int
dwarf_macro_getsrcfiles (Dwarf *dbg, Dwarf_Macro *macro,
Dwarf_Files **files, size_t *nfiles)
{
+ /* This was needed before Dwarf_Macro_Op_Table stored the Dwarf handle. */
+ (void)dbg;
+
/* macro is declared NN */
Dwarf_Macro_Op_Table *const table = macro->table;
if (table->files == NULL)
@@ -71,9 +74,8 @@ dwarf_macro_getsrcfiles (Dwarf *dbg, Dwarf_Macro *macro,
the same unit through dwarf_getsrcfiles, and the file names
will be broken. */
- if (__libdw_getsrclines (dbg, line_offset, table->comp_dir,
- table->is_64bit ? 8 : 4,
- NULL, &table->files) < 0)
+ if (__libdw_getsrclines (table->dbg, line_offset, table->comp_dir,
+ table->address_size, NULL, &table->files) < 0)
table->files = (void *) -1;
}
diff --git a/libdw/dwarf_macro_param2.c b/libdw/dwarf_macro_param2.c
index cc902c99..f12e6f9a 100644
--- a/libdw/dwarf_macro_param2.c
+++ b/libdw/dwarf_macro_param2.c
@@ -44,12 +44,21 @@ dwarf_macro_param2 (Dwarf_Macro *macro, Dwarf_Word *paramp, const char **strp)
if (dwarf_macro_param (macro, 1, &param) != 0)
return -1;
- if (param.form == DW_FORM_string
- || param.form == DW_FORM_strp)
+ switch (param.form)
{
- *strp = dwarf_formstring (&param);
- return 0;
+ /* String forms allowed by libdw_valid_user_form. */
+ case DW_FORM_line_strp:
+ case DW_FORM_string:
+ case DW_FORM_strp:
+ case DW_FORM_strp_sup:
+ case DW_FORM_strx:
+ case DW_FORM_strx1:
+ case DW_FORM_strx2:
+ case DW_FORM_strx3:
+ case DW_FORM_strx4:
+ *strp = dwarf_formstring (&param);
+ return 0;
+ default:
+ return dwarf_formudata (&param, paramp);
}
- else
- return dwarf_formudata (&param, paramp);
}
diff --git a/libdw/dwarf_ranges.c b/libdw/dwarf_ranges.c
index 520f9ffe..b853e4b9 100644
--- a/libdw/dwarf_ranges.c
+++ b/libdw/dwarf_ranges.c
@@ -489,10 +489,10 @@ dwarf_ranges (Dwarf_Die *die, ptrdiff_t offset, Dwarf_Addr *basep,
size_t secidx = (cu->version < 5 ? IDX_debug_ranges : IDX_debug_rnglists);
const Elf_Data *d = cu->dbg->sectiondata[secidx];
- if (d == NULL && cu->unit_type == DW_UT_split_compile)
+ if (cu->unit_type == DW_UT_split_compile && (d == NULL || is_cudie (die)))
{
Dwarf_CU *skel = __libdw_find_split_unit (cu);
- if (skel != NULL)
+ if (skel != NULL && skel->dbg->sectiondata[secidx] != NULL)
{
cu = skel;
d = cu->dbg->sectiondata[secidx];
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index 5cbdc279..aef42267 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -82,6 +82,8 @@ enum
IDX_debug_macro,
IDX_debug_ranges,
IDX_debug_rnglists,
+ IDX_debug_cu_index,
+ IDX_debug_tu_index,
IDX_gnu_debugaltlink,
IDX_last
};
@@ -166,6 +168,10 @@ struct Dwarf
/* The underlying ELF file. */
Elf *elf;
+ /* The (absolute) path to the ELF file, if known. To help locating
+ dwp files. */
+ char *elfpath;
+
/* The (absolute) path to the ELF dir, if known. To help locating
alt and dwo files. */
char *debugdir;
@@ -508,6 +514,8 @@ typedef struct
/* Prototype table. */
typedef struct
{
+ Dwarf *dbg;
+
/* Offset of .debug_macro section. */
Dwarf_Off offset;
@@ -526,7 +534,8 @@ typedef struct
Dwarf_Half header_len;
uint16_t version;
- bool is_64bit;
+ uint8_t address_size;
+ uint8_t offset_size;
uint8_t sec_index; /* IDX_debug_macro or IDX_debug_macinfo. */
/* Shows where in TABLE each opcode is defined. Since opcode 0 is
@@ -1345,9 +1354,13 @@ __libdw_link_skel_split (Dwarf_CU *skel, Dwarf_CU *split)
int __libdw_addrx (Dwarf_CU *cu, Dwarf_Word idx, Dwarf_Addr *addr);
-/* Helper function to set debugdir field in Dwarf, used from dwarf_begin_elf
+/* Helper function to set elfpath field in Dwarf, used from dwarf_begin_elf
and libdwfl process_file. */
-char * __libdw_debugdir (int fd);
+char * __libdw_elfpath (int fd);
+
+/* Helper function to set debugdir field in Dwarf after elfpath field has been
+ set. */
+void __libdw_set_debugdir (Dwarf *dbg);
/* Given the directory of a debug file, an absolute or relative dir
diff --git a/libdw/libdw_find_split_unit.c b/libdw/libdw_find_split_unit.c
index a22e7bc9..533f8072 100644
--- a/libdw/libdw_find_split_unit.c
+++ b/libdw/libdw_find_split_unit.c
@@ -41,7 +41,7 @@
#include <sys/stat.h>
#include <fcntl.h>
-void
+static void
try_split_file (Dwarf_CU *cu, const char *dwo_path)
{
int split_fd = open (dwo_path, O_RDONLY);
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index daef2828..abbf0dfe 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,16 @@
+2023-09-27 Omar Sandoval <osandov@fb.com>
+ * dwfl_module.c (__libdwfl_module_free): Free mod->elfpath instead of
+ mod->elfdir.
+ * dwfl_module_getdwarf.c (load_dw): Set mod->dw->elfpath and call
+ __libdw_set_debugdir instead of setting mod->dw->debugdir.
+ * libdwflP.h (Dwfl_Module): Replace elfdir with elfpath.
+ * offline.c (process_elf): Call __libdw_elfpath and set mod->elfpath
+ instead of mod->elfdir.
+
+2023-04-24 John Gallagher <john@gllghr.com>
+
+ * gzip.c: Fix memory leak in unzip()
+
2023-02-06 Mark Wielaard <mark@klomp.org>
* libdwfl.h: Guard debuginfod_client typedef with
diff --git a/libdwfl/dwfl_module.c b/libdwfl/dwfl_module.c
index 221d726d..c4d872d4 100644
--- a/libdwfl/dwfl_module.c
+++ b/libdwfl/dwfl_module.c
@@ -119,7 +119,7 @@ __libdwfl_module_free (Dwfl_Module *mod)
free (mod->reloc_info);
free (mod->name);
- free (mod->elfdir);
+ free (mod->elfpath);
free (mod);
}
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
index 9ba499bb..6f98c02b 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -1362,11 +1362,14 @@ load_dw (Dwfl_Module *mod, struct dwfl_file *debugfile)
}
/* We might have already closed the fd when we asked dwarf_begin_elf to
- create an Dwarf. Help out a little in case we need to find an alt or
- dwo file later. */
- if (mod->dw->debugdir == NULL && mod->elfdir != NULL
+ create an Dwarf. Help out a little in case we need to find an alt,
+ dwo, or dwp file later. */
+ if (mod->dw->elfpath == NULL && mod->elfpath != NULL
&& debugfile == &mod->main)
- mod->dw->debugdir = strdup (mod->elfdir);
+ {
+ mod->dw->elfpath = strdup (mod->elfpath);
+ __libdw_set_debugdir (mod->dw);
+ }
/* Until we have iterated through all CU's, we might do lazy lookups. */
mod->lazycu = 1;
diff --git a/libdwfl/dwfl_report_elf.c b/libdwfl/dwfl_report_elf.c
index 581f4079..a76d3681 100644
--- a/libdwfl/dwfl_report_elf.c
+++ b/libdwfl/dwfl_report_elf.c
@@ -276,10 +276,11 @@ __libdwfl_report_elf (Dwfl *dwfl, const char *name, const char *file_name,
}
else
{
- elf_end (elf);
if (m->main_bias != bias
|| m->main.vaddr != vaddr || m->main.address_sync != address_sync)
goto overlap;
+ elf_end (m->main.elf);
+ m->main.elf = elf;
}
}
return m;
diff --git a/libdwfl/gzip.c b/libdwfl/gzip.c
index 53013be3..002afc4e 100644
--- a/libdwfl/gzip.c
+++ b/libdwfl/gzip.c
@@ -227,7 +227,7 @@ unzip (int fd, off_t start_offset,
#endif
)
/* Not a compressed file. */
- return DWFL_E_BADELF;
+ return fail (&state, DWFL_E_BADELF);
#ifdef ZSTD
/* special case for libzstd since it is slightly different from the
diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h
index cdc528d0..b3dfea1d 100644
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -186,7 +186,7 @@ struct Dwfl_Module
Elf_Data *symxndxdata; /* Data in the extended section index table. */
Elf_Data *aux_symxndxdata; /* Data in the extended auxiliary table. */
- char *elfdir; /* The dir where we found the main Elf. */
+ char *elfpath; /* The path where we found the main Elf. */
Dwarf *dw; /* libdw handle for its debugging info. */
Dwarf *alt; /* Dwarf used for dwarf_setalt, or NULL. */
diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c
index 06d85eb6..76f23354 100644
--- a/libdwfl/link_map.c
+++ b/libdwfl/link_map.c
@@ -331,11 +331,17 @@ report_r_debug (uint_fast8_t elfclass, uint_fast8_t elfdata,
int result = 0;
/* There can't be more elements in the link_map list than there are
- segments. DWFL->lookup_elts is probably twice that number, so it
- is certainly above the upper bound. If we iterate too many times,
- there must be a loop in the pointers due to link_map clobberation. */
+ segments. A segment is created for each PT_LOAD and there can be
+ up to 5 per module (-z separate-code, tends to create four LOAD
+ segments, gold has -z text-unlikely-segment, which might result
+ in creating that number of load segments) DWFL->lookup_elts is
+ probably twice the number of modules, so that multiplied by max
+ PT_LOADs is certainly above the upper bound. If we iterate too
+ many times, there must be a loop in the pointers due to link_map
+ clobberation. */
+#define MAX_PT_LOAD 5
size_t iterations = 0;
- while (next != 0 && ++iterations < dwfl->lookup_elts)
+ while (next != 0 && ++iterations < dwfl->lookup_elts * MAX_PT_LOAD)
{
if (read_addrs (&memory_closure, elfclass, elfdata,
&buffer, &buffer_available, next, &read_vaddr,
diff --git a/libdwfl/offline.c b/libdwfl/offline.c
index e090b42b..e9ab0cc1 100644
--- a/libdwfl/offline.c
+++ b/libdwfl/offline.c
@@ -50,10 +50,11 @@ dwfl_offline_section_address (Dwfl_Module *mod,
const GElf_Shdr *shdr __attribute__ ((unused)),
Dwarf_Addr *addr)
{
- assert (mod->e_type == ET_REL);
- assert (shdr->sh_addr == 0);
- assert (shdr->sh_flags & SHF_ALLOC);
- assert (shndx != 0);
+ if (mod->e_type != ET_REL
+ || shdr->sh_addr != 0
+ || !(shdr->sh_flags & SHF_ALLOC)
+ || shndx == 0)
+ return -1;
if (mod->debug.elf == NULL)
/* We are only here because sh_addr is zero even though layout is complete.
@@ -151,9 +152,9 @@ process_elf (Dwfl *dwfl, const char *name, const char *file_name, int fd,
/* Don't keep the file descriptor around. */
if (mod->main.fd != -1 && elf_cntl (mod->main.elf, ELF_C_FDREAD) == 0)
{
- /* Grab the dir path in case we want to report this file as
+ /* Grab the path in case we want to report this file as
Dwarf later. */
- mod->elfdir = __libdw_debugdir (mod->main.fd);
+ mod->elfpath = __libdw_elfpath (mod->main.fd);
close (mod->main.fd);
mod->main.fd = -1;
}
diff --git a/libebl/eblsectiontypename.c b/libebl/eblsectiontypename.c
index 2008b95a..ade25d4a 100644
--- a/libebl/eblsectiontypename.c
+++ b/libebl/eblsectiontypename.c
@@ -61,7 +61,8 @@ ebl_section_type_name (Ebl *ebl, int section, char *buf, size_t len)
KNOWNSTYPE (FINI_ARRAY),
KNOWNSTYPE (PREINIT_ARRAY),
KNOWNSTYPE (GROUP),
- KNOWNSTYPE (SYMTAB_SHNDX)
+ KNOWNSTYPE (SYMTAB_SHNDX),
+ KNOWNSTYPE (RELR)
};
/* Handle standard names. */
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 8cc3c53c..0e314ab6 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,11 @@
+2023-09-09 Yanglin Xun <xunyanglins@gmail.com>
+
+ * libelf.h: Fix typo in comment
+
+2023-04-01 Youling Tang <tangyouling@loongson.cn>
+
+ * elf.h: Update from glibc.
+
2023-03-03 Mark Wielaard <mark@klomp.org>
* libelf.h: Define ELFCOMPRESS_ZSTD if undefined.
diff --git a/libelf/Makefile.am b/libelf/Makefile.am
index aabce43e..3402863e 100644
--- a/libelf/Makefile.am
+++ b/libelf/Makefile.am
@@ -41,7 +41,7 @@ include_HEADERS = libelf.h gelf.h nlist.h
noinst_HEADERS = abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \
- chdr_xlate.h
+ chdr_xlate.h elf32_getchdr.h
if INSTALL_ELFH
include_HEADERS += elf.h
diff --git a/libelf/elf.h b/libelf/elf.h
index da41bad3..7b4a8fe4 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-2022 Free Software Foundation, Inc.
+ Copyright (C) 1995-2023 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
@@ -210,7 +210,7 @@ typedef struct
#define EM_68HC12 53 /* Motorola M68HC12 */
#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */
#define EM_PCP 55 /* Siemens PCP */
-#define EM_NCPU 56 /* Sony nCPU embeeded RISC */
+#define EM_NCPU 56 /* Sony nCPU embedded RISC */
#define EM_NDR1 57 /* Denso NDR1 microprocessor */
#define EM_STARCORE 58 /* Motorola Start*Core processor */
#define EM_ME16 59 /* Toyota ME16 processor */
@@ -559,7 +559,7 @@ typedef struct
/* Possible bitmasks for si_flags. */
#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */
-#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */
+#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-through symbol for translator */
#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */
#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy
loaded */
@@ -728,6 +728,7 @@ typedef struct
#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
#define PT_GNU_PROPERTY 0x6474e553 /* GNU property */
+#define PT_GNU_SFRAME 0x6474e554 /* SFrame segment. */
#define PT_LOSUNW 0x6ffffffa
#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
@@ -1223,6 +1224,9 @@ typedef struct
#define AT_HWCAP2 26 /* More machine-dependent hints about
processor capabilities. */
+#define AT_RSEQ_FEATURE_SIZE 27 /* rseq supported feature size. */
+#define AT_RSEQ_ALIGN 28 /* rseq allocation alignment. */
+
#define AT_EXECFN 31 /* Filename of executable. */
/* Pointer to the global system page used for system calls and other
@@ -1681,11 +1685,25 @@ typedef struct
#define EF_MIPS_PIC 2 /* Contains PIC code. */
#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence. */
#define EF_MIPS_XGOT 8
-#define EF_MIPS_64BIT_WHIRL 16
+#define EF_MIPS_UCODE 16
#define EF_MIPS_ABI2 32
#define EF_MIPS_ABI_ON32 64
+#define EF_MIPS_OPTIONS_FIRST 0x00000080 /* Process the .MIPS.options
+ section first by ld. */
+#define EF_MIPS_32BITMODE 0x00000100 /* Indicates code compiled for
+ a 64-bit machine in 32-bit
+ mode (regs are 32-bits
+ wide). */
#define EF_MIPS_FP64 512 /* Uses FP64 (12 callee-saved). */
#define EF_MIPS_NAN2008 1024 /* Uses IEEE 754-2008 NaN encoding. */
+#define EF_MIPS_ARCH_ASE 0x0f000000 /* Architectural Extensions
+ used by this file. */
+#define EF_MIPS_ARCH_ASE_MDMX 0x08000000 /* Use MDMX multimedia
+ extensions. */
+#define EF_MIPS_ARCH_ASE_M16 0x04000000 /* Use MIPS-16 ISA
+ extensions. */
+#define EF_MIPS_ARCH_ASE_MICROMIPS 0x02000000 /* Use MICROMIPS ISA
+ extensions. */
#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level. */
/* Legal values for MIPS architecture level. */
@@ -1699,6 +1717,38 @@ typedef struct
#define EF_MIPS_ARCH_64 0x60000000 /* MIPS64 code. */
#define EF_MIPS_ARCH_32R2 0x70000000 /* MIPS32r2 code. */
#define EF_MIPS_ARCH_64R2 0x80000000 /* MIPS64r2 code. */
+#define EF_MIPS_ARCH_32R6 0x90000000 /* MIPS32r6 code. */
+#define EF_MIPS_ARCH_64R6 0xa0000000 /* MIPS64r6 code. */
+#define EF_MIPS_ABI 0x0000F000 /* The ABI of the file. Also
+ see EF_MIPS_ABI2 above. */
+#define EF_MIPS_ABI_O32 0x00001000 /* The original o32 abi. */
+#define EF_MIPS_ABI_O64 0x00002000 /* O32 extended to work on
+ 64 bit architectures. */
+#define EF_MIPS_ABI_EABI32 0x00003000 /* EABI in 32 bit mode. */
+#define EF_MIPS_ABI_EABI64 0x00004000 /* EABI in 64 bit mode. */
+#define EF_MIPS_MACH 0x00FF0000
+#define EF_MIPS_MACH_3900 0x00810000
+#define EF_MIPS_MACH_4010 0x00820000
+#define EF_MIPS_MACH_4100 0x00830000
+#define EF_MIPS_MACH_ALLEGREX 0x00840000
+#define EF_MIPS_MACH_4650 0x00850000
+#define EF_MIPS_MACH_4120 0x00870000
+#define EF_MIPS_MACH_4111 0x00880000
+#define EF_MIPS_MACH_SB1 0x008a0000
+#define EF_MIPS_MACH_OCTEON 0x008b0000
+#define EF_MIPS_MACH_XLR 0x008c0000
+#define EF_MIPS_MACH_OCTEON2 0x008d0000
+#define EF_MIPS_MACH_OCTEON3 0x008e0000
+#define EF_MIPS_MACH_5400 0x00910000
+#define EF_MIPS_MACH_5900 0x00920000
+#define EF_MIPS_MACH_IAMR2 0x00930000
+#define EF_MIPS_MACH_5500 0x00980000
+#define EF_MIPS_MACH_9000 0x00990000
+#define EF_MIPS_MACH_LS2E 0x00A00000
+#define EF_MIPS_MACH_LS2F 0x00A10000
+#define EF_MIPS_MACH_GS464 0x00A20000
+#define EF_MIPS_MACH_GS464E 0x00A30000
+#define EF_MIPS_MACH_GS264E 0x00A40000
/* The following are unofficial names and should not be used. */
@@ -1759,6 +1809,7 @@ typedef struct
#define SHT_MIPS_EH_REGION 0x70000027
#define SHT_MIPS_XLATE_OLD 0x70000028
#define SHT_MIPS_PDR_EXCEPTION 0x70000029
+#define SHT_MIPS_ABIFLAGS 0x7000002a
#define SHT_MIPS_XHASH 0x7000002b
/* Legal values for sh_flags field of Elf32_Shdr. */
@@ -1927,10 +1978,68 @@ typedef struct
#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */
#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */
#define R_MIPS_GLOB_DAT 51
+#define R_MIPS_PC21_S2 60
+#define R_MIPS_PC26_S2 61
+#define R_MIPS_PC18_S3 62
+#define R_MIPS_PC19_S2 63
+#define R_MIPS_PCHI16 64
+#define R_MIPS_PCLO16 65
+#define R_MIPS16_26 100
+#define R_MIPS16_GPREL 101
+#define R_MIPS16_GOT16 102
+#define R_MIPS16_CALL16 103
+#define R_MIPS16_HI16 104
+#define R_MIPS16_LO16 105
+#define R_MIPS16_TLS_GD 106
+#define R_MIPS16_TLS_LDM 107
+#define R_MIPS16_TLS_DTPREL_HI16 108
+#define R_MIPS16_TLS_DTPREL_LO16 109
+#define R_MIPS16_TLS_GOTTPREL 110
+#define R_MIPS16_TLS_TPREL_HI16 111
+#define R_MIPS16_TLS_TPREL_LO16 112
+#define R_MIPS16_PC16_S1 113
#define R_MIPS_COPY 126
#define R_MIPS_JUMP_SLOT 127
+#define R_MIPS_RELATIVE 128
+#define R_MICROMIPS_26_S1 133
+#define R_MICROMIPS_HI16 134
+#define R_MICROMIPS_LO16 135
+#define R_MICROMIPS_GPREL16 136
+#define R_MICROMIPS_LITERAL 137
+#define R_MICROMIPS_GOT16 138
+#define R_MICROMIPS_PC7_S1 139
+#define R_MICROMIPS_PC10_S1 140
+#define R_MICROMIPS_PC16_S1 141
+#define R_MICROMIPS_CALL16 142
+#define R_MICROMIPS_GOT_DISP 145
+#define R_MICROMIPS_GOT_PAGE 146
+#define R_MICROMIPS_GOT_OFST 147
+#define R_MICROMIPS_GOT_HI16 148
+#define R_MICROMIPS_GOT_LO16 149
+#define R_MICROMIPS_SUB 150
+#define R_MICROMIPS_HIGHER 151
+#define R_MICROMIPS_HIGHEST 152
+#define R_MICROMIPS_CALL_HI16 153
+#define R_MICROMIPS_CALL_LO16 154
+#define R_MICROMIPS_SCN_DISP 155
+#define R_MICROMIPS_JALR 156
+#define R_MICROMIPS_HI0_LO16 157
+#define R_MICROMIPS_TLS_GD 162
+#define R_MICROMIPS_TLS_LDM 163
+#define R_MICROMIPS_TLS_DTPREL_HI16 164
+#define R_MICROMIPS_TLS_DTPREL_LO16 165
+#define R_MICROMIPS_TLS_GOTTPREL 166
+#define R_MICROMIPS_TLS_TPREL_HI16 169
+#define R_MICROMIPS_TLS_TPREL_LO16 170
+#define R_MICROMIPS_GPREL7_S2 172
+#define R_MICROMIPS_PC23_S2 173
+#define R_MIPS_PC32 248
+#define R_MIPS_EH 249
+#define R_MIPS_GNU_REL16_S2 250
+#define R_MIPS_GNU_VTINHERIT 253
+#define R_MIPS_GNU_VTENTRY 254
/* Keep this the last entry. */
-#define R_MIPS_NUM 128
+#define R_MIPS_NUM 255
/* Legal values for p_type field of Elf32_Phdr. */
@@ -3998,8 +4107,11 @@ enum
#define R_RISCV_SET32 56
#define R_RISCV_32_PCREL 57
#define R_RISCV_IRELATIVE 58
+#define R_RISCV_PLT32 59
+#define R_RISCV_SET_ULEB128 60
+#define R_RISCV_SUB_ULEB128 61
-#define R_RISCV_NUM 59
+#define R_RISCV_NUM 62
/* RISC-V specific values for the st_other field. */
#define STO_RISCV_VARIANT_CC 0x80 /* Function uses variant calling
@@ -4159,6 +4271,55 @@ enum
#define R_LARCH_GNU_VTINHERIT 57
#define R_LARCH_GNU_VTENTRY 58
+/* reserved 59-63 */
+
+#define R_LARCH_B16 64
+#define R_LARCH_B21 65
+#define R_LARCH_B26 66
+#define R_LARCH_ABS_HI20 67
+#define R_LARCH_ABS_LO12 68
+#define R_LARCH_ABS64_LO20 69
+#define R_LARCH_ABS64_HI12 70
+#define R_LARCH_PCALA_HI20 71
+#define R_LARCH_PCALA_LO12 72
+#define R_LARCH_PCALA64_LO20 73
+#define R_LARCH_PCALA64_HI12 74
+#define R_LARCH_GOT_PC_HI20 75
+#define R_LARCH_GOT_PC_LO12 76
+#define R_LARCH_GOT64_PC_LO20 77
+#define R_LARCH_GOT64_PC_HI12 78
+#define R_LARCH_GOT_HI20 79
+#define R_LARCH_GOT_LO12 80
+#define R_LARCH_GOT64_LO20 81
+#define R_LARCH_GOT64_HI12 82
+#define R_LARCH_TLS_LE_HI20 83
+#define R_LARCH_TLS_LE_LO12 84
+#define R_LARCH_TLS_LE64_LO20 85
+#define R_LARCH_TLS_LE64_HI12 86
+#define R_LARCH_TLS_IE_PC_HI20 87
+#define R_LARCH_TLS_IE_PC_LO12 88
+#define R_LARCH_TLS_IE64_PC_LO20 89
+#define R_LARCH_TLS_IE64_PC_HI12 90
+#define R_LARCH_TLS_IE_HI20 91
+#define R_LARCH_TLS_IE_LO12 92
+#define R_LARCH_TLS_IE64_LO20 93
+#define R_LARCH_TLS_IE64_HI12 94
+#define R_LARCH_TLS_LD_PC_HI20 95
+#define R_LARCH_TLS_LD_HI20 96
+#define R_LARCH_TLS_GD_PC_HI20 97
+#define R_LARCH_TLS_GD_HI20 98
+#define R_LARCH_32_PCREL 99
+#define R_LARCH_RELAX 100
+#define R_LARCH_DELETE 101
+#define R_LARCH_ALIGN 102
+#define R_LARCH_PCREL20_S2 103
+#define R_LARCH_CFA 104
+#define R_LARCH_ADD6 105
+#define R_LARCH_SUB6 106
+#define R_LARCH_ADD_ULEB128 107
+#define R_LARCH_SUB_ULEB128 108
+#define R_LARCH_64_PCREL 109
+
/* ARC specific declarations. */
/* Processor specific flags for the Ehdr e_flags field. */
diff --git a/libelf/elf32_getchdr.c b/libelf/elf32_getchdr.c
index 982a614c..41591300 100644
--- a/libelf/elf32_getchdr.c
+++ b/libelf/elf32_getchdr.c
@@ -38,46 +38,8 @@
# define LIBELFBITS 32
#endif
+#define ELF_WRLOCK_HELD 1
+#include "elf32_getchdr.h"
-ElfW2(LIBELFBITS,Chdr) *
-elfw2(LIBELFBITS,getchdr) (Elf_Scn *scn)
-{
- ElfW2(LIBELFBITS,Shdr) *shdr = elfw2(LIBELFBITS,getshdr) (scn);
- if (shdr == NULL)
- return NULL;
-
- /* Must have SHF_COMPRESSED flag set. Allocated or no bits sections
- can never be compressed. */
- if ((shdr->sh_flags & SHF_ALLOC) != 0)
- {
- __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS);
- return NULL;
- }
-
- if (shdr->sh_type == SHT_NULL
- || shdr->sh_type == SHT_NOBITS)
- {
- __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE);
- return NULL;
- }
-
- if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
- {
- __libelf_seterrno (ELF_E_NOT_COMPRESSED);
- return NULL;
- }
-
- /* This makes sure the data is in the correct format, so we don't
- need to swap fields. */
- Elf_Data *d = elf_getdata (scn, NULL);
- if (d == NULL)
- return NULL;
-
- if (d->d_size < sizeof (ElfW2(LIBELFBITS,Chdr)) || d->d_buf == NULL)
- {
- __libelf_seterrno (ELF_E_INVALID_DATA);
- return NULL;
- }
-
- return (ElfW2(LIBELFBITS,Chdr) *) d->d_buf;
-}
+#define ELF_WRLOCK_HELD 0
+#include "elf32_getchdr.h" \ No newline at end of file
diff --git a/libelf/elf32_getchdr.h b/libelf/elf32_getchdr.h
new file mode 100644
index 00000000..04d47e7a
--- /dev/null
+++ b/libelf/elf32_getchdr.h
@@ -0,0 +1,61 @@
+#undef ADD_ROUTINE_PREFIX
+#undef ADD_ROUTINE_SUFFIX
+
+#if ELF_WRLOCK_HELD
+#define CONCAT(x,y) x##y
+#define ADD_ROUTINE_PREFIX(y) CONCAT(__,y)
+#define ADD_ROUTINE_SUFFIX(x) x ## _wrlock
+#define INTERNAL internal_function
+#else
+#define ADD_ROUTINE_PREFIX(y) y
+#define ADD_ROUTINE_SUFFIX(x) x
+#define INTERNAL
+#endif
+
+ElfW2(LIBELFBITS,Chdr) *
+INTERNAL
+ADD_ROUTINE_PREFIX(elfw2(LIBELFBITS, ADD_ROUTINE_SUFFIX(getchdr))) (Elf_Scn *scn)
+{
+
+ ElfW2(LIBELFBITS,Shdr) *shdr = ADD_ROUTINE_PREFIX(elfw2(LIBELFBITS, ADD_ROUTINE_SUFFIX(getshdr)))(scn);
+
+ if (shdr == NULL)
+ return NULL;
+
+ /* Must have SHF_COMPRESSED flag set. Allocated or no bits sections
+ can never be compressed. */
+ if ((shdr->sh_flags & SHF_ALLOC) != 0)
+ {
+ __libelf_seterrno (ELF_E_INVALID_SECTION_FLAGS);
+ return NULL;
+ }
+
+ if (shdr->sh_type == SHT_NULL
+ || shdr->sh_type == SHT_NOBITS)
+ {
+ __libelf_seterrno (ELF_E_INVALID_SECTION_TYPE);
+ return NULL;
+ }
+
+ if ((shdr->sh_flags & SHF_COMPRESSED) == 0)
+ {
+ __libelf_seterrno (ELF_E_NOT_COMPRESSED);
+ return NULL;
+ }
+
+ /* This makes sure the data is in the correct format, so we don't
+ need to swap fields. */
+ Elf_Data *d = ADD_ROUTINE_PREFIX(ADD_ROUTINE_SUFFIX(elf_getdata)) (scn, NULL);
+ if (d == NULL)
+ return NULL;
+
+ if (d->d_size < sizeof (ElfW2(LIBELFBITS,Chdr)) || d->d_buf == NULL)
+ {
+ __libelf_seterrno (ELF_E_INVALID_DATA);
+ return NULL;
+ }
+
+ return (ElfW2(LIBELFBITS,Chdr) *) d->d_buf;
+}
+#undef INTERNAL
+#undef ELF_WRLOCK_HELD \ No newline at end of file
diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c
index 6c06e5e4..3594e8ba 100644
--- a/libelf/elf32_updatenull.c
+++ b/libelf/elf32_updatenull.c
@@ -256,6 +256,9 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
case SHT_SUNW_syminfo:
sh_entsize = elf_typesize (LIBELFBITS, ELF_T_SYMINFO, 1);
break;
+ case SHT_RELR:
+ sh_entsize = elf_typesize (LIBELFBITS, ELF_T_RELR, 1);
+ break;
default:
break;
}
@@ -404,7 +407,7 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
else
{
ElfW2(LIBELFBITS,Chdr) *chdr;
- chdr = elfw2(LIBELFBITS,getchdr) (scn);
+ chdr = __elfw2(LIBELFBITS,getchdr_wrlock) (scn);
if (unlikely (chdr == NULL))
return -1;
sh_size = chdr->ch_size;
diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c
index f13b41ba..0ad6a32a 100644
--- a/libelf/elf_compress.c
+++ b/libelf/elf_compress.c
@@ -1,5 +1,6 @@
/* Compress or decompress a section.
Copyright (C) 2015, 2016 Red Hat, Inc.
+ Copyright (C) 2023, Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -421,7 +422,7 @@ __libelf_decompress_zstd (void *buf_in, size_t size_in, size_t size_out)
}
size_t ret = ZSTD_decompress (buf_out, size_out, buf_in, size_in);
- if (ZSTD_isError (ret))
+ if (unlikely (ZSTD_isError (ret)) || unlikely (ret != size_out))
{
free (buf_out);
__libelf_seterrno (ELF_E_DECOMPRESS_ERROR);
@@ -523,10 +524,20 @@ __libelf_reset_rawdata (Elf_Scn *scn, void *buf, size_t size, size_t align,
if (scn->data_base != scn->rawdata_base)
free (scn->data_base);
scn->data_base = NULL;
+ if (scn->zdata_base != buf
+ && scn->zdata_base != scn->rawdata_base)
+ {
+ free (scn->zdata_base);
+ scn->zdata_base = NULL;
+ }
if (scn->elf->map_address == NULL
|| scn->rawdata_base == scn->zdata_base
|| (scn->flags & ELF_F_MALLOCED) != 0)
- free (scn->rawdata_base);
+ {
+ free (scn->rawdata_base);
+ scn->rawdata_base = NULL;
+ scn->zdata_base = NULL;
+ }
scn->rawdata_base = buf;
scn->flags |= ELF_F_MALLOCED;
@@ -677,6 +688,7 @@ elf_compress (Elf_Scn *scn, int type, unsigned int flags)
data around, but since that might have been multiple Elf_Data
buffers let the user uncompress it explicitly again if they
want it to simplify bookkeeping. */
+ free (scn->zdata_base);
scn->zdata_base = NULL;
return 1;
diff --git a/libelf/elf_end.c b/libelf/elf_end.c
index 5c451f36..80f4d13f 100644
--- a/libelf/elf_end.c
+++ b/libelf/elf_end.c
@@ -1,5 +1,6 @@
/* Free resources associated with Elf descriptor.
Copyright (C) 1998,1999,2000,2001,2002,2004,2005,2007,2015,2016 Red Hat, Inc.
+ Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -32,12 +33,22 @@
#endif
#include <assert.h>
+#include <search.h>
#include <stddef.h>
#include <stdlib.h>
#include "libelfP.h"
+static void
+free_chunk (void *n)
+{
+ Elf_Data_Chunk *rawchunk = (Elf_Data_Chunk *)n;
+ if (rawchunk->dummy_scn.flags & ELF_F_MALLOCED)
+ free (rawchunk->data.d.d_buf);
+ free (rawchunk);
+}
+
int
elf_end (Elf *elf)
{
@@ -71,7 +82,10 @@ elf_end (Elf *elf)
elf->state.ar.ar_sym = NULL;
if (elf->state.ar.children != NULL)
- return 0;
+ {
+ rwlock_unlock(elf->lock);
+ return 0;
+ }
}
/* Remove this structure from the children list. */
@@ -112,20 +126,13 @@ elf_end (Elf *elf)
case ELF_K_ELF:
{
- Elf_Data_Chunk *rawchunks
+ void *rawchunks
= (elf->class == ELFCLASS32
|| (offsetof (struct Elf, state.elf32.rawchunks)
== offsetof (struct Elf, state.elf64.rawchunks))
? elf->state.elf32.rawchunks
: elf->state.elf64.rawchunks);
- while (rawchunks != NULL)
- {
- Elf_Data_Chunk *next = rawchunks->next;
- if (rawchunks->dummy_scn.flags & ELF_F_MALLOCED)
- free (rawchunks->data.d.d_buf);
- free (rawchunks);
- rawchunks = next;
- }
+ tdestroy (rawchunks, free_chunk);
Elf_ScnList *list = (elf->class == ELFCLASS32
|| (offsetof (struct Elf, state.elf32.scns)
@@ -153,7 +160,10 @@ elf_end (Elf *elf)
rawdata_base. If it is already used it will be
freed below. */
if (scn->zdata_base != scn->rawdata_base)
- free (scn->zdata_base);
+ {
+ free (scn->zdata_base);
+ scn->zdata_base = NULL;
+ }
/* If the file has the same byte order and the
architecture doesn't require overly stringent
diff --git a/libelf/elf_getdata.c b/libelf/elf_getdata.c
index 5ebd270f..7c3ac043 100644
--- a/libelf/elf_getdata.c
+++ b/libelf/elf_getdata.c
@@ -582,4 +582,18 @@ elf_getdata (Elf_Scn *scn, Elf_Data *data)
return result;
}
+
+Elf_Data *
+internal_function
+__elf_getdata_wrlock (Elf_Scn *scn, Elf_Data *data)
+{
+ Elf_Data *result;
+
+ if (scn == NULL)
+ return NULL;
+
+ result = __elf_getdata_rdlock (scn, data);
+
+ return result;
+}
INTDEF(elf_getdata)
diff --git a/libelf/elf_getdata_rawchunk.c b/libelf/elf_getdata_rawchunk.c
index 5a35ccdc..05ff329c 100644
--- a/libelf/elf_getdata_rawchunk.c
+++ b/libelf/elf_getdata_rawchunk.c
@@ -1,6 +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>
+ Copyright (C) 2022, 2023 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,12 +33,28 @@
#include <assert.h>
#include <errno.h>
+#include <search.h>
#include <stdlib.h>
#include <string.h>
#include "libelfP.h"
#include "common.h"
+static int
+chunk_compare (const void *a, const void *b)
+{
+ Elf_Data_Chunk *da = (Elf_Data_Chunk *)a;
+ Elf_Data_Chunk *db = (Elf_Data_Chunk *)b;
+
+ if (da->offset != db->offset)
+ return da->offset - db->offset;
+
+ if (da->data.d.d_size != db->data.d.d_size)
+ return da->data.d.d_size - db->data.d.d_size;
+
+ return da->data.d.d_type - db->data.d.d_type;
+}
+
Elf_Data *
elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
{
@@ -75,19 +91,27 @@ 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)
+ Elf_Data_Chunk key;
+ key.offset = offset;
+ key.data.d.d_size = size;
+ key.data.d.d_type = type;
+ Elf_Data_Chunk **found = tsearch (&key, &elf->state.elf.rawchunks,
+ &chunk_compare);
+ if (found == NULL)
+ goto nomem;
+
+ /* Existing entry. */
+ if (*found != &key && *found != 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;
+ result = &(*found)->data.d;
+ goto out;
}
+ /* New entry. Note that *found will point to the newly inserted
+ (dummy) key. We'll replace it with a real rawchunk when that is
+ setup. Make sure to tdelete the dummy key if anything goes
+ wrong. */
+
size_t align = __libelf_type_align (elf->class, type);
if (elf->map_address != NULL)
{
@@ -112,6 +136,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
if (rawchunk == NULL)
{
nomem:
+ tdelete (&key, &elf->state.elf.rawchunks, &chunk_compare);
__libelf_seterrno (ELF_E_NOMEM);
goto out;
}
@@ -122,6 +147,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
!= size))
{
/* Something went wrong. */
+ tdelete (&key, &elf->state.elf.rawchunks, &chunk_compare);
free (rawchunk);
__libelf_seterrno (ELF_E_READ_ERROR);
goto out;
@@ -189,8 +215,7 @@ elf_getdata_rawchunk (Elf *elf, int64_t offset, size_t size, Elf_Type type)
rwlock_unlock (elf->lock);
rwlock_wrlock (elf->lock);
- chunk->next = elf->state.elf.rawchunks;
- elf->state.elf.rawchunks = chunk;
+ *found = chunk;
result = &chunk->data.d;
out:
diff --git a/libelf/elf_newscn.c b/libelf/elf_newscn.c
index d6bdf153..ec731f75 100644
--- a/libelf/elf_newscn.c
+++ b/libelf/elf_newscn.c
@@ -94,9 +94,9 @@ elf_newscn (Elf *elf)
1
#endif
)
- newp = calloc (sizeof (Elf_ScnList)
- + ((elf->state.elf.scnincr *= 2)
- * sizeof (Elf_Scn)), 1);
+ newp = calloc (1, sizeof (Elf_ScnList)
+ + ((elf->state.elf.scnincr *= 2)
+ * sizeof (Elf_Scn)));
if (newp == NULL)
{
__libelf_seterrno (ELF_E_NOMEM);
diff --git a/libelf/elf_version.c b/libelf/elf_version.c
index 6ec534ab..8296bb65 100644
--- a/libelf/elf_version.c
+++ b/libelf/elf_version.c
@@ -32,12 +32,21 @@
#endif
#include <libelfP.h>
+#include <pthread.h>
+/* Multiple threads may initialize __libelf_version.
+ pthread_once() ensures that __libelf_version is initialized only once. */
+once_define(static, version_once);
/* Currently selected version. Should be EV_CURRENT.
Will be EV_NONE if elf_version () has not been called yet. */
unsigned int __libelf_version = EV_NONE;
+static void initialize_version(void)
+{
+ __libelf_version = EV_CURRENT;
+}
+
unsigned int
elf_version (unsigned int version)
{
@@ -49,7 +58,7 @@ elf_version (unsigned int version)
/* Phew, we know this version. */
/* Signal that the version is now initialized. */
- __libelf_version = EV_CURRENT;
+ once(version_once, initialize_version);
/* And return the last (or initial) version. */
return EV_CURRENT;
diff --git a/libelf/gelf.h b/libelf/gelf.h
index 7a3c87aa..1847021e 100644
--- a/libelf/gelf.h
+++ b/libelf/gelf.h
@@ -82,6 +82,9 @@ typedef Elf64_Rel GElf_Rel;
/* Relocation table entry with addend (in section of type SHT_RELA). */
typedef Elf64_Rela GElf_Rela;
+/* Relative relocation entry (in section of type SHT_RELR). */
+typedef Elf64_Relr GElf_Relr;
+
/* Program segment header. */
typedef Elf64_Phdr GElf_Phdr;
diff --git a/libelf/gelf_fsize.c b/libelf/gelf_fsize.c
index 493d7916..63bcbae5 100644
--- a/libelf/gelf_fsize.c
+++ b/libelf/gelf_fsize.c
@@ -69,7 +69,8 @@ const size_t __libelf_type_sizes[ELFCLASSNUM - 1][ELF_T_NUM] =
[ELF_T_LIB] = sizeof (ElfW2(LIBELFBITS, Ext_Lib)), \
[ELF_T_AUXV] = sizeof (ElfW2(LIBELFBITS, Ext_auxv_t)), \
[ELF_T_CHDR] = sizeof (ElfW2(LIBELFBITS, Ext_Chdr)), \
- [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD)
+ [ELF_T_GNUHASH] = ELFW2(LIBELFBITS, FSZ_WORD), \
+ [ELF_T_RELR] = ELFW2(LIBELFBITS, FSZ_RELR)
TYPE_SIZES (32)
},
[ELFCLASS64 - 1] = {
diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c
index d8ad0634..749da1a1 100644
--- a/libelf/gelf_xlate.c
+++ b/libelf/gelf_xlate.c
@@ -204,7 +204,8 @@ const xfct_t __elf_xfctstom[ELFCLASSNUM - 1][ELF_T_NUM] =
[ELF_T_MOVE] = ElfW2(Bits, cvt_Move), \
[ELF_T_LIB] = ElfW2(Bits, cvt_Lib), \
[ELF_T_AUXV] = ElfW2(Bits, cvt_auxv_t), \
- [ELF_T_CHDR] = ElfW2(Bits, cvt_chdr)
+ [ELF_T_CHDR] = ElfW2(Bits, cvt_chdr), \
+ [ELF_T_RELR] = ElfW2(Bits, cvt_Relr)
define_xfcts (32),
[ELF_T_GNUHASH] = Elf32_cvt_Word
},
diff --git a/libelf/gelf_xlate.h b/libelf/gelf_xlate.h
index 3c0e4bf6..d5511c34 100644
--- a/libelf/gelf_xlate.h
+++ b/libelf/gelf_xlate.h
@@ -36,6 +36,7 @@ FUNDAMENTAL (WORD, Word, LIBELFBITS);
FUNDAMENTAL (SWORD, Sword, LIBELFBITS);
FUNDAMENTAL (XWORD, Xword, LIBELFBITS);
FUNDAMENTAL (SXWORD, Sxword, LIBELFBITS);
+FUNDAMENTAL (RELR, Relr, LIBELFBITS);
/* The structured types. */
TYPE (Ehdr, LIBELFBITS)
diff --git a/libelf/libelf.h b/libelf/libelf.h
index 2374a48a..d3f057b4 100644
--- a/libelf/libelf.h
+++ b/libelf/libelf.h
@@ -69,6 +69,19 @@
#define ELFCOMPRESS_ZSTD 2 /* Zstandard algorithm. */
#endif
+#ifndef SHT_RELR
+ /* So RELR defines/typedefs can be used even with an old system elf.h. */
+ #define SHT_RELR 19 /* RELR relative relocations */
+
+ /* RELR relocation table entry */
+ typedef Elf32_Word Elf32_Relr;
+ typedef Elf64_Xword Elf64_Relr;
+
+ #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 */
+#endif
+
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
# define __nonnull_attribute__(...) __attribute__ ((__nonnull__ (__VA_ARGS__)))
# define __deprecated_attribute__ __attribute__ ((__deprecated__))
@@ -124,6 +137,7 @@ typedef enum
ELF_T_CHDR, /* Compressed, Elf32_Chdr, Elf64_Chdr, ... */
ELF_T_NHDR8, /* Special GNU Properties note. Same as Nhdr,
except padding. */
+ ELF_T_RELR, /* Relative relocation entry. */
/* Keep this the last entry. */
ELF_T_NUM
} Elf_Type;
@@ -288,7 +302,7 @@ extern Elf_Scn *elf_getscn (Elf *__elf, size_t __index);
/* Get section at OFFSET. */
extern Elf_Scn *elf32_offscn (Elf *__elf, Elf32_Off __offset);
-/* Similar bug this time the binary calls is ELFCLASS64. */
+/* Similar but this time the binary calls is ELFCLASS64. */
extern Elf_Scn *elf64_offscn (Elf *__elf, Elf64_Off __offset);
/* Get index of section. */
diff --git a/libelf/libelf.map b/libelf/libelf.map
index 10dc5059..25760bc4 100644
--- a/libelf/libelf.map
+++ b/libelf/libelf.map
@@ -50,7 +50,6 @@ ELFUTILS_1.0 {
elf_rand;
elf_rawdata;
elf_rawfile;
- elf_scncnt;
elf_strptr;
elf_update;
elf_version;
diff --git a/libelf/libelfP.h b/libelf/libelfP.h
index 6624f38a..ed061abb 100644
--- a/libelf/libelfP.h
+++ b/libelf/libelfP.h
@@ -1,5 +1,6 @@
/* Internal interfaces for libelf.
Copyright (C) 1998-2010, 2015, 2016 Red Hat, Inc.
+ Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -62,6 +63,7 @@
#define ELF32_FSZ_SWORD 4
#define ELF32_FSZ_XWORD 8
#define ELF32_FSZ_SXWORD 8
+#define ELF32_FSZ_RELR 4
/* Same for 64 bits objects. */
#define ELF64_FSZ_ADDR 8
@@ -71,6 +73,7 @@
#define ELF64_FSZ_SWORD 4
#define ELF64_FSZ_XWORD 8
#define ELF64_FSZ_SXWORD 8
+#define ELF64_FSZ_RELR 8
/* This is an extension of the ELF_F_* enumeration. The values here are
@@ -262,11 +265,7 @@ typedef struct Elf_ScnList
typedef struct Elf_Data_Chunk
{
Elf_Data_Scn data;
- union
- {
- Elf_Scn dummy_scn;
- struct Elf_Data_Chunk *next;
- };
+ Elf_Scn dummy_scn;
int64_t offset; /* The original raw offset in the Elf image. */
} Elf_Data_Chunk;
@@ -324,7 +323,7 @@ struct Elf
Elf_ScnList *scns_last; /* Last element in the section list.
If NULL the data has not yet been
read from the file. */
- Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */
+ void *rawchunks; /* Tree of elf_getdata_rawchunk results. */
unsigned int scnincr; /* Number of sections allocate the last
time. */
int ehdr_flags; /* Flags (dirty) for ELF header. */
@@ -343,7 +342,7 @@ struct Elf
Elf_ScnList *scns_last; /* Last element in the section list.
If NULL the data has not yet been
read from the file. */
- Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */
+ void *rawchunks; /* Tree of elf_getdata_rawchunk results. */
unsigned int scnincr; /* Number of sections allocate the last
time. */
int ehdr_flags; /* Flags (dirty) for ELF header. */
@@ -368,7 +367,7 @@ struct Elf
Elf_ScnList *scns_last; /* Last element in the section list.
If NULL the data has not yet been
read from the file. */
- Elf_Data_Chunk *rawchunks; /* List of elf_getdata_rawchunk results. */
+ void *rawchunks; /* Tree of elf_getdata_rawchunk results. */
unsigned int scnincr; /* Number of sections allocate the last
time. */
int ehdr_flags; /* Flags (dirty) for ELF header. */
@@ -515,6 +514,8 @@ extern Elf32_Shdr *__elf32_getshdr_rdlock (Elf_Scn *__scn) internal_function;
extern Elf64_Shdr *__elf64_getshdr_rdlock (Elf_Scn *__scn) internal_function;
extern Elf32_Shdr *__elf32_getshdr_wrlock (Elf_Scn *__scn) internal_function;
extern Elf64_Shdr *__elf64_getshdr_wrlock (Elf_Scn *__scn) internal_function;
+extern Elf32_Chdr *__elf32_getchdr_wrlock (Elf_Scn *__scn) internal_function;
+extern Elf64_Chdr *__elf64_getchdr_wrlock (Elf_Scn *__scn) internal_function;
extern Elf_Scn *__elf_getscn_internal (Elf *__elf, size_t __index)
attribute_hidden;
extern Elf_Scn *__elf_nextscn_internal (Elf *__elf, Elf_Scn *__scn)
@@ -524,6 +525,8 @@ extern Elf_Data *__elf_getdata_internal (Elf_Scn *__scn, Elf_Data *__data)
attribute_hidden;
extern Elf_Data *__elf_getdata_rdlock (Elf_Scn *__scn, Elf_Data *__data)
internal_function;
+extern Elf_Data *__elf_getdata_wrlock (Elf_Scn *__scn, Elf_Data *__data)
+ internal_function;
extern Elf_Data *__elf_rawdata_internal (Elf_Scn *__scn, Elf_Data *__data)
attribute_hidden;
/* Should be called to setup first section data element if
diff --git a/patches/libdw-check-offset-dwarf_formstring-in-all-cases.patch b/patches/libdw-check-offset-dwarf_formstring-in-all-cases.patch
new file mode 100644
index 00000000..7e30d2a3
--- /dev/null
+++ b/patches/libdw-check-offset-dwarf_formstring-in-all-cases.patch
@@ -0,0 +1,36 @@
+From 1bd9deb9aa19ac2e2fa9665009e0d5924adcf4d3 Mon Sep 17 00:00:00 2001
+From: Aleksei Vetrov <vvvvvv@google.com>
+Date: Thu, 16 Nov 2023 21:29:22 +0000
+Subject: [PATCH] libdw: check offset dwarf_formstring in all cases
+
+This check was initially added to test if offset overflows the safe
+prefix where any string will be null-terminated. However the check
+was placed in a wrong place and didn't cover all `attrp->form` cases.
+
+ * libdw/dwarf_formstring.c (dwarf_formstring): Move offset check
+ right before returning the result.
+
+Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
+
+diff --git a/libdw/dwarf_formstring.c b/libdw/dwarf_formstring.c
+index 0ee42411..65f03a5e 100644
+--- a/libdw/dwarf_formstring.c
++++ b/libdw/dwarf_formstring.c
+@@ -173,11 +173,11 @@ dwarf_formstring (Dwarf_Attribute *attrp)
+ off = read_4ubyte_unaligned (dbg, datap);
+ else
+ off = read_8ubyte_unaligned (dbg, datap);
+-
+- if (off >= data_size)
+- goto invalid_offset;
+ }
+
++ if (off >= data_size)
++ goto invalid_offset;
++
+ return (const char *) data->d_buf + off;
+ }
+ INTDEF(dwarf_formstring)
+--
+2.43.0.rc1.413.gea7ed67945-goog
+
diff --git a/patches/libdw-ignore-really-large-discriminator.patch b/patches/libdw-ignore-really-large-discriminator.patch
deleted file mode 100644
index d18b7e98..00000000
--- a/patches/libdw-ignore-really-large-discriminator.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6583a5497fb60496ae7f9df9907be1248a339360 Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Thu, 26 Oct 2023 16:49:08 +0200
-Subject: [PATCH] libdw: ignore really large discriminator
-
-llvm can create really large discriminator values. We used to flag those
-as invalid when the value wouldn't fit in 24 bits. Just truncate the value.
-
- * libdw/dwarf_getsrclines.c (add_new_line): Define SETX.
- Use SETX to set discriminator.
-
-https://sourceware.org/bugzilla/show_bug.cgi?id=30967
-
-Signed-off-by: Mark Wielaard <mark@klomp.org>
----
- libdw/dwarf_getsrclines.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c
-index df003c5f..69e10c7b 100644
---- a/libdw/dwarf_getsrclines.c
-+++ b/libdw/dwarf_getsrclines.c
-@@ -129,6 +129,12 @@ add_new_line (struct line_state *state, struct linelist *new_line)
- return true; \
- } while (0)
-
-+ /* Same as above, but don't flag as "invalid" just use truncated
-+ value. Used for discriminator for which llvm might use a value
-+ that won't fit 24 bits. */
-+#define SETX(field) \
-+ new_line->line.field = state->field; \
-+
- SET (addr);
- SET (op_index);
- SET (file);
-@@ -140,7 +146,7 @@ add_new_line (struct line_state *state, struct linelist *new_line)
- SET (prologue_end);
- SET (epilogue_begin);
- SET (isa);
-- SET (discriminator);
-+ SETX (discriminator);
- SET (context);
- SET (function_name);
-
---
-2.42.0.869.gea05f2083d-goog
-
diff --git a/patches/libdwfl-handle-duplicate-ELFs-when-reporting-archive.patch b/patches/libdwfl-handle-duplicate-ELFs-when-reporting-archive.patch
new file mode 100644
index 00000000..021ecdcf
--- /dev/null
+++ b/patches/libdwfl-handle-duplicate-ELFs-when-reporting-archive.patch
@@ -0,0 +1,56 @@
+From 0ab5a3eb4122f36cbaff259e7a0a3f9d014cb6f7 Mon Sep 17 00:00:00 2001
+From: Aleksei Vetrov <vvvvvv@google.com>
+Date: Mon, 20 Nov 2023 17:44:47 +0000
+Subject: [PATCH] libdwfl: handle duplicate ELFs when reporting archives
+
+When archive is processed in process_archive (libdwfl/offline.c), it
+creates an Elf object for each archive member. Then in
+process_archive_member it calls process_file to create a Dwfl_Module
+through __libdwfl_report_elf.
+
+The ownership of the Elf object is expected to be:
+
+* either transfered to the Dwfl_Module, if __libdwfl_report_elf returns
+ not NULL;
+
+* or handled at the end of process_archive_member by calling elf_end.
+
+Moreover, Elf object is expected to be alive, if __libdwfl_report_elf
+returns not NULL, because at the end of process_archive_member it
+advances to the next member through the elf_next call.
+
+The problem happens when __libdwfl_report_elf encounters Elf with the
+same name and content as it seen before. In that case dwfl_report_module
+will reuse existing Dwfl_Module object. This leads to a codepath that
+calls elf_end on the Elf object, while returning not NULL, breaking the
+elf_next call to the next member.
+
+The fix is to destroy m->main.elf instead and put the new Elf object in
+the already existing Dwfl_Module.
+
+ * libdwfl/dwfl_report_elf.c (__libdwfl_report_elf): Replace Elf in
+ the Dwfl_Module in case of duplicate modules to prolong its
+ lifetime for subsequent processing.
+
+Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
+
+diff --git a/libdwfl/dwfl_report_elf.c b/libdwfl/dwfl_report_elf.c
+index 581f4079..a76d3681 100644
+--- a/libdwfl/dwfl_report_elf.c
++++ b/libdwfl/dwfl_report_elf.c
+@@ -276,10 +276,11 @@ __libdwfl_report_elf (Dwfl *dwfl, const char *name, const char *file_name,
+ }
+ else
+ {
+- elf_end (elf);
+ if (m->main_bias != bias
+ || m->main.vaddr != vaddr || m->main.address_sync != address_sync)
+ goto overlap;
++ elf_end (m->main.elf);
++ m->main.elf = elf;
+ }
+ }
+ return m;
+--
+2.43.0.rc1.413.gea7ed67945-goog
+
diff --git a/patches/libelf-check-decompressed-ZSTD-size.patch b/patches/libelf-check-decompressed-ZSTD-size.patch
new file mode 100644
index 00000000..6c76fac1
--- /dev/null
+++ b/patches/libelf-check-decompressed-ZSTD-size.patch
@@ -0,0 +1,33 @@
+From 03c171947cc538b04957ac2222ce86e7c0170bd1 Mon Sep 17 00:00:00 2001
+From: Aleksei Vetrov <vvvvvv@google.com>
+Date: Thu, 23 Nov 2023 15:31:47 +0000
+Subject: [PATCH] libelf: check decompressed ZSTD size
+
+Decompression functions like __libelf_decompress_zlib check that
+decompressed data has the same size as it was declared in the header
+(size_out argument). The same check is now added to
+__libelf_decompress_zstd to make sure that the whole allocated buffer is
+initialized.
+
+ * libelf/elf_compress.c (__libelf_decompress_zstd): Use return value
+ of ZSTD_decompress to check that decompressed data size is the
+ same as size_out of the buffer that was allocated.
+
+Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
+
+diff --git a/libelf/elf_compress.c b/libelf/elf_compress.c
+index c7283c6a..0ad6a32a 100644
+--- a/libelf/elf_compress.c
++++ b/libelf/elf_compress.c
+@@ -422,7 +422,7 @@ __libelf_decompress_zstd (void *buf_in, size_t size_in, size_t size_out)
+ }
+
+ size_t ret = ZSTD_decompress (buf_out, size_out, buf_in, size_in);
+- if (ZSTD_isError (ret))
++ if (unlikely (ZSTD_isError (ret)) || unlikely (ret != size_out))
+ {
+ free (buf_out);
+ __libelf_seterrno (ELF_E_DECOMPRESS_ERROR);
+--
+2.43.0.rc1.413.gea7ed67945-goog
+
diff --git a/po/de.po b/po/de.po
index 1e552484..47acd743 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-03-03 16:09+0100\n"
+"POT-Creation-Date: 2023-11-03 17:36+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"
@@ -49,7 +49,7 @@ msgstr ""
"GARANTIE,\n"
"auch nicht für Marktgängigkeit oder Eignung für einen Bestimmten Zweck.\n"
-#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202
#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
@@ -553,7 +553,7 @@ msgstr "Kein Backend"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
+#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<Unbekannt>"
@@ -647,7 +647,7 @@ msgstr "ungültige Grösse des Quell-Operanden"
msgid "invalid size of destination operand"
msgstr "ungültige Grösse des Ziel-Operanden"
-#: libelf/elf_error.c:86 src/readelf.c:6415
+#: libelf/elf_error.c:86 src/readelf.c:6758
#, c-format
msgid "invalid encoding"
msgstr "ungültige Kodierung"
@@ -735,8 +735,8 @@ msgstr "data/scn Unterschied"
msgid "invalid section header"
msgstr "ungültiger Abschnitts-Header"
-#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899
-#: src/readelf.c:11000 src/readelf.c:11188
+#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242
+#: src/readelf.c:11343 src/readelf.c:11531
#, c-format
msgid "invalid data"
msgstr "Ungültige Daten"
@@ -1392,8 +1392,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76
-#: src/readelf.c:160
+#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77
+#: src/readelf.c:161
msgid "FILE..."
msgstr "DATEI..."
@@ -1680,21 +1680,21 @@ msgid "unknown compression type '%s'"
msgstr "unbekannter Typ"
#. We need at least one input file.
-#: src/elfcompress.c:162 src/elfcompress.c:1444
+#: src/elfcompress.c:162 src/elfcompress.c:1447
#, fuzzy, c-format
msgid "No input file given"
msgstr "Eingabedatei '%s' ignoriert"
-#: src/elfcompress.c:168 src/elfcompress.c:1448
+#: src/elfcompress.c:168 src/elfcompress.c:1451
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr ""
-#: src/elfcompress.c:1405
+#: src/elfcompress.c:1408
msgid "Place (de)compressed output into FILE"
msgstr ""
-#: src/elfcompress.c:1408
+#: src/elfcompress.c:1411
msgid ""
"What type of compression to apply. TYPE can be 'none' (decompress), "
"'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias), 'zlib-"
@@ -1702,297 +1702,297 @@ msgid ""
"compression)"
msgstr ""
-#: src/elfcompress.c:1412
+#: src/elfcompress.c:1415
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
msgstr ""
-#: src/elfcompress.c:1415
+#: src/elfcompress.c:1418
msgid "Print a message for each section being (de)compressed"
msgstr ""
-#: src/elfcompress.c:1418
+#: src/elfcompress.c:1421
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:1421 src/strip.c:92
+#: src/elfcompress.c:1424 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
-#: src/elfcompress.c:1424
+#: src/elfcompress.c:1427
#, fuzzy
msgid "Be silent when a section cannot be compressed"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elfcompress.c:1434
+#: src/elfcompress.c:1437
msgid "Compress or decompress sections in an ELF file."
msgstr ""
-#: src/elflint.c:62
+#: src/elflint.c:63
msgid "Be extremely strict, flag level 2 features."
msgstr ""
-#: src/elflint.c:63
+#: src/elflint.c:64
msgid "Do not print anything if successful"
msgstr "Gebe nichts aus, wenn erfolgreich"
-#: src/elflint.c:64
+#: src/elflint.c:65
msgid "Binary is a separate debuginfo file"
msgstr ""
-#: src/elflint.c:66
+#: src/elflint.c:67
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:72
+#: src/elflint.c:73
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
-#: src/elflint.c:153 src/readelf.c:391
+#: src/elflint.c:154 src/readelf.c:413
#, fuzzy, c-format
msgid "cannot open input file '%s'"
msgstr "Kann Eingabedatei nicht öffnen"
-#: src/elflint.c:160
+#: src/elflint.c:161
#, fuzzy, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "kann Elf-Deskriptor nicht erzeugen: %s\n"
-#: src/elflint.c:179
+#: src/elflint.c:180
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/elflint.c:183
+#: src/elflint.c:184
msgid "No errors"
msgstr "Keine Fehler"
-#: src/elflint.c:218 src/readelf.c:603
+#: src/elflint.c:219 src/readelf.c:625
msgid "Missing file name.\n"
msgstr "Dateiname fehlt.\n"
-#: src/elflint.c:283
+#: src/elflint.c:284
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr ""
#. We cannot do anything.
-#: src/elflint.c:291
+#: src/elflint.c:292
#, 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:358
#, c-format
msgid "e_ident[%d] == %d is no known class\n"
msgstr ""
-#: src/elflint.c:362
+#: src/elflint.c:363
#, c-format
msgid "e_ident[%d] == %d is no known data encoding\n"
msgstr ""
-#: src/elflint.c:366
+#: src/elflint.c:367
#, c-format
msgid "unknown ELF header version number e_ident[%d] == %d\n"
msgstr ""
-#: src/elflint.c:374
+#: src/elflint.c:375
#, c-format
msgid "unsupported OS ABI e_ident[%d] == '%s'\n"
msgstr ""
-#: src/elflint.c:380
+#: src/elflint.c:381
#, c-format
msgid "unsupported ABI version e_ident[%d] == %d\n"
msgstr ""
-#: src/elflint.c:385
+#: src/elflint.c:386
#, 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:391
#, c-format
msgid "unknown object file type %d\n"
msgstr ""
-#: src/elflint.c:397
+#: src/elflint.c:398
#, c-format
msgid "unknown machine type %d\n"
msgstr ""
-#: src/elflint.c:401
+#: src/elflint.c:402
#, c-format
msgid "unknown object file version\n"
msgstr ""
-#: src/elflint.c:407
+#: src/elflint.c:408
#, c-format
msgid "invalid program header offset\n"
msgstr ""
-#: src/elflint.c:409
+#: src/elflint.c:410
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
-#: src/elflint.c:413
+#: src/elflint.c:414
#, c-format
msgid "invalid number of program header entries\n"
msgstr ""
-#: src/elflint.c:421
+#: src/elflint.c:422
#, c-format
msgid "invalid section header table offset\n"
msgstr ""
-#: src/elflint.c:424
+#: src/elflint.c:425
#, c-format
msgid "section header table must be present\n"
msgstr ""
-#: src/elflint.c:438
+#: src/elflint.c:439
#, c-format
msgid "invalid number of section header table entries\n"
msgstr ""
-#: src/elflint.c:455
+#: src/elflint.c:456
#, c-format
msgid "invalid section header index\n"
msgstr ""
-#: src/elflint.c:473
+#: src/elflint.c:474
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr ""
-#: src/elflint.c:487
+#: src/elflint.c:488
#, 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:505
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr ""
-#: src/elflint.c:509
+#: src/elflint.c:510
#, c-format
msgid "invalid machine flags: %s\n"
msgstr ""
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:517 src/elflint.c:534
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr ""
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:520 src/elflint.c:537
#, c-format
msgid "invalid program header size: %hd\n"
msgstr ""
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:523 src/elflint.c:540
#, c-format
msgid "invalid program header position or size\n"
msgstr ""
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:526 src/elflint.c:543
#, c-format
msgid "invalid section header size: %hd\n"
msgstr ""
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:529 src/elflint.c:546
#, c-format
msgid "invalid section header position or size\n"
msgstr ""
-#: src/elflint.c:590
+#: src/elflint.c:591
#, 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:595
#, 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:4468
+#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610
+#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981
+#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511
#, c-format
msgid "section [%2d] '%s': cannot get section data\n"
msgstr ""
-#: src/elflint.c:623 src/elflint.c:1662
+#: src/elflint.c:624 src/elflint.c:1699
#, 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:647
#, 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:659
#, c-format
msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n"
msgstr ""
-#: src/elflint.c:662
+#: src/elflint.c:663
#, 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:672
#, 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:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686
+#: src/elflint.c:689 src/elflint.c:692
#, c-format
msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n"
msgstr ""
-#: src/elflint.c:694
+#: src/elflint.c:695
#, c-format
msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n"
msgstr ""
-#: src/elflint.c:704
+#: src/elflint.c:705
#, c-format
msgid "section [%2d] '%s': cannot get symbol %zu: %s\n"
msgstr ""
-#: src/elflint.c:713
+#: src/elflint.c:714
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr ""
-#: src/elflint.c:728
+#: src/elflint.c:729
#, 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:735
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -2000,119 +2000,119 @@ msgid ""
msgstr ""
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:747
#, 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:755
#, 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:761
#, 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:766
#, c-format
msgid "section [%2d] '%s': symbol %zu (%s): unique symbol not of object type\n"
msgstr ""
-#: src/elflint.c:773
+#: src/elflint.c:774
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
"files\n"
msgstr ""
-#: src/elflint.c:777
+#: src/elflint.c:778
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
msgstr ""
-#: src/elflint.c:781
+#: src/elflint.c:782
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
msgstr ""
-#: src/elflint.c:832
+#: src/elflint.c:833
#, 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:839 src/elflint.c:864 src/elflint.c:913
#, 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:848
#, 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:858 src/elflint.c:906
#, 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:885
#, 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:891
#, 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:899
#, 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:926
#, 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:933
#, 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:940
#, 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:990
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
"[%2d]\n"
msgstr ""
-#: src/elflint.c:996
+#: src/elflint.c:997
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2122,1372 +2122,1367 @@ 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:1013
#, 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:1020
#, 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:1028
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
"section\n"
msgstr ""
-#: src/elflint.c:1043
+#: src/elflint.c:1044
#, 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:1051
#, 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:1064
#, 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:1068
#, 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:1106
#, 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:1122
#, 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:1133 src/elflint.c:1186
#, 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:1158 src/elflint.c:1211
#, 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:1164 src/elflint.c:1217
#, 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:1176
#, c-format
msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n"
msgstr ""
-#: src/elflint.c:1258
+#: src/elflint.c:1259
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr ""
-#: src/elflint.c:1270
+#: src/elflint.c:1271
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr ""
-#: src/elflint.c:1278
+#: src/elflint.c:1279
#, c-format
msgid "section [%2d] '%s': sh_info should be zero\n"
msgstr ""
-#: src/elflint.c:1286
+#: src/elflint.c:1287
#, 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
-#, c-format
-msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
-msgstr ""
-
-#: src/elflint.c:1354
+#: src/elflint.c:1365
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
-#: src/elflint.c:1381
+#: src/elflint.c:1392
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr ""
-#: src/elflint.c:1389
+#: src/elflint.c:1400
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
"type\n"
msgstr ""
-#: src/elflint.c:1397
+#: src/elflint.c:1408
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
msgstr ""
-#: src/elflint.c:1415
+#: src/elflint.c:1426
#, 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:1443
#, c-format
msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n"
msgstr ""
-#: src/elflint.c:1447
+#: src/elflint.c:1458
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
"%s\n"
msgstr ""
-#: src/elflint.c:1468
+#: src/elflint.c:1479
#, 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:1494
#, 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:1534 src/elflint.c:1585
#, c-format
msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
msgstr ""
-#: src/elflint.c:1650
+#: src/elflint.c:1687
#, c-format
msgid "more than one dynamic section present\n"
msgstr ""
-#: src/elflint.c:1668
+#: src/elflint.c:1705
#, 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:1713
#, 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:1718 src/elflint.c:2008
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr ""
-#: src/elflint.c:1691
+#: src/elflint.c:1728
#, c-format
msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
msgstr ""
-#: src/elflint.c:1699
+#: src/elflint.c:1736
#, c-format
msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
msgstr ""
-#: src/elflint.c:1706
+#: src/elflint.c:1743
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr ""
-#: src/elflint.c:1717
+#: src/elflint.c:1754
#, c-format
msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
msgstr ""
-#: src/elflint.c:1727
+#: src/elflint.c:1764
#, c-format
msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
msgstr ""
-#: src/elflint.c:1745
+#: src/elflint.c:1782
#, 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:1795
#, 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:1839
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
msgstr ""
-#: src/elflint.c:1816
+#: src/elflint.c:1854
#, 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:1874 src/elflint.c:1902
#, c-format
msgid "section [%2d] '%s': contains %s entry but not %s\n"
msgstr ""
-#: src/elflint.c:1848
+#: src/elflint.c:1886
#, c-format
msgid "section [%2d] '%s': mandatory tag %s not present\n"
msgstr ""
-#: src/elflint.c:1857
+#: src/elflint.c:1895
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
msgstr ""
-#: src/elflint.c:1872 src/elflint.c:1879
+#: src/elflint.c:1910 src/elflint.c:1917
#, 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:1927 src/elflint.c:1931
#, c-format
msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
msgstr ""
-#: src/elflint.c:1899
+#: src/elflint.c:1937
#, 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:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960
#, c-format
msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
msgstr ""
-#: src/elflint.c:1934
+#: src/elflint.c:1972
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
msgstr ""
-#: src/elflint.c:1944
+#: src/elflint.c:1982
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
msgstr ""
-#: src/elflint.c:1948
+#: src/elflint.c:1986
#, c-format
msgid "section [%2d] '%s': sh_link extended section index [%2d] is invalid\n"
msgstr ""
-#: src/elflint.c:1953
+#: src/elflint.c:1991
#, c-format
msgid "cannot get data for symbol section\n"
msgstr ""
-#: src/elflint.c:1956
+#: src/elflint.c:1994
#, c-format
msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
msgstr ""
-#: src/elflint.c:1965
+#: src/elflint.c:2003
#, c-format
msgid "section [%2d] '%s': extended index table too small for symbol table\n"
msgstr ""
-#: src/elflint.c:1980
+#: src/elflint.c:2018
#, 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:2036
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr ""
-#: src/elflint.c:2010
+#: src/elflint.c:2048
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr ""
-#: src/elflint.c:2015
+#: src/elflint.c:2053
#, 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:2070 src/elflint.c:2127
#, 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:2084 src/elflint.c:2141
#, c-format
msgid "section [%2d] '%s': chain array too large\n"
msgstr ""
-#: src/elflint.c:2060 src/elflint.c:2117
+#: src/elflint.c:2098 src/elflint.c:2155
#, c-format
msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2070
+#: src/elflint.c:2108
#, c-format
msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2127
+#: src/elflint.c:2165
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
-#: src/elflint.c:2140
+#: src/elflint.c:2178
#, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr ""
-#: src/elflint.c:2152
+#: src/elflint.c:2190
#, c-format
msgid "section [%2d] '%s': bitmask size zero or not power of 2: %u\n"
msgstr ""
-#: src/elflint.c:2168
+#: src/elflint.c:2206
#, 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:2215
#, c-format
msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
msgstr ""
-#: src/elflint.c:2211
+#: src/elflint.c:2249
#, 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:2270
#, 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:2283
#, 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:2292
#, 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:2322
#, c-format
msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2289
+#: src/elflint.c:2327
#, 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:2333
#, c-format
msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
msgstr ""
-#: src/elflint.c:2308
+#: src/elflint.c:2346
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
-#: src/elflint.c:2326
+#: src/elflint.c:2364
#, c-format
msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
msgstr ""
-#: src/elflint.c:2330
+#: src/elflint.c:2368
#, c-format
msgid "section [%2d] '%s': invalid sh_link symbol table section index [%2d]\n"
msgstr ""
-#: src/elflint.c:2340
+#: src/elflint.c:2378
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
msgstr ""
-#: src/elflint.c:2345
+#: src/elflint.c:2383
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr ""
-#: src/elflint.c:2350
+#: src/elflint.c:2388
#, 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:2437
#, 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:2461 src/elflint.c:2526 src/elflint.c:2561
#, c-format
msgid "hash section [%2zu] '%s' does not contain enough data\n"
msgstr ""
-#: src/elflint.c:2444
+#: src/elflint.c:2482
#, 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:2493 src/elflint.c:2537 src/elflint.c:2574
#, c-format
msgid "hash section [%2zu] '%s' uses too much data\n"
msgstr ""
-#: src/elflint.c:2470
+#: src/elflint.c:2508
#, 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:2595
#, c-format
msgid "hash section [%2zu] '%s' invalid sh_entsize\n"
msgstr ""
-#: src/elflint.c:2567 src/elflint.c:2571
+#: src/elflint.c:2605 src/elflint.c:2609
#, c-format
msgid "section [%2zu] '%s': reference to symbol index 0\n"
msgstr ""
-#: src/elflint.c:2578
+#: src/elflint.c:2616
#, 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:2628
#, 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:2644
#, c-format
msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
msgstr ""
-#: src/elflint.c:2626
+#: src/elflint.c:2664
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
msgstr ""
-#: src/elflint.c:2637
+#: src/elflint.c:2675
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
msgstr ""
-#: src/elflint.c:2642
+#: src/elflint.c:2680
#, c-format
msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
msgstr ""
-#: src/elflint.c:2648
+#: src/elflint.c:2686
#, c-format
msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
msgstr ""
-#: src/elflint.c:2653
+#: src/elflint.c:2691
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr ""
-#: src/elflint.c:2660
+#: src/elflint.c:2698
#, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
msgstr ""
-#: src/elflint.c:2664
+#: src/elflint.c:2702
#, c-format
msgid "section [%2d] '%s': cannot get symbol name for signature\n"
msgstr ""
-#: src/elflint.c:2669
+#: src/elflint.c:2707
#, c-format
msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
msgstr ""
-#: src/elflint.c:2675
+#: src/elflint.c:2713
#, c-format
msgid "section [%2d] '%s': sh_flags not set correctly\n"
msgstr ""
-#: src/elflint.c:2681
+#: src/elflint.c:2719
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
msgstr ""
-#: src/elflint.c:2690
+#: src/elflint.c:2728
#, c-format
msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
msgstr ""
-#: src/elflint.c:2696
+#: src/elflint.c:2734
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
msgstr ""
-#: src/elflint.c:2704
+#: src/elflint.c:2742
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr ""
-#: src/elflint.c:2708
+#: src/elflint.c:2746
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
msgstr ""
-#: src/elflint.c:2719
+#: src/elflint.c:2757
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr ""
-#: src/elflint.c:2731
+#: src/elflint.c:2769
#, 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:2778
#, c-format
msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
msgstr ""
-#: src/elflint.c:2747
+#: src/elflint.c:2785
#, c-format
msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:2753
+#: src/elflint.c:2791
#, 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:2798
#, c-format
msgid "section [%2d] '%s' is contained in more than one section group\n"
msgstr ""
-#: src/elflint.c:2957
+#: src/elflint.c:2995
#, 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:3007
#, 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:3023
#, c-format
msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
msgstr ""
-#: src/elflint.c:3001
+#: src/elflint.c:3039
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
msgstr ""
-#: src/elflint.c:3009
+#: src/elflint.c:3047
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
msgstr ""
-#: src/elflint.c:3023
+#: src/elflint.c:3061
#, c-format
msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
msgstr ""
-#: src/elflint.c:3028
+#: src/elflint.c:3066
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
msgstr ""
-#: src/elflint.c:3038
+#: src/elflint.c:3076
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
msgstr ""
-#: src/elflint.c:3091
+#: src/elflint.c:3129
#, c-format
msgid "more than one version reference section present\n"
msgstr ""
-#: src/elflint.c:3099 src/elflint.c:3246
+#: src/elflint.c:3137 src/elflint.c:3284
#, 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:3162 src/elflint.c:3338
#, 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:3169 src/elflint.c:3345
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
msgstr ""
-#: src/elflint.c:3141
+#: src/elflint.c:3179
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
msgstr ""
-#: src/elflint.c:3149
+#: src/elflint.c:3187
#, c-format
msgid "section [%2d] '%s': entry %d references unknown dependency\n"
msgstr ""
-#: src/elflint.c:3161
+#: src/elflint.c:3199
#, c-format
msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3169
+#: src/elflint.c:3207
#, 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:3216
#, 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:3225
#, 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:3236
#, 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:3253 src/elflint.c:3429
#, 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:3261 src/elflint.c:3437
#, 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:3276
#, c-format
msgid "more than one version definition section present\n"
msgstr ""
-#: src/elflint.c:3285
+#: src/elflint.c:3323
#, c-format
msgid "section [%2d] '%s': more than one BASE definition\n"
msgstr ""
-#: src/elflint.c:3289
+#: src/elflint.c:3327
#, c-format
msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
msgstr ""
-#: src/elflint.c:3295
+#: src/elflint.c:3333
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3322
+#: src/elflint.c:3360
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
msgstr ""
-#: src/elflint.c:3329
+#: src/elflint.c:3367
#, c-format
msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
msgstr ""
-#: src/elflint.c:3337
+#: src/elflint.c:3375
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
msgstr ""
-#: src/elflint.c:3357
+#: src/elflint.c:3395
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3374
+#: src/elflint.c:3412
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3407
+#: src/elflint.c:3445
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr ""
-#: src/elflint.c:3423
+#: src/elflint.c:3461
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr ""
-#: src/elflint.c:3448
+#: src/elflint.c:3486
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr ""
-#: src/elflint.c:3464
+#: src/elflint.c:3502
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr ""
-#: src/elflint.c:3475
+#: src/elflint.c:3513
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
-#: src/elflint.c:3484
+#: src/elflint.c:3522
#, c-format
msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
msgstr ""
-#: src/elflint.c:3496
+#: src/elflint.c:3534
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
msgstr ""
-#: src/elflint.c:3513
+#: src/elflint.c:3551
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
msgstr ""
-#: src/elflint.c:3522
+#: src/elflint.c:3560
#, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
msgstr ""
-#: src/elflint.c:3531
+#: src/elflint.c:3569
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
msgstr ""
-#: src/elflint.c:3546
+#: src/elflint.c:3584
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
msgstr ""
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3595
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
msgstr ""
-#: src/elflint.c:3578
+#: src/elflint.c:3616
#, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
msgstr ""
-#: src/elflint.c:3589
+#: src/elflint.c:3627
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
msgstr ""
-#: src/elflint.c:3602
+#: src/elflint.c:3640
#, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
msgstr ""
-#: src/elflint.c:3606
+#: src/elflint.c:3644
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:3616
+#: src/elflint.c:3654
#, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
msgstr ""
-#: src/elflint.c:3622
+#: src/elflint.c:3660
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
msgstr ""
-#: src/elflint.c:3719
+#: src/elflint.c:3758
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr ""
-#: src/elflint.c:3723
+#: src/elflint.c:3762
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr ""
-#: src/elflint.c:3725
+#: src/elflint.c:3764
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr ""
-#: src/elflint.c:3727
+#: src/elflint.c:3766
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr ""
-#: src/elflint.c:3729
+#: src/elflint.c:3768
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr ""
-#: src/elflint.c:3731
+#: src/elflint.c:3770
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr ""
-#: src/elflint.c:3733
+#: src/elflint.c:3772
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr ""
-#: src/elflint.c:3735
+#: src/elflint.c:3774
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr ""
-#: src/elflint.c:3738
+#: src/elflint.c:3777
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
"value\n"
msgstr ""
-#: src/elflint.c:3742
+#: src/elflint.c:3781
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in shstrndx\n"
msgstr ""
-#: src/elflint.c:3746
+#: src/elflint.c:3785
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in phnum\n"
msgstr ""
-#: src/elflint.c:3764
+#: src/elflint.c:3803
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
msgstr ""
-#: src/elflint.c:3773
+#: src/elflint.c:3812
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr ""
-#: src/elflint.c:3800
+#: src/elflint.c:3839
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3817
+#: src/elflint.c:3856
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3835
+#: src/elflint.c:3874
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
msgstr ""
-#: src/elflint.c:3852
+#: src/elflint.c:3891
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr ""
-#: src/elflint.c:3858 src/elflint.c:3890
+#: src/elflint.c:3897 src/elflint.c:3929
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
msgstr ""
-#: src/elflint.c:3863 src/elflint.c:3895
+#: src/elflint.c:3902 src/elflint.c:3934
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
"segments\n"
msgstr ""
-#: src/elflint.c:3871
+#: src/elflint.c:3910
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
msgstr ""
-#: src/elflint.c:3914
+#: src/elflint.c:3953
#, c-format
msgid "section [%2zu] '%s': size not multiple of entry size\n"
msgstr ""
-#: src/elflint.c:3919
+#: src/elflint.c:3958
#, c-format
msgid "cannot get section header\n"
msgstr ""
-#: src/elflint.c:3929
+#: src/elflint.c:3968
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr ""
-#: src/elflint.c:3949
+#: src/elflint.c:3988
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3959
+#: src/elflint.c:3998
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3967
+#: src/elflint.c:4006
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
-#: src/elflint.c:3977
+#: src/elflint.c:4016
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:3982
+#: src/elflint.c:4021
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/elflint.c:3988
+#: src/elflint.c:4027
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr ""
-#: src/elflint.c:3994
+#: src/elflint.c:4033
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
-#: src/elflint.c:3999
+#: src/elflint.c:4038
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-#: src/elflint.c:4006
+#: src/elflint.c:4045
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
-#: src/elflint.c:4011
+#: src/elflint.c:4050
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-#: src/elflint.c:4030
+#: src/elflint.c:4069
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
-#: src/elflint.c:4039
+#: src/elflint.c:4078
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr ""
-#: src/elflint.c:4046
+#: src/elflint.c:4085
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr ""
-#: src/elflint.c:4077
+#: src/elflint.c:4116
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
"%d\n"
msgstr ""
-#: src/elflint.c:4087
+#: src/elflint.c:4126
#, 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:4113
+#: src/elflint.c:4152
#, 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:4124
+#: src/elflint.c:4163
#, 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:4135
+#: src/elflint.c:4174
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-#: src/elflint.c:4145
+#: src/elflint.c:4184
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
-#: src/elflint.c:4155
+#: src/elflint.c:4194
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-#: src/elflint.c:4161
+#: src/elflint.c:4200
#, 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:4169
+#: src/elflint.c:4208
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-#: src/elflint.c:4220
+#: src/elflint.c:4263
#, c-format
msgid "more than one version symbol table present\n"
msgstr ""
-#: src/elflint.c:4243
+#: src/elflint.c:4286
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
-#: src/elflint.c:4254
+#: src/elflint.c:4297
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
-#: src/elflint.c:4260
+#: src/elflint.c:4303
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
-#: src/elflint.c:4271
+#: src/elflint.c:4314
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
"exist\n"
msgstr ""
-#: src/elflint.c:4284
+#: src/elflint.c:4327
#, c-format
msgid "duplicate version index %d\n"
msgstr ""
-#: src/elflint.c:4298
+#: src/elflint.c:4341
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
-#: src/elflint.c:4347
+#: src/elflint.c:4390
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:4351
+#: src/elflint.c:4394
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
msgstr ""
-#: src/elflint.c:4407
+#: src/elflint.c:4450
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
"offset %zu\n"
msgstr ""
-#: src/elflint.c:4412
+#: src/elflint.c:4455
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
"'%s' at offset %zu\n"
msgstr ""
-#: src/elflint.c:4431
+#: src/elflint.c:4474
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4451
+#: src/elflint.c:4494
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr ""
-#: src/elflint.c:4454
+#: src/elflint.c:4497
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4475
+#: src/elflint.c:4518
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4482
+#: src/elflint.c:4525
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
-#: src/elflint.c:4485
+#: src/elflint.c:4528
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4503
+#: src/elflint.c:4546
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
msgstr ""
-#: src/elflint.c:4518
+#: src/elflint.c:4561
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr ""
-#: src/elflint.c:4528
+#: src/elflint.c:4571
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:4539
+#: src/elflint.c:4582
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr ""
-#: src/elflint.c:4547
+#: src/elflint.c:4590
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr ""
-#: src/elflint.c:4554
+#: src/elflint.c:4597
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr ""
-#: src/elflint.c:4568
+#: src/elflint.c:4611
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4571
+#: src/elflint.c:4614
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4581
+#: src/elflint.c:4624
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr ""
-#: src/elflint.c:4602
+#: src/elflint.c:4645
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
-#: src/elflint.c:4613
+#: src/elflint.c:4656
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
-#: src/elflint.c:4620
+#: src/elflint.c:4663
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4629 src/elflint.c:4652
+#: src/elflint.c:4672 src/elflint.c:4695
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr ""
-#: src/elflint.c:4658
+#: src/elflint.c:4701
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
-#: src/elflint.c:4685
+#: src/elflint.c:4728
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4688
+#: src/elflint.c:4731
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4701
+#: src/elflint.c:4744
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr ""
-#: src/elflint.c:4709
+#: src/elflint.c:4752
#, c-format
msgid "call frame search table must be allocated\n"
msgstr ""
-#: src/elflint.c:4712
+#: src/elflint.c:4755
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr ""
-#: src/elflint.c:4716
+#: src/elflint.c:4759
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
-#: src/elflint.c:4719
+#: src/elflint.c:4762
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr ""
-#: src/elflint.c:4724
+#: src/elflint.c:4767
#, c-format
msgid "call frame search table must not be executable\n"
msgstr ""
-#: src/elflint.c:4727
+#: src/elflint.c:4770
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr ""
-#: src/elflint.c:4741
+#: src/elflint.c:4784
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
-#: src/elflint.c:4748
+#: src/elflint.c:4791
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
-#: src/elflint.c:4751
+#: src/elflint.c:4794
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
"alignment\n"
msgstr ""
-#: src/elflint.c:4764
+#: src/elflint.c:4807
#, 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:4798
+#: src/elflint.c:4841
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr ""
-#: src/elflint.c:4810
+#: src/elflint.c:4853
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/elflint.c:4831
+#: src/elflint.c:4874
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
@@ -3699,7 +3694,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: INTERNER FEHLER %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
-#: src/strip.c:2766
+#: src/strip.c:2763
#, c-format
msgid "while closing '%s'"
msgstr "beim Schliessen von '%s'"
@@ -3743,13 +3738,13 @@ msgstr "%s%s%s: Dateiformat nicht erkannt"
msgid "cannot create search tree"
msgstr "Kann Suchbaum nicht erstellen"
-#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
-#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097
-#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809
-#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613
-#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803
-#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467
-#: src/strip.c:1093
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685
+#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123
+#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854
+#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896
+#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029
+#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396
+#: src/size.c:467 src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr ""
@@ -3855,7 +3850,7 @@ msgstr ""
msgid "Show information from FILEs (a.out by default)."
msgstr ""
-#: src/objdump.c:217 src/readelf.c:608
+#: src/objdump.c:217 src/readelf.c:630
msgid "No operation specified.\n"
msgstr "Keine Operation angegeben.\n"
@@ -3864,11 +3859,11 @@ msgstr "Keine Operation angegeben.\n"
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383
+#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409
msgid "INVALID SYMBOL"
msgstr ""
-#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419
+#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445
msgid "INVALID SECTION"
msgstr ""
@@ -3923,175 +3918,175 @@ msgstr "'%s' ist kein Archiv"
msgid "error while freeing sub-ELF descriptor: %s"
msgstr ""
-#: src/readelf.c:96
+#: src/readelf.c:97
#, fuzzy
msgid "ELF input selection:"
msgstr "Eingabeauswahloptionen:"
-#: src/readelf.c:98
+#: src/readelf.c:99
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
-#: src/readelf.c:101
+#: src/readelf.c:102
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:103
+#: src/readelf.c:104
#, fuzzy
msgid "ELF output selection:"
msgstr "Eingabeauswahloptionen:"
-#: src/readelf.c:105
+#: src/readelf.c:106
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr ""
-#: src/readelf.c:106
+#: src/readelf.c:107
msgid "Display the dynamic segment"
msgstr ""
-#: src/readelf.c:107
+#: src/readelf.c:108
msgid "Display the ELF file header"
msgstr ""
-#: src/readelf.c:109
+#: src/readelf.c:110
msgid "Display histogram of bucket list lengths"
msgstr ""
-#: src/readelf.c:110
+#: src/readelf.c:111
msgid "Display the program headers"
msgstr "Programm-Köpfe anzeigen"
-#: src/readelf.c:112
+#: src/readelf.c:113
msgid "Display relocations"
msgstr "Relocations anzeigen"
-#: src/readelf.c:113
+#: src/readelf.c:114
#, fuzzy
msgid "Display the section groups"
msgstr "Programm-Köpfe anzeigen"
-#: src/readelf.c:114
+#: src/readelf.c:115
#, fuzzy
msgid "Display the sections' headers"
msgstr "Programm-Köpfe anzeigen"
-#: src/readelf.c:117
+#: src/readelf.c:118
#, fuzzy
msgid "Display the symbol table sections"
msgstr "Symboltabelle anzeigen"
-#: src/readelf.c:120
+#: src/readelf.c:121
#, fuzzy
msgid "Display (only) the dynamic symbol table"
msgstr "Zeige nur externe Symbole"
-#: src/readelf.c:121
+#: src/readelf.c:122
msgid "Display versioning information"
msgstr "Versionierungsinformationen anzeigen"
-#: src/readelf.c:122
+#: src/readelf.c:123
#, fuzzy
msgid "Display the ELF notes"
msgstr "Kernnotizen anzeigen"
-#: src/readelf.c:124
+#: src/readelf.c:125
#, fuzzy
msgid "Display architecture specific information, if any"
msgstr "Architekturspezifische Informationen anzeigen (falls vorhanden)"
-#: src/readelf.c:126
+#: src/readelf.c:127
msgid "Display sections for exception handling"
msgstr "Abschnitte für Ausnahmebehandlung anzeigen"
-#: src/readelf.c:128
+#: src/readelf.c:129
msgid "Additional output selection:"
msgstr ""
-#: src/readelf.c:130
+#: src/readelf.c:131
msgid ""
"Display DWARF section content. SECTION can be one of abbrev, addr, aranges, "
"decodedaranges, frame, gdb_index, info, info+, loc, line, decodedline, "
"ranges, pubnames, str, macinfo, macro or exception"
msgstr ""
-#: src/readelf.c:134
+#: src/readelf.c:135
msgid "Dump the uninterpreted contents of SECTION, by number or name"
msgstr ""
-#: src/readelf.c:136
+#: src/readelf.c:137
msgid "Print string contents of sections"
msgstr ""
-#: src/readelf.c:139
+#: src/readelf.c:140
msgid "Display the symbol index of an archive"
msgstr "Symbolindex des Archivs anzeigen"
-#: src/readelf.c:141
+#: src/readelf.c:142
msgid "Use the dynamic segment when possible for displaying info"
msgstr ""
-#: src/readelf.c:143
+#: src/readelf.c:144
msgid "Output control:"
msgstr "Ausgabekontrolle:"
-#: src/readelf.c:145
+#: src/readelf.c:146
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:147
+#: src/readelf.c:148
#, 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:149
+#: src/readelf.c:150
msgid "Ignored for compatibility (lines always wide)"
msgstr ""
-#: src/readelf.c:151
+#: src/readelf.c:152
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:156
+#: src/readelf.c:157
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:373
+#: src/readelf.c:395
msgid "yes"
msgstr "ja"
-#: src/readelf.c:374
+#: src/readelf.c:396
msgid "no"
msgstr "nein"
-#: src/readelf.c:576
+#: src/readelf.c:598
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr ""
-#: src/readelf.c:647 src/readelf.c:758
+#: src/readelf.c:669 src/readelf.c:780
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "konnte Elf-Deskriptor nicht erzeugen: %s"
-#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
+#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr ""
-#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508
+#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530
#, c-format
msgid "cannot get section: %s"
msgstr ""
-#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033
+#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442
#: 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
@@ -4100,345 +4095,345 @@ msgstr ""
msgid "cannot get section header: %s"
msgstr ""
-#: src/readelf.c:689
+#: src/readelf.c:711
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989
-#: src/readelf.c:11173
+#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332
+#: src/readelf.c:11516
#, c-format
msgid "cannot get %s content: %s"
msgstr ""
-#: src/readelf.c:714
+#: src/readelf.c:736
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "neue Datei konnte nicht angelegt werden"
-#: src/readelf.c:723
+#: src/readelf.c:745
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
+#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr ""
-#: src/readelf.c:736
+#: src/readelf.c:758
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/readelf.c:770
+#: src/readelf.c:792
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr ""
-#: src/readelf.c:874
+#: src/readelf.c:896
#, c-format
msgid "cannot stat input file"
msgstr ""
-#: src/readelf.c:876
+#: src/readelf.c:898
#, c-format
msgid "input file is empty"
msgstr ""
-#: src/readelf.c:878
+#: src/readelf.c:900
#, c-format
msgid "failed reading '%s': %s"
msgstr "Konnte '%s' nicht lesen: %s"
-#: src/readelf.c:907
+#: src/readelf.c:929
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:966
+#: src/readelf.c:988
#, c-format
msgid "cannot read ELF header: %s"
msgstr ""
-#: src/readelf.c:974
+#: src/readelf.c:996
#, c-format
msgid "cannot create EBL handle"
msgstr ""
-#: src/readelf.c:985
+#: src/readelf.c:1007
#, fuzzy, c-format
msgid "cannot determine number of program headers: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:1017
+#: src/readelf.c:1039
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "Konnte %s: %s nicht lesen"
-#: src/readelf.c:1050
+#: src/readelf.c:1072
#, fuzzy
msgid "cannot find section"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1087
+#: src/readelf.c:1109
msgid "NONE (None)"
msgstr ""
-#: src/readelf.c:1088
+#: src/readelf.c:1110
msgid "REL (Relocatable file)"
msgstr ""
-#: src/readelf.c:1089
+#: src/readelf.c:1111
msgid "EXEC (Executable file)"
msgstr ""
-#: src/readelf.c:1090
+#: src/readelf.c:1112
msgid "DYN (Shared object file)"
msgstr ""
-#: src/readelf.c:1091
+#: src/readelf.c:1113
msgid "CORE (Core file)"
msgstr ""
-#: src/readelf.c:1096
+#: src/readelf.c:1118
#, c-format
msgid "OS Specific: (%x)\n"
msgstr ""
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1098
+#: src/readelf.c:1120
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr ""
-#: src/readelf.c:1108
+#: src/readelf.c:1130
msgid ""
"ELF Header:\n"
" Magic: "
msgstr ""
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
" Class: %s\n"
msgstr ""
-#: src/readelf.c:1117
+#: src/readelf.c:1139
#, fuzzy, c-format
msgid " Data: %s\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:1123
+#: src/readelf.c:1145
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr ""
-#: src/readelf.c:1125 src/readelf.c:1147
+#: src/readelf.c:1147 src/readelf.c:1169
msgid "(current)"
msgstr "(aktuell)"
-#: src/readelf.c:1129
+#: src/readelf.c:1151
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: src/readelf.c:1132
+#: src/readelf.c:1154
#, c-format
msgid " ABI Version: %hhd\n"
msgstr ""
-#: src/readelf.c:1135
+#: src/readelf.c:1157
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1140
+#: src/readelf.c:1162
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: src/readelf.c:1142
+#: src/readelf.c:1164
#, fuzzy, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Daten: %s\n"
-#: src/readelf.c:1145
+#: src/readelf.c:1167
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: src/readelf.c:1149
+#: src/readelf.c:1171
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:1152
+#: src/readelf.c:1174
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1153 src/readelf.c:1156
+#: src/readelf.c:1175 src/readelf.c:1178
msgid "(bytes into file)"
msgstr ""
-#: src/readelf.c:1155
+#: src/readelf.c:1177
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr ""
-#: src/readelf.c:1158
+#: src/readelf.c:1180
#, c-format
msgid " Flags: %s\n"
msgstr ""
-#: src/readelf.c:1161
+#: src/readelf.c:1183
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182
+#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204
msgid "(bytes)"
msgstr "(Bytes)"
-#: src/readelf.c:1164
+#: src/readelf.c:1186
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1167
+#: src/readelf.c:1189
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1174
+#: src/readelf.c:1196
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr ""
-#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208
+#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230
msgid " ([0] not available)"
msgstr ""
-#: src/readelf.c:1181
+#: src/readelf.c:1203
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr ""
-#: src/readelf.c:1184
+#: src/readelf.c:1206
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr ""
-#: src/readelf.c:1191
+#: src/readelf.c:1213
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr ""
#. We managed to get the zeroth section.
-#: src/readelf.c:1204
+#: src/readelf.c:1226
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr ""
-#: src/readelf.c:1212
+#: src/readelf.c:1234
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
"\n"
msgstr ""
-#: src/readelf.c:1216
+#: src/readelf.c:1238
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
"\n"
msgstr ""
-#: src/readelf.c:1266 src/readelf.c:1474
+#: src/readelf.c:1288 src/readelf.c:1496
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:1269
+#: src/readelf.c:1291
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:1277
+#: src/readelf.c:1299
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1280
+#: src/readelf.c:1302
msgid "Section Headers:"
msgstr ""
-#: src/readelf.c:1283
+#: src/readelf.c:1305
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
msgstr ""
-#: src/readelf.c:1285
+#: src/readelf.c:1307
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
msgstr ""
-#: src/readelf.c:1290
+#: src/readelf.c:1312
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1292
+#: src/readelf.c:1314
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1370
+#: src/readelf.c:1392
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr ""
-#: src/readelf.c:1381
+#: src/readelf.c:1403
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr ""
-#: src/readelf.c:1399
+#: src/readelf.c:1421
msgid "Program Headers:"
msgstr "Programm-Köpfe:"
-#: src/readelf.c:1401
+#: src/readelf.c:1423
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1404
+#: src/readelf.c:1426
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
msgstr ""
-#: src/readelf.c:1461
+#: src/readelf.c:1483
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr ""
-#: src/readelf.c:1486
+#: src/readelf.c:1508
msgid ""
"\n"
" Section to Segment mapping:\n"
" Segment Sections..."
msgstr ""
-#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
+#: src/readelf.c:1519 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
#, c-format
msgid "cannot get program header: %s"
msgstr ""
-#: src/readelf.c:1641
+#: src/readelf.c:1663
#, c-format
msgid ""
"\n"
@@ -4449,7 +4444,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4460,32 +4455,32 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1654
+#: src/readelf.c:1676
msgid "<INVALID SYMBOL>"
msgstr ""
-#: src/readelf.c:1668
+#: src/readelf.c:1690
msgid "<INVALID SECTION>"
msgstr ""
-#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881
-#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956
-#: src/readelf.c:12963
+#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212
+#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365
+#: src/readelf.c:13372
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585
+#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890
-#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619
+#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221
+#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:1867
+#: src/readelf.c:1889
#, c-format
msgid ""
"\n"
@@ -4498,7 +4493,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, c-format
msgid ""
"\n"
@@ -4511,48 +4506,48 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1890
+#: src/readelf.c:1912
msgid " Type Value\n"
msgstr ""
-#: src/readelf.c:1899
+#: src/readelf.c:1921
#, fuzzy
msgid "cannot get string table by using dynamic segment"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:1938
+#: src/readelf.c:1960
#, c-format
msgid "Shared library: [%s]\n"
msgstr ""
-#: src/readelf.c:1942
+#: src/readelf.c:1964
#, c-format
msgid "Library soname: [%s]\n"
msgstr ""
-#: src/readelf.c:1946
+#: src/readelf.c:1968
#, c-format
msgid "Library rpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1950
+#: src/readelf.c:1972
#, c-format
msgid "Library runpath: [%s]\n"
msgstr ""
-#: src/readelf.c:1969
+#: src/readelf.c:1993
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr ""
-#: src/readelf.c:2083 src/readelf.c:2272
+#: src/readelf.c:2109 src/readelf.c:2298
#, c-format
msgid ""
"\n"
"Invalid symbol table at offset %#0<PRIx64>\n"
msgstr ""
-#: src/readelf.c:2100 src/readelf.c:2289
+#: src/readelf.c:2126 src/readelf.c:2315
#, c-format
msgid ""
"\n"
@@ -4571,7 +4566,8 @@ 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:2115 src/readelf.c:2304
+#. A .relr.dyn section does not refer to a specific section.
+#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485
#, c-format
msgid ""
"\n"
@@ -4582,29 +4578,39 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2125
+#: src/readelf.c:2151
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2127
+#: src/readelf.c:2153
msgid " Offset Type Value Name\n"
msgstr ""
-#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225
-#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396
-#: src/readelf.c:2418 src/readelf.c:2431
+#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251
+#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422
+#: src/readelf.c:2444 src/readelf.c:2457
msgid "<INVALID RELOC>"
msgstr ""
-#: src/readelf.c:2314
+#: src/readelf.c:2340
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2316
+#: src/readelf.c:2342
msgid " Offset Type Value Addend Name\n"
msgstr ""
-#: src/readelf.c:2558
+#: src/readelf.c:2654
+#, c-format
+msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
+msgstr ""
+
+#: src/readelf.c:2750
+#, c-format
+msgid "bad dynamic symbol"
+msgstr ""
+
+#: src/readelf.c:2868
#, c-format
msgid ""
"\n"
@@ -4615,40 +4621,34 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2563
+#: src/readelf.c:2873
#, 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:2571
+#: src/readelf.c:2881
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2573
+#: src/readelf.c:2883
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: src/readelf.c:2593
-#, c-format
-msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s"
-msgstr ""
-
-#: src/readelf.c:2686
-#, c-format
-msgid "bad dynamic symbol"
+#: src/readelf.c:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
msgstr ""
-#: src/readelf.c:2771
+#: src/readelf.c:3102
msgid "none"
msgstr "keine"
-#: src/readelf.c:2788
+#: src/readelf.c:3119
msgid "| <unknown>"
msgstr "| <unbekannt>"
-#: src/readelf.c:2818
+#: src/readelf.c:3149
#, c-format
msgid ""
"\n"
@@ -4661,17 +4661,17 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2839
+#: src/readelf.c:3170
#, fuzzy, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n"
-#: src/readelf.c:2852
+#: src/readelf.c:3183
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Name: %s Flags: %s Version: %hu\n"
-#: src/readelf.c:2894
+#: src/readelf.c:3225
#, c-format
msgid ""
"\n"
@@ -4684,18 +4684,18 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:2922
+#: src/readelf.c:3253
#, c-format
msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n"
msgstr ""
-#: src/readelf.c:2937
+#: src/readelf.c:3268
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr ""
#. Print the header.
-#: src/readelf.c:3197
+#: src/readelf.c:3528
#, c-format
msgid ""
"\n"
@@ -4708,15 +4708,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3225
+#: src/readelf.c:3556
msgid " 0 *local* "
msgstr " 0 *lokal* "
-#: src/readelf.c:3230
+#: src/readelf.c:3561
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3272
+#: src/readelf.c:3603
#, c-format
msgid ""
"\n"
@@ -4731,66 +4731,66 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3294
+#: src/readelf.c:3625
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr ""
-#: src/readelf.c:3296
+#: src/readelf.c:3627
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3303
+#: src/readelf.c:3634
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3316
+#: src/readelf.c:3647
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
"\t\t\t unsuccessful lookup: %f\n"
msgstr ""
-#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464
+#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795
#, c-format
msgid "cannot get data for section %d: %s"
msgstr ""
-#: src/readelf.c:3342
+#: src/readelf.c:3673
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3371
+#: src/readelf.c:3702
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3406
+#: src/readelf.c:3737
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3437
+#: src/readelf.c:3768
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3473
+#: src/readelf.c:3804
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:3539
+#: src/readelf.c:3870
#, c-format
msgid ""
" Symbol Bias: %u\n"
" Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n"
msgstr ""
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -4801,13 +4801,13 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:3638
+#: src/readelf.c:3969
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
msgstr ""
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -4815,107 +4815,107 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:3715
+#: src/readelf.c:4046
msgid " Owner Size\n"
msgstr ""
-#: src/readelf.c:3739
+#: src/readelf.c:4070
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3778
+#: src/readelf.c:4109
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3783
+#: src/readelf.c:4114
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3833
+#: src/readelf.c:4164
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3836
+#: src/readelf.c:4167
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3839
+#: src/readelf.c:4170
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3849
+#: src/readelf.c:4180
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3852
+#: src/readelf.c:4183
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3890
+#: src/readelf.c:4221
#, fuzzy
msgid "Couldn't get data from section"
msgstr "konnte Versionierungsabschnitt nicht erstellen: %s"
-#: src/readelf.c:3955
+#: src/readelf.c:4286
#, fuzzy
msgid "sprintf failure"
msgstr "mprotect fehlgeschlagen"
-#: src/readelf.c:4439
+#: src/readelf.c:4770
msgid "empty block"
msgstr ""
-#: src/readelf.c:4442
+#: src/readelf.c:4773
#, c-format
msgid "%zu byte block:"
msgstr ""
-#: src/readelf.c:4920
+#: src/readelf.c:5251
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr ""
-#: src/readelf.c:5080
+#: src/readelf.c:5423
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:5087
+#: src/readelf.c:5430
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:5094
+#: src/readelf.c:5437
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:5101
+#: src/readelf.c:5444
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:5201
+#: src/readelf.c:5544
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:5209
+#: src/readelf.c:5552
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5315
+#: src/readelf.c:5658
#, c-format
msgid ""
"\n"
@@ -4923,74 +4923,74 @@ msgid ""
" [ Code]\n"
msgstr ""
-#: src/readelf.c:5323
+#: src/readelf.c:5666
#, c-format
msgid ""
"\n"
"Abbreviation section at offset %<PRIu64>:\n"
msgstr ""
-#: src/readelf.c:5336
+#: src/readelf.c:5679
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr ""
-#: src/readelf.c:5352
+#: src/readelf.c:5695
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr ""
-#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224
-#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829
-#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627
-#: src/readelf.c:10698
+#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567
+#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172
+#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970
+#: src/readelf.c:11041
#, c-format
msgid ""
"\n"
"DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397
+#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410
+#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419
+#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429
+#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820
+#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163
#, fuzzy, c-format
msgid "Unknown version"
msgstr "unbekannte Version"
-#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424
+#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434
+#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5609
+#: src/readelf.c:5952
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ""
-#: src/readelf.c:5624
+#: src/readelf.c:5967
#, c-format
msgid ""
"\n"
@@ -5001,229 +5001,229 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:5655
+#: src/readelf.c:5998
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5657
+#: src/readelf.c:6000
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
msgstr ""
-#: src/readelf.c:5695 src/readelf.c:8638
+#: src/readelf.c:6038 src/readelf.c:8981
#, c-format
msgid ""
"\n"
"Table at offset %zu:\n"
msgstr ""
-#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649
-#: src/readelf.c:9378
+#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992
+#: src/readelf.c:9721
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:5715
+#: src/readelf.c:6058
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5727
+#: src/readelf.c:6070
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5731
+#: src/readelf.c:6074
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5742
+#: src/readelf.c:6085
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5748
+#: src/readelf.c:6091
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr ""
-#: src/readelf.c:5759
+#: src/readelf.c:6102
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr ""
-#: src/readelf.c:5814
+#: src/readelf.c:6157
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5876 src/readelf.c:9384
+#: src/readelf.c:6219 src/readelf.c:9727
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5931 src/readelf.c:9439
+#: src/readelf.c:6274 src/readelf.c:9782
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5947 src/readelf.c:9455
+#: src/readelf.c:6290 src/readelf.c:9798
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5949 src/readelf.c:9457
+#: src/readelf.c:6292 src/readelf.c:9800
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5955 src/readelf.c:9463
+#: src/readelf.c:6298 src/readelf.c:9806
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5966 src/readelf.c:9474
+#: src/readelf.c:6309 src/readelf.c:9817
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5970 src/readelf.c:9478
+#: src/readelf.c:6313 src/readelf.c:9821
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:6022
+#: src/readelf.c:6365
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "Ungültige Daten"
-#: src/readelf.c:6207 src/readelf.c:9813
+#: src/readelf.c:6550 src/readelf.c:10156
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:6255 src/readelf.c:9862
+#: src/readelf.c:6598 src/readelf.c:10205
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:6257 src/readelf.c:9864
+#: src/readelf.c:6600 src/readelf.c:10207
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916
+#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6291 src/readelf.c:10000
+#: src/readelf.c:6634 src/readelf.c:10343
#, fuzzy
msgid "base address"
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:6301 src/readelf.c:10010
+#: src/readelf.c:6644 src/readelf.c:10353
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] %s..%s\n"
-#: src/readelf.c:6565
+#: src/readelf.c:6908
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:6822
+#: src/readelf.c:7165
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:6846
+#: src/readelf.c:7189
#, c-format
msgid ""
"\n"
"Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
" [%6tx] Zero terminator\n"
msgstr ""
-#: src/readelf.c:7000 src/readelf.c:7154
+#: src/readelf.c:7343 src/readelf.c:7497
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ungültige Abschnittsausrichtung"
-#: src/readelf.c:7015
+#: src/readelf.c:7358
msgid "FDE address encoding: "
msgstr ""
-#: src/readelf.c:7021
+#: src/readelf.c:7364
msgid "LSDA pointer encoding: "
msgstr ""
-#: src/readelf.c:7131
+#: src/readelf.c:7474
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:7138
+#: src/readelf.c:7481
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr ""
-#: src/readelf.c:7175
+#: src/readelf.c:7518
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr ""
-#: src/readelf.c:7260
+#: src/readelf.c:7603
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr ""
-#: src/readelf.c:7270
+#: src/readelf.c:7613
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr ""
-#: src/readelf.c:7292
+#: src/readelf.c:7635
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr ""
-#: src/readelf.c:7622
+#: src/readelf.c:7965
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Ungültige Datei"
-#: src/readelf.c:7626
+#: src/readelf.c:7969
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "unbekannte Form %<PRIx64>"
-#: src/readelf.c:7630
+#: src/readelf.c:7973
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "ELF Kopf konnte nicht ausgelesen werden"
-#: src/readelf.c:7952
+#: src/readelf.c:8295
#, c-format
msgid ""
"\n"
@@ -5231,12 +5231,12 @@ msgid ""
" [Offset]\n"
msgstr ""
-#: src/readelf.c:8002
+#: src/readelf.c:8345
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:8022
+#: src/readelf.c:8365
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5245,7 +5245,7 @@ msgid ""
" Type signature: %#<PRIx64>, Type offset: %#<PRIx64> [%<PRIx64>]\n"
msgstr ""
-#: src/readelf.c:8034
+#: src/readelf.c:8377
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5253,37 +5253,37 @@ msgid ""
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:8044 src/readelf.c:8205
+#: src/readelf.c:8387 src/readelf.c:8548
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:8071
+#: src/readelf.c:8414
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:8100
+#: src/readelf.c:8443
#, c-format
msgid "cannot get DIE offset: %s"
msgstr ""
-#: src/readelf.c:8109
+#: src/readelf.c:8452
#, 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:8145
+#: src/readelf.c:8488
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr ""
-#: src/readelf.c:8153
+#: src/readelf.c:8496
#, c-format
msgid "cannot get next DIE: %s"
msgstr ""
-#: src/readelf.c:8197
+#: src/readelf.c:8540
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5291,7 +5291,7 @@ msgid ""
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:8249
+#: src/readelf.c:8592
#, c-format
msgid ""
"\n"
@@ -5299,13 +5299,13 @@ msgid ""
"\n"
msgstr ""
-#: src/readelf.c:8581
+#: src/readelf.c:8924
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "unbekannte Form %<PRIx64>"
#. Print what we got so far.
-#: src/readelf.c:8729
+#: src/readelf.c:9072
#, c-format
msgid ""
"\n"
@@ -5324,187 +5324,187 @@ msgid ""
"Opcodes:\n"
msgstr ""
-#: src/readelf.c:8751
+#: src/readelf.c:9094
#, fuzzy, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "ungültige .debug_line Sektion"
-#: src/readelf.c:8759
+#: src/readelf.c:9102
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "Kein Adress-Wert"
-#: src/readelf.c:8767
+#: src/readelf.c:9110
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr ""
-#: src/readelf.c:8777
+#: src/readelf.c:9120
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr ""
-#: src/readelf.c:8792
+#: src/readelf.c:9135
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:8803
+#: src/readelf.c:9146
msgid ""
"\n"
"Directory table:"
msgstr ""
-#: src/readelf.c:8809 src/readelf.c:8886
+#: src/readelf.c:9152 src/readelf.c:9229
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8880
+#: src/readelf.c:9223
msgid ""
"\n"
"File name table:"
msgstr ""
-#: src/readelf.c:8941
+#: src/readelf.c:9284
msgid " Entry Dir Time Size Name"
msgstr ""
-#: src/readelf.c:8987
+#: src/readelf.c:9330
msgid ""
"\n"
"No line number statements."
msgstr ""
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
msgstr ""
-#: src/readelf.c:9006
+#: src/readelf.c:9349
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:9040
+#: src/readelf.c:9383
#, c-format
msgid " special opcode %u: address+%u = "
msgstr ""
-#: src/readelf.c:9044
+#: src/readelf.c:9387
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:9047
+#: src/readelf.c:9390
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:9065
+#: src/readelf.c:9408
#, c-format
msgid " extended opcode %u: "
msgstr ""
-#: src/readelf.c:9070
+#: src/readelf.c:9413
msgid " end of sequence"
msgstr ""
-#: src/readelf.c:9088
+#: src/readelf.c:9431
#, fuzzy, c-format
msgid " set address to "
msgstr "Außerhalb des Adressbereiches"
-#: src/readelf.c:9116
+#: src/readelf.c:9459
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
-#: src/readelf.c:9130
+#: src/readelf.c:9473
#, c-format
msgid " set discriminator to %u\n"
msgstr ""
-#: src/readelf.c:9157
+#: src/readelf.c:9500
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:9181
+#: src/readelf.c:9524
#, c-format
msgid " set function name %s (0x%x)\n"
msgstr ""
#. Unknown, ignore it.
-#: src/readelf.c:9188
+#: src/readelf.c:9531
#, fuzzy
msgid " unknown opcode"
msgstr "unbekannter Typ"
#. Takes no argument.
-#: src/readelf.c:9200
+#: src/readelf.c:9543
msgid " copy"
msgstr ""
-#: src/readelf.c:9211
+#: src/readelf.c:9554
#, c-format
msgid " advance address by %u to "
msgstr ""
-#: src/readelf.c:9215 src/readelf.c:9276
+#: src/readelf.c:9558 src/readelf.c:9619
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:9227
+#: src/readelf.c:9570
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr ""
-#: src/readelf.c:9237
+#: src/readelf.c:9580
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:9248
+#: src/readelf.c:9591
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr ""
-#: src/readelf.c:9255
+#: src/readelf.c:9598
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:9261
+#: src/readelf.c:9604
msgid " set basic block flag"
msgstr ""
-#: src/readelf.c:9272
+#: src/readelf.c:9615
#, c-format
msgid " advance address by constant %u to "
msgstr ""
-#: src/readelf.c:9292
+#: src/readelf.c:9635
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:9302
+#: src/readelf.c:9645
msgid " set prologue end flag"
msgstr ""
#. Takes no argument.
-#: src/readelf.c:9307
+#: src/readelf.c:9650
msgid " set epilogue begin flag"
msgstr ""
-#: src/readelf.c:9317
+#: src/readelf.c:9660
#, c-format
msgid " set isa to %u\n"
msgstr ""
@@ -5512,93 +5512,93 @@ 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:9326
+#: src/readelf.c:9669
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:9527
+#: src/readelf.c:9870
#, c-format
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:9567
+#: src/readelf.c:9910
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "Ungültige Daten"
-#: src/readelf.c:10037 src/readelf.c:11082
+#: src/readelf.c:10380 src/readelf.c:11425
msgid " <INVALID DATA>\n"
msgstr ""
-#: src/readelf.c:10168
+#: src/readelf.c:10511
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr ""
-#: src/readelf.c:10191
+#: src/readelf.c:10534
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr ""
-#: src/readelf.c:10286
+#: src/readelf.c:10629
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10298
+#: src/readelf.c:10641
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10304 src/readelf.c:11202
+#: src/readelf.c:10647 src/readelf.c:11546
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:10311
+#: src/readelf.c:10654
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10340
+#: src/readelf.c:10683
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:10348
+#: src/readelf.c:10691
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr ""
-#: src/readelf.c:10373
+#: src/readelf.c:10716
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr ""
-#: src/readelf.c:10380
+#: src/readelf.c:10723
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10392
+#: src/readelf.c:10735
#, c-format
msgid " %<PRIu8> arguments:"
msgstr ""
-#: src/readelf.c:10407
+#: src/readelf.c:10750
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10608
+#: src/readelf.c:10951
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
-#: src/readelf.c:10663
+#: src/readelf.c:11006
#, c-format
msgid ""
"\n"
@@ -5607,72 +5607,72 @@ msgid ""
msgstr ""
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10668
+#: src/readelf.c:11011
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:11021
#, c-format
msgid " *** error, missing string terminator\n"
msgstr ""
-#: src/readelf.c:10800
+#: src/readelf.c:11143
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10802
+#: src/readelf.c:11145
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10816
+#: src/readelf.c:11159
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10825
+#: src/readelf.c:11168
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10879
+#: src/readelf.c:11222
#, c-format
msgid ""
"\n"
"Call frame search table section [%2zu] '.eh_frame_hdr':\n"
msgstr ""
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
"Exception handling table section [%2zu] '.gcc_except_table':\n"
msgstr ""
-#: src/readelf.c:11004
+#: src/readelf.c:11347
#, c-format
msgid " LPStart encoding: %#x "
msgstr ""
-#: src/readelf.c:11016
+#: src/readelf.c:11359
#, c-format
msgid " TType encoding: %#x "
msgstr ""
-#: src/readelf.c:11033
+#: src/readelf.c:11376
#, c-format
msgid " Call site encoding: %#x "
msgstr ""
-#: src/readelf.c:11048
+#: src/readelf.c:11391
msgid ""
"\n"
" Call site table:"
msgstr ""
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5681,142 +5681,164 @@ msgid ""
" Action: %u\n"
msgstr ""
-#: src/readelf.c:11137
+#: src/readelf.c:11480
#, c-format
msgid "invalid TType encoding"
msgstr ""
-#: src/readelf.c:11164
+#: src/readelf.c:11507
#, c-format
msgid ""
"\n"
"GDB section [%2zu] '%s' at offset %#<PRIx64> contains %<PRId64> bytes :\n"
msgstr ""
-#: src/readelf.c:11193
+#: src/readelf.c:11536
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:11211
+#: src/readelf.c:11555
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11218
+#: src/readelf.c:11562
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11225
+#: src/readelf.c:11569
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11232
+#: src/readelf.c:11576
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11239
+#: src/readelf.c:11586
+#, fuzzy, c-format
+msgid " shortcut offset: %#<PRIx32>\n"
+msgstr " %s: %<PRId64>\n"
+
+#: src/readelf.c:11594
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr ""
-#: src/readelf.c:11253
+#: src/readelf.c:11608
#, c-format
msgid ""
"\n"
" CU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:11278
+#: src/readelf.c:11633
#, c-format
msgid ""
"\n"
" TU list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:11307
+#: src/readelf.c:11662
#, c-format
msgid ""
"\n"
" Address list at offset %#<PRIx32> contains %zu entries:\n"
msgstr ""
-#: src/readelf.c:11339
+#: src/readelf.c:11705
#, c-format
msgid ""
"\n"
" Symbol table at offset %#<PRIx32> contains %zu slots:\n"
msgstr ""
-#: src/readelf.c:11477
+#: src/readelf.c:11790
+#, c-format
+msgid ""
+"\n"
+"Shortcut table at offset %#<PRIx32> contains %zu slots:\n"
+msgstr ""
+
+#: src/readelf.c:11802
+#, c-format
+msgid "Language of main: %s\n"
+msgstr ""
+
+#: src/readelf.c:11803
+#, c-format
+msgid "Name of main: "
+msgstr ""
+
+#: src/readelf.c:11886
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr ""
-#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573
-#: src/readelf.c:12630
+#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982
+#: src/readelf.c:13039
#, c-format
msgid "cannot convert core note data: %s"
msgstr ""
-#: src/readelf.c:12207
+#: src/readelf.c:12616
#, c-format
msgid ""
"\n"
"%*s... <repeats %u more times> ..."
msgstr ""
-#: src/readelf.c:12709
+#: src/readelf.c:13118
msgid " Owner Data size Type\n"
msgstr ""
-#: src/readelf.c:12737
+#: src/readelf.c:13146
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr ""
-#: src/readelf.c:12789
+#: src/readelf.c:13198
#, fuzzy, c-format
msgid "cannot get content of note: %s"
msgstr "Konnte Inhalt von %s: %s nicht lesen"
-#: src/readelf.c:12822
+#: src/readelf.c:13231
#, c-format
msgid ""
"\n"
"Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12845
+#: src/readelf.c:13254
#, c-format
msgid ""
"\n"
"Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no data to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12919 src/readelf.c:12970
+#: src/readelf.c:13328 src/readelf.c:13379
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12924
+#: src/readelf.c:13333
#, c-format
msgid ""
"\n"
"Hex dump of section [%zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12929
+#: src/readelf.c:13338
#, c-format
msgid ""
"\n"
@@ -5824,21 +5846,21 @@ msgid ""
"%#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12943
+#: src/readelf.c:13352
#, fuzzy, c-format
msgid ""
"\n"
"Section [%zu] '%s' has no strings to dump.\n"
msgstr "konnte Abschnittsdaten nicht holen: %s"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, c-format
msgid ""
"\n"
"String section [%zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:12980
+#: src/readelf.c:13389
#, c-format
msgid ""
"\n"
@@ -5846,45 +5868,45 @@ msgid ""
"offset %#0<PRIx64>:\n"
msgstr ""
-#: src/readelf.c:13028
+#: src/readelf.c:13437
#, c-format
msgid ""
"\n"
"section [%lu] does not exist"
msgstr ""
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
"section '%s' does not exist"
msgstr ""
-#: src/readelf.c:13113
+#: src/readelf.c:13522
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr ""
-#: src/readelf.c:13116
+#: src/readelf.c:13525
#, c-format
msgid ""
"\n"
"Archive '%s' has no symbol index\n"
msgstr ""
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
"Index of archive '%s' has %zu entries:\n"
msgstr ""
-#: src/readelf.c:13138
+#: src/readelf.c:13547
#, fuzzy, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "konnte Programm-Kopf nicht erstellen: %s"
-#: src/readelf.c:13143
+#: src/readelf.c:13552
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr ""
@@ -6362,7 +6384,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
-#: src/strip.c:1712 src/strip.c:2553
+#: src/strip.c:1712 src/strip.c:2552
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n"
@@ -6396,7 +6418,7 @@ msgstr ""
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2469 src/strip.c:2577
+#: src/strip.c:2469 src/strip.c:2574
#, c-format
msgid "while writing '%s': %s"
msgstr ""
@@ -6416,22 +6438,22 @@ msgstr ""
msgid "%s: error while creating ELF header: %s"
msgstr ""
-#: src/strip.c:2562
+#: src/strip.c:2560
#, c-format
msgid "%s: error while reading the file: %s"
msgstr ""
-#: src/strip.c:2602 src/strip.c:2622
+#: src/strip.c:2599 src/strip.c:2619
#, fuzzy, c-format
msgid "while writing '%s'"
msgstr "beim Schliessen von '%s'"
-#: src/strip.c:2659 src/strip.c:2666
+#: src/strip.c:2656 src/strip.c:2663
#, c-format
msgid "error while finishing '%s': %s"
msgstr ""
-#: src/strip.c:2683 src/strip.c:2759
+#: src/strip.c:2680 src/strip.c:2756
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr ""
@@ -6877,7 +6899,7 @@ msgid ""
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr ""
diff --git a/po/es.po b/po/es.po
index 472a6b70..37362094 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-03-03 16:09+0100\n"
+"POT-Creation-Date: 2023-11-03 17:36+0100\n"
"PO-Revision-Date: 2011-01-10 15:17-0300\n"
"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz."
"com.ar>\n"
@@ -52,7 +52,7 @@ msgstr ""
"garantía, ni siquiera para SU COMERCIALIZACIÓN o PARA SER USADO CON UN FIN "
"DETERMINADO.\n"
-#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202
#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
@@ -555,7 +555,7 @@ msgstr "No hay segundo plano (Backend)"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
+#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<desconocido>"
@@ -649,7 +649,7 @@ msgstr "tamaño inválido del operando fuente"
msgid "invalid size of destination operand"
msgstr "tamaño inválido del operando destino"
-#: libelf/elf_error.c:86 src/readelf.c:6415
+#: libelf/elf_error.c:86 src/readelf.c:6758
#, c-format
msgid "invalid encoding"
msgstr "codificación inválida"
@@ -735,8 +735,8 @@ msgstr "no coinciden los datos/scn"
msgid "invalid section header"
msgstr "encabezamiento de sección inválida"
-#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899
-#: src/readelf.c:11000 src/readelf.c:11188
+#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242
+#: src/readelf.c:11343 src/readelf.c:11531
#, c-format
msgid "invalid data"
msgstr "datos inválidos"
@@ -1404,8 +1404,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76
-#: src/readelf.c:160
+#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77
+#: src/readelf.c:161
msgid "FILE..."
msgstr "FICHERO..."
@@ -1696,22 +1696,22 @@ msgid "unknown compression type '%s'"
msgstr "tipo desconocido"
#. We need at least one input file.
-#: src/elfcompress.c:162 src/elfcompress.c:1444
+#: src/elfcompress.c:162 src/elfcompress.c:1447
#, fuzzy, c-format
msgid "No input file given"
msgstr "archivo de entrada vacío"
-#: src/elfcompress.c:168 src/elfcompress.c:1448
+#: src/elfcompress.c:168 src/elfcompress.c:1451
#, 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:1405
+#: src/elfcompress.c:1408
#, fuzzy
msgid "Place (de)compressed output into FILE"
msgstr "Colocar la salida obtenida en FICHERO"
-#: src/elfcompress.c:1408
+#: src/elfcompress.c:1411
msgid ""
"What type of compression to apply. TYPE can be 'none' (decompress), "
"'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias), 'zlib-"
@@ -1719,49 +1719,49 @@ msgid ""
"compression)"
msgstr ""
-#: src/elfcompress.c:1412
+#: src/elfcompress.c:1415
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
msgstr ""
-#: src/elfcompress.c:1415
+#: src/elfcompress.c:1418
msgid "Print a message for each section being (de)compressed"
msgstr ""
-#: src/elfcompress.c:1418
+#: src/elfcompress.c:1421
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:1421 src/strip.c:92
+#: src/elfcompress.c:1424 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:1424
+#: src/elfcompress.c:1427
#, 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:1434
+#: src/elfcompress.c:1437
msgid "Compress or decompress sections in an ELF file."
msgstr ""
-#: src/elflint.c:62
+#: src/elflint.c:63
msgid "Be extremely strict, flag level 2 features."
msgstr "Sea extremadamente estricto, característica de marca de nivel 2."
-#: src/elflint.c:63
+#: src/elflint.c:64
msgid "Do not print anything if successful"
msgstr "No imprime nada si está correcto"
-#: src/elflint.c:64
+#: src/elflint.c:65
msgid "Binary is a separate debuginfo file"
msgstr "Binario es un archivo debuginfo independiente"
-#: src/elflint.c:66
+#: src/elflint.c:67
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1770,174 +1770,174 @@ msgstr ""
"roto de alguna forma"
#. Short description of program.
-#: src/elflint.c:72
+#: src/elflint.c:73
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:153 src/readelf.c:391
+#: src/elflint.c:154 src/readelf.c:413
#, fuzzy, c-format
msgid "cannot open input file '%s'"
msgstr "no se puede abrir el fichero de entrada"
-#: src/elflint.c:160
+#: src/elflint.c:161
#, fuzzy, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "no se puede crear descriptor ELF: %s\n"
-#: src/elflint.c:179
+#: src/elflint.c:180
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "error al cerrar el descriptor ELF: %s\n"
-#: src/elflint.c:183
+#: src/elflint.c:184
msgid "No errors"
msgstr "No hay errores"
-#: src/elflint.c:218 src/readelf.c:603
+#: src/elflint.c:219 src/readelf.c:625
msgid "Missing file name.\n"
msgstr "Falta el nombre de archivo.\n"
-#: src/elflint.c:283
+#: src/elflint.c:284
#, 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:291
+#: src/elflint.c:292
#, 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:358
#, 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:363
#, 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:367
#, 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:375
#, 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:381
#, 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:386
#, 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:391
#, c-format
msgid "unknown object file type %d\n"
msgstr "tipo de fichero objeto desconocido %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:398
#, c-format
msgid "unknown machine type %d\n"
msgstr "tipo de máquina desconocido %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:402
#, c-format
msgid "unknown object file version\n"
msgstr "versión de fichero objeto desconocido\n"
-#: src/elflint.c:407
+#: src/elflint.c:408
#, 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:410
#, 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:414
#, 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:422
#, 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:425
#, 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:439
#, 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:456
#, 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:474
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr ""
-#: src/elflint.c:487
+#: src/elflint.c:488
#, 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:505
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr ""
-#: src/elflint.c:509
+#: src/elflint.c:510
#, 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:517 src/elflint.c:534
#, 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:520 src/elflint.c:537
#, 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:523 src/elflint.c:540
#, 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:526 src/elflint.c:543
#, 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:529 src/elflint.c:546
#, 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:591
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1946,7 +1946,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:595
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
@@ -1954,14 +1954,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:4468
+#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610
+#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981
+#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511
#, 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:624 src/elflint.c:1699
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1970,7 +1970,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:647
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1979,13 +1979,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:659
#, 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:663
#, fuzzy, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
@@ -1994,33 +1994,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:672
#, 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:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686
+#: src/elflint.c:689 src/elflint.c:692
#, 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:695
#, 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:705
#, 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:714
#, 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:729
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -2029,7 +2029,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:735
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -2039,27 +2039,27 @@ msgstr ""
"caber en st_shndx (%<PRIu32>)\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:747
#, 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:755
#, 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:761
#, 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:766
#, 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:774
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2068,26 +2068,26 @@ msgstr ""
"sección [%2d] '%s': símbolo %zu: COMMON solo es permitido en archivos "
"realojables\n"
-#: src/elflint.c:777
+#: src/elflint.c:778
#, 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:782
#, 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:833
#, 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:839 src/elflint.c:864 src/elflint.c:913
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2096,7 +2096,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:848
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2105,7 +2105,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:858 src/elflint.c:906
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2114,7 +2114,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:885
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2123,7 +2123,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:891
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2132,7 +2132,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:899
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2141,7 +2141,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:926
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2150,7 +2150,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:933
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2159,12 +2159,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:940
#, 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:990
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2173,7 +2173,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:997
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2185,7 +2185,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:1013
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2194,7 +2194,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:1020
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2203,7 +2203,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:1028
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2212,7 +2212,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:1044
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2221,7 +2221,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:1051
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2230,7 +2230,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:1064
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2239,29 +2239,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:1068
#, 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:1106
#, 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:1122
#, 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:1133 src/elflint.c:1186
#, 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:1158 src/elflint.c:1211
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2270,7 +2270,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:1164 src/elflint.c:1217
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2279,50 +2279,44 @@ 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:1176
#, 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:1259
#, 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:1271
#, 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:1279
#, 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:1287
#, 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
-#, 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:1365
#, 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:1392
#, 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:1400
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2331,12 +2325,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:1408
#, 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:1426
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2345,12 +2339,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:1443
#, 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:1458
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2359,7 +2353,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:1479
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2368,24 +2362,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:1494
#, 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:1534 src/elflint.c:1585
#, 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:1687
#, 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:1705
#, fuzzy, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2394,44 +2388,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:1713
#, 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:1718 src/elflint.c:2008
#, 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:1728
#, 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:1736
#, 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:1743
#, 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:1754
#, 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:1764
#, 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:1782
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -2439,7 +2433,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:1795
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -2448,14 +2442,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:1839
#, 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:1854
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -2464,46 +2458,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:1874 src/elflint.c:1902
#, 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:1886
#, 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:1895
#, 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:1910 src/elflint.c:1917
#, 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:1927 src/elflint.c:1931
#, 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:1937
#, 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:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960
#, 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:1972
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2511,37 +2505,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:1982
#, 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:1986
#, 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:1991
#, 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:1994
#, 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:2003
#, 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:2018
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2550,24 +2544,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:2036
#, 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:2048
#, 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:2053
#, 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:2070 src/elflint.c:2127
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2575,42 +2569,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:2084 src/elflint.c:2141
#, 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:2098 src/elflint.c:2155
#, 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:2108
#, 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:2165
#, 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:2178
#, 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:2190
#, 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:2206
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2619,14 +2613,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:2215
#, 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:2249
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2634,7 +2628,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:2270
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2643,7 +2637,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:2283
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2651,7 +2645,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:2292
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2659,13 +2653,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:2322
#, 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:2327
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2673,43 +2667,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:2333
#, 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:2346
#, 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:2364
#, 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:2368
#, 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:2378
#, 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:2383
#, 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:2388
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2718,46 +2712,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:2437
#, 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:2461 src/elflint.c:2526 src/elflint.c:2561
#, 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:2482
#, 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:2493 src/elflint.c:2537 src/elflint.c:2574
#, 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:2508
#, 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:2595
#, 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:2605 src/elflint.c:2609
#, 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:2616
#, c-format
msgid ""
"symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2766,7 +2760,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:2628
#, c-format
msgid ""
"symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2775,12 +2769,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:2644
#, 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:2664
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2788,99 +2782,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:2675
#, 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:2680
#, 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:2686
#, 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:2691
#, 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:2698
#, 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:2702
#, 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:2707
#, 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:2713
#, 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:2719
#, 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:2728
#, 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:2734
#, 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:2742
#, 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:2746
#, 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:2757
#, 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:2769
#, 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:2778
#, 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:2785
#, 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:2791
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2889,12 +2883,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:2798
#, 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:2995
#, c-format
msgid ""
"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2903,7 +2897,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:3007
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2912,29 +2906,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:3023
#, 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:3039
#, 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:3047
#, 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:3061
#, 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:3066
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
@@ -2942,7 +2936,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:3076
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
@@ -2950,46 +2944,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:3129
#, 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:3137 src/elflint.c:3284
#, 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:3162 src/elflint.c:3338
#, 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:3169 src/elflint.c:3345
#, 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:3179
#, 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:3187
#, 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:3199
#, 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:3207
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2998,7 +2992,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:3216
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -3007,7 +3001,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:3225
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -3016,7 +3010,7 @@ msgstr ""
"sección [%2d] '%s': entrada auxiliar %d de entrada %d tiene nombre duplicado "
"'%s'\n"
-#: src/elflint.c:3198
+#: src/elflint.c:3236
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
@@ -3024,14 +3018,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:3253 src/elflint.c:3429
#, 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:3261 src/elflint.c:3437
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -3040,46 +3034,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:3276
#, 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:3323
#, 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:3327
#, 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:3333
#, 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:3360
#, 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:3367
#, 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:3375
#, 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:3395
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -3087,34 +3081,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:3412
#, 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:3445
#, 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:3461
#, 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:3486
#, 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:3502
#, 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:3513
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
@@ -3122,21 +3116,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:3522
#, 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:3534
#, 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:3551
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -3144,12 +3138,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:3560
#, 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:3569
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
@@ -3157,7 +3151,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:3584
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -3166,7 +3160,7 @@ msgstr ""
"atributo\n"
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3595
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -3174,26 +3168,26 @@ msgstr ""
"Sección[%2d] '%s': compensación %zu: sub-sección de atributo tiene etiqueta "
"inesperada %u\n"
-#: src/elflint.c:3578
+#: src/elflint.c:3616
#, 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:3589
+#: src/elflint.c:3627
#, 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:3602
+#: src/elflint.c:3640
#, 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:3606
+#: src/elflint.c:3644
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
@@ -3201,12 +3195,12 @@ msgstr ""
"Sección [%2d] '%s': compensación %zu: no reconocido %s valor de atributo "
"%<PRIu64>\n"
-#: src/elflint.c:3616
+#: src/elflint.c:3654
#, 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:3622
+#: src/elflint.c:3660
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -3214,47 +3208,47 @@ msgstr ""
"Sección [%2d] '%s': compensación %zu: extra bytes después de la última "
"sección de atributo\n"
-#: src/elflint.c:3719
+#: src/elflint.c:3758
#, 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:3723
+#: src/elflint.c:3762
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr "Sección zeroth tiene nombre nonzero\n"
-#: src/elflint.c:3725
+#: src/elflint.c:3764
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr "Sección zeroth tiene tipo nonzero\n"
-#: src/elflint.c:3727
+#: src/elflint.c:3766
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr "Sección zeroth tiene banderas nonzero\n"
-#: src/elflint.c:3729
+#: src/elflint.c:3768
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr "Sección zeroth tiene dirección nonzero\n"
-#: src/elflint.c:3731
+#: src/elflint.c:3770
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr "Sección zeroth tiene compensación nonzero\n"
-#: src/elflint.c:3733
+#: src/elflint.c:3772
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr "Sección zeroth tiene valor de alineación nonzero\n"
-#: src/elflint.c:3735
+#: src/elflint.c:3774
#, 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:3738
+#: src/elflint.c:3777
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -3263,7 +3257,7 @@ msgstr ""
"Sección zeroth tiene valor de tamaño nonzero mientras que el encabezamiento "
"ELF tiene valor shnum nonzero\n"
-#: src/elflint.c:3742
+#: src/elflint.c:3781
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3272,7 +3266,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:3746
+#: src/elflint.c:3785
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3281,27 +3275,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:3764
+#: src/elflint.c:3803
#, 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:3773
+#: src/elflint.c:3812
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr "Sección [%2zu]: nombre inválido\n"
-#: src/elflint.c:3800
+#: src/elflint.c:3839
#, 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:3817
+#: src/elflint.c:3856
#, 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:3835
+#: src/elflint.c:3874
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
@@ -3309,12 +3303,12 @@ msgstr ""
"Sección [%2zu] '%s' tiene banderas erradas: %s esperado y posiblemente %s, "
"es %s\n"
-#: src/elflint.c:3852
+#: src/elflint.c:3891
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr "Sección [%2zu] '%s' presente en archivo objeto\n"
-#: src/elflint.c:3858 src/elflint.c:3890
+#: src/elflint.c:3897 src/elflint.c:3929
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
@@ -3322,7 +3316,7 @@ msgstr ""
"Sección [%2zu] '%s' tiene bandera SHF_ALLOC establecida pero no es un "
"segmento cargable\n"
-#: src/elflint.c:3863 src/elflint.c:3895
+#: src/elflint.c:3902 src/elflint.c:3934
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -3331,7 +3325,7 @@ msgstr ""
"Sección [%2zu] '%s' no tiene bandera SHF_ALLOC establecida pero hay "
"segmentos cargables\n"
-#: src/elflint.c:3871
+#: src/elflint.c:3910
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -3339,22 +3333,22 @@ msgstr ""
"Sección [%2zu] '%s' es tabla de índice de sección de extensión en archivo no-"
"objeto\n"
-#: src/elflint.c:3914
+#: src/elflint.c:3953
#, 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:3919
+#: src/elflint.c:3958
#, c-format
msgid "cannot get section header\n"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/elflint.c:3929
+#: src/elflint.c:3968
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "sección [%2zu] '%s' tiene tipo %d incompatible \n"
-#: src/elflint.c:3949
+#: src/elflint.c:3988
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3362,76 +3356,76 @@ msgstr ""
"Sección [%2zu] '%s' contiene bandera(s) de procesador-específico inválidas "
"%#<PRIx64>\n"
-#: src/elflint.c:3959
+#: src/elflint.c:3998
#, 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:3967
+#: src/elflint.c:4006
#, 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:3977
+#: src/elflint.c:4016
#, 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:3982
+#: src/elflint.c:4021
#, 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:3988
+#: src/elflint.c:4027
#, 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:3994
+#: src/elflint.c:4033
#, 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:3999
+#: src/elflint.c:4038
#, 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:4006
+#: src/elflint.c:4045
#, 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:4011
+#: src/elflint.c:4050
#, 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:4030
+#: src/elflint.c:4069
#, 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:4039
+#: src/elflint.c:4078
#, 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:4046
+#: src/elflint.c:4085
#, 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:4077
+#: src/elflint.c:4116
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3440,7 +3434,7 @@ msgstr ""
"Sección [%2zu] '%s' no contenida totalmente en segmento de entrada de "
"encabezamiento de programa %d\n"
-#: src/elflint.c:4087
+#: src/elflint.c:4126
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3449,7 +3443,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:4113
+#: src/elflint.c:4152
#, fuzzy, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3458,7 +3452,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:4124
+#: src/elflint.c:4163
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3467,18 +3461,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:4135
+#: src/elflint.c:4174
#, 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:4145
+#: src/elflint.c:4184
#, 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:4155
+#: src/elflint.c:4194
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3486,7 +3480,7 @@ msgstr ""
"Sección [%2zu] '%s': asignación de bandera establecida pero sección no en "
"ningún segmento cargado\n"
-#: src/elflint.c:4161
+#: src/elflint.c:4200
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3495,7 +3489,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:4169
+#: src/elflint.c:4208
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3503,32 +3497,32 @@ msgstr ""
"sección [%2zu] '%s': ficheros reubicables no pueden tener tablas de símbolos "
"dinámicos\n"
-#: src/elflint.c:4220
+#: src/elflint.c:4263
#, 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:4243
+#: src/elflint.c:4286
#, 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:4254
+#: src/elflint.c:4297
#, 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:4260
+#: src/elflint.c:4303
#, 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:4271
+#: src/elflint.c:4314
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3537,26 +3531,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:4284
+#: src/elflint.c:4327
#, c-format
msgid "duplicate version index %d\n"
msgstr "Duplicar índice de versión %d\n"
-#: src/elflint.c:4298
+#: src/elflint.c:4341
#, 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:4347
+#: src/elflint.c:4390
#, 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:4351
+#: src/elflint.c:4394
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3564,7 +3558,7 @@ msgstr ""
"Sección [%2d] '%s': tipo de nota de fichero core desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4407
+#: src/elflint.c:4450
#, fuzzy, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3573,7 +3567,7 @@ msgstr ""
"phdr[%d]: tipo de nota de fichero objeto desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4412
+#: src/elflint.c:4455
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3582,40 +3576,40 @@ msgstr ""
"Sección [%2d] '%s': tipo de nota de fichero objeto desconocido %<PRIu32> en "
"compensación %Zu\n"
-#: src/elflint.c:4431
+#: src/elflint.c:4474
#, 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:4451
+#: src/elflint.c:4494
#, 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:4454
+#: src/elflint.c:4497
#, 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:4475
+#: src/elflint.c:4518
#, 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:4482
+#: src/elflint.c:4525
#, 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:4485
+#: src/elflint.c:4528
#, 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:4503
+#: src/elflint.c:4546
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3623,145 +3617,145 @@ msgstr ""
"Sólo ejecutables, objetos compartidos y ficheros core pueden tener "
"encabezamientos de programas\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4561
#, 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:4528
+#: src/elflint.c:4571
#, 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:4539
+#: src/elflint.c:4582
#, 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:4547
+#: src/elflint.c:4590
#, 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:4554
+#: src/elflint.c:4597
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "ejecutable estático no puede tener secciones dinámicas\n"
-#: src/elflint.c:4568
+#: src/elflint.c:4611
#, 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:4571
+#: src/elflint.c:4614
#, 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:4581
+#: src/elflint.c:4624
#, 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:4602
+#: src/elflint.c:4645
#, 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:4613
+#: src/elflint.c:4656
#, 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:4620
+#: src/elflint.c:4663
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4629 src/elflint.c:4652
+#: src/elflint.c:4672 src/elflint.c:4695
#, 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:4658
+#: src/elflint.c:4701
#, 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:4685
+#: src/elflint.c:4728
#, 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:4688
+#: src/elflint.c:4731
#, 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:4701
+#: src/elflint.c:4744
#, 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:4709
+#: src/elflint.c:4752
#, 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:4712
+#: src/elflint.c:4755
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "sección [%2zu] '%s' debe ser asignada\n"
-#: src/elflint.c:4716
+#: src/elflint.c:4759
#, 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:4719
+#: src/elflint.c:4762
#, 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:4724
+#: src/elflint.c:4767
#, 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:4727
+#: src/elflint.c:4770
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "sección [%2zu] '%s' no debe ser ejecutable\n"
-#: src/elflint.c:4741
+#: src/elflint.c:4784
#, 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:4748
+#: src/elflint.c:4791
#, 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:4751
+#: src/elflint.c:4794
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3770,7 +3764,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:4764
+#: src/elflint.c:4807
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3779,17 +3773,17 @@ msgstr ""
"ejecutable/DSO con sección .eh_frame_hdr no tiene una entrada de "
"encabezamiento de programa PT_GNU_EH_FRAME"
-#: src/elflint.c:4798
+#: src/elflint.c:4841
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "No se puede leer encabezamiento ELF: %s\n"
-#: src/elflint.c:4810
+#: src/elflint.c:4853
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "no sepuede crear fichero nuevo"
-#: src/elflint.c:4831
+#: src/elflint.c:4874
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr "Bandera de reubicación de texto establecida pero no necesaria\n"
@@ -4010,7 +4004,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: ERROR INTERNO %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
-#: src/strip.c:2766
+#: src/strip.c:2763
#, c-format
msgid "while closing '%s'"
msgstr "error al cerrar '%s'"
@@ -4054,13 +4048,13 @@ msgstr "%s%s%s: no se reconoció el formato de fichero"
msgid "cannot create search tree"
msgstr "No se puede crear el árbol de búsqueda"
-#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
-#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097
-#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809
-#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613
-#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803
-#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467
-#: src/strip.c:1093
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685
+#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123
+#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854
+#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896
+#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029
+#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 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"
@@ -4170,7 +4164,7 @@ msgstr "Sólo muestra información para NOMBRE de sección."
msgid "Show information from FILEs (a.out by default)."
msgstr "Muestra información de FICHEROS (a.out por defecto)."
-#: src/objdump.c:217 src/readelf.c:608
+#: src/objdump.c:217 src/readelf.c:630
msgid "No operation specified.\n"
msgstr "No se especificó una operación.\n"
@@ -4179,11 +4173,11 @@ msgstr "No se especificó una operación.\n"
msgid "while close `%s'"
msgstr "mientras cierra `%s'"
-#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383
+#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409
msgid "INVALID SYMBOL"
msgstr "SÃMBOLO INVÃLIDO"
-#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419
+#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445
msgid "INVALID SECTION"
msgstr "SECCIÓN INVÃLIDA"
@@ -4241,90 +4235,90 @@ msgstr "%s: no es un archivo"
msgid "error while freeing sub-ELF descriptor: %s"
msgstr "error al liberar descriptor sub-ELF: %s"
-#: src/readelf.c:96
+#: src/readelf.c:97
#, fuzzy
msgid "ELF input selection:"
msgstr "Selección de salida de ELF:"
-#: src/readelf.c:98
+#: src/readelf.c:99
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
-#: src/readelf.c:101
+#: src/readelf.c:102
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:103
+#: src/readelf.c:104
msgid "ELF output selection:"
msgstr "Selección de salida de ELF:"
-#: src/readelf.c:105
+#: src/readelf.c:106
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr "Todo esto mas -p .strtab -p .dynstr -p .comment"
-#: src/readelf.c:106
+#: src/readelf.c:107
msgid "Display the dynamic segment"
msgstr "Mostrar el segmento dinámico"
-#: src/readelf.c:107
+#: src/readelf.c:108
msgid "Display the ELF file header"
msgstr "Mostrar el encabezamiento del fichero ELF"
-#: src/readelf.c:109
+#: src/readelf.c:110
msgid "Display histogram of bucket list lengths"
msgstr "Mostrar histograma de las longitudes de las listas de cubetas"
-#: src/readelf.c:110
+#: src/readelf.c:111
msgid "Display the program headers"
msgstr "Mostrar encabezamientos de programa"
-#: src/readelf.c:112
+#: src/readelf.c:113
msgid "Display relocations"
msgstr "Mostrar reubicaciones"
-#: src/readelf.c:113
+#: src/readelf.c:114
#, fuzzy
msgid "Display the section groups"
msgstr "Mostrar los encabezados de las secciones"
-#: src/readelf.c:114
+#: src/readelf.c:115
msgid "Display the sections' headers"
msgstr "Mostrar los encabezados de las secciones"
-#: src/readelf.c:117
+#: src/readelf.c:118
#, fuzzy
msgid "Display the symbol table sections"
msgstr "Mostrar la tabla de símbolos"
-#: src/readelf.c:120
+#: src/readelf.c:121
#, fuzzy
msgid "Display (only) the dynamic symbol table"
msgstr "Mostrar sólo símbolos externos"
-#: src/readelf.c:121
+#: src/readelf.c:122
msgid "Display versioning information"
msgstr "Mostrar información de versión"
-#: src/readelf.c:122
+#: src/readelf.c:123
msgid "Display the ELF notes"
msgstr "Mostrar las notas ELF"
-#: src/readelf.c:124
+#: src/readelf.c:125
msgid "Display architecture specific information, if any"
msgstr "Mostrar información específica de la arquitectura (si es que la hay)"
-#: src/readelf.c:126
+#: src/readelf.c:127
msgid "Display sections for exception handling"
msgstr "Muestra secciones para manejo de excepciones"
-#: src/readelf.c:128
+#: src/readelf.c:129
msgid "Additional output selection:"
msgstr "Selección de salida adicional:"
-#: src/readelf.c:130
+#: src/readelf.c:131
#, fuzzy
msgid ""
"Display DWARF section content. SECTION can be one of abbrev, addr, aranges, "
@@ -4335,85 +4329,85 @@ msgstr ""
"siguiente: abbrev, aranges, frame, info, loc, line, ranges, pubnames, str, "
"macinfo, o exception"
-#: src/readelf.c:134
+#: src/readelf.c:135
msgid "Dump the uninterpreted contents of SECTION, by number or name"
msgstr "Vuelca los contenidos no interpretados de SECCIÓN, por número o nombre"
-#: src/readelf.c:136
+#: src/readelf.c:137
msgid "Print string contents of sections"
msgstr "Imprime contenido de cadena de secciones"
-#: src/readelf.c:139
+#: src/readelf.c:140
msgid "Display the symbol index of an archive"
msgstr "Muestra el índice de símbolos de un archivo"
-#: src/readelf.c:141
+#: src/readelf.c:142
msgid "Use the dynamic segment when possible for displaying info"
msgstr ""
-#: src/readelf.c:143
+#: src/readelf.c:144
msgid "Output control:"
msgstr "Control de salida:"
-#: src/readelf.c:145
+#: src/readelf.c:146
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:147
+#: src/readelf.c:148
#, 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:149
+#: src/readelf.c:150
msgid "Ignored for compatibility (lines always wide)"
msgstr ""
-#: src/readelf.c:151
+#: src/readelf.c:152
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:156
+#: src/readelf.c:157
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:373
+#: src/readelf.c:395
msgid "yes"
msgstr "sí"
-#: src/readelf.c:374
+#: src/readelf.c:396
msgid "no"
msgstr "no"
-#: src/readelf.c:576
+#: src/readelf.c:598
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Sección de depuración DWARF desconocida `%s'.\n"
-#: src/readelf.c:647 src/readelf.c:758
+#: src/readelf.c:669 src/readelf.c:780
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "no se puede crear descriptor ELF: %s"
-#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
+#: src/readelf.c:676 src/readelf.c:1002 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:672 src/readelf.c:1300 src/readelf.c:1508
+#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530
#, c-format
msgid "cannot get section: %s"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033
+#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442
#: 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
@@ -4422,120 +4416,120 @@ msgstr "No se puede encontrar la sección: %s"
msgid "cannot get section header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:689
+#: src/readelf.c:711
#, fuzzy, c-format
msgid "cannot get section name"
msgstr "no se puede obtener encabezamiento de sección\n"
-#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989
-#: src/readelf.c:11173
+#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332
+#: src/readelf.c:11516
#, c-format
msgid "cannot get %s content: %s"
msgstr "No se puede obtener el contenido %s: %s"
-#: src/readelf.c:714
+#: src/readelf.c:736
#, fuzzy, c-format
msgid "cannot create temp file '%s'"
msgstr "no se puede crear fichero nuevo '%s': %s"
-#: src/readelf.c:723
+#: src/readelf.c:745
#, fuzzy, c-format
msgid "cannot write section data"
msgstr "no se puede leer la sección de datos: %s"
-#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
+#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:736
+#: src/readelf.c:758
#, fuzzy, c-format
msgid "error while rewinding file descriptor"
msgstr "error al cerrar el descriptor ELF: %s"
-#: src/readelf.c:770
+#: src/readelf.c:792
#, 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:874
+#: src/readelf.c:896
#, c-format
msgid "cannot stat input file"
msgstr "no sepudo stat archivo de entrada"
-#: src/readelf.c:876
+#: src/readelf.c:898
#, c-format
msgid "input file is empty"
msgstr "archivo de entrada vacío"
-#: src/readelf.c:878
+#: src/readelf.c:900
#, c-format
msgid "failed reading '%s': %s"
msgstr "Falló lectura de '%s': %s"
-#: src/readelf.c:907
+#: src/readelf.c:929
#, 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:966
+#: src/readelf.c:988
#, c-format
msgid "cannot read ELF header: %s"
msgstr "no se pudo leer encabezamiento ELF: %s"
-#: src/readelf.c:974
+#: src/readelf.c:996
#, c-format
msgid "cannot create EBL handle"
msgstr "no se puede crear EBL"
-#: src/readelf.c:985
+#: src/readelf.c:1007
#, 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:1017
+#: src/readelf.c:1039
#, fuzzy, c-format
msgid "cannot read ELF: %s"
msgstr "no sepuede leer %s: %s"
-#: src/readelf.c:1050
+#: src/readelf.c:1072
#, fuzzy
#| msgid "cannot get section: %s"
msgid "cannot find section"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:1087
+#: src/readelf.c:1109
msgid "NONE (None)"
msgstr "NONE (Ninguno)"
-#: src/readelf.c:1088
+#: src/readelf.c:1110
msgid "REL (Relocatable file)"
msgstr "REL (Fichero reubicable)"
-#: src/readelf.c:1089
+#: src/readelf.c:1111
msgid "EXEC (Executable file)"
msgstr "EXEC (Fichero ejecutable)"
-#: src/readelf.c:1090
+#: src/readelf.c:1112
msgid "DYN (Shared object file)"
msgstr "DYN (Fichero objeto compartido)"
-#: src/readelf.c:1091
+#: src/readelf.c:1113
msgid "CORE (Core file)"
msgstr "CORE (Fichero núcleo)"
-#: src/readelf.c:1096
+#: src/readelf.c:1118
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS Specific: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1098
+#: src/readelf.c:1120
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Específico del procesador: (%x)\n"
-#: src/readelf.c:1108
+#: src/readelf.c:1130
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4543,7 +4537,7 @@ msgstr ""
"Encabezamiento ELF:\n"
" Mágico: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4552,125 +4546,125 @@ msgstr ""
"\n"
" Clase: %s\n"
-#: src/readelf.c:1117
+#: src/readelf.c:1139
#, c-format
msgid " Data: %s\n"
msgstr " Datos: %s\n"
-#: src/readelf.c:1123
+#: src/readelf.c:1145
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Versión ident: %hhd %s\n"
-#: src/readelf.c:1125 src/readelf.c:1147
+#: src/readelf.c:1147 src/readelf.c:1169
msgid "(current)"
msgstr "(actual)"
-#: src/readelf.c:1129
+#: src/readelf.c:1151
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1132
+#: src/readelf.c:1154
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Versión ABI: %hhd\n"
-#: src/readelf.c:1135
+#: src/readelf.c:1157
msgid " Type: "
msgstr " Tipo: "
-#: src/readelf.c:1140
+#: src/readelf.c:1162
#, c-format
msgid " Machine: %s\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:1142
+#: src/readelf.c:1164
#, fuzzy, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Máquina: %s\n"
-#: src/readelf.c:1145
+#: src/readelf.c:1167
#, c-format
msgid " Version: %d %s\n"
msgstr " Versión: %d %s\n"
-#: src/readelf.c:1149
+#: src/readelf.c:1171
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:1152
+#: src/readelf.c:1174
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n"
-#: src/readelf.c:1153 src/readelf.c:1156
+#: src/readelf.c:1175 src/readelf.c:1178
msgid "(bytes into file)"
msgstr " (bytes en el archivo)"
-#: src/readelf.c:1155
+#: src/readelf.c:1177
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n"
-#: src/readelf.c:1158
+#: src/readelf.c:1180
#, c-format
msgid " Flags: %s\n"
msgstr " Indicadores: %s\n"
-#: src/readelf.c:1161
+#: src/readelf.c:1183
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n"
-#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182
+#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204
msgid "(bytes)"
msgstr "(bytes)"
-#: src/readelf.c:1164
+#: src/readelf.c:1186
#, 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:1167
+#: src/readelf.c:1189
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>"
-#: src/readelf.c:1174
+#: src/readelf.c:1196
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> in [0].sh_info)"
-#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208
+#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230
msgid " ([0] not available)"
msgstr " ([0] no disponible)"
-#: src/readelf.c:1181
+#: src/readelf.c:1203
#, 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:1184
+#: src/readelf.c:1206
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>"
-#: src/readelf.c:1191
+#: src/readelf.c:1213
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> en [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1204
+#: src/readelf.c:1226
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> en [0].sh_link)"
-#: src/readelf.c:1212
+#: src/readelf.c:1234
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4679,19 +4673,19 @@ msgstr ""
" Ãndice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n"
"\n"
-#: src/readelf.c:1216
+#: src/readelf.c:1238
#, 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:1266 src/readelf.c:1474
+#: src/readelf.c:1288 src/readelf.c:1496
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "no se pudieron determinar el número de secciones: %s"
-#: src/readelf.c:1269
+#: src/readelf.c:1291
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4700,16 +4694,16 @@ msgstr ""
"Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1277
+#: src/readelf.c:1299
#, 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:1280
+#: src/readelf.c:1302
msgid "Section Headers:"
msgstr "encabezamientos de sección:"
-#: src/readelf.c:1283
+#: src/readelf.c:1305
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4717,7 +4711,7 @@ msgstr ""
"[Nr] Nombre Tipo Dirección Off Tamaño Inf Al "
"Enlace banderas ES"
-#: src/readelf.c:1285
+#: src/readelf.c:1307
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4725,36 +4719,36 @@ msgstr ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
-#: src/readelf.c:1290
+#: src/readelf.c:1312
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1292
+#: src/readelf.c:1314
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1370
+#: src/readelf.c:1392
#, 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:1381
+#: src/readelf.c:1403
#, 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:1399
+#: src/readelf.c:1421
msgid "Program Headers:"
msgstr "encabezamientos de programa:"
-#: src/readelf.c:1401
+#: src/readelf.c:1423
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:1404
+#: src/readelf.c:1426
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4762,12 +4756,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:1461
+#: src/readelf.c:1483
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Solicitando intérprete de programa: %s]\n"
-#: src/readelf.c:1486
+#: src/readelf.c:1508
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4777,12 +4771,12 @@ msgstr ""
" Sección para asignación de segmento:\n"
" Secciones de segmento..."
-#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
+#: src/readelf.c:1519 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:1641
+#: src/readelf.c:1663
#, c-format
msgid ""
"\n"
@@ -4797,7 +4791,7 @@ msgstr[1] ""
"\n"
"Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4812,32 +4806,32 @@ msgstr[1] ""
"\n"
"Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n"
-#: src/readelf.c:1654
+#: src/readelf.c:1676
msgid "<INVALID SYMBOL>"
msgstr "<SÃMBOLO INVÃLIDO>"
-#: src/readelf.c:1668
+#: src/readelf.c:1690
msgid "<INVALID SECTION>"
msgstr "<SECCIÓN INVÃLIDA>"
-#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881
-#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956
-#: src/readelf.c:12963
+#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212
+#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365
+#: src/readelf.c:13372
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585
+#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "No se puede obtener encabezamiento de sección: %s"
-#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890
-#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619
+#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221
+#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr ".debug_line section inválida"
-#: src/readelf.c:1867
+#: src/readelf.c:1889
#, c-format
msgid ""
"\n"
@@ -4858,7 +4852,7 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, fuzzy, c-format
#| msgid ""
#| "\n"
@@ -4887,41 +4881,41 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:1890
+#: src/readelf.c:1912
msgid " Type Value\n"
msgstr " Tipo Valor\n"
-#: src/readelf.c:1899
+#: src/readelf.c:1921
#, fuzzy
msgid "cannot get string table by using dynamic segment"
msgstr "no se pueden obtener datos de sección: %s"
-#: src/readelf.c:1938
+#: src/readelf.c:1960
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteca compartida: [%s]\n"
-#: src/readelf.c:1942
+#: src/readelf.c:1964
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Nombre-so de la biblioteca: [%s]\n"
-#: src/readelf.c:1946
+#: src/readelf.c:1968
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath de la biblioteca: [%s]\n"
-#: src/readelf.c:1950
+#: src/readelf.c:1972
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Ruta de ejecución de la biblioteca: [%s]\n"
-#: src/readelf.c:1969
+#: src/readelf.c:1993
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bytes)\n"
-#: src/readelf.c:2083 src/readelf.c:2272
+#: src/readelf.c:2109 src/readelf.c:2298
#, c-format
msgid ""
"\n"
@@ -4930,7 +4924,7 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:2100 src/readelf.c:2289
+#: src/readelf.c:2126 src/readelf.c:2315
#, c-format
msgid ""
"\n"
@@ -4955,7 +4949,8 @@ 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:2115 src/readelf.c:2304
+#. A .relr.dyn section does not refer to a specific section.
+#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485
#, c-format
msgid ""
"\n"
@@ -4972,29 +4967,39 @@ msgstr[1] ""
"Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene "
"entradas %d:\n"
-#: src/readelf.c:2125
+#: src/readelf.c:2151
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2127
+#: src/readelf.c:2153
msgid " Offset Type Value Name\n"
msgstr " Compensación Tipo Valor Nombre\n"
-#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225
-#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396
-#: src/readelf.c:2418 src/readelf.c:2431
+#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251
+#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422
+#: src/readelf.c:2444 src/readelf.c:2457
msgid "<INVALID RELOC>"
msgstr "<REUBIC INVÃLIDA>"
-#: src/readelf.c:2314
+#: src/readelf.c:2340
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2316
+#: src/readelf.c:2342
msgid " Offset Type Value Addend Name\n"
msgstr " Compensación Tipo Valor Nombre Adend\n"
-#: src/readelf.c:2558
+#: src/readelf.c:2654
+#, 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:2750
+#, c-format
+msgid "bad dynamic symbol"
+msgstr "símbolo dinámico erróneo"
+
+#: src/readelf.c:2868
#, c-format
msgid ""
"\n"
@@ -5009,40 +5014,34 @@ msgstr[1] ""
"\n"
"La tabla de símbolos [%2u] '%s' contiene entradas %u:\n"
-#: src/readelf.c:2563
+#: src/readelf.c:2873
#, 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:2571
+#: src/readelf.c:2881
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:2573
+#: src/readelf.c:2883
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:2593
-#, 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:2686
-#, c-format
-msgid "bad dynamic symbol"
-msgstr "símbolo dinámico erróneo"
+#: src/readelf.c:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2771
+#: src/readelf.c:3102
msgid "none"
msgstr "nada"
-#: src/readelf.c:2788
+#: src/readelf.c:3119
msgid "| <unknown>"
msgstr "| <desconocido>"
-#: src/readelf.c:2818
+#: src/readelf.c:3149
#, c-format
msgid ""
"\n"
@@ -5063,17 +5062,17 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:2839
+#: src/readelf.c:3170
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n"
-#: src/readelf.c:2852
+#: src/readelf.c:3183
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n"
-#: src/readelf.c:2894
+#: src/readelf.c:3225
#, c-format
msgid ""
"\n"
@@ -5094,19 +5093,19 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:2922
+#: src/readelf.c:3253
#, 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:2937
+#: src/readelf.c:3268
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Principal %d: %s\n"
#. Print the header.
-#: src/readelf.c:3197
+#: src/readelf.c:3528
#, c-format
msgid ""
"\n"
@@ -5127,15 +5126,15 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'"
-#: src/readelf.c:3225
+#: src/readelf.c:3556
msgid " 0 *local* "
msgstr " 0 *local* "
-#: src/readelf.c:3230
+#: src/readelf.c:3561
msgid " 1 *global* "
msgstr " 1 *global* "
-#: src/readelf.c:3272
+#: src/readelf.c:3603
#, c-format
msgid ""
"\n"
@@ -5160,22 +5159,22 @@ msgstr[1] ""
" Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: "
"[%2u] '%s'\n"
-#: src/readelf.c:3294
+#: src/readelf.c:3625
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Longitud Número % of total Cobertura\n"
-#: src/readelf.c:3296
+#: src/readelf.c:3627
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3303
+#: src/readelf.c:3634
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3316
+#: src/readelf.c:3647
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -5184,37 +5183,37 @@ msgstr ""
" Número promedio de pruebas: búsqueda exitosa: %f\n"
" búsqueda sin éxito: %f\n"
-#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464
+#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795
#, 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:3342
+#: src/readelf.c:3673
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3371
+#: src/readelf.c:3702
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3406
+#: src/readelf.c:3737
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3437
+#: src/readelf.c:3768
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3473
+#: src/readelf.c:3804
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:3539
+#: src/readelf.c:3870
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -5224,7 +5223,7 @@ msgstr ""
" Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo "
"cambio de dispersión: %u\n"
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -5241,7 +5240,7 @@ msgstr[1] ""
"Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> "
"contiene entradas %d:\n"
-#: src/readelf.c:3638
+#: src/readelf.c:3969
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -5249,7 +5248,7 @@ msgstr ""
" Biblioteca Marca de tiempo Indicadores "
"de versión de suma de verificación"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -5260,107 +5259,107 @@ msgstr ""
"Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con "
"desplazamiento %#0<PRIx64>:\n"
-#: src/readelf.c:3715
+#: src/readelf.c:4046
msgid " Owner Size\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:3739
+#: src/readelf.c:4070
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3778
+#: src/readelf.c:4109
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3783
+#: src/readelf.c:4114
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " File: %11<PRIu32>\n"
-#: src/readelf.c:3833
+#: src/readelf.c:4164
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3836
+#: src/readelf.c:4167
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3839
+#: src/readelf.c:4170
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3849
+#: src/readelf.c:4180
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3852
+#: src/readelf.c:4183
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3890
+#: src/readelf.c:4221
#, fuzzy
msgid "Couldn't get data from section"
msgstr "No se puede obtener encabezamiento de sección 0th: %s"
-#: src/readelf.c:3955
+#: src/readelf.c:4286
#, fuzzy
msgid "sprintf failure"
msgstr "mprotect falló"
-#: src/readelf.c:4439
+#: src/readelf.c:4770
msgid "empty block"
msgstr "bloque vacío"
-#: src/readelf.c:4442
+#: src/readelf.c:4773
#, c-format
msgid "%zu byte block:"
msgstr "bloque de byte %zu:"
-#: src/readelf.c:4920
+#: src/readelf.c:5251
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:5080
+#: src/readelf.c:5423
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:5087
+#: src/readelf.c:5430
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> utilizado con offsetr de diferente tamaño"
-#: src/readelf.c:5094
+#: src/readelf.c:5437
#, fuzzy, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> utilizado con direcciones de diferente tamaño"
-#: src/readelf.c:5101
+#: src/readelf.c:5444
#, 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:5201
+#: src/readelf.c:5544
#, 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:5209
+#: src/readelf.c:5552
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <MATERIAL INUTIL NO UTILIZADO> ... %<PRIu64> bytes ...\n"
-#: src/readelf.c:5315
+#: src/readelf.c:5658
#, c-format
msgid ""
"\n"
@@ -5371,7 +5370,7 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [ Código]\n"
-#: src/readelf.c:5323
+#: src/readelf.c:5666
#, c-format
msgid ""
"\n"
@@ -5380,20 +5379,20 @@ msgstr ""
"\n"
"Sección de abreviatura en compensación %<PRIu64>:\n"
-#: src/readelf.c:5336
+#: src/readelf.c:5679
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** error en lectura de abreviatura: %s\n"
-#: src/readelf.c:5352
+#: src/readelf.c:5695
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n"
-#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224
-#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829
-#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627
-#: src/readelf.c:10698
+#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567
+#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172
+#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970
+#: src/readelf.c:11041
#, c-format
msgid ""
"\n"
@@ -5402,47 +5401,47 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397
+#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410
+#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419
+#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429
+#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820
+#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163
#, fuzzy, c-format
msgid "Unknown version"
msgstr "versión desconocida"
-#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424
+#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "no hay valor de dirección"
-#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434
+#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5609
+#: src/readelf.c:5952
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "no se ha podido obtener contenido de .debug_aranges: %s"
-#: src/readelf.c:5624
+#: src/readelf.c:5967
#, c-format
msgid ""
"\n"
@@ -5457,12 +5456,12 @@ msgstr[1] ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n"
-#: src/readelf.c:5655
+#: src/readelf.c:5998
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5657
+#: src/readelf.c:6000
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5470,7 +5469,7 @@ msgstr ""
" Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5695 src/readelf.c:8638
+#: src/readelf.c:6038 src/readelf.c:8981
#, fuzzy, c-format
msgid ""
"\n"
@@ -5479,140 +5478,140 @@ msgstr ""
"\n"
"Tabla en compensación %Zu:\n"
-#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649
-#: src/readelf.c:9378
+#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992
+#: src/readelf.c:9721
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "Datos inválidos en sección [%zu] '%s'"
-#: src/readelf.c:5715
+#: src/readelf.c:6058
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5727
+#: src/readelf.c:6070
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5731
+#: src/readelf.c:6074
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5742
+#: src/readelf.c:6085
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5748
+#: src/readelf.c:6091
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5759
+#: src/readelf.c:6102
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:5814
+#: src/readelf.c:6157
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5876 src/readelf.c:9384
+#: src/readelf.c:6219 src/readelf.c:9727
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:5931 src/readelf.c:9439
+#: src/readelf.c:6274 src/readelf.c:9782
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:5947 src/readelf.c:9455
+#: src/readelf.c:6290 src/readelf.c:9798
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5949 src/readelf.c:9457
+#: src/readelf.c:6292 src/readelf.c:9800
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5955 src/readelf.c:9463
+#: src/readelf.c:6298 src/readelf.c:9806
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5966 src/readelf.c:9474
+#: src/readelf.c:6309 src/readelf.c:9817
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5970 src/readelf.c:9478
+#: src/readelf.c:6313 src/readelf.c:9821
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:6022
+#: src/readelf.c:6365
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "datos inválidos"
-#: src/readelf.c:6207 src/readelf.c:9813
+#: src/readelf.c:6550 src/readelf.c:10156
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:6255 src/readelf.c:9862
+#: src/readelf.c:6598 src/readelf.c:10205
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:6257 src/readelf.c:9864
+#: src/readelf.c:6600 src/readelf.c:10207
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916
+#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6291 src/readelf.c:10000
+#: src/readelf.c:6634 src/readelf.c:10343
#, fuzzy
msgid "base address"
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:6301 src/readelf.c:10010
+#: src/readelf.c:6644 src/readelf.c:10353
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] lista vacía\n"
-#: src/readelf.c:6565
+#: src/readelf.c:6908
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:6822
+#: src/readelf.c:7165
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:6846
+#: src/readelf.c:7189
#, c-format
msgid ""
"\n"
@@ -5622,7 +5621,7 @@ msgstr ""
"Sección de información de marco de llamada [%2zu] '%s' en compensación "
"%#<PRIx64>:\n"
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
@@ -5631,65 +5630,65 @@ msgstr ""
"\n"
" [%6tx] Terminator cero\n"
-#: src/readelf.c:7000 src/readelf.c:7154
+#: src/readelf.c:7343 src/readelf.c:7497
#, c-format
msgid "invalid augmentation length"
msgstr "longitud de aumento inválida"
-#: src/readelf.c:7015
+#: src/readelf.c:7358
msgid "FDE address encoding: "
msgstr "Codificación de dirección FDE:"
-#: src/readelf.c:7021
+#: src/readelf.c:7364
msgid "LSDA pointer encoding: "
msgstr "Codificación de puntero LSDA:"
-#: src/readelf.c:7131
+#: src/readelf.c:7474
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:7138
+#: src/readelf.c:7481
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:7175
+#: src/readelf.c:7518
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr "Puntero %-26sLSDA: %#<PRIx64>\n"
-#: src/readelf.c:7260
+#: src/readelf.c:7603
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "No se puede obtener código de atributo: %s"
-#: src/readelf.c:7270
+#: src/readelf.c:7613
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "No se puede obtener forma de atributo: %s"
-#: src/readelf.c:7292
+#: src/readelf.c:7635
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "No se puede obtener valor: %s"
-#: src/readelf.c:7622
+#: src/readelf.c:7965
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "Archivo inválido"
-#: src/readelf.c:7626
+#: src/readelf.c:7969
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:7630
+#: src/readelf.c:7973
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "no se puede leer encabezamiento ELF: %s"
-#: src/readelf.c:7952
+#: src/readelf.c:8295
#, c-format
msgid ""
"\n"
@@ -5700,12 +5699,12 @@ msgstr ""
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:8002
+#: src/readelf.c:8345
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:8022
+#: src/readelf.c:8365
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5718,7 +5717,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:8034
+#: src/readelf.c:8377
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5729,39 +5728,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:8044 src/readelf.c:8205
+#: src/readelf.c:8387 src/readelf.c:8548
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:8071
+#: src/readelf.c:8414
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:8100
+#: src/readelf.c:8443
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "no se puede obtener DIE en compensación: %s"
-#: src/readelf.c:8109
+#: src/readelf.c:8452
#, 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:8145
+#: src/readelf.c:8488
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "No se puede obtener próximo DIE: %s\n"
-#: src/readelf.c:8153
+#: src/readelf.c:8496
#, c-format
msgid "cannot get next DIE: %s"
msgstr "No se puede obtener próximo DIE: %s"
-#: src/readelf.c:8197
+#: src/readelf.c:8540
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5772,7 +5771,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:8249
+#: src/readelf.c:8592
#, fuzzy, c-format
msgid ""
"\n"
@@ -5782,13 +5781,13 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n"
-#: src/readelf.c:8581
+#: src/readelf.c:8924
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "Forma %<PRIx64> desconocida"
#. Print what we got so far.
-#: src/readelf.c:8729
+#: src/readelf.c:9072
#, fuzzy, c-format
msgid ""
"\n"
@@ -5819,34 +5818,34 @@ msgstr ""
"\n"
"Códigos operativos:\n"
-#: src/readelf.c:8751
+#: src/readelf.c:9094
#, 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:8759
+#: src/readelf.c:9102
#, fuzzy, c-format
msgid "cannot handle address size: %u\n"
msgstr "no hay valor de dirección"
-#: src/readelf.c:8767
+#: src/readelf.c:9110
#, fuzzy, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "No se puede encontrar la sección: %s"
-#: src/readelf.c:8777
+#: src/readelf.c:9120
#, 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:8792
+#: src/readelf.c:9135
#, 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:8803
+#: src/readelf.c:9146
msgid ""
"\n"
"Directory table:"
@@ -5854,12 +5853,12 @@ msgstr ""
"\n"
"Tabla de Directorio:"
-#: src/readelf.c:8809 src/readelf.c:8886
+#: src/readelf.c:9152 src/readelf.c:9229
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8880
+#: src/readelf.c:9223
#, fuzzy
msgid ""
"\n"
@@ -5868,7 +5867,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:8941
+#: src/readelf.c:9284
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5876,7 +5875,7 @@ msgstr ""
"Tabla de nombre de archivo:\n"
" Directorio de entrada Tiempo Tamaño Nombre"
-#: src/readelf.c:8987
+#: src/readelf.c:9330
#, fuzzy
msgid ""
"\n"
@@ -5885,7 +5884,7 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5893,132 +5892,132 @@ msgstr ""
"\n"
" Declaraciones de número de Línea:"
-#: src/readelf.c:9006
+#: src/readelf.c:9349
#, 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:9040
+#: src/readelf.c:9383
#, 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:9044
+#: src/readelf.c:9387
#, 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:9047
+#: src/readelf.c:9390
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:9065
+#: src/readelf.c:9408
#, c-format
msgid " extended opcode %u: "
msgstr " Código operativo extendido %u: "
-#: src/readelf.c:9070
+#: src/readelf.c:9413
#, fuzzy
msgid " end of sequence"
msgstr "Fin de secuencia"
-#: src/readelf.c:9088
+#: src/readelf.c:9431
#, fuzzy, c-format
msgid " set address to "
msgstr "Establecer dirección a %s\n"
-#: src/readelf.c:9116
+#: src/readelf.c:9459
#, fuzzy, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
"definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, "
"nombre=%s\n"
-#: src/readelf.c:9130
+#: src/readelf.c:9473
#, c-format
msgid " set discriminator to %u\n"
msgstr " establecer discriminador a %u\n"
-#: src/readelf.c:9157
+#: src/readelf.c:9500
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:9181
+#: src/readelf.c:9524
#, 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:9188
+#: src/readelf.c:9531
#, fuzzy
msgid " unknown opcode"
msgstr "código operativo desconocido "
#. Takes no argument.
-#: src/readelf.c:9200
+#: src/readelf.c:9543
msgid " copy"
msgstr "Copiar"
-#: src/readelf.c:9211
+#: src/readelf.c:9554
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "Dirección de avance por %u a %s\n"
-#: src/readelf.c:9215 src/readelf.c:9276
+#: src/readelf.c:9558 src/readelf.c:9619
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:9227
+#: src/readelf.c:9570
#, 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:9237
+#: src/readelf.c:9580
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " establecer archivo a %<PRIu64>\n"
-#: src/readelf.c:9248
+#: src/readelf.c:9591
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " Establecer columna a %<PRIu64>\n"
-#: src/readelf.c:9255
+#: src/readelf.c:9598
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr "Establecer '%s' a %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:9261
+#: src/readelf.c:9604
msgid " set basic block flag"
msgstr "Establecer bandera de bloque básico"
-#: src/readelf.c:9272
+#: src/readelf.c:9615
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "Dirección de avance por constante %u a %s\n"
-#: src/readelf.c:9292
+#: src/readelf.c:9635
#, 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:9302
+#: src/readelf.c:9645
msgid " set prologue end flag"
msgstr " Establecer bandera prologue_end"
#. Takes no argument.
-#: src/readelf.c:9307
+#: src/readelf.c:9650
msgid " set epilogue begin flag"
msgstr " Establecer bandera epilogue_begin"
-#: src/readelf.c:9317
+#: src/readelf.c:9660
#, c-format
msgid " set isa to %u\n"
msgstr " establecer isa para %u\n"
@@ -6026,95 +6025,95 @@ 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:9326
+#: src/readelf.c:9669
#, 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:9527
+#: src/readelf.c:9870
#, fuzzy, c-format
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:9567
+#: src/readelf.c:9910
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "datos inválidos"
-#: src/readelf.c:10037 src/readelf.c:11082
+#: src/readelf.c:10380 src/readelf.c:11425
msgid " <INVALID DATA>\n"
msgstr " <DATOS INVÃLIDOS>\n"
-#: src/readelf.c:10168
+#: src/readelf.c:10511
#, 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:10191
+#: src/readelf.c:10534
#, 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:10286
+#: src/readelf.c:10629
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Propietario Tamaño\n"
-#: src/readelf.c:10298
+#: src/readelf.c:10641
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10304 src/readelf.c:11202
+#: src/readelf.c:10647 src/readelf.c:11546
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:10311
+#: src/readelf.c:10654
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Dirección de punto de entrada: %#<PRIx64>\n"
-#: src/readelf.c:10340
+#: src/readelf.c:10683
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10348
+#: src/readelf.c:10691
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:10373
+#: src/readelf.c:10716
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " opcódigo con parámetro %<PRIu8> desconocido:"
-#: src/readelf.c:10380
+#: src/readelf.c:10723
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10392
+#: src/readelf.c:10735
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] argumento %hhu \n"
-#: src/readelf.c:10407
+#: src/readelf.c:10750
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10608
+#: src/readelf.c:10951
#, 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:10663
+#: src/readelf.c:11006
#, c-format
msgid ""
"\n"
@@ -6126,37 +6125,37 @@ msgstr ""
" %*s String\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10668
+#: src/readelf.c:11011
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:11021
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** error en lectura de cadenas: %s\n"
-#: src/readelf.c:10800
+#: src/readelf.c:11143
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10802
+#: src/readelf.c:11145
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10816
+#: src/readelf.c:11159
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10825
+#: src/readelf.c:11168
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:10879
+#: src/readelf.c:11222
#, c-format
msgid ""
"\n"
@@ -6165,7 +6164,7 @@ msgstr ""
"\n"
"Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
@@ -6174,22 +6173,22 @@ msgstr ""
"\n"
"Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:11004
+#: src/readelf.c:11347
#, c-format
msgid " LPStart encoding: %#x "
msgstr "Codificación LPStart: %#x "
-#: src/readelf.c:11016
+#: src/readelf.c:11359
#, c-format
msgid " TType encoding: %#x "
msgstr "Codificación TType: %#x "
-#: src/readelf.c:11033
+#: src/readelf.c:11376
#, c-format
msgid " Call site encoding: %#x "
msgstr "Codificación de sitio de llamada: %#x "
-#: src/readelf.c:11048
+#: src/readelf.c:11391
msgid ""
"\n"
" Call site table:"
@@ -6197,7 +6196,7 @@ msgstr ""
"\n"
" Tabla de sitio de llamada:"
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6210,12 +6209,12 @@ msgstr ""
" Landing pad: %#<PRIx64>\n"
" Action: %u\n"
-#: src/readelf.c:11137
+#: src/readelf.c:11480
#, c-format
msgid "invalid TType encoding"
msgstr "Codificación TType inválida"
-#: src/readelf.c:11164
+#: src/readelf.c:11507
#, fuzzy, c-format
msgid ""
"\n"
@@ -6224,37 +6223,42 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11193
+#: src/readelf.c:11536
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:11211
+#: src/readelf.c:11555
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:11218
+#: src/readelf.c:11562
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:11225
+#: src/readelf.c:11569
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:11232
+#: src/readelf.c:11576
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (compensación: %#<PRIx64>)"
-#: src/readelf.c:11239
+#: src/readelf.c:11586
+#, fuzzy, c-format
+msgid " shortcut offset: %#<PRIx32>\n"
+msgstr " (fin de compensación: %#<PRIx64>)"
+
+#: src/readelf.c:11594
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (fin de compensación: %#<PRIx64>)"
-#: src/readelf.c:11253
+#: src/readelf.c:11608
#, fuzzy, c-format
msgid ""
"\n"
@@ -6263,7 +6267,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11278
+#: src/readelf.c:11633
#, fuzzy, c-format
msgid ""
"\n"
@@ -6272,7 +6276,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11307
+#: src/readelf.c:11662
#, fuzzy, c-format
msgid ""
"\n"
@@ -6281,7 +6285,7 @@ msgstr ""
"\n"
"Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entrada %zu:\n"
-#: src/readelf.c:11339
+#: src/readelf.c:11705
#, fuzzy, c-format
msgid ""
"\n"
@@ -6290,18 +6294,37 @@ msgstr ""
"\n"
"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
-#: src/readelf.c:11477
+#: src/readelf.c:11790
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Shortcut table at offset %#<PRIx32> contains %zu slots:\n"
+msgstr ""
+"\n"
+"Tabla de símbolos inválida en compensación %#0<PRIx64>\n"
+
+#: src/readelf.c:11802
+#, c-format
+msgid "Language of main: %s\n"
+msgstr ""
+
+#: src/readelf.c:11803
+#, c-format
+msgid "Name of main: "
+msgstr ""
+
+#: src/readelf.c:11886
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "no se puede depurar descriptor de contexto: %s"
-#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573
-#: src/readelf.c:12630
+#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982
+#: src/readelf.c:13039
#, c-format
msgid "cannot convert core note data: %s"
msgstr "no es posible convertir datos de la nota principal: %s"
-#: src/readelf.c:12207
+#: src/readelf.c:12616
#, c-format
msgid ""
"\n"
@@ -6310,21 +6333,21 @@ msgstr ""
"\n"
"%*s... <repeats %u more times> ..."
-#: src/readelf.c:12709
+#: src/readelf.c:13118
msgid " Owner Data size Type\n"
msgstr " Owner Data size Type\n"
-#: src/readelf.c:12737
+#: src/readelf.c:13146
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12789
+#: src/readelf.c:13198
#, 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:12822
+#: src/readelf.c:13231
#, c-format
msgid ""
"\n"
@@ -6333,7 +6356,7 @@ msgstr ""
"\n"
"Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12845
+#: src/readelf.c:13254
#, c-format
msgid ""
"\n"
@@ -6342,7 +6365,7 @@ msgstr ""
"\n"
"Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n"
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, fuzzy, c-format
msgid ""
"\n"
@@ -6351,12 +6374,12 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12919 src/readelf.c:12970
+#: src/readelf.c:13328 src/readelf.c:13379
#, 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:12924
+#: src/readelf.c:13333
#, fuzzy, c-format
msgid ""
"\n"
@@ -6366,7 +6389,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12929
+#: src/readelf.c:13338
#, fuzzy, c-format
msgid ""
"\n"
@@ -6377,7 +6400,7 @@ msgstr ""
"Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12943
+#: src/readelf.c:13352
#, fuzzy, c-format
msgid ""
"\n"
@@ -6386,7 +6409,7 @@ msgstr ""
"\n"
"Sección [%Zu] '%s' no tiene datos para volcar.\n"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, fuzzy, c-format
msgid ""
"\n"
@@ -6396,7 +6419,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12980
+#: src/readelf.c:13389
#, fuzzy, c-format
msgid ""
"\n"
@@ -6407,7 +6430,7 @@ msgstr ""
"Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación "
"%#0<PRIx64>:\n"
-#: src/readelf.c:13028
+#: src/readelf.c:13437
#, c-format
msgid ""
"\n"
@@ -6416,7 +6439,7 @@ msgstr ""
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6425,12 +6448,12 @@ msgstr ""
"\n"
"sección '%s' no existe"
-#: src/readelf.c:13113
+#: src/readelf.c:13522
#, 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:13116
+#: src/readelf.c:13525
#, c-format
msgid ""
"\n"
@@ -6439,7 +6462,7 @@ msgstr ""
"\n"
"Archivo '%s' no tiene índice de símbolo\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, fuzzy, c-format
msgid ""
"\n"
@@ -6448,12 +6471,12 @@ msgstr ""
"\n"
"Ãndice de archivo '%s' tiene %Zu entradas:\n"
-#: src/readelf.c:13138
+#: src/readelf.c:13547
#, 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:13143
+#: src/readelf.c:13552
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Miembro de archivo contiene '%s':\n"
@@ -6938,7 +6961,7 @@ msgstr "%s: error al crear encabezamiento ELF: %s"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:1712 src/strip.c:2553
+#: src/strip.c:1712 src/strip.c:2552
#, fuzzy, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
@@ -6973,7 +6996,7 @@ msgstr "al crear tabla de cadenas de encabezamiento de sección: %s"
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2469 src/strip.c:2577
+#: src/strip.c:2469 src/strip.c:2574
#, c-format
msgid "while writing '%s': %s"
msgstr "al escribir '%s': %s"
@@ -6993,22 +7016,22 @@ msgstr "al computar la suma de verificación para información de depuración"
msgid "%s: error while creating ELF header: %s"
msgstr "%s: error al crear encabezamiento ELF: %s"
-#: src/strip.c:2562
+#: src/strip.c:2560
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: error al leer el fichero: %s"
-#: src/strip.c:2602 src/strip.c:2622
+#: src/strip.c:2599 src/strip.c:2619
#, c-format
msgid "while writing '%s'"
msgstr "al escribir '%s'"
-#: src/strip.c:2659 src/strip.c:2666
+#: src/strip.c:2656 src/strip.c:2663
#, c-format
msgid "error while finishing '%s': %s"
msgstr "Error al terminar '%s': %s"
-#: src/strip.c:2683 src/strip.c:2759
+#: src/strip.c:2680 src/strip.c:2756
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "no es posible establecer acceso y fecha de modificación de '%s'"
@@ -7494,7 +7517,7 @@ msgid ""
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr ""
@@ -7507,6 +7530,12 @@ msgstr "También mostrar nombres de función"
msgid "Show instances of inlined functions"
msgstr ""
+#, 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"
+
#, fuzzy, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "no se pueden obtener datos de sección: %s"
diff --git a/po/ja.po b/po/ja.po
index 9e4e5546..bca8f29f 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-03-03 16:09+0100\n"
+"POT-Creation-Date: 2023-11-03 17:36+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"
@@ -42,7 +42,7 @@ msgid ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
-#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202
#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
@@ -525,7 +525,7 @@ msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãŒã‚ã‚Šã¾ã›ã‚“"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
+#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<ä¸æ˜Ž>"
@@ -619,7 +619,7 @@ msgstr "ソース演算å­ã®å¤§ãã•ãŒç„¡åŠ¹ã§ã™"
msgid "invalid size of destination operand"
msgstr "宛先演算å­ã®å¤§ãã•ãŒç„¡åŠ¹ã§ã™"
-#: libelf/elf_error.c:86 src/readelf.c:6415
+#: libelf/elf_error.c:86 src/readelf.c:6758
#, c-format
msgid "invalid encoding"
msgstr "無効ãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã™"
@@ -704,8 +704,8 @@ msgstr "データ/scnã®ä¸æ•´åˆã§ã™"
msgid "invalid section header"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã§ã™"
-#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899
-#: src/readelf.c:11000 src/readelf.c:11188
+#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242
+#: src/readelf.c:11343 src/readelf.c:11531
#, c-format
msgid "invalid data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿ã§ã™"
@@ -1357,8 +1357,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr "ã„ãã¤ã‹ã®ã‚¨ãƒ©ãƒ¼å‡ºåŠ›ã‚’ 抑制ã™ã‚‹ ( --verbose ã®å対)"
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76
-#: src/readelf.c:160
+#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77
+#: src/readelf.c:161
msgid "FILE..."
msgstr ""
@@ -1646,21 +1646,21 @@ msgid "unknown compression type '%s'"
msgstr "ä¸æ˜Žãªåœ§ç¸®ã‚¿ã‚¤ãƒ— '%s'"
#. We need at least one input file.
-#: src/elfcompress.c:162 src/elfcompress.c:1444
+#: src/elfcompress.c:162 src/elfcompress.c:1447
#, c-format
msgid "No input file given"
msgstr "入力ファイルãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
-#: src/elfcompress.c:168 src/elfcompress.c:1448
+#: src/elfcompress.c:168 src/elfcompress.c:1451
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "'-o' ã¨ä¸€ç·’ã®å ´åˆã¯å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¯ 1 ã¤ã—ã‹èªã‚られã¾ã›ã‚“"
-#: src/elfcompress.c:1405
+#: src/elfcompress.c:1408
msgid "Place (de)compressed output into FILE"
msgstr "圧縮(展開)ã—ãŸå‡ºåŠ›ã‚’ FILE ã«ç½®ã"
-#: src/elfcompress.c:1408
+#: src/elfcompress.c:1411
msgid ""
"What type of compression to apply. TYPE can be 'none' (decompress), "
"'zlib' (ELF ZLIB compression, the default, 'zlib-gabi' is an alias), 'zlib-"
@@ -1668,7 +1668,7 @@ msgid ""
"compression)"
msgstr ""
-#: src/elfcompress.c:1412
+#: src/elfcompress.c:1415
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
@@ -1676,41 +1676,41 @@ msgstr ""
"圧縮(展開)ã™ã‚‹ セクションå。 SECTION 㯠拡張 ワイルドカード パターン(デ"
"フォルト㧠'.?(z)debug*')"
-#: src/elfcompress.c:1415
+#: src/elfcompress.c:1418
msgid "Print a message for each section being (de)compressed"
msgstr "圧縮(展開) ã•ã‚Œã¦ã„ã‚‹ å„セクション ã«å¯¾ã™ã‚‹ メッセージを 表示"
-#: src/elfcompress.c:1418
+#: src/elfcompress.c:1421
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:1421 src/strip.c:92
+#: src/elfcompress.c:1424 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr "å°‘ã—壊れ㟠ELF ファイルをå–り扱ã†ãŸã‚ã«ãƒ«ãƒ¼ãƒ«ã‚’å°‘ã—ç·©å’Œã™ã‚‹"
-#: src/elfcompress.c:1424
+#: src/elfcompress.c:1427
msgid "Be silent when a section cannot be compressed"
msgstr "セクションを圧縮ã§ããªã„ã¨ãã«é™ã‹ã«ã™ã‚‹"
-#: src/elfcompress.c:1434
+#: src/elfcompress.c:1437
msgid "Compress or decompress sections in an ELF file."
msgstr "ELF ファイル㮠セクションを 圧縮 ã¾ãŸã¯ 展開ã™ã‚‹"
-#: src/elflint.c:62
+#: src/elflint.c:63
msgid "Be extremely strict, flag level 2 features."
msgstr "éžå¸¸ã«åŽ³æ ¼ã«ã™ã‚‹ã€‚ フラグレベル 2 機能。"
-#: src/elflint.c:63
+#: src/elflint.c:64
msgid "Do not print anything if successful"
msgstr "æˆåŠŸã—ãŸå ´åˆã¯ä½•ã‚‚表示ã—ãªã„"
-#: src/elflint.c:64
+#: src/elflint.c:65
msgid "Binary is a separate debuginfo file"
msgstr "ãƒã‚¤ãƒŠãƒªãƒ¼ã¯åˆ¥ã® debuginfo ファイルã§ã™"
-#: src/elflint.c:66
+#: src/elflint.c:67
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1719,171 +1719,171 @@ msgstr ""
"ã‚‹"
#. Short description of program.
-#: src/elflint.c:72
+#: src/elflint.c:73
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr "ELF ファイル㌠gABI/psABI 仕様ã¸æº–æ‹ ã—ã¦ã„ã‚‹ã‹ã®åŽ³å¯†ãªãƒã‚§ãƒƒã‚¯ã€‚"
-#: src/elflint.c:153 src/readelf.c:391
+#: src/elflint.c:154 src/readelf.c:413
#, c-format
msgid "cannot open input file '%s'"
msgstr "入力ファイル '%s' ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/elflint.c:160
+#: src/elflint.c:161
#, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "'%s' ã«å¯¾ã™ã‚‹ Elf 記述å­ã‚’生æˆã§ãã¾ã›ã‚“: %s\n"
-#: src/elflint.c:179
+#: src/elflint.c:180
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/elflint.c:183
+#: src/elflint.c:184
msgid "No errors"
msgstr "エラーã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/elflint.c:218 src/readelf.c:603
+#: src/elflint.c:219 src/readelf.c:625
msgid "Missing file name.\n"
msgstr "ファイルåãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/elflint.c:283
+#: src/elflint.c:284
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr "sub-ELF 記述å­ã‚’解放ã—ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s\n"
#. We cannot do anything.
-#: src/elflint.c:291
+#: src/elflint.c:292
#, 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:358
#, 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:363
#, 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:367
#, 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:375
#, 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:381
#, 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:386
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] ãŒã‚¼ãƒ­ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:390
+#: src/elflint.c:391
#, c-format
msgid "unknown object file type %d\n"
msgstr "ä¸æ˜Žãªã‚ªãƒ–ジェクトファイルタイプ %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:398
#, c-format
msgid "unknown machine type %d\n"
msgstr "ä¸æ˜Žãªãƒžã‚·ãƒ³ã‚¿ã‚¤ãƒ— %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:402
#, c-format
msgid "unknown object file version\n"
msgstr "ä¸æ˜Žãªã‚ªãƒ–ジェクトファイルãƒãƒ¼ã‚¸ãƒ§ãƒ³\n"
-#: src/elflint.c:407
+#: src/elflint.c:408
#, c-format
msgid "invalid program header offset\n"
msgstr "ä¸å½“ãªãƒ—ログラムヘッダーオフセット\n"
-#: src/elflint.c:409
+#: src/elflint.c:410
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
"実行ファイル㨠DSO ã¯ãƒ—ログラムヘッダーオフセット㌠0 ã§ã‚ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“\n"
-#: src/elflint.c:413
+#: src/elflint.c:414
#, c-format
msgid "invalid number of program header entries\n"
msgstr "プログラムヘッダー項目数ã¨ã—ã¦ä¸å½“ãªæ•°\n"
-#: src/elflint.c:421
+#: src/elflint.c:422
#, c-format
msgid "invalid section header table offset\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ†ãƒ¼ãƒ–ルオフセット\n"
-#: src/elflint.c:424
+#: src/elflint.c:425
#, c-format
msgid "section header table must be present\n"
msgstr "セクションヘッダーテーブルãŒãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:438
+#: src/elflint.c:439
#, c-format
msgid "invalid number of section header table entries\n"
msgstr "セクションヘッダーテーブル項目数ã¨ã—ã¦ä¸å½“ãªæ•°\n"
-#: src/elflint.c:455
+#: src/elflint.c:456
#, c-format
msgid "invalid section header index\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:473
+#: src/elflint.c:474
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr ""
-#: src/elflint.c:487
+#: src/elflint.c:488
#, c-format
msgid "invalid number of program header table entries\n"
msgstr "プログラムヘッダー項目数ã¨ã—ã¦ä¸å½“ãªæ•°\n"
-#: src/elflint.c:504
+#: src/elflint.c:505
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr ""
-#: src/elflint.c:509
+#: src/elflint.c:510
#, c-format
msgid "invalid machine flags: %s\n"
msgstr "ä¸å½“ãªãƒžã‚·ãƒ³ãƒ•ãƒ©ã‚°: %s\n"
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:517 src/elflint.c:534
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr "ä¸å½“㪠ELF ヘッダーサイズ: %hd\n"
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:520 src/elflint.c:537
#, c-format
msgid "invalid program header size: %hd\n"
msgstr "ä¸å½“ãªãƒ—ログラムヘッダーサイズ: %hd\n"
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:523 src/elflint.c:540
#, c-format
msgid "invalid program header position or size\n"
msgstr "ä¸å½“ãªãƒ—ログラムヘッダーä½ç½®ã‹ã‚µã‚¤ã‚º\n"
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:526 src/elflint.c:543
#, c-format
msgid "invalid section header size: %hd\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ã‚µã‚¤ã‚º: %hd\n"
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:529 src/elflint.c:546
#, c-format
msgid "invalid section header position or size\n"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ä½ç½®ã‹ã‚µã‚¤ã‚º\n"
-#: src/elflint.c:590
+#: src/elflint.c:591
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1892,7 +1892,7 @@ msgstr ""
"セクション [%2d] '%s': SHF_GROUP フラグã®ã‚るセクションã«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ—ã®"
"一部分ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:594
+#: src/elflint.c:595
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
@@ -1900,14 +1900,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:4468
+#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610
+#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981
+#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511
#, 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:624 src/elflint.c:1699
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1916,7 +1916,7 @@ msgstr ""
"セクション [%2d] '%s': セクション [%2d] '%s' 用ã®æ–‡å­—列テーブルã¨ã—ã¦å‚ç…§ã•ã‚Œ"
"ã¦ã„ã¾ã™ãŒã€ã‚¿ã‚¤ãƒ—㌠SHT_STRTAB ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:646
+#: src/elflint.c:647
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1925,45 +1925,45 @@ msgstr ""
"セクション [%2d] '%s': シンボルテーブル㯠1 個を越ãˆã‚‹æ‹¡å¼µã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚»ã‚¯"
"ションをæŒã¦ã¾ã›ã‚“\n"
-#: src/elflint.c:658
+#: src/elflint.c:659
#, 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:663
#, 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:672
#, 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:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686
+#: src/elflint.c:689 src/elflint.c:692
#, 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:695
#, 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:705
#, 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:714
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr "セクション [%2d] '%s': シンボル %zu: ä¸å½“ãªåå‰ã®å€¤\n"
-#: src/elflint.c:728
+#: src/elflint.c:729
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -1972,7 +1972,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: 大ãã™ãŽã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã ãŒã€æ‹¡"
"張セクションインデックスセクションãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:734
+#: src/elflint.c:735
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -1982,29 +1982,29 @@ msgstr ""
"クス用ã«ä½¿ã‚れる XINDEX\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:747
#, 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:755
#, 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:761
#, 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:766
#, 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:774
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2013,7 +2013,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: COMMON ã¯ãƒªãƒ­ã‚±ãƒ¼ã‚¿ãƒ–ルファイル内ã®ã¿ã§"
"許ã•ã‚Œã¾ã™\n"
-#: src/elflint.c:777
+#: src/elflint.c:778
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
@@ -2021,7 +2021,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: ローカル㪠COMMON シンボルã¯æ„味ãŒã‚ã‚Šã¾"
"ã›ã‚“\n"
-#: src/elflint.c:781
+#: src/elflint.c:782
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
@@ -2029,12 +2029,12 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: COMMON セクションã®æ©Ÿèƒ½ã¯æ„味ãŒã‚ã‚Šã¾ã›"
"ã‚“\n"
-#: src/elflint.c:832
+#: src/elflint.c:833
#, 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:839 src/elflint.c:864 src/elflint.c:913
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2043,7 +2043,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu ã¯å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' ã¨ã¯å®Œ"
"å…¨ã«ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:847
+#: src/elflint.c:848
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2052,7 +2052,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' 㯠"
"SHF_TLS フラグãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:857 src/elflint.c:905
+#: src/elflint.c:858 src/elflint.c:906
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2061,7 +2061,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: st_value å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] "
"'%s' ã®å¢ƒç•Œå¤–\n"
-#: src/elflint.c:884
+#: src/elflint.c:885
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2070,7 +2070,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目ãŒãªã„ TLS ã‚·"
"ンボル\n"
-#: src/elflint.c:890
+#: src/elflint.c:891
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2079,7 +2079,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: TLS プログラムヘッダー項目ãŒãªã„ TLS ã‚·"
"ンボル\n"
-#: src/elflint.c:898
+#: src/elflint.c:899
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2088,7 +2088,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' ã®"
"st_value ä¸è¶³\n"
-#: src/elflint.c:925
+#: src/elflint.c:926
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2097,7 +2097,7 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: sh_info ã«è¨˜è¿°ã•ã‚ŒãŸç¯„囲外ã®ãƒ­ãƒ¼ã‚«ãƒ«ã‚·ãƒ³"
"ボル\n"
-#: src/elflint.c:932
+#: src/elflint.c:933
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2106,12 +2106,12 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: sh_info ã«è¨˜è¿°ã•ã‚ŒãŸç¯„囲外ã®éžãƒ­ãƒ¼ã‚«ãƒ«ã‚·"
"ンボル\n"
-#: src/elflint.c:939
+#: src/elflint.c:940
#, 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:990
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2120,7 +2120,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルãŒé–“é•ã£ãŸã‚»ã‚¯ã‚·ãƒ§ãƒ³ "
"[%2d] ã‚’å‚ç…§ã—ã¦ã„ã¾ã™\n"
-#: src/elflint.c:996
+#: src/elflint.c:997
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2132,7 +2132,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:1013
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2141,7 +2141,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボル値 %#<PRIx64> 㯠%s ã®ã‚»"
"クションアドレス %#<PRIx64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1019
+#: src/elflint.c:1020
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2150,7 +2150,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルサイズ %<PRIu64> 㯠%s "
"ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚µã‚¤ã‚º %<PRIu64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1027
+#: src/elflint.c:1028
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2159,7 +2159,7 @@ msgstr ""
"セクション [%2d] '%s': _GLOBAL_OFFSET_TABLE_ シンボルã¯ã‚ã‚Šã¾ã™ãŒã€.got セク"
"ションãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1044
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2168,7 +2168,7 @@ msgstr ""
"セクション [%2d] '%s': _DYNAMIC_ シンボル値 %#<PRIx64> ã¯å‹•çš„セグメントアドレ"
"ス %#<PRIx64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1051
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2177,7 +2177,7 @@ msgstr ""
"セクション [%2d] '%s': _DYNAMIC シンボルサイズ %<PRIu64> ã¯å‹•çš„セグメントサイ"
"ズ %<PRIu64> ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1064
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2186,29 +2186,29 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: çœç•¥ä»¥å¤–ã®å¯è¦–性をæŒã£ãŸå‹•çš„シンボルテー"
"ブル中ã®ã‚·ãƒ³ãƒœãƒ«\n"
-#: src/elflint.c:1067
+#: src/elflint.c:1068
#, 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:1106
#, fuzzy, c-format
msgid "section [%2d] '%s': cannot get section data.\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:1121
+#: src/elflint.c:1122
#, 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:1133 src/elflint.c:1186
#, 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:1158 src/elflint.c:1211
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2217,7 +2217,7 @@ msgstr ""
"セクション [%2d] '%s': UT_RELOCOUNT ã§æŒ‡å®šã•ã‚ŒãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ %d 後ã®ç›¸å¯¾ãƒªãƒ­"
"ケーション\n"
-#: src/elflint.c:1163 src/elflint.c:1216
+#: src/elflint.c:1164 src/elflint.c:1217
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2226,52 +2226,46 @@ msgstr ""
"セクション [%2d] '%s': インデックス %zu ã§ã®éžç›¸å¯¾ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³; %d 相対リ"
"ロケーションã§æŒ‡å®šã•ã‚ŒãŸ DT_RELCOUNT\n"
-#: src/elflint.c:1175
+#: src/elflint.c:1176
#, 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:1259
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:1270
+#: src/elflint.c:1271
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr "セクション [%2d] '%s': ä¸å½“ãªå®›å…ˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚¿ã‚¤ãƒ—\n"
-#: src/elflint.c:1278
+#: src/elflint.c:1279
#, 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:1287
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': no relocations for merge-able string sections possible\n"
msgstr ""
"セクション [%2d] '%s': マージã§ãるセクションã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¯ä¸å¯èƒ½ã§ã™\n"
-#: src/elflint.c:1294
-#, 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:1365
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
"テキストリロケーションフラグãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€èª­è¾¼ã¿å°‚用セグメントãŒã‚ã‚Š"
"ã¾ã›ã‚“\n"
-#: src/elflint.c:1381
+#: src/elflint.c:1392
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr "セクション [%2d] '%s': リロケーション %zu: ä¸å½“ãªã‚¿ã‚¤ãƒ—\n"
-#: src/elflint.c:1389
+#: src/elflint.c:1400
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2280,13 +2274,13 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ç”¨ã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¿ã‚¤"
"プã¯ä¸å½“ã§ã™\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1408
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
msgstr ""
"セクション [%2d] '%s': リロケーション %zu: ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\n"
-#: src/elflint.c:1415
+#: src/elflint.c:1426
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2295,12 +2289,12 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: シンボル '_GLOBAL_OFFSET_TABLE_' "
"ã®ã¿ãŒ %s ã¨ä¸€ç·’ã«ä½¿ç”¨ã§ãã¾ã™\n"
-#: src/elflint.c:1432
+#: src/elflint.c:1443
#, 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:1458
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2309,7 +2303,7 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: タイプ %s ã®ã‚·ãƒ³ãƒœãƒ«ã«å¯¾ã™ã‚‹ã‚³ãƒ”ー"
"リロケーション\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1479
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2318,24 +2312,24 @@ msgstr ""
"セクション [%2d] '%s': リロケーション %zu: 読込ã¿å°‚用セクションãŒå¤‰æ›´ã•ã‚Œã¾ã—"
"ãŸãŒã€ãƒ†ã‚­ã‚¹ãƒˆãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ãƒ©ã‚°ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:1483
+#: src/elflint.c:1494
#, 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:1534 src/elflint.c:1585
#, c-format
msgid "section [%2d] '%s': cannot get relocation %zu: %s\n"
msgstr ""
-#: src/elflint.c:1650
+#: src/elflint.c:1687
#, c-format
msgid "more than one dynamic section present\n"
msgstr ""
-#: src/elflint.c:1668
+#: src/elflint.c:1705
#, fuzzy, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2344,427 +2338,427 @@ msgstr ""
"セクション [%2d] '%s': セクション [%2d] '%s' 用ã®æ–‡å­—列テーブルã¨ã—ã¦å‚ç…§ã•ã‚Œ"
"ã¦ã„ã¾ã™ãŒã€ã‚¿ã‚¤ãƒ—㌠SHT_STRTAB ã§ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/elflint.c:1676
+#: src/elflint.c:1713
#, 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:1718 src/elflint.c:2008
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr ""
-#: src/elflint.c:1691
+#: src/elflint.c:1728
#, c-format
msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n"
msgstr ""
-#: src/elflint.c:1699
+#: src/elflint.c:1736
#, c-format
msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n"
msgstr ""
-#: src/elflint.c:1706
+#: src/elflint.c:1743
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr ""
-#: src/elflint.c:1717
+#: src/elflint.c:1754
#, c-format
msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n"
msgstr ""
-#: src/elflint.c:1727
+#: src/elflint.c:1764
#, c-format
msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n"
msgstr ""
-#: src/elflint.c:1745
+#: src/elflint.c:1782
#, 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:1795
#, 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:1839
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
msgstr ""
-#: src/elflint.c:1816
+#: src/elflint.c:1854
#, 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:1874 src/elflint.c:1902
#, c-format
msgid "section [%2d] '%s': contains %s entry but not %s\n"
msgstr ""
-#: src/elflint.c:1848
+#: src/elflint.c:1886
#, c-format
msgid "section [%2d] '%s': mandatory tag %s not present\n"
msgstr ""
-#: src/elflint.c:1857
+#: src/elflint.c:1895
#, c-format
msgid "section [%2d] '%s': no hash section present\n"
msgstr ""
-#: src/elflint.c:1872 src/elflint.c:1879
+#: src/elflint.c:1910 src/elflint.c:1917
#, 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:1927 src/elflint.c:1931
#, c-format
msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n"
msgstr ""
-#: src/elflint.c:1899
+#: src/elflint.c:1937
#, 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:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960
#, c-format
msgid "section [%2d] '%s': %s tag missing in prelinked executable\n"
msgstr ""
-#: src/elflint.c:1934
+#: src/elflint.c:1972
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
msgstr ""
-#: src/elflint.c:1944
+#: src/elflint.c:1982
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
msgstr ""
-#: src/elflint.c:1948
+#: src/elflint.c:1986
#, 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:1991
#, c-format
msgid "cannot get data for symbol section\n"
msgstr ""
-#: src/elflint.c:1956
+#: src/elflint.c:1994
#, c-format
msgid "section [%2d] '%s': entry size does not match Elf32_Word\n"
msgstr ""
-#: src/elflint.c:1965
+#: src/elflint.c:2003
#, c-format
msgid "section [%2d] '%s': extended index table too small for symbol table\n"
msgstr ""
-#: src/elflint.c:1980
+#: src/elflint.c:2018
#, 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:2036
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr ""
-#: src/elflint.c:2010
+#: src/elflint.c:2048
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr ""
-#: src/elflint.c:2015
+#: src/elflint.c:2053
#, 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:2070 src/elflint.c:2127
#, 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:2084 src/elflint.c:2141
#, c-format
msgid "section [%2d] '%s': chain array too large\n"
msgstr ""
-#: src/elflint.c:2060 src/elflint.c:2117
+#: src/elflint.c:2098 src/elflint.c:2155
#, c-format
msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2070
+#: src/elflint.c:2108
#, c-format
msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2127
+#: src/elflint.c:2165
#, c-format
msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n"
msgstr ""
-#: src/elflint.c:2140
+#: src/elflint.c:2178
#, fuzzy, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:2152
+#: src/elflint.c:2190
#, 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:2206
#, 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:2215
#, c-format
msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n"
msgstr ""
-#: src/elflint.c:2211
+#: src/elflint.c:2249
#, 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:2270
#, 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:2283
#, 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:2292
#, 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:2322
#, c-format
msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n"
msgstr ""
-#: src/elflint.c:2289
+#: src/elflint.c:2327
#, 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:2333
#, c-format
msgid "section [%2d] '%s': bitmask does not match names in the hash table\n"
msgstr ""
-#: src/elflint.c:2308
+#: src/elflint.c:2346
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
-#: src/elflint.c:2326
+#: src/elflint.c:2364
#, c-format
msgid "section [%2d] '%s': hash table not for dynamic symbol table\n"
msgstr ""
-#: src/elflint.c:2330
+#: src/elflint.c:2368
#, 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:2378
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
msgstr ""
-#: src/elflint.c:2345
+#: src/elflint.c:2383
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr ""
-#: src/elflint.c:2350
+#: src/elflint.c:2388
#, 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:2437
#, 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:2461 src/elflint.c:2526 src/elflint.c:2561
#, 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:2482
#, 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:2493 src/elflint.c:2537 src/elflint.c:2574
#, fuzzy, c-format
msgid "hash section [%2zu] '%s' uses too much data\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:2470
+#: src/elflint.c:2508
#, 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:2595
#, 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:2605 src/elflint.c:2609
#, c-format
msgid "section [%2zu] '%s': reference to symbol index 0\n"
msgstr ""
-#: src/elflint.c:2578
+#: src/elflint.c:2616
#, 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:2628
#, 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:2644
#, c-format
msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n"
msgstr ""
-#: src/elflint.c:2626
+#: src/elflint.c:2664
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
msgstr ""
-#: src/elflint.c:2637
+#: src/elflint.c:2675
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
msgstr ""
-#: src/elflint.c:2642
+#: src/elflint.c:2680
#, c-format
msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n"
msgstr ""
-#: src/elflint.c:2648
+#: src/elflint.c:2686
#, c-format
msgid "section [%2d] '%s': invalid symbol index in sh_info\n"
msgstr ""
-#: src/elflint.c:2653
+#: src/elflint.c:2691
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr ""
-#: src/elflint.c:2660
+#: src/elflint.c:2698
#, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
msgstr ""
-#: src/elflint.c:2664
+#: src/elflint.c:2702
#, 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:2707
#, 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:2713
#, c-format
msgid "section [%2d] '%s': sh_flags not set correctly\n"
msgstr ""
-#: src/elflint.c:2681
+#: src/elflint.c:2719
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
msgstr ""
-#: src/elflint.c:2690
+#: src/elflint.c:2728
#, c-format
msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n"
msgstr ""
-#: src/elflint.c:2696
+#: src/elflint.c:2734
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
msgstr ""
-#: src/elflint.c:2704
+#: src/elflint.c:2742
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr ""
-#: src/elflint.c:2708
+#: src/elflint.c:2746
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
msgstr ""
-#: src/elflint.c:2719
+#: src/elflint.c:2757
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr ""
-#: src/elflint.c:2731
+#: src/elflint.c:2769
#, 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:2778
#, c-format
msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n"
msgstr ""
-#: src/elflint.c:2747
+#: src/elflint.c:2785
#, c-format
msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n"
msgstr ""
-#: src/elflint.c:2753
+#: src/elflint.c:2791
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2773,770 +2767,770 @@ msgstr ""
"セクション [%2d] '%s': シンボル %zu: å‚ç…§ã•ã‚Œã‚‹ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%2d] '%s' 㯠"
"SHF_TLS フラグãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: src/elflint.c:2760
+#: src/elflint.c:2798
#, c-format
msgid "section [%2d] '%s' is contained in more than one section group\n"
msgstr ""
-#: src/elflint.c:2957
+#: src/elflint.c:2995
#, 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:3007
#, 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:3023
#, c-format
msgid "section [%2d] '%s': symbol %d: cannot read version data\n"
msgstr ""
-#: src/elflint.c:3001
+#: src/elflint.c:3039
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n"
msgstr ""
-#: src/elflint.c:3009
+#: src/elflint.c:3047
#, c-format
msgid "section [%2d] '%s': symbol %d: local symbol with version\n"
msgstr ""
-#: src/elflint.c:3023
+#: src/elflint.c:3061
#, c-format
msgid "section [%2d] '%s': symbol %d: invalid version index %d\n"
msgstr ""
-#: src/elflint.c:3028
+#: src/elflint.c:3066
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
msgstr ""
-#: src/elflint.c:3038
+#: src/elflint.c:3076
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
msgstr ""
-#: src/elflint.c:3091
+#: src/elflint.c:3129
#, c-format
msgid "more than one version reference section present\n"
msgstr ""
-#: src/elflint.c:3099 src/elflint.c:3246
+#: src/elflint.c:3137 src/elflint.c:3284
#, 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:3162 src/elflint.c:3338
#, 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:3169 src/elflint.c:3345
#, c-format
msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n"
msgstr ""
-#: src/elflint.c:3141
+#: src/elflint.c:3179
#, c-format
msgid "section [%2d] '%s': entry %d has invalid file reference\n"
msgstr ""
-#: src/elflint.c:3149
+#: src/elflint.c:3187
#, c-format
msgid "section [%2d] '%s': entry %d references unknown dependency\n"
msgstr ""
-#: src/elflint.c:3161
+#: src/elflint.c:3199
#, c-format
msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3169
+#: src/elflint.c:3207
#, 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:3216
#, 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:3225
#, 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:3236
#, 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:3253 src/elflint.c:3429
#, 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:3261 src/elflint.c:3437
#, 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:3276
#, c-format
msgid "more than one version definition section present\n"
msgstr ""
-#: src/elflint.c:3285
+#: src/elflint.c:3323
#, c-format
msgid "section [%2d] '%s': more than one BASE definition\n"
msgstr ""
-#: src/elflint.c:3289
+#: src/elflint.c:3327
#, c-format
msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n"
msgstr ""
-#: src/elflint.c:3295
+#: src/elflint.c:3333
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr ""
-#: src/elflint.c:3322
+#: src/elflint.c:3360
#, c-format
msgid "section [%2d] '%s': entry %d has invalid name reference\n"
msgstr ""
-#: src/elflint.c:3329
+#: src/elflint.c:3367
#, c-format
msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n"
msgstr ""
-#: src/elflint.c:3337
+#: src/elflint.c:3375
#, c-format
msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n"
msgstr ""
-#: src/elflint.c:3357
+#: src/elflint.c:3395
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3374
+#: src/elflint.c:3412
#, c-format
msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n"
msgstr ""
-#: src/elflint.c:3407
+#: src/elflint.c:3445
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr ""
-#: src/elflint.c:3423
+#: src/elflint.c:3461
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr ""
-#: src/elflint.c:3448
+#: src/elflint.c:3486
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr ""
-#: src/elflint.c:3464
+#: src/elflint.c:3502
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr ""
-#: src/elflint.c:3475
+#: src/elflint.c:3513
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
-#: src/elflint.c:3484
+#: src/elflint.c:3522
#, c-format
msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
msgstr ""
-#: src/elflint.c:3496
+#: src/elflint.c:3534
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
msgstr ""
-#: src/elflint.c:3513
+#: src/elflint.c:3551
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
msgstr ""
-#: src/elflint.c:3522
+#: src/elflint.c:3560
#, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
msgstr ""
-#: src/elflint.c:3531
+#: src/elflint.c:3569
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
msgstr ""
-#: src/elflint.c:3546
+#: src/elflint.c:3584
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
msgstr ""
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3595
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
msgstr ""
-#: src/elflint.c:3578
+#: src/elflint.c:3616
#, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
msgstr ""
-#: src/elflint.c:3589
+#: src/elflint.c:3627
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
msgstr ""
-#: src/elflint.c:3602
+#: src/elflint.c:3640
#, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
msgstr ""
-#: src/elflint.c:3606
+#: src/elflint.c:3644
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:3616
+#: src/elflint.c:3654
#, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
msgstr ""
-#: src/elflint.c:3622
+#: src/elflint.c:3660
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
msgstr ""
-#: src/elflint.c:3719
+#: src/elflint.c:3758
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr ""
-#: src/elflint.c:3723
+#: src/elflint.c:3762
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr ""
-#: src/elflint.c:3725
+#: src/elflint.c:3764
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr ""
-#: src/elflint.c:3727
+#: src/elflint.c:3766
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr ""
-#: src/elflint.c:3729
+#: src/elflint.c:3768
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr ""
-#: src/elflint.c:3731
+#: src/elflint.c:3770
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr ""
-#: src/elflint.c:3733
+#: src/elflint.c:3772
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr ""
-#: src/elflint.c:3735
+#: src/elflint.c:3774
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr ""
-#: src/elflint.c:3738
+#: src/elflint.c:3777
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
"value\n"
msgstr ""
-#: src/elflint.c:3742
+#: src/elflint.c:3781
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in shstrndx\n"
msgstr ""
-#: src/elflint.c:3746
+#: src/elflint.c:3785
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
"overflow in phnum\n"
msgstr ""
-#: src/elflint.c:3764
+#: src/elflint.c:3803
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
msgstr ""
-#: src/elflint.c:3773
+#: src/elflint.c:3812
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr ""
-#: src/elflint.c:3800
+#: src/elflint.c:3839
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3817
+#: src/elflint.c:3856
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr ""
-#: src/elflint.c:3835
+#: src/elflint.c:3874
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
msgstr ""
-#: src/elflint.c:3852
+#: src/elflint.c:3891
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr ""
-#: src/elflint.c:3858 src/elflint.c:3890
+#: src/elflint.c:3897 src/elflint.c:3929
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
msgstr ""
-#: src/elflint.c:3863 src/elflint.c:3895
+#: src/elflint.c:3902 src/elflint.c:3934
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
"segments\n"
msgstr ""
-#: src/elflint.c:3871
+#: src/elflint.c:3910
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
msgstr ""
-#: src/elflint.c:3914
+#: src/elflint.c:3953
#, c-format
msgid "section [%2zu] '%s': size not multiple of entry size\n"
msgstr ""
-#: src/elflint.c:3919
+#: src/elflint.c:3958
#, c-format
msgid "cannot get section header\n"
msgstr ""
-#: src/elflint.c:3929
+#: src/elflint.c:3968
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr ""
-#: src/elflint.c:3949
+#: src/elflint.c:3988
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3959
+#: src/elflint.c:3998
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:3967
+#: src/elflint.c:4006
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
-#: src/elflint.c:3977
+#: src/elflint.c:4016
#, fuzzy, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:3982
+#: src/elflint.c:4021
#, fuzzy, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "セクション [%2d] '%s': セクションデータを得られã¾ã›ã‚“\n"
-#: src/elflint.c:3988
+#: src/elflint.c:4027
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr ""
-#: src/elflint.c:3994
+#: src/elflint.c:4033
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
-#: src/elflint.c:3999
+#: src/elflint.c:4038
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
-#: src/elflint.c:4006
+#: src/elflint.c:4045
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr ""
-#: src/elflint.c:4011
+#: src/elflint.c:4050
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
-#: src/elflint.c:4030
+#: src/elflint.c:4069
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr ""
-#: src/elflint.c:4039
+#: src/elflint.c:4078
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr ""
-#: src/elflint.c:4046
+#: src/elflint.c:4085
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr ""
-#: src/elflint.c:4077
+#: src/elflint.c:4116
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
"%d\n"
msgstr ""
-#: src/elflint.c:4087
+#: src/elflint.c:4126
#, 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:4113
+#: src/elflint.c:4152
#, 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:4124
+#: src/elflint.c:4163
#, 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:4135
+#: src/elflint.c:4174
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr ""
-#: src/elflint.c:4145
+#: src/elflint.c:4184
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
-#: src/elflint.c:4155
+#: src/elflint.c:4194
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
msgstr ""
-#: src/elflint.c:4161
+#: src/elflint.c:4200
#, 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:4169
+#: src/elflint.c:4208
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
msgstr ""
-#: src/elflint.c:4220
+#: src/elflint.c:4263
#, c-format
msgid "more than one version symbol table present\n"
msgstr ""
-#: src/elflint.c:4243
+#: src/elflint.c:4286
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr ""
-#: src/elflint.c:4254
+#: src/elflint.c:4297
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
msgstr ""
-#: src/elflint.c:4260
+#: src/elflint.c:4303
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
-#: src/elflint.c:4271
+#: src/elflint.c:4314
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
"exist\n"
msgstr ""
-#: src/elflint.c:4284
+#: src/elflint.c:4327
#, c-format
msgid "duplicate version index %d\n"
msgstr ""
-#: src/elflint.c:4298
+#: src/elflint.c:4341
#, c-format
msgid ".gnu.versym section present without .gnu.versym_d or .gnu.versym_r\n"
msgstr ""
-#: src/elflint.c:4347
+#: src/elflint.c:4390
#, c-format
msgid "phdr[%d]: unknown core file note type %<PRIu32> at offset %<PRIu64>\n"
msgstr ""
-#: src/elflint.c:4351
+#: src/elflint.c:4394
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
msgstr ""
-#: src/elflint.c:4407
+#: src/elflint.c:4450
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
"offset %zu\n"
msgstr ""
-#: src/elflint.c:4412
+#: src/elflint.c:4455
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
"'%s' at offset %zu\n"
msgstr ""
-#: src/elflint.c:4431
+#: src/elflint.c:4474
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4451
+#: src/elflint.c:4494
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr ""
-#: src/elflint.c:4454
+#: src/elflint.c:4497
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4475
+#: src/elflint.c:4518
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
-#: src/elflint.c:4482
+#: src/elflint.c:4525
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr ""
-#: src/elflint.c:4485
+#: src/elflint.c:4528
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
-#: src/elflint.c:4503
+#: src/elflint.c:4546
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
msgstr ""
-#: src/elflint.c:4518
+#: src/elflint.c:4561
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr ""
-#: src/elflint.c:4528
+#: src/elflint.c:4571
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
-#: src/elflint.c:4539
+#: src/elflint.c:4582
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr ""
-#: src/elflint.c:4547
+#: src/elflint.c:4590
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr ""
-#: src/elflint.c:4554
+#: src/elflint.c:4597
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr ""
-#: src/elflint.c:4568
+#: src/elflint.c:4611
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4571
+#: src/elflint.c:4614
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4581
+#: src/elflint.c:4624
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr ""
-#: src/elflint.c:4602
+#: src/elflint.c:4645
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
-#: src/elflint.c:4613
+#: src/elflint.c:4656
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
-#: src/elflint.c:4620
+#: src/elflint.c:4663
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
msgstr ""
-#: src/elflint.c:4629 src/elflint.c:4652
+#: src/elflint.c:4672 src/elflint.c:4695
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr ""
-#: src/elflint.c:4658
+#: src/elflint.c:4701
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr ""
-#: src/elflint.c:4685
+#: src/elflint.c:4728
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
-#: src/elflint.c:4688
+#: src/elflint.c:4731
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
-#: src/elflint.c:4701
+#: src/elflint.c:4744
#, c-format
msgid "PT_GNU_EH_FRAME present but no .eh_frame_hdr section\n"
msgstr ""
-#: src/elflint.c:4709
+#: src/elflint.c:4752
#, c-format
msgid "call frame search table must be allocated\n"
msgstr ""
-#: src/elflint.c:4712
+#: src/elflint.c:4755
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr ""
-#: src/elflint.c:4716
+#: src/elflint.c:4759
#, c-format
msgid "call frame search table must not be writable\n"
msgstr ""
-#: src/elflint.c:4719
+#: src/elflint.c:4762
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr ""
-#: src/elflint.c:4724
+#: src/elflint.c:4767
#, c-format
msgid "call frame search table must not be executable\n"
msgstr ""
-#: src/elflint.c:4727
+#: src/elflint.c:4770
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr ""
-#: src/elflint.c:4741
+#: src/elflint.c:4784
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr ""
-#: src/elflint.c:4748
+#: src/elflint.c:4791
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr ""
-#: src/elflint.c:4751
+#: src/elflint.c:4794
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
"alignment\n"
msgstr ""
-#: src/elflint.c:4764
+#: src/elflint.c:4807
#, 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:4798
+#: src/elflint.c:4841
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr ""
-#: src/elflint.c:4810
+#: src/elflint.c:4853
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "æ–°ã—ã„ファイルを生æˆã§ãã¾ã›ã‚“"
-#: src/elflint.c:4831
+#: src/elflint.c:4874
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
@@ -3752,7 +3746,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: 内部エラー %d (%s-%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
-#: src/strip.c:2766
+#: src/strip.c:2763
#, c-format
msgid "while closing '%s'"
msgstr "'%s' ã‚’é–‰ã˜ã¦ã„る最中"
@@ -3796,13 +3790,13 @@ msgstr "%s%s%s: ファイル形å¼ã‚’èªè­˜ã§ãã¾ã›ã‚“"
msgid "cannot create search tree"
msgstr "検索ツリーを生æˆã§ãã¾ã›ã‚“"
-#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
-#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097
-#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809
-#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613
-#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803
-#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467
-#: src/strip.c:1093
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685
+#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123
+#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854
+#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896
+#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029
+#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396
+#: src/size.c:467 src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
@@ -3909,7 +3903,7 @@ msgstr "NAME セクションã®æƒ…å ±ã®ã¿ã‚’表示"
msgid "Show information from FILEs (a.out by default)."
msgstr "FILE ã‹ã‚‰æƒ…報を表示ã™ã‚‹ (デフォルトã§ã¯ a.out)"
-#: src/objdump.c:217 src/readelf.c:608
+#: src/objdump.c:217 src/readelf.c:630
msgid "No operation specified.\n"
msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n"
@@ -3918,11 +3912,11 @@ msgstr "æ“作ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。\n"
msgid "while close `%s'"
msgstr ""
-#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383
+#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409
msgid "INVALID SYMBOL"
msgstr "ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«"
-#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419
+#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445
msgid "INVALID SECTION"
msgstr "ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³"
@@ -3976,87 +3970,87 @@ msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "error while freeing sub-ELF descriptor: %s"
msgstr ""
-#: src/readelf.c:96
+#: src/readelf.c:97
msgid "ELF input selection:"
msgstr "ELF入力é¸æŠžï¼š"
-#: src/readelf.c:98
+#: src/readelf.c:99
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
"ELF 入力データã¨ã—㦠SECTION (デフォルトã§ã¯ .gnu_debugdata) を使用ã™ã‚‹"
-#: src/readelf.c:101
+#: src/readelf.c:102
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:103
+#: src/readelf.c:104
msgid "ELF output selection:"
msgstr "ELF出力é¸æŠžï¼š"
-#: src/readelf.c:105
+#: src/readelf.c:106
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr ""
-#: src/readelf.c:106
+#: src/readelf.c:107
msgid "Display the dynamic segment"
msgstr "動的セグメントを表示"
-#: src/readelf.c:107
+#: src/readelf.c:108
msgid "Display the ELF file header"
msgstr "ELF ファイルヘッダーを表示"
-#: src/readelf.c:109
+#: src/readelf.c:110
msgid "Display histogram of bucket list lengths"
msgstr "ãƒã‚±ãƒƒãƒˆãƒªã‚¹ãƒˆé•·ã®ãƒ’ストグラムを表示"
-#: src/readelf.c:110
+#: src/readelf.c:111
msgid "Display the program headers"
msgstr "プログラムヘッダーを表示"
-#: src/readelf.c:112
+#: src/readelf.c:113
msgid "Display relocations"
msgstr "リロケーションを表示"
-#: src/readelf.c:113
+#: src/readelf.c:114
msgid "Display the section groups"
msgstr "セクショングループを表示"
-#: src/readelf.c:114
+#: src/readelf.c:115
msgid "Display the sections' headers"
msgstr "セクションヘッダーを表示"
-#: src/readelf.c:117
+#: src/readelf.c:118
msgid "Display the symbol table sections"
msgstr "シンボルテーブルセクションを表示"
-#: src/readelf.c:120
+#: src/readelf.c:121
msgid "Display (only) the dynamic symbol table"
msgstr "動的シンボルテーブル(ã®ã¿ï¼‰ã‚’表示"
-#: src/readelf.c:121
+#: src/readelf.c:122
msgid "Display versioning information"
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ‹ãƒ³ã‚°æƒ…報を表示"
-#: src/readelf.c:122
+#: src/readelf.c:123
msgid "Display the ELF notes"
msgstr "ELF notes を表示"
-#: src/readelf.c:124
+#: src/readelf.c:125
msgid "Display architecture specific information, if any"
msgstr "(ã‚‚ã—ã‚ã‚Œã°)アーキテクãƒãƒ£ãƒ¼å›ºæœ‰ã®æƒ…報を表示"
-#: src/readelf.c:126
+#: src/readelf.c:127
msgid "Display sections for exception handling"
msgstr "例外ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’表示"
-#: src/readelf.c:128
+#: src/readelf.c:129
msgid "Additional output selection:"
msgstr "追加ã®å‡ºåŠ›é¸æŠžï¼š"
-#: src/readelf.c:130
+#: src/readelf.c:131
#, fuzzy
msgid ""
"Display DWARF section content. SECTION can be one of abbrev, addr, aranges, "
@@ -4066,81 +4060,81 @@ msgstr ""
"DWARF セクションã®å†…容を表示。SECTION 㯠addrevã‹ã€arangesã€frameã€infoã€"
"locã€rangesã€pubnamesã€strã€macinfoã€exception ã®ã„ãšã‚Œã‹ã§ã™"
-#: src/readelf.c:134
+#: src/readelf.c:135
msgid "Dump the uninterpreted contents of SECTION, by number or name"
msgstr "SECTION 㮠未解釈㮠内容を ダンプã™ã‚‹ã€‚ ç•ªå· ã¾ãŸã¯ åå‰ã§æŒ‡å®šã™ã‚‹"
-#: src/readelf.c:136
+#: src/readelf.c:137
msgid "Print string contents of sections"
msgstr "セクションã®æ–‡å­—列内容を表示"
-#: src/readelf.c:139
+#: src/readelf.c:140
msgid "Display the symbol index of an archive"
msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ã‚’表示"
-#: src/readelf.c:141
+#: src/readelf.c:142
msgid "Use the dynamic segment when possible for displaying info"
msgstr ""
-#: src/readelf.c:143
+#: src/readelf.c:144
msgid "Output control:"
msgstr "出力制御:"
-#: src/readelf.c:145
+#: src/readelf.c:146
msgid "Do not find symbol names for addresses in DWARF data"
msgstr "DWARFデータ中ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãŸã‚ã®ã‚·ãƒ³ãƒœãƒ«åを探ã•ãªã„"
-#: src/readelf.c:147
+#: src/readelf.c:148
#, fuzzy
msgid ""
"Display just offsets instead of resolving values to addresses in DWARF data"
msgstr "DWARFデータ中ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãŸã‚ã®ã‚·ãƒ³ãƒœãƒ«åを探ã•ãªã„"
-#: src/readelf.c:149
+#: src/readelf.c:150
msgid "Ignored for compatibility (lines always wide)"
msgstr ""
-#: src/readelf.c:151
+#: src/readelf.c:152
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:156
+#: src/readelf.c:157
msgid "Print information from ELF file in human-readable form."
msgstr "ELF ファイルã‹ã‚‰äººé–“ãŒèª­ã‚ã‚‹å½¢ã§æƒ…報を表示ã™ã‚‹ã€‚"
#. Look up once.
-#: src/readelf.c:373
+#: src/readelf.c:395
msgid "yes"
msgstr "ã¯ã„"
-#: src/readelf.c:374
+#: src/readelf.c:396
msgid "no"
msgstr "ã„ã„ãˆ"
-#: src/readelf.c:576
+#: src/readelf.c:598
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "ä¸æ˜Žãª DWARF デãƒãƒƒã‚°ã‚»ã‚¯ã‚·ãƒ§ãƒ³ `%s'.\n"
-#: src/readelf.c:647 src/readelf.c:758
+#: src/readelf.c:669 src/readelf.c:780
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
+#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508
+#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530
#, c-format
msgid "cannot get section: %s"
msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033
+#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442
#: 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
@@ -4149,120 +4143,120 @@ msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s"
msgid "cannot get section header: %s"
msgstr "セクションヘッダーをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:689
+#: src/readelf.c:711
#, c-format
msgid "cannot get section name"
msgstr "セクションåã‚’å–å¾—ã§ãã¾ã›ã‚“"
-#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989
-#: src/readelf.c:11173
+#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332
+#: src/readelf.c:11516
#, c-format
msgid "cannot get %s content: %s"
msgstr "%s ã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:714
+#: src/readelf.c:736
#, c-format
msgid "cannot create temp file '%s'"
msgstr "一時ファイル '%s' を作æˆã§ãã¾ã›ã‚“"
-#: src/readelf.c:723
+#: src/readelf.c:745
#, c-format
msgid "cannot write section data"
msgstr "セクションデータを書ãè¾¼ã¿ã§ãã¾ã›ã‚“"
-#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
+#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "Elf 記述å­ã‚’é–‰ã˜ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/readelf.c:736
+#: src/readelf.c:758
#, c-format
msgid "error while rewinding file descriptor"
msgstr "ファイル記述å­ã‚’å·»ã戻ã—ã¦ã„る時ã«ã‚¨ãƒ©ãƒ¼"
-#: src/readelf.c:770
+#: src/readelf.c:792
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "'%s' ã¯ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã§ã¯ãªãã€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–索引を表示ã§ãã¾ã›ã‚“"
-#: src/readelf.c:874
+#: src/readelf.c:896
#, c-format
msgid "cannot stat input file"
msgstr "入力ファイルを stat ã§ãã¾ã›ã‚“"
-#: src/readelf.c:876
+#: src/readelf.c:898
#, c-format
msgid "input file is empty"
msgstr "入力ファイルãŒç©ºã§ã™"
-#: src/readelf.c:878
+#: src/readelf.c:900
#, c-format
msgid "failed reading '%s': %s"
msgstr "'%s' ã®èª­è¾¼ã¿ã«å¤±æ•—: %s"
-#: src/readelf.c:907
+#: src/readelf.c:929
#, fuzzy, c-format
msgid "No such section '%s' in '%s'"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:966
+#: src/readelf.c:988
#, c-format
msgid "cannot read ELF header: %s"
msgstr "ELF ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/readelf.c:974
+#: src/readelf.c:996
#, c-format
msgid "cannot create EBL handle"
msgstr "EBL ãƒãƒ³ãƒ‰ãƒ«ã‚’作æˆã§ãã¾ã›ã‚“"
-#: src/readelf.c:985
+#: src/readelf.c:1007
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "プログラムヘッダã®æ•°ã‚’決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1017
+#: src/readelf.c:1039
#, c-format
msgid "cannot read ELF: %s"
msgstr "ELFを読ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: src/readelf.c:1050
+#: src/readelf.c:1072
#, fuzzy
#| msgid "cannot get section: %s"
msgid "cannot find section"
msgstr "セクションをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1087
+#: src/readelf.c:1109
msgid "NONE (None)"
msgstr "ãªã— (ãªã—)"
-#: src/readelf.c:1088
+#: src/readelf.c:1110
msgid "REL (Relocatable file)"
msgstr "REL (リロケータブルファイル)"
-#: src/readelf.c:1089
+#: src/readelf.c:1111
msgid "EXEC (Executable file)"
msgstr "(EXEC (実行ファイル)"
-#: src/readelf.c:1090
+#: src/readelf.c:1112
msgid "DYN (Shared object file)"
msgstr "DYN (共用オブジェクトファイル)"
-#: src/readelf.c:1091
+#: src/readelf.c:1113
msgid "CORE (Core file)"
msgstr "CORE (コアファイル)"
-#: src/readelf.c:1096
+#: src/readelf.c:1118
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "OS 固有: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1098
+#: src/readelf.c:1120
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "プロセッサー固有: (%x)\n"
-#: src/readelf.c:1108
+#: src/readelf.c:1130
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4270,7 +4264,7 @@ msgstr ""
"ELF ヘッダー:\n"
" マジック: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4279,123 +4273,123 @@ msgstr ""
"\n"
" クラス: %s\n"
-#: src/readelf.c:1117
+#: src/readelf.c:1139
#, c-format
msgid " Data: %s\n"
msgstr " データ: %s\n"
-#: src/readelf.c:1123
+#: src/readelf.c:1145
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " 識別ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd %s\n"
-#: src/readelf.c:1125 src/readelf.c:1147
+#: src/readelf.c:1147 src/readelf.c:1169
msgid "(current)"
msgstr "(ç¾åœ¨)"
-#: src/readelf.c:1129
+#: src/readelf.c:1151
#, c-format
msgid " OS/ABI: %s\n"
msgstr " OS/ABI: %s\n"
-#: src/readelf.c:1132
+#: src/readelf.c:1154
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hhd\n"
-#: src/readelf.c:1135
+#: src/readelf.c:1157
msgid " Type: "
msgstr " タイプ: "
-#: src/readelf.c:1140
+#: src/readelf.c:1162
#, c-format
msgid " Machine: %s\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:1142
+#: src/readelf.c:1164
#, fuzzy, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " マシン : %s\n"
-#: src/readelf.c:1145
+#: src/readelf.c:1167
#, c-format
msgid " Version: %d %s\n"
msgstr " ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %d %s\n"
-#: src/readelf.c:1149
+#: src/readelf.c:1171
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:1152
+#: src/readelf.c:1174
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " プログラムヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1153 src/readelf.c:1156
+#: src/readelf.c:1175 src/readelf.c:1178
msgid "(bytes into file)"
msgstr "(ファイルã¸ã®ãƒã‚¤ãƒˆæ•°)"
-#: src/readelf.c:1155
+#: src/readelf.c:1177
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " セクションヘッダーã®é–‹å§‹: %<PRId64> %s\n"
-#: src/readelf.c:1158
+#: src/readelf.c:1180
#, c-format
msgid " Flags: %s\n"
msgstr " フラグ: %s\n"
-#: src/readelf.c:1161
+#: src/readelf.c:1183
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " ã“ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã®å¤§ãã•: %<PRId16> %s\n"
-#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182
+#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204
msgid "(bytes)"
msgstr "(ãƒã‚¤ãƒˆ)"
-#: src/readelf.c:1164
+#: src/readelf.c:1186
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " プログラムヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1167
+#: src/readelf.c:1189
#, fuzzy, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " プログラムヘッダー項目ã®æ•° : %<PRId16>\n"
-#: src/readelf.c:1174
+#: src/readelf.c:1196
#, fuzzy, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208
+#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230
msgid " ([0] not available)"
msgstr "([0]ã¯ä½¿ãˆã¾ã›ã‚“)"
-#: src/readelf.c:1181
+#: src/readelf.c:1203
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " セクションヘッダー項目ã®å¤§ãã•:%<PRId16> %s\n"
-#: src/readelf.c:1184
+#: src/readelf.c:1206
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " セクションヘッダー項目ã®æ•° : %<PRId16>"
-#: src/readelf.c:1191
+#: src/readelf.c:1213
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " ([0].sh_size ã® %<PRIu32>)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1204
+#: src/readelf.c:1226
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr "([0].sh_link ã® %<PRIu32>)"
-#: src/readelf.c:1212
+#: src/readelf.c:1234
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4404,7 +4398,7 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: XINDEX%s\n"
"\n"
-#: src/readelf.c:1216
+#: src/readelf.c:1238
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4413,12 +4407,12 @@ msgstr ""
" セクションヘッダー文字列テーブル索引: %<PRId16>\n"
"\n"
-#: src/readelf.c:1266 src/readelf.c:1474
+#: src/readelf.c:1288 src/readelf.c:1496
#, fuzzy, c-format
msgid "cannot get number of sections: %s"
msgstr "セクション数を決定ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1269
+#: src/readelf.c:1291
#, fuzzy, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4427,16 +4421,16 @@ msgstr ""
"オフセット %2$#<PRIx64> ã‹ã‚‰å§‹ã¾ã‚‹ %1$d 個ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚ã‚Šã¾ã™:\n"
"\n"
-#: src/readelf.c:1277
+#: src/readelf.c:1299
#, fuzzy, c-format
msgid "cannot get section header string table index: %s"
msgstr "セクションヘッダー文字列テーブル索引ãŒå¾—られã¾ã›ã‚“"
-#: src/readelf.c:1280
+#: src/readelf.c:1302
msgid "Section Headers:"
msgstr "セクションヘッダー:"
-#: src/readelf.c:1283
+#: src/readelf.c:1305
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4444,7 +4438,7 @@ msgstr ""
"[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES フラグLk "
"Inf Al"
-#: src/readelf.c:1285
+#: src/readelf.c:1307
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4452,35 +4446,35 @@ msgstr ""
"[番] åå‰ ã‚¿ã‚¤ãƒ— アドレス オフセ 大ãã• ES "
"フラグLk Inf Al"
-#: src/readelf.c:1290
+#: src/readelf.c:1312
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1292
+#: src/readelf.c:1314
msgid " [Compression Size Al]"
msgstr ""
-#: src/readelf.c:1370
+#: src/readelf.c:1392
#, fuzzy, c-format
msgid "bad compression header for section %zd: %s"
msgstr "セクションヘッダー文字列セクションを生æˆã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1381
+#: src/readelf.c:1403
#, fuzzy, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:1399
+#: src/readelf.c:1421
msgid "Program Headers:"
msgstr "プログラムヘッダー:"
-#: src/readelf.c:1401
+#: src/readelf.c:1423
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" タイプ オフセ 仮アドレス 物アドレス ãƒ•ã‚¡ã‚¤é‡ ãƒ¡ãƒ¢é‡ Flg 調整 "
-#: src/readelf.c:1404
+#: src/readelf.c:1426
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4488,12 +4482,12 @@ msgstr ""
" タイプ オフセ 仮想アドレス 物ç†ã‚¢ãƒ‰ãƒ¬ã‚¹ ファイルé‡ãƒ¡ãƒ¢"
"é‡ Flg 調整 "
-#: src/readelf.c:1461
+#: src/readelf.c:1483
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[プログラム割込ã¿ã‚’è¦æ±‚: %s]\n"
-#: src/readelf.c:1486
+#: src/readelf.c:1508
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4503,12 +4497,12 @@ msgstr ""
" セクションã‹ã‚‰ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã¸ã®ãƒžãƒƒãƒ“ング:\n"
" セグメント セクション..."
-#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
+#: src/readelf.c:1519 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:1641
+#: src/readelf.c:1663
#, c-format
msgid ""
"\n"
@@ -4521,7 +4515,7 @@ msgstr[0] ""
"ç½²å '%3$s' ã‚’æŒã¤ COMDAT セクショングループ [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®"
"é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4534,32 +4528,32 @@ msgstr[0] ""
"ç½²å '%3$s' ã‚’æŒã¤ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚°ãƒ«ãƒ¼ãƒ— [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …ç›®ãŒã‚"
"ã‚Šã¾ã™:\n"
-#: src/readelf.c:1654
+#: src/readelf.c:1676
msgid "<INVALID SYMBOL>"
msgstr "<ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«>"
-#: src/readelf.c:1668
+#: src/readelf.c:1690
msgid "<INVALID SECTION>"
msgstr "<ä¸å½“ãªã‚»ã‚¯ã‚·ãƒ§ãƒ³>"
-#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881
-#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956
-#: src/readelf.c:12963
+#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212
+#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365
+#: src/readelf.c:13372
msgid "Couldn't uncompress section"
msgstr ""
-#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585
+#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916
#, fuzzy, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "セクションヘッダーを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890
-#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619
+#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221
+#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962
#, fuzzy, c-format
msgid "invalid sh_link value in section %zu"
msgstr "ä¸å½“㪠.debug_line セクション"
-#: src/readelf.c:1867
+#: src/readelf.c:1889
#, c-format
msgid ""
"\n"
@@ -4575,7 +4569,7 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, fuzzy, c-format
#| msgid ""
#| "\n"
@@ -4599,42 +4593,42 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:1890
+#: src/readelf.c:1912
msgid " Type Value\n"
msgstr " タイプ 値\n"
-#: src/readelf.c:1899
+#: src/readelf.c:1921
#, fuzzy
#| msgid "cannot get string section data: %s"
msgid "cannot get string table by using dynamic segment"
msgstr "文字列セクションデータをå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:1938
+#: src/readelf.c:1960
#, c-format
msgid "Shared library: [%s]\n"
msgstr "共用ライブラリー: [%s]\n"
-#: src/readelf.c:1942
+#: src/readelf.c:1964
#, c-format
msgid "Library soname: [%s]\n"
msgstr "ライブラリー so å: [%s]\n"
-#: src/readelf.c:1946
+#: src/readelf.c:1968
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "ライブラリー rパス: [%s]\n"
-#: src/readelf.c:1950
+#: src/readelf.c:1972
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "ライブラリー run パス: [%s]\n"
-#: src/readelf.c:1969
+#: src/readelf.c:1993
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (ãƒã‚¤ãƒˆ)\n"
-#: src/readelf.c:2083 src/readelf.c:2272
+#: src/readelf.c:2109 src/readelf.c:2298
#, c-format
msgid ""
"\n"
@@ -4643,7 +4637,7 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:2100 src/readelf.c:2289
+#: src/readelf.c:2126 src/readelf.c:2315
#, c-format
msgid ""
"\n"
@@ -4664,7 +4658,8 @@ 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:2115 src/readelf.c:2304
+#. A .relr.dyn section does not refer to a specific section.
+#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485
#, c-format
msgid ""
"\n"
@@ -4677,29 +4672,39 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> ã®ãƒªãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2u] '%2$s' ã«ã¯ %4$d "
"個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:2125
+#: src/readelf.c:2151
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2127
+#: src/readelf.c:2153
msgid " Offset Type Value Name\n"
msgstr " オフセット タイプ 値 åå‰\n"
-#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225
-#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396
-#: src/readelf.c:2418 src/readelf.c:2431
+#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251
+#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422
+#: src/readelf.c:2444 src/readelf.c:2457
msgid "<INVALID RELOC>"
msgstr "<ä¸å½“ãªRELOC>"
-#: src/readelf.c:2314
+#: src/readelf.c:2340
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2316
+#: src/readelf.c:2342
msgid " Offset Type Value Addend Name\n"
msgstr " オフセット タイプ 値 付加å\n"
-#: src/readelf.c:2558
+#: src/readelf.c:2654
+#, 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:2750
+#, c-format
+msgid "bad dynamic symbol"
+msgstr "ä¸æ­£ãªå‹•çš„シンボル"
+
+#: src/readelf.c:2868
#, c-format
msgid ""
"\n"
@@ -4711,39 +4716,33 @@ msgstr[0] ""
"\n"
"シンボルテーブル [%2u] '%s' ã«ã¯ %u 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:2563
+#: src/readelf.c:2873
#, 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:2571
+#: src/readelf.c:2881
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2573
+#: src/readelf.c:2883
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " æ•° : 値 大ã タイプ Bind Vis Ndx åå‰\n"
-#: src/readelf.c:2593
-#, 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:2686
-#, c-format
-msgid "bad dynamic symbol"
-msgstr "ä¸æ­£ãªå‹•çš„シンボル"
+#: src/readelf.c:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2771
+#: src/readelf.c:3102
msgid "none"
msgstr "ãªã—"
-#: src/readelf.c:2788
+#: src/readelf.c:3119
msgid "| <unknown>"
msgstr "| <ä¸æ˜Ž>"
-#: src/readelf.c:2818
+#: src/readelf.c:3149
#, c-format
msgid ""
"\n"
@@ -4759,17 +4758,17 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2839
+#: src/readelf.c:3170
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu ファイル: %s æ•°: %hu\n"
-#: src/readelf.c:2852
+#: src/readelf.c:3183
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: åå‰: %s フラグ: %s ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %hu\n"
-#: src/readelf.c:2894
+#: src/readelf.c:3225
#, c-format
msgid ""
"\n"
@@ -4785,18 +4784,18 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:2922
+#: src/readelf.c:3253
#, 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:2937
+#: src/readelf.c:3268
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: 親 %d: %s\n"
#. Print the header.
-#: src/readelf.c:3197
+#: src/readelf.c:3528
#, c-format
msgid ""
"\n"
@@ -4812,15 +4811,15 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'"
-#: src/readelf.c:3225
+#: src/readelf.c:3556
msgid " 0 *local* "
msgstr " 0 *ローカル* "
-#: src/readelf.c:3230
+#: src/readelf.c:3561
msgid " 1 *global* "
msgstr " 1 *グローãƒãƒ«* "
-#: src/readelf.c:3272
+#: src/readelf.c:3603
#, c-format
msgid ""
"\n"
@@ -4838,22 +4837,22 @@ msgstr[0] ""
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションã¸ã®ãƒªãƒ³ã‚¯: "
"[%2u] '%s'\n"
-#: src/readelf.c:3294
+#: src/readelf.c:3625
#, fuzzy, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " é•·ã• æ•° 全体ã®% 範囲 \n"
-#: src/readelf.c:3296
+#: src/readelf.c:3627
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3303
+#: src/readelf.c:3634
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3316
+#: src/readelf.c:3647
#, fuzzy, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -4862,37 +4861,37 @@ msgstr ""
" テストã®å¹³å‡æ•°: 検索æˆåŠŸ: %f\n"
" 検索失敗: %f\n"
-#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464
+#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "セクションã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’得られã¾ã›ã‚“ %d: %s"
-#: src/readelf.c:3342
+#: src/readelf.c:3673
#, fuzzy, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3371
+#: src/readelf.c:3702
#, fuzzy, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3406
+#: src/readelf.c:3737
#, fuzzy, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3437
+#: src/readelf.c:3768
#, fuzzy, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3473
+#: src/readelf.c:3804
#, fuzzy, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:3539
+#: src/readelf.c:3870
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -4902,7 +4901,7 @@ msgstr ""
" ビットマスクã®å¤§ãã•: %zu ãƒã‚¤ãƒˆ %<PRIuFAST32>%% ビット設定 第2ãƒãƒƒã‚·ãƒ¥ã‚·ãƒ•"
"ト: %u\n"
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -4915,7 +4914,7 @@ msgstr[0] ""
"オフセット %3$#0<PRIx64> ã®ãƒ©ã‚¤ãƒ–ラリー一覧セクション [%1$2zu] '%2$s' ã«ã¯ "
"%4$d 個ã®é …ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:3638
+#: src/readelf.c:3969
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -4923,7 +4922,7 @@ msgstr ""
" ライブラリー タイムスタンプ ãƒã‚§ãƒƒã‚¯ã‚µãƒ  ãƒãƒ¼"
"ジョン フラグ"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -4934,107 +4933,107 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ã‚ªãƒ–ジェクト属性セクション "
"[%1$2zu] '%2$s':\n"
-#: src/readelf.c:3715
+#: src/readelf.c:4046
msgid " Owner Size\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:3739
+#: src/readelf.c:4070
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3778
+#: src/readelf.c:4109
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3783
+#: src/readelf.c:4114
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " ファイル: %11<PRIu32>\n"
-#: src/readelf.c:3833
+#: src/readelf.c:4164
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>ã€%s\n"
-#: src/readelf.c:3836
+#: src/readelf.c:4167
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3839
+#: src/readelf.c:4170
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3849
+#: src/readelf.c:4180
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3852
+#: src/readelf.c:4183
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3890
+#: src/readelf.c:4221
#, fuzzy
#| msgid "couldn't get shdr for group section: %s"
msgid "Couldn't get data from section"
msgstr "グループセクションã«å¯¾ã™ã‚‹ shdr ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s"
-#: src/readelf.c:3955
+#: src/readelf.c:4286
msgid "sprintf failure"
msgstr ""
-#: src/readelf.c:4439
+#: src/readelf.c:4770
msgid "empty block"
msgstr "空ブロック"
-#: src/readelf.c:4442
+#: src/readelf.c:4773
#, c-format
msgid "%zu byte block:"
msgstr "%zu ãƒã‚¤ãƒˆã®ãƒ–ロック:"
-#: src/readelf.c:4920
+#: src/readelf.c:5251
#, fuzzy, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n"
-#: src/readelf.c:5080
+#: src/readelf.c:5423
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr ""
-#: src/readelf.c:5087
+#: src/readelf.c:5430
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr ""
-#: src/readelf.c:5094
+#: src/readelf.c:5437
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr ""
-#: src/readelf.c:5101
+#: src/readelf.c:5444
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr ""
-#: src/readelf.c:5201
+#: src/readelf.c:5544
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr ""
-#: src/readelf.c:5209
+#: src/readelf.c:5552
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr ""
-#: src/readelf.c:5315
+#: src/readelf.c:5658
#, c-format
msgid ""
"\n"
@@ -5045,7 +5044,7 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" [ コード]\n"
-#: src/readelf.c:5323
+#: src/readelf.c:5666
#, c-format
msgid ""
"\n"
@@ -5054,20 +5053,20 @@ msgstr ""
"\n"
"オフセット %<PRIu64> ã®ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³:\n"
-#: src/readelf.c:5336
+#: src/readelf.c:5679
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** 略語を読んã§ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:5352
+#: src/readelf.c:5695
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] オフセット: %<PRId64>ã€å­: %sã€ã‚¿ã‚°: %s\n"
-#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224
-#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829
-#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627
-#: src/readelf.c:10698
+#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567
+#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172
+#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970
+#: src/readelf.c:11041
#, c-format
msgid ""
"\n"
@@ -5076,47 +5075,47 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397
+#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410
+#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419
+#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762
#, fuzzy, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429
+#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772
#, fuzzy, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820
+#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163
#, fuzzy, c-format
msgid "Unknown version"
msgstr "ä¸æ˜Žãªãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424
+#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767
#, fuzzy, c-format
msgid "unsupported address size"
msgstr "アドレス値ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434
+#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777
#, c-format
msgid "unsupported segment size"
msgstr ""
-#: src/readelf.c:5609
+#: src/readelf.c:5952
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr ".debug_aragnes ã®å†…容を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:5624
+#: src/readelf.c:5967
#, c-format
msgid ""
"\n"
@@ -5129,19 +5128,19 @@ msgstr[0] ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:5655
+#: src/readelf.c:5998
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5657
+#: src/readelf.c:6000
#, 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:5695 src/readelf.c:8638
+#: src/readelf.c:6038 src/readelf.c:8981
#, fuzzy, c-format
msgid ""
"\n"
@@ -5150,142 +5149,142 @@ msgstr ""
"\n"
"オフセット %Zu ã®ãƒ†ãƒ¼ãƒ–ル:\n"
-#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649
-#: src/readelf.c:9378
+#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992
+#: src/readelf.c:9721
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "セクション [%zu] '%s' ã®ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:5715
+#: src/readelf.c:6058
#, fuzzy, c-format
msgid ""
"\n"
" Length: %6<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5727
+#: src/readelf.c:6070
#, fuzzy, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:5731
+#: src/readelf.c:6074
#, c-format
msgid "unsupported aranges version"
msgstr ""
-#: src/readelf.c:5742
+#: src/readelf.c:6085
#, fuzzy, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5748
+#: src/readelf.c:6091
#, fuzzy, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5759
+#: src/readelf.c:6102
#, fuzzy, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
"\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:5814
+#: src/readelf.c:6157
#, c-format
msgid " %zu padding bytes\n"
msgstr ""
-#: src/readelf.c:5876 src/readelf.c:9384
+#: src/readelf.c:6219 src/readelf.c:9727
#, fuzzy, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
"\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:5931 src/readelf.c:9439
+#: src/readelf.c:6274 src/readelf.c:9782
#, fuzzy, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:5947 src/readelf.c:9455
+#: src/readelf.c:6290 src/readelf.c:9798
#, c-format
msgid " Unknown CU base: "
msgstr ""
-#: src/readelf.c:5949 src/readelf.c:9457
+#: src/readelf.c:6292 src/readelf.c:9800
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:5955 src/readelf.c:9463
+#: src/readelf.c:6298 src/readelf.c:9806
#, c-format
msgid " Not associated with a CU.\n"
msgstr ""
-#: src/readelf.c:5966 src/readelf.c:9474
+#: src/readelf.c:6309 src/readelf.c:9817
#, c-format
msgid "too many offset entries for unit length"
msgstr ""
-#: src/readelf.c:5970 src/readelf.c:9478
+#: src/readelf.c:6313 src/readelf.c:9821
#, fuzzy, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:6022
+#: src/readelf.c:6365
#, fuzzy, c-format
msgid "invalid range list data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:6207 src/readelf.c:9813
+#: src/readelf.c:6550 src/readelf.c:10156
#, c-format
msgid ""
" %zu padding bytes\n"
"\n"
msgstr ""
-#: src/readelf.c:6255 src/readelf.c:9862
+#: src/readelf.c:6598 src/readelf.c:10205
#, c-format
msgid ""
"\n"
" Unknown CU base: "
msgstr ""
-#: src/readelf.c:6257 src/readelf.c:9864
+#: src/readelf.c:6600 src/readelf.c:10207
#, c-format
msgid ""
"\n"
" CU [%6<PRIx64>] base: "
msgstr ""
-#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916
+#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6291 src/readelf.c:10000
+#: src/readelf.c:6634 src/readelf.c:10343
#, fuzzy
msgid "base address"
msgstr "アドレスを %s ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:6301 src/readelf.c:10010
+#: src/readelf.c:6644 src/readelf.c:10353
#, fuzzy, c-format
msgid " [%6tx] empty list\n"
msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:6565
+#: src/readelf.c:6908
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:6822
+#: src/readelf.c:7165
#, fuzzy, c-format
msgid "cannot get ELF: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:6846
+#: src/readelf.c:7189
#, c-format
msgid ""
"\n"
@@ -5294,7 +5293,7 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠フレーム情報呼出ã—セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
@@ -5303,65 +5302,65 @@ msgstr ""
"\n"
" [%6tx] ゼロ終端\n"
-#: src/readelf.c:7000 src/readelf.c:7154
+#: src/readelf.c:7343 src/readelf.c:7497
#, fuzzy, c-format
msgid "invalid augmentation length"
msgstr "ä¸å½“ãªæ‹¡å¤§ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰"
-#: src/readelf.c:7015
+#: src/readelf.c:7358
msgid "FDE address encoding: "
msgstr "FDE アドレスエンコード"
-#: src/readelf.c:7021
+#: src/readelf.c:7364
msgid "LSDA pointer encoding: "
msgstr "LSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:7131
+#: src/readelf.c:7474
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:7138
+#: src/readelf.c:7481
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:7175
+#: src/readelf.c:7518
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sLSDA ãƒã‚¤ãƒ³ã‚¿ãƒ¼: %#<PRIx64>\n"
-#: src/readelf.c:7260
+#: src/readelf.c:7603
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "属性コードを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7270
+#: src/readelf.c:7613
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "属性様å¼ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7292
+#: src/readelf.c:7635
#, fuzzy, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "属性値を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7622
+#: src/readelf.c:7965
#, fuzzy, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "ä¸å½“ãªãƒ•ã‚¡ã‚¤ãƒ«"
-#: src/readelf.c:7626
+#: src/readelf.c:7969
#, fuzzy, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:7630
+#: src/readelf.c:7973
#, fuzzy, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:7952
+#: src/readelf.c:8295
#, c-format
msgid ""
"\n"
@@ -5372,12 +5371,12 @@ msgstr ""
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
" [オフセット]\n"
-#: src/readelf.c:8002
+#: src/readelf.c:8345
#, fuzzy, c-format
msgid "cannot get next unit: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8022
+#: src/readelf.c:8365
#, fuzzy, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5389,7 +5388,7 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:8034
+#: src/readelf.c:8377
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5400,39 +5399,39 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:8044 src/readelf.c:8205
+#: src/readelf.c:8387 src/readelf.c:8548
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr ""
-#: src/readelf.c:8071
+#: src/readelf.c:8414
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr ""
-#: src/readelf.c:8100
+#: src/readelf.c:8443
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "DIE オフセットを得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8109
+#: src/readelf.c:8452
#, 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:8145
+#: src/readelf.c:8488
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s\n"
-#: src/readelf.c:8153
+#: src/readelf.c:8496
#, c-format
msgid "cannot get next DIE: %s"
msgstr "次㮠DIE を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:8197
+#: src/readelf.c:8540
#, fuzzy, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5443,7 +5442,7 @@ msgstr ""
" ãƒãƒ¼ã‚¸ãƒ§ãƒ³: %2$<PRIu16>ã€ç•¥èªžã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚ªãƒ•ã‚»ãƒƒãƒˆ: %3$<PRIu64>ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¤§"
"ãã•: %4$<PRIu8>ã€ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å¤§ãã•: %5$<PRIu8>\n"
-#: src/readelf.c:8249
+#: src/readelf.c:8592
#, fuzzy, c-format
msgid ""
"\n"
@@ -5453,13 +5452,13 @@ msgstr ""
"\n"
"オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:8581
+#: src/readelf.c:8924
#, fuzzy, c-format
msgid "unknown form: %s"
msgstr "ä¸æ˜Žãªæ§˜å¼ %<PRIx64>"
#. Print what we got so far.
-#: src/readelf.c:8729
+#: src/readelf.c:9072
#, fuzzy, c-format
msgid ""
"\n"
@@ -5489,33 +5488,33 @@ msgstr ""
"\n"
"命令コード:\n"
-#: src/readelf.c:8751
+#: src/readelf.c:9094
#, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr ".debug_line ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’扱ãˆã¾ã›ã‚“: %u\n"
-#: src/readelf.c:8759
+#: src/readelf.c:9102
#, c-format
msgid "cannot handle address size: %u\n"
msgstr "アドレスサイズを扱ãˆã¾ã›ã‚“: %u\n"
-#: src/readelf.c:8767
+#: src/readelf.c:9110
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "セグメントセレクタサイズを扱ãˆã¾ã›ã‚“: %u\n"
-#: src/readelf.c:8777
+#: src/readelf.c:9120
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "セクション [%2$zu] '%3$s' 中ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ %1$tu ã«ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:8792
+#: src/readelf.c:9135
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:8803
+#: src/readelf.c:9146
msgid ""
"\n"
"Directory table:"
@@ -5523,12 +5522,12 @@ msgstr ""
"\n"
"ディレクトリーテーブル:"
-#: src/readelf.c:8809 src/readelf.c:8886
+#: src/readelf.c:9152 src/readelf.c:9229
#, fuzzy, c-format
msgid " ["
msgstr " %s: %s\n"
-#: src/readelf.c:8880
+#: src/readelf.c:9223
#, fuzzy
msgid ""
"\n"
@@ -5537,7 +5536,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:8941
+#: src/readelf.c:9284
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5545,7 +5544,7 @@ msgstr ""
"ファイルåテーブル:\n"
" Entry Dir 時刻 大ãã• åå‰"
-#: src/readelf.c:8987
+#: src/readelf.c:9330
#, fuzzy
msgid ""
"\n"
@@ -5554,7 +5553,7 @@ msgstr ""
"\n"
"è¡Œ ç•ªå· æ–‡:"
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5562,129 +5561,129 @@ msgstr ""
"\n"
"è¡Œ ç•ªå· æ–‡:"
-#: src/readelf.c:9006
+#: src/readelf.c:9349
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr ""
-#: src/readelf.c:9040
+#: src/readelf.c:9383
#, fuzzy, c-format
msgid " special opcode %u: address+%u = "
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:9044
+#: src/readelf.c:9387
#, fuzzy, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n"
-#: src/readelf.c:9047
+#: src/readelf.c:9390
#, c-format
msgid ", line%+d = %zu\n"
msgstr ""
-#: src/readelf.c:9065
+#: src/readelf.c:9408
#, c-format
msgid " extended opcode %u: "
msgstr " 拡張命令コード %u: "
-#: src/readelf.c:9070
+#: src/readelf.c:9413
#, fuzzy
msgid " end of sequence"
msgstr "列ã®çµ‚ã‚ã‚Š"
-#: src/readelf.c:9088
+#: src/readelf.c:9431
#, fuzzy, c-format
msgid " set address to "
msgstr "アドレスを %s ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:9116
+#: src/readelf.c:9459
#, 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:9130
+#: src/readelf.c:9473
#, fuzzy, c-format
msgid " set discriminator to %u\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:9157
+#: src/readelf.c:9500
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:9181
+#: src/readelf.c:9524
#, fuzzy, c-format
#| msgid "Also show function names"
msgid " set function name %s (0x%x)\n"
msgstr "関数åも表示"
#. Unknown, ignore it.
-#: src/readelf.c:9188
+#: src/readelf.c:9531
msgid " unknown opcode"
msgstr "ä¸æ˜Žãªã‚ªãƒšã‚³ãƒ¼ãƒ‰"
#. Takes no argument.
-#: src/readelf.c:9200
+#: src/readelf.c:9543
msgid " copy"
msgstr "複写"
-#: src/readelf.c:9211
+#: src/readelf.c:9554
#, fuzzy, c-format
msgid " advance address by %u to "
msgstr "アドレスを %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:9215 src/readelf.c:9276
+#: src/readelf.c:9558 src/readelf.c:9619
#, c-format
msgid ", op_index to %u"
msgstr ""
-#: src/readelf.c:9227
+#: src/readelf.c:9570
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr "行を定数 %d ã ã‘進ã‚㦠%<PRId64> ã«ã™ã‚‹\n"
-#: src/readelf.c:9237
+#: src/readelf.c:9580
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:9248
+#: src/readelf.c:9591
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr "カラムを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
-#: src/readelf.c:9255
+#: src/readelf.c:9598
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " '%s' ã‚’ %<PRIuFAST8> ã«è¨­å®šã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:9261
+#: src/readelf.c:9604
msgid " set basic block flag"
msgstr "基本ブロックフラグを設定ã™ã‚‹"
-#: src/readelf.c:9272
+#: src/readelf.c:9615
#, fuzzy, c-format
msgid " advance address by constant %u to "
msgstr "アドレスを定数 %u ã ã‘済ã‚㦠%s ã«ã™ã‚‹\n"
-#: src/readelf.c:9292
+#: src/readelf.c:9635
#, fuzzy, c-format
msgid " advance address by fixed value %u to \n"
msgstr "アドレスを固定値 %u ã ã‘進ã‚㦠%s ã«ã™ã‚‹\n"
#. Takes no argument.
-#: src/readelf.c:9302
+#: src/readelf.c:9645
msgid " set prologue end flag"
msgstr "プロローグ終了フラグを設定ã™ã‚‹"
#. Takes no argument.
-#: src/readelf.c:9307
+#: src/readelf.c:9650
msgid " set epilogue begin flag"
msgstr "エピローグ開始フラグを設定ã™ã‚‹"
-#: src/readelf.c:9317
+#: src/readelf.c:9660
#, fuzzy, c-format
msgid " set isa to %u\n"
msgstr " ファイルを %<PRIu64> ã«è¨­å®šã™ã‚‹\n"
@@ -5692,88 +5691,88 @@ 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:9326
+#: src/readelf.c:9669
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
msgstr[0] " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:9527
+#: src/readelf.c:9870
#, fuzzy, c-format
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:9567
+#: src/readelf.c:9910
#, fuzzy, c-format
msgid "invalid loclists data"
msgstr "ä¸å½“ãªãƒ‡ãƒ¼ã‚¿"
-#: src/readelf.c:10037 src/readelf.c:11082
+#: src/readelf.c:10380 src/readelf.c:11425
#, fuzzy
msgid " <INVALID DATA>\n"
msgstr " [%6tx] <ä¸å½“ãªãƒ‡ãƒ¼ã‚¿>\n"
-#: src/readelf.c:10168
+#: src/readelf.c:10511
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:10191
+#: src/readelf.c:10534
#, fuzzy, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** 最後ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®çµ‚端ã—ã¦ã„ãªã„文字列"
-#: src/readelf.c:10286
+#: src/readelf.c:10629
#, fuzzy, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " 所有者 大ãã•\n"
-#: src/readelf.c:10298
+#: src/readelf.c:10641
#, fuzzy, c-format
msgid " Version: %<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10304 src/readelf.c:11202
+#: src/readelf.c:10647 src/readelf.c:11546
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr ""
-#: src/readelf.c:10311
+#: src/readelf.c:10654
#, fuzzy, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " å…¥å£ç‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ : %#<PRIx64>\n"
-#: src/readelf.c:10340
+#: src/readelf.c:10683
#, fuzzy, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10348
+#: src/readelf.c:10691
#, fuzzy, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:10373
+#: src/readelf.c:10716
#, fuzzy, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " %<PRIu8> 個ã®ãƒ‘ラメーターã®ã‚ã‚‹ä¸æ˜Žãªå‘½ä»¤ã‚³ãƒ¼ãƒ‰:"
-#: src/readelf.c:10380
+#: src/readelf.c:10723
#, c-format
msgid " [%<PRIx8>]"
msgstr ""
-#: src/readelf.c:10392
+#: src/readelf.c:10735
#, fuzzy, c-format
msgid " %<PRIu8> arguments:"
msgstr " [%*<PRIuFAST8>] %hhu パラメーター\n"
-#: src/readelf.c:10407
+#: src/readelf.c:10750
#, c-format
msgid " no arguments."
msgstr ""
-#: src/readelf.c:10608
+#: src/readelf.c:10951
#, c-format
msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n"
msgstr ""
@@ -5781,7 +5780,7 @@ msgstr ""
# # "オフセット %3$#<PRIx64> 㮠DWARF セクション [%1$2zu] '%2$s':\n"
# # " %4$*s 文字列\n" ãŒã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã¯ä½•æ•…? å–ã‚Šæ•¢ãˆãš fuzzy扱ã„
-#: src/readelf.c:10663
+#: src/readelf.c:11006
#, fuzzy, c-format
msgid ""
"\n"
@@ -5793,37 +5792,37 @@ msgstr ""
" %4$*s 文字列\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10668
+#: src/readelf.c:11011
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:11021
#, fuzzy, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** 文字列ã®èª­è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s\n"
-#: src/readelf.c:10800
+#: src/readelf.c:11143
#, fuzzy, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10802
+#: src/readelf.c:11145
#, fuzzy, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10816
+#: src/readelf.c:11159
#, fuzzy, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:10825
+#: src/readelf.c:11168
#, fuzzy, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:10879
+#: src/readelf.c:11222
#, c-format
msgid ""
"\n"
@@ -5832,7 +5831,7 @@ msgstr ""
"\n"
"呼出ã—フレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
@@ -5841,22 +5840,22 @@ msgstr ""
"\n"
"例外å–扱ã„テーブルセクション [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:11004
+#: src/readelf.c:11347
#, c-format
msgid " LPStart encoding: %#x "
msgstr " LPStart コード化: %#x "
-#: src/readelf.c:11016
+#: src/readelf.c:11359
#, c-format
msgid " TType encoding: %#x "
msgstr "TType コード化: %#x "
-#: src/readelf.c:11033
+#: src/readelf.c:11376
#, c-format
msgid " Call site encoding: %#x "
msgstr "呼出ã—サイトコード化: %#x "
-#: src/readelf.c:11048
+#: src/readelf.c:11391
msgid ""
"\n"
" Call site table:"
@@ -5864,7 +5863,7 @@ msgstr ""
"\n"
" 呼出ã—サイトテーブル:"
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5877,12 +5876,12 @@ msgstr ""
" 離ç€é™¸å ´: %#<PRIx64>\n"
" 行動: %u\n"
-#: src/readelf.c:11137
+#: src/readelf.c:11480
#, c-format
msgid "invalid TType encoding"
msgstr "ä¸å½“㪠TType コード化"
-#: src/readelf.c:11164
+#: src/readelf.c:11507
#, fuzzy, c-format
msgid ""
"\n"
@@ -5892,37 +5891,42 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11193
+#: src/readelf.c:11536
#, fuzzy, c-format
msgid " Version: %<PRId32>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:11211
+#: src/readelf.c:11555
#, fuzzy, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:11218
+#: src/readelf.c:11562
#, fuzzy, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:11225
+#: src/readelf.c:11569
#, fuzzy, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:11232
+#: src/readelf.c:11576
#, fuzzy, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " (オフセット: %#<PRIx64>)"
-#: src/readelf.c:11239
+#: src/readelf.c:11586
+#, fuzzy, c-format
+msgid " shortcut offset: %#<PRIx32>\n"
+msgstr " (終了オフセット: %#<PRIx64>)"
+
+#: src/readelf.c:11594
#, fuzzy, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " (終了オフセット: %#<PRIx64>)"
-#: src/readelf.c:11253
+#: src/readelf.c:11608
#, fuzzy, c-format
msgid ""
"\n"
@@ -5932,7 +5936,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11278
+#: src/readelf.c:11633
#, fuzzy, c-format
msgid ""
"\n"
@@ -5942,7 +5946,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11307
+#: src/readelf.c:11662
#, fuzzy, c-format
msgid ""
"\n"
@@ -5952,7 +5956,7 @@ msgstr ""
"オフセット %3$#<PRIx64> ã® DWARF セクション [%1$2zu] '%2$s' ã«ã¯ %4$zu 個ã®é …"
"ç›®ãŒã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:11339
+#: src/readelf.c:11705
#, fuzzy, c-format
msgid ""
"\n"
@@ -5961,18 +5965,37 @@ msgstr ""
"\n"
"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
-#: src/readelf.c:11477
+#: src/readelf.c:11790
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Shortcut table at offset %#<PRIx32> contains %zu slots:\n"
+msgstr ""
+"\n"
+"オフセット %#0<PRIx64> ã«ä¸å½“ãªã‚·ãƒ³ãƒœãƒ«ãƒ†ãƒ¼ãƒ–ル\n"
+
+#: src/readelf.c:11802
+#, c-format
+msgid "Language of main: %s\n"
+msgstr ""
+
+#: src/readelf.c:11803
+#, c-format
+msgid "Name of main: "
+msgstr ""
+
+#: src/readelf.c:11886
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "デãƒãƒƒã‚°å†…容記述å­ã‚’得られã¾ã›ã‚“: %s"
-#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573
-#: src/readelf.c:12630
+#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982
+#: src/readelf.c:13039
#, c-format
msgid "cannot convert core note data: %s"
msgstr "コアノートデータã®å¤‰æ›ãŒã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:12207
+#: src/readelf.c:12616
#, c-format
msgid ""
"\n"
@@ -5981,21 +6004,21 @@ msgstr ""
"\n"
"%*s... < %u 回ã®ç¹°è¿”ã—> ..."
-#: src/readelf.c:12709
+#: src/readelf.c:13118
msgid " Owner Data size Type\n"
msgstr " 所有者 データ大ãã•ã‚¿ã‚¤ãƒ—\n"
-#: src/readelf.c:12737
+#: src/readelf.c:13146
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12789
+#: src/readelf.c:13198
#, c-format
msgid "cannot get content of note: %s"
msgstr "ノートセクションã®å†…容をå–å¾—ã§ãã¾ã›ã‚“: %s"
-#: src/readelf.c:12822
+#: src/readelf.c:13231
#, c-format
msgid ""
"\n"
@@ -6005,7 +6028,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã® %3$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$2zu] "
"'%2$s':\n"
-#: src/readelf.c:12845
+#: src/readelf.c:13254
#, c-format
msgid ""
"\n"
@@ -6014,7 +6037,7 @@ msgstr ""
"\n"
"オフセット %2$#0<PRIx64> ã® %1$<PRIu64> ãƒã‚¤ãƒˆã®ãƒŽãƒ¼ãƒˆã‚»ã‚°ãƒ¡ãƒ³ãƒˆ:\n"
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, fuzzy, c-format
msgid ""
"\n"
@@ -6023,12 +6046,12 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12919 src/readelf.c:12970
+#: src/readelf.c:13328 src/readelf.c:13379
#, fuzzy, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "セクション [%Zu] '%s' ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãŒå¾—られã¾ã›ã‚“: %s"
-#: src/readelf.c:12924
+#: src/readelf.c:13333
#, fuzzy, c-format
msgid ""
"\n"
@@ -6038,7 +6061,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン"
"プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n"
-#: src/readelf.c:12929
+#: src/readelf.c:13338
#, fuzzy, c-format
msgid ""
"\n"
@@ -6049,7 +6072,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ [%1$Zu] '%2$s' ã®16進ダン"
"プã€%3$<PRIu64> ãƒã‚¤ãƒˆ:\n"
-#: src/readelf.c:12943
+#: src/readelf.c:13352
#, fuzzy, c-format
msgid ""
"\n"
@@ -6058,7 +6081,7 @@ msgstr ""
"\n"
"セクション [%Zu] '%s' ã«ã¯ãƒ€ãƒ³ãƒ—ã™ã¹ãデータãŒã‚ã‚Šã¾ã›ã‚“。\n"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, fuzzy, c-format
msgid ""
"\n"
@@ -6068,7 +6091,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ"
"イトã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:12980
+#: src/readelf.c:13389
#, fuzzy, c-format
msgid ""
"\n"
@@ -6079,7 +6102,7 @@ msgstr ""
"オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' ã«ã¯ %3$<PRIu64> ãƒ"
"イトã‚ã‚Šã¾ã™:\n"
-#: src/readelf.c:13028
+#: src/readelf.c:13437
#, c-format
msgid ""
"\n"
@@ -6088,7 +6111,7 @@ msgstr ""
"\n"
"セクション [%lu] ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6097,12 +6120,12 @@ msgstr ""
"\n"
"セクション '%s' ãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/readelf.c:13113
+#: src/readelf.c:13522
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "アーカイブã®ã‚·ãƒ³ãƒœãƒ«ç´¢å¼• '%s' を得られã¾ã›ã‚“: %s"
-#: src/readelf.c:13116
+#: src/readelf.c:13525
#, c-format
msgid ""
"\n"
@@ -6111,7 +6134,7 @@ msgstr ""
"\n"
"アーカイブ '%s' ã«ã¯ã‚·ãƒ³ãƒœãƒ«ç´¢å¼•ãŒã‚ã‚Šã¾ã›ã‚“\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
@@ -6120,12 +6143,12 @@ msgstr ""
"\n"
"アーカイブ '%s' ã®ç´¢å¼•ã¯ %zu 個ã®é …目をæŒã¡ã¾ã™:\n"
-#: src/readelf.c:13138
+#: src/readelf.c:13547
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "'%2$s' 㮠オフセット %1$zu ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’抽出ã§ãã¾ã›ã‚“: %3$s"
-#: src/readelf.c:13143
+#: src/readelf.c:13552
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "アーカイブメンãƒãƒ¼ '%s' ã«ã¯ä»¥ä¸‹ãŒã‚ã‚Šã¾ã™:\n"
@@ -6609,7 +6632,7 @@ msgstr "%s: ELF ヘッダーã®æ›´æ–°ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: shdrstrndx ã®å–得中ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:1712 src/strip.c:2553
+#: src/strip.c:1712 src/strip.c:2552
#, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: shdrstrndx ã®æ›´æ–°ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
@@ -6643,7 +6666,7 @@ msgstr "セクションヘッダー文字列テーブルを作æˆã™ã‚‹ãƒ¡ãƒ¢ãƒª
msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
-#: src/strip.c:2469 src/strip.c:2577
+#: src/strip.c:2469 src/strip.c:2574
#, c-format
msgid "while writing '%s': %s"
msgstr "'%s' を書込ã¿ä¸­: %s"
@@ -6663,22 +6686,22 @@ msgstr "デãƒãƒƒã‚°æƒ…å ±ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã‚’計算中"
msgid "%s: error while creating ELF header: %s"
msgstr "%s: ELF ヘッダーを生æˆã—ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2562
+#: src/strip.c:2560
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: ファイルを読込ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2602 src/strip.c:2622
+#: src/strip.c:2599 src/strip.c:2619
#, c-format
msgid "while writing '%s'"
msgstr "書ãè¾¼ã¿ä¸­ '%s'"
-#: src/strip.c:2659 src/strip.c:2666
+#: src/strip.c:2656 src/strip.c:2663
#, c-format
msgid "error while finishing '%s': %s"
msgstr "'%s' ã®çµ‚了中ã«ã‚¨ãƒ©ãƒ¼: %s"
-#: src/strip.c:2683 src/strip.c:2759
+#: src/strip.c:2680 src/strip.c:2756
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "'%s' ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨å¤‰æ›´æ—¥ä»˜ã‚’設定ã§ãã¾ã›ã‚“"
@@ -7127,7 +7150,7 @@ msgid ""
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr ""
@@ -7139,6 +7162,11 @@ msgstr "関数åã‚’ ã•ã‚‰ã« 表示"
msgid "Show instances of inlined functions"
msgstr "インライン関数ã®å®Ÿä½“を表示"
+#, c-format
+#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
+#~ msgstr ""
+#~ "セクション [%2d] '%s': セクション項目サイズ㌠ElfXX_Rela ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n"
+
#, fuzzy, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "セクションデータを割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“: %s"
diff --git a/po/pl.po b/po/pl.po
index 31ee8678..a8bf8ce8 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: 2023-03-03 16:09+0100\n"
+"POT-Creation-Date: 2023-11-03 17:36+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"
@@ -54,7 +54,7 @@ msgstr ""
"BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n"
"HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n"
-#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202
#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
@@ -537,7 +537,7 @@ msgstr "Brak zaplecza"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
+#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<nieznany>"
@@ -631,7 +631,7 @@ msgstr "nieprawidłowy rozmiar operandu źródłowego"
msgid "invalid size of destination operand"
msgstr "nieprawidłowy rozmiar operandu docelowego"
-#: libelf/elf_error.c:86 src/readelf.c:6415
+#: libelf/elf_error.c:86 src/readelf.c:6758
#, c-format
msgid "invalid encoding"
msgstr "nieprawidłowe kodowanie"
@@ -716,8 +716,8 @@ msgstr "dane/scn nie zgadzajÄ… siÄ™"
msgid "invalid section header"
msgstr "nieprawidłowy nagłówek sekcji"
-#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899
-#: src/readelf.c:11000 src/readelf.c:11188
+#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242
+#: src/readelf.c:11343 src/readelf.c:11531
#, c-format
msgid "invalid data"
msgstr "nieprawidłowe dane"
@@ -1374,8 +1374,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:1433 src/elflint.c:76
-#: src/readelf.c:160
+#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77
+#: src/readelf.c:161
msgid "FILE..."
msgstr "PLIK…"
@@ -1699,21 +1699,21 @@ msgid "unknown compression type '%s'"
msgstr "nieznany typ kompresji „%sâ€"
#. We need at least one input file.
-#: src/elfcompress.c:162 src/elfcompress.c:1444
+#: src/elfcompress.c:162 src/elfcompress.c:1447
#, c-format
msgid "No input file given"
msgstr "Nie podano pliku wejściowego"
-#: src/elfcompress.c:168 src/elfcompress.c:1448
+#: src/elfcompress.c:168 src/elfcompress.c:1451
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "Tylko jeden plik wejÅ›ciowy jest dozwolony z „-oâ€"
-#: src/elfcompress.c:1405
+#: src/elfcompress.c:1408
msgid "Place (de)compressed output into FILE"
msgstr "Umieszcza zdekompresowane wyjście w PLIKU"
-#: src/elfcompress.c:1408
+#: src/elfcompress.c:1411
#, fuzzy
#| msgid ""
#| "What type of compression to apply. TYPE can be 'none' (decompress), "
@@ -1729,7 +1729,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:1412
+#: src/elfcompress.c:1415
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
@@ -1737,11 +1737,11 @@ msgstr ""
"Nazwa SEKCJI do (de)kompresowania, SEKCJA jest rozszerzonym wzorem "
"(domyÅ›lnie „.?(z)debug*â€)"
-#: src/elfcompress.c:1415
+#: src/elfcompress.c:1418
msgid "Print a message for each section being (de)compressed"
msgstr "Wyświetla komunikat dla każdej (de)kompresowanej sekcji"
-#: src/elfcompress.c:1418
+#: src/elfcompress.c:1421
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
@@ -1750,31 +1750,31 @@ msgstr ""
"zaktualizowanie/przepisanie pliku, nawet jeśli żadna sekcja nie zostałaby "
"(zde)kompresowana"
-#: src/elfcompress.c:1421 src/strip.c:92
+#: src/elfcompress.c:1424 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:1424
+#: src/elfcompress.c:1427
msgid "Be silent when a section cannot be compressed"
msgstr "Bez zgłaszania, kiedy nie można zdekompresować sekcji"
-#: src/elfcompress.c:1434
+#: src/elfcompress.c:1437
msgid "Compress or decompress sections in an ELF file."
msgstr "Kompresuje lub dekompresuje sekcje w pliku ELF."
-#: src/elflint.c:62
+#: src/elflint.c:63
msgid "Be extremely strict, flag level 2 features."
msgstr "Bardzo ścisłe sprawdzanie, cechy poziomu 2 flag."
-#: src/elflint.c:63
+#: src/elflint.c:64
msgid "Do not print anything if successful"
msgstr "Nie wypisywanie niczego w przypadku powodzenia"
-#: src/elflint.c:64
+#: src/elflint.c:65
msgid "Binary is a separate debuginfo file"
msgstr "Plik binarny jest oddzielnym plikiem debuginfo"
-#: src/elflint.c:66
+#: src/elflint.c:67
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1783,172 +1783,172 @@ msgstr ""
"w pewien sposób"
#. Short description of program.
-#: src/elflint.c:72
+#: src/elflint.c:73
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:153 src/readelf.c:391
+#: src/elflint.c:154 src/readelf.c:413
#, c-format
msgid "cannot open input file '%s'"
msgstr "nie można otworzyć pliku wejÅ›ciowego „%sâ€"
-#: src/elflint.c:160
+#: src/elflint.c:161
#, 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:179
+#: src/elflint.c:180
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "błąd podczas zamykania deskryptora ELF: %s\n"
-#: src/elflint.c:183
+#: src/elflint.c:184
msgid "No errors"
msgstr "Brak błędów"
-#: src/elflint.c:218 src/readelf.c:603
+#: src/elflint.c:219 src/readelf.c:625
msgid "Missing file name.\n"
msgstr "Brak nazwy pliku.\n"
-#: src/elflint.c:283
+#: src/elflint.c:284
#, 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:291
+#: src/elflint.c:292
#, 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:358
#, 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:363
#, 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:367
#, 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:375
#, 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:381
#, 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:386
#, 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:391
#, c-format
msgid "unknown object file type %d\n"
msgstr "nieznany typ pliku obiektu %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:398
#, c-format
msgid "unknown machine type %d\n"
msgstr "nieznany typ komputera %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:402
#, c-format
msgid "unknown object file version\n"
msgstr "nieznana wersja pliku obiektu\n"
-#: src/elflint.c:407
+#: src/elflint.c:408
#, c-format
msgid "invalid program header offset\n"
msgstr "nieprawidłowy offset nagłówka programu\n"
-#: src/elflint.c:409
+#: src/elflint.c:410
#, 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:414
#, 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:422
#, 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:425
#, 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:439
#, 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:456
#, c-format
msgid "invalid section header index\n"
msgstr "nieprawidłowy indeks nagłówka sekcji\n"
-#: src/elflint.c:473
+#: src/elflint.c:474
#, 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:488
#, 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:505
#, 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:510
#, 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:517 src/elflint.c:534
#, 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:520 src/elflint.c:537
#, 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:523 src/elflint.c:540
#, 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:526 src/elflint.c:543
#, 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:529 src/elflint.c:546
#, 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:591
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1956,21 +1956,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:595
#, 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:4468
+#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610
+#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981
+#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511
#, 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:624 src/elflint.c:1699
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1979,7 +1979,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:647
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1988,12 +1988,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:659
#, 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:663
#, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
@@ -2002,33 +2002,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:672
#, 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:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686
+#: src/elflint.c:689 src/elflint.c:692
#, 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:695
#, 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:705
#, 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:714
#, 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:729
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -2037,7 +2037,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:735
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -2047,28 +2047,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:747
#, 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:755
#, 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:761
#, 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:766
#, 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:774
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2077,26 +2077,26 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): COMMON jest dozwolone tylko w plikach "
"relokowalnych\n"
-#: src/elflint.c:777
+#: src/elflint.c:778
#, 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:782
#, 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:833
#, 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:839 src/elflint.c:864 src/elflint.c:913
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2105,7 +2105,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:848
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2114,7 +2114,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:858 src/elflint.c:906
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2123,7 +2123,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): st_value spoza zakresu wskazywanej "
"sekcji [%2d] „%sâ€\n"
-#: src/elflint.c:884
+#: src/elflint.c:885
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2132,7 +2132,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:891
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2141,7 +2141,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:899
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2150,7 +2150,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol %zu (%s): st_value pomija wskazywanÄ… sekcjÄ™ [%2d] "
"„%sâ€\n"
-#: src/elflint.c:925
+#: src/elflint.c:926
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2159,7 +2159,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:933
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2168,12 +2168,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:940
#, 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:990
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2182,7 +2182,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol _GLOBAL_OFFSET_TABLE_ odnosi siÄ™ do bÅ‚Ä™dnej sekcji "
"[%2d]\n"
-#: src/elflint.c:996
+#: src/elflint.c:997
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2194,7 +2194,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:1013
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2203,7 +2203,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:1020
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2212,7 +2212,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:1028
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2221,7 +2221,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ."
"got\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1044
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2230,7 +2230,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do adresu "
"segmentu dynamicznego %#<PRIx64>\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1051
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2239,7 +2239,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do "
"rozmiaru segmentu dynamicznego %<PRIu64>\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1064
#, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2248,28 +2248,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:1068
#, 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:1106
#, 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:1122
#, 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:1133 src/elflint.c:1186
#, 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:1158 src/elflint.c:1211
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2278,7 +2278,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:1164 src/elflint.c:1217
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2287,50 +2287,45 @@ 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:1176
#, 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:1259
#, 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:1271
#, 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:1279
#, 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:1287
#, 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
-#, 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:1365
#, 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:1392
#, 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:1400
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2339,12 +2334,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: relokacja %zu: typ relokacji nieprawidÅ‚owy dla tego typu "
"pliku\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1408
#, 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:1426
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2353,12 +2348,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:1443
#, 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:1458
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2366,7 +2361,7 @@ msgid ""
msgstr ""
"sekcja [%2d] „%sâ€: relokacja %zu: relokacja kopii wzglÄ™dem symbolu typu %s\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1479
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2375,23 +2370,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:1494
#, 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:1534 src/elflint.c:1585
#, 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:1687
#, 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:1705
#, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2400,43 +2395,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:1713
#, 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:1718 src/elflint.c:2008
#, 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:1728
#, 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:1736
#, 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:1743
#, 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:1754
#, 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:1764
#, 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:1782
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -2444,7 +2439,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:1795
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -2453,14 +2448,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:1839
#, 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:1854
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -2469,48 +2464,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:1874 src/elflint.c:1902
#, 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:1886
#, 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:1895
#, 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:1910 src/elflint.c:1917
#, 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:1927 src/elflint.c:1931
#, 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:1937
#, 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:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960
#, 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:1972
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2518,7 +2513,7 @@ msgstr ""
"sekcja [%2d] „%sâ€: tylko pliki relokowalne mogÄ… mieć rozszerzonÄ… sekcjÄ™ "
"indeksów\n"
-#: src/elflint.c:1944
+#: src/elflint.c:1982
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
@@ -2526,31 +2521,31 @@ msgstr ""
"sekcja [%2d] „%sâ€: sekcja rozszerzonych indeksów sekcji nie dla tabeli "
"symboli\n"
-#: src/elflint.c:1948
+#: src/elflint.c:1986
#, 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:1991
#, 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:1994
#, 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:2003
#, 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:2018
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2559,24 +2554,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:2036
#, 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:2048
#, 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:2053
#, 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:2070 src/elflint.c:2127
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2584,43 +2579,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:2084 src/elflint.c:2141
#, 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:2098 src/elflint.c:2155
#, 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:2108
#, 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:2165
#, 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:2178
#, 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:2190
#, 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:2206
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2629,13 +2624,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:2215
#, 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:2249
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2643,7 +2638,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:2270
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2652,7 +2647,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:2283
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2660,7 +2655,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:2292
#, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2668,12 +2663,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:2322
#, 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:2327
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2681,41 +2676,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:2333
#, 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:2346
#, 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:2364
#, 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:2368
#, 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:2378
#, 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:2383
#, 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:2388
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2724,29 +2719,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:2437
#, 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:2461 src/elflint.c:2526 src/elflint.c:2561
#, 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:2482
#, 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:2493 src/elflint.c:2537 src/elflint.c:2574
#, 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:2508
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
@@ -2755,17 +2750,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:2595
#, 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:2605 src/elflint.c:2609
#, 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:2616
#, c-format
msgid ""
"symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2774,7 +2769,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:2628
#, c-format
msgid ""
"symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2783,12 +2778,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:2644
#, 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:2664
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2796,96 +2791,96 @@ msgstr ""
"sekcja [%2d] „%sâ€: w plikach obiektów relokowalnych dozwolone sÄ… tylko grupy "
"sekcji\n"
-#: src/elflint.c:2637
+#: src/elflint.c:2675
#, 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:2680
#, 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:2686
#, 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:2691
#, 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:2698
#, 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:2702
#, 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:2707
#, 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:2713
#, 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:2719
#, 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:2728
#, 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:2734
#, 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:2742
#, 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:2746
#, 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:2757
#, 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:2769
#, 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:2778
#, 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:2785
#, 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:2791
#, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2894,12 +2889,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:2798
#, 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:2995
#, c-format
msgid ""
"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2908,7 +2903,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:3007
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2916,76 +2911,76 @@ msgid ""
msgstr ""
"sekcja [%2d] „%s†ma innÄ… liczbÄ™ wpisów niż tabela symboli [%2d] „%sâ€\n"
-#: src/elflint.c:2985
+#: src/elflint.c:3023
#, 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:3039
#, 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:3047
#, 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:3061
#, 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:3066
#, 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:3076
#, 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:3129
#, 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:3137 src/elflint.c:3284
#, 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:3162 src/elflint.c:3338
#, 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:3169 src/elflint.c:3345
#, 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:3179
#, 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:3187
#, 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:3199
#, 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:3207
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2994,7 +2989,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:3216
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -3003,7 +2998,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:3225
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -3012,19 +3007,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:3236
#, 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:3253 src/elflint.c:3429
#, 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:3261 src/elflint.c:3437
#, c-format
msgid ""
"section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -3033,43 +3028,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:3276
#, 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:3323
#, 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:3327
#, 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:3333
#, 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:3360
#, 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:3367
#, 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:3375
#, 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:3395
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -3077,51 +3072,51 @@ msgstr ""
"sekcja [%2d] „%sâ€: wpis %d ma nieprawidÅ‚owe odniesienie do nazwy w danych "
"dodatkowych\n"
-#: src/elflint.c:3374
+#: src/elflint.c:3412
#, 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:3445
#, 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:3461
#, 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:3486
#, 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:3502
#, 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:3513
#, 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:3522
#, 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:3534
#, 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:3551
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -3129,19 +3124,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:3560
#, 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:3569
#, 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:3584
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -3149,7 +3144,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:3595
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -3157,23 +3152,23 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: podsekcja atrybutów ma nieoczekiwany znacznik "
"%u\n"
-#: src/elflint.c:3578
+#: src/elflint.c:3616
#, 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:3589
+#: src/elflint.c:3627
#, 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:3602
+#: src/elflint.c:3640
#, 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:3606
+#: src/elflint.c:3644
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
@@ -3181,12 +3176,12 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: atrybut %s ma nierozpoznanÄ… wartość "
"%<PRIu64>\n"
-#: src/elflint.c:3616
+#: src/elflint.c:3654
#, 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:3622
+#: src/elflint.c:3660
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -3194,47 +3189,47 @@ msgstr ""
"sekcja [%2d] „%sâ€: offset %zu: dodatkowe bajty po ostatniej sekcji "
"atrybutów\n"
-#: src/elflint.c:3719
+#: src/elflint.c:3758
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr "nie można uzyskać nagłówka sekcji zerowej\n"
-#: src/elflint.c:3723
+#: src/elflint.c:3762
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr "sekcja zerowa ma niezerowÄ… nazwÄ™\n"
-#: src/elflint.c:3725
+#: src/elflint.c:3764
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr "sekcja zerowa ma niezerowy typ\n"
-#: src/elflint.c:3727
+#: src/elflint.c:3766
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr "sekcja zerowa ma niezerowe flagi\n"
-#: src/elflint.c:3729
+#: src/elflint.c:3768
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr "sekcja zerowa ma niezerowy adres\n"
-#: src/elflint.c:3731
+#: src/elflint.c:3770
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr "sekcja zerowa ma niezerowy offset\n"
-#: src/elflint.c:3733
+#: src/elflint.c:3772
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr "sekcja zerowa ma niezerową wartość wyrównania\n"
-#: src/elflint.c:3735
+#: src/elflint.c:3774
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr "sekcja zerowa ma niezerową wartość rozmiaru wpisu\n"
-#: src/elflint.c:3738
+#: src/elflint.c:3777
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -3243,7 +3238,7 @@ msgstr ""
"sekcja zerowa ma niezerową wartość rozmiaru, a nagłówek ELF ma niezerową "
"wartość shnum\n"
-#: src/elflint.c:3742
+#: src/elflint.c:3781
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3252,7 +3247,7 @@ msgstr ""
"sekcja zerowa ma niezerową wartość dowiązań, a nagłówek ELF nie wskazuje "
"przepełnienia w shstrndx\n"
-#: src/elflint.c:3746
+#: src/elflint.c:3785
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3261,46 +3256,46 @@ msgstr ""
"sekcja zerowa ma niezerową wartość dowiązań, a nagłówek ELF nie wskazuje "
"przepełnienia w phnum\n"
-#: src/elflint.c:3764
+#: src/elflint.c:3803
#, 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:3773
+#: src/elflint.c:3812
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr "sekcja [%2zu]: nieprawidłowa nazwa\n"
-#: src/elflint.c:3800
+#: src/elflint.c:3839
#, 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:3817
+#: src/elflint.c:3856
#, 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:3835
+#: src/elflint.c:3874
#, 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:3852
+#: src/elflint.c:3891
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr "sekcja [%2zu] „%s†jest obecna w pliku obiektu\n"
-#: src/elflint.c:3858 src/elflint.c:3890
+#: src/elflint.c:3897 src/elflint.c:3929
#, 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:3863 src/elflint.c:3895
+#: src/elflint.c:3902 src/elflint.c:3934
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -3308,7 +3303,7 @@ msgid ""
msgstr ""
"sekcja [%2zu] „%s†nie ma flagi SHF_ALLOC, ale są segmenty wczytywalne\n"
-#: src/elflint.c:3871
+#: src/elflint.c:3910
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -3316,22 +3311,22 @@ msgstr ""
"sekcja [%2zu] „%s†jest tabelą indeksów sekcji rozszerzeń w pliku "
"nieobiektowym\n"
-#: src/elflint.c:3914
+#: src/elflint.c:3953
#, 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:3919
+#: src/elflint.c:3958
#, c-format
msgid "cannot get section header\n"
msgstr "nie można uzyskać nagłówka sekcji\n"
-#: src/elflint.c:3929
+#: src/elflint.c:3968
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "sekcja [%2zu] „%s†ma nieobsługiwany typ %d\n"
-#: src/elflint.c:3949
+#: src/elflint.c:3988
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3339,74 +3334,74 @@ msgstr ""
"sekcja [%2zu] „%s†zawiera nieprawidłowe flagi dla konkretnego procesora "
"%#<PRIx64>\n"
-#: src/elflint.c:3959
+#: src/elflint.c:3998
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "sekcja [%2zu] „%s†zawiera nieznane flagi %#<PRIx64>\n"
-#: src/elflint.c:3967
+#: src/elflint.c:4006
#, 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:3977
+#: src/elflint.c:4016
#, 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:3982
+#: src/elflint.c:4021
#, 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:3988
+#: src/elflint.c:4027
#, 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:3994
+#: src/elflint.c:4033
#, 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:3999
+#: src/elflint.c:4038
#, 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:4006
+#: src/elflint.c:4045
#, 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:4011
+#: src/elflint.c:4050
#, 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:4030
+#: src/elflint.c:4069
#, 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:4039
+#: src/elflint.c:4078
#, 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:4046
+#: src/elflint.c:4085
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "sekcja [%2zu] „%s†jest wykonywalne i zapisywalne\n"
-#: src/elflint.c:4077
+#: src/elflint.c:4116
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3415,7 +3410,7 @@ msgstr ""
"sekcja [%2zu] „%s†nie jest w całości zawarta w segmencie wpisu %d nagłówka "
"programu\n"
-#: src/elflint.c:4087
+#: src/elflint.c:4126
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3424,7 +3419,7 @@ msgstr ""
"sekcja [%2zu] „%s†ma typ NOBITS, a jest odczytywana z pliku w segmencie "
"wpisu %d nagłówka programu\n"
-#: src/elflint.c:4113
+#: src/elflint.c:4152
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3433,7 +3428,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:4124
+#: src/elflint.c:4163
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3442,17 +3437,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:4135
+#: src/elflint.c:4174
#, 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:4145
+#: src/elflint.c:4184
#, 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:4155
+#: src/elflint.c:4194
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3460,7 +3455,7 @@ msgstr ""
"sekcja [%2zu] „%sâ€: ma flagÄ™ alloc, ale sekcja nie jest w żadnym segmencie "
"wczytywalnym\n"
-#: src/elflint.c:4161
+#: src/elflint.c:4200
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3469,7 +3464,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:4169
+#: src/elflint.c:4208
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3477,17 +3472,17 @@ msgstr ""
"sekcja [%2zu] „%sâ€: pliki relokowalne nie mogÄ… mieć tabeli symboli "
"dynamicznych\n"
-#: src/elflint.c:4220
+#: src/elflint.c:4263
#, 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:4243
+#: src/elflint.c:4286
#, 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:4254
+#: src/elflint.c:4297
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
@@ -3495,14 +3490,14 @@ msgstr ""
"wczytywalny segment [%u] jest wykonywalny, ale nie zawiera wykonywalnych "
"sekcji\n"
-#: src/elflint.c:4260
+#: src/elflint.c:4303
#, 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:4271
+#: src/elflint.c:4314
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3511,23 +3506,23 @@ msgstr ""
"brak sekcji .gnu.versym, ale istnieje sekcja .gnu.versym_d lub .gnu."
"versym_r\n"
-#: src/elflint.c:4284
+#: src/elflint.c:4327
#, c-format
msgid "duplicate version index %d\n"
msgstr "powtórzony indeks wersji %d\n"
-#: src/elflint.c:4298
+#: src/elflint.c:4341
#, 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:4347
+#: src/elflint.c:4390
#, 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:4351
+#: src/elflint.c:4394
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3535,7 +3530,7 @@ msgstr ""
"sekcja [%2d]: „%sâ€: nieznany typ notatki pliku core %<PRIu32> pod offsetem "
"%zu\n"
-#: src/elflint.c:4407
+#: src/elflint.c:4450
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3544,7 +3539,7 @@ msgstr ""
"phdr[%d]: nieznany typ notatki pliku obiektu %<PRIu32> o nazwie właściciela "
"„%s†pod offsetem %zu\n"
-#: src/elflint.c:4412
+#: src/elflint.c:4455
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3553,37 +3548,37 @@ msgstr ""
"sekcja [%2d] „%sâ€: nieznany typ notatki pliku obiektu %<PRIu32> o nazwie "
"właściciela „%s†pod offsetem %zu\n"
-#: src/elflint.c:4431
+#: src/elflint.c:4474
#, 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:4451
+#: src/elflint.c:4494
#, 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:4454
+#: src/elflint.c:4497
#, 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:4475
+#: src/elflint.c:4518
#, 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:4482
+#: src/elflint.c:4525
#, 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:4485
+#: src/elflint.c:4528
#, 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:4503
+#: src/elflint.c:4546
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3591,135 +3586,135 @@ msgstr ""
"tylko pliki wykonywalne, obiekty współdzielone i pliki core mogą mieć "
"nagłówki programu\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4561
#, 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:4528
+#: src/elflint.c:4571
#, 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:4539
+#: src/elflint.c:4582
#, 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:4547
+#: src/elflint.c:4590
#, 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:4554
+#: src/elflint.c:4597
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "statyczny plik wykonywalny nie może mieć sekcji dynamicznych\n"
-#: src/elflint.c:4568
+#: src/elflint.c:4611
#, 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:4571
+#: src/elflint.c:4614
#, 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:4581
+#: src/elflint.c:4624
#, 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:4602
+#: src/elflint.c:4645
#, 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:4613
+#: src/elflint.c:4656
#, 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:4620
+#: src/elflint.c:4663
#, 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:4629 src/elflint.c:4652
+#: src/elflint.c:4672 src/elflint.c:4695
#, 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:4658
+#: src/elflint.c:4701
#, 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:4685
+#: src/elflint.c:4728
#, 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:4688
+#: src/elflint.c:4731
#, 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:4701
+#: src/elflint.c:4744
#, 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:4709
+#: src/elflint.c:4752
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "tabela wyszukiwania ramki wywołania musi być przydzielona\n"
-#: src/elflint.c:4712
+#: src/elflint.c:4755
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "sekcja [%2zu] „%sâ€: musi być przydzielona\n"
-#: src/elflint.c:4716
+#: src/elflint.c:4759
#, 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:4719
+#: src/elflint.c:4762
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "sekcja [%2zu] „%s†nie może być zapisywalna\n"
-#: src/elflint.c:4724
+#: src/elflint.c:4767
#, 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:4727
+#: src/elflint.c:4770
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "sekcja [%2zu] „%s†nie może być wykonywalna\n"
-#: src/elflint.c:4741
+#: src/elflint.c:4784
#, 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:4748
+#: src/elflint.c:4791
#, 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:4751
+#: src/elflint.c:4794
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3728,7 +3723,7 @@ msgstr ""
"wpis nagłówka programu %d: offset w pliku i adres wirtualny nie są "
"wielokrotnością wyrównania\n"
-#: src/elflint.c:4764
+#: src/elflint.c:4807
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3737,17 +3732,17 @@ msgstr ""
"plik wykonywalny/DSO z sekcją .eh_frame_hdr nie ma wpisu nagłówka programu "
"PT_GNU_EH_FRAME"
-#: src/elflint.c:4798
+#: src/elflint.c:4841
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "nie można odczytać nagłówka ELF: %s\n"
-#: src/elflint.c:4810
+#: src/elflint.c:4853
#, c-format
msgid "cannot create backend for ELF file\n"
msgstr "nie można utworzyć zaplecza dla pliku ELF\n"
-#: src/elflint.c:4831
+#: src/elflint.c:4874
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr "flaga relokacji tekstu jest ustawiona, ale niepotrzebna\n"
@@ -3960,7 +3955,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: BÅÄ„D WEWNĘTRZNY %d (%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
-#: src/strip.c:2766
+#: src/strip.c:2763
#, c-format
msgid "while closing '%s'"
msgstr "podczas zamykania „%sâ€"
@@ -4003,13 +3998,13 @@ msgstr "%s%s%s: nie rozpoznano formatu pliku"
msgid "cannot create search tree"
msgstr "nie można utworzyć drzewa wyszukiwania"
-#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
-#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097
-#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809
-#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613
-#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803
-#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467
-#: src/strip.c:1093
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685
+#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123
+#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854
+#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896
+#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029
+#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 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"
@@ -4118,7 +4113,7 @@ msgstr "Wyświetla tylko informacje o sekcji NAZWA."
msgid "Show information from FILEs (a.out by default)."
msgstr "Wyświetla informacje z PLIKÓW (domyślnie a.out)."
-#: src/objdump.c:217 src/readelf.c:608
+#: src/objdump.c:217 src/readelf.c:630
msgid "No operation specified.\n"
msgstr "Nie podano działania.\n"
@@ -4127,11 +4122,11 @@ msgstr "Nie podano działania.\n"
msgid "while close `%s'"
msgstr "podczas zamykania „%sâ€"
-#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383
+#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409
msgid "INVALID SYMBOL"
msgstr "NIEPRAWIDÅOWY SYMBOL"
-#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419
+#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445
msgid "INVALID SECTION"
msgstr "NIEPRAWIDÅOWA SEKCJA"
@@ -4188,18 +4183,18 @@ msgstr "„%s†nie jest archiwum"
msgid "error while freeing sub-ELF descriptor: %s"
msgstr "błąd podczas zwalniania deskryptora pod-ELF: %s"
-#: src/readelf.c:96
+#: src/readelf.c:97
msgid "ELF input selection:"
msgstr "Wybór wyjścia ELF:"
-#: src/readelf.c:98
+#: src/readelf.c:99
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:101
+#: src/readelf.c:102
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
@@ -4207,71 +4202,71 @@ 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:103
+#: src/readelf.c:104
msgid "ELF output selection:"
msgstr "Wybór wyjścia ELF:"
-#: src/readelf.c:105
+#: src/readelf.c:106
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr "Wszystkie te plus -p .strtab -p .dynstr -p .comment"
-#: src/readelf.c:106
+#: src/readelf.c:107
msgid "Display the dynamic segment"
msgstr "Wyświetla segment dynamiczny"
-#: src/readelf.c:107
+#: src/readelf.c:108
msgid "Display the ELF file header"
msgstr "Wyświetla nagłówek pliku ELF"
-#: src/readelf.c:109
+#: src/readelf.c:110
msgid "Display histogram of bucket list lengths"
msgstr "Wyświetla histogram długości list kubełków"
-#: src/readelf.c:110
+#: src/readelf.c:111
msgid "Display the program headers"
msgstr "Wyświetla nagłówki programu"
-#: src/readelf.c:112
+#: src/readelf.c:113
msgid "Display relocations"
msgstr "Wyświetla relokacje"
-#: src/readelf.c:113
+#: src/readelf.c:114
msgid "Display the section groups"
msgstr "Wyświetla grupy sekcji"
-#: src/readelf.c:114
+#: src/readelf.c:115
msgid "Display the sections' headers"
msgstr "Wyświetla nagłówki sekcji"
-#: src/readelf.c:117
+#: src/readelf.c:118
msgid "Display the symbol table sections"
msgstr "Wyświetla sekcje tabeli symboli"
-#: src/readelf.c:120
+#: src/readelf.c:121
msgid "Display (only) the dynamic symbol table"
msgstr "Wyświetla (tylko) tabelę symboli dynamicznych"
-#: src/readelf.c:121
+#: src/readelf.c:122
msgid "Display versioning information"
msgstr "Wyświetla informacje o wersji"
-#: src/readelf.c:122
+#: src/readelf.c:123
msgid "Display the ELF notes"
msgstr "Wyświetla notatki ELF"
-#: src/readelf.c:124
+#: src/readelf.c:125
msgid "Display architecture specific information, if any"
msgstr "Wyświetla informacje dla konkretnej architektury, jeśli są"
-#: src/readelf.c:126
+#: src/readelf.c:127
msgid "Display sections for exception handling"
msgstr "Wyświetla sekcje do obsługi wyjątków"
-#: src/readelf.c:128
+#: src/readelf.c:129
msgid "Additional output selection:"
msgstr "Dodatkowy wybór wyjścia:"
-#: src/readelf.c:130
+#: src/readelf.c:131
msgid ""
"Display DWARF section content. SECTION can be one of abbrev, addr, aranges, "
"decodedaranges, frame, gdb_index, info, info+, loc, line, decodedline, "
@@ -4281,42 +4276,42 @@ msgstr ""
"aranges, decodedaranges, frame, gdb_index, info, info+, loc, line, "
"decodedline, ranges, pubnames, str, macinfo, macro lub exception"
-#: src/readelf.c:134
+#: src/readelf.c:135
msgid "Dump the uninterpreted contents of SECTION, by number or name"
msgstr "Zrzuca niezinterpretowaną zawartość SEKCJI, według liczny lub nazwy"
-#: src/readelf.c:136
+#: src/readelf.c:137
msgid "Print string contents of sections"
msgstr "Wyświetla zawartość ciągów sekcji"
-#: src/readelf.c:139
+#: src/readelf.c:140
msgid "Display the symbol index of an archive"
msgstr "Wyświetla indeks symboli archiwum"
-#: src/readelf.c:141
+#: src/readelf.c:142
msgid "Use the dynamic segment when possible for displaying info"
msgstr ""
-#: src/readelf.c:143
+#: src/readelf.c:144
msgid "Output control:"
msgstr "Kontrola wyjścia:"
-#: src/readelf.c:145
+#: src/readelf.c:146
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:147
+#: src/readelf.c:148
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:149
+#: src/readelf.c:150
msgid "Ignored for compatibility (lines always wide)"
msgstr "Ignorowane dla zgodności (wiersze są zawsze szerokie)"
-#: src/readelf.c:151
+#: src/readelf.c:152
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
@@ -4326,40 +4321,40 @@ msgstr ""
"używane z opcją -p lub -x)"
#. Short description of program.
-#: src/readelf.c:156
+#: src/readelf.c:157
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:373
+#: src/readelf.c:395
msgid "yes"
msgstr "tak"
-#: src/readelf.c:374
+#: src/readelf.c:396
msgid "no"
msgstr "nie"
-#: src/readelf.c:576
+#: src/readelf.c:598
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Nieznana sekcja debugowania DWARF „%sâ€.\n"
-#: src/readelf.c:647 src/readelf.c:758
+#: src/readelf.c:669 src/readelf.c:780
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "nie można utworzyć deskryptora ELF: %s"
-#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
+#: src/readelf.c:676 src/readelf.c:1002 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:672 src/readelf.c:1300 src/readelf.c:1508
+#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530
#, c-format
msgid "cannot get section: %s"
msgstr "nie można uzyskać sekcji: %s"
-#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033
+#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442
#: 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
@@ -4368,120 +4363,120 @@ msgstr "nie można uzyskać sekcji: %s"
msgid "cannot get section header: %s"
msgstr "nie można uzyskać nagłówka sekcji: %s"
-#: src/readelf.c:689
+#: src/readelf.c:711
#, c-format
msgid "cannot get section name"
msgstr "nie można uzyskać nazwy sekcji"
-#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989
-#: src/readelf.c:11173
+#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332
+#: src/readelf.c:11516
#, c-format
msgid "cannot get %s content: %s"
msgstr "nie można uzyskać zwartości %s: %s"
-#: src/readelf.c:714
+#: src/readelf.c:736
#, c-format
msgid "cannot create temp file '%s'"
msgstr "nie można utworzyć pliku tymczasowego „%sâ€"
-#: src/readelf.c:723
+#: src/readelf.c:745
#, c-format
msgid "cannot write section data"
msgstr "nie można zapisać danych sekcji"
-#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
+#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "błąd podczas zamykania deskryptora ELF: %s"
-#: src/readelf.c:736
+#: src/readelf.c:758
#, c-format
msgid "error while rewinding file descriptor"
msgstr "błąd podczas przewijania deskryptora pliku"
-#: src/readelf.c:770
+#: src/readelf.c:792
#, 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:874
+#: src/readelf.c:896
#, c-format
msgid "cannot stat input file"
msgstr "nie można wykonać stat na pliku wejściowym"
-#: src/readelf.c:876
+#: src/readelf.c:898
#, c-format
msgid "input file is empty"
msgstr "plik wejściowy jest pusty"
-#: src/readelf.c:878
+#: src/readelf.c:900
#, c-format
msgid "failed reading '%s': %s"
msgstr "odczytanie „%s†się nie powiodło: %s"
-#: src/readelf.c:907
+#: src/readelf.c:929
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "Brak sekcji „%s†w „%sâ€"
-#: src/readelf.c:966
+#: src/readelf.c:988
#, c-format
msgid "cannot read ELF header: %s"
msgstr "nie można odczytać nagłówka ELF: %s"
-#: src/readelf.c:974
+#: src/readelf.c:996
#, c-format
msgid "cannot create EBL handle"
msgstr "nie można utworzyć uchwytu EBL"
-#: src/readelf.c:985
+#: src/readelf.c:1007
#, 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:1017
+#: src/readelf.c:1039
#, c-format
msgid "cannot read ELF: %s"
msgstr "nie można odczytać danych ELF: %s"
-#: src/readelf.c:1050
+#: src/readelf.c:1072
#, fuzzy
#| msgid "cannot get section: %s"
msgid "cannot find section"
msgstr "nie można uzyskać sekcji: %s"
-#: src/readelf.c:1087
+#: src/readelf.c:1109
msgid "NONE (None)"
msgstr "NONE (żaden)"
-#: src/readelf.c:1088
+#: src/readelf.c:1110
msgid "REL (Relocatable file)"
msgstr "REL (plik relokowalny)"
-#: src/readelf.c:1089
+#: src/readelf.c:1111
msgid "EXEC (Executable file)"
msgstr "EXEC (plik wykonywalny)"
-#: src/readelf.c:1090
+#: src/readelf.c:1112
msgid "DYN (Shared object file)"
msgstr "DYN (plik obiektu współdzielonego)"
-#: src/readelf.c:1091
+#: src/readelf.c:1113
msgid "CORE (Core file)"
msgstr "CORE (plik core)"
-#: src/readelf.c:1096
+#: src/readelf.c:1118
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "Zależny od systemu: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1098
+#: src/readelf.c:1120
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Zależny od procesora: (%x)\n"
-#: src/readelf.c:1108
+#: src/readelf.c:1130
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4489,7 +4484,7 @@ msgstr ""
"Nagłówek ELF:\n"
" Magic: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4498,123 +4493,123 @@ msgstr ""
"\n"
" Klasa: %s\n"
-#: src/readelf.c:1117
+#: src/readelf.c:1139
#, c-format
msgid " Data: %s\n"
msgstr " Dane: %s\n"
-#: src/readelf.c:1123
+#: src/readelf.c:1145
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " Wersja Ident: %hhd %s\n"
-#: src/readelf.c:1125 src/readelf.c:1147
+#: src/readelf.c:1147 src/readelf.c:1169
msgid "(current)"
msgstr "(bieżąca)"
-#: src/readelf.c:1129
+#: src/readelf.c:1151
#, c-format
msgid " OS/ABI: %s\n"
msgstr " System operacyjny/ABI: %s\n"
-#: src/readelf.c:1132
+#: src/readelf.c:1154
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " Wersja ABI: %hhd\n"
-#: src/readelf.c:1135
+#: src/readelf.c:1157
msgid " Type: "
msgstr " Typ: "
-#: src/readelf.c:1140
+#: src/readelf.c:1162
#, c-format
msgid " Machine: %s\n"
msgstr " Komputer: %s\n"
-#: src/readelf.c:1142
+#: src/readelf.c:1164
#, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Komputer: <nieznany>: 0x%x\n"
-#: src/readelf.c:1145
+#: src/readelf.c:1167
#, c-format
msgid " Version: %d %s\n"
msgstr " Wersja: %d %s\n"
-#: src/readelf.c:1149
+#: src/readelf.c:1171
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " Adres punktu wejściowego: %#<PRIx64>\n"
-#: src/readelf.c:1152
+#: src/readelf.c:1174
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Początek nagłówków programu: %<PRId64> %s\n"
-#: src/readelf.c:1153 src/readelf.c:1156
+#: src/readelf.c:1175 src/readelf.c:1178
msgid "(bytes into file)"
msgstr "(bajtów w pliku)"
-#: src/readelf.c:1155
+#: src/readelf.c:1177
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Początek nagłówków sekcji: %<PRId64> %s\n"
-#: src/readelf.c:1158
+#: src/readelf.c:1180
#, c-format
msgid " Flags: %s\n"
msgstr " Flagi: %s\n"
-#: src/readelf.c:1161
+#: src/readelf.c:1183
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n"
-#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182
+#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204
msgid "(bytes)"
msgstr "(bajtów)"
-#: src/readelf.c:1164
+#: src/readelf.c:1186
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n"
-#: src/readelf.c:1167
+#: src/readelf.c:1189
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków programu: %<PRId16>"
-#: src/readelf.c:1174
+#: src/readelf.c:1196
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> w [0].sh_info)"
-#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208
+#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230
msgid " ([0] not available)"
msgstr " ([0] niedostępny)"
-#: src/readelf.c:1181
+#: src/readelf.c:1203
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n"
-#: src/readelf.c:1184
+#: src/readelf.c:1206
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>"
-#: src/readelf.c:1191
+#: src/readelf.c:1213
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> w [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1204
+#: src/readelf.c:1226
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> w [0].sh_link)"
-#: src/readelf.c:1212
+#: src/readelf.c:1234
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4623,7 +4618,7 @@ msgstr ""
" Indeks tabeli ciągów nagłówków sekcji: XINDEX%s\n"
"\n"
-#: src/readelf.c:1216
+#: src/readelf.c:1238
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4632,12 +4627,12 @@ msgstr ""
" Indeks tabeli ciągów nagłówków sekcji: %<PRId16>\n"
"\n"
-#: src/readelf.c:1266 src/readelf.c:1474
+#: src/readelf.c:1288 src/readelf.c:1496
#, c-format
msgid "cannot get number of sections: %s"
msgstr "nie można uzyskać liczby sekcji: %s"
-#: src/readelf.c:1269
+#: src/readelf.c:1291
#, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4646,16 +4641,16 @@ msgstr ""
"Liczba nagłówków sekcji: %zd, rozpoczynających się od offsetu %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1277
+#: src/readelf.c:1299
#, 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:1280
+#: src/readelf.c:1302
msgid "Section Headers:"
msgstr "Nagłówki sekcji:"
-#: src/readelf.c:1283
+#: src/readelf.c:1305
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4663,7 +4658,7 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozm. ES Flagi Lk "
"Inf Al"
-#: src/readelf.c:1285
+#: src/readelf.c:1307
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4671,36 +4666,36 @@ msgstr ""
"[Nr] Nazwa Typ Adres Offset Rozmiar ES "
"Flagi Lk Inf Al"
-#: src/readelf.c:1290
+#: src/readelf.c:1312
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1292
+#: src/readelf.c:1314
msgid " [Compression Size Al]"
msgstr " [Kompresja Rozmiar Al]"
-#: src/readelf.c:1370
+#: src/readelf.c:1392
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr "błędny nagłówek kompresji dla sekcji %zd: %s"
-#: src/readelf.c:1381
+#: src/readelf.c:1403
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "błędny rozmiar kompresji gnu dla sekcji %zd: %s"
-#: src/readelf.c:1399
+#: src/readelf.c:1421
msgid "Program Headers:"
msgstr "Nagłówki programu:"
-#: src/readelf.c:1401
+#: src/readelf.c:1423
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg "
"Wyrównanie"
-#: src/readelf.c:1404
+#: src/readelf.c:1426
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4708,12 +4703,12 @@ msgstr ""
" Typ Offset AdresWirtualny AdresFizyczny RozmPlik "
"RozmPam Flg Wyrównanie"
-#: src/readelf.c:1461
+#: src/readelf.c:1483
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Wywołanie interpretera programu: %s]\n"
-#: src/readelf.c:1486
+#: src/readelf.c:1508
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4723,12 +4718,12 @@ msgstr ""
" Mapowanie sekcji do segmentów:\n"
" Segment sekcji…"
-#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
+#: src/readelf.c:1519 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:1641
+#: src/readelf.c:1663
#, c-format
msgid ""
"\n"
@@ -4746,7 +4741,7 @@ msgstr[2] ""
"\n"
"Grupa sekcji COMDAT [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n"
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4764,32 +4759,32 @@ msgstr[2] ""
"\n"
"Grupa sekcji [%2zu] „%s†z podpisem „%s†zawiera %zu wpisów:\n"
-#: src/readelf.c:1654
+#: src/readelf.c:1676
msgid "<INVALID SYMBOL>"
msgstr "<NIEPRAWIDÅOWY SYMBOL>"
-#: src/readelf.c:1668
+#: src/readelf.c:1690
msgid "<INVALID SECTION>"
msgstr "<NIEPRAWIDÅOWY SEKCJA>"
-#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881
-#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956
-#: src/readelf.c:12963
+#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212
+#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365
+#: src/readelf.c:13372
msgid "Couldn't uncompress section"
msgstr "Nie można dekompresować sekcji"
-#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585
+#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916
#, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "nie można uzyskać nagłówka sekcji [%zd]: %s"
-#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890
-#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619
+#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221
+#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "nieprawidłowa wartość sh_link w sekcji %zu"
-#: src/readelf.c:1867
+#: src/readelf.c:1889
#, c-format
msgid ""
"\n"
@@ -4815,7 +4810,7 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"'%s'\n"
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, fuzzy, c-format
#| msgid ""
#| "\n"
@@ -4849,42 +4844,42 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"'%s'\n"
-#: src/readelf.c:1890
+#: src/readelf.c:1912
msgid " Type Value\n"
msgstr " Typ Wartość\n"
-#: src/readelf.c:1899
+#: src/readelf.c:1921
#, 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:1938
+#: src/readelf.c:1960
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Biblioteka współdzielona: [%s]\n"
-#: src/readelf.c:1942
+#: src/readelf.c:1964
#, c-format
msgid "Library soname: [%s]\n"
msgstr "soname biblioteki: [%s]\n"
-#: src/readelf.c:1946
+#: src/readelf.c:1968
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "rpath biblioteki: [%s]\n"
-#: src/readelf.c:1950
+#: src/readelf.c:1972
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "runpath biblioteki: [%s]\n"
-#: src/readelf.c:1969
+#: src/readelf.c:1993
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (bajtów)\n"
-#: src/readelf.c:2083 src/readelf.c:2272
+#: src/readelf.c:2109 src/readelf.c:2298
#, c-format
msgid ""
"\n"
@@ -4893,7 +4888,7 @@ msgstr ""
"\n"
"Nieprawidłowa tabela symboli pod offsetem %#0<PRIx64>\n"
-#: src/readelf.c:2100 src/readelf.c:2289
+#: src/readelf.c:2126 src/readelf.c:2315
#, c-format
msgid ""
"\n"
@@ -4922,7 +4917,8 @@ 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:2115 src/readelf.c:2304
+#. A .relr.dyn section does not refer to a specific section.
+#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485
#, c-format
msgid ""
"\n"
@@ -4940,30 +4936,40 @@ msgstr[2] ""
"\n"
"Sekcja relokacji [%2u] „%s†pod offsetem %#0<PRIx64> zawiera %d wpisów:\n"
-#: src/readelf.c:2125
+#: src/readelf.c:2151
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2127
+#: src/readelf.c:2153
msgid " Offset Type Value Name\n"
msgstr " Offset Typ Wartość Nazwa\n"
-#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225
-#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396
-#: src/readelf.c:2418 src/readelf.c:2431
+#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251
+#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422
+#: src/readelf.c:2444 src/readelf.c:2457
msgid "<INVALID RELOC>"
msgstr "<NIEPRAWIDÅOWA RELOKACJA>"
-#: src/readelf.c:2314
+#: src/readelf.c:2340
msgid " Offset Type Value Addend Name\n"
msgstr " Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2316
+#: src/readelf.c:2342
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Offset Typ Wartość Koniec Nazwa\n"
-#: src/readelf.c:2558
+#: src/readelf.c:2654
+#, 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:2750
+#, c-format
+msgid "bad dynamic symbol"
+msgstr "błędny symbol dynamiczny"
+
+#: src/readelf.c:2868
#, c-format
msgid ""
"\n"
@@ -4981,7 +4987,7 @@ msgstr[2] ""
"\n"
"Tabela symboli [%2u] „%s†zawiera %u wpisów:\n"
-#: src/readelf.c:2563
+#: src/readelf.c:2873
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -4989,33 +4995,27 @@ 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:2571
+#: src/readelf.c:2881
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:2573
+#: src/readelf.c:2883
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n"
-#: src/readelf.c:2593
-#, 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:2686
-#, c-format
-msgid "bad dynamic symbol"
-msgstr "błędny symbol dynamiczny"
+#: src/readelf.c:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2771
+#: src/readelf.c:3102
msgid "none"
msgstr "brak"
-#: src/readelf.c:2788
+#: src/readelf.c:3119
msgid "| <unknown>"
msgstr "| <nieznany>"
-#: src/readelf.c:2818
+#: src/readelf.c:3149
#, c-format
msgid ""
"\n"
@@ -5041,17 +5041,17 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:2839
+#: src/readelf.c:3170
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n"
-#: src/readelf.c:2852
+#: src/readelf.c:3183
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n"
-#: src/readelf.c:2894
+#: src/readelf.c:3225
#, c-format
msgid ""
"\n"
@@ -5077,19 +5077,19 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:2922
+#: src/readelf.c:3253
#, 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:2937
+#: src/readelf.c:3268
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: Rodzic %d: %s\n"
#. Print the header.
-#: src/readelf.c:3197
+#: src/readelf.c:3528
#, c-format
msgid ""
"\n"
@@ -5112,15 +5112,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:3225
+#: src/readelf.c:3556
msgid " 0 *local* "
msgstr " 0 *lokalny* "
-#: src/readelf.c:3230
+#: src/readelf.c:3561
msgid " 1 *global* "
msgstr " 1 *globalny* "
-#: src/readelf.c:3272
+#: src/readelf.c:3603
#, c-format
msgid ""
"\n"
@@ -5151,22 +5151,22 @@ msgstr[2] ""
" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> DowiÄ…zanie do sekcji: [%2u] "
"„%sâ€\n"
-#: src/readelf.c:3294
+#: src/readelf.c:3625
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Długość Liczba % całości Pokrycie\n"
-#: src/readelf.c:3296
+#: src/readelf.c:3627
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3303
+#: src/readelf.c:3634
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3316
+#: src/readelf.c:3647
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -5175,37 +5175,37 @@ msgstr ""
" Średnia liczba testów: udane wyszukania: %f\n"
"\t\t\t nieudane wyszukania: %f\n"
-#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464
+#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "nie można uzyskać danych dla sekcji %d: %s"
-#: src/readelf.c:3342
+#: src/readelf.c:3673
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash %d"
-#: src/readelf.c:3371
+#: src/readelf.c:3702
#, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "nieprawidłowy łańcuch w sekcji sysv.hash %d"
-#: src/readelf.c:3406
+#: src/readelf.c:3737
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "nieprawidłowe dane w sekcji sysv.hash64 %d"
-#: src/readelf.c:3437
+#: src/readelf.c:3768
#, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "nieprawidłowy łańcuch w sekcji sysv.hash64 %d"
-#: src/readelf.c:3473
+#: src/readelf.c:3804
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "nieprawidłowe dane w sekcji gnu.hash %d"
-#: src/readelf.c:3539
+#: src/readelf.c:3870
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -5215,7 +5215,7 @@ msgstr ""
" Rozmiar maski bitowej: %zu B %<PRIuFAST32>%% b ustawionych drugie "
"przesunięcie skrótu: %u\n"
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -5236,7 +5236,7 @@ msgstr[2] ""
"Sekcja listy bibliotek [%2zu] „%s†pod offsetem %#0<PRIx64> zawiera %d "
"wpisów:\n"
-#: src/readelf.c:3638
+#: src/readelf.c:3969
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -5244,7 +5244,7 @@ msgstr ""
" Biblioteka Czas Suma k. Wersja "
"Flagi"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -5254,107 +5254,107 @@ msgstr ""
"\n"
"Sekcja atrybutów obiektu [%2zu] „%s†%<PRIu64> B pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:3715
+#: src/readelf.c:4046
msgid " Owner Size\n"
msgstr " Właściciel Rozmiar\n"
-#: src/readelf.c:3739
+#: src/readelf.c:4070
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3778
+#: src/readelf.c:4109
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3783
+#: src/readelf.c:4114
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Plik: %11<PRIu32>\n"
-#: src/readelf.c:3833
+#: src/readelf.c:4164
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3836
+#: src/readelf.c:4167
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3839
+#: src/readelf.c:4170
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3849
+#: src/readelf.c:4180
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3852
+#: src/readelf.c:4183
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3890
+#: src/readelf.c:4221
#, fuzzy
#| msgid "couldn't get shdr for group section: %s"
msgid "Couldn't get data from section"
msgstr "nie można uzyskać shdr dla sekcji grupy: %s"
-#: src/readelf.c:3955
+#: src/readelf.c:4286
msgid "sprintf failure"
msgstr "sprintf się nie powiodło"
-#: src/readelf.c:4439
+#: src/readelf.c:4770
msgid "empty block"
msgstr "pusty blok"
-#: src/readelf.c:4442
+#: src/readelf.c:4773
#, c-format
msgid "%zu byte block:"
msgstr "blok o %zu B:"
-#: src/readelf.c:4920
+#: src/readelf.c:5251
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%2<PRIuMAX>] %s <SKRÓCONE>\n"
-#: src/readelf.c:5080
+#: src/readelf.c:5423
#, 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:5087
+#: src/readelf.c:5430
#, 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:5094
+#: src/readelf.c:5437
#, 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:5101
+#: src/readelf.c:5444
#, 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:5201
+#: src/readelf.c:5544
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE W RESZCIE SEKCJI>\n"
-#: src/readelf.c:5209
+#: src/readelf.c:5552
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <NIEUŻYWANE ŚMIECIE>… %<PRIu64> B…\n"
-#: src/readelf.c:5315
+#: src/readelf.c:5658
#, c-format
msgid ""
"\n"
@@ -5365,7 +5365,7 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" [ Kod]\n"
-#: src/readelf.c:5323
+#: src/readelf.c:5666
#, c-format
msgid ""
"\n"
@@ -5374,20 +5374,20 @@ msgstr ""
"\n"
"Sekcja skrótów pod offsetem %<PRIu64>:\n"
-#: src/readelf.c:5336
+#: src/readelf.c:5679
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** błąd podczas odczytywania skrótu: %s\n"
-#: src/readelf.c:5352
+#: src/readelf.c:5695
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n"
-#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224
-#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829
-#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627
-#: src/readelf.c:10698
+#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567
+#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172
+#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970
+#: src/readelf.c:11041
#, c-format
msgid ""
"\n"
@@ -5396,47 +5396,47 @@ msgstr ""
"\n"
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397
+#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Długość: %8<PRIu64>\n"
-#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410
+#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %8<PRIu16>\n"
-#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419
+#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762
#, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Rozmiar adresu: %8<PRIu64>\n"
-#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429
+#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772
#, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr " Rozmiar segmentu: %8<PRIu64>\n"
-#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820
+#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163
#, c-format
msgid "Unknown version"
msgstr "Nieznana wersja"
-#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424
+#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767
#, c-format
msgid "unsupported address size"
msgstr "nieobsługiwany rozmiar adresu"
-#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434
+#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777
#, c-format
msgid "unsupported segment size"
msgstr "nieobsługiwany rozmiar segmentu"
-#: src/readelf.c:5609
+#: src/readelf.c:5952
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "nie można uzyskać zawartości .debug_aranges: %s"
-#: src/readelf.c:5624
+#: src/readelf.c:5967
#, c-format
msgid ""
"\n"
@@ -5454,12 +5454,12 @@ msgstr[2] ""
"\n"
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %zu wpisów:\n"
-#: src/readelf.c:5655
+#: src/readelf.c:5998
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5657
+#: src/readelf.c:6000
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5467,7 +5467,7 @@ msgstr ""
" [%*zu] początek: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5695 src/readelf.c:8638
+#: src/readelf.c:6038 src/readelf.c:8981
#, c-format
msgid ""
"\n"
@@ -5476,13 +5476,13 @@ msgstr ""
"\n"
"Tabela pod offsetem %zu:\n"
-#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649
-#: src/readelf.c:9378
+#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992
+#: src/readelf.c:9721
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "nieprawidÅ‚owe dane w sekcji [%zu] „%sâ€"
-#: src/readelf.c:5715
+#: src/readelf.c:6058
#, c-format
msgid ""
"\n"
@@ -5491,27 +5491,27 @@ msgstr ""
"\n"
" Długość: %6<PRIu64>\n"
-#: src/readelf.c:5727
+#: src/readelf.c:6070
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " Wersja DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5731
+#: src/readelf.c:6074
#, c-format
msgid "unsupported aranges version"
msgstr "nieobsługiwana wersja aranges"
-#: src/readelf.c:5742
+#: src/readelf.c:6085
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Offset CU: %6<PRIx64>\n"
-#: src/readelf.c:5748
+#: src/readelf.c:6091
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Offset adresu: %6<PRIu64>\n"
-#: src/readelf.c:5759
+#: src/readelf.c:6102
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5520,12 +5520,12 @@ msgstr ""
" Rozmiar segmentu: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5814
+#: src/readelf.c:6157
#, c-format
msgid " %zu padding bytes\n"
msgstr " %zu B wypełnienia\n"
-#: src/readelf.c:5876 src/readelf.c:9384
+#: src/readelf.c:6219 src/readelf.c:9727
#, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
@@ -5534,42 +5534,42 @@ msgstr ""
"Tabela pod offsetem 0x%<PRIx64>:\n"
"\n"
-#: src/readelf.c:5931 src/readelf.c:9439
+#: src/readelf.c:6274 src/readelf.c:9782
#, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " Wpisy offsetu: %8<PRIu64>\n"
-#: src/readelf.c:5947 src/readelf.c:9455
+#: src/readelf.c:6290 src/readelf.c:9798
#, c-format
msgid " Unknown CU base: "
msgstr " Nieznana podstawa CU: "
-#: src/readelf.c:5949 src/readelf.c:9457
+#: src/readelf.c:6292 src/readelf.c:9800
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr " Podstawa CU [%6<PRIx64>]: "
-#: src/readelf.c:5955 src/readelf.c:9463
+#: src/readelf.c:6298 src/readelf.c:9806
#, c-format
msgid " Not associated with a CU.\n"
msgstr " Brak powiązania z CU.\n"
-#: src/readelf.c:5966 src/readelf.c:9474
+#: src/readelf.c:6309 src/readelf.c:9817
#, 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:5970 src/readelf.c:9478
+#: src/readelf.c:6313 src/readelf.c:9821
#, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " Offsety zaczynające się w 0x%<PRIx64>:\n"
-#: src/readelf.c:6022
+#: src/readelf.c:6365
#, c-format
msgid "invalid range list data"
msgstr "nieprawidłowe dane listy zakresów"
-#: src/readelf.c:6207 src/readelf.c:9813
+#: src/readelf.c:6550 src/readelf.c:10156
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -5578,7 +5578,7 @@ msgstr ""
" %zu B wypełnienia\n"
"\n"
-#: src/readelf.c:6255 src/readelf.c:9862
+#: src/readelf.c:6598 src/readelf.c:10205
#, c-format
msgid ""
"\n"
@@ -5587,7 +5587,7 @@ msgstr ""
"\n"
" Nieznana podstawa CU: "
-#: src/readelf.c:6257 src/readelf.c:9864
+#: src/readelf.c:6600 src/readelf.c:10207
#, c-format
msgid ""
"\n"
@@ -5596,30 +5596,30 @@ msgstr ""
"\n"
" Podstawa CU [%6<PRIx64>]: "
-#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916
+#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6291 src/readelf.c:10000
+#: src/readelf.c:6634 src/readelf.c:10343
msgid "base address"
msgstr "adres podstawowy"
-#: src/readelf.c:6301 src/readelf.c:10010
+#: src/readelf.c:6644 src/readelf.c:10353
#, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] pusta lista\n"
-#: src/readelf.c:6565
+#: src/readelf.c:6908
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:6822
+#: src/readelf.c:7165
#, c-format
msgid "cannot get ELF: %s"
msgstr "nie można uzyskać ELF: %s"
-#: src/readelf.c:6846
+#: src/readelf.c:7189
#, c-format
msgid ""
"\n"
@@ -5628,7 +5628,7 @@ msgstr ""
"\n"
"Sekcja informacji o ramce wywołania [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
@@ -5637,65 +5637,65 @@ msgstr ""
"\n"
" [%6tx] Zerowy koniec\n"
-#: src/readelf.c:7000 src/readelf.c:7154
+#: src/readelf.c:7343 src/readelf.c:7497
#, c-format
msgid "invalid augmentation length"
msgstr "nieprawidłowa długość powiększenia"
-#: src/readelf.c:7015
+#: src/readelf.c:7358
msgid "FDE address encoding: "
msgstr "Kodowanie adresu FDE: "
-#: src/readelf.c:7021
+#: src/readelf.c:7364
msgid "LSDA pointer encoding: "
msgstr "Kodowanie wskaźnika LSDA: "
-#: src/readelf.c:7131
+#: src/readelf.c:7474
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (offset: %#<PRIx64>)"
-#: src/readelf.c:7138
+#: src/readelf.c:7481
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (kończący offset: %#<PRIx64>)"
-#: src/readelf.c:7175
+#: src/readelf.c:7518
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sWskaźnik LSDA: %#<PRIx64>\n"
-#: src/readelf.c:7260
+#: src/readelf.c:7603
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "DIE [%<PRIx64>] nie można uzyskać kodu atrybutu: %s"
-#: src/readelf.c:7270
+#: src/readelf.c:7613
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "DIE [%<PRIx64>] nie można uzyskać formy atrybutu: %s"
-#: src/readelf.c:7292
+#: src/readelf.c:7635
#, 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:7622
+#: src/readelf.c:7965
#, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "nieprawidłowy plik (%<PRId64>): %s"
-#: src/readelf.c:7626
+#: src/readelf.c:7969
#, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "brak plików źródłowych dla CU [%<PRIx64>]"
-#: src/readelf.c:7630
+#: src/readelf.c:7973
#, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "nie można uzyskać CU DWARF: %s"
-#: src/readelf.c:7952
+#: src/readelf.c:8295
#, c-format
msgid ""
"\n"
@@ -5706,12 +5706,12 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
" [Offset]\n"
-#: src/readelf.c:8002
+#: src/readelf.c:8345
#, c-format
msgid "cannot get next unit: %s"
msgstr "nie można uzyskać następnej jednostki: %s"
-#: src/readelf.c:8022
+#: src/readelf.c:8365
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5724,7 +5724,7 @@ msgstr ""
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
" Podpis typu: %#<PRIx64>, offset typu: %#<PRIx64> [%<PRIx64>]\n"
-#: src/readelf.c:8034
+#: src/readelf.c:8377
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5735,38 +5735,38 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:8044 src/readelf.c:8205
+#: src/readelf.c:8387 src/readelf.c:8548
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr " Typ jednostki: %s (%<PRIu8>)"
-#: src/readelf.c:8071
+#: src/readelf.c:8414
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr "nieznana wersja (%d) lub typ jednostki (%d)"
-#: src/readelf.c:8100
+#: src/readelf.c:8443
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "nie można uzyskać offsetu DIE: %s"
-#: src/readelf.c:8109
+#: src/readelf.c:8452
#, 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:8145
+#: src/readelf.c:8488
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "nie można uzyskać następnego DIE: %s\n"
-#: src/readelf.c:8153
+#: src/readelf.c:8496
#, c-format
msgid "cannot get next DIE: %s"
msgstr "nie można uzyskać następnego DIE: %s"
-#: src/readelf.c:8197
+#: src/readelf.c:8540
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5777,7 +5777,7 @@ msgstr ""
" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: "
"%<PRIu8>, rozmiar offsetu: %<PRIu8>\n"
-#: src/readelf.c:8249
+#: src/readelf.c:8592
#, c-format
msgid ""
"\n"
@@ -5788,13 +5788,13 @@ msgstr ""
"Sekcja DWARF [%2zu] „%s†pod offsetem %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8581
+#: src/readelf.c:8924
#, c-format
msgid "unknown form: %s"
msgstr "nieznana forma: %s"
#. Print what we got so far.
-#: src/readelf.c:8729
+#: src/readelf.c:9072
#, c-format
msgid ""
"\n"
@@ -5827,27 +5827,27 @@ msgstr ""
"\n"
"Instrukcje:\n"
-#: src/readelf.c:8751
+#: src/readelf.c:9094
#, 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:8759
+#: src/readelf.c:9102
#, c-format
msgid "cannot handle address size: %u\n"
msgstr "nie można obsłużyć rozmiaru adresu: %u\n"
-#: src/readelf.c:8767
+#: src/readelf.c:9110
#, 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:8777
+#: src/readelf.c:9120
#, 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:8792
+#: src/readelf.c:9135
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5855,7 +5855,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu parametr\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu parametry\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu parametrów\n"
-#: src/readelf.c:8803
+#: src/readelf.c:9146
msgid ""
"\n"
"Directory table:"
@@ -5863,12 +5863,12 @@ msgstr ""
"\n"
"Tabela katalogu:"
-#: src/readelf.c:8809 src/readelf.c:8886
+#: src/readelf.c:9152 src/readelf.c:9229
#, c-format
msgid " ["
msgstr " ["
-#: src/readelf.c:8880
+#: src/readelf.c:9223
msgid ""
"\n"
"File name table:"
@@ -5876,11 +5876,11 @@ msgstr ""
"\n"
"Tabela nazw plików:"
-#: src/readelf.c:8941
+#: src/readelf.c:9284
msgid " Entry Dir Time Size Name"
msgstr " Wpis Kat Czas Rozmiar Nazwa"
-#: src/readelf.c:8987
+#: src/readelf.c:9330
msgid ""
"\n"
"No line number statements."
@@ -5888,7 +5888,7 @@ msgstr ""
"\n"
"Brak instrukcji numerów wierszy."
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5896,129 +5896,129 @@ msgstr ""
"\n"
"Instrukcje numerów wierszy:"
-#: src/readelf.c:9006
+#: src/readelf.c:9349
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "nieprawidłowe maksimum operacji na instrukcję wynosi zero"
-#: src/readelf.c:9040
+#: src/readelf.c:9383
#, c-format
msgid " special opcode %u: address+%u = "
msgstr " instrukcja specjalna %u: adres+%u = "
-#: src/readelf.c:9044
+#: src/readelf.c:9387
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ", op_index = %u, wiersz%+d = %zu\n"
-#: src/readelf.c:9047
+#: src/readelf.c:9390
#, c-format
msgid ", line%+d = %zu\n"
msgstr ", wiersz%+d = %zu\n"
-#: src/readelf.c:9065
+#: src/readelf.c:9408
#, c-format
msgid " extended opcode %u: "
msgstr " instrukcja rozszerzona %u: "
-#: src/readelf.c:9070
+#: src/readelf.c:9413
msgid " end of sequence"
msgstr " koniec sekwencji"
-#: src/readelf.c:9088
+#: src/readelf.c:9431
#, c-format
msgid " set address to "
msgstr " ustawienie adresu na "
-#: src/readelf.c:9116
+#: src/readelf.c:9459
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
" definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, "
"nazwa=%s\n"
-#: src/readelf.c:9130
+#: src/readelf.c:9473
#, c-format
msgid " set discriminator to %u\n"
msgstr " ustawienie dyskryminatora na %u\n"
-#: src/readelf.c:9157
+#: src/readelf.c:9500
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:9181
+#: src/readelf.c:9524
#, 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:9188
+#: src/readelf.c:9531
msgid " unknown opcode"
msgstr " nieznana instrukcja"
#. Takes no argument.
-#: src/readelf.c:9200
+#: src/readelf.c:9543
msgid " copy"
msgstr " kopiowanie"
-#: src/readelf.c:9211
+#: src/readelf.c:9554
#, c-format
msgid " advance address by %u to "
msgstr " zwiększenie adresu o %u do "
-#: src/readelf.c:9215 src/readelf.c:9276
+#: src/readelf.c:9558 src/readelf.c:9619
#, c-format
msgid ", op_index to %u"
msgstr ", op_index do %u"
-#: src/readelf.c:9227
+#: src/readelf.c:9570
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " zwiększenie wiersza o stałą %d do %<PRId64>\n"
-#: src/readelf.c:9237
+#: src/readelf.c:9580
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " ustawienie pliku na %<PRIu64>\n"
-#: src/readelf.c:9248
+#: src/readelf.c:9591
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " ustawienie kolumny na %<PRIu64>\n"
-#: src/readelf.c:9255
+#: src/readelf.c:9598
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " ustawienie „%s†na %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:9261
+#: src/readelf.c:9604
msgid " set basic block flag"
msgstr " ustawienie podstawowej flagi bloku"
-#: src/readelf.c:9272
+#: src/readelf.c:9615
#, c-format
msgid " advance address by constant %u to "
msgstr " zwiększenie adresu o stałą %u do "
-#: src/readelf.c:9292
+#: src/readelf.c:9635
#, 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:9302
+#: src/readelf.c:9645
msgid " set prologue end flag"
msgstr " ustawienie flagi końca prologu"
#. Takes no argument.
-#: src/readelf.c:9307
+#: src/readelf.c:9650
msgid " set epilogue begin flag"
msgstr " ustawienie flagi poczÄ…tku epilogu"
-#: src/readelf.c:9317
+#: src/readelf.c:9660
#, c-format
msgid " set isa to %u\n"
msgstr " ustawienie isa na %u\n"
@@ -6026,7 +6026,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:9326
+#: src/readelf.c:9669
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -6034,86 +6034,86 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:"
msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:"
msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:"
-#: src/readelf.c:9527
+#: src/readelf.c:9870
#, c-format
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:9567
+#: src/readelf.c:9910
#, c-format
msgid "invalid loclists data"
msgstr "nieprawidłowe dane loclists"
-#: src/readelf.c:10037 src/readelf.c:11082
+#: src/readelf.c:10380 src/readelf.c:11425
msgid " <INVALID DATA>\n"
msgstr " <NIEPRAWIDÅOWE DANE>\n"
-#: src/readelf.c:10168
+#: src/readelf.c:10511
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** niezakończony ciąg na końcu sekcji"
-#: src/readelf.c:10191
+#: src/readelf.c:10534
#, 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:10286
+#: src/readelf.c:10629
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " Offset: 0x%<PRIx64>\n"
-#: src/readelf.c:10298
+#: src/readelf.c:10641
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " Wersja: %<PRIu16>\n"
-#: src/readelf.c:10304 src/readelf.c:11202
+#: src/readelf.c:10647 src/readelf.c:11546
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " nieznana wersja, nie można przetworzyć sekcji\n"
-#: src/readelf.c:10311
+#: src/readelf.c:10654
#, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Flaga: 0x%<PRIx8>"
-#: src/readelf.c:10340
+#: src/readelf.c:10683
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Długość offsetu: %<PRIu8>\n"
-#: src/readelf.c:10348
+#: src/readelf.c:10691
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Offset .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:10373
+#: src/readelf.c:10716
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " tabela instrukcji rozszerzenia, %<PRIu8> elementów:\n"
-#: src/readelf.c:10380
+#: src/readelf.c:10723
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:10392
+#: src/readelf.c:10735
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " Parametry %<PRIu8>:"
-#: src/readelf.c:10407
+#: src/readelf.c:10750
#, c-format
msgid " no arguments."
msgstr " brak parametrów."
-#: src/readelf.c:10608
+#: src/readelf.c:10951
#, 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:10663
+#: src/readelf.c:11006
#, c-format
msgid ""
"\n"
@@ -6125,37 +6125,37 @@ msgstr ""
" %*s CiÄ…g\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10668
+#: src/readelf.c:11011
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:11021
#, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** błąd, brak znaku kończącego ciąg\n"
-#: src/readelf.c:10800
+#: src/readelf.c:11143
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Długość: %8<PRIu64>\n"
-#: src/readelf.c:10802
+#: src/readelf.c:11145
#, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Rozmiar offsetu: %8<PRIu8>\n"
-#: src/readelf.c:10816
+#: src/readelf.c:11159
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " Wersja DWARF: %8<PRIu16>\n"
-#: src/readelf.c:10825
+#: src/readelf.c:11168
#, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " Wypełnienie: %8<PRIx16>\n"
-#: src/readelf.c:10879
+#: src/readelf.c:11222
#, c-format
msgid ""
"\n"
@@ -6164,7 +6164,7 @@ msgstr ""
"\n"
"Sekcja tabeli wyszukiwania ramki wywoÅ‚ania [%2zu] „.eh_frame_hdrâ€:\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
@@ -6173,22 +6173,22 @@ msgstr ""
"\n"
"Sekcja tabeli obsÅ‚ugiwania wyjÄ…tków [%2zu] „.gcc_except_tableâ€:\n"
-#: src/readelf.c:11004
+#: src/readelf.c:11347
#, c-format
msgid " LPStart encoding: %#x "
msgstr " Kodowanie LPStart: %#x "
-#: src/readelf.c:11016
+#: src/readelf.c:11359
#, c-format
msgid " TType encoding: %#x "
msgstr " Kodowanie TType: %#x "
-#: src/readelf.c:11033
+#: src/readelf.c:11376
#, c-format
msgid " Call site encoding: %#x "
msgstr " Kodowanie strony wywołania: %#x "
-#: src/readelf.c:11048
+#: src/readelf.c:11391
msgid ""
"\n"
" Call site table:"
@@ -6196,7 +6196,7 @@ msgstr ""
"\n"
" Tabela strony wywołania:"
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6209,12 +6209,12 @@ msgstr ""
" LÄ…dowisko: %#<PRIx64>\n"
" Działanie: %u\n"
-#: src/readelf.c:11137
+#: src/readelf.c:11480
#, c-format
msgid "invalid TType encoding"
msgstr "nieprawidłowe kodowanie TType"
-#: src/readelf.c:11164
+#: src/readelf.c:11507
#, c-format
msgid ""
"\n"
@@ -6223,37 +6223,43 @@ msgstr ""
"\n"
"Sekcja GDB [%2zu] „%s†pod offsetem %#<PRIx64> zawiera %<PRId64> B:\n"
-#: src/readelf.c:11193
+#: src/readelf.c:11536
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " Wersja: %<PRId32>\n"
-#: src/readelf.c:11211
+#: src/readelf.c:11555
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " offset CU: %#<PRIx32>\n"
-#: src/readelf.c:11218
+#: src/readelf.c:11562
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " offset TU: %#<PRIx32>\n"
-#: src/readelf.c:11225
+#: src/readelf.c:11569
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " offset adresu: %#<PRIx32>\n"
-#: src/readelf.c:11232
+#: src/readelf.c:11576
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " offset symbolu: %#<PRIx32>\n"
-#: src/readelf.c:11239
+#: src/readelf.c:11586
+#, fuzzy, c-format
+#| msgid " constant offset: %#<PRIx32>\n"
+msgid " shortcut offset: %#<PRIx32>\n"
+msgstr " offset stałej: %#<PRIx32>\n"
+
+#: src/readelf.c:11594
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " offset stałej: %#<PRIx32>\n"
-#: src/readelf.c:11253
+#: src/readelf.c:11608
#, c-format
msgid ""
"\n"
@@ -6262,7 +6268,7 @@ msgstr ""
"\n"
" Lista CU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:11278
+#: src/readelf.c:11633
#, c-format
msgid ""
"\n"
@@ -6271,7 +6277,7 @@ msgstr ""
"\n"
" Lista TU pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:11307
+#: src/readelf.c:11662
#, c-format
msgid ""
"\n"
@@ -6280,7 +6286,7 @@ msgstr ""
"\n"
" Lista adresów pod offsetem %#<PRIx32> zawiera %zu wpisów:\n"
-#: src/readelf.c:11339
+#: src/readelf.c:11705
#, c-format
msgid ""
"\n"
@@ -6289,18 +6295,40 @@ msgstr ""
"\n"
" Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n"
-#: src/readelf.c:11477
+#: src/readelf.c:11790
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| " Symbol table at offset %#<PRIx32> contains %zu slots:\n"
+msgid ""
+"\n"
+"Shortcut table at offset %#<PRIx32> contains %zu slots:\n"
+msgstr ""
+"\n"
+" Tabela symboli pod offsetem %#<PRIx32> zawiera %zu gniazd:\n"
+
+#: src/readelf.c:11802
+#, c-format
+msgid "Language of main: %s\n"
+msgstr ""
+
+#: src/readelf.c:11803
+#, c-format
+msgid "Name of main: "
+msgstr ""
+
+#: src/readelf.c:11886
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "nie można uzyskać deskryptora kontekstu debugowania: %s"
-#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573
-#: src/readelf.c:12630
+#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982
+#: src/readelf.c:13039
#, c-format
msgid "cannot convert core note data: %s"
msgstr "nie można konwertować danych notatki core: %s"
-#: src/readelf.c:12207
+#: src/readelf.c:12616
#, c-format
msgid ""
"\n"
@@ -6309,21 +6337,21 @@ msgstr ""
"\n"
"%*s… <powtarza się jeszcze %u razy>…"
-#: src/readelf.c:12709
+#: src/readelf.c:13118
msgid " Owner Data size Type\n"
msgstr " Właściciel Rozmiar danych Typ\n"
-#: src/readelf.c:12737
+#: src/readelf.c:13146
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12789
+#: src/readelf.c:13198
#, c-format
msgid "cannot get content of note: %s"
msgstr "nie można uzyskać zawartości notatki: %s"
-#: src/readelf.c:12822
+#: src/readelf.c:13231
#, c-format
msgid ""
"\n"
@@ -6333,7 +6361,7 @@ msgstr ""
"Segment notatki [%2zu] „%s†o długości %<PRIu64> B pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12845
+#: src/readelf.c:13254
#, c-format
msgid ""
"\n"
@@ -6342,7 +6370,7 @@ msgstr ""
"\n"
"Segment notatki o długości %<PRIu64> B pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, c-format
msgid ""
"\n"
@@ -6351,12 +6379,12 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s†nie ma danych do zrzucenia.\n"
-#: src/readelf.c:12919 src/readelf.c:12970
+#: src/readelf.c:13328 src/readelf.c:13379
#, 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:12924
+#: src/readelf.c:13333
#, c-format
msgid ""
"\n"
@@ -6366,7 +6394,7 @@ msgstr ""
"Segment zrzutu szesnastkowego [%zu] „%sâ€, %<PRIu64> B pod offsetem "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12929
+#: src/readelf.c:13338
#, c-format
msgid ""
"\n"
@@ -6377,7 +6405,7 @@ msgstr ""
"Zrzut szesnastkowy sekcji [%zu] „%sâ€, %<PRIu64> B (%zd nieskompresowanych) "
"pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12943
+#: src/readelf.c:13352
#, c-format
msgid ""
"\n"
@@ -6386,7 +6414,7 @@ msgstr ""
"\n"
"Sekcja [%zu] „%s†nie ma ciągów do zrzucenia.\n"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, c-format
msgid ""
"\n"
@@ -6395,7 +6423,7 @@ msgstr ""
"\n"
"Sekcja ciągów [%zu] „%s†zawiera %<PRIu64> B pod offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:12980
+#: src/readelf.c:13389
#, c-format
msgid ""
"\n"
@@ -6406,7 +6434,7 @@ msgstr ""
"Sekcja ciągów [%zu] „%s†zawiera %<PRIu64> B (%zd nieskompresowanych) pod "
"offsetem %#0<PRIx64>:\n"
-#: src/readelf.c:13028
+#: src/readelf.c:13437
#, c-format
msgid ""
"\n"
@@ -6415,7 +6443,7 @@ msgstr ""
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6424,12 +6452,12 @@ msgstr ""
"\n"
"sekcja „%s†nie istnieje"
-#: src/readelf.c:13113
+#: src/readelf.c:13522
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "nie można uzyskać indeksu symboli archiwum „%sâ€: %s"
-#: src/readelf.c:13116
+#: src/readelf.c:13525
#, c-format
msgid ""
"\n"
@@ -6438,7 +6466,7 @@ msgstr ""
"\n"
"Archiwum „%s†nie ma indeksu symboli\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
@@ -6447,12 +6475,12 @@ msgstr ""
"\n"
"Indeks archiwum „%s†ma %zu wpisów:\n"
-#: src/readelf.c:13138
+#: src/readelf.c:13547
#, 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:13143
+#: src/readelf.c:13552
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Element archiwum „%s†zawiera:\n"
@@ -6960,7 +6988,7 @@ msgstr "%s: błąd podczas aktualizowania nagłówka ELF: %s"
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: błąd podczas uzyskiwania shdrstrndx: %s"
-#: src/strip.c:1712 src/strip.c:2553
+#: src/strip.c:1712 src/strip.c:2552
#, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: błąd podczas aktualizowania shdrstrndx: %s"
@@ -6994,7 +7022,7 @@ msgstr "brak pamięci do utworzenia tabeli ciągów nagłówka sekcji"
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:2469 src/strip.c:2577
+#: src/strip.c:2469 src/strip.c:2574
#, c-format
msgid "while writing '%s': %s"
msgstr "podczas zapisywania „%sâ€: %s"
@@ -7014,22 +7042,22 @@ msgstr "podczas obliczania sumy kontrolnej dla informacji debugowania"
msgid "%s: error while creating ELF header: %s"
msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s"
-#: src/strip.c:2562
+#: src/strip.c:2560
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: błąd podczas odczytywania pliku: %s"
-#: src/strip.c:2602 src/strip.c:2622
+#: src/strip.c:2599 src/strip.c:2619
#, c-format
msgid "while writing '%s'"
msgstr "podczas zapisywania „%sâ€"
-#: src/strip.c:2659 src/strip.c:2666
+#: src/strip.c:2656 src/strip.c:2663
#, c-format
msgid "error while finishing '%s': %s"
msgstr "bÅ‚Ä…d podczas koÅ„czenia „%sâ€: %s"
-#: src/strip.c:2683 src/strip.c:2759
+#: src/strip.c:2680 src/strip.c:2756
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "nie można ustawić czasu dostÄ™pu i modyfikacji „%sâ€"
@@ -7527,7 +7555,7 @@ msgstr ""
"source IDENTYFIKATOR-KOPII /NAZWA-PLIKU\n"
"source ŚCIEŻKA /NAZWA-PLIKU\n"
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr "Uruchamia plik wykonywalny"
@@ -7540,6 +7568,11 @@ msgid "Show instances of inlined functions"
msgstr "Wyświetla wystąpienia wstawionych funkcji"
#, 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"
+
+#, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "nie można uzyskać danych sekcji .debug_addr: %s"
diff --git a/po/uk.po b/po/uk.po
index 0d0609a6..86f43ddf 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: elfutils\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-03-03 16:09+0100\n"
+"POT-Creation-Date: 2023-11-03 17:36+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"
@@ -53,7 +53,7 @@ msgstr ""
"початкових кодах. Умовами Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ ÐЕ передбачено жодних "
"гарантій, зокрема гарантій працездатноÑÑ‚Ñ– або придатноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— мети.\n"
-#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:11793
+#: lib/xmalloc.c:47 lib/xmalloc.c:60 lib/xmalloc.c:72 src/readelf.c:12202
#: src/unstrip.c:311
#, c-format
msgid "memory exhausted"
@@ -541,7 +541,7 @@ msgstr "Ðемає Ñервера"
#: libebl/eblcorenotetypename.c:100 libebl/eblobjnotetypename.c:79
#: libebl/eblobjnotetypename.c:113 libebl/eblobjnotetypename.c:134
#: libebl/eblosabiname.c:73 libebl/eblsectionname.c:83
-#: libebl/eblsectiontypename.c:115 libebl/eblsegmenttypename.c:81
+#: libebl/eblsectiontypename.c:116 libebl/eblsegmenttypename.c:81
msgid "<unknown>"
msgstr "<невідомо>"
@@ -635,7 +635,7 @@ msgstr "некоректна розмірніÑÑ‚ÑŒ вхідного парамÐ
msgid "invalid size of destination operand"
msgstr "некоректна розмірніÑÑ‚ÑŒ вихідного параметра"
-#: libelf/elf_error.c:86 src/readelf.c:6415
+#: libelf/elf_error.c:86 src/readelf.c:6758
#, c-format
msgid "invalid encoding"
msgstr "некоректне кодуваннÑ"
@@ -720,8 +720,8 @@ msgstr "невідповідніÑÑ‚ÑŒ полів data/scn"
msgid "invalid section header"
msgstr "некоректний заголовок розділу"
-#: libelf/elf_error.c:190 src/readelf.c:10294 src/readelf.c:10899
-#: src/readelf.c:11000 src/readelf.c:11188
+#: libelf/elf_error.c:190 src/readelf.c:10637 src/readelf.c:11242
+#: src/readelf.c:11343 src/readelf.c:11531
#, c-format
msgid "invalid data"
msgstr "некоректні дані"
@@ -1384,8 +1384,8 @@ msgid "Suppress some error output (counterpart to --verbose)"
msgstr ""
#. Strings for arguments in help texts.
-#: src/elfclassify.c:979 src/elfcompress.c:1433 src/elflint.c:76
-#: src/readelf.c:160
+#: src/elfclassify.c:979 src/elfcompress.c:1436 src/elflint.c:77
+#: src/readelf.c:161
msgid "FILE..."
msgstr "ФÐЙЛ..."
@@ -1674,21 +1674,21 @@ msgid "unknown compression type '%s'"
msgstr "невідомий тип ÑтиÑÐ½ÐµÐ½Ð½Ñ Â«%s»"
#. We need at least one input file.
-#: src/elfcompress.c:162 src/elfcompress.c:1444
+#: src/elfcompress.c:162 src/elfcompress.c:1447
#, c-format
msgid "No input file given"
msgstr "Ðе надано файла вхідних даних"
-#: src/elfcompress.c:168 src/elfcompress.c:1448
+#: src/elfcompress.c:168 src/elfcompress.c:1451
#, c-format
msgid "Only one input file allowed together with '-o'"
msgstr "З параметром «-o» можна викориÑтовувати лише один файл вхідних даних"
-#: src/elfcompress.c:1405
+#: src/elfcompress.c:1408
msgid "Place (de)compressed output into FILE"
msgstr "ПоміÑтити результати Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð¾ ФÐЙЛа"
-#: src/elfcompress.c:1408
+#: src/elfcompress.c:1411
#, fuzzy
#| msgid ""
#| "What type of compression to apply. TYPE can be 'none' (decompress), "
@@ -1705,7 +1705,7 @@ msgstr ""
"назва — «zlib-gabi») або «zlib-gnu» (ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ Ñтилі GNU .zdebug, інша "
"назва — «gnu»)"
-#: src/elfcompress.c:1412
+#: src/elfcompress.c:1415
msgid ""
"SECTION name to (de)compress, SECTION is an extended wildcard pattern "
"(defaults to '.?(z)debug*')"
@@ -1713,12 +1713,12 @@ msgstr ""
"назва РОЗДІЛу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ ÑтиÑканнÑ, РОЗДІЛ Ñ” розширеним взірцем із "
"замінниками (типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ -- «.?(z)debug*»)"
-#: src/elfcompress.c:1415
+#: src/elfcompress.c:1418
msgid "Print a message for each section being (de)compressed"
msgstr ""
"ВивеÑти Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ розділу, Ñкий розпаковуєтьÑÑ Ñ‡Ð¸ ÑтиÑкаєтьÑÑ"
-#: src/elfcompress.c:1418
+#: src/elfcompress.c:1421
msgid ""
"Force compression of section even if it would become larger or update/"
"rewrite the file even if no section would be (de)compressed"
@@ -1726,32 +1726,32 @@ msgstr ""
"ПримуÑове ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, навіть Ñкщо він Ñтане більшим, або Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð¸ "
"Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°, навіть Ñкщо жодного розділу не буде розпаковано або ÑтиÑнено"
-#: src/elfcompress.c:1421 src/strip.c:92
+#: src/elfcompress.c:1424 src/strip.c:92
msgid "Relax a few rules to handle slightly broken ELF files"
msgstr ""
"Знехтувати декількома правилами Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ трохи пошкоджених файлів ELF"
-#: src/elfcompress.c:1424
+#: src/elfcompress.c:1427
msgid "Be silent when a section cannot be compressed"
msgstr "Ðе Ñповіщати, Ñкщо розділ неможливо ÑтиÑнути"
-#: src/elfcompress.c:1434
+#: src/elfcompress.c:1437
msgid "Compress or decompress sections in an ELF file."
msgstr "СтиÑнути або розпакувати розділи у файлі ELF."
-#: src/elflint.c:62
+#: src/elflint.c:63
msgid "Be extremely strict, flag level 2 features."
msgstr "ВиÑока ÑтрогіÑÑ‚ÑŒ, увімкнути можливоÑÑ‚Ñ– Ñ€Ñ–Ð²Ð½Ñ 2."
-#: src/elflint.c:63
+#: src/elflint.c:64
msgid "Do not print anything if successful"
msgstr "Ðе виводити ніÑких даних у разі уÑпіху"
-#: src/elflint.c:64
+#: src/elflint.c:65
msgid "Binary is a separate debuginfo file"
msgstr "Бінарний файл є окремим файлом debuginfo"
-#: src/elflint.c:66
+#: src/elflint.c:67
msgid ""
"Binary has been created with GNU ld and is therefore known to be broken in "
"certain ways"
@@ -1760,173 +1760,173 @@ msgstr ""
"певної міри неправильним"
#. Short description of program.
-#: src/elflint.c:72
+#: src/elflint.c:73
msgid "Pedantic checking of ELF files compliance with gABI/psABI spec."
msgstr ""
"Педантична перевірка файлів ELF на ÑуміÑніÑÑ‚ÑŒ зі ÑпецифікаціÑми gABI/psABI."
-#: src/elflint.c:153 src/readelf.c:391
+#: src/elflint.c:154 src/readelf.c:413
#, c-format
msgid "cannot open input file '%s'"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ вхідний файл «%s»"
-#: src/elflint.c:160
+#: src/elflint.c:161
#, c-format
msgid "cannot generate Elf descriptor for '%s': %s\n"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf Ð´Ð»Ñ Â«%s»: %s\n"
-#: src/elflint.c:179
+#: src/elflint.c:180
#, c-format
msgid "error while closing Elf descriptor: %s\n"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s\n"
-#: src/elflint.c:183
+#: src/elflint.c:184
msgid "No errors"
msgstr "Без помилок"
-#: src/elflint.c:218 src/readelf.c:603
+#: src/elflint.c:219 src/readelf.c:625
msgid "Missing file name.\n"
msgstr "Ðе вказано назви файла.\n"
-#: src/elflint.c:283
+#: src/elflint.c:284
#, c-format
msgid " error while freeing sub-ELF descriptor: %s\n"
msgstr " помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора Ñуб-ELF: %s\n"
#. We cannot do anything.
-#: src/elflint.c:291
+#: src/elflint.c:292
#, 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:358
#, 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:363
#, 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:367
#, 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:375
#, 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:381
#, 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:386
#, c-format
msgid "e_ident[%zu] is not zero\n"
msgstr "e_ident[%zu] не дорівнює нулеві\n"
-#: src/elflint.c:390
+#: src/elflint.c:391
#, c-format
msgid "unknown object file type %d\n"
msgstr "невідомий тип об’єктних файлів %d\n"
-#: src/elflint.c:397
+#: src/elflint.c:398
#, c-format
msgid "unknown machine type %d\n"
msgstr "невідомий тип архітектури %d\n"
-#: src/elflint.c:401
+#: src/elflint.c:402
#, c-format
msgid "unknown object file version\n"
msgstr "невідома верÑÑ–Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлів\n"
-#: src/elflint.c:407
+#: src/elflint.c:408
#, c-format
msgid "invalid program header offset\n"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми\n"
-#: src/elflint.c:409
+#: src/elflint.c:410
#, c-format
msgid "executables and DSOs cannot have zero program header offset\n"
msgstr ""
"виконувані файли Ñ– DSO не можуть міÑтити заголовка програми з нульовим "
"зміщеннÑм\n"
-#: src/elflint.c:413
+#: src/elflint.c:414
#, c-format
msgid "invalid number of program header entries\n"
msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів заголовків програми\n"
-#: src/elflint.c:421
+#: src/elflint.c:422
#, c-format
msgid "invalid section header table offset\n"
msgstr "некоректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– заголовків розділів\n"
-#: src/elflint.c:424
+#: src/elflint.c:425
#, c-format
msgid "section header table must be present\n"
msgstr "має бути вказано таблицю заголовків розділів\n"
-#: src/elflint.c:438
+#: src/elflint.c:439
#, c-format
msgid "invalid number of section header table entries\n"
msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів таблиці заголовків розділів\n"
-#: src/elflint.c:455
+#: src/elflint.c:456
#, c-format
msgid "invalid section header index\n"
msgstr "некоректний Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу\n"
-#: src/elflint.c:473
+#: src/elflint.c:474
#, c-format
msgid "Can only check %u headers, shnum was %u\n"
msgstr "Можна перевірити лише %u заголовків, значеннÑм же shnum було %u\n"
-#: src/elflint.c:487
+#: src/elflint.c:488
#, c-format
msgid "invalid number of program header table entries\n"
msgstr "некоректна кількіÑÑ‚ÑŒ запиÑів таблиці заголовків програми\n"
-#: src/elflint.c:504
+#: src/elflint.c:505
#, c-format
msgid "Can only check %u headers, phnum was %u\n"
msgstr "Можна перевірити лише %u заголовків, значеннÑм же phnum було %u\n"
-#: src/elflint.c:509
+#: src/elflint.c:510
#, c-format
msgid "invalid machine flags: %s\n"
msgstr "некоректні прапорці архітектури: %s\n"
-#: src/elflint.c:516 src/elflint.c:533
+#: src/elflint.c:517 src/elflint.c:534
#, c-format
msgid "invalid ELF header size: %hd\n"
msgstr "некоректний розмір заголовка ELF: %hd\n"
-#: src/elflint.c:519 src/elflint.c:536
+#: src/elflint.c:520 src/elflint.c:537
#, c-format
msgid "invalid program header size: %hd\n"
msgstr "некоректний розмір заголовка програми: %hd\n"
-#: src/elflint.c:522 src/elflint.c:539
+#: src/elflint.c:523 src/elflint.c:540
#, c-format
msgid "invalid program header position or size\n"
msgstr "некоректне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розмір заголовка програми\n"
-#: src/elflint.c:525 src/elflint.c:542
+#: src/elflint.c:526 src/elflint.c:543
#, c-format
msgid "invalid section header size: %hd\n"
msgstr "некоректний розмір заголовка розділу: %hd\n"
-#: src/elflint.c:528 src/elflint.c:545
+#: src/elflint.c:529 src/elflint.c:546
#, c-format
msgid "invalid section header position or size\n"
msgstr "некоректне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розмір заголовка розділу\n"
-#: src/elflint.c:590
+#: src/elflint.c:591
#, c-format
msgid ""
"section [%2d] '%s': section with SHF_GROUP flag set not part of a section "
@@ -1935,7 +1935,7 @@ msgstr ""
"розділ [%2d] «%s»: розділ з вÑтановленим прапорцем SHF_GROUP не Ñ” чаÑтиною "
"групи розділів\n"
-#: src/elflint.c:594
+#: src/elflint.c:595
#, c-format
msgid ""
"section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n"
@@ -1943,14 +1943,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:4468
+#: src/elflint.c:611 src/elflint.c:1509 src/elflint.c:1560 src/elflint.c:1610
+#: src/elflint.c:1692 src/elflint.c:2029 src/elflint.c:2355 src/elflint.c:2981
+#: src/elflint.c:3144 src/elflint.c:3292 src/elflint.c:3494 src/elflint.c:4511
#, 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:624 src/elflint.c:1699
#, c-format
msgid ""
"section [%2d] '%s': referenced as string table for section [%2d] '%s' but "
@@ -1959,7 +1959,7 @@ msgstr ""
"розділ [%2d] «%s»: надано поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю Ñ€Ñдків розділу [%2d] «%s», "
"але типом даних не є SHT_STRTAB\n"
-#: src/elflint.c:646
+#: src/elflint.c:647
#, c-format
msgid ""
"section [%2d] '%s': symbol table cannot have more than one extended index "
@@ -1968,12 +1968,12 @@ msgstr ""
"розділ [%2d] «%s»: у таблиці Ñимволів не може бути більше одного розширеного "
"розділу покажчика\n"
-#: src/elflint.c:658
+#: src/elflint.c:659
#, 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:663
#, c-format
msgid ""
"section [%2u] '%s': number of local entries in 'st_info' larger than table "
@@ -1982,33 +1982,33 @@ msgstr ""
"розділ [%2u] «%s»: кількіÑÑ‚ÑŒ локальних запиÑів у «st_info» перевищує розмір "
"таблиці\n"
-#: src/elflint.c:671
+#: src/elflint.c:672
#, 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:677 src/elflint.c:680 src/elflint.c:683 src/elflint.c:686
+#: src/elflint.c:689 src/elflint.c:692
#, 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:695
#, 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:705
#, 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:714
#, c-format
msgid "section [%2d] '%s': symbol %zu: invalid name value\n"
msgstr "розділ [%2d] «%s»: Ñимвол %zu: некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸\n"
-#: src/elflint.c:728
+#: src/elflint.c:729
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): too large section index but no extended "
@@ -2017,7 +2017,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: занадто великий покажчик розділу за умови, що "
"не визначено розділу розширеного покажчика розділів\n"
-#: src/elflint.c:734
+#: src/elflint.c:735
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): XINDEX used for index which would fit "
@@ -2027,29 +2027,29 @@ msgstr ""
"відповідає st_shndx (%<PRIu32>)\n"
#. || sym->st_shndx > SHN_HIRESERVE always false
-#: src/elflint.c:746
+#: src/elflint.c:747
#, 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:755
#, 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:761
#, 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:766
#, 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:774
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): COMMON only allowed in relocatable "
@@ -2058,7 +2058,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: COMMON можна викориÑтовувати лише у файлах, "
"придатних до переÑуваннÑ\n"
-#: src/elflint.c:777
+#: src/elflint.c:778
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local COMMON symbols are nonsense\n"
@@ -2066,7 +2066,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ñимволів COMMON "
"позбавлене ÑенÑу\n"
-#: src/elflint.c:781
+#: src/elflint.c:782
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): function in COMMON section is nonsense\n"
@@ -2074,13 +2074,13 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— у розділі COMMON "
"позбавлене ÑенÑу\n"
-#: src/elflint.c:832
+#: src/elflint.c:833
#, 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:839 src/elflint.c:864 src/elflint.c:913
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s) does not fit completely in referenced "
@@ -2089,7 +2089,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu не повніÑÑ‚ÑŽ відповідає розділу, на Ñкий "
"поÑилаєтьÑÑ, [%2d] «%s»\n"
-#: src/elflint.c:847
+#: src/elflint.c:848
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): referenced section [%2d] '%s' does not "
@@ -2098,7 +2098,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ поÑÐ¸Ð»Ð°Ð½Ð½Ñ [%2d] «%s» не "
"вÑтановлено прапорець SHF_TLS\n"
-#: src/elflint.c:857 src/elflint.c:905
+#: src/elflint.c:858 src/elflint.c:906
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value out of bounds of referenced "
@@ -2107,7 +2107,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value поза межами розділу "
"поÑиланнÑ, [%2d] «%s»\n"
-#: src/elflint.c:884
+#: src/elflint.c:885
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but no TLS program header "
@@ -2115,7 +2115,7 @@ msgid ""
msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ñимвол TLS без запиÑу заголовка програми TLS\n"
-#: src/elflint.c:890
+#: src/elflint.c:891
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): TLS symbol but couldn't get TLS program "
@@ -2124,7 +2124,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: маємо Ñимвол TLS, але не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ "
"Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми TLS\n"
-#: src/elflint.c:898
+#: src/elflint.c:899
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): st_value short of referenced section "
@@ -2133,7 +2133,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ st_value перед розділом поÑиланнÑ, "
"[%2d] «%s»\n"
-#: src/elflint.c:925
+#: src/elflint.c:926
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): local symbol outside range described in "
@@ -2142,7 +2142,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: у sh_info опиÑано локальний Ñимвол поза "
"діапазоном\n"
-#: src/elflint.c:932
+#: src/elflint.c:933
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): non-local symbol outside range "
@@ -2151,12 +2151,12 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: у sh_info опиÑано нелокальний Ñимвол поза "
"діапазоном\n"
-#: src/elflint.c:939
+#: src/elflint.c:940
#, 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:990
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section "
@@ -2165,7 +2165,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол _GLOBAL_OFFSET_TABLE_ поÑилаєтьÑÑ Ð½Ð° помилковий "
"розділ, [%2d]\n"
-#: src/elflint.c:996
+#: src/elflint.c:997
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] "
@@ -2177,7 +2177,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:1013
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not "
@@ -2186,7 +2186,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу _GLOBAL_OFFSET_TABLE_ %#<PRIx64> не "
"відповідає адреÑÑ– розділу %s %#<PRIx64>\n"
-#: src/elflint.c:1019
+#: src/elflint.c:1020
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not "
@@ -2195,7 +2195,7 @@ msgstr ""
"розділ [%2d] «%s»: розмір Ñимволу _GLOBAL_OFFSET_TABLE_ %<PRIu64> не "
"відповідає розміру розділу %s %<PRIu64>\n"
-#: src/elflint.c:1027
+#: src/elflint.c:1028
#, c-format
msgid ""
"section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got "
@@ -2204,7 +2204,7 @@ msgstr ""
"розділ [%2d] «%s»: виÑвлено Ñимвол _GLOBAL_OFFSET_TABLE_, але не виÑвлено "
"розділу .got\n"
-#: src/elflint.c:1043
+#: src/elflint.c:1044
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic "
@@ -2213,7 +2213,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñимволу _DYNAMIC_ %#<PRIx64> не відповідає "
"адреÑÑ– динамічного Ñегмента %#<PRIx64>\n"
-#: src/elflint.c:1050
+#: src/elflint.c:1051
#, c-format
msgid ""
"section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic "
@@ -2222,7 +2222,7 @@ msgstr ""
"розділ [%2d] «%s»: розмір Ñимволу _DYNAMIC %<PRIu64> не відповідає розміру "
"динамічного Ñегмента %<PRIu64>\n"
-#: src/elflint.c:1063
+#: src/elflint.c:1064
#, fuzzy, c-format
msgid ""
"section [%2d] '%s': symbol %zu (%s): symbol in dynamic symbol table with non-"
@@ -2231,29 +2231,29 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %zu: Ñимвол у динамічній таблиці Ñимволів з "
"нетиповою видиміÑÑ‚ÑŽ\n"
-#: src/elflint.c:1067
+#: src/elflint.c:1068
#, 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:1106
#, c-format
msgid "section [%2d] '%s': cannot get section data.\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу.\n"
-#: src/elflint.c:1121
+#: src/elflint.c:1122
#, 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:1133 src/elflint.c:1186
#, 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:1158 src/elflint.c:1211
#, c-format
msgid ""
"section [%2d] '%s': relative relocations after index %d as specified by "
@@ -2262,7 +2262,7 @@ msgstr ""
"розділ [%2d] «%s»: відноÑні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ— %d, вказаної за "
"допомогою DT_RELCOUNT\n"
-#: src/elflint.c:1163 src/elflint.c:1216
+#: src/elflint.c:1164 src/elflint.c:1217
#, c-format
msgid ""
"section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT "
@@ -2271,27 +2271,27 @@ msgstr ""
"розділ [%2d] «%s»: безвідноÑне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° позиції %zu; DT_RELCOUNT "
"визначено %d відноÑних переÑуваннÑ\n"
-#: src/elflint.c:1175
+#: src/elflint.c:1176
#, 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:1259
#, c-format
msgid "section [%2d] '%s': invalid destination section index\n"
msgstr "розділ [%2d] «%s»: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ призначеннÑ\n"
-#: src/elflint.c:1270
+#: src/elflint.c:1271
#, c-format
msgid "section [%2d] '%s': invalid destination section type\n"
msgstr "розділ [%2d] «%s»: некоректний тип розділу призначеннÑ\n"
-#: src/elflint.c:1278
+#: src/elflint.c:1279
#, 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:1287
#, c-format
msgid ""
"section [%2d] '%s': no relocations for merge-able string sections possible\n"
@@ -2299,25 +2299,19 @@ msgstr ""
"розділ [%2d] «%s»: неможливі переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ñ€Ñдків, Ñкі непридатні "
"до об'єднаннÑ\n"
-#: src/elflint.c:1294
-#, 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:1365
#, c-format
msgid "text relocation flag set but there is no read-only segment\n"
msgstr ""
"вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту, але Ñегмент придатний лише до "
"читаннÑ\n"
-#: src/elflint.c:1381
+#: src/elflint.c:1392
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid type\n"
msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний тип\n"
-#: src/elflint.c:1389
+#: src/elflint.c:1400
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: relocation type invalid for the file "
@@ -2326,12 +2320,12 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний тип переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ "
"файла\n"
-#: src/elflint.c:1397
+#: src/elflint.c:1408
#, c-format
msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n"
msgstr "розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу\n"
-#: src/elflint.c:1415
+#: src/elflint.c:1426
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can "
@@ -2340,12 +2334,12 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: з %s можна викориÑтовувати лише Ñимвол "
"«_GLOBAL_OFFSET_TABLE_»\n"
-#: src/elflint.c:1432
+#: src/elflint.c:1443
#, 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:1458
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: copy relocation against symbol of type "
@@ -2354,7 +2348,7 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñимволу типу "
"%s\n"
-#: src/elflint.c:1468
+#: src/elflint.c:1479
#, c-format
msgid ""
"section [%2d] '%s': relocation %zu: read-only section modified but text "
@@ -2363,22 +2357,22 @@ msgstr ""
"розділ [%2d] «%s»: переÑÑƒÐ²Ð°Ð½Ð½Ñ %zu: змінено придатний лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ "
"розділ, але не вÑтановлено прапорець переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту\n"
-#: src/elflint.c:1483
+#: src/elflint.c:1494
#, 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:1534 src/elflint.c:1585
#, 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:1687
#, c-format
msgid "more than one dynamic section present\n"
msgstr "вказано більше одного динамічного розділу\n"
-#: src/elflint.c:1668
+#: src/elflint.c:1705
#, c-format
msgid ""
"section [%2d]: referenced as string table for section [%2d] '%s' but section "
@@ -2387,46 +2381,46 @@ msgstr ""
"розділ [%2d]: надано поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю Ñ€Ñдків розділу [%2d] «%s», але "
"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ Ñ” некоректним\n"
-#: src/elflint.c:1676
+#: src/elflint.c:1713
#, 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:1718 src/elflint.c:2008
#, c-format
msgid "section [%2d] '%s': sh_info not zero\n"
msgstr "розділ [%2d] «%s»: sh_info не є нульовим\n"
-#: src/elflint.c:1691
+#: src/elflint.c:1728
#, 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:1736
#, 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:1743
#, c-format
msgid "section [%2d] '%s': entry %zu: unknown tag\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: невідома мітка\n"
-#: src/elflint.c:1717
+#: src/elflint.c:1754
#, 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:1764
#, 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:1782
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"
@@ -2434,7 +2428,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: значеннÑм DT_PLTREL має бути DT_REL або "
"DT_RELA\n"
-#: src/elflint.c:1758
+#: src/elflint.c:1795
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: pointer does not match address of section "
@@ -2443,7 +2437,7 @@ msgstr ""
"розділ [%2d] «%s»: розділ %zu: вказівник не відповідає адреÑÑ– розділу [%2d] "
"«%s», на Ñку поÑилаєтьÑÑ sh_link\n"
-#: src/elflint.c:1801
+#: src/elflint.c:1839
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must point into loaded segment\n"
@@ -2451,7 +2445,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s має вказувати на завантажений "
"Ñегмент\n"
-#: src/elflint.c:1816
+#: src/elflint.c:1854
#, c-format
msgid ""
"section [%2d] '%s': entry %zu: %s value must be valid offset in section "
@@ -2460,48 +2454,48 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %zu: значеннÑм %s має бути коректне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ "
"розділі [%2d] «%s»\n"
-#: src/elflint.c:1836 src/elflint.c:1864
+#: src/elflint.c:1874 src/elflint.c:1902
#, 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:1886
#, c-format
msgid "section [%2d] '%s': mandatory tag %s not present\n"
msgstr "розділ [%2d] «%s»: немає обов’Ñзкової мітки %s\n"
-#: src/elflint.c:1857
+#: src/elflint.c:1895
#, 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:1910 src/elflint.c:1917
#, 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:1927 src/elflint.c:1931
#, 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:1937
#, 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:1948 src/elflint.c:1952 src/elflint.c:1956 src/elflint.c:1960
#, 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:1972
#, c-format
msgid ""
"section [%2d] '%s': only relocatable files can have extended section index\n"
@@ -2509,7 +2503,7 @@ msgstr ""
"розділ [%2d] «%s»: розширений розділ покажчика можуть мати лише файли, "
"придатні до переÑуваннÑ\n"
-#: src/elflint.c:1944
+#: src/elflint.c:1982
#, c-format
msgid ""
"section [%2d] '%s': extended section index section not for symbol table\n"
@@ -2517,29 +2511,29 @@ msgstr ""
"розділ [%2d] «%s»: розділ розширеного покажчика розділів не призначено Ð´Ð»Ñ "
"таблиць Ñимволів\n"
-#: src/elflint.c:1948
+#: src/elflint.c:1986
#, 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:1991
#, c-format
msgid "cannot get data for symbol section\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñимволів\n"
-#: src/elflint.c:1956
+#: src/elflint.c:1994
#, 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:2003
#, 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:2018
#, c-format
msgid ""
"section [%2d] '%s': extended section index in section [%2zu] '%s' refers to "
@@ -2548,24 +2542,24 @@ msgstr ""
"розділ [%2d] «%s»: розширений покажчик розділів у розділі [%2zu] «%s» "
"поÑилаєтьÑÑ Ð½Ð° ту Ñаму таблицю розділів\n"
-#: src/elflint.c:1998
+#: src/elflint.c:2036
#, c-format
msgid "symbol 0 should have zero extended section index\n"
msgstr "Ñимволу 0 має відповідати нульовий Ñ–Ð½Ð´ÐµÐºÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ð³Ð¾ розділу\n"
-#: src/elflint.c:2010
+#: src/elflint.c:2048
#, c-format
msgid "cannot get data for symbol %zu\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñимволу %zu\n"
-#: src/elflint.c:2015
+#: src/elflint.c:2053
#, 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:2070 src/elflint.c:2127
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n"
@@ -2573,43 +2567,43 @@ msgstr ""
"розділ [%2d] «%s»: розділ таблиці хешів занадто малий (розмір %ld, мало бути "
"— %ld)\n"
-#: src/elflint.c:2046 src/elflint.c:2103
+#: src/elflint.c:2084 src/elflint.c:2141
#, 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:2098 src/elflint.c:2155
#, 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:2108
#, 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:2165
#, 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:2178
#, c-format
msgid "section [%2d] '%s': not enough data\n"
msgstr "розділ [%2d] «%s»: недоÑтатньо даних\n"
-#: src/elflint.c:2152
+#: src/elflint.c:2190
#, 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:2206
#, c-format
msgid ""
"section [%2d] '%s': hash table section is too small (is %ld, expected at "
@@ -2618,12 +2612,12 @@ msgstr ""
"розділ [%2d] «%s»: розділ таблиці хешів є надто малим (маємо %ld, мало бути "
"принаймні %ld)\n"
-#: src/elflint.c:2177
+#: src/elflint.c:2215
#, 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:2249
#, c-format
msgid ""
"section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n"
@@ -2631,7 +2625,7 @@ msgstr ""
"розділ [%2d] '%s': ланцюжок хешів Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu розташовано нижче за позицію "
"Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу Ñимволу\n"
-#: src/elflint.c:2232
+#: src/elflint.c:2270
#, c-format
msgid ""
"section [%2d] '%s': symbol %u referenced in chain for bucket %zu is "
@@ -2640,7 +2634,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %u, на Ñкий поÑилаєтьÑÑ Ð»Ð°Ð½Ñ†ÑŽÐ¶Ð¾Ðº у блоці %zu не "
"визначено\n"
-#: src/elflint.c:2245
+#: src/elflint.c:2283
#, c-format
msgid ""
"section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n"
@@ -2648,7 +2642,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ…ÐµÑˆÑƒ Ð´Ð»Ñ Ñимволу %u у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu Ñ” "
"помилковим\n"
-#: src/elflint.c:2254
+#: src/elflint.c:2292
#, c-format
msgid ""
"section [%2d] '%s': mask index for symbol %u in chain for bucket %zu wrong\n"
@@ -2656,14 +2650,14 @@ msgstr ""
"розділ [%2d] «%s»: Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð°Ñки Ð´Ð»Ñ Ñимволу %u у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu Ñ” "
"помилковим\n"
-#: src/elflint.c:2284
+#: src/elflint.c:2322
#, 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:2327
#, c-format
msgid ""
"section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n"
@@ -2671,43 +2665,43 @@ msgstr ""
"розділ [%2d] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол у ланцюжку Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÑƒ %zu лежить поза "
"межами діапазону\n"
-#: src/elflint.c:2295
+#: src/elflint.c:2333
#, 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:2346
#, c-format
msgid "section [%2d] '%s': relocatable files cannot have hash tables\n"
msgstr ""
"розділ [%2d] «%s»: придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸ не можуть міÑтити таблиць "
"хешів\n"
-#: src/elflint.c:2326
+#: src/elflint.c:2364
#, 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:2368
#, 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:2378
#, c-format
msgid "section [%2d] '%s': hash table entry size incorrect\n"
msgstr "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу таблиці хешів Ñ” некоректною\n"
-#: src/elflint.c:2345
+#: src/elflint.c:2383
#, c-format
msgid "section [%2d] '%s': not marked to be allocated\n"
msgstr "розділ [%2d] «%s»: не позначено Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑуваннÑ\n"
-#: src/elflint.c:2350
+#: src/elflint.c:2388
#, c-format
msgid ""
"section [%2d] '%s': hash table has not even room for initial administrative "
@@ -2716,27 +2710,27 @@ msgstr ""
"розділ [%2d] «%s»: у таблиці хешів виÑвлено незвичайне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ "
"початкових адмініÑтративних запиÑів\n"
-#: src/elflint.c:2399
+#: src/elflint.c:2437
#, 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:2461 src/elflint.c:2526 src/elflint.c:2561
#, c-format
msgid "hash section [%2zu] '%s' does not contain enough data\n"
msgstr "розділ хешу [%2zu] «%s» міÑтить недоÑтатньо даних\n"
-#: src/elflint.c:2444
+#: src/elflint.c:2482
#, 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:2493 src/elflint.c:2537 src/elflint.c:2574
#, c-format
msgid "hash section [%2zu] '%s' uses too much data\n"
msgstr "розділ хешу [%2zu] «%s» викориÑтовує надто багато даних\n"
-#: src/elflint.c:2470
+#: src/elflint.c:2508
#, c-format
msgid ""
"hash section [%2zu] '%s' invalid symbol index %<PRIu32> (max_nsyms: "
@@ -2745,17 +2739,17 @@ msgstr ""
"розділ хешу [%2zu] «%s» некоректний Ñ–Ð½Ð´ÐµÐºÑ Ñимволу %<PRIu32> (макÑ. к-Ñ‚ÑŒ "
"Ñимволів: %<PRIu32>, кількіÑÑ‚ÑŒ запиÑів: %<PRIu32>\n"
-#: src/elflint.c:2557
+#: src/elflint.c:2595
#, 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:2605 src/elflint.c:2609
#, c-format
msgid "section [%2zu] '%s': reference to symbol index 0\n"
msgstr "розділ [%2zu] «%s»: поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñ–Ð½Ð´ÐµÐºÑ Ñимволів 0\n"
-#: src/elflint.c:2578
+#: src/elflint.c:2616
#, c-format
msgid ""
"symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash "
@@ -2764,7 +2758,7 @@ msgstr ""
"виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол %d у новій таблиці хешів у [%2zu] «%s», але "
"його немає у Ñтарій таблиці хешів у [%2zu] «%s»\n"
-#: src/elflint.c:2590
+#: src/elflint.c:2628
#, c-format
msgid ""
"symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash "
@@ -2773,12 +2767,12 @@ msgstr ""
"виÑвлено поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñимвол %d у Ñтарій таблиці хешів у [%2zu] «%s», але "
"його немає у новій таблиці хешів у [%2zu] «%s»\n"
-#: src/elflint.c:2606
+#: src/elflint.c:2644
#, 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:2664
#, c-format
msgid ""
"section [%2d] '%s': section groups only allowed in relocatable object files\n"
@@ -2786,95 +2780,95 @@ msgstr ""
"розділ [%2d] «%s»: групи розділів передбачено лише Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… до "
"переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… файлах\n"
-#: src/elflint.c:2637
+#: src/elflint.c:2675
#, c-format
msgid "section [%2d] '%s': cannot get symbol table: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ таблицю Ñимволів: %s\n"
-#: src/elflint.c:2642
+#: src/elflint.c:2680
#, 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:2686
#, 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:2691
#, c-format
msgid "section [%2d] '%s': sh_flags not zero\n"
msgstr "розділ [%2d] «%s»: sh_flags не є нульовим\n"
-#: src/elflint.c:2660
+#: src/elflint.c:2698
#, c-format
msgid "section [%2d] '%s': cannot get symbol for signature\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñимвол Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу\n"
-#: src/elflint.c:2664
+#: src/elflint.c:2702
#, c-format
msgid "section [%2d] '%s': cannot get symbol name for signature\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву Ñимволу Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу\n"
-#: src/elflint.c:2669
+#: src/elflint.c:2707
#, c-format
msgid "section [%2d] '%s': signature symbol cannot be empty string\n"
msgstr "розділ [%2d] «%s»: Ñимвол підпиÑу не може бути порожнім Ñ€Ñдком\n"
-#: src/elflint.c:2675
+#: src/elflint.c:2713
#, 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:2719
#, c-format
msgid "section [%2d] '%s': cannot get data: %s\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані: %s\n"
-#: src/elflint.c:2690
+#: src/elflint.c:2728
#, 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:2734
#, c-format
msgid "section [%2d] '%s': section group without flags word\n"
msgstr "розділ [%2d] «%s»: група розділів без Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ word прапорців\n"
-#: src/elflint.c:2704
+#: src/elflint.c:2742
#, c-format
msgid "section [%2d] '%s': section group without member\n"
msgstr "розділ [%2d] «%s»: група розділів без елементів\n"
-#: src/elflint.c:2708
+#: src/elflint.c:2746
#, c-format
msgid "section [%2d] '%s': section group with only one member\n"
msgstr "розділ [%2d] «%s»: група розділів, що міÑтить лише один елемент\n"
-#: src/elflint.c:2719
+#: src/elflint.c:2757
#, c-format
msgid "section [%2d] '%s': unknown section group flags\n"
msgstr "розділ [%2d] «%s»: невідомі прапорці групи розділів\n"
-#: src/elflint.c:2731
+#: src/elflint.c:2769
#, 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:2778
#, 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:2785
#, 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:2791
#, c-format
msgid ""
"section [%2d] '%s': element %zu references section [%2d] '%s' without "
@@ -2883,12 +2877,12 @@ msgstr ""
"розділ [%2d] «%s»: елемент %zu поÑилаєтьÑÑ Ð½Ð° розділ [%2d] «%s» без "
"вÑтановленого Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ SHF_GROUP\n"
-#: src/elflint.c:2760
+#: src/elflint.c:2798
#, 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:2995
#, c-format
msgid ""
"section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no "
@@ -2897,7 +2891,7 @@ msgstr ""
"розділ [%2d] «%s» поÑилаєтьÑÑ Ñƒ sh_link на розділ [%2d] «%s», Ñкий не має "
"динамічної таблиці Ñимволів\n"
-#: src/elflint.c:2969
+#: src/elflint.c:3007
#, c-format
msgid ""
"section [%2d] '%s' has different number of entries than symbol table [%2d] "
@@ -2906,28 +2900,28 @@ msgstr ""
"кількіÑÑ‚ÑŒ запиÑів у розділі [%2d] «%s» відрізнÑєтьÑÑ Ð²Ñ–Ð´ кількоÑÑ‚Ñ– у таблиці "
"Ñимволів [%2d] «%s»\n"
-#: src/elflint.c:2985
+#: src/elflint.c:3023
#, 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:3039
#, 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:3047
#, 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:3061
#, 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:3066
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for defined version\n"
@@ -2935,7 +2929,7 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %d: індекÑи верÑÑ–Ñ— %d призначено до визначеної "
"верÑÑ–Ñ—\n"
-#: src/elflint.c:3038
+#: src/elflint.c:3076
#, c-format
msgid ""
"section [%2d] '%s': symbol %d: version index %d is for requested version\n"
@@ -2943,45 +2937,45 @@ msgstr ""
"розділ [%2d] «%s»: Ñимвол %d: Ñ–Ð½Ð´ÐµÐºÑ Ð²ÐµÑ€ÑÑ–Ñ— %d призначено Ð´Ð»Ñ Ð²ÐµÑ€ÑÑ–Ñ—, на Ñку "
"надійшов запит\n"
-#: src/elflint.c:3091
+#: src/elflint.c:3129
#, c-format
msgid "more than one version reference section present\n"
msgstr "виÑвлено більше за один розділ поÑилань на верÑÑ–Ñ—\n"
-#: src/elflint.c:3099 src/elflint.c:3246
+#: src/elflint.c:3137 src/elflint.c:3284
#, 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:3162 src/elflint.c:3338
#, 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:3169 src/elflint.c:3345
#, 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:3179
#, 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:3187
#, c-format
msgid "section [%2d] '%s': entry %d references unknown dependency\n"
msgstr "розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d поÑилаєтьÑÑ Ð½Ð° невідому залежніÑÑ‚ÑŒ\n"
-#: src/elflint.c:3161
+#: src/elflint.c:3199
#, 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:3207
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has invalid name "
@@ -2990,7 +2984,7 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d міÑтить некоректне "
"поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву\n"
-#: src/elflint.c:3178
+#: src/elflint.c:3216
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: "
@@ -2999,7 +2993,7 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d має помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
"хешу: %#x, мало бути %#x\n"
-#: src/elflint.c:3187
+#: src/elflint.c:3225
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version "
@@ -3008,7 +3002,7 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d міÑтить дублікати назви "
"верÑÑ–Ñ— «%s»\n"
-#: src/elflint.c:3198
+#: src/elflint.c:3236
#, c-format
msgid ""
"section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n"
@@ -3016,13 +3010,13 @@ msgstr ""
"розділ [%2d] «%s»: допоміжний Ð·Ð°Ð¿Ð¸Ñ %d запиÑу %d має помилкове наÑтупне "
"поле\n"
-#: src/elflint.c:3215 src/elflint.c:3391
+#: src/elflint.c:3253 src/elflint.c:3429
#, 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:3261 src/elflint.c:3437
#, c-format
msgid ""
"section [%2d] '%s': entry %d has zero offset to next entry, but sh_info says "
@@ -3031,44 +3025,44 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d має нульове Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ наÑтупного запиÑу, але "
"за sh_info можна зрозуміти, що запиÑів більше\n"
-#: src/elflint.c:3238
+#: src/elflint.c:3276
#, c-format
msgid "more than one version definition section present\n"
msgstr "виÑвлено більше за один розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€Ñій\n"
-#: src/elflint.c:3285
+#: src/elflint.c:3323
#, c-format
msgid "section [%2d] '%s': more than one BASE definition\n"
msgstr "розділ [%2d] «%s»: повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE\n"
-#: src/elflint.c:3289
+#: src/elflint.c:3327
#, 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:3333
#, c-format
msgid "section [%2d] '%s': entry %d has unknown flag\n"
msgstr "розділ [%2d] «%s»: невідомий прапорець запиÑу %d\n"
-#: src/elflint.c:3322
+#: src/elflint.c:3360
#, 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:3367
#, 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:3375
#, 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:3395
#, c-format
msgid ""
"section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n"
@@ -3076,53 +3070,53 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð°Ð¿Ð¸Ñ %d міÑтить некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° назву у "
"допоміжних даних\n"
-#: src/elflint.c:3374
+#: src/elflint.c:3412
#, 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:3445
#, c-format
msgid "section [%2d] '%s': no BASE definition\n"
msgstr "розділ [%2d] «%s»: немає Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ BASE\n"
-#: src/elflint.c:3423
+#: src/elflint.c:3461
#, c-format
msgid "section [%2d] '%s': unknown parent version '%s'\n"
msgstr "розділ [%2d] «%s»: невідома оÑновна верÑÑ–Ñ Â«%s»\n"
-#: src/elflint.c:3448
+#: src/elflint.c:3486
#, c-format
msgid "section [%2d] '%s': empty object attributes section\n"
msgstr "розділ [%2d] «%s»: порожній розділ атрибутів об’єкта\n"
-#: src/elflint.c:3464
+#: src/elflint.c:3502
#, c-format
msgid "section [%2d] '%s': unrecognized attribute format\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ формат атрибутів\n"
-#: src/elflint.c:3475
+#: src/elflint.c:3513
#, 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:3522
#, 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:3534
#, 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:3551
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
@@ -3130,12 +3124,12 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершене поле ULEB128 у тезі підрозділу "
"атрибутів\n"
-#: src/elflint.c:3522
+#: src/elflint.c:3560
#, c-format
msgid "section [%2d] '%s': offset %zu: truncated attribute section\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: обрізаний розділ атрибутів\n"
-#: src/elflint.c:3531
+#: src/elflint.c:3569
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: zero length field in attribute subsection\n"
@@ -3143,7 +3137,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: поле нульового розміру у підрозділі "
"атрибутів\n"
-#: src/elflint.c:3546
+#: src/elflint.c:3584
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: invalid length in attribute subsection\n"
@@ -3151,7 +3145,7 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: некоректна довжина у підрозділі атрибутів\n"
#. Tag_File
-#: src/elflint.c:3557
+#: src/elflint.c:3595
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n"
@@ -3159,35 +3153,35 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: підрозділ атрибутів міÑтить неочікуваний "
"теґ %u\n"
-#: src/elflint.c:3578
+#: src/elflint.c:3616
#, c-format
msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершене поле ULEB128 у тезі атрибуту\n"
-#: src/elflint.c:3589
+#: src/elflint.c:3627
#, c-format
msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений Ñ€Ñдок у атрибуті\n"
-#: src/elflint.c:3602
+#: src/elflint.c:3640
#, c-format
msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: незавершений теґ атрибуту %u\n"
-#: src/elflint.c:3606
+#: src/elflint.c:3644
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n"
msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: невідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s атрибуту %<PRIu64>\n"
-#: src/elflint.c:3616
+#: src/elflint.c:3654
#, c-format
msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n"
msgstr "розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: невідомий поÑтачальник «%s»\n"
-#: src/elflint.c:3622
+#: src/elflint.c:3660
#, c-format
msgid ""
"section [%2d] '%s': offset %zu: extra bytes after last attribute section\n"
@@ -3195,47 +3189,47 @@ msgstr ""
"розділ [%2d] «%s»: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ %zu: зайві байти піÑÐ»Ñ Ð¾Ñтаннього розділу "
"атрибутів\n"
-#: src/elflint.c:3719
+#: src/elflint.c:3758
#, c-format
msgid "cannot get section header of zeroth section\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок нульового розділу\n"
-#: src/elflint.c:3723
+#: src/elflint.c:3762
#, c-format
msgid "zeroth section has nonzero name\n"
msgstr "нульовий розділ має ненульову назву\n"
-#: src/elflint.c:3725
+#: src/elflint.c:3764
#, c-format
msgid "zeroth section has nonzero type\n"
msgstr "нульовий розділ має ненульовий тип\n"
-#: src/elflint.c:3727
+#: src/elflint.c:3766
#, c-format
msgid "zeroth section has nonzero flags\n"
msgstr "нульовий розділ має ненульові прапорці\n"
-#: src/elflint.c:3729
+#: src/elflint.c:3768
#, c-format
msgid "zeroth section has nonzero address\n"
msgstr "нульовий розділ має ненульову адреÑу\n"
-#: src/elflint.c:3731
+#: src/elflint.c:3770
#, c-format
msgid "zeroth section has nonzero offset\n"
msgstr "нульовий розділ має ненульове зміщеннÑ\n"
-#: src/elflint.c:3733
+#: src/elflint.c:3772
#, c-format
msgid "zeroth section has nonzero align value\n"
msgstr "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ\n"
-#: src/elflint.c:3735
+#: src/elflint.c:3774
#, c-format
msgid "zeroth section has nonzero entry size value\n"
msgstr "нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ запиÑу\n"
-#: src/elflint.c:3738
+#: src/elflint.c:3777
#, c-format
msgid ""
"zeroth section has nonzero size value while ELF header has nonzero shnum "
@@ -3244,7 +3238,7 @@ msgstr ""
"нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ, хоча заголовок ELF ман "
"ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ shnum\n"
-#: src/elflint.c:3742
+#: src/elflint.c:3781
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3253,7 +3247,7 @@ msgstr ""
"нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ, хоча у заголовку ELF "
"немає Ñигналу Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ shstrndx\n"
-#: src/elflint.c:3746
+#: src/elflint.c:3785
#, c-format
msgid ""
"zeroth section has nonzero link value while ELF header does not signal "
@@ -3262,28 +3256,28 @@ msgstr ""
"нульовий розділ має ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ, хоча у заголовку ELF "
"немає Ñигналу Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ phnum\n"
-#: src/elflint.c:3764
+#: src/elflint.c:3803
#, c-format
msgid "cannot get section header for section [%2zu] '%s': %s\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу [%2zu] «%s»: %s\n"
-#: src/elflint.c:3773
+#: src/elflint.c:3812
#, c-format
msgid "section [%2zu]: invalid name\n"
msgstr "розділ [%2zu]: некоректна назва\n"
-#: src/elflint.c:3800
+#: src/elflint.c:3839
#, c-format
msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n"
msgstr ""
"розділ [%2d] «%s» належить до помилкового типу: мав бути %s, маємо %s\n"
-#: src/elflint.c:3817
+#: src/elflint.c:3856
#, c-format
msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n"
msgstr "розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, маємо %s\n"
-#: src/elflint.c:3835
+#: src/elflint.c:3874
#, c-format
msgid ""
"section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n"
@@ -3291,12 +3285,12 @@ msgstr ""
"розділ [%2zu] «%s» має помилкові прапорці: мало бути %s, можливо, %s, але "
"маємо %s\n"
-#: src/elflint.c:3852
+#: src/elflint.c:3891
#, c-format
msgid "section [%2zu] '%s' present in object file\n"
msgstr "у об’єктному файлі виÑвлено розділ [%2zu] «%s»\n"
-#: src/elflint.c:3858 src/elflint.c:3890
+#: src/elflint.c:3897 src/elflint.c:3929
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n"
@@ -3304,7 +3298,7 @@ msgstr ""
"у розділ [%2zu] «%s» вÑтановлено прапорець SHF_ALLOC, але немає придатного "
"до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента\n"
-#: src/elflint.c:3863 src/elflint.c:3895
+#: src/elflint.c:3902 src/elflint.c:3934
#, c-format
msgid ""
"section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable "
@@ -3313,7 +3307,7 @@ msgstr ""
"у розділі [%2zu] «%s» не вÑтановлено прапорець SHF_ALLOC, але Ñ” придатні до "
"Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегменти\n"
-#: src/elflint.c:3871
+#: src/elflint.c:3910
#, c-format
msgid ""
"section [%2zu] '%s' is extension section index table in non-object file\n"
@@ -3321,22 +3315,22 @@ msgstr ""
"розділ [%2zu] «%s» Ñ” таблицею-покажчиком розділу розширень у файлі, Ñкий не "
"є об’єктним\n"
-#: src/elflint.c:3914
+#: src/elflint.c:3953
#, c-format
msgid "section [%2zu] '%s': size not multiple of entry size\n"
msgstr "розділ [%2zu] «%s»: розмір не Ñ” кратним до розміру запиÑу\n"
-#: src/elflint.c:3919
+#: src/elflint.c:3958
#, c-format
msgid "cannot get section header\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу\n"
-#: src/elflint.c:3929
+#: src/elflint.c:3968
#, c-format
msgid "section [%2zu] '%s' has unsupported type %d\n"
msgstr "розділ [%2zu] «%s» належить до непідтримуваного типу %d\n"
-#: src/elflint.c:3949
+#: src/elflint.c:3988
#, c-format
msgid ""
"section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n"
@@ -3344,74 +3338,74 @@ msgstr ""
"розділ [%2zu] «%s» міÑтить некоректні Ñпецифічні Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора прапорці "
"%#<PRIx64>\n"
-#: src/elflint.c:3959
+#: src/elflint.c:3998
#, c-format
msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n"
msgstr "розділ [%2zu] «%s» міÑтить невідомі прапорці %#<PRIx64>\n"
-#: src/elflint.c:3967
+#: src/elflint.c:4006
#, c-format
msgid "section [%2zu] '%s': thread-local data sections address not zero\n"
msgstr ""
"розділ [%2zu] «%s»: адреÑа розділів локальних даних потоків не Ñ” нульовою\n"
-#: src/elflint.c:3977
+#: src/elflint.c:4016
#, c-format
msgid "section [%2zu] '%s': allocated section cannot be compressed\n"
msgstr ""
"розділ [%2zu] «%s»: розміщений у пам'ÑÑ‚Ñ– розділ не може бути ÑтиÑнений\n"
-#: src/elflint.c:3982
+#: src/elflint.c:4021
#, c-format
msgid "section [%2zu] '%s': nobits section cannot be compressed\n"
msgstr "розділ [%2zu] «%s»: розділ nobits не може бути ÑтиÑнений\n"
-#: src/elflint.c:3988
+#: src/elflint.c:4027
#, c-format
msgid ""
"section [%2zu] '%s': compressed section with no compression header: %s\n"
msgstr "розділ [%2zu] «%s»: ÑтиÑнений розділ без заголовка ÑтиÑненнÑ: %s\n"
-#: src/elflint.c:3994
+#: src/elflint.c:4033
#, c-format
msgid "section [%2zu] '%s': invalid section reference in link value\n"
msgstr ""
"розділ [%2zu] «%s»: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у значенні компонуваннÑ\n"
-#: src/elflint.c:3999
+#: src/elflint.c:4038
#, c-format
msgid "section [%2zu] '%s': invalid section reference in info value\n"
msgstr ""
"розділ [%2zu] «%s»: некоректне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ у значенні відомоÑтей\n"
-#: src/elflint.c:4006
+#: src/elflint.c:4045
#, c-format
msgid "section [%2zu] '%s': strings flag set without merge flag\n"
msgstr "розділ [%2zu] «%s»: вÑтановлено прапорець strings без Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ merge\n"
-#: src/elflint.c:4011
+#: src/elflint.c:4050
#, c-format
msgid "section [%2zu] '%s': merge flag set but entry size is zero\n"
msgstr ""
"розділ [%2zu] «%s»: вÑтановлено прапорець merge, але розмір запиÑу Ñ” "
"нульовим\n"
-#: src/elflint.c:4030
+#: src/elflint.c:4069
#, c-format
msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n"
msgstr "розділ [%2zu] «%s» має неочікуваний тип %d Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ розділу\n"
-#: src/elflint.c:4039
+#: src/elflint.c:4078
#, c-format
msgid "section [%2zu] '%s' must be of type NOBITS in debuginfo files\n"
msgstr "розділ [%2zu] «%s» у файлах debuginfo має належати до типу NOBITS\n"
-#: src/elflint.c:4046
+#: src/elflint.c:4085
#, c-format
msgid "section [%2zu] '%s' is both executable and writable\n"
msgstr "розділ [%2zu] «%s» Ñ” одночаÑно виконуваним Ñ– придатним до запиÑу\n"
-#: src/elflint.c:4077
+#: src/elflint.c:4116
#, c-format
msgid ""
"section [%2zu] '%s' not fully contained in segment of program header entry "
@@ -3420,7 +3414,7 @@ msgstr ""
"розділ [%2zu] «%s» не повніÑÑ‚ÑŽ міÑтитьÑÑ Ñƒ Ñегменті запиÑу заголовка "
"програми %d\n"
-#: src/elflint.c:4087
+#: src/elflint.c:4126
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3429,7 +3423,7 @@ msgstr ""
"розділ [%2zu] «%s» належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð· "
"файла у Ñегментів запиÑу заголовка програми %d\n"
-#: src/elflint.c:4113
+#: src/elflint.c:4152
#, c-format
msgid ""
"section [%2zu] '%s' has type NOBITS but is read from the file in segment of "
@@ -3438,7 +3432,7 @@ msgstr ""
"розділ [%2zu] «%s» належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð· "
"файла у Ñегментів запиÑу заголовка програми %d, а вміÑÑ‚ файла Ñ” ненульовим\n"
-#: src/elflint.c:4124
+#: src/elflint.c:4163
#, c-format
msgid ""
"section [%2zu] '%s' has not type NOBITS but is not read from the file in "
@@ -3447,19 +3441,19 @@ msgstr ""
"розділ [%2zu] «%s» не належить до типу NOBITS, але його Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð½Ðµ "
"виконуєтьÑÑ Ð· файла у Ñегментів запиÑу заголовка програми %d\n"
-#: src/elflint.c:4135
+#: src/elflint.c:4174
#, c-format
msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n"
msgstr "розділ [%2zu] «%s» Ñ” виконуваним у невиконуваному Ñегменті %d\n"
-#: src/elflint.c:4145
+#: src/elflint.c:4184
#, c-format
msgid "section [%2zu] '%s' is writable in unwritable segment %d\n"
msgstr ""
"розділ [%2zu] «%s» Ñ” придатним до запиÑу у непридатному до запиÑу Ñегменті "
"%d\n"
-#: src/elflint.c:4155
+#: src/elflint.c:4194
#, c-format
msgid ""
"section [%2zu] '%s': alloc flag set but section not in any loaded segment\n"
@@ -3467,7 +3461,7 @@ msgstr ""
"розділ [%2zu] «%s»: вÑтановлено прапорець alloc, але розділ не перебуває у "
"жодному завантаженому Ñегменті\n"
-#: src/elflint.c:4161
+#: src/elflint.c:4200
#, c-format
msgid ""
"section [%2zu] '%s': ELF header says this is the section header string table "
@@ -3476,7 +3470,7 @@ msgstr ""
"розділ [%2zu] «%s»: заголовок ELF повідомлÑÑ” про те, що це Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñ€Ñдків "
"заголовка розділу, але Ñ†Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ðµ належить до типу SHT_TYPE\n"
-#: src/elflint.c:4169
+#: src/elflint.c:4208
#, c-format
msgid ""
"section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"
@@ -3484,17 +3478,17 @@ msgstr ""
"розділ [%2zu] «%s»: придатні до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¸ не можуть міÑтити "
"динамічних таблиць Ñимволів\n"
-#: src/elflint.c:4220
+#: src/elflint.c:4263
#, c-format
msgid "more than one version symbol table present\n"
msgstr "виÑвлено більше за одну таблицю Ñимволів верÑій\n"
-#: src/elflint.c:4243
+#: src/elflint.c:4286
#, c-format
msgid "INTERP program header entry but no .interp section\n"
msgstr "Ñ–Ñнує Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми INTERP, але не розділ .interp\n"
-#: src/elflint.c:4254
+#: src/elflint.c:4297
#, c-format
msgid ""
"loadable segment [%u] is executable but contains no executable sections\n"
@@ -3502,14 +3496,14 @@ msgstr ""
"придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент [%u] Ñ” виконуваним, але не міÑтить "
"виконуваних розділів\n"
-#: src/elflint.c:4260
+#: src/elflint.c:4303
#, c-format
msgid "loadable segment [%u] is writable but contains no writable sections\n"
msgstr ""
"придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð» [%u] Ñ” придатним до запиÑу, але не міÑтить "
"придатних до запиÑу розділів\n"
-#: src/elflint.c:4271
+#: src/elflint.c:4314
#, c-format
msgid ""
"no .gnu.versym section present but .gnu.versym_d or .gnu.versym_r section "
@@ -3518,24 +3512,24 @@ msgstr ""
"немає розділу .gnu.versym, хоча Ñ–Ñнує розділ .gnu.versym_d або .gnu."
"versym_r\n"
-#: src/elflint.c:4284
+#: src/elflint.c:4327
#, c-format
msgid "duplicate version index %d\n"
msgstr "дублікат індекÑу верÑÑ–Ñ— %d\n"
-#: src/elflint.c:4298
+#: src/elflint.c:4341
#, 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:4347
+#: src/elflint.c:4390
#, 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:4351
+#: src/elflint.c:4394
#, c-format
msgid ""
"section [%2d] '%s': unknown core file note type %<PRIu32> at offset %zu\n"
@@ -3543,7 +3537,7 @@ msgstr ""
"розділ [%2d] «%s»: невідомий тип нотатки файла core %<PRIu32> за зміщеннÑм "
"%zu\n"
-#: src/elflint.c:4407
+#: src/elflint.c:4450
#, c-format
msgid ""
"phdr[%d]: unknown object file note type %<PRIu32> with owner name '%s' at "
@@ -3552,7 +3546,7 @@ msgstr ""
"phdr[%d]: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із іменем "
"влаÑника «%s» за зміщеннÑм %zu\n"
-#: src/elflint.c:4412
+#: src/elflint.c:4455
#, c-format
msgid ""
"section [%2d] '%s': unknown object file note type %<PRIu32> with owner name "
@@ -3561,39 +3555,39 @@ msgstr ""
"розділ [%2d] «%s»: невідомий тип нотатки у файлі об'єктів, %<PRIu32>, із "
"іменем влаÑника «%s» за зміщеннÑм %zu\n"
-#: src/elflint.c:4431
+#: src/elflint.c:4474
#, c-format
msgid "phdr[%d]: no note entries defined for the type of file\n"
msgstr "phdr[%d]: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n"
-#: src/elflint.c:4451
+#: src/elflint.c:4494
#, c-format
msgid "phdr[%d]: cannot get content of note section: %s\n"
msgstr "phdr[%d]: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток: %s\n"
-#: src/elflint.c:4454
+#: src/elflint.c:4497
#, c-format
msgid "phdr[%d]: extra %<PRIu64> bytes after last note\n"
msgstr "phdr[%d]: зайві %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтаннього запиÑу нотатки\n"
-#: src/elflint.c:4475
+#: src/elflint.c:4518
#, c-format
msgid "section [%2d] '%s': no note entries defined for the type of file\n"
msgstr ""
"розділ [%2d] «%s»: Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу файлів не визначено запиÑів нотаток\n"
-#: src/elflint.c:4482
+#: src/elflint.c:4525
#, c-format
msgid "section [%2d] '%s': cannot get content of note section\n"
msgstr "розділ [%2d] «%s»: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ розділу нотаток\n"
-#: src/elflint.c:4485
+#: src/elflint.c:4528
#, c-format
msgid "section [%2d] '%s': extra %<PRIu64> bytes after last note\n"
msgstr ""
"розділ [%2d] «%s»: додаткові %<PRIu64> байтів піÑÐ»Ñ Ð¾Ñтанньої нотатки\n"
-#: src/elflint.c:4503
+#: src/elflint.c:4546
#, c-format
msgid ""
"only executables, shared objects, and core files can have program headers\n"
@@ -3601,66 +3595,66 @@ msgstr ""
"заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів "
"Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ файлів core\n"
-#: src/elflint.c:4518
+#: src/elflint.c:4561
#, c-format
msgid "cannot get program header entry %d: %s\n"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: %s\n"
-#: src/elflint.c:4528
+#: src/elflint.c:4571
#, c-format
msgid "program header entry %d: unknown program header entry type %#<PRIx64>\n"
msgstr ""
"Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: невідомий тип запиÑу заголовка програми "
"%#<PRIx64>\n"
-#: src/elflint.c:4539
+#: src/elflint.c:4582
#, c-format
msgid "more than one INTERP entry in program header\n"
msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ INTERP у заголовку програми\n"
-#: src/elflint.c:4547
+#: src/elflint.c:4590
#, c-format
msgid "more than one TLS entry in program header\n"
msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ TLS у заголовку програми\n"
-#: src/elflint.c:4554
+#: src/elflint.c:4597
#, c-format
msgid "static executable cannot have dynamic sections\n"
msgstr "у Ñтатичному виконуваному файлі не може бути динамічних розділів\n"
-#: src/elflint.c:4568
+#: src/elflint.c:4611
#, c-format
msgid "dynamic section reference in program header has wrong offset\n"
msgstr ""
"поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° динамічний розділ у заголовку програми має помилкове зміщеннÑ\n"
-#: src/elflint.c:4571
+#: src/elflint.c:4614
#, c-format
msgid "dynamic section size mismatch in program and section header\n"
msgstr ""
"розміри динамічного розділу у заголовку програми та у заголовку розділу не "
"збігаютьÑÑ\n"
-#: src/elflint.c:4581
+#: src/elflint.c:4624
#, c-format
msgid "more than one GNU_RELRO entry in program header\n"
msgstr "більше за один Ð·Ð°Ð¿Ð¸Ñ GNU_RELRO у заголовку програми\n"
-#: src/elflint.c:4602
+#: src/elflint.c:4645
#, c-format
msgid "loadable segment GNU_RELRO applies to is not writable\n"
msgstr ""
"придатний до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмент, до Ñкого звертаєтьÑÑ GNU_RELRO, "
"непридатний до запиÑу\n"
-#: src/elflint.c:4613
+#: src/elflint.c:4656
#, c-format
msgid "loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"
msgstr ""
"прапорці придатного до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегмента [%u] не відповідають прапорцÑм "
"GNU_RELRO [%u]\n"
-#: src/elflint.c:4620
+#: src/elflint.c:4663
#, c-format
msgid ""
"GNU_RELRO [%u] flags are not a subset of the loadable segment [%u] flags\n"
@@ -3668,76 +3662,76 @@ msgstr ""
"прапорці GNU_RELRO [%u] не Ñ” підмножиною прапорців завантажуваного Ñегмента "
"[%u]\n"
-#: src/elflint.c:4629 src/elflint.c:4652
+#: src/elflint.c:4672 src/elflint.c:4695
#, c-format
msgid "%s segment not contained in a loaded segment\n"
msgstr "Ñегмент %s не міÑтитьÑÑ Ñƒ завантаженому Ñегменті\n"
-#: src/elflint.c:4658
+#: src/elflint.c:4701
#, c-format
msgid "program header offset in ELF header and PHDR entry do not match"
msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми у заголовку ELF Ñ– Ð·Ð°Ð¿Ð¸Ñ PHDR не збігаютьÑÑ"
-#: src/elflint.c:4685
+#: src/elflint.c:4728
#, c-format
msgid "call frame search table reference in program header has wrong offset\n"
msgstr ""
"поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° таблицю вікон викликів у заголовку програми має помилкове "
"зміщеннÑ\n"
-#: src/elflint.c:4688
+#: src/elflint.c:4731
#, c-format
msgid "call frame search table size mismatch in program and section header\n"
msgstr ""
"розміри таблиці пошуку вікон виклику у заголовку програми та у заголовку "
"розділу не збігаютьÑÑ\n"
-#: src/elflint.c:4701
+#: src/elflint.c:4744
#, 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:4709
+#: src/elflint.c:4752
#, c-format
msgid "call frame search table must be allocated\n"
msgstr "таблицю пошуку вікон викликів має бути розміщено у пам’ÑÑ‚Ñ–\n"
-#: src/elflint.c:4712
+#: src/elflint.c:4755
#, c-format
msgid "section [%2zu] '%s' must be allocated\n"
msgstr "розділ [%2zu] «%s» має бути розміщено у пам’ÑÑ‚Ñ–\n"
-#: src/elflint.c:4716
+#: src/elflint.c:4759
#, c-format
msgid "call frame search table must not be writable\n"
msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до запиÑу\n"
-#: src/elflint.c:4719
+#: src/elflint.c:4762
#, c-format
msgid "section [%2zu] '%s' must not be writable\n"
msgstr "розділ [%2zu] «%s» не повинен бути придатним до запиÑу\n"
-#: src/elflint.c:4724
+#: src/elflint.c:4767
#, c-format
msgid "call frame search table must not be executable\n"
msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ вікон викликів не повинна бути придатною до виконаннÑ\n"
-#: src/elflint.c:4727
+#: src/elflint.c:4770
#, c-format
msgid "section [%2zu] '%s' must not be executable\n"
msgstr "розділ [%2zu] «%s» не повинен бути придатним до виконаннÑ\n"
-#: src/elflint.c:4741
+#: src/elflint.c:4784
#, c-format
msgid "program header entry %d: file size greater than memory size\n"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: розмір файла перевищує об’єм пам’ÑÑ‚Ñ–\n"
-#: src/elflint.c:4748
+#: src/elflint.c:4791
#, c-format
msgid "program header entry %d: alignment not a power of 2\n"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” Ñтепенем 2\n"
-#: src/elflint.c:4751
+#: src/elflint.c:4794
#, c-format
msgid ""
"program header entry %d: file offset and virtual address not module of "
@@ -3746,7 +3740,7 @@ msgstr ""
"Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми %d: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ файлі Ñ– віртуальна адреÑа не "
"ÑпіввідноÑÑÑ‚ÑŒÑÑ Ð· вирівнюваннÑм\n"
-#: src/elflint.c:4764
+#: src/elflint.c:4807
#, c-format
msgid ""
"executable/DSO with .eh_frame_hdr section does not have a PT_GNU_EH_FRAME "
@@ -3755,17 +3749,17 @@ msgstr ""
"виконуваний модуль/DSO з розділом .eh_frame_hdr не міÑтить запиÑу заголовка "
"програми PT_GNU_EH_FRAME"
-#: src/elflint.c:4798
+#: src/elflint.c:4841
#, c-format
msgid "cannot read ELF header: %s\n"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s\n"
-#: src/elflint.c:4810
+#: src/elflint.c:4853
#, fuzzy, c-format
msgid "cannot create backend for ELF file\n"
msgstr "не вдалоÑÑ Ñтворити файл"
-#: src/elflint.c:4831
+#: src/elflint.c:4874
#, c-format
msgid "text relocation flag set but not needed\n"
msgstr ""
@@ -3982,7 +3976,7 @@ msgid "%s: INTERNAL ERROR %d (%s): %s"
msgstr "%s: Ð’ÐУТРІШÐЯ ПОМИЛКР%d (%s): %s"
#: src/nm.c:380 src/nm.c:392 src/size.c:287 src/size.c:296 src/size.c:307
-#: src/strip.c:2766
+#: src/strip.c:2763
#, c-format
msgid "while closing '%s'"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
@@ -4025,13 +4019,13 @@ msgstr "%s%s%s: не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ формат файла
msgid "cannot create search tree"
msgstr "не вдалоÑÑ Ñтворити дерево пошуку"
-#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:663
-#: src/readelf.c:1484 src/readelf.c:1633 src/readelf.c:1860 src/readelf.c:2097
-#: src/readelf.c:2286 src/readelf.c:2466 src/readelf.c:2544 src/readelf.c:2809
-#: src/readelf.c:2884 src/readelf.c:2970 src/readelf.c:3565 src/readelf.c:3613
-#: src/readelf.c:3682 src/readelf.c:11620 src/readelf.c:12803
-#: src/readelf.c:13013 src/readelf.c:13081 src/size.c:396 src/size.c:467
-#: src/strip.c:1093
+#: src/nm.c:742 src/nm.c:1234 src/objdump.c:778 src/readelf.c:685
+#: src/readelf.c:1506 src/readelf.c:1655 src/readelf.c:1882 src/readelf.c:2123
+#: src/readelf.c:2312 src/readelf.c:2482 src/readelf.c:2604 src/readelf.c:2854
+#: src/readelf.c:3140 src/readelf.c:3215 src/readelf.c:3301 src/readelf.c:3896
+#: src/readelf.c:3944 src/readelf.c:4013 src/readelf.c:12029
+#: src/readelf.c:13212 src/readelf.c:13422 src/readelf.c:13490 src/size.c:396
+#: src/size.c:467 src/strip.c:1093
#, c-format
msgid "cannot get section header string table index"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків"
@@ -4140,7 +4134,7 @@ msgstr "Показати інформацію лише з розділу ÐÐЗÐ
msgid "Show information from FILEs (a.out by default)."
msgstr "Показати інформацію з ФÐЙЛів (типово a.out)."
-#: src/objdump.c:217 src/readelf.c:608
+#: src/objdump.c:217 src/readelf.c:630
msgid "No operation specified.\n"
msgstr "Ðе вказано дії.\n"
@@ -4149,11 +4143,11 @@ msgstr "Ðе вказано дії.\n"
msgid "while close `%s'"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»"
-#: src/objdump.c:362 src/readelf.c:2192 src/readelf.c:2383
+#: src/objdump.c:362 src/readelf.c:2218 src/readelf.c:2409
msgid "INVALID SYMBOL"
msgstr "ÐЕКОРЕКТÐИЙ СИМВОЛ"
-#: src/objdump.c:377 src/readelf.c:2226 src/readelf.c:2419
+#: src/objdump.c:377 src/readelf.c:2252 src/readelf.c:2445
msgid "INVALID SECTION"
msgstr "ÐЕКОРЕКТÐИЙ РОЗДІЛ"
@@ -4211,18 +4205,18 @@ msgstr "«%s» не є архівом"
msgid "error while freeing sub-ELF descriptor: %s"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора під-ELF: %s"
-#: src/readelf.c:96
+#: src/readelf.c:97
msgid "ELF input selection:"
msgstr "Вибір вихідних даних ELF:"
-#: src/readelf.c:98
+#: src/readelf.c:99
msgid ""
"Use the named SECTION (default .gnu_debugdata) as (compressed) ELF input data"
msgstr ""
"ВикориÑтовувати вказаний за іменем РОЗДІЛ (типово .gnu_debugdata) Ñк "
"(ÑтиÑнені) вхідні дані ELF"
-#: src/readelf.c:101
+#: src/readelf.c:102
msgid ""
"Used with -w to find the skeleton Compile Units in FILE associated with the "
"Split Compile units in a .dwo input file"
@@ -4230,71 +4224,71 @@ msgstr ""
"ВикориÑтовуєтьÑÑ Ð· -w Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ оÑнови компільованих модулів у ФÐЙЛі, "
"пов'Ñзаному із модулÑми розділеної компілÑції у вхідному файлі .dwo"
-#: src/readelf.c:103
+#: src/readelf.c:104
msgid "ELF output selection:"
msgstr "Вибір виводу ELF:"
-#: src/readelf.c:105
+#: src/readelf.c:106
msgid "All these plus -p .strtab -p .dynstr -p .comment"
msgstr "Ð’Ñе це Ð¿Ð»ÑŽÑ -p .strtab -p .dynstr -p .comment"
-#: src/readelf.c:106
+#: src/readelf.c:107
msgid "Display the dynamic segment"
msgstr "Показувати динамічний Ñегмент"
-#: src/readelf.c:107
+#: src/readelf.c:108
msgid "Display the ELF file header"
msgstr "Показувати заголовок файла ELF"
-#: src/readelf.c:109
+#: src/readelf.c:110
msgid "Display histogram of bucket list lengths"
msgstr "Показати гіÑтограму довжин ÑпиÑку блоків"
-#: src/readelf.c:110
+#: src/readelf.c:111
msgid "Display the program headers"
msgstr "Показувати заголовки програми"
-#: src/readelf.c:112
+#: src/readelf.c:113
msgid "Display relocations"
msgstr "Показувати переÑуваннÑ"
-#: src/readelf.c:113
+#: src/readelf.c:114
msgid "Display the section groups"
msgstr "Показувати групи розділів"
-#: src/readelf.c:114
+#: src/readelf.c:115
msgid "Display the sections' headers"
msgstr "Показувати заголовки розділів"
-#: src/readelf.c:117
+#: src/readelf.c:118
msgid "Display the symbol table sections"
msgstr "Показати розділи таблиці Ñимволів"
-#: src/readelf.c:120
+#: src/readelf.c:121
msgid "Display (only) the dynamic symbol table"
msgstr "Показувати (лише) динамічну таблицю Ñимволів"
-#: src/readelf.c:121
+#: src/readelf.c:122
msgid "Display versioning information"
msgstr "Показувати відомоÑÑ‚Ñ– щодо верÑÑ–Ñ—"
-#: src/readelf.c:122
+#: src/readelf.c:123
msgid "Display the ELF notes"
msgstr "Показувати нотатки ELF"
-#: src/readelf.c:124
+#: src/readelf.c:125
msgid "Display architecture specific information, if any"
msgstr "Показувати Ñпецифічні Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ дані, Ñкщо такі буде виÑвлено"
-#: src/readelf.c:126
+#: src/readelf.c:127
msgid "Display sections for exception handling"
msgstr "Показувати розділи Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ виключень"
-#: src/readelf.c:128
+#: src/readelf.c:129
msgid "Additional output selection:"
msgstr "Додатковий вибір виводу:"
-#: src/readelf.c:130
+#: src/readelf.c:131
msgid ""
"Display DWARF section content. SECTION can be one of abbrev, addr, aranges, "
"decodedaranges, frame, gdb_index, info, info+, loc, line, decodedline, "
@@ -4304,42 +4298,42 @@ msgstr ""
"aranges, decodedaranges, frame, gdb_index, info, info+, loc, line, "
"decodedline, ranges, pubnames, str, macinfo, macro або exception"
-#: src/readelf.c:134
+#: src/readelf.c:135
msgid "Dump the uninterpreted contents of SECTION, by number or name"
msgstr ""
"Створити дамп даних РОЗДІЛ, Ñкі не вдалоÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð¿Ñ€ÐµÑ‚ÑƒÐ²Ð°Ñ‚Ð¸, за номером або "
"назвами"
-#: src/readelf.c:136
+#: src/readelf.c:137
msgid "Print string contents of sections"
msgstr "Виводити вміÑÑ‚ Ñ€Ñдків розділів"
-#: src/readelf.c:139
+#: src/readelf.c:140
msgid "Display the symbol index of an archive"
msgstr "Показувати покажчик Ñимволів архіву"
-#: src/readelf.c:141
+#: src/readelf.c:142
msgid "Use the dynamic segment when possible for displaying info"
msgstr ""
-#: src/readelf.c:143
+#: src/readelf.c:144
msgid "Output control:"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¾Ð¼:"
-#: src/readelf.c:145
+#: src/readelf.c:146
msgid "Do not find symbol names for addresses in DWARF data"
msgstr "Ðе шукати назви Ñимволів Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑ Ñƒ даних DWARF"
-#: src/readelf.c:147
+#: src/readelf.c:148
msgid ""
"Display just offsets instead of resolving values to addresses in DWARF data"
msgstr "Показати лише зміщеннÑ, а не визначені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи у даних DWARF"
-#: src/readelf.c:149
+#: src/readelf.c:150
msgid "Ignored for compatibility (lines always wide)"
msgstr "ІгноруєтьÑÑ Ð· міркувань ÑуміÑноÑÑ‚Ñ– (Ñ€Ñдки завжди широкі)"
-#: src/readelf.c:151
+#: src/readelf.c:152
msgid ""
"Show compression information for compressed sections (when used with -S); "
"decompress section before dumping data (when used with -p or -x)"
@@ -4348,40 +4342,40 @@ msgstr ""
"розпакувати розділ до ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ даних (Ñкщо викориÑтано з -p або -x)"
#. Short description of program.
-#: src/readelf.c:156
+#: src/readelf.c:157
msgid "Print information from ELF file in human-readable form."
msgstr "Виводити відомоÑÑ‚Ñ– з файла ELF у придатному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–."
#. Look up once.
-#: src/readelf.c:373
+#: src/readelf.c:395
msgid "yes"
msgstr "так"
-#: src/readelf.c:374
+#: src/readelf.c:396
msgid "no"
msgstr "ні"
-#: src/readelf.c:576
+#: src/readelf.c:598
#, c-format
msgid "Unknown DWARF debug section `%s'.\n"
msgstr "Ðевідомий діагноÑтичний розділ DWARF «%s».\n"
-#: src/readelf.c:647 src/readelf.c:758
+#: src/readelf.c:669 src/readelf.c:780
#, c-format
msgid "cannot generate Elf descriptor: %s"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор Elf: %s"
-#: src/readelf.c:654 src/readelf.c:980 src/strip.c:1188
+#: src/readelf.c:676 src/readelf.c:1002 src/strip.c:1188
#, c-format
msgid "cannot determine number of sections: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:672 src/readelf.c:1300 src/readelf.c:1508
+#: src/readelf.c:694 src/readelf.c:1322 src/readelf.c:1530
#, c-format
msgid "cannot get section: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/readelf.c:681 src/readelf.c:1307 src/readelf.c:1515 src/readelf.c:13033
+#: src/readelf.c:703 src/readelf.c:1329 src/readelf.c:1537 src/readelf.c:13442
#: 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
@@ -4390,120 +4384,120 @@ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
msgid "cannot get section header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу: %s"
-#: src/readelf.c:689
+#: src/readelf.c:711
#, c-format
msgid "cannot get section name"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ назву розділу"
-#: src/readelf.c:698 src/readelf.c:6833 src/readelf.c:10887 src/readelf.c:10989
-#: src/readelf.c:11173
+#: src/readelf.c:720 src/readelf.c:7176 src/readelf.c:11230 src/readelf.c:11332
+#: src/readelf.c:11516
#, c-format
msgid "cannot get %s content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані %s: %s"
-#: src/readelf.c:714
+#: src/readelf.c:736
#, c-format
msgid "cannot create temp file '%s'"
msgstr "не вдалоÑÑ Ñтворити файл тимчаÑових даних «%s»"
-#: src/readelf.c:723
+#: src/readelf.c:745
#, c-format
msgid "cannot write section data"
msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати дані розділу"
-#: src/readelf.c:729 src/readelf.c:746 src/readelf.c:775
+#: src/readelf.c:751 src/readelf.c:768 src/readelf.c:797
#, c-format
msgid "error while closing Elf descriptor: %s"
msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÑкриптора Elf: %s"
-#: src/readelf.c:736
+#: src/readelf.c:758
#, c-format
msgid "error while rewinding file descriptor"
msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початкового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла"
-#: src/readelf.c:770
+#: src/readelf.c:792
#, c-format
msgid "'%s' is not an archive, cannot print archive index"
msgstr "«%s» не Ñ” архівом, Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ° архіву неможливе"
-#: src/readelf.c:874
+#: src/readelf.c:896
#, c-format
msgid "cannot stat input file"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з вхідного файла за допомогою stat"
-#: src/readelf.c:876
+#: src/readelf.c:898
#, c-format
msgid "input file is empty"
msgstr "вхідний файл є порожнім"
-#: src/readelf.c:878
+#: src/readelf.c:900
#, c-format
msgid "failed reading '%s': %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s"
-#: src/readelf.c:907
+#: src/readelf.c:929
#, c-format
msgid "No such section '%s' in '%s'"
msgstr "У «%2$s» немає розділу «%1$s»"
-#: src/readelf.c:966
+#: src/readelf.c:988
#, c-format
msgid "cannot read ELF header: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок ELF: %s"
-#: src/readelf.c:974
+#: src/readelf.c:996
#, c-format
msgid "cannot create EBL handle"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор EBL"
-#: src/readelf.c:985
+#: src/readelf.c:1007
#, c-format
msgid "cannot determine number of program headers: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ заголовків програми: %s"
-#: src/readelf.c:1017
+#: src/readelf.c:1039
#, c-format
msgid "cannot read ELF: %s"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:1050
+#: src/readelf.c:1072
#, fuzzy
#| msgid "cannot get section: %s"
msgid "cannot find section"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ розділ: %s"
-#: src/readelf.c:1087
+#: src/readelf.c:1109
msgid "NONE (None)"
msgstr "NONE (Ðемає)"
-#: src/readelf.c:1088
+#: src/readelf.c:1110
msgid "REL (Relocatable file)"
msgstr "REL (Придатний до переÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»)"
-#: src/readelf.c:1089
+#: src/readelf.c:1111
msgid "EXEC (Executable file)"
msgstr "EXEC (Виконуваний файл)"
-#: src/readelf.c:1090
+#: src/readelf.c:1112
msgid "DYN (Shared object file)"
msgstr "DYN (Файл об’єктів Ñпільного викориÑтаннÑ)"
-#: src/readelf.c:1091
+#: src/readelf.c:1113
msgid "CORE (Core file)"
msgstr "CORE (Файл Ñдра)"
-#: src/readelf.c:1096
+#: src/readelf.c:1118
#, c-format
msgid "OS Specific: (%x)\n"
msgstr "ОС-Ñпецифічне: (%x)\n"
#. && e_type <= ET_HIPROC always true
-#: src/readelf.c:1098
+#: src/readelf.c:1120
#, c-format
msgid "Processor Specific: (%x)\n"
msgstr "Специфічне Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора: (%x)\n"
-#: src/readelf.c:1108
+#: src/readelf.c:1130
msgid ""
"ELF Header:\n"
" Magic: "
@@ -4511,7 +4505,7 @@ msgstr ""
"Заголовок ELF:\n"
" Magic: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4520,123 +4514,123 @@ msgstr ""
"\n"
" КлаÑ: %s\n"
-#: src/readelf.c:1117
+#: src/readelf.c:1139
#, c-format
msgid " Data: %s\n"
msgstr " Дані: %s\n"
-#: src/readelf.c:1123
+#: src/readelf.c:1145
#, c-format
msgid " Ident Version: %hhd %s\n"
msgstr " ВерÑÑ–Ñ Ident: %hhd %s\n"
-#: src/readelf.c:1125 src/readelf.c:1147
+#: src/readelf.c:1147 src/readelf.c:1169
msgid "(current)"
msgstr "(поточний)"
-#: src/readelf.c:1129
+#: src/readelf.c:1151
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ABI: %s\n"
-#: src/readelf.c:1132
+#: src/readelf.c:1154
#, c-format
msgid " ABI Version: %hhd\n"
msgstr " ВерÑÑ–Ñ ABI: %hhd\n"
-#: src/readelf.c:1135
+#: src/readelf.c:1157
msgid " Type: "
msgstr " Тип: "
-#: src/readelf.c:1140
+#: src/readelf.c:1162
#, c-format
msgid " Machine: %s\n"
msgstr " Ðрхітектура: %s\n"
-#: src/readelf.c:1142
+#: src/readelf.c:1164
#, c-format
msgid " Machine: <unknown>: 0x%x\n"
msgstr " Ðрхітектура: <невідома>: 0x%x\n"
-#: src/readelf.c:1145
+#: src/readelf.c:1167
#, c-format
msgid " Version: %d %s\n"
msgstr " ВерÑÑ–Ñ: %d %s\n"
-#: src/readelf.c:1149
+#: src/readelf.c:1171
#, c-format
msgid " Entry point address: %#<PRIx64>\n"
msgstr " ÐдреÑа вхідної точки: %#<PRIx64>\n"
-#: src/readelf.c:1152
+#: src/readelf.c:1174
#, c-format
msgid " Start of program headers: %<PRId64> %s\n"
msgstr " Початок заголовків програм: %<PRId64> %s\n"
-#: src/readelf.c:1153 src/readelf.c:1156
+#: src/readelf.c:1175 src/readelf.c:1178
msgid "(bytes into file)"
msgstr "(байтів у файл)"
-#: src/readelf.c:1155
+#: src/readelf.c:1177
#, c-format
msgid " Start of section headers: %<PRId64> %s\n"
msgstr " Початок заголовків розділів: %<PRId64> %s\n"
-#: src/readelf.c:1158
+#: src/readelf.c:1180
#, c-format
msgid " Flags: %s\n"
msgstr " Прапорці: %s\n"
-#: src/readelf.c:1161
+#: src/readelf.c:1183
#, c-format
msgid " Size of this header: %<PRId16> %s\n"
msgstr " Розмір цього заголовка: %<PRId16> %s\n"
-#: src/readelf.c:1162 src/readelf.c:1165 src/readelf.c:1182
+#: src/readelf.c:1184 src/readelf.c:1187 src/readelf.c:1204
msgid "(bytes)"
msgstr "(байтів)"
-#: src/readelf.c:1164
+#: src/readelf.c:1186
#, c-format
msgid " Size of program header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовка програми: %<PRId16> %s\n"
-#: src/readelf.c:1167
+#: src/readelf.c:1189
#, c-format
msgid " Number of program headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків програми: %<PRId16>"
-#: src/readelf.c:1174
+#: src/readelf.c:1196
#, c-format
msgid " (%<PRIu32> in [0].sh_info)"
msgstr " (%<PRIu32> у [0].sh_info)"
-#: src/readelf.c:1177 src/readelf.c:1194 src/readelf.c:1208
+#: src/readelf.c:1199 src/readelf.c:1216 src/readelf.c:1230
msgid " ([0] not available)"
msgstr " ([0] недоÑтупний)"
-#: src/readelf.c:1181
+#: src/readelf.c:1203
#, c-format
msgid " Size of section header entries: %<PRId16> %s\n"
msgstr " Розмір запиÑів заголовків розділів: %<PRId16> %s\n"
-#: src/readelf.c:1184
+#: src/readelf.c:1206
#, c-format
msgid " Number of section headers entries: %<PRId16>"
msgstr " КількіÑÑ‚ÑŒ запиÑів заголовків розділів: %<PRId16>"
-#: src/readelf.c:1191
+#: src/readelf.c:1213
#, c-format
msgid " (%<PRIu32> in [0].sh_size)"
msgstr " (%<PRIu32> у [0].sh_size)"
#. We managed to get the zeroth section.
-#: src/readelf.c:1204
+#: src/readelf.c:1226
#, c-format
msgid " (%<PRIu32> in [0].sh_link)"
msgstr " (%<PRIu32> у [0].sh_link)"
-#: src/readelf.c:1212
+#: src/readelf.c:1234
#, c-format
msgid ""
" Section header string table index: XINDEX%s\n"
@@ -4645,7 +4639,7 @@ msgstr ""
" Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: XINDEX%s\n"
"\n"
-#: src/readelf.c:1216
+#: src/readelf.c:1238
#, c-format
msgid ""
" Section header string table index: %<PRId16>\n"
@@ -4654,12 +4648,12 @@ msgstr ""
" Ð†Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %<PRId16>\n"
"\n"
-#: src/readelf.c:1266 src/readelf.c:1474
+#: src/readelf.c:1288 src/readelf.c:1496
#, c-format
msgid "cannot get number of sections: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ кількіÑÑ‚ÑŒ розділів: %s"
-#: src/readelf.c:1269
+#: src/readelf.c:1291
#, c-format
msgid ""
"There are %zd section headers, starting at offset %#<PRIx64>:\n"
@@ -4668,16 +4662,16 @@ msgstr ""
"ВиÑвлено %zd заголовків розділів, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ — %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:1277
+#: src/readelf.c:1299
#, c-format
msgid "cannot get section header string table index: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ–Ð½Ð´ÐµÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° розділу у таблиці Ñ€Ñдків: %s"
-#: src/readelf.c:1280
+#: src/readelf.c:1302
msgid "Section Headers:"
msgstr "Заголовки розділів:"
-#: src/readelf.c:1283
+#: src/readelf.c:1305
msgid ""
"[Nr] Name Type Addr Off Size ES Flags Lk "
"Inf Al"
@@ -4685,7 +4679,7 @@ msgstr ""
"[â„– ] Ðазва Тип Ðдр Змі Розмір ES Прап Lk "
"Інф Al"
-#: src/readelf.c:1285
+#: src/readelf.c:1307
msgid ""
"[Nr] Name Type Addr Off Size ES "
"Flags Lk Inf Al"
@@ -4693,35 +4687,35 @@ msgstr ""
"[â„– ] Ðазва Тип Ðдр Змі Розмір ES "
"Прап Lk Інф Al"
-#: src/readelf.c:1290
+#: src/readelf.c:1312
msgid " [Compression Size Al]"
msgstr " [СтиÑÐºÐ°Ð½Ð½Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðл]"
-#: src/readelf.c:1292
+#: src/readelf.c:1314
msgid " [Compression Size Al]"
msgstr " [СтиÑÐºÐ°Ð½Ð½Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðл]"
-#: src/readelf.c:1370
+#: src/readelf.c:1392
#, c-format
msgid "bad compression header for section %zd: %s"
msgstr "помилковий заголовок ÑтиÑÐ½ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zd: %s"
-#: src/readelf.c:1381
+#: src/readelf.c:1403
#, c-format
msgid "bad gnu compressed size for section %zd: %s"
msgstr "помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑтиÑненого розміру gnu Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %zd: %s"
-#: src/readelf.c:1399
+#: src/readelf.c:1421
msgid "Program Headers:"
msgstr "Заголовки програми:"
-#: src/readelf.c:1401
+#: src/readelf.c:1423
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align"
msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр РозмФайл РозмПам Пра Вирів"
-#: src/readelf.c:1404
+#: src/readelf.c:1426
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align"
@@ -4729,12 +4723,12 @@ msgstr ""
" Тип Зміщен ВіртÐдр ФізÐдр "
"РозмФайлРозмПам Пра Вирів"
-#: src/readelf.c:1461
+#: src/readelf.c:1483
#, c-format
msgid "\t[Requesting program interpreter: %s]\n"
msgstr "\t[Запит щодо інтерпретатора програми: %s]\n"
-#: src/readelf.c:1486
+#: src/readelf.c:1508
msgid ""
"\n"
" Section to Segment mapping:\n"
@@ -4744,12 +4738,12 @@ msgstr ""
" Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² на Ñегмент:\n"
" Розділи Ñегмента..."
-#: src/readelf.c:1497 src/unstrip.c:2114 src/unstrip.c:2156 src/unstrip.c:2163
+#: src/readelf.c:1519 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:1641
+#: src/readelf.c:1663
#, c-format
msgid ""
"\n"
@@ -4767,7 +4761,7 @@ msgstr[2] ""
"\n"
"Група розділів COMDAT [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4785,32 +4779,32 @@ msgstr[2] ""
"\n"
"Група розділів [%2zu] «%s» з підпиÑом «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:1654
+#: src/readelf.c:1676
msgid "<INVALID SYMBOL>"
msgstr "<ÐЕКОРЕКТÐИЙ СИМВОЛ>"
-#: src/readelf.c:1668
+#: src/readelf.c:1690
msgid "<INVALID SECTION>"
msgstr "<ÐЕКОРЕКТÐИЙ РОЗДІЛ>"
-#: src/readelf.c:1691 src/readelf.c:2476 src/readelf.c:3581 src/readelf.c:3881
-#: src/readelf.c:12905 src/readelf.c:12912 src/readelf.c:12956
-#: src/readelf.c:12963
+#: src/readelf.c:1713 src/readelf.c:2614 src/readelf.c:3912 src/readelf.c:4212
+#: src/readelf.c:13314 src/readelf.c:13321 src/readelf.c:13365
+#: src/readelf.c:13372
msgid "Couldn't uncompress section"
msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ розділ"
-#: src/readelf.c:1695 src/readelf.c:2481 src/readelf.c:3585
+#: src/readelf.c:1717 src/readelf.c:2619 src/readelf.c:3916
#, c-format
msgid "cannot get section [%zd] header: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ заголовок розділу [%zd]: %s"
-#: src/readelf.c:1864 src/readelf.c:2550 src/readelf.c:2815 src/readelf.c:2890
-#: src/readelf.c:3193 src/readelf.c:3267 src/readelf.c:5619
+#: src/readelf.c:1886 src/readelf.c:2860 src/readelf.c:3146 src/readelf.c:3221
+#: src/readelf.c:3524 src/readelf.c:3598 src/readelf.c:5962
#, c-format
msgid "invalid sh_link value in section %zu"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sh_link у розділі %zu"
-#: src/readelf.c:1867
+#: src/readelf.c:1889
#, c-format
msgid ""
"\n"
@@ -4833,7 +4827,7 @@ msgstr[2] ""
"Динамічний Ñегмент міÑтить %lu запиÑів:\n"
" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, fuzzy, c-format
#| msgid ""
#| "\n"
@@ -4864,42 +4858,42 @@ msgstr[2] ""
"Динамічний Ñегмент міÑтить %lu запиÑів:\n"
" Ðдр: %#0*<PRIx64> ЗміщеннÑ: %#08<PRIx64> ПоÑ. на розділ: [%2u] '%s'\n"
-#: src/readelf.c:1890
+#: src/readelf.c:1912
msgid " Type Value\n"
msgstr " Тип ЗначеннÑ\n"
-#: src/readelf.c:1899
+#: src/readelf.c:1921
#, fuzzy
#| msgid "cannot get string section data: %s"
msgid "cannot get string table by using dynamic segment"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу Ñ€Ñдків: %s"
-#: src/readelf.c:1938
+#: src/readelf.c:1960
#, c-format
msgid "Shared library: [%s]\n"
msgstr "Спільна бібліотека: [%s]\n"
-#: src/readelf.c:1942
+#: src/readelf.c:1964
#, c-format
msgid "Library soname: [%s]\n"
msgstr "Ðазва so бібліотеки: [%s]\n"
-#: src/readelf.c:1946
+#: src/readelf.c:1968
#, c-format
msgid "Library rpath: [%s]\n"
msgstr "Rpath бібліотеки: [%s]\n"
-#: src/readelf.c:1950
+#: src/readelf.c:1972
#, c-format
msgid "Library runpath: [%s]\n"
msgstr "Runpath бібліотеки: [%s]\n"
-#: src/readelf.c:1969
+#: src/readelf.c:1993
#, c-format
msgid "%<PRId64> (bytes)\n"
msgstr "%<PRId64> (байт)\n"
-#: src/readelf.c:2083 src/readelf.c:2272
+#: src/readelf.c:2109 src/readelf.c:2298
#, c-format
msgid ""
"\n"
@@ -4908,7 +4902,7 @@ msgstr ""
"\n"
"Ðекоректна Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#0<PRIx64>\n"
-#: src/readelf.c:2100 src/readelf.c:2289
+#: src/readelf.c:2126 src/readelf.c:2315
#, c-format
msgid ""
"\n"
@@ -4937,7 +4931,8 @@ 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:2115 src/readelf.c:2304
+#. A .relr.dyn section does not refer to a specific section.
+#: src/readelf.c:2141 src/readelf.c:2330 src/readelf.c:2485
#, c-format
msgid ""
"\n"
@@ -4955,30 +4950,40 @@ msgstr[2] ""
"\n"
"Розділ переÑÑƒÐ²Ð°Ð½Ð½Ñ [%2u] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d запиÑів:\n"
-#: src/readelf.c:2125
+#: src/readelf.c:2151
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2127
+#: src/readelf.c:2153
msgid " Offset Type Value Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва\n"
-#: src/readelf.c:2180 src/readelf.c:2191 src/readelf.c:2204 src/readelf.c:2225
-#: src/readelf.c:2237 src/readelf.c:2370 src/readelf.c:2382 src/readelf.c:2396
-#: src/readelf.c:2418 src/readelf.c:2431
+#: src/readelf.c:2206 src/readelf.c:2217 src/readelf.c:2230 src/readelf.c:2251
+#: src/readelf.c:2263 src/readelf.c:2396 src/readelf.c:2408 src/readelf.c:2422
+#: src/readelf.c:2444 src/readelf.c:2457
msgid "<INVALID RELOC>"
msgstr "<ÐЕКОРЕКТÐЕ ПЕРЕМІЩЕÐÐЯ>"
-#: src/readelf.c:2314
+#: src/readelf.c:2340
msgid " Offset Type Value Addend Name\n"
msgstr " Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2316
+#: src/readelf.c:2342
msgid " Offset Type Value Addend Name\n"
msgstr ""
" Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¢Ð¸Ð¿ Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ðазва додатка\n"
-#: src/readelf.c:2558
+#: src/readelf.c:2654
+#, 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:2750
+#, c-format
+msgid "bad dynamic symbol"
+msgstr "помилковий динамічний Ñимвол"
+
+#: src/readelf.c:2868
#, c-format
msgid ""
"\n"
@@ -4996,7 +5001,7 @@ msgstr[2] ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів [%2u] «%s» міÑтить %u запиÑів:\n"
-#: src/readelf.c:2563
+#: src/readelf.c:2873
#, c-format
msgid " %lu local symbol String table: [%2u] '%s'\n"
msgid_plural " %lu local symbols String table: [%2u] '%s'\n"
@@ -5004,33 +5009,27 @@ msgstr[0] " %lu лок. Ñимвол Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «
msgstr[1] " %lu лок. Ñимволи Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n"
msgstr[2] " %lu лок. Ñимволів Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів: [%2u] «%s»\n"
-#: src/readelf.c:2571
+#: src/readelf.c:2881
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2573
+#: src/readelf.c:2883
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " â„–â„– Знач. Роз. Тип Зв’Ñз Вид. Інд Ðазва\n"
-#: src/readelf.c:2593
-#, 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:2686
-#, c-format
-msgid "bad dynamic symbol"
-msgstr "помилковий динамічний Ñимвол"
+#: src/readelf.c:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2771
+#: src/readelf.c:3102
msgid "none"
msgstr "немає"
-#: src/readelf.c:2788
+#: src/readelf.c:3119
msgid "| <unknown>"
msgstr "| <невідомо>"
-#: src/readelf.c:2818
+#: src/readelf.c:3149
#, c-format
msgid ""
"\n"
@@ -5053,17 +5052,17 @@ msgstr[2] ""
"Розділ потреби у верÑÑ–ÑÑ… [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:2839
+#: src/readelf.c:3170
#, c-format
msgid " %#06x: Version: %hu File: %s Cnt: %hu\n"
msgstr " %#06x: ВерÑÑ–Ñ: %hu Файл: %s Кть: %hu\n"
-#: src/readelf.c:2852
+#: src/readelf.c:3183
#, c-format
msgid " %#06x: Name: %s Flags: %s Version: %hu\n"
msgstr " %#06x: Ðазва: %s Прап: %s ВерÑÑ–Ñ: %hu\n"
-#: src/readelf.c:2894
+#: src/readelf.c:3225
#, c-format
msgid ""
"\n"
@@ -5086,18 +5085,18 @@ msgstr[2] ""
"Розділ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÑ€ÑÑ–Ñ— [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:2922
+#: src/readelf.c:3253
#, 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:2937
+#: src/readelf.c:3268
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr " %#06x: батьківÑький %d: %s\n"
#. Print the header.
-#: src/readelf.c:3197
+#: src/readelf.c:3528
#, c-format
msgid ""
"\n"
@@ -5120,15 +5119,15 @@ msgstr[2] ""
"Розділ Ñимволів верÑій [%2u] «%s», що міÑтить %d запиÑів:\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»"
-#: src/readelf.c:3225
+#: src/readelf.c:3556
msgid " 0 *local* "
msgstr " 0 *локальний* "
-#: src/readelf.c:3230
+#: src/readelf.c:3561
msgid " 1 *global* "
msgstr " 1 *загальний* "
-#: src/readelf.c:3272
+#: src/readelf.c:3603
#, c-format
msgid ""
"\n"
@@ -5156,22 +5155,22 @@ msgstr[2] ""
"блоками):\n"
" Ðдр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° розділ: [%2u] «%s»\n"
-#: src/readelf.c:3294
+#: src/readelf.c:3625
#, no-c-format
msgid " Length Number % of total Coverage\n"
msgstr " Довжина Ðомер % від загал. ПокриттÑ\n"
-#: src/readelf.c:3296
+#: src/readelf.c:3627
#, c-format
msgid " 0 %6<PRIu32> %5.1f%%\n"
msgstr " 0 %6<PRIu32> %5.1f%%\n"
-#: src/readelf.c:3303
+#: src/readelf.c:3634
#, c-format
msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n"
-#: src/readelf.c:3316
+#: src/readelf.c:3647
#, c-format
msgid ""
" Average number of tests: successful lookup: %f\n"
@@ -5180,37 +5179,37 @@ msgstr ""
" Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ теÑтів: уÑпішний пошук: %f\n"
"\t\t\t неуÑпішний пошук: %f\n"
-#: src/readelf.c:3334 src/readelf.c:3398 src/readelf.c:3464
+#: src/readelf.c:3665 src/readelf.c:3729 src/readelf.c:3795
#, c-format
msgid "cannot get data for section %d: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d: %s"
-#: src/readelf.c:3342
+#: src/readelf.c:3673
#, c-format
msgid "invalid data in sysv.hash section %d"
msgstr "некоректні дані у розділі sysv.hash %d"
-#: src/readelf.c:3371
+#: src/readelf.c:3702
#, c-format
msgid "invalid chain in sysv.hash section %d"
msgstr "некоректний ланцюжок у розділі sysv.hash %d"
-#: src/readelf.c:3406
+#: src/readelf.c:3737
#, c-format
msgid "invalid data in sysv.hash64 section %d"
msgstr "некоректні дані у розділі sysv.hash64 %d"
-#: src/readelf.c:3437
+#: src/readelf.c:3768
#, c-format
msgid "invalid chain in sysv.hash64 section %d"
msgstr "некоректний ланцюжок у розділі sysv.hash64 %d"
-#: src/readelf.c:3473
+#: src/readelf.c:3804
#, c-format
msgid "invalid data in gnu.hash section %d"
msgstr "некоректні дані у розділі gnu.hash %d"
-#: src/readelf.c:3539
+#: src/readelf.c:3870
#, c-format
msgid ""
" Symbol Bias: %u\n"
@@ -5220,7 +5219,7 @@ msgstr ""
" Розмір бітової маÑки: %zu байтів %<PRIuFAST32>%% вÑтановлених бітів зÑув "
"2-го хешу: %u\n"
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -5241,7 +5240,7 @@ msgstr[2] ""
"Розділ ÑпиÑку бібліотек [%2zu] «%s» за зміщеннÑм %#0<PRIx64> міÑтить %d "
"запиÑів:\n"
-#: src/readelf.c:3638
+#: src/readelf.c:3969
msgid ""
" Library Time Stamp Checksum Version "
"Flags"
@@ -5249,7 +5248,7 @@ msgstr ""
" Бібліотека ЧаÑовий штамп ВерÑÑ–Ñ Ñуми "
"Прапорці"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -5260,107 +5259,107 @@ msgstr ""
"Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:3715
+#: src/readelf.c:4046
msgid " Owner Size\n"
msgstr " ВлаÑник Розмір\n"
-#: src/readelf.c:3739
+#: src/readelf.c:4070
#, c-format
msgid " %-13s %4<PRIu32>\n"
msgstr " %-13s %4<PRIu32>\n"
#. Unknown subsection, print and skip.
-#: src/readelf.c:3778
+#: src/readelf.c:4109
#, c-format
msgid " %-4u %12<PRIu32>\n"
msgstr " %-4u %12<PRIu32>\n"
#. Tag_File
-#: src/readelf.c:3783
+#: src/readelf.c:4114
#, c-format
msgid " File: %11<PRIu32>\n"
msgstr " Файл: %11<PRIu32>\n"
-#: src/readelf.c:3833
+#: src/readelf.c:4164
#, c-format
msgid " %s: %<PRId64>, %s\n"
msgstr " %s: %<PRId64>, %s\n"
-#: src/readelf.c:3836
+#: src/readelf.c:4167
#, c-format
msgid " %s: %<PRId64>\n"
msgstr " %s: %<PRId64>\n"
-#: src/readelf.c:3839
+#: src/readelf.c:4170
#, c-format
msgid " %s: %s\n"
msgstr " %s: %s\n"
-#: src/readelf.c:3849
+#: src/readelf.c:4180
#, c-format
msgid " %u: %<PRId64>\n"
msgstr " %u: %<PRId64>\n"
-#: src/readelf.c:3852
+#: src/readelf.c:4183
#, c-format
msgid " %u: %s\n"
msgstr " %u: %s\n"
-#: src/readelf.c:3890
+#: src/readelf.c:4221
#, fuzzy
#| msgid "couldn't get shdr for group section: %s"
msgid "Couldn't get data from section"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ shdr Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ груп: %s"
-#: src/readelf.c:3955
+#: src/readelf.c:4286
msgid "sprintf failure"
msgstr "помилка sprintf"
-#: src/readelf.c:4439
+#: src/readelf.c:4770
msgid "empty block"
msgstr "порожній блок"
-#: src/readelf.c:4442
+#: src/readelf.c:4773
#, c-format
msgid "%zu byte block:"
msgstr "%zu-байтовий блок:"
-#: src/readelf.c:4920
+#: src/readelf.c:5251
#, c-format
msgid "%*s[%2<PRIuMAX>] %s <TRUNCATED>\n"
msgstr "%*s[%2<PRIuMAX>] %s <ОБРІЗÐÐО>\n"
-#: src/readelf.c:5080
+#: src/readelf.c:5423
#, c-format
msgid "%s %#<PRIx64> used with different address sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами адреÑ"
-#: src/readelf.c:5087
+#: src/readelf.c:5430
#, c-format
msgid "%s %#<PRIx64> used with different offset sizes"
msgstr "%s %#<PRIx64> викориÑтано з різними розмірами зміщень"
-#: src/readelf.c:5094
+#: src/readelf.c:5437
#, c-format
msgid "%s %#<PRIx64> used with different base addresses"
msgstr "%s %#<PRIx64> викориÑтано з різними базовими адреÑами"
-#: src/readelf.c:5101
+#: src/readelf.c:5444
#, c-format
msgid "%s %#<PRIx64> used with different attribute %s and %s"
msgstr "%s %#<PRIx64> викориÑтано з різними атрибутами, %s Ñ– %s"
-#: src/readelf.c:5201
+#: src/readelf.c:5544
#, c-format
msgid " [%6tx] <UNUSED GARBAGE IN REST OF SECTION>\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ У РЕШТІ РОЗДІЛУ>\n"
-#: src/readelf.c:5209
+#: src/readelf.c:5552
#, c-format
msgid " [%6tx] <UNUSED GARBAGE> ... %<PRIu64> bytes ...\n"
msgstr " [%6tx] <ÐЕВИКОРИСТОВУВÐÐІ ДÐÐІ> ... %<PRIu64> байтів ...\n"
-#: src/readelf.c:5315
+#: src/readelf.c:5658
#, c-format
msgid ""
"\n"
@@ -5371,7 +5370,7 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:5323
+#: src/readelf.c:5666
#, c-format
msgid ""
"\n"
@@ -5380,20 +5379,20 @@ msgstr ""
"\n"
"Розділ Ñкорочень за зміщеннÑм %<PRIu64>:\n"
-#: src/readelf.c:5336
+#: src/readelf.c:5679
#, c-format
msgid " *** error while reading abbreviation: %s\n"
msgstr " *** помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÑкороченнÑ: %s\n"
-#: src/readelf.c:5352
+#: src/readelf.c:5695
#, c-format
msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n"
msgstr " [%5u] зміщеннÑ: %<PRId64>, дочірній: %s, мітка: %s\n"
-#: src/readelf.c:5389 src/readelf.c:5682 src/readelf.c:5853 src/readelf.c:6224
-#: src/readelf.c:6850 src/readelf.c:8619 src/readelf.c:9361 src/readelf.c:9829
-#: src/readelf.c:10084 src/readelf.c:10246 src/readelf.c:10627
-#: src/readelf.c:10698
+#: src/readelf.c:5732 src/readelf.c:6025 src/readelf.c:6196 src/readelf.c:6567
+#: src/readelf.c:7193 src/readelf.c:8962 src/readelf.c:9704 src/readelf.c:10172
+#: src/readelf.c:10427 src/readelf.c:10589 src/readelf.c:10970
+#: src/readelf.c:11041
#, c-format
msgid ""
"\n"
@@ -5402,49 +5401,49 @@ msgstr ""
"\n"
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:5492 src/readelf.c:5516 src/readelf.c:5889 src/readelf.c:9397
+#: src/readelf.c:5835 src/readelf.c:5859 src/readelf.c:6232 src/readelf.c:9740
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Довжина: %8<PRIu64>\n"
-#: src/readelf.c:5494 src/readelf.c:5531 src/readelf.c:5902 src/readelf.c:9410
+#: src/readelf.c:5837 src/readelf.c:5874 src/readelf.c:6245 src/readelf.c:9753
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %8<PRIu16>\n"
-#: src/readelf.c:5495 src/readelf.c:5540 src/readelf.c:5911 src/readelf.c:9419
+#: src/readelf.c:5838 src/readelf.c:5883 src/readelf.c:6254 src/readelf.c:9762
#, c-format
msgid " Address size: %8<PRIu64>\n"
msgstr " Розмір адреÑи: %8<PRIu64>\n"
-#: src/readelf.c:5497 src/readelf.c:5550 src/readelf.c:5921 src/readelf.c:9429
+#: src/readelf.c:5840 src/readelf.c:5893 src/readelf.c:6264 src/readelf.c:9772
#, c-format
msgid " Segment size: %8<PRIu64>\n"
msgstr ""
" Розмір Ñегмента: %8<PRIu64>\n"
"\n"
-#: src/readelf.c:5535 src/readelf.c:5906 src/readelf.c:9414 src/readelf.c:10820
+#: src/readelf.c:5878 src/readelf.c:6249 src/readelf.c:9757 src/readelf.c:11163
#, c-format
msgid "Unknown version"
msgstr "Ðевідома верÑÑ–Ñ"
-#: src/readelf.c:5545 src/readelf.c:5752 src/readelf.c:5916 src/readelf.c:9424
+#: src/readelf.c:5888 src/readelf.c:6095 src/readelf.c:6259 src/readelf.c:9767
#, c-format
msgid "unsupported address size"
msgstr "непідтримуваний розмір адреÑи"
-#: src/readelf.c:5556 src/readelf.c:5763 src/readelf.c:5926 src/readelf.c:9434
+#: src/readelf.c:5899 src/readelf.c:6106 src/readelf.c:6269 src/readelf.c:9777
#, c-format
msgid "unsupported segment size"
msgstr "непідтримуваний розмір Ñегмента"
-#: src/readelf.c:5609
+#: src/readelf.c:5952
#, c-format
msgid "cannot get .debug_aranges content: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані get .debug_aranges: %s"
-#: src/readelf.c:5624
+#: src/readelf.c:5967
#, c-format
msgid ""
"\n"
@@ -5462,12 +5461,12 @@ msgstr[2] ""
"\n"
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:5655
+#: src/readelf.c:5998
#, c-format
msgid " [%*zu] ???\n"
msgstr " [%*zu] ???\n"
-#: src/readelf.c:5657
+#: src/readelf.c:6000
#, c-format
msgid ""
" [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n"
@@ -5475,7 +5474,7 @@ msgstr ""
" [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU DIE: "
"%6<PRId64>\n"
-#: src/readelf.c:5695 src/readelf.c:8638
+#: src/readelf.c:6038 src/readelf.c:8981
#, c-format
msgid ""
"\n"
@@ -5484,13 +5483,13 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм %zu:\n"
-#: src/readelf.c:5699 src/readelf.c:5870 src/readelf.c:6874 src/readelf.c:8649
-#: src/readelf.c:9378
+#: src/readelf.c:6042 src/readelf.c:6213 src/readelf.c:7217 src/readelf.c:8992
+#: src/readelf.c:9721
#, c-format
msgid "invalid data in section [%zu] '%s'"
msgstr "некоректні дані у розділі [%zu] «%s»"
-#: src/readelf.c:5715
+#: src/readelf.c:6058
#, c-format
msgid ""
"\n"
@@ -5499,27 +5498,27 @@ msgstr ""
"\n"
" Довжина: %6<PRIu64>\n"
-#: src/readelf.c:5727
+#: src/readelf.c:6070
#, c-format
msgid " DWARF version: %6<PRIuFAST16>\n"
msgstr " верÑÑ–Ñ DWARF: %6<PRIuFAST16>\n"
-#: src/readelf.c:5731
+#: src/readelf.c:6074
#, c-format
msgid "unsupported aranges version"
msgstr "непідтримувана верÑÑ–Ñ aranges"
-#: src/readelf.c:5742
+#: src/readelf.c:6085
#, c-format
msgid " CU offset: %6<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %6<PRIx64>\n"
-#: src/readelf.c:5748
+#: src/readelf.c:6091
#, c-format
msgid " Address size: %6<PRIu64>\n"
msgstr " Розмір адреÑи: %6<PRIu64>\n"
-#: src/readelf.c:5759
+#: src/readelf.c:6102
#, c-format
msgid ""
" Segment size: %6<PRIu64>\n"
@@ -5528,12 +5527,12 @@ msgstr ""
" Розмір Ñегмента: %6<PRIu64>\n"
"\n"
-#: src/readelf.c:5814
+#: src/readelf.c:6157
#, c-format
msgid " %zu padding bytes\n"
msgstr " %zu байтів доповненнÑ\n"
-#: src/readelf.c:5876 src/readelf.c:9384
+#: src/readelf.c:6219 src/readelf.c:9727
#, c-format
msgid ""
"Table at Offset 0x%<PRIx64>:\n"
@@ -5542,42 +5541,42 @@ msgstr ""
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð° зміщеннÑм 0x%<PRIx64>:\n"
"\n"
-#: src/readelf.c:5931 src/readelf.c:9439
+#: src/readelf.c:6274 src/readelf.c:9782
#, c-format
msgid " Offset entries: %8<PRIu64>\n"
msgstr " ЗапиÑи зміщеннÑ: %8<PRIu64>\n"
-#: src/readelf.c:5947 src/readelf.c:9455
+#: src/readelf.c:6290 src/readelf.c:9798
#, c-format
msgid " Unknown CU base: "
msgstr " Ðевідома оÑнова CU: "
-#: src/readelf.c:5949 src/readelf.c:9457
+#: src/readelf.c:6292 src/readelf.c:9800
#, c-format
msgid " CU [%6<PRIx64>] base: "
msgstr " ОÑнова CU [%6<PRIx64>]: "
-#: src/readelf.c:5955 src/readelf.c:9463
+#: src/readelf.c:6298 src/readelf.c:9806
#, c-format
msgid " Not associated with a CU.\n"
msgstr " Ðе пов'Ñзано із CU.\n"
-#: src/readelf.c:5966 src/readelf.c:9474
+#: src/readelf.c:6309 src/readelf.c:9817
#, c-format
msgid "too many offset entries for unit length"
msgstr "забагато запиÑів зÑуву Ð´Ð»Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ модулÑ"
-#: src/readelf.c:5970 src/readelf.c:9478
+#: src/readelf.c:6313 src/readelf.c:9821
#, c-format
msgid " Offsets starting at 0x%<PRIx64>:\n"
msgstr " ЗміщеннÑ, що починаютьÑÑ Ð· 0x%<PRIx64>:\n"
-#: src/readelf.c:6022
+#: src/readelf.c:6365
#, c-format
msgid "invalid range list data"
msgstr "некоректні дані ÑпиÑку діапазонів"
-#: src/readelf.c:6207 src/readelf.c:9813
+#: src/readelf.c:6550 src/readelf.c:10156
#, c-format
msgid ""
" %zu padding bytes\n"
@@ -5586,7 +5585,7 @@ msgstr ""
" %zu байтів доповненнÑ\n"
"\n"
-#: src/readelf.c:6255 src/readelf.c:9862
+#: src/readelf.c:6598 src/readelf.c:10205
#, c-format
msgid ""
"\n"
@@ -5595,7 +5594,7 @@ msgstr ""
"\n"
" Ðевідома оÑнова CU: "
-#: src/readelf.c:6257 src/readelf.c:9864
+#: src/readelf.c:6600 src/readelf.c:10207
#, c-format
msgid ""
"\n"
@@ -5604,31 +5603,31 @@ msgstr ""
"\n"
" ОÑнова CU [%6<PRIx64>]: "
-#: src/readelf.c:6266 src/readelf.c:9890 src/readelf.c:9916
+#: src/readelf.c:6609 src/readelf.c:10233 src/readelf.c:10259
#, c-format
msgid " [%6tx] <INVALID DATA>\n"
msgstr " [%6tx] <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6291 src/readelf.c:10000
+#: src/readelf.c:6634 src/readelf.c:10343
#, fuzzy
msgid "base address"
msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
-#: src/readelf.c:6301 src/readelf.c:10010
+#: src/readelf.c:6644 src/readelf.c:10353
#, c-format
msgid " [%6tx] empty list\n"
msgstr " [%6tx] порожній ÑпиÑок\n"
-#: src/readelf.c:6565
+#: src/readelf.c:6908
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:6822
+#: src/readelf.c:7165
#, c-format
msgid "cannot get ELF: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ELF: %s"
-#: src/readelf.c:6846
+#: src/readelf.c:7189
#, c-format
msgid ""
"\n"
@@ -5637,7 +5636,7 @@ msgstr ""
"\n"
"Розділ відомоÑтей щодо вікна викликів [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
@@ -5646,65 +5645,65 @@ msgstr ""
"\n"
" [%6tx] нульовий переривач\n"
-#: src/readelf.c:7000 src/readelf.c:7154
+#: src/readelf.c:7343 src/readelf.c:7497
#, c-format
msgid "invalid augmentation length"
msgstr "некоректна довжина збільшеннÑ"
-#: src/readelf.c:7015
+#: src/readelf.c:7358
msgid "FDE address encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð´Ñ€ÐµÑи FDE: "
-#: src/readelf.c:7021
+#: src/readelf.c:7364
msgid "LSDA pointer encoding: "
msgstr "ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° LSDA: "
-#: src/readelf.c:7131
+#: src/readelf.c:7474
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (зміщеннÑ: %#<PRIx64>)"
-#: src/readelf.c:7138
+#: src/readelf.c:7481
#, c-format
msgid " (end offset: %#<PRIx64>)"
msgstr " (Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ кінцÑ: %#<PRIx64>)"
-#: src/readelf.c:7175
+#: src/readelf.c:7518
#, c-format
msgid " %-26sLSDA pointer: %#<PRIx64>\n"
msgstr " %-26sвказівник LSDA: %#<PRIx64>\n"
-#: src/readelf.c:7260
+#: src/readelf.c:7603
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute code: %s"
msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ код атрибута: %s"
-#: src/readelf.c:7270
+#: src/readelf.c:7613
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute form: %s"
msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ форму атрибута: %s"
-#: src/readelf.c:7292
+#: src/readelf.c:7635
#, c-format
msgid "DIE [%<PRIx64>] cannot get attribute '%s' (%s) value: %s"
msgstr "DIE [%<PRIx64>] не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° «%s» (%s): %s"
-#: src/readelf.c:7622
+#: src/readelf.c:7965
#, c-format
msgid "invalid file (%<PRId64>): %s"
msgstr "некоректний файл (%<PRId64>): %s"
-#: src/readelf.c:7626
+#: src/readelf.c:7969
#, c-format
msgid "no srcfiles for CU [%<PRIx64>]"
msgstr "немає srcfiles Ð´Ð»Ñ CU [%<PRIx64>]"
-#: src/readelf.c:7630
+#: src/readelf.c:7973
#, c-format
msgid "couldn't get DWARF CU: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ CU DWARF: %s"
-#: src/readelf.c:7952
+#: src/readelf.c:8295
#, c-format
msgid ""
"\n"
@@ -5715,12 +5714,12 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» за зміщеннÑм %#<PRIx64>:\n"
" [ЗміщеннÑ]\n"
-#: src/readelf.c:8002
+#: src/readelf.c:8345
#, c-format
msgid "cannot get next unit: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ наÑтупний модуль: %s"
-#: src/readelf.c:8022
+#: src/readelf.c:8365
#, c-format
msgid ""
" Type unit at offset %<PRIu64>:\n"
@@ -5733,7 +5732,7 @@ msgstr ""
"%<PRIu8>, Розмір зміщеннÑ: %<PRIu8>\n"
" ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ: %#<PRIx64> [%<PRIx64>]\n"
-#: src/readelf.c:8034
+#: src/readelf.c:8377
#, c-format
msgid ""
" Compilation unit at offset %<PRIu64>:\n"
@@ -5744,38 +5743,38 @@ msgstr ""
" ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, "
"ЗміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:8044 src/readelf.c:8205
+#: src/readelf.c:8387 src/readelf.c:8548
#, c-format
msgid " Unit type: %s (%<PRIu8>)"
msgstr " Тип модулÑ: %s (%<PRIu8>)"
-#: src/readelf.c:8071
+#: src/readelf.c:8414
#, c-format
msgid "unknown version (%d) or unit type (%d)"
msgstr "невідома верÑÑ–Ñ (%d) або тип Ð¼Ð¾Ð´ÑƒÐ»Ñ (%d)"
-#: src/readelf.c:8100
+#: src/readelf.c:8443
#, c-format
msgid "cannot get DIE offset: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ DIE: %s"
-#: src/readelf.c:8109
+#: src/readelf.c:8452
#, c-format
msgid "cannot get tag of DIE at offset [%<PRIx64>] in section '%s': %s"
msgstr ""
"не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ мітку DIE за зміщеннÑм [%<PRIu64>] у розділі «%s»: %s"
-#: src/readelf.c:8145
+#: src/readelf.c:8488
#, c-format
msgid "cannot get next DIE: %s\n"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s\n"
-#: src/readelf.c:8153
+#: src/readelf.c:8496
#, c-format
msgid "cannot get next DIE: %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ наÑтупний DIE: %s"
-#: src/readelf.c:8197
+#: src/readelf.c:8540
#, c-format
msgid ""
" Split compilation unit at offset %<PRIu64>:\n"
@@ -5786,7 +5785,7 @@ msgstr ""
" ВерÑÑ–Ñ: %<PRIu16>, Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñкорочень: %<PRIu64>, ÐдреÑа: %<PRIu8>, "
"ЗміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:8249
+#: src/readelf.c:8592
#, c-format
msgid ""
"\n"
@@ -5797,13 +5796,13 @@ msgstr ""
"Розділ DWARF [%2zu] «%s» зі зміщеннÑм %#<PRIx64>:\n"
"\n"
-#: src/readelf.c:8581
+#: src/readelf.c:8924
#, c-format
msgid "unknown form: %s"
msgstr "невідома форма: %s"
#. Print what we got so far.
-#: src/readelf.c:8729
+#: src/readelf.c:9072
#, c-format
msgid ""
"\n"
@@ -5836,27 +5835,27 @@ msgstr ""
"\n"
"Коди операцій:\n"
-#: src/readelf.c:8751
+#: src/readelf.c:9094
#, c-format
msgid "cannot handle .debug_line version: %u\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ верÑÑ–ÑŽ .debug_line: %u\n"
-#: src/readelf.c:8759
+#: src/readelf.c:9102
#, c-format
msgid "cannot handle address size: %u\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розмір адреÑи: %u\n"
-#: src/readelf.c:8767
+#: src/readelf.c:9110
#, c-format
msgid "cannot handle segment selector size: %u\n"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розмір Ñелектора Ñегментів: %u\n"
-#: src/readelf.c:8777
+#: src/readelf.c:9120
#, c-format
msgid "invalid data at offset %tu in section [%zu] '%s'"
msgstr "некоректні дані зі зміщеннÑм %tu у розділі [%zu] «%s»"
-#: src/readelf.c:8792
+#: src/readelf.c:9135
#, c-format
msgid " [%*<PRIuFAST8>] %hhu argument\n"
msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n"
@@ -5864,7 +5863,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n"
msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n"
msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n"
-#: src/readelf.c:8803
+#: src/readelf.c:9146
msgid ""
"\n"
"Directory table:"
@@ -5872,12 +5871,12 @@ msgstr ""
"\n"
"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ:"
-#: src/readelf.c:8809 src/readelf.c:8886
+#: src/readelf.c:9152 src/readelf.c:9229
#, c-format
msgid " ["
msgstr " ["
-#: src/readelf.c:8880
+#: src/readelf.c:9223
msgid ""
"\n"
"File name table:"
@@ -5885,11 +5884,11 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ð°Ð·Ð² файлів:"
-#: src/readelf.c:8941
+#: src/readelf.c:9284
msgid " Entry Dir Time Size Name"
msgstr " Ð—Ð°Ð¿Ð¸Ñ ÐšÐ°Ñ‚ Ð§Ð°Ñ Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ðазва"
-#: src/readelf.c:8987
+#: src/readelf.c:9330
#, fuzzy
msgid ""
"\n"
@@ -5898,7 +5897,7 @@ msgstr ""
"\n"
"Оператори номерів Ñ€Ñдків:"
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5906,129 +5905,129 @@ msgstr ""
"\n"
"Оператори номерів Ñ€Ñдків:"
-#: src/readelf.c:9006
+#: src/readelf.c:9349
#, c-format
msgid "invalid maximum operations per instruction is zero"
msgstr "некоректну кількіÑÑ‚ÑŒ операцій на інÑтрукцію прирівнÑно до нулÑ"
-#: src/readelf.c:9040
+#: src/readelf.c:9383
#, c-format
msgid " special opcode %u: address+%u = "
msgstr " Ñпеціальний код операції %u: адреÑа+%u = "
-#: src/readelf.c:9044
+#: src/readelf.c:9387
#, c-format
msgid ", op_index = %u, line%+d = %zu\n"
msgstr ", індекÑ_оп = %u, Ñ€Ñдок%+d = %zu\n"
-#: src/readelf.c:9047
+#: src/readelf.c:9390
#, c-format
msgid ", line%+d = %zu\n"
msgstr ", Ñ€Ñдок%+d = %zu\n"
-#: src/readelf.c:9065
+#: src/readelf.c:9408
#, c-format
msgid " extended opcode %u: "
msgstr " розширений код операції %u: "
-#: src/readelf.c:9070
+#: src/readelf.c:9413
msgid " end of sequence"
msgstr " кінець поÑлідовноÑÑ‚Ñ–"
-#: src/readelf.c:9088
+#: src/readelf.c:9431
#, c-format
msgid " set address to "
msgstr " вÑтановити адреÑу у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
-#: src/readelf.c:9116
+#: src/readelf.c:9459
#, c-format
msgid " define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n"
msgstr ""
" Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, "
"назва=%s\n"
-#: src/readelf.c:9130
+#: src/readelf.c:9473
#, c-format
msgid " set discriminator to %u\n"
msgstr " вÑтановити Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ %u\n"
-#: src/readelf.c:9157
+#: src/readelf.c:9500
#, c-format
msgid " set inlined context %u, function name %s (0x%x)\n"
msgstr ""
-#: src/readelf.c:9181
+#: src/readelf.c:9524
#, fuzzy, c-format
#| msgid "Also show function names"
msgid " set function name %s (0x%x)\n"
msgstr "Показувати також назви функцій"
#. Unknown, ignore it.
-#: src/readelf.c:9188
+#: src/readelf.c:9531
msgid " unknown opcode"
msgstr " невідомий код операції"
#. Takes no argument.
-#: src/readelf.c:9200
+#: src/readelf.c:9543
msgid " copy"
msgstr " копіÑ"
-#: src/readelf.c:9211
+#: src/readelf.c:9554
#, c-format
msgid " advance address by %u to "
msgstr " Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи на %u до "
-#: src/readelf.c:9215 src/readelf.c:9276
+#: src/readelf.c:9558 src/readelf.c:9619
#, c-format
msgid ", op_index to %u"
msgstr ", op_index до %u"
-#: src/readelf.c:9227
+#: src/readelf.c:9570
#, c-format
msgid " advance line by constant %d to %<PRId64>\n"
msgstr " проÑувати Ñ€Ñдок на Ñталу %d до %<PRId64>\n"
-#: src/readelf.c:9237
+#: src/readelf.c:9580
#, c-format
msgid " set file to %<PRIu64>\n"
msgstr " вÑтановити файл у %<PRIu64>\n"
-#: src/readelf.c:9248
+#: src/readelf.c:9591
#, c-format
msgid " set column to %<PRIu64>\n"
msgstr " вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтовпчика %<PRIu64>\n"
-#: src/readelf.c:9255
+#: src/readelf.c:9598
#, c-format
msgid " set '%s' to %<PRIuFAST8>\n"
msgstr " вÑтановити «%s» у %<PRIuFAST8>\n"
#. Takes no argument.
-#: src/readelf.c:9261
+#: src/readelf.c:9604
msgid " set basic block flag"
msgstr " вÑтановити прапорець базового блоку"
-#: src/readelf.c:9272
+#: src/readelf.c:9615
#, c-format
msgid " advance address by constant %u to "
msgstr " збільшити адреÑу на Ñталу величину %u до "
-#: src/readelf.c:9292
+#: src/readelf.c:9635
#, c-format
msgid " advance address by fixed value %u to \n"
msgstr " збільшити адреÑу на фікÑовану величину %u до \n"
#. Takes no argument.
-#: src/readelf.c:9302
+#: src/readelf.c:9645
msgid " set prologue end flag"
msgstr " вÑтановити прапорець ÐºÑ–Ð½Ñ†Ñ Ð²Ñтупу"
#. Takes no argument.
-#: src/readelf.c:9307
+#: src/readelf.c:9650
msgid " set epilogue begin flag"
msgstr " вÑтановити прапорець початку епілогу"
-#: src/readelf.c:9317
+#: src/readelf.c:9660
#, c-format
msgid " set isa to %u\n"
msgstr " вÑтановити isa у %u\n"
@@ -6036,7 +6035,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:9326
+#: src/readelf.c:9669
#, c-format
msgid " unknown opcode with %<PRIu8> parameter:"
msgid_plural " unknown opcode with %<PRIu8> parameters:"
@@ -6044,87 +6043,87 @@ msgstr[0] " невідомий код операції з %<PRIu8> парамеÑ
msgstr[1] " невідомий код операції з %<PRIu8> параметрами:"
msgstr[2] " невідомий код операції з %<PRIu8> параметрами:"
-#: src/readelf.c:9527
+#: src/readelf.c:9870
#, fuzzy, c-format
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:9567
+#: src/readelf.c:9910
#, c-format
msgid "invalid loclists data"
msgstr "некоректні дані loclists"
-#: src/readelf.c:10037 src/readelf.c:11082
+#: src/readelf.c:10380 src/readelf.c:11425
msgid " <INVALID DATA>\n"
msgstr " <ÐЕКОРЕКТÐІ ДÐÐІ>\n"
-#: src/readelf.c:10168
+#: src/readelf.c:10511
#, c-format
msgid "%*s*** non-terminated string at end of section"
msgstr "%*s*** незавершений Ñ€Ñдок наприкінці розділу"
-#: src/readelf.c:10191
+#: src/readelf.c:10534
#, c-format
msgid "%*s*** missing DW_MACINFO_start_file argument at end of section"
msgstr "%*s*** пропущено аргумент DW_MACINFO_start_file наприкінці розділу"
-#: src/readelf.c:10286
+#: src/readelf.c:10629
#, c-format
msgid " Offset: 0x%<PRIx64>\n"
msgstr " ЗміщеннÑ: 0x%<PRIx64>\n"
-#: src/readelf.c:10298
+#: src/readelf.c:10641
#, c-format
msgid " Version: %<PRIu16>\n"
msgstr " ВерÑÑ–Ñ: %<PRIu16>\n"
-#: src/readelf.c:10304 src/readelf.c:11202
+#: src/readelf.c:10647 src/readelf.c:11546
#, c-format
msgid " unknown version, cannot parse section\n"
msgstr " невідома верÑÑ–Ñ, не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ розділ\n"
-#: src/readelf.c:10311
+#: src/readelf.c:10654
#, c-format
msgid " Flag: 0x%<PRIx8>"
msgstr " Прапорець: 0x%<PRIx8>"
-#: src/readelf.c:10340
+#: src/readelf.c:10683
#, c-format
msgid " Offset length: %<PRIu8>\n"
msgstr " Довжина зміщеннÑ: %<PRIu8>\n"
-#: src/readelf.c:10348
+#: src/readelf.c:10691
#, c-format
msgid " .debug_line offset: 0x%<PRIx64>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ .debug_line: 0x%<PRIx64>\n"
-#: src/readelf.c:10373
+#: src/readelf.c:10716
#, c-format
msgid " extension opcode table, %<PRIu8> items:\n"
msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ¾Ð´Ñ–Ð² операцій розширень, запиÑів — %<PRIu8>:\n"
-#: src/readelf.c:10380
+#: src/readelf.c:10723
#, c-format
msgid " [%<PRIx8>]"
msgstr " [%<PRIx8>]"
-#: src/readelf.c:10392
+#: src/readelf.c:10735
#, c-format
msgid " %<PRIu8> arguments:"
msgstr " %<PRIu8> аргументів:"
-#: src/readelf.c:10407
+#: src/readelf.c:10750
#, c-format
msgid " no arguments."
msgstr " немає аргументів."
-#: src/readelf.c:10608
+#: src/readelf.c:10951
#, 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:10663
+#: src/readelf.c:11006
#, c-format
msgid ""
"\n"
@@ -6136,37 +6135,37 @@ msgstr ""
" %*s РÑдок\n"
#. TRANS: the debugstr| prefix makes the string unique.
-#: src/readelf.c:10668
+#: src/readelf.c:11011
msgctxt "debugstr"
msgid "Offset"
msgstr ""
-#: src/readelf.c:10678
+#: src/readelf.c:11021
#, c-format
msgid " *** error, missing string terminator\n"
msgstr " *** помилка, пропущено роздільник Ñ€Ñдків\n"
-#: src/readelf.c:10800
+#: src/readelf.c:11143
#, c-format
msgid " Length: %8<PRIu64>\n"
msgstr " Довжина: %8<PRIu64>\n"
-#: src/readelf.c:10802
+#: src/readelf.c:11145
#, c-format
msgid " Offset size: %8<PRIu8>\n"
msgstr " Розмір зÑуву: %8<PRIu8>\n"
-#: src/readelf.c:10816
+#: src/readelf.c:11159
#, c-format
msgid " DWARF version: %8<PRIu16>\n"
msgstr " верÑÑ–Ñ DWARF: %8<PRIu16>\n"
-#: src/readelf.c:10825
+#: src/readelf.c:11168
#, c-format
msgid " Padding: %8<PRIx16>\n"
msgstr " ЗаповненнÑ: %8<PRIx16>\n"
-#: src/readelf.c:10879
+#: src/readelf.c:11222
#, c-format
msgid ""
"\n"
@@ -6175,7 +6174,7 @@ msgstr ""
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
@@ -6184,22 +6183,22 @@ msgstr ""
"\n"
"Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n"
-#: src/readelf.c:11004
+#: src/readelf.c:11347
#, c-format
msgid " LPStart encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ LPStart: %#x "
-#: src/readelf.c:11016
+#: src/readelf.c:11359
#, c-format
msgid " TType encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType: %#x "
-#: src/readelf.c:11033
+#: src/readelf.c:11376
#, c-format
msgid " Call site encoding: %#x "
msgstr " ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:%#x "
-#: src/readelf.c:11048
+#: src/readelf.c:11391
msgid ""
"\n"
" Call site table:"
@@ -6207,7 +6206,7 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ñ–ÑÑ†Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ:"
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6220,12 +6219,12 @@ msgstr ""
" МіÑце заÑтоÑуваннÑ: %#<PRIx64>\n"
" ДіÑ: %u\n"
-#: src/readelf.c:11137
+#: src/readelf.c:11480
#, c-format
msgid "invalid TType encoding"
msgstr "некоректне ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ TType"
-#: src/readelf.c:11164
+#: src/readelf.c:11507
#, c-format
msgid ""
"\n"
@@ -6234,37 +6233,43 @@ msgstr ""
"\n"
"Розділ GDB [%2zu] «%s» за зміщеннÑм %#<PRIx64> міÑтить %<PRId64> байтів:\n"
-#: src/readelf.c:11193
+#: src/readelf.c:11536
#, c-format
msgid " Version: %<PRId32>\n"
msgstr " ВерÑÑ–Ñ: %<PRId32>\n"
-#: src/readelf.c:11211
+#: src/readelf.c:11555
#, c-format
msgid " CU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ CU: %#<PRIx32>\n"
-#: src/readelf.c:11218
+#: src/readelf.c:11562
#, c-format
msgid " TU offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ TU: %#<PRIx32>\n"
-#: src/readelf.c:11225
+#: src/readelf.c:11569
#, c-format
msgid " address offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи: %#<PRIx32>\n"
-#: src/readelf.c:11232
+#: src/readelf.c:11576
#, c-format
msgid " symbol offset: %#<PRIx32>\n"
msgstr " Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñимволу: %#<PRIx32>\n"
-#: src/readelf.c:11239
+#: src/readelf.c:11586
+#, fuzzy, c-format
+#| msgid " constant offset: %#<PRIx32>\n"
+msgid " shortcut offset: %#<PRIx32>\n"
+msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n"
+
+#: src/readelf.c:11594
#, c-format
msgid " constant offset: %#<PRIx32>\n"
msgstr " Ñтале зміщеннÑ: %#<PRIx32>\n"
-#: src/readelf.c:11253
+#: src/readelf.c:11608
#, c-format
msgid ""
"\n"
@@ -6273,7 +6278,7 @@ msgstr ""
"\n"
" СпиÑок CU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:11278
+#: src/readelf.c:11633
#, c-format
msgid ""
"\n"
@@ -6282,7 +6287,7 @@ msgstr ""
"\n"
" СпиÑок TU зі зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:11307
+#: src/readelf.c:11662
#, c-format
msgid ""
"\n"
@@ -6291,7 +6296,7 @@ msgstr ""
"\n"
" СпиÑок Ð°Ð´Ñ€ÐµÑ Ð·Ñ– зміщеннÑм %#<PRIx32> міÑтить %zu запиÑів:\n"
-#: src/readelf.c:11339
+#: src/readelf.c:11705
#, c-format
msgid ""
"\n"
@@ -6300,18 +6305,40 @@ msgstr ""
"\n"
" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n"
-#: src/readelf.c:11477
+#: src/readelf.c:11790
+#, fuzzy, c-format
+#| msgid ""
+#| "\n"
+#| " Symbol table at offset %#<PRIx32> contains %zu slots:\n"
+msgid ""
+"\n"
+"Shortcut table at offset %#<PRIx32> contains %zu slots:\n"
+msgstr ""
+"\n"
+" Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів за зміщеннÑм %#<PRIx32> міÑтить %zu позицій:\n"
+
+#: src/readelf.c:11802
+#, c-format
+msgid "Language of main: %s\n"
+msgstr ""
+
+#: src/readelf.c:11803
+#, c-format
+msgid "Name of main: "
+msgstr ""
+
+#: src/readelf.c:11886
#, c-format
msgid "cannot get debug context descriptor: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ деÑкриптор контекÑту зневаджуваннÑ: %s"
-#: src/readelf.c:11843 src/readelf.c:12463 src/readelf.c:12573
-#: src/readelf.c:12630
+#: src/readelf.c:12252 src/readelf.c:12872 src/readelf.c:12982
+#: src/readelf.c:13039
#, c-format
msgid "cannot convert core note data: %s"
msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані запиÑу Ñдра: %s"
-#: src/readelf.c:12207
+#: src/readelf.c:12616
#, c-format
msgid ""
"\n"
@@ -6320,21 +6347,21 @@ msgstr ""
"\n"
"%*s... <повторюєтьÑÑ %u разів> ..."
-#: src/readelf.c:12709
+#: src/readelf.c:13118
msgid " Owner Data size Type\n"
msgstr " ВлаÑник Розм. даних Тип\n"
-#: src/readelf.c:12737
+#: src/readelf.c:13146
#, c-format
msgid " %-13.*s %9<PRId32> %s\n"
msgstr " %-13.*s %9<PRId32> %s\n"
-#: src/readelf.c:12789
+#: src/readelf.c:13198
#, c-format
msgid "cannot get content of note: %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ вміÑÑ‚ нотатки: %s"
-#: src/readelf.c:12822
+#: src/readelf.c:13231
#, c-format
msgid ""
"\n"
@@ -6344,7 +6371,7 @@ msgstr ""
"Розділ запиÑів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщеннÑм "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12845
+#: src/readelf.c:13254
#, c-format
msgid ""
"\n"
@@ -6353,7 +6380,7 @@ msgstr ""
"\n"
"Сегмент запиÑів з %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, c-format
msgid ""
"\n"
@@ -6362,12 +6389,12 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12919 src/readelf.c:12970
+#: src/readelf.c:13328 src/readelf.c:13379
#, c-format
msgid "cannot get data for section [%zu] '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [%zu] «%s»: %s"
-#: src/readelf.c:12924
+#: src/readelf.c:13333
#, c-format
msgid ""
"\n"
@@ -6376,7 +6403,7 @@ msgstr ""
"\n"
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12929
+#: src/readelf.c:13338
#, c-format
msgid ""
"\n"
@@ -6387,7 +6414,7 @@ msgstr ""
"ШіÑÑ‚. дамп розділу [%zu] «%s», %<PRIu64> байтів (%zd неÑтиÑнено) за "
"зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12943
+#: src/readelf.c:13352
#, c-format
msgid ""
"\n"
@@ -6396,7 +6423,7 @@ msgstr ""
"\n"
"У розділі [%zu] «%s» не міÑтитьÑÑ Ñ€Ñдків Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð°Ð¼Ð¿Ñƒ.\n"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, c-format
msgid ""
"\n"
@@ -6405,7 +6432,7 @@ msgstr ""
"\n"
"Розділ Ñ€Ñдків [%zu] «%s» міÑтить %<PRIu64> байтів за зміщеннÑм %#0<PRIx64>:\n"
-#: src/readelf.c:12980
+#: src/readelf.c:13389
#, c-format
msgid ""
"\n"
@@ -6416,7 +6443,7 @@ msgstr ""
"РÑдок розділу [%zu] «%s» міÑтить %<PRIu64> байти (%zd неÑтиÑнено) на "
"зміщенні %#0<PRIx64>:\n"
-#: src/readelf.c:13028
+#: src/readelf.c:13437
#, c-format
msgid ""
"\n"
@@ -6425,7 +6452,7 @@ msgstr ""
"\n"
"розділу [%lu] не Ñ–Ñнує"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6434,12 +6461,12 @@ msgstr ""
"\n"
"розділу «%s» не Ñ–Ñнує"
-#: src/readelf.c:13113
+#: src/readelf.c:13522
#, c-format
msgid "cannot get symbol index of archive '%s': %s"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ покажчик Ñимволів архіву «%s»: %s"
-#: src/readelf.c:13116
+#: src/readelf.c:13525
#, c-format
msgid ""
"\n"
@@ -6448,7 +6475,7 @@ msgstr ""
"\n"
"У архіві «%s» немає покажчика Ñимволів\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
@@ -6457,12 +6484,12 @@ msgstr ""
"\n"
"Покажчик архіву «%s» міÑтить %zu запиÑів:\n"
-#: src/readelf.c:13138
+#: src/readelf.c:13547
#, c-format
msgid "cannot extract member at offset %zu in '%s': %s"
msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ елемент за зміщеннÑм %zu у «%s»: %s"
-#: src/readelf.c:13143
+#: src/readelf.c:13552
#, c-format
msgid "Archive member '%s' contains:\n"
msgstr "Елемент архіву «%s» міÑтить:\n"
@@ -6979,7 +7006,7 @@ msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° E
msgid "%s: error while getting shdrstrndx: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ shdrstrndx: %s"
-#: src/strip.c:1712 src/strip.c:2553
+#: src/strip.c:1712 src/strip.c:2552
#, c-format
msgid "%s: error updating shdrstrndx: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ shdrstrndx: %s"
@@ -7014,7 +7041,7 @@ msgid "Cannot remove symbol [%zd] from allocated symbol table [%zd]"
msgstr ""
"Ðеможливо вилучити Ñимвол [%zd] з розміщеної у пам'ÑÑ‚Ñ– таблиці Ñимволів [%zd]"
-#: src/strip.c:2469 src/strip.c:2577
+#: src/strip.c:2469 src/strip.c:2574
#, c-format
msgid "while writing '%s': %s"
msgstr "під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸Ñу «%s»: %s"
@@ -7034,22 +7061,22 @@ msgstr "під Ñ‡Ð°Ñ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— Ñуми длÑ
msgid "%s: error while creating ELF header: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF: %s"
-#: src/strip.c:2562
+#: src/strip.c:2560
#, c-format
msgid "%s: error while reading the file: %s"
msgstr "%s: помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°: %s"
-#: src/strip.c:2602 src/strip.c:2622
+#: src/strip.c:2599 src/strip.c:2619
#, c-format
msgid "while writing '%s'"
msgstr "під Ñ‡Ð°Ñ Ñпроби запиÑу «%s»"
-#: src/strip.c:2659 src/strip.c:2666
+#: src/strip.c:2656 src/strip.c:2663
#, c-format
msgid "error while finishing '%s': %s"
msgstr "помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Â«%s»: %s"
-#: src/strip.c:2683 src/strip.c:2759
+#: src/strip.c:2680 src/strip.c:2756
#, c-format
msgid "cannot set access and modification date of '%s'"
msgstr "не вдалоÑÑ Ð²Ñтановити права доÑтупу та дату зміни «%s»"
@@ -7542,7 +7569,7 @@ msgid ""
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr "ЗапуÑтити виконуваний файл"
@@ -7555,6 +7582,11 @@ msgid "Show instances of inlined functions"
msgstr "ВивеÑти екземплÑри вбудованих функцій"
#, c-format
+#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
+#~ msgstr ""
+#~ "розділ [%2d] «%s»: розмірніÑÑ‚ÑŒ запиÑу розділу не відповідає ElfXX_Rela\n"
+
+#, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані розділу .debug_addr: %s"
diff --git a/src/.gitignore b/src/.gitignore
index f7252a4a..83d43a20 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -11,6 +11,7 @@
/ranlib
/readelf
/size
+/srcfiles
/stack
/strings
/strip
diff --git a/src/ChangeLog b/src/ChangeLog
index c26dafdd..ae62f4ed 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,19 @@
+2023-03-27 Di Chen <dichen@redhat.com>
+
+ * readelf.c (options): Support dynamic symtab print with '-Ds'.
+ (process_symtab): New function.
+ (handle_dynamic_symtab): Likewise.
+ (handle_symtab): Return true if symtab was printed. Move printing
+ code to process_symtab and call that function.
+ (print_symtab): Call handle_dynamic_symtab for SHT_DYNSYM when
+ using dynamic segment.
+ (enum dyn_idx): Include i_symtab_shndx, i_verneednum and
+ i_verdefnum.
+ (process_elf_file): Only call print_symtab for SHT_SYMTAB when not
+ use_dynamic_segment.
+ (get_dynscn_addrs): Handle DT_VERDEFNUM, DT_VERNEEDNUM and
+ DT_SYMTAB_SHNDX.
+
2023-03-03 Mark Wielaard <mark@klomp.org>
* readelf (process_elf_file): ebl_closebackend only after
diff --git a/src/Makefile.am b/src/Makefile.am
index 6cc019da..d3d9d408 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,7 +27,7 @@ AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw $(STACK_USAGE_NO_ERROR)
bin_PROGRAMS = readelf nm size strip elflint findtextrel addr2line \
elfcmp objdump ranlib strings ar unstrip stack elfcompress \
- elfclassify
+ elfclassify srcfiles
noinst_LIBRARIES = libar.a
@@ -42,7 +42,7 @@ CLEANFILES += make-debug-archive
if BUILD_STATIC
libasm = ../libasm/libasm.a
libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread
-libelf = ../libelf/libelf.a -lz
+libelf = ../libelf/libelf.a -lz $(zstd_LIBS)
else
libasm = ../libasm/libasm.so
libdw = ../libdw/libdw.so
@@ -84,6 +84,8 @@ unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib)
elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
elfclassify_LDADD = $(libelf) $(libdw) $(libeu) $(argp_LDADD)
+srcfiles_SOURCES = srcfiles.cxx
+srcfiles_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD)
installcheck-binPROGRAMS: $(bin_PROGRAMS)
bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
diff --git a/src/elfcompress.c b/src/elfcompress.c
index 18ade66f..f771b92a 100644
--- a/src/elfcompress.c
+++ b/src/elfcompress.c
@@ -529,30 +529,33 @@ process_file (const char *fname)
}
}
- if (shdr->sh_type != SHT_NOBITS
- && (shdr->sh_flags & SHF_ALLOC) == 0)
+ if (force || type != schtype)
{
- set_section (sections, ndx);
- /* Check if we might want to change this section name. */
- if (! adjust_names
- && ((type != ZLIB_GNU
- && startswith (sname, ".zdebug"))
- || (type == ZLIB_GNU
- && startswith (sname, ".debug"))))
- adjust_names = true;
-
- /* We need a buffer this large if we change the names. */
- if (adjust_names)
+ if (shdr->sh_type != SHT_NOBITS
+ && (shdr->sh_flags & SHF_ALLOC) == 0)
{
- size_t slen = strlen (sname);
- if (slen > maxnamelen)
- maxnamelen = slen;
+ set_section (sections, ndx);
+ /* Check if we might want to change this section name. */
+ if (! adjust_names
+ && ((type != ZLIB_GNU
+ && startswith (sname, ".zdebug"))
+ || (type == ZLIB_GNU
+ && startswith (sname, ".debug"))))
+ adjust_names = true;
+
+ /* We need a buffer this large if we change the names. */
+ if (adjust_names)
+ {
+ size_t slen = strlen (sname);
+ if (slen > maxnamelen)
+ maxnamelen = slen;
+ }
}
+ else
+ if (verbose >= 0)
+ printf ("[%zd] %s ignoring %s section\n", ndx, sname,
+ (shdr->sh_type == SHT_NOBITS ? "no bits" : "allocated"));
}
- else
- if (verbose >= 0)
- printf ("[%zd] %s ignoring %s section\n", ndx, sname,
- (shdr->sh_type == SHT_NOBITS ? "no bits" : "allocated"));
}
if (shdr->sh_type == SHT_SYMTAB)
diff --git a/src/elflint.c b/src/elflint.c
index dd42dcb4..864de710 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -1,5 +1,6 @@
/* Pedantic checking of ELF files compliance with gABI/psABI spec.
Copyright (C) 2001-2015, 2017, 2018 Red Hat, Inc.
+ Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2001.
@@ -1291,10 +1292,20 @@ section [%2d] '%s': no relocations for merge-able string sections possible\n"),
size_t sh_entsize = gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT);
if (shdr->sh_entsize != sh_entsize)
- ERROR (_(reltype == ELF_T_RELA ? "\
-section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\
-section [%2d] '%s': section entry size does not match ElfXX_Rel\n"),
- idx, section_name (ebl, idx));
+ {
+ if (reltype == ELF_T_RELA)
+ ERROR ("\
+section [%2d] '%s': section entry size does not match ElfXX_Rela\n",
+ idx, section_name (ebl, idx));
+ else if (reltype == ELF_T_REL)
+ ERROR ("\
+section [%2d] '%s': section entry size does not match ElfXX_Rel\n",
+ idx, section_name (ebl, idx));
+ else
+ ERROR ("\
+section [%2d] '%s': section entry size does not match ElfXX_Relr\n",
+ idx, section_name (ebl, idx));
+ }
/* In preparation of checking whether relocations are text
relocations or not we need to determine whether the file is
@@ -1590,6 +1601,32 @@ section [%2d] '%s': cannot get relocation %zu: %s\n"),
}
}
+static void
+check_relr (Ebl *ebl, GElf_Ehdr *ehdr, GElf_Shdr *shdr, int idx)
+{
+ Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL);
+ if (data == NULL)
+ {
+ ERROR (_("section [%2d] '%s': cannot get section data\n"),
+ idx, section_name (ebl, idx));
+ return;
+ }
+
+ /* Check the fields of the section header. */
+ GElf_Shdr destshdr_mem;
+ GElf_Shdr *destshdr = NULL;
+ struct loaded_segment *loaded = NULL;
+ check_reloc_shdr (ebl, ehdr, shdr, idx, ELF_T_RELR, &destshdr,
+ &destshdr_mem, &loaded);
+
+ /* Just throw them away. */
+ while (loaded != NULL)
+ {
+ struct loaded_segment *old = loaded;
+ loaded = loaded->next;
+ free (old);
+ }
+}
/* Number of dynamic sections. */
static int ndynamic;
@@ -1780,6 +1817,7 @@ section [%2d] '%s': entry %zu: pointer does not match address of section [%2d] '
case DT_PLTGOT:
case DT_REL:
case DT_RELA:
+ case DT_RELR:
case DT_SYMBOLIC:
case DT_SYMTAB:
case DT_VERDEF:
@@ -3660,6 +3698,7 @@ static const struct
{ ".plt", 5, SHT_PROGBITS, unused, 0, 0 }, // XXX more tests
{ ".preinit_array", 15, SHT_PREINIT_ARRAY, exact, SHF_ALLOC | SHF_WRITE, 0 },
{ ".rela", 5, SHT_RELA, atleast, 0, SHF_ALLOC | SHF_INFO_LINK }, // XXX more tests
+ { ".relr", 5, SHT_RELR, atleast, 0, SHF_ALLOC }, // XXX more tests
{ ".rel", 4, SHT_REL, atleast, 0, SHF_ALLOC | SHF_INFO_LINK }, // XXX more tests
{ ".rodata", 8, SHT_PROGBITS, atleast, SHF_ALLOC, SHF_MERGE | SHF_STRINGS },
{ ".rodata1", 9, SHT_PROGBITS, atleast, SHF_ALLOC, SHF_MERGE | SHF_STRINGS },
@@ -4182,6 +4221,10 @@ section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n"),
check_rel (ebl, ehdr, shdr, cnt);
break;
+ case SHT_RELR:
+ check_relr (ebl, ehdr, shdr, cnt);
+ break;
+
case SHT_DYNAMIC:
check_dynamic (ebl, ehdr, shdr, cnt);
break;
diff --git a/src/readelf.c b/src/readelf.c
index 6950204e..decfaf15 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -1,5 +1,6 @@
/* Print information from ELF file in human-readable form.
Copyright (C) 1999-2018 Red Hat, Inc.
+ Copyright (C) 2023 Mark J. Wielaard <mark@klomp.org>
This file is part of elfutils.
This file is free software; you can redistribute it and/or modify
@@ -301,13 +302,29 @@ static void print_shdr (Ebl *ebl, GElf_Ehdr *ehdr);
static void print_phdr (Ebl *ebl, GElf_Ehdr *ehdr);
static void print_scngrp (Ebl *ebl);
static void print_dynamic (Ebl *ebl);
-static void print_relocs (Ebl *ebl, GElf_Ehdr *ehdr);
+static void print_relocs (Ebl *ebl, Dwfl_Module *mod, GElf_Ehdr *ehdr);
static void handle_relocs_rel (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
GElf_Shdr *shdr);
static void handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn,
GElf_Shdr *shdr);
+static void handle_relocs_relr (Ebl *ebl, Dwfl_Module *mod, Elf_Scn *scn,
+ GElf_Shdr *shdr);
static bool print_symtab (Ebl *ebl, int type);
-static void handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr);
+static bool handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr);
+static bool handle_dynamic_symtab (Ebl *ebl);
+static void
+process_symtab(
+ Ebl * ebl,
+ unsigned int nsyms,
+ Elf64_Word idx,
+ Elf32_Word verneed_stridx,
+ Elf32_Word verdef_stridx,
+ Elf_Data * symdata,
+ Elf_Data * versym_data,
+ Elf_Data * symstr_data,
+ Elf_Data * verneed_data,
+ Elf_Data * verdef_data,
+ Elf_Data * xndx_data);
static void print_verinfo (Ebl *ebl);
static void handle_verneed (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr);
static void handle_verdef (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr);
@@ -322,12 +339,17 @@ static void dump_data (Ebl *ebl);
static void dump_strings (Ebl *ebl);
static void print_strings (Ebl *ebl);
static void dump_archive_index (Elf *, const char *);
+static void print_dwarf_addr (Dwfl_Module *dwflmod, int address_size,
+ Dwarf_Addr address, Dwarf_Addr raw);
enum dyn_idx
{
+ i_symtab_shndx,
i_strsz,
i_verneed,
+ i_verneednum,
i_verdef,
+ i_verdefnum,
i_versym,
i_symtab,
i_strtab,
@@ -1035,14 +1057,14 @@ process_elf_file (Dwfl_Module *dwflmod, int fd)
if (print_dynamic_table)
print_dynamic (ebl);
if (print_relocations)
- print_relocs (pure_ebl, ehdr);
+ print_relocs (pure_ebl, dwflmod, ehdr);
if (print_histogram)
handle_hash (ebl);
if (print_symbol_table || print_dynsym_table)
symtab_printed |= print_symtab (ebl, SHT_DYNSYM);
if (print_version_info)
print_verinfo (ebl);
- if (print_symbol_table)
+ if (print_symbol_table && !use_dynamic_segment)
symtab_printed |= print_symtab (ebl, SHT_SYMTAB);
if ((print_symbol_table || print_dynsym_table)
@@ -1606,7 +1628,7 @@ static const char *
section_name (Ebl *ebl, GElf_Shdr *shdr)
{
size_t shstrndx;
- if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
+ if (shdr == NULL || elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
return "???";
return elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "???";
}
@@ -1954,9 +1976,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, GElf_Phdr *phdr)
case DT_RELASZ:
case DT_STRSZ:
case DT_RELSZ:
+ case DT_RELRSZ:
case DT_RELAENT:
case DT_SYMENT:
case DT_RELENT:
+ case DT_RELRENT:
case DT_PLTPADSZ:
case DT_MOVEENT:
case DT_MOVESZ:
@@ -2032,7 +2056,7 @@ print_dynamic (Ebl *ebl)
/* Print relocations. */
static void
-print_relocs (Ebl *ebl, GElf_Ehdr *ehdr)
+print_relocs (Ebl *ebl, Dwfl_Module *mod, GElf_Ehdr *ehdr)
{
/* Find all relocation sections and handle them. */
Elf_Scn *scn = NULL;
@@ -2049,6 +2073,8 @@ print_relocs (Ebl *ebl, GElf_Ehdr *ehdr)
handle_relocs_rel (ebl, ehdr, scn, shdr);
else if (shdr->sh_type == SHT_RELA)
handle_relocs_rela (ebl, ehdr, scn, shdr);
+ else if (shdr->sh_type == SHT_RELR)
+ handle_relocs_relr (ebl, mod, scn, shdr);
}
}
}
@@ -2437,12 +2463,124 @@ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr)
}
}
+/* Handle a relocation section. */
+static void
+handle_relocs_relr (Ebl *ebl, Dwfl_Module *mod, Elf_Scn *scn, GElf_Shdr *shdr)
+{
+ int class = gelf_getclass (ebl->elf);
+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELR, 1, EV_CURRENT);
+ int nentries = shdr->sh_size / sh_entsize;
+
+ /* Get the data of the section. */
+ Elf_Data *data = elf_getdata (scn, NULL);
+ if (data == NULL)
+ return;
+
+ /* Get the section header string table index. */
+ size_t shstrndx;
+ if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
+ error_exit (0, _("cannot get section header string table index"));
+
+ /* A .relr.dyn section does not refer to a specific section. */
+ printf (ngettext ("\
+\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n",
+ "\
+\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n",
+ nentries),
+ (unsigned int) elf_ndxscn (scn),
+ elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
+ shdr->sh_offset,
+ nentries);
+
+ if (class == ELFCLASS32)
+ {
+ uint32_t base = 0;
+ for (int cnt = 0; cnt < nentries; ++cnt)
+ {
+ Elf32_Word *words = data->d_buf;
+ Elf32_Word entry = words[cnt];
+
+ /* Just the raw entries? */
+ if (print_unresolved_addresses)
+ printf (" %#010" PRIx32 "%s\n", entry,
+ (entry & 1) == 0 ? " *" : "");
+ else
+ {
+ /* A real address, also sets base. */
+ if ((entry & 1) == 0)
+ {
+ printf (" ");
+ print_dwarf_addr (mod, 4, entry, entry);
+ printf (" *\n");
+
+ base = entry + 4;
+ }
+ else
+ {
+ /* Untangle address from base and bits. */
+ uint32_t addr;
+ for (addr = base; (entry >>= 1) != 0; addr += 4)
+ if ((entry & 1) != 0)
+ {
+ printf (" ");
+ print_dwarf_addr (mod, 4, addr, addr);
+ printf ("\n");
+ }
+ base += 4 * (4 * 8 - 1);
+ }
+ }
+ }
+ }
+ else
+ {
+ uint64_t base = 0;
+ for (int cnt = 0; cnt < nentries; ++cnt)
+ {
+ Elf64_Xword *xwords = data->d_buf;
+ Elf64_Xword entry = xwords[cnt];
+
+ /* Just the raw entries? */
+ if (print_unresolved_addresses)
+ printf (" %#018" PRIx64 "%s\n", entry,
+ (entry & 1) == 0 ? " *" : "");
+ else
+ {
+ /* A real address, also sets base. */
+ if ((entry & 1) == 0)
+ {
+ printf (" ");
+ print_dwarf_addr (mod, 8, entry, entry);
+ printf (" *\n");
+
+ base = entry + 8;
+ }
+ else
+ {
+ /* Untangle address from base and bits. */
+ uint64_t addr;
+ for (addr = base; (entry >>= 1) != 0; addr += 8)
+ if ((entry & 1) != 0)
+ {
+ printf (" ");
+ print_dwarf_addr (mod, 8, addr, addr);
+ printf ("\n");
+ }
+ base += 8 * (8 * 8 - 1);
+ }
+ }
+ }
+ }
+}
/* Print the program header. Return true if a symtab is printed,
false otherwise. */
static bool
print_symtab (Ebl *ebl, int type)
{
+ /* Use the dynamic section info to display symbol tables. */
+ if (use_dynamic_segment && type == SHT_DYNSYM)
+ return handle_dynamic_symtab(ebl);
+
/* Find the symbol table(s). For this we have to search through the
section table. */
Elf_Scn *scn = NULL;
@@ -2481,8 +2619,7 @@ print_symtab (Ebl *ebl, int type)
_("cannot get section [%zd] header: %s"),
elf_ndxscn (scn), elf_errmsg (-1));
}
- handle_symtab (ebl, scn, shdr);
- symtab_printed = true;
+ symtab_printed = handle_symtab (ebl, scn, shdr);
}
}
@@ -2491,6 +2628,179 @@ print_symtab (Ebl *ebl, int type)
static void
+process_symtab (Ebl *ebl, unsigned int nsyms, Elf64_Word idx,
+ Elf32_Word verneed_stridx, Elf32_Word verdef_stridx,
+ Elf_Data *symdata, Elf_Data *versym_data,
+ Elf_Data *symstr_data, Elf_Data *verneed_data,
+ Elf_Data *verdef_data, Elf_Data *xndx_data)
+{
+ for (unsigned int cnt = 0; cnt < nsyms; ++cnt)
+ {
+ char typebuf[64];
+ char bindbuf[64];
+ char scnbuf[64];
+ Elf32_Word xndx;
+ GElf_Sym sym_mem;
+ GElf_Sym *sym
+ = gelf_getsymshndx (symdata, xndx_data, cnt, &sym_mem, &xndx);
+
+ if (unlikely (sym == NULL))
+ continue;
+
+ /* Determine the real section index. */
+ if (likely (sym->st_shndx != SHN_XINDEX))
+ xndx = sym->st_shndx;
+
+ printf (_ ("\
+%5u: %0*" PRIx64 " %6" PRId64 " %-7s %-6s %-9s %6s %s"),
+ cnt, gelf_getclass (ebl->elf) == ELFCLASS32 ? 8 : 16,
+ sym->st_value, sym->st_size,
+ ebl_symbol_type_name (ebl, GELF_ST_TYPE (sym->st_info), typebuf,
+ sizeof (typebuf)),
+ ebl_symbol_binding_name (ebl, GELF_ST_BIND (sym->st_info),
+ bindbuf, sizeof (bindbuf)),
+ get_visibility_type (GELF_ST_VISIBILITY (sym->st_other)),
+ ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf,
+ sizeof (scnbuf), NULL, shnum),
+ use_dynamic_segment == true
+ ? (char *)symstr_data->d_buf + sym->st_name
+ : elf_strptr (ebl->elf, idx, sym->st_name));
+
+ if (versym_data != NULL)
+ {
+ /* Get the version information. */
+ GElf_Versym versym_mem;
+ GElf_Versym *versym = gelf_getversym (versym_data, cnt, &versym_mem);
+
+ if (versym != NULL && ((*versym & 0x8000) != 0 || *versym > 1))
+ {
+ bool is_nobits = false;
+ bool check_def = xndx != SHN_UNDEF;
+
+ if (xndx < SHN_LORESERVE || sym->st_shndx == SHN_XINDEX)
+ {
+ GElf_Shdr symshdr_mem;
+ GElf_Shdr *symshdr = gelf_getshdr (
+ elf_getscn (ebl->elf, xndx), &symshdr_mem);
+
+ is_nobits
+ = (symshdr != NULL && symshdr->sh_type == SHT_NOBITS);
+ }
+
+ if (is_nobits || !check_def)
+ {
+ /* We must test both. */
+ GElf_Vernaux vernaux_mem;
+ GElf_Vernaux *vernaux = NULL;
+ size_t vn_offset = 0;
+
+ GElf_Verneed verneed_mem;
+ GElf_Verneed *verneed
+ = gelf_getverneed (verneed_data, 0, &verneed_mem);
+ while (verneed != NULL)
+ {
+ size_t vna_offset = vn_offset;
+
+ vernaux = gelf_getvernaux (verneed_data,
+ vna_offset += verneed->vn_aux,
+ &vernaux_mem);
+ while (vernaux != NULL && vernaux->vna_other != *versym
+ && vernaux->vna_next != 0
+ && (verneed_data->d_size - vna_offset
+ >= vernaux->vna_next))
+ {
+ /* Update the offset. */
+ vna_offset += vernaux->vna_next;
+
+ vernaux = (vernaux->vna_next == 0
+ ? NULL
+ : gelf_getvernaux (verneed_data,
+ vna_offset,
+ &vernaux_mem));
+ }
+
+ /* Check whether we found the version. */
+ if (vernaux != NULL && vernaux->vna_other == *versym)
+ /* Found it. */
+ break;
+
+ if (verneed_data->d_size - vn_offset < verneed->vn_next)
+ break;
+
+ vn_offset += verneed->vn_next;
+ verneed
+ = (verneed->vn_next == 0
+ ? NULL
+ : gelf_getverneed (verneed_data, vn_offset,
+ &verneed_mem));
+ }
+
+ if (vernaux != NULL && vernaux->vna_other == *versym)
+ {
+ printf ("@%s (%u)",
+ use_dynamic_segment == true
+ ? (char *)symstr_data->d_buf
+ + vernaux->vna_name
+ : elf_strptr (ebl->elf, verneed_stridx,
+ vernaux->vna_name),
+ (unsigned int)vernaux->vna_other);
+ check_def = 0;
+ }
+ else if (unlikely (!is_nobits))
+ error (0, 0, _ ("bad dynamic symbol"));
+ else
+ check_def = 1;
+ }
+
+ if (check_def && *versym != 0x8001)
+ {
+ /* We must test both. */
+ size_t vd_offset = 0;
+
+ GElf_Verdef verdef_mem;
+ GElf_Verdef *verdef
+ = gelf_getverdef (verdef_data, 0, &verdef_mem);
+ while (verdef != NULL)
+ {
+ if (verdef->vd_ndx == (*versym & 0x7fff))
+ /* Found the definition. */
+ break;
+
+ if (verdef_data->d_size - vd_offset < verdef->vd_next)
+ break;
+
+ vd_offset += verdef->vd_next;
+ verdef = (verdef->vd_next == 0
+ ? NULL
+ : gelf_getverdef (verdef_data, vd_offset,
+ &verdef_mem));
+ }
+
+ if (verdef != NULL)
+ {
+ GElf_Verdaux verdaux_mem;
+ GElf_Verdaux *verdaux = gelf_getverdaux (
+ verdef_data, vd_offset + verdef->vd_aux,
+ &verdaux_mem);
+
+ if (verdaux != NULL)
+ printf ((*versym & 0x8000) ? "@%s" : "@@%s",
+ use_dynamic_segment == true
+ ? (char *)symstr_data->d_buf
+ + verdaux->vda_name
+ : elf_strptr (ebl->elf, verdef_stridx,
+ verdaux->vda_name));
+ }
+ }
+ }
+ }
+
+ putchar_unlocked ('\n');
+ }
+}
+
+
+static bool
handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
{
Elf_Data *versym_data = NULL;
@@ -2504,7 +2814,7 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
/* Get the data of the section. */
Elf_Data *data = elf_getdata (scn, NULL);
if (data == NULL)
- return;
+ return false;
/* Find out whether we have other sections we might need. */
Elf_Scn *runscn = NULL;
@@ -2574,163 +2884,184 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr)
Num: Value Size Type Bind Vis Ndx Name\n"),
stdout);
- for (unsigned int cnt = 0; cnt < nsyms; ++cnt)
- {
- char typebuf[64];
- char bindbuf[64];
- char scnbuf[64];
- Elf32_Word xndx;
- GElf_Sym sym_mem;
- GElf_Sym *sym = gelf_getsymshndx (data, xndx_data, cnt, &sym_mem, &xndx);
-
- if (unlikely (sym == NULL))
- continue;
-
- /* Determine the real section index. */
- if (likely (sym->st_shndx != SHN_XINDEX))
- xndx = sym->st_shndx;
-
- printf (_("\
-%5u: %0*" PRIx64 " %6" PRId64 " %-7s %-6s %-9s %6s %s"),
- cnt,
- class == ELFCLASS32 ? 8 : 16,
- sym->st_value,
- sym->st_size,
- ebl_symbol_type_name (ebl, GELF_ST_TYPE (sym->st_info),
- typebuf, sizeof (typebuf)),
- ebl_symbol_binding_name (ebl, GELF_ST_BIND (sym->st_info),
- bindbuf, sizeof (bindbuf)),
- get_visibility_type (GELF_ST_VISIBILITY (sym->st_other)),
- ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf,
- sizeof (scnbuf), NULL, shnum),
- elf_strptr (ebl->elf, shdr->sh_link, sym->st_name));
-
- if (versym_data != NULL)
- {
- /* Get the version information. */
- GElf_Versym versym_mem;
- GElf_Versym *versym = gelf_getversym (versym_data, cnt, &versym_mem);
-
- if (versym != NULL && ((*versym & 0x8000) != 0 || *versym > 1))
- {
- bool is_nobits = false;
- bool check_def = xndx != SHN_UNDEF;
-
- if (xndx < SHN_LORESERVE || sym->st_shndx == SHN_XINDEX)
- {
- GElf_Shdr symshdr_mem;
- GElf_Shdr *symshdr =
- gelf_getshdr (elf_getscn (ebl->elf, xndx), &symshdr_mem);
+ process_symtab(ebl, nsyms, shdr->sh_link, verneed_stridx, verdef_stridx,
+ data, versym_data, NULL, verneed_data, verdef_data, xndx_data);
+ return true;
+}
- is_nobits = (symshdr != NULL
- && symshdr->sh_type == SHT_NOBITS);
- }
- if (is_nobits || ! check_def)
- {
- /* We must test both. */
- GElf_Vernaux vernaux_mem;
- GElf_Vernaux *vernaux = NULL;
- size_t vn_offset = 0;
-
- GElf_Verneed verneed_mem;
- GElf_Verneed *verneed = gelf_getverneed (verneed_data, 0,
- &verneed_mem);
- while (verneed != NULL)
- {
- size_t vna_offset = vn_offset;
-
- vernaux = gelf_getvernaux (verneed_data,
- vna_offset += verneed->vn_aux,
- &vernaux_mem);
- while (vernaux != NULL
- && vernaux->vna_other != *versym
- && vernaux->vna_next != 0
- && (verneed_data->d_size - vna_offset
- >= vernaux->vna_next))
- {
- /* Update the offset. */
- vna_offset += vernaux->vna_next;
-
- vernaux = (vernaux->vna_next == 0
- ? NULL
- : gelf_getvernaux (verneed_data,
- vna_offset,
- &vernaux_mem));
- }
-
- /* Check whether we found the version. */
- if (vernaux != NULL && vernaux->vna_other == *versym)
- /* Found it. */
- break;
+static bool
+handle_dynamic_symtab (Ebl *ebl)
+{
+ GElf_Phdr phdr_mem;
+ GElf_Phdr *phdr = NULL;
+ /* phnum is a static variable which was already fetched in function
+ process_elf_file. */
+ for (size_t i = 0; i < phnum; ++i)
+ {
+ phdr = gelf_getphdr (ebl->elf, i, &phdr_mem);
+ if (phdr->p_type == PT_DYNAMIC)
+ break;
+ }
+ if (phdr == NULL)
+ return false;
- if (verneed_data->d_size - vn_offset < verneed->vn_next)
- break;
+ GElf_Addr addrs[i_max] = {
+ 0,
+ };
+ GElf_Off offs[i_max] = {
+ 0,
+ };
+ get_dynscn_addrs (ebl->elf, phdr, addrs);
+ find_offsets (ebl->elf, 0, i_max, addrs, offs);
- vn_offset += verneed->vn_next;
- verneed = (verneed->vn_next == 0
- ? NULL
- : gelf_getverneed (verneed_data, vn_offset,
- &verneed_mem));
- }
+ size_t syments = 0;
- if (vernaux != NULL && vernaux->vna_other == *versym)
- {
- printf ("@%s (%u)",
- elf_strptr (ebl->elf, verneed_stridx,
- vernaux->vna_name),
- (unsigned int) vernaux->vna_other);
- check_def = 0;
- }
- else if (unlikely (! is_nobits))
- error (0, 0, _("bad dynamic symbol"));
- else
- check_def = 1;
- }
+ GElf_Ehdr ehdr_mem;
+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem);
- if (check_def && *versym != 0x8001)
- {
- /* We must test both. */
- size_t vd_offset = 0;
+ if (offs[i_hash] != 0)
+ {
+ /* In the original format, .hash says the size of .dynsym. */
- GElf_Verdef verdef_mem;
- GElf_Verdef *verdef = gelf_getverdef (verdef_data, 0,
- &verdef_mem);
- while (verdef != NULL)
- {
- if (verdef->vd_ndx == (*versym & 0x7fff))
- /* Found the definition. */
- break;
+ size_t entsz = SH_ENTSIZE_HASH (ehdr);
+ Elf_Data *data
+ = elf_getdata_rawchunk (ebl->elf, offs[i_hash] + entsz, entsz,
+ (entsz == 4 ? ELF_T_WORD : ELF_T_XWORD));
+ if (data != NULL)
+ syments = (entsz == 4 ? *(const GElf_Word *)data->d_buf
+ : *(const GElf_Xword *)data->d_buf);
+ }
+ if (offs[i_gnu_hash] != 0 && syments == 0)
+ {
+ /* In the new format, we can derive it with some work. */
- if (verdef_data->d_size - vd_offset < verdef->vd_next)
- break;
+ const struct
+ {
+ Elf32_Word nbuckets;
+ Elf32_Word symndx;
+ Elf32_Word maskwords;
+ Elf32_Word shift2;
+ } * header;
+
+ Elf_Data *data = elf_getdata_rawchunk (ebl->elf, offs[i_gnu_hash],
+ sizeof *header, ELF_T_WORD);
+ if (data != NULL)
+ {
+ header = data->d_buf;
+ Elf32_Word nbuckets = header->nbuckets;
+ Elf32_Word symndx = header->symndx;
+ GElf_Off buckets_at
+ = (offs[i_gnu_hash] + sizeof *header
+ + (gelf_getclass (ebl->elf) * sizeof (Elf32_Word)
+ * header->maskwords));
+
+ // elf_getdata_rawchunk takes a size_t, make sure it
+ // doesn't overflow.
+#if SIZE_MAX <= UINT32_MAX
+ if (nbuckets > SIZE_MAX / sizeof (Elf32_Word))
+ data = NULL;
+ else
+#endif
+ data = elf_getdata_rawchunk (ebl->elf, buckets_at,
+ nbuckets * sizeof (Elf32_Word),
+ ELF_T_WORD);
+ if (data != NULL && symndx < nbuckets)
+ {
+ const Elf32_Word *const buckets = data->d_buf;
+ Elf32_Word maxndx = symndx;
+ for (Elf32_Word bucket = 0; bucket < nbuckets; ++bucket)
+ if (buckets[bucket] > maxndx)
+ maxndx = buckets[bucket];
+
+ GElf_Off hasharr_at
+ = (buckets_at + nbuckets * sizeof (Elf32_Word));
+ hasharr_at += (maxndx - symndx) * sizeof (Elf32_Word);
+ do
+ {
+ data = elf_getdata_rawchunk (
+ ebl->elf, hasharr_at, sizeof (Elf32_Word), ELF_T_WORD);
+ if (data != NULL && (*(const Elf32_Word *)data->d_buf & 1u))
+ {
+ syments = maxndx + 1;
+ break;
+ }
+ ++maxndx;
+ hasharr_at += sizeof (Elf32_Word);
+ }
+ while (data != NULL);
+ }
+ }
+ }
+ if (offs[i_strtab] > offs[i_symtab] && syments == 0)
+ syments = ((offs[i_strtab] - offs[i_symtab])
+ / gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT));
- vd_offset += verdef->vd_next;
- verdef = (verdef->vd_next == 0
- ? NULL
- : gelf_getverdef (verdef_data, vd_offset,
- &verdef_mem));
- }
+ if (syments <= 0 || offs[i_strtab] == 0 || offs[i_symtab] == 0)
+ {
+ error_exit (0, _ ("Dynamic symbol information is not available for "
+ "displaying symbols."));
+ }
- if (verdef != NULL)
- {
- GElf_Verdaux verdaux_mem;
- GElf_Verdaux *verdaux
- = gelf_getverdaux (verdef_data,
- vd_offset + verdef->vd_aux,
- &verdaux_mem);
-
- if (verdaux != NULL)
- printf ((*versym & 0x8000) ? "@%s" : "@@%s",
- elf_strptr (ebl->elf, verdef_stridx,
- verdaux->vda_name));
- }
- }
- }
- }
+ /* All the data chunk initializaion. */
+ Elf_Data *symdata = NULL;
+ Elf_Data *symstrdata = NULL;
+ Elf_Data *versym_data = NULL;
+ Elf_Data *verdef_data = NULL;
+ Elf_Data *verneed_data = NULL;
- putchar_unlocked ('\n');
- }
+ symdata = elf_getdata_rawchunk (
+ ebl->elf, offs[i_symtab],
+ gelf_fsize (ebl->elf, ELF_T_SYM, syments, EV_CURRENT), ELF_T_SYM);
+ symstrdata = elf_getdata_rawchunk (ebl->elf, offs[i_strtab], addrs[i_strsz],
+ ELF_T_BYTE);
+ versym_data = elf_getdata_rawchunk (
+ ebl->elf, offs[i_versym], syments * sizeof (Elf64_Half), ELF_T_HALF);
+
+ /* Get the verneed_data without vernaux. */
+ verneed_data = elf_getdata_rawchunk (
+ ebl->elf, offs[i_verneed], addrs[i_verneednum] * sizeof (Elf64_Verneed),
+ ELF_T_VNEED);
+ size_t vernauxnum = 0;
+ size_t vn_next_offset = 0;
+
+ for (size_t i = 0; i < addrs[i_verneednum]; i++)
+ {
+ GElf_Verneed *verneed
+ = (GElf_Verneed *)(verneed_data->d_buf + vn_next_offset);
+ vernauxnum += verneed->vn_cnt;
+ vn_next_offset += verneed->vn_next;
+ }
+
+ /* Update the verneed_data to include the vernaux. */
+ verneed_data = elf_getdata_rawchunk (
+ ebl->elf, offs[i_verneed],
+ (addrs[i_verneednum] + vernauxnum) * sizeof (GElf_Verneed), ELF_T_VNEED);
+
+ /* Get the verdef_data without verdaux. */
+ verdef_data = elf_getdata_rawchunk (
+ ebl->elf, offs[i_verdef], addrs[i_verdefnum] * sizeof (Elf64_Verdef),
+ ELF_T_VDEF);
+ size_t verdauxnum = 0;
+ size_t vd_next_offset = 0;
+
+ for (size_t i = 0; i < addrs[i_verdefnum]; i++)
+ {
+ GElf_Verdef *verdef
+ = (GElf_Verdef *)(verdef_data->d_buf + vd_next_offset);
+ verdauxnum += verdef->vd_cnt;
+ vd_next_offset += verdef->vd_next;
+ }
+
+ /* Update the verdef_data to include the verdaux. */
+ verdef_data = elf_getdata_rawchunk (
+ ebl->elf, offs[i_verdef],
+ (addrs[i_verdefnum] + verdauxnum) * sizeof (GElf_Verdef), ELF_T_VDEF);
+
+ unsigned int nsyms = (unsigned int)syments;
+ process_symtab (ebl, nsyms, 0, 0, 0, symdata, versym_data, symstrdata,
+ verneed_data, verdef_data, NULL);
+ return true;
}
@@ -3893,7 +4224,7 @@ get_debug_elf_data (Dwarf *dbg, Ebl *ebl, int idx, Elf_Scn *scn)
return elf_getdata (scn, NULL);
}
-void
+static void
print_dwarf_addr (Dwfl_Module *dwflmod,
int address_size, Dwarf_Addr address, Dwarf_Addr raw)
{
@@ -4990,13 +5321,25 @@ get_dynscn_addrs(Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max])
addrs[i_verdef] = dyn->d_un.d_ptr;
break;
+ case DT_VERDEFNUM:
+ addrs[i_verdefnum] = dyn->d_un.d_val;
+ break;
+
case DT_VERNEED:
addrs[i_verneed] = dyn->d_un.d_ptr;
break;
+ case DT_VERNEEDNUM:
+ addrs[i_verneednum] = dyn->d_un.d_val;
+ break;
+
case DT_STRSZ:
addrs[i_strsz] = dyn->d_un.d_val;
break;
+
+ case DT_SYMTAB_SHNDX:
+ addrs[i_symtab_shndx] = dyn->d_un.d_ptr;
+ break;
}
}
}
@@ -11196,8 +11539,9 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl,
// hash used for generating the table. Version 6 contains symbols
// for inlined functions, older versions didn't. Version 7 adds
// symbol kinds. Version 8 just indicates that it correctly includes
- // TUs for symbols.
- if (vers < 4 || vers > 8)
+ // TUs for symbols. Version 9 adds shortcut table for information
+ // regarding the main function.
+ if (vers < 4 || vers > 9)
{
printf (_(" unknown version, cannot parse section\n"));
return;
@@ -11235,6 +11579,17 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl,
if (unlikely (readp + 4 > dataend))
goto invalid_data;
+ uint32_t shortcut_off = 0;
+ if (vers >= 9)
+ {
+ shortcut_off = read_4ubyte_unaligned (dbg, readp);
+ printf (_(" shortcut offset: %#" PRIx32 "\n"), shortcut_off);
+
+ readp += 4;
+ if (unlikely (readp + 4 > dataend))
+ goto invalid_data;
+ }
+
uint32_t const_off = read_4ubyte_unaligned (dbg, readp);
printf (_(" constant offset: %#" PRIx32 "\n"), const_off);
@@ -11332,8 +11687,19 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl,
if (const_off >= data->d_size)
goto invalid_data;
+ const unsigned char *shortcut_start = NULL;
+ if (vers >= 9)
+ {
+ if (shortcut_off >= data->d_size)
+ goto invalid_data;
+
+ shortcut_start = data->d_buf + shortcut_off;
+ nextp = shortcut_start;
+ }
+ else
+ nextp = const_start;
+
readp = data->d_buf + sym_off;
- nextp = const_start;
size_t sym_nr = (nextp - readp) / 8;
printf (_("\n Symbol table at offset %#" PRIx32
@@ -11407,6 +11773,49 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl,
}
n++;
}
+
+ if (vers < 9)
+ return;
+
+ if (unlikely (shortcut_start == NULL))
+ goto invalid_data;
+
+ readp = shortcut_start;
+ nextp = const_start;
+ size_t shortcut_nr = (nextp - readp) / 4;
+
+ if (unlikely (shortcut_nr != 2))
+ goto invalid_data;
+
+ printf (_("\nShortcut table at offset %#" PRIx32 " contains %zu slots:\n"),
+ shortcut_off, shortcut_nr);
+
+ uint32_t lang = read_4ubyte_unaligned (dbg, readp);
+ readp += 4;
+
+ /* Include the hex number of LANG in the output if the language
+ is unknown. */
+ const char *lang_str = dwarf_lang_string (lang);
+ lang_str = string_or_unknown (lang_str, lang, DW_LANG_lo_user,
+ DW_LANG_hi_user, true);
+
+ printf (_("Language of main: %s\n"), lang_str);
+ printf (_("Name of main: "));
+
+ if (lang != 0)
+ {
+ uint32_t name = read_4ubyte_unaligned (dbg, readp);
+ readp += 4;
+ const unsigned char *sym = const_start + name;
+
+ if (unlikely ((size_t) (dataend - const_start) < name
+ || memchr (sym, '\0', dataend - sym) == NULL))
+ goto invalid_data;
+
+ printf ("%s\n", sym);
+ }
+ else
+ printf ("<unknown>\n");
}
/* Returns true and sets split DWARF CU id if there is a split compile
diff --git a/src/srcfiles.cxx b/src/srcfiles.cxx
new file mode 100644
index 00000000..3c7afdc4
--- /dev/null
+++ b/src/srcfiles.cxx
@@ -0,0 +1,218 @@
+/* Print the source files of a given ELF file.
+ Copyright (C) 2023 Red Hat, Inc.
+ This file is part of elfutils.
+ Written by Housam Alamour <alamourh@redhat.com>.
+
+ 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 "printversion.h"
+#include <dwarf.h>
+#include <argp.h>
+#include <cstring>
+#include <set>
+#include <string>
+#include <cassert>
+#include <config.h>
+
+#include <libdwfl.h>
+#include <fcntl.h>
+#include <iostream>
+#include <libdw.h>
+
+using namespace std;
+
+/* Name and version of program. */
+ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
+
+/* Bug report address. */
+ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
+
+/* Definitions of arguments for argp functions. */
+static const struct argp_option options[] =
+{
+ { NULL, 0, NULL, OPTION_DOC, N_("Output options:"), 1 },
+ { "null", '0', NULL, 0,
+ N_ ("Separate items by a null instead of a newline."), 0 },
+ { "verbose", 'v', NULL, 0,
+ N_ ("Increase verbosity of logging messages."), 0 },
+ { "cu-only", 'c', NULL, 0, N_ ("Only list the CU names."), 0 },
+ { NULL, 0, NULL, 0, NULL, 0 }
+};
+
+/* Short description of program. */
+static const char doc[] = N_("Lists the source files of a DWARF/ELF file. The default input is the file 'a.out'.");
+
+/* Strings for arguments in help texts. */
+static const char args_doc[] = N_("INPUT");
+
+/* Prototype for option handler. */
+static error_t parse_opt (int key, char *arg, struct argp_state *state);
+
+static struct argp_child argp_children[2]; /* [0] is set in main. */
+
+/* Data structure to communicate with argp functions. */
+static const struct argp argp =
+{
+ options, parse_opt, args_doc, doc, argp_children, NULL, NULL
+};
+
+/* Verbose message printing. */
+static bool verbose;
+/* Delimit the output with nulls. */
+static bool null_arg;
+/* Only print compilation unit names. */
+static bool CU_only;
+
+/* Handle program arguments. */
+static error_t
+parse_opt (int key, char *arg, struct argp_state *state)
+{
+ /* Suppress "unused parameter" warning. */
+ (void)arg;
+ switch (key)
+ {
+ case ARGP_KEY_INIT:
+ state->child_inputs[0] = state->input;
+ break;
+
+ case '0':
+ null_arg = true;
+ break;
+
+ case 'v':
+ verbose = true;
+ break;
+
+ case 'c':
+ CU_only = true;
+ break;
+
+ default:
+ return ARGP_ERR_UNKNOWN;
+ }
+ return 0;
+}
+
+
+/* Global list of collected source files. Normally, it'll contain
+ the sources of just one named binary, but the '-K' option can cause
+ multiple dwfl modules to be loaded, thus listed. */
+ set<string> debug_sourcefiles;
+
+static int
+collect_sourcefiles (Dwfl_Module *dwflmod,
+ void **userdata __attribute__ ((unused)),
+ const char *name __attribute__ ((unused)),
+ Dwarf_Addr base __attribute__ ((unused)),
+ void *arg __attribute__ ((unused)))
+{
+ Dwarf *dbg;
+ Dwarf_Addr bias; /* ignored - for addressing purposes only */
+
+ dbg = dwfl_module_getdwarf (dwflmod, &bias);
+
+ Dwarf_Off offset = 0;
+ Dwarf_Off old_offset;
+ size_t hsize;
+
+ /* Traverse all CUs of this module. */
+ while (dwarf_nextcu (dbg, old_offset = offset, &offset, &hsize, NULL, NULL, NULL) == 0)
+ {
+ Dwarf_Die cudie_mem;
+ Dwarf_Die *cudie = dwarf_offdie (dbg, old_offset + hsize, &cudie_mem);
+
+ if (cudie == NULL)
+ continue;
+
+ const char *cuname = dwarf_diename (cudie) ?: "<unknown>";
+ Dwarf_Files *files;
+ size_t nfiles;
+ if (dwarf_getsrcfiles (cudie, &files, &nfiles) != 0)
+ continue;
+
+ /* extract DW_AT_comp_dir to resolve relative file names */
+ const char *comp_dir = "";
+ const char *const *dirs;
+ size_t ndirs;
+
+ if (dwarf_getsrcdirs (files, &dirs, &ndirs) == 0 && dirs[0] != NULL)
+ comp_dir = dirs[0];
+ if (comp_dir == NULL)
+ comp_dir = "";
+
+ if (verbose)
+ std::clog << "searching for sources for cu=" << cuname
+ << " comp_dir=" << comp_dir << " #files=" << nfiles
+ << " #dirs=" << ndirs << endl;
+
+ for (size_t f = 1; f < nfiles; f++)
+ {
+ const char *hat;
+ if (CU_only)
+ {
+ if (strcmp(cuname, "<unknown>") == 0 || strcmp(cuname, "<artificial>") == 0 )
+ continue;
+ hat = cuname;
+ }
+ else
+ hat = dwarf_filesrc (files, f, NULL, NULL);
+
+ if (hat == NULL)
+ continue;
+
+ if (string(hat).find("<built-in>")
+ != std::string::npos) /* gcc intrinsics, don't bother record */
+ continue;
+
+ string waldo;
+ if (hat[0] == '/') /* absolute */
+ waldo = (string (hat));
+ else if (comp_dir[0] != '\0') /* comp_dir relative */
+ waldo = (string (comp_dir) + string ("/") + string (hat));
+ debug_sourcefiles.insert (waldo);
+ }
+ }
+
+ return DWARF_CB_OK;
+}
+
+
+int
+main (int argc, char *argv[])
+{
+ int remaining;
+
+ /* Parse and process arguments. This includes opening the modules. */
+ argp_children[0].argp = dwfl_standard_argp ();
+ argp_children[0].group = 1;
+
+ Dwfl *dwfl = NULL;
+ (void) argp_parse (&argp, argc, argv, 0, &remaining, &dwfl);
+ assert (dwfl != NULL);
+ /* Process all loaded modules - probably just one, except if -K or -p is used. */
+ (void) dwfl_getmodules (dwfl, &collect_sourcefiles, NULL, 0);
+
+ if (!debug_sourcefiles.empty ())
+ for (const string &element : debug_sourcefiles)
+ {
+ std::cout << element;
+ if (null_arg)
+ std::cout << '\0';
+ else
+ std::cout << '\n';
+ }
+
+ dwfl_end (dwfl);
+ return 0;
+}
diff --git a/src/strip.c b/src/strip.c
index 2a2cc801..7f4788b3 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -2543,8 +2543,7 @@ while computing checksum for debug information"));
{
error (0, 0, _("%s: error while creating ELF header: %s"),
output_fname ?: fname, elf_errmsg (-1));
- cleanup_debug ();
- return 1;
+ result = 1;
}
/* The new section header string table index. */
@@ -2552,8 +2551,7 @@ while computing checksum for debug information"));
{
error (0, 0, _("%s: error updating shdrstrndx: %s"),
output_fname ?: fname, elf_errmsg (-1));
- cleanup_debug ();
- return 1;
+ result = 1;
}
/* We have everything from the old file. */
@@ -2561,8 +2559,7 @@ while computing checksum for debug information"));
{
error (0, 0, _("%s: error while reading the file: %s"),
fname, elf_errmsg (-1));
- cleanup_debug ();
- return 1;
+ result = 1;
}
/* The ELF library better follows our layout when this is not a
diff --git a/tests/ChangeLog b/tests/ChangeLog
index eb3e1118..d97749f5 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,21 @@
+2023-09-27 Omar Sandoval <osandov@fb.com>
+
+ * dwarf-getmacros.c (mac): Add DW_MACRO_define_sup,
+ DW_MACRO_define_strx, DW_MACRO_undef_sup, and DW_MACRO_undef_strx
+ cases to opcode switch statement.
+ (getmacros): New function.
+ (main): If second argument is empty, call getmacros on every unit.
+ Otherwise, call getmacros on given unit.
+
+2023-09-27 Omar Sandoval <osandov@fb.com>
+
+ * run-varlocs.sh: Add entry PC to split units.
+
+2023-04-21 Frank Ch. Eigler <fche@redhat.com>
+
+ * run-debuginfod-IXr.sh: New test.
+ * Makefile.am: Run it, ship it.
+
2023-02-10 Mark Wielaard <mark@klomp.org>
* varlocs.c (print_expr): Handle DW_OP_GNU_uninit.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index fd58bf84..7fb8efb1 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -61,7 +61,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
elfcopy addsections xlate_notes elfrdwrnop \
dwelf_elf_e_machine_string \
getphdrnum leb128 read_unaligned \
- msg_tst system-elf-libelf-test \
+ msg_tst system-elf-libelf-test system-elf-gelf-test \
nvidia_extended_linemap_libdw \
$(asm_TESTS)
@@ -118,7 +118,9 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-strip-test9.sh run-strip-test10.sh run-strip-test11.sh \
run-strip-test12.sh \
run-strip-nothing.sh run-strip-g.sh run-annobingroup.sh \
- run-strip-groups.sh run-strip-reloc.sh run-strip-strmerge.sh \
+ run-strip-groups.sh run-strip-strmerge.sh \
+ run-strip-reloc-ko.sh run-strip-reloc-self.sh \
+ run-strip-reloc-ppc64.sh \
run-strip-nobitsalign.sh run-strip-remove-keep.sh \
run-unstrip-test.sh run-unstrip-test2.sh run-unstrip-test3.sh \
run-unstrip-test4.sh run-unstrip-M.sh run-elfstrmerge-test.sh \
@@ -129,6 +131,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-find-prologues.sh run-allregs.sh run-addrcfi.sh \
run-dwarfcfi.sh run-nm-syms.sh \
run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \
+ run-srcfiles-self.sh \
run-readelf-compressed.sh \
run-readelf-const-values.sh \
run-varlocs-self.sh run-exprlocs-self.sh \
@@ -193,7 +196,9 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-reloc-bpf.sh \
run-next-cfi.sh run-next-cfi-self.sh \
run-reverse-sections.sh run-reverse-sections-self.sh \
- run-copyadd-sections.sh run-copymany-sections.sh \
+ run-copyadd-sections.sh \
+ run-copymany-be32.sh run-copymany-le32.sh \
+ run-copymany-be64.sh run-copymany-le64.sh \
run-typeiter-many.sh run-strip-test-many.sh \
run-strip-version.sh run-xlate-note.sh \
run-readelf-discr.sh \
@@ -203,7 +208,7 @@ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
run-pt_gnu_prop-tests.sh \
run-getphdrnum.sh run-test-includes.sh \
leb128 read_unaligned \
- msg_tst system-elf-libelf-test \
+ msg_tst system-elf-libelf-test system-elf-gelf-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 \
@@ -261,7 +266,8 @@ TESTS += run-debuginfod-dlopen.sh \
run-debuginfod-response-headers.sh \
run-debuginfod-extraction-passive.sh \
run-debuginfod-webapi-concurrency.sh \
- run-debuginfod-section.sh
+ run-debuginfod-section.sh \
+ run-debuginfod-IXr.sh
endif
if !OLD_LIBMICROHTTPD
# Will crash on too old libmicrohttpd
@@ -301,7 +307,9 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile-annobingroup-x86_64.o.bz2 \
run-strip-strmerge.sh run-strip-nobitsalign.sh \
testfile-nobitsalign.bz2 testfile-nobitsalign.strip.bz2 \
- run-strip-reloc.sh hello_i386.ko.bz2 hello_x86_64.ko.bz2 \
+ run-strip-reloc-ko.sh run-strip-reloc-self.sh \
+ run-strip-reloc-ppc64.sh strip-reloc-subr.sh \
+ hello_i386.ko.bz2 hello_x86_64.ko.bz2 \
hello_ppc64.ko.bz2 hello_s390.ko.bz2 hello_aarch64.ko.bz2 \
hello_m68k.ko.bz2 hello_riscv64.ko.bz2 hello_csky.ko.bz2 \
hello_arc_hs4.ko.bz2 \
@@ -316,7 +324,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-addrscopes.sh run-strings-test.sh run-funcscopes.sh \
run-nm-syms.sh testfilesyms32.bz2 testfilesyms64.bz2 \
run-nm-self.sh run-readelf-self.sh run-readelf-info-plus.sh \
- run-readelf-compressed.sh \
+ run-srcfiles-self.sh \
+ run-readelf-compressed.sh \
run-readelf-compressed-zstd.sh \
run-readelf-const-values.sh testfile-const-values.debug.bz2 \
run-addrcfi.sh run-dwarfcfi.sh \
@@ -410,7 +419,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-readelf-Dd.sh \
testfile-s390x-hash-both.bz2 \
run-readelf-gdb_index.sh testfilegdbindex5.bz2 \
- testfilegdbindex7.bz2 \
+ testfilegdbindex7.bz2 testfilegdbindex9.bz2 \
+ testfilegdbindex9-no-maininfo.bz2 \
run-readelf-s.sh testfilebazdbg.bz2 testfilebazdyn.bz2 \
testfilebazmin.bz2 testfilebazdbg.debug.bz2 testfilebazmdb.bz2 \
testfilebaztab.bz2 testfilebasmin.bz2 testfilebaxmin.bz2 \
@@ -538,7 +548,9 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile-riscv64.bz2 testfile-riscv64-s.bz2 \
testfile-riscv64-core.bz2 \
run-reverse-sections.sh run-reverse-sections-self.sh \
- run-copyadd-sections.sh run-copymany-sections.sh \
+ run-copyadd-sections.sh test-copymany-subr.sh \
+ run-copymany-be32.sh run-copymany-le32.sh \
+ run-copymany-be64.sh run-copymany-le64.sh \
run-large-elf-file.sh \
run-typeiter-many.sh run-strip-test-many.sh \
testfile-debug-rel-ppc64-g.o.bz2 \
@@ -578,6 +590,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-debuginfod-extraction-passive.sh \
run-debuginfod-webapi-concurrency.sh \
run-debuginfod-section.sh \
+ run-debuginfod-IXr.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 \
@@ -664,7 +677,7 @@ installcheck-local:
if BUILD_STATIC
libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
-libelf = ../libelf/libelf.a -lz
+libelf = ../libelf/libelf.a -lz $(zstd_LIBS)
libasm = ../libasm/libasm.a
else
libdw = ../libdw/libdw.so
@@ -795,14 +808,22 @@ leb128_LDADD = $(libelf) $(libdw)
read_unaligned_LDADD = $(libelf) $(libdw)
nvidia_extended_linemap_libdw_LDADD = $(libelf) $(libdw)
-# We want to test the libelf header against the system elf.h header.
+# We want to test the libelf headers against the system elf.h header.
# Don't include any -I CPPFLAGS. Except when we install our own elf.h.
+# For the gelf test we do want our own libelf.h, but nothing else.
+BUILT_SOURCES = libelf.h
+CLEANFILES += libelf.h
+libelf.h: $(top_srcdir)/libelf/libelf.h
+ cp $< $@
if !INSTALL_ELFH
system_elf_libelf_test_CPPFLAGS =
+system_elf_gelf_test_CPPFLAGS = -I.
else
system_elf_libelf_test_CPPFLAGS = -I$(top_srcdir)/libelf
+system_elf_gelf_test_CPPFLAGS = -I$(top_srcdir)/libelf
endif
system_elf_libelf_test_LDADD = $(libelf)
+system_elf_gelf_test_LDADD = $(libelf)
# A lock file used to make sure only one test dumps core at a time
CLEANFILES += core-dump-backtrace.lock
diff --git a/tests/addsections.c b/tests/addsections.c
index c1b0fa81..a4e42038 100644
--- a/tests/addsections.c
+++ b/tests/addsections.c
@@ -153,8 +153,8 @@ add_sections (const char *name, size_t nr, int use_mmap, size_t sec_size)
size_t bufsz;
if (sec_size == 0)
{
- buf = strdup ("extra");
- bufsz = strlen ("extra") + 1;
+ buf = "";
+ bufsz = 1;
}
else
{
@@ -293,7 +293,8 @@ add_sections (const char *name, size_t nr, int use_mmap, size_t sec_size)
exit (1);
}
- free (buf);
+ if (sec_size != 0)
+ free (buf);
free (new_shstrtab_buf);
}
diff --git a/tests/backtrace.c b/tests/backtrace.c
index afc12fb9..55555301 100644
--- a/tests/backtrace.c
+++ b/tests/backtrace.c
@@ -90,6 +90,14 @@ callback_verify (pid_t tid, unsigned frameno, Dwarf_Addr pc,
return;
}
Dwfl_Module *mod;
+ /* Skip frames for which there isn't a function name. */
+ static int nulls_seen = 0;
+ if (symname == NULL)
+ {
+ nulls_seen++;
+ return;
+ }
+ frameno -= nulls_seen;
/* See case 4. Special case to help out simple frame pointer unwinders. */
static bool duplicate_sigusr2 = false;
if (duplicate_sigusr2)
diff --git a/tests/dwarf-getmacros.c b/tests/dwarf-getmacros.c
index ac70248d..8381d42c 100644
--- a/tests/dwarf-getmacros.c
+++ b/tests/dwarf-getmacros.c
@@ -82,6 +82,8 @@ mac (Dwarf_Macro *macro, void *dbg)
case DW_MACINFO_define:
case DW_MACRO_define_strp:
+ case DW_MACRO_define_sup:
+ case DW_MACRO_define_strx:
{
const char *value;
dwarf_macro_param2 (macro, NULL, &value);
@@ -91,6 +93,8 @@ mac (Dwarf_Macro *macro, void *dbg)
case DW_MACINFO_undef:
case DW_MACRO_undef_strp:
+ case DW_MACRO_undef_sup:
+ case DW_MACRO_undef_strx:
break;
default:
@@ -117,26 +121,57 @@ include (Dwarf *dbg, Dwarf_Off macoff, ptrdiff_t token)
}
}
+static void
+getmacros (Dwarf *dbg, Dwarf_Die *die, bool new_style)
+{
+ for (ptrdiff_t off = new_style ? DWARF_GETMACROS_START : 0;
+ (off = dwarf_getmacros (die, mac, dbg, off)); )
+ if (off == -1)
+ {
+ puts (dwarf_errmsg (-1));
+ break;
+ }
+}
+
int
main (int argc, char *argv[])
{
assert (argc >= 3);
const char *name = argv[1];
- ptrdiff_t cuoff = strtol (argv[2], NULL, 0);
bool new_style = argc > 3;
int fd = open (name, O_RDONLY);
Dwarf *dbg = dwarf_begin (fd, DWARF_C_READ);
- Dwarf_Die cudie_mem, *cudie = dwarf_offdie (dbg, cuoff, &cudie_mem);
-
- for (ptrdiff_t off = new_style ? DWARF_GETMACROS_START : 0;
- (off = dwarf_getmacros (cudie, mac, dbg, off)); )
- if (off == -1)
- {
- puts (dwarf_errmsg (dwarf_errno ()));
- break;
- }
+ if (argv[2][0] == '\0')
+ {
+ Dwarf_CU *cu = NULL;
+ Dwarf_Die cudie, subdie;
+ uint8_t unit_type;
+ while (dwarf_get_units (dbg, cu, &cu, NULL,
+ &unit_type, &cudie, &subdie) == 0)
+ {
+ Dwarf_Die *die = (unit_type == DW_UT_skeleton
+ ? &subdie : &cudie);
+ if (! dwarf_hasattr (die, DW_AT_macro_info)
+ && ! dwarf_hasattr (die, DW_AT_GNU_macros)
+ && ! dwarf_hasattr (die, DW_AT_macros))
+ continue;
+ printf ("CU %s\n", dwarf_diename (die));
+ getmacros (dbg, die, new_style);
+ }
+ }
+ else
+ {
+ ptrdiff_t cuoff = strtol (argv[2], NULL, 0);
+ Dwarf_Die cudie_mem, *cudie = dwarf_offdie (dbg, cuoff, &cudie_mem);
+ if (cudie == NULL)
+ {
+ puts (dwarf_errmsg (-1));
+ return 1;
+ }
+ getmacros (dbg, cudie, new_style);
+ }
dwarf_end (dbg);
diff --git a/tests/run-copymany-be32.sh b/tests/run-copymany-be32.sh
new file mode 100755
index 00000000..dc32e7a9
--- /dev/null
+++ b/tests/run-copymany-be32.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+. $srcdir/test-copymany-subr.sh
+
+# 32bit, big endian, rel
+testfiles testfile29
+test_copy_and_add testfile29
+test_copy_and_add testfile29.copy
+
+# 32bit, big endian, non-rel
+testfiles testfile26
+test_copy_and_add testfile26
+test_copy_and_add testfile26.copy
+
+exit 0
diff --git a/tests/run-copymany-be64.sh b/tests/run-copymany-be64.sh
new file mode 100755
index 00000000..1f06e077
--- /dev/null
+++ b/tests/run-copymany-be64.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+. $srcdir/test-copymany-subr.sh
+
+# 64bit, big endian, rel
+testfiles testfile23
+test_copy_and_add testfile23
+test_copy_and_add testfile23.copy
+
+# 64bit, big endian, non-rel
+testfiles testfile27
+test_copy_and_add testfile27
+test_copy_and_add testfile27.copy
+
+exit 0
diff --git a/tests/run-copymany-le32.sh b/tests/run-copymany-le32.sh
new file mode 100755
index 00000000..d47a90ed
--- /dev/null
+++ b/tests/run-copymany-le32.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+. $srcdir/test-copymany-subr.sh
+
+# 32bit, little endian, rel
+testfiles testfile9
+test_copy_and_add testfile9
+test_copy_and_add testfile9.copy
+
+# 32bit, little endian, non-rel
+testfiles testfile
+test_copy_and_add testfile
+test_copy_and_add testfile.copy
+
+exit 0
diff --git a/tests/run-copymany-le64.sh b/tests/run-copymany-le64.sh
new file mode 100755
index 00000000..b563d9de
--- /dev/null
+++ b/tests/run-copymany-le64.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+. $srcdir/test-copymany-subr.sh
+
+# 64bit, little endian, rel
+testfiles testfile38
+test_copy_and_add testfile38
+test_copy_and_add testfile38.copy
+
+# 64bit, little endian, non-rel
+testfiles testfile10
+test_copy_and_add testfile10
+test_copy_and_add testfile10.copy
+
+exit 0
diff --git a/tests/run-debuginfod-IXr.sh b/tests/run-debuginfod-IXr.sh
new file mode 100755
index 00000000..631b7bbf
--- /dev/null
+++ b/tests/run-debuginfod-IXr.sh
@@ -0,0 +1,94 @@
+#!/usr/bin/env bash
+#
+# Copyright (C) 2019-2023 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
+
+mkdir R 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=10100
+get_ports
+
+DB=${PWD}/.debuginfod_tmp.sqlite
+tempfiles $DB
+export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
+
+cp -rvp ${abs_srcdir}/debuginfod-rpms R
+
+if [ "$zstd" = "false" ]; then # nuke the zstd fedora 31 ones
+ rm -vrf R/debuginfod-rpms/fedora31
+ rpms=0
+ tarxz=1
+ groomed=2
+else
+ rpms=6
+ tarxz=1
+ groomed=8
+fi
+
+cp -rvp ${abs_srcdir}/debuginfod-tars Z
+
+env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -X 'hello2' -I 'hello' -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v R Z > vlog$PORT1 2>&1 &
+PID1=$!
+tempfiles vlog$PORT1
+errfiles vlog$PORT1
+# Server must become ready
+wait_ready $PORT1 'ready' 1
+
+# Wait till both files are in the index and scan/index fully finished
+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
+
+# Confirm that the hello3 files are excluded
+
+wait_ready $PORT1 'scanned_files_total{source=".rpm archive"}' $rpms
+wait_ready $PORT1 'scanned_files_total{source=".tar.xz archive"}' $tarxz
+
+
+kill $PID1
+wait $PID1
+PID1=0
+
+# Start second debuginfod, with exclusion of everything
+
+echo 'RERUN WITH -r and -X everything' >> vlog$PORT1
+
+env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -r -X '.*' -F -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v R Z >> vlog$PORT1 2>&1 &
+PID1=$!
+tempfiles vlog$PORT1
+errfiles vlog$PORT1
+# Server must become ready
+wait_ready $PORT1 'ready' 1
+
+wait_ready $PORT1 'thread_work_total{role="groom"}' 1
+wait_ready $PORT1 'thread_work_pending{role="scan"}' 0
+wait_ready $PORT1 'thread_busy{role="scan"}' 0
+
+wait_ready $PORT1 'groomed_total{decision="stale"}' $groomed
+wait_ready $PORT1 'groom{statistic="files scanned (#)"}' 0
+
+kill $PID1
+wait $PID1
+PID1=0
+
+exit 0
diff --git a/tests/run-debuginfod-extraction.sh b/tests/run-debuginfod-extraction.sh
index 3ca31b8a..da6b25cf 100755
--- a/tests/run-debuginfod-extraction.sh
+++ b/tests/run-debuginfod-extraction.sh
@@ -32,7 +32,7 @@ DB=${PWD}/.debuginfod_tmp.sqlite
tempfiles $DB
export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache
-env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -F -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v R Z > vlog$PORT1 2>&1 &
+env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod $VERBOSE -d $DB -F -R -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 --scan-checkpoint=1 -t0 -g0 -v R Z > vlog$PORT1 2>&1 &
PID1=$!
tempfiles vlog$PORT1
errfiles vlog$PORT1
@@ -61,6 +61,9 @@ 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
+# Take a dump if possible
+type sqlite3 2>/dev/null && sqlite3 $DB '.d'
+
########################################################################
# All rpms need to be in the index, except the dummy permission-000 one
rpms=$(find R -name \*rpm | grep -v nothing | wc -l)
diff --git a/tests/run-debuginfod-federation-metrics.sh b/tests/run-debuginfod-federation-metrics.sh
index 3d716246..60fe69ca 100755
--- a/tests/run-debuginfod-federation-metrics.sh
+++ b/tests/run-debuginfod-federation-metrics.sh
@@ -191,7 +191,8 @@ curl -s http://127.0.0.1:$PORT2/metrics | grep 'dc_pool_op.*reuse'
# Use a file that hasn't been previously extracted in to make it
# likely that even this test debuginfod will experience concurrency
# and impose some "after-you" delays.
-(for i in `seq 100`; do
+maxreq=256
+(for i in `seq $maxreq`; do
curl -s http://127.0.0.1:$PORT1/buildid/87c08d12c78174f1082b7c888b3238219b0eb265/executable >/dev/null &
done;
wait)
diff --git a/tests/run-debuginfod-federation-sqlite.sh b/tests/run-debuginfod-federation-sqlite.sh
index d9321526..6b090074 100755
--- a/tests/run-debuginfod-federation-sqlite.sh
+++ b/tests/run-debuginfod-federation-sqlite.sh
@@ -157,7 +157,9 @@ testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
# Use a file that hasn't been previously extracted in to make it
# likely that even this test debuginfod will experience concurrency
# and impose some "after-you" delays.
-(for i in `seq 100`; do
+maxreq=$[$(nproc) * 4]
+maxreq=$(( $maxreq > 64 ? 64 : $maxreq ))
+(for i in `seq $maxreq`; do
curl -s http://127.0.0.1:$PORT1/buildid/87c08d12c78174f1082b7c888b3238219b0eb265/executable >/dev/null &
done;
wait)
diff --git a/tests/run-debuginfod-query-retry.sh b/tests/run-debuginfod-query-retry.sh
index 2f551ffb..d2cdfd65 100755
--- a/tests/run-debuginfod-query-retry.sh
+++ b/tests/run-debuginfod-query-retry.sh
@@ -26,7 +26,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 \
- ${abs_top_builddir}/debuginfod/libdebuginfod.so.1 || true) \
+ ${abs_top_builddir}/debuginfod/debuginfod-find || 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 8cb7b843..fbb6a484 100755
--- a/tests/run-debuginfod-response-headers.sh
+++ b/tests/run-debuginfod-response-headers.sh
@@ -78,8 +78,8 @@ tempfiles 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
+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\
@@ -88,9 +88,9 @@ tempfiles 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-FILE: .*/.*' vlog-find$PORT1.2
grep -i 'X-DEBUGINFOD-SIZE: ' vlog-find$PORT1.2
-grep -i 'X-DEBUGINFOD-ARCHIVE: ' 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
diff --git a/tests/run-lfs-symbols.sh b/tests/run-lfs-symbols.sh
index 762a5d96..88c6270a 100755
--- a/tests/run-lfs-symbols.sh
+++ b/tests/run-lfs-symbols.sh
@@ -42,13 +42,13 @@ LFS_FORMAT='BEGIN {
LFS=$(printf "$LFS_FORMAT" "${abs_srcdir}/lfs-symbols")
makeprint() {
- make print-$1 -C $2 |& awk -F= "/^$1=/{ print \$2 }"
+ make print-$1 -C $2 |& gawk -F= "/^$1=/{ print \$2 }"
}
testrun_lfs() {
echo "checking $1"
if [ -e "$1" ]; then
- bad=$(testrun ${abs_top_builddir}/src/nm -u "$1" | awk "$LFS")
+ bad=$(testrun ${abs_top_builddir}/src/nm -u "$1" | gawk "$LFS")
if [ -n "$bad" ]; then
echo "$1 contains non-lfs symbols:" $bad
exit_status=1
diff --git a/tests/run-native-test.sh b/tests/run-native-test.sh
index d19007f2..042a51c6 100755
--- a/tests/run-native-test.sh
+++ b/tests/run-native-test.sh
@@ -27,7 +27,8 @@
# in all builds.
tempfiles native.c native
-echo 'main () { while (1) pause (); }' > native.c
+printf '#include <unistd.h>\nint main (void) { while (1) pause (); }\n' \
+ > native.c
native=0
kill_native()
diff --git a/tests/run-readelf-gdb_index.sh b/tests/run-readelf-gdb_index.sh
index fcbc3c57..cd437f52 100755
--- a/tests/run-readelf-gdb_index.sh
+++ b/tests/run-readelf-gdb_index.sh
@@ -63,7 +63,7 @@
# (gdb) save gdb-index .
# objcopy --add-section .gdb_index=testfilegdbindex7.gdb-index --set-section-flags .gdb_index=readonly testfilegdbindex7 testfilegdbindex7
-testfiles testfilegdbindex5 testfilegdbindex7
+testfiles testfilegdbindex5 testfilegdbindex7 testfilegdbindex9 testfilegdbindex9-no-maininfo
testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=gdb_index testfilegdbindex5 <<\EOF
@@ -127,4 +127,97 @@ GDB section [33] '.gdb_index' at offset 0xe76 contains 8399 bytes :
[ 754] symbol: int, CUs: 0 (type:S)
EOF
+# testfilegdbindex9-no-maininfo is built the same way as testfilegdbindex7.
+testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=gdb_index testfilegdbindex9-no-maininfo <<\EOF
+
+GDB section [33] '.gdb_index' at offset 0x38e1 contains 8415 bytes :
+ Version: 9
+ CU offset: 0x1c
+ TU offset: 0x3c
+ address offset: 0x54
+ symbol offset: 0x7c
+ shortcut offset: 0x207c
+ constant offset: 0x2084
+
+ CU list at offset 0x1c contains 2 entries:
+ [ 0] start: 0x00004c, length: 220
+ [ 1] start: 0x000128, length: 214
+
+ TU list at offset 0x3c contains 1 entries:
+ [ 0] CU offset: 0, type offset: 30, signature: 0x87e03f92cc37cdf0
+
+ Address list at offset 0x54 contains 2 entries:
+ [ 0] 0x0000000000401106 <main>..0x000000000040113b <main+0x35>, CU index: 1
+ [ 1] 0x000000000040113c <hello>..0x0000000000401173 <say+0x1c>, CU index: 2
+
+ Symbol table at offset 0x54 contains 1024 slots:
+ [ 123] symbol: global, CUs: 1 (var:G), 0T (var:G)
+ [ 489] symbol: main, CUs: 1 (func:G)
+ [ 518] symbol: char, CUs: 0 (type:S)
+ [ 661] symbol: foo, CUs: 0 (type:S)
+ [ 741] symbol: hello, CUs: 1 (var:S), 0T (func:S)
+ [ 746] symbol: say, CUs: 0T (func:G)
+ [ 754] symbol: int, CUs: 1 (type:S)
+
+Shortcut table at offset 0x207c contains 2 slots:
+Language of main: ??? (0)
+Name of main: <unknown>
+EOF
+
+# testfilegdbindex9.f90
+#
+# program repro
+# type small_stride
+# character*40 long_string
+# integer small_pad
+# end type small_stride
+# type(small_stride), dimension (20), target :: unpleasant
+# character*40, pointer, dimension(:):: c40pt
+# integer i
+# do i = 0,19
+# unpleasant(i+1)%small_pad = i+1
+# unpleasant(i+1)%long_string = char (ichar('0') + i)
+# end do
+# c40pt => unpleasant%long_string
+# print *, c40pt
+#end program repro
+
+# gfortran -g -o testfilegdbindex9 testfilegdbindex9.f90
+# gdb-add-index testfilegdbindex9
+
+testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=gdb_index testfilegdbindex9 <<\EOF
+
+GDB section [35] '.gdb_index' at offset 0x37d9 contains 8395 bytes :
+ Version: 9
+ CU offset: 0x1c
+ TU offset: 0x2c
+ address offset: 0x2c
+ symbol offset: 0x40
+ shortcut offset: 0x2040
+ constant offset: 0x2048
+
+ CU list at offset 0x1c contains 1 entries:
+ [ 0] start: 00000000, length: 307
+
+ TU list at offset 0x2c contains 0 entries:
+
+ Address list at offset 0x2c contains 1 entries:
+ [ 0] 0x0000000000401166 <MAIN__>..0x00000000004013f0 <main+0x3a>, CU index: 0
+
+ Symbol table at offset 0x2c contains 1024 slots:
+ [ 61] symbol: small_stride, CUs: 0 (type:S)
+ [ 71] symbol: integer(kind=8), CUs: 0 (type:S)
+ [ 161] symbol: character(kind=1), CUs: 0 (type:S)
+ [ 397] symbol: unpleasant, CUs: 0 (var:S)
+ [ 489] symbol: main, CUs: 0 (func:G)
+ [ 827] symbol: integer(kind=4), CUs: 0 (type:S)
+ [ 858] symbol: c40pt, CUs: 0 (var:S)
+ [ 965] symbol: repro, CUs: 0 (func:S)
+ [1016] symbol: i, CUs: 0 (var:S)
+
+Shortcut table at offset 0x2040 contains 2 slots:
+Language of main: Fortran08
+Name of main: repro
+EOF
+
exit 0
diff --git a/tests/run-readelf-self.sh b/tests/run-readelf-self.sh
index f5984597..de528d5e 100755
--- a/tests/run-readelf-self.sh
+++ b/tests/run-readelf-self.sh
@@ -23,4 +23,4 @@ if test -n "$ELFUTILS_MEMORY_SANITIZER"; then
fi
# Just makes sure readelf doesn't crash
-testrun_on_self_quiet ${abs_top_builddir}/src/readelf -a -w
+testrun_on_self_quiet ${abs_top_builddir}/src/readelf -N -a -w
diff --git a/tests/run-srcfiles-self.sh b/tests/run-srcfiles-self.sh
new file mode 100755
index 00000000..0e64dd2b
--- /dev/null
+++ b/tests/run-srcfiles-self.sh
@@ -0,0 +1,48 @@
+#! /bin/sh
+# Copyright (C) 2023 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# Test different command line combinations on the srcfiles binary itself.
+ET_EXEC="${abs_top_builddir}/src/srcfiles"
+ET_PID=$$
+
+SRC_NAME="srcfiles.cxx"
+
+# Ensure the output contains the expected source file srcfiles.cxx
+testrun $ET_EXEC -e $ET_EXEC | grep $SRC_NAME > /dev/null
+
+for null_arg in --null ""; do
+ for verbose_arg in --verbose ""; do
+ testrun $ET_EXEC $null_arg $verbose_arg -p $ET_PID > /dev/null
+
+ # Ensure that the output contains srclines.cxx
+ cu_only=$(testrun $ET_EXEC $null_arg $verbose_arg -c -e $ET_EXEC)
+ default=$(testrun $ET_EXEC $null_arg $verbose_arg -e $ET_EXEC)
+ result1=$(echo "$cu_only" | grep "$SRC_NAME")
+ result2=$(echo "$default" | grep "$SRC_NAME")
+
+ if [ -z "$result1" ] || [ -z "$result2" ]; then
+ exit 1
+ fi
+
+ # Ensure that the output with the cu-only option contains less source files
+ if [ $(echo "$cu_only" | wc -m) -gt $(echo "$default" | wc -m) ]; then
+ exit 1
+ fi
+ done
+done
diff --git a/tests/run-strip-reloc-ko.sh b/tests/run-strip-reloc-ko.sh
new file mode 100755
index 00000000..55fa74db
--- /dev/null
+++ b/tests/run-strip-reloc-ko.sh
@@ -0,0 +1,51 @@
+#! /bin/sh
+
+. $srcdir/strip-reloc-subr.sh
+
+testfiles hello_i386.ko hello_x86_64.ko hello_ppc64.ko hello_s390.ko \
+ hello_aarch64.ko hello_m68k.ko hello_riscv64.ko hello_csky.ko \
+ hello_arc_hs4.ko
+
+# Most simple hello world kernel module for various architectures.
+# Make sure that it contains debuginfo with CONFIG_DEBUG_INFO=y.
+# ::::::::::::::
+# Makefile
+# ::::::::::::::
+# obj-m := hello.o
+# hello-y := init.o exit.o
+#
+# all:
+# make -C /lib/modules/$(shell uname -r)/build M=$(PWD) \
+# CONFIG_DEBUG_INFO=y modules
+# ::::::::::::::
+# init.c
+# ::::::::::::::
+# #include <linux/kernel.h>
+# #include <linux/module.h>
+#
+# int init_module(void)
+# {
+# printk(KERN_INFO "Hello, world!\n");
+# return 0;
+# }
+# ::::::::::::::
+# exit.c
+# ::::::::::::::
+# #include <linux/kernel.h>
+# #include <linux/module.h>
+#
+# void cleanup_module()
+# {
+# printk(KERN_INFO "Goodbye, World!\n");
+# }
+runtest hello_i386.ko 1
+runtest hello_x86_64.ko 1
+runtest hello_ppc64.ko 1
+runtest hello_s390.ko 1
+runtest hello_aarch64.ko 1
+runtest hello_m68k.ko 1
+runtest hello_riscv64.ko 1
+runtest hello_csky.ko 1
+runtest hello_arc_hs4.ko 1
+
+exit $runtest_status
diff --git a/tests/run-strip-reloc-ppc64.sh b/tests/run-strip-reloc-ppc64.sh
new file mode 100755
index 00000000..239c34d9
--- /dev/null
+++ b/tests/run-strip-reloc-ppc64.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+. $srcdir/strip-reloc-subr.sh
+
+# See run-readelf-zdebug-rel.sh
+testfiles testfile-debug-rel-ppc64.o
+runtest testfile-debug-rel-ppc64.o 1
+
+testfiles testfile-debug-rel-ppc64-z.o
+runtest testfile-debug-rel-ppc64-z.o 1
+
+testfiles testfile-debug-rel-ppc64-g.o
+runtest testfile-debug-rel-ppc64-g.o 1
+
+exit $runtest_status
diff --git a/tests/run-strip-reloc-self.sh b/tests/run-strip-reloc-self.sh
new file mode 100755
index 00000000..68ed4cc2
--- /dev/null
+++ b/tests/run-strip-reloc-self.sh
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+. $srcdir/strip-reloc-subr.sh
+
+# self test, shouldn't impact non-ET_REL files at all.
+runtest ${abs_top_builddir}/src/strip 0
+runtest ${abs_top_builddir}/src/strip.o 1
+
+# Copy ET_REL file for self-test and make sure to run with/without
+# elf section compression.
+tempfiles strip-uncompressed.o strip-compressed.o
+testrun ${abs_top_builddir}/src/elfcompress -o strip-uncompressed.o -t none \
+ ${abs_top_builddir}/src/strip.o
+testrun ${abs_top_builddir}/src/elfcompress -o strip-compressed.o -t zlib \
+ --force ${abs_top_builddir}/src/strip.o
+
+runtest strip-uncompressed.o 1
+runtest strip-compressed.o 1
+
+exit $runtest_status
diff --git a/tests/run-strip-reloc.sh b/tests/run-strip-reloc.sh
deleted file mode 100755
index 02e626af..00000000
--- a/tests/run-strip-reloc.sh
+++ /dev/null
@@ -1,156 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2011, 2013 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
-
-if test -n "$ELFUTILS_MEMORY_SANITIZER"; then
- echo "binaries linked with memory sanitizer are too big"
- exit 77
-fi
-
-testfiles hello_i386.ko hello_x86_64.ko hello_ppc64.ko hello_s390.ko \
- hello_aarch64.ko hello_m68k.ko hello_riscv64.ko hello_csky.ko \
- hello_arc_hs4.ko
-
-tempfiles readelf.out readelf.out1 readelf.out2
-tempfiles out.stripped1 out.debug1 out.stripped2 out.debug2
-
-status=0
-runtest() {
- infile=$1
- is_ET_REL=$2
- outfile1=out.stripped1
- debugfile1=out.debug1
- outfile2=out.stripped2
- debugfile2=out.debug2
-
- echo "runtest $infile"
-
- rm -f $outfile1 $debugfile1 $outfile2 $debugfile2
-
- testrun ${abs_top_builddir}/src/strip -o $outfile1 -f $debugfile1 $infile ||
- { echo "*** failure strip $infile"; status=1; }
-
- testrun ${abs_top_builddir}/src/strip --reloc-debug-sections -o $outfile2 \
- -f $debugfile2 $infile ||
- { echo "*** failure strip --reloc-debug-sections $infile"; status=1; }
-
- # shouldn't make any difference for stripped files.
- testrun ${abs_top_builddir}/src/readelf -a $outfile1 > readelf.out ||
- { echo "*** failure readelf -a outfile1 $infile"; status=1; }
-
- testrun_compare ${abs_top_builddir}/src/readelf -a $outfile2 < readelf.out ||
- { echo "*** failure compare stripped files $infile"; status=1; }
-
- # debug files however should be smaller, when ET_REL.
- SIZE1=$(stat -c%s $debugfile1)
- SIZE2=$(stat -c%s $debugfile2)
- test \( \( $is_ET_REL -eq 1 \) -a \( $SIZE1 -gt $SIZE2 \) \) \
- -o \( \( $is_ET_REL -eq 0 \) -a \( $SIZE1 -eq $SIZE2 \) \) ||
- { echo "*** failure --reloc-debug-sections not smaller $infile"; status=1; }
-
- # Strip of DWARF section lines, offset will not match.
- # Everything else should match.
- testrun ${abs_top_builddir}/src/readelf -w $debugfile1 \
- | grep -v ^DWARF\ section > readelf.out1 ||
- { echo "*** failure readelf -w debugfile1 $infile"; status=1; }
-
- testrun ${abs_top_builddir}/src/readelf -w $debugfile2 \
- | grep -v ^DWARF\ section > readelf.out2 ||
- { echo "*** failure readelf -w debugfile2 $infile"; status=1; }
-
- testrun_compare cat readelf.out1 < readelf.out2 ||
- { echo "*** failure readelf -w compare $infile"; status=1; }
-
- testrun ${abs_top_builddir}/src/strip --reloc-debug-sections-only \
- $debugfile1 ||
- { echo "*** failure strip --reloc-debug-sections-only $debugfile1"; \
- status=1; }
-
- cmp $debugfile1 $debugfile2 ||
- { echo "*** failure --reloc-debug-sections[-only] $debugfile1 $debugfile2"; \
- status=1; }
-}
-
-# Most simple hello world kernel module for various architectures.
-# Make sure that it contains debuginfo with CONFIG_DEBUG_INFO=y.
-# ::::::::::::::
-# Makefile
-# ::::::::::::::
-# obj-m := hello.o
-# hello-y := init.o exit.o
-#
-# all:
-# make -C /lib/modules/$(shell uname -r)/build M=$(PWD) \
-# CONFIG_DEBUG_INFO=y modules
-# ::::::::::::::
-# init.c
-# ::::::::::::::
-# #include <linux/kernel.h>
-# #include <linux/module.h>
-#
-# int init_module(void)
-# {
-# printk(KERN_INFO "Hello, world!\n");
-# return 0;
-# }
-# ::::::::::::::
-# exit.c
-# ::::::::::::::
-# #include <linux/kernel.h>
-# #include <linux/module.h>
-#
-# void cleanup_module()
-# {
-# printk(KERN_INFO "Goodbye, World!\n");
-# }
-runtest hello_i386.ko 1
-runtest hello_x86_64.ko 1
-runtest hello_ppc64.ko 1
-runtest hello_s390.ko 1
-runtest hello_aarch64.ko 1
-runtest hello_m68k.ko 1
-runtest hello_riscv64.ko 1
-runtest hello_csky.ko 1
-runtest hello_arc_hs4.ko 1
-
-# self test, shouldn't impact non-ET_REL files at all.
-runtest ${abs_top_builddir}/src/strip 0
-runtest ${abs_top_builddir}/src/strip.o 1
-
-# Copy ET_REL file for self-test and make sure to run with/without
-# elf section compression.
-tempfiles strip-uncompressed.o strip-compressed.o
-testrun ${abs_top_builddir}/src/elfcompress -o strip-uncompressed.o -t none \
- ${abs_top_builddir}/src/strip.o
-testrun ${abs_top_builddir}/src/elfcompress -o strip-compressed.o -t zlib \
- --force ${abs_top_builddir}/src/strip.o
-
-runtest strip-uncompressed.o 1
-runtest strip-compressed.o 1
-
-# See run-readelf-zdebug-rel.sh
-testfiles testfile-debug-rel-ppc64.o
-runtest testfile-debug-rel-ppc64.o 1
-
-testfiles testfile-debug-rel-ppc64-z.o
-runtest testfile-debug-rel-ppc64-z.o 1
-
-testfiles testfile-debug-rel-ppc64-g.o
-runtest testfile-debug-rel-ppc64-g.o 1
-
-exit $status
diff --git a/tests/run-varlocs.sh b/tests/run-varlocs.sh
index b2621776..cbbcf6c7 100755
--- a/tests/run-varlocs.sh
+++ b/tests/run-varlocs.sh
@@ -206,7 +206,7 @@ testfiles testfilesplitranges5.debug
testfiles testfile-ranges-hello5.dwo testfile-ranges-world5.dwo
testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfilesplitranges5.debug <<\EOF
module 'testfilesplitranges5.debug'
-[14] CU 'hello.c'
+[14] CU 'hello.c'@0
[1d] function 'no_say'@401160
frame_base: {call_frame_cfa {...}}
[33] parameter 'prefix'
@@ -236,7 +236,7 @@ module 'testfilesplitranges5.debug'
[111] parameter 'count'
[401150,401160) {reg4}
module 'testfilesplitranges5.debug'
-[14] CU 'world.c'
+[14] CU 'world.c'@401180
[1d] function 'no_main'@4011d0
frame_base: {call_frame_cfa {...}}
[35] parameter 'argc'
@@ -282,7 +282,7 @@ testfiles testfilesplitranges4.debug
testfiles testfile-ranges-hello.dwo testfile-ranges-world.dwo
testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfilesplitranges4.debug <<\EOF
module 'testfilesplitranges4.debug'
-[b] CU 'hello.c'
+[b] CU 'hello.c'@0
[18] function 'no_say'@4004f0
frame_base: {call_frame_cfa {...}}
[2f] parameter 'prefix'
@@ -310,7 +310,7 @@ module 'testfilesplitranges4.debug'
[102] parameter 'count'
[4004e0,4004f0) {reg4}
module 'testfilesplitranges4.debug'
-[b] CU 'world.c'
+[b] CU 'world.c'@400500
[18] function 'no_main'@400550
frame_base: {call_frame_cfa {...}}
[2f] parameter 'argc'
@@ -373,7 +373,7 @@ EOF
testfiles testfile-addrx_constx-5 addrx_constx-5.dwo
testrun_compare ${abs_top_builddir}/tests/varlocs --exprlocs -e testfile-addrx_constx-5 <<\EOF
module 'testfile-addrx_constx-5'
-[14] CU 'addrx_constx.c'
+[14] CU 'addrx_constx.c'@0
producer (strx)
language (data1)
name (strx)
@@ -467,7 +467,7 @@ EOF
testfiles testfile-addrx_constx-4 addrx_constx-4.dwo
testrun_compare ${abs_top_builddir}/tests/varlocs --exprlocs -e testfile-addrx_constx-4 <<\EOF
module 'testfile-addrx_constx-4'
-[b] CU 'addrx_constx.c'
+[b] CU 'addrx_constx.c'@0
producer (GNU_str_index)
language (data1)
name (GNU_str_index)
@@ -565,7 +565,7 @@ testfiles splitdwarf4-not-split4.dwo
testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfile-splitdwarf4-not-split4.debug <<\EOF
module 'testfile-splitdwarf4-not-split4.debug'
-[b] CU 'splitdwarf4-not-split4.c'
+[b] CU 'splitdwarf4-not-split4.c'@0
[18] function 'main'@401050
frame_base: {call_frame_cfa {...}}
[30] parameter 'argc'
diff --git a/tests/strip-reloc-subr.sh b/tests/strip-reloc-subr.sh
new file mode 100755
index 00000000..c4d55ced
--- /dev/null
+++ b/tests/strip-reloc-subr.sh
@@ -0,0 +1,79 @@
+#! /bin/sh
+# Copyright (C) 2011, 2013 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
+
+if test -n "$ELFUTILS_MEMORY_SANITIZER"; then
+ echo "binaries linked with memory sanitizer are too big"
+ exit 77
+fi
+
+tempfiles readelf.out1 readelf.out2
+tempfiles out.stripped1 out.debug1 out.stripped2 out.debug2
+
+runtest_status=0
+runtest() {
+ infile=$1
+ is_ET_REL=$2
+ outfile1=out.stripped1
+ debugfile1=out.debug1
+ outfile2=out.stripped2
+ debugfile2=out.debug2
+
+ echo "runtest $infile"
+
+ rm -f $outfile1 $debugfile1 $outfile2 $debugfile2
+
+ testrun ${abs_top_builddir}/src/strip -o $outfile1 -f $debugfile1 $infile ||
+ { echo "*** failure strip $infile"; runtest_status=1; }
+
+ testrun ${abs_top_builddir}/src/strip --reloc-debug-sections -o $outfile2 \
+ -f $debugfile2 $infile ||
+ { echo "*** failure strip --reloc-debug-sections $infile"; runtest_status=1; }
+
+ testrun ${abs_top_builddir}/src/elfcmp $outfile1 $outfile2 ||
+ { echo "*** failure compare stripped files $infile"; runtest_status=1; }
+
+ # debug files however should be smaller, when ET_REL.
+ SIZE1=$(stat -c%s $debugfile1)
+ SIZE2=$(stat -c%s $debugfile2)
+ test \( \( $is_ET_REL -eq 1 \) -a \( $SIZE1 -gt $SIZE2 \) \) \
+ -o \( \( $is_ET_REL -eq 0 \) -a \( $SIZE1 -eq $SIZE2 \) \) ||
+ { echo "*** failure --reloc-debug-sections not smaller $infile"; runtest_status=1; }
+
+ # Strip of DWARF section lines, offset will not match.
+ # Everything else should match.
+ testrun ${abs_top_builddir}/src/readelf -N -w $debugfile1 \
+ | grep -v ^DWARF\ section > readelf.out1 ||
+ { echo "*** failure readelf -N -w debugfile1 $infile"; runtest_status=1; }
+
+ testrun ${abs_top_builddir}/src/readelf -N -w $debugfile2 \
+ | grep -v ^DWARF\ section > readelf.out2 ||
+ { echo "*** failure readelf -N -w debugfile2 $infile"; runtest_status=1; }
+
+ testrun_compare cat readelf.out1 < readelf.out2 ||
+ { echo "*** failure readelf -N -w compare $infile"; runtest_status=1; }
+
+ testrun ${abs_top_builddir}/src/strip --reloc-debug-sections-only \
+ $debugfile1 ||
+ { echo "*** failure strip --reloc-debug-sections-only $debugfile1"; \
+ runtest_status=1; }
+
+ cmp $debugfile1 $debugfile2 ||
+ { echo "*** failure --reloc-debug-sections[-only] $debugfile1 $debugfile2"; \
+ runtest_status=1; }
+}
diff --git a/tests/system-elf-gelf-test.c b/tests/system-elf-gelf-test.c
new file mode 100644
index 00000000..5a0e4e76
--- /dev/null
+++ b/tests/system-elf-gelf-test.c
@@ -0,0 +1,36 @@
+/* Explicit test compiling with system elf.h header plus libelf/gelf headers.
+
+ Copyright (C) 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/>. */
+
+#include <elf.h>
+#include <stddef.h>
+#include "../libelf/libelf.h"
+#include "../libelf/gelf.h"
+
+int
+main (void)
+{
+ /* Trivial test, this is really a compile test anyway. */
+ if (elf_version (EV_CURRENT) == EV_NONE)
+ return -1;
+
+ /* This will obviously fail. It is just to check that gelf_getclass
+ available (both at compile time and runtime). */
+ int cls = gelf_getclass (NULL);
+
+ return cls == ELFCLASSNONE ? 0 : -1;
+}
diff --git a/tests/run-copymany-sections.sh b/tests/test-copymany-subr.sh
index 84c052c9..054103b4 100755
--- a/tests/run-copymany-sections.sh
+++ b/tests/test-copymany-subr.sh
@@ -35,12 +35,13 @@ test_copy_and_add ()
testrun ${abs_top_builddir}/src/elfcmp ${in_file} ${out_file}
# Can we add a section (in-place)?
- testrun ${abs_builddir}/addsections 65535 ${out_file}
+ testrun ${abs_builddir}/addsections 32768 ${out_file}
testrun ${abs_top_builddir}/src/readelf -S ${out_file} > readelf.out
nr=$(grep '.extra' readelf.out | wc -l)
# We try twice...
- if test ${nr} != 65535 -a ${nr} != 131070; then
+ if test ${nr} != 32768 -a ${nr} != 65536; then
# Show what went wrong
+ echo nr: ${nr}
testrun ${abs_top_builddir}/src/readelf -S ${out_file}
exit 1
fi
@@ -54,46 +55,8 @@ test_copy_and_add ()
# A collection of random testfiles to test 32/64bit, little/big endian
# and non-ET_REL (with phdrs)/ET_REL (without phdrs).
-# Try to add 0xffff sections twice.
+# Try to add 0x0fff sections twice.
-# 32bit, big endian, rel
-testfiles testfile29
-test_copy_and_add testfile29
-test_copy_and_add testfile29.copy
-
-# 64bit, big endian, rel
-testfiles testfile23
-test_copy_and_add testfile23
-test_copy_and_add testfile23.copy
-
-# 32bit, little endian, rel
-testfiles testfile9
-test_copy_and_add testfile9
-test_copy_and_add testfile9.copy
-
-# 64bit, little endian, rel
-testfiles testfile38
-test_copy_and_add testfile38
-test_copy_and_add testfile38.copy
-
-# 32bit, big endian, non-rel
-testfiles testfile26
-test_copy_and_add testfile26
-test_copy_and_add testfile26.copy
-
-# 64bit, big endian, non-rel
-testfiles testfile27
-test_copy_and_add testfile27
-test_copy_and_add testfile27.copy
-
-# 32bit, little endian, non-rel
-testfiles testfile
-test_copy_and_add testfile
-test_copy_and_add testfile.copy
-
-# 64bit, little endian, non-rel
-testfiles testfile10
-test_copy_and_add testfile10
-test_copy_and_add testfile10.copy
-
-exit 0
+# Separated out into subtests
+# run-copymany-be32.sh run-copymany-be64.sh
+# run-copymany-le32.sh run-copymany-le64.sh
diff --git a/tests/testfilegdbindex9-no-maininfo.bz2 b/tests/testfilegdbindex9-no-maininfo.bz2
new file mode 100755
index 00000000..043b8d38
--- /dev/null
+++ b/tests/testfilegdbindex9-no-maininfo.bz2
Binary files differ
diff --git a/tests/testfilegdbindex9.bz2 b/tests/testfilegdbindex9.bz2
new file mode 100755
index 00000000..9a2c1893
--- /dev/null
+++ b/tests/testfilegdbindex9.bz2
Binary files differ
diff --git a/version.h b/version.h
index 5d86cd9f..f3e0b00b 100644
--- a/version.h
+++ b/version.h
@@ -30,7 +30,7 @@
#ifndef _ELFUTILS_VERSION_H
#define _ELFUTILS_VERSION_H 1
-#define _ELFUTILS_VERSION 189
+#define _ELFUTILS_VERSION 190
#define _ELFUTILS_PREREQ(major, minor) \
(_ELFUTILS_VERSION >= ((major) * 1000 + (minor)))