diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-02-03 00:29:17 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-02-03 00:29:17 +0000 |
commit | 8369edbe3d0be0aa4e0482e3edda864cc5948b8d (patch) | |
tree | f4be7ac00fdd3323a582b24249825b0e2d17d27c | |
parent | 20922e1fc8fd0c08932eea8e2bf5c498be160447 (diff) | |
parent | bc2a56f3bceeb9530c5da4f26ecfd848bf0a36a8 (diff) | |
download | elfutils-simpleperf-release.tar.gz |
Merge "Snap for 11400057 from 54d5b039021ff3c15a519ca95e5ef51b79e88a21 to simpleperf-release" into simpleperf-releasesimpleperf-release
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 @@ -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. + @@ -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. @@ -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 @@ -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) @@ -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, ¶m) != 0) return -1; - if (param.form == DW_FORM_string - || param.form == DW_FORM_strp) + switch (param.form) { - *strp = dwarf_formstring (¶m); - 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 (¶m); + return 0; + default: + return dwarf_formudata (¶m, paramp); } - else - return dwarf_formudata (¶m, 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 + @@ -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 "" @@ -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" @@ -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" @@ -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" @@ -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 Binary files differnew file mode 100755 index 00000000..043b8d38 --- /dev/null +++ b/tests/testfilegdbindex9-no-maininfo.bz2 diff --git a/tests/testfilegdbindex9.bz2 b/tests/testfilegdbindex9.bz2 Binary files differnew file mode 100755 index 00000000..9a2c1893 --- /dev/null +++ b/tests/testfilegdbindex9.bz2 @@ -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))) |