Merge tag 'elfutils-0.190' into main
elfutils 0.190 release
* tag 'elfutils-0.190':
Prepare for 0.190
The default branch is now 'main'
libelf/elf_newscn.c: fix build failure against gcc-14 (-Walloc-size)
tests: Optionally dump all units in dwarf-getmacros
tests: Handle DW_MACRO_{define,undef}_{strx,sup} in dwarf-getmacros
readelf: Support .gdb_index version 9
libdw, libdwfl: Save original path of ELF file
debuginfod-client.c: Don't print empty line in header_callback
dwfl_offline_section_address: replace asserts with early return
libdw: Recognize .debug_[ct]u_index sections in dwarf_elf_begin
libdw: ignore really large discriminator
CONTRIBUTING: Update ChangeLog policy, mention patchwork and try bots
PR 30000: debuginfod-find should have a source-list verb
CONTRIBUTING: Switch from real name policy to know identity policy
libelf: Make elf32_getchdr and elf64_getchdr thread-safe
libelf: Fix elf_end deadlock
libelf: Make elf_version thread-safe
lib: Add new once_define and once macros to eu-config.h
libelf: Sync elf.h from glibc
PR30962: debuginfod: full paths for X-DEBUGINFOD-FILE/ARCHIVE response headers
libdw: Skip zero entries in aranges
strip: Clean up a bit more after errors
libdw: Handle split DWARF in dwarf_macro_getsrcfiles
libdw: Fix dwarf_macro_getsrcfiles for DWARF 5
libdw: Handle other string forms in dwarf_macro_param2
libdw: Handle DW_AT_ranges in split DWARF 5 skeleton in dwarf_ranges
libdw: Handle split DWARF in dwarf_entrypc
libdw: Make try_split_file static
PR30879: intermittent debuginfod crash with unhandled exception
libelf: tdelete dummy key if anything goes wrong setting up rawchunk
libelf: fix typos in comment
tests: Fix system_elf_gelf_test build without system libelf.h
PR30809: improve debuginfod client progress-callback parameters
backends: Update list of LoongArch relocations
libelf: Sync elf.h from Glibc
libelf, readelf, elflint: Add RELR support
libelf: Remove elf_scncnt from libelf.map
libelf: Free and clear rawdata_base and zdata_base consistently
tests: run-lfs-symbols.sh needs gawk
SECURITY: new file
libelf: Replace list of elf_getdata_rawchunk results with a tree
backends: Update list of RISC-V relocations
libelf: Sync elf.h from glibc
debuginfod: Fix formatting in debuginfod_config_cache
tests: Use -N for run-readelf-self.sh.
tests: Split up run-strip-reloc.sh test in three subtests
tests: Really split run-copymany-sections.sh into separate tests
tests: Split run-copymany-sections.sh into separate tests
tests: Use readelf -N -w in run-strip-reloc.sh
tests: Add a bit less and slightly smaller sections for addsections
debuginfod: PR29696: enlarge run-debuginfod-federation-metrics.sh workload again
debuginfod: PR29696: Removed secondary fd close in cache config causing a race condition
report_r_debug: handle `-z separate-code' and find more modules
PR30316: debuginfod wal checkpointing
debuginfod: PR30378: better compression for _files table
backends: Add set_initial_registers_tid callback for LoongArch
backends: Add core_note callback for LoongArch
backends: Add frame pointer unwinding for LoongArch
backends: Add initial return value location support for LoongArch
backends: Add abi_cfi and register_info callbacks for LoongArch
elfcompress: Don't compress if section already compressed unless forced
libdwfl: Fix memory leak in unzip()
PR30377: fix debuginfod -r -X combination
testsuite: Avoid C99 compatibility issues in run-native-test.sh
readelf: display dynamic symtab without section headers
tests: Limit the number of concurrent requests in debuginfod-federation
readelf: Handle NULL shdr in section_name
backends: Check results for NULL early in dwarf_peeled_die_type
PR30348: debuginfod: retry partial archive scans
backends: add checks for _GLOBAL_OFFSET_TABLE_ on loongarch
backends: Add new relocation type handling for LoongArch
libelf: Sync elf.h from glibc.
debuginfod: When retrieving files from cache, update atime manually
debuginfod: Don't touch access time of new files
debuginfod-client.c: Avoid sscanf on mixed-case component of string
nuke a top-level ChangeLog blurb that duplicated the debuginfod/ChangeLog
debuginfod: Replace futimes with futimens
debuginfod-client.c: Fix download size not correctly fallbacks to x-debuginfod-size header
LoongArch: implemented a basic machine flag check
debuginfod-client.c: Skip empty file creation for cancelled queries
tests: skip '(null)' symname frames in backtrace tests
configure.ac contains Bashisms
Fix static build when zstd is enabled for libelf
Change-Id: Ic46cacc727d5f6f26023419995cc5b4fb9102001
Signed-off-by: Matthias Maennich <maennich@google.com>
diff --git a/CONTRIBUTING b/CONTRIBUTING
index bb48975..5614728 100644
--- a/CONTRIBUTING
+++ b/CONTRIBUTING
@@ -45,13 +45,28 @@
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 @@
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 @@
committers may also create git branches starting with <nickname>/...
patches on these branches are works in progress, so might not be perfect
yet, but should follow the above guidelines as much as possible and should
-be aimed at integration into master. For merging a branch into master
+be aimed at integration into main. For merging a branch into main
the same process as above should be followed by posting the patches
to the list first.
+Note that a branch starting with <nickname>/try... will be picked up
+by the Sourceware buildbot and can be used to test your patches before
+merging into the main branch:
+https://builder.sourceware.org/buildbot/#/builders?tags=elfutils-try
+
committers/maintainers who repeatedly ignore the above guidelines,
are hostile or offensive towards other committers or contributors,
and don't correct their behavior after being asked by other committers
diff --git a/ChangeLog b/ChangeLog
index 10c2300..6aed95b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2023-03-27 Di Chen <dichen@redhat.com>
+
+ * NEWS: Support readelf -Ds for using dynamic segment to
+ print symbol table.
+
2023-03-03 Mark Wielaard <mark@klomp.org>
* NEWS: Add ELFCOMPRESS_ZSTD support for libelf and elfcompress.
diff --git a/METADATA b/METADATA
index 61a4ee4..7fd2f2d 100644
--- a/METADATA
+++ b/METADATA
@@ -12,12 +12,12 @@
type: GIT
value: "git://sourceware.org/git/elfutils.git"
}
- version: "elfutils-0.189"
+ version: "elfutils-0.190"
license_type: BY_EXCEPTION_ONLY
license_note: "Would be RESTRICTED save for doc/COPYING-GFDL"
last_upgrade_date {
- year: 2023
- month: 11
- day: 2
+ year: 2024
+ month: 01
+ day: 24
}
}
diff --git a/Makefile.am b/Makefile.am
index e92e05c..41badfd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,7 +29,7 @@
SUBDIRS = config lib libelf libcpu backends libebl libdwelf libdwfl libdw \
libasm debuginfod src po doc tests
-EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
+EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING SECURITY \
COPYING COPYING-GPLV2 COPYING-LGPLV3
# Make sure the test install uses lib64 when $LIB will yield lib64.
diff --git a/NEWS b/NEWS
index 16e37ec..0420d3b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,28 @@
+Version 0.190 "Woke!"
+
+CONTRIBUTING: Switch from real name policy to known identity policy.
+ Updated ChangeLog policy (no more separate ChangeLog files).
+ There is a SECURITY bug policy now.
+ The default branch is now 'main'.
+
+libelf: Add RELR support.
+
+libdw: Recognize .debug_[ct]u_index sections
+
+readelf: Support readelf -Ds, --use-dynamic --symbol.
+ Support .gdb_index version 9
+
+scrlines: New tool that compiles a list of source files associated
+ with a specified dwarf/elf file.
+
+debuginfod: Schema change (reindexing required, sorry!) for a 60%
+ compression in filename representation, which was a large
+ part of the sqlite index; also, more deliberate sqlite
+ -wal management during scanning using the
+ --scan-checkpoint option.
+
+backends: Various LoongArch updates.
+
Version 0.189 "Don't deflate!"
configure: eu-nm, eu-addr2line and eu-stack can provide demangled symbols
diff --git a/README b/README
index 06a9fcd..690febd 100644
--- a/README
+++ b/README
@@ -29,3 +29,5 @@
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 0000000..677802c
--- /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 81f0831..ddb4e0a 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 f373e5f..bbb2aac 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -96,7 +96,9 @@
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 3b2cc3e..d138f5f 100644
--- a/backends/libebl_CPU.h
+++ b/backends/libebl_CPU.h
@@ -66,15 +66,15 @@
/* The function has no return value, like a `void' function in C. */
return 0;
+ if (result == NULL)
+ return -1;
+
if (dwarf_formref_die (attr, result) == NULL)
return -1;
if (dwarf_peel_type (result, result) != 0)
return -1;
- if (result == NULL)
- return -1;
-
int tag = dwarf_tag (result);
if (tag == DW_TAG_unspecified_type)
return 0; /* Treat an unspecified type as if there was no type. */
diff --git a/backends/loongarch_cfi.c b/backends/loongarch_cfi.c
new file mode 100644
index 0000000..5f3cd2c
--- /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 0000000..b549edc
--- /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 a8ed9e8..2f0d46c 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_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 0000000..74cb62f
--- /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 0000000..4a4b205
--- /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 dd4a6b6..a39eefd 100644
--- a/backends/loongarch_reloc.def
+++ b/backends/loongarch_reloc.def
@@ -79,3 +79,52 @@
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 0000000..23b33ed
--- /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 8ba66a0..5ce55ba 100644
--- a/backends/loongarch_symbol.c
+++ b/backends/loongarch_symbol.c
@@ -72,3 +72,45 @@
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 0000000..fb74808
--- /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 2bd3513..f52f648 100644
--- a/backends/riscv_reloc.def
+++ b/backends/riscv_reloc.def
@@ -81,3 +81,7 @@
RELOC_TYPE (SET16, REL)
RELOC_TYPE (SET32, REL)
RELOC_TYPE (32_PCREL, REL)
+RELOC_TYPE (IRELATIVE, EXEC|DYN)
+RELOC_TYPE (PLT32, REL)
+RELOC_TYPE (SET_ULEB128, REL)
+RELOC_TYPE (SUB_ULEB128, REL)
diff --git a/config.h b/config.h
index fb46250..364ce05 100644
--- a/config.h
+++ b/config.h
@@ -67,6 +67,9 @@
/* Define to 1 if you have the <err.h> header file. */
#define HAVE_ERR_H 1
+/* Define to 1 if you have the <execinfo.h> header file. */
+#define HAVE_EXECINFO_H 1
+
/* Defined if __attribute__((fallthrough)) is supported */
#define HAVE_FALLTHROUGH 1
@@ -149,7 +152,7 @@
#define PACKAGE_NAME "elfutils"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "elfutils 0.189"
+#define PACKAGE_STRING "elfutils 0.190"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "elfutils"
@@ -158,7 +161,7 @@
#define PACKAGE_URL "http://elfutils.org/"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.189"
+#define PACKAGE_VERSION "0.190"
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
@@ -195,7 +198,7 @@
#define USE_ZSTD_COMPRESS 1
/* Version number of package */
-#define VERSION "0.189"
+#define VERSION "0.190"
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
index c82a40c..67e88cb 100644
--- a/config/elfutils.spec.in
+++ b/config/elfutils.spec.in
@@ -233,7 +233,7 @@
%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 @@
%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 6e881fa..af5b6bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@
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 @@
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 @@
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 @@
[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 f861eb7..0e4810b 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 ef4d47e..dcf0503 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -248,7 +248,7 @@
/* 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 @@
}
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 @@
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 @@
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 @@
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 @@
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 @@
*usr_path = sec_path;
else
free (sec_path);
+ update_atime(fd);
rc = sec_fd;
goto out2;
}
@@ -1098,6 +1124,7 @@
}
}
/* Success!!!! */
+ update_atime(fd);
rc = fd;
goto out;
}
@@ -1110,7 +1137,7 @@
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 @@
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 @@
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 @@
{
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 @@
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 @@
}
} 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 @@
#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 99b1f2b..c11aeda 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -44,6 +44,12 @@
}
#endif
+#ifdef HAVE_EXECINFO_H
+extern "C" {
+#include <execinfo.h>
+}
+#endif
+
extern "C" {
#include "printversion.h"
#include "system.h"
@@ -85,6 +91,7 @@
#include <cstring>
#include <vector>
#include <set>
+#include <unordered_set>
#include <map>
#include <string>
#include <iostream>
@@ -94,6 +101,7 @@
#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 @@
// 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 @@
// 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 @@
"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 @@
"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 @@
// 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 @@
{ "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 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 @@
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 @@
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 @@
{
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 @@
////////////////////////////////////////////////////////////////////////
+// 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 @@
////////////////////////////////////////////////////////////////////////
+
+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 @@
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 @@
}
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 @@
// 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 @@
}
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 @@
}
+// 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 @@
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 @@
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 @@
.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 @@
<< " 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 @@
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 @@
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 @@
// 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 @@
}
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 @@
.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 @@
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 @@
.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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
catch (const reportable_exception& e)
{
e.report(clog);
+ any_exceptions = true;
}
if (verbose > 2)
@@ -3481,6 +3680,7 @@
<< " 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 @@
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 @@
// 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 @@
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 @@
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 @@
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 @@
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 @@
// 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 @@
{
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 @@
}
+// 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 @@
(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 @@
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 @@
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 @@
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 @@
}
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 db5a842..87de4f0 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 07cb01a..4f1f04b 100644
--- a/doc/debuginfod.8
+++ b/doc/debuginfod.8
@@ -172,7 +172,10 @@
.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 @@
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 @@
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:
-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:
+.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 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 @@
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 @@
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 0000000..6149c21
--- /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 78a5c4f..feb079d 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 4154b32..6811aa5 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 @@
#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 406310e..b19fc80 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 92d76d2..323a91d 100644
--- a/libdw/dwarf_begin_elf.c
+++ b/libdw/dwarf_begin_elf.c
@@ -67,6 +67,8 @@
[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 @@
[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 @@
{
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 @@
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 @@
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 @@
}
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 8dd075c..e51d5dd 100644
--- a/libdw/dwarf_end.c
+++ b/libdw/dwarf_end.c
@@ -144,7 +144,8 @@
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 0ef3b0e..543567d 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_getaranges.c b/libdw/dwarf_getaranges.c
index de5b81b..27439d3 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 @@
&& 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 @@
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 fd92966..a3a7888 100644
--- a/libdw/dwarf_getmacros.c
+++ b/libdw/dwarf_getmacros.c
@@ -124,17 +124,24 @@
= 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 @@
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 @@
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 @@
.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 3b1794b..11c587a 100644
--- a/libdw/dwarf_macro_getsrcfiles.c
+++ b/libdw/dwarf_macro_getsrcfiles.c
@@ -36,6 +36,9 @@
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 @@
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 cc902c9..f12e6f9 100644
--- a/libdw/dwarf_macro_param2.c
+++ b/libdw/dwarf_macro_param2.c
@@ -44,12 +44,21 @@
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 520f9ff..b853e4b 100644
--- a/libdw/dwarf_ranges.c
+++ b/libdw/dwarf_ranges.c
@@ -489,10 +489,10 @@
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 5cbdc27..aef4226 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -82,6 +82,8 @@
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 @@
/* 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 @@
/* Prototype table. */
typedef struct
{
+ Dwarf *dbg;
+
/* Offset of .debug_macro section. */
Dwarf_Off offset;
@@ -526,7 +534,8 @@
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 @@
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 a22e7bc..533f807 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 daef282..abbf0df 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 221d726..c4d872d 100644
--- a/libdwfl/dwfl_module.c
+++ b/libdwfl/dwfl_module.c
@@ -119,7 +119,7 @@
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 9ba499b..6f98c02 100644
--- a/libdwfl/dwfl_module_getdwarf.c
+++ b/libdwfl/dwfl_module_getdwarf.c
@@ -1362,11 +1362,14 @@
}
/* 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/gzip.c b/libdwfl/gzip.c
index 53013be..002afc4 100644
--- a/libdwfl/gzip.c
+++ b/libdwfl/gzip.c
@@ -227,7 +227,7 @@
#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 cdc528d..b3dfea1 100644
--- a/libdwfl/libdwflP.h
+++ b/libdwfl/libdwflP.h
@@ -186,7 +186,7 @@
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 06d85eb..76f2335 100644
--- a/libdwfl/link_map.c
+++ b/libdwfl/link_map.c
@@ -331,11 +331,17 @@
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 e090b42..e9ab0cc 100644
--- a/libdwfl/offline.c
+++ b/libdwfl/offline.c
@@ -50,10 +50,11 @@
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 @@
/* 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 2008b95..ade25d4 100644
--- a/libebl/eblsectiontypename.c
+++ b/libebl/eblsectiontypename.c
@@ -61,7 +61,8 @@
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 8cc3c53..0e314ab 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 aabce43..3402863 100644
--- a/libelf/Makefile.am
+++ b/libelf/Makefile.am
@@ -41,7 +41,7 @@
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 da41bad..7b4a8fe 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 @@
#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 @@
/* 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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 982a614..4159130 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 0000000..04d47e7
--- /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 6c06e5e..3594e8b 100644
--- a/libelf/elf32_updatenull.c
+++ b/libelf/elf32_updatenull.c
@@ -256,6 +256,9 @@
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 @@
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 e3ecab3..0ad6a32 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
@@ -523,10 +524,20 @@
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 @@
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 5c451f3..80f4d13 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->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 @@
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 @@
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 5ebd270..7c3ac04 100644
--- a/libelf/elf_getdata.c
+++ b/libelf/elf_getdata.c
@@ -582,4 +582,18 @@
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 5a35ccd..05ff329 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 @@
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 @@
if (rawchunk == NULL)
{
nomem:
+ tdelete (&key, &elf->state.elf.rawchunks, &chunk_compare);
__libelf_seterrno (ELF_E_NOMEM);
goto out;
}
@@ -122,6 +147,7 @@
!= 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 @@
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 d6bdf15..ec731f7 100644
--- a/libelf/elf_newscn.c
+++ b/libelf/elf_newscn.c
@@ -94,9 +94,9 @@
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 6ec534a..8296bb6 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 @@
/* 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 7a3c87a..1847021 100644
--- a/libelf/gelf.h
+++ b/libelf/gelf.h
@@ -82,6 +82,9 @@
/* 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 493d791..63bcbae 100644
--- a/libelf/gelf_fsize.c
+++ b/libelf/gelf_fsize.c
@@ -69,7 +69,8 @@
[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 d8ad063..749da1a 100644
--- a/libelf/gelf_xlate.c
+++ b/libelf/gelf_xlate.c
@@ -204,7 +204,8 @@
[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 3c0e4bf..d5511c3 100644
--- a/libelf/gelf_xlate.h
+++ b/libelf/gelf_xlate.h
@@ -36,6 +36,7 @@
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 2374a48..d3f057b 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 @@
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 @@
/* 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 10dc505..25760bc 100644
--- a/libelf/libelf.map
+++ b/libelf/libelf.map
@@ -50,7 +50,6 @@
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 6624f38..ed061ab 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_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 @@
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 @@
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 @@
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 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 @@
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-ignore-really-large-discriminator.patch b/patches/libdw-ignore-really-large-discriminator.patch
deleted file mode 100644
index d18b7e9..0000000
--- 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/po/de.po b/po/de.po
index 1e55248..47acd74 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,7 +11,7 @@
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 @@
"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 @@
#: 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 @@
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 @@
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 @@
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 @@
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 @@
"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 @@
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 @@
#. 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
-#, c-format
-msgid ""
-"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
-msgstr ""
-
-#: src/elflint.c:3484
-#, c-format
-msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
-msgstr ""
-
-#: src/elflint.c:3496
-#, c-format
-msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
-msgstr ""
-
#: src/elflint.c:3513
#, c-format
msgid ""
-"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
+"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
#: src/elflint.c:3522
#, c-format
+msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
+msgstr ""
+
+#: src/elflint.c:3534
+#, c-format
+msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
+msgstr ""
+
+#: src/elflint.c:3551
+#, c-format
+msgid ""
+"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
+msgstr ""
+
+#: 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4460,32 +4455,32 @@
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 @@
msgstr[0] ""
msgstr[1] ""
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, c-format
msgid ""
"\n"
@@ -4511,48 +4506,48 @@
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 @@
#. 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 @@
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 @@
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"
+#: src/readelf.c:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
msgstr ""
-#: src/readelf.c:2686
-#, c-format
-msgid "bad dynamic symbol"
-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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"%#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 @@
" [ 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 @@
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 @@
" [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 @@
" 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 @@
"%<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 @@
"%<PRIu8>, Offset size: %<PRIu8>\n"
msgstr ""
-#: src/readelf.c:8249
+#: src/readelf.c:8592
#, c-format
msgid ""
"\n"
@@ -5299,13 +5299,13 @@
"\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 @@
"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 @@
#. 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 @@
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 @@
" 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 @@
"%#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 @@
"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 @@
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 @@
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 @@
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 @@
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr ""
diff --git a/po/es.po b/po/es.po
index 472a6b7..3736209 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@
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 @@
"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 @@
#: 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 @@
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 @@
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 @@
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 @@
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
#. 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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"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 @@
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 @@
"Encabezamiento ELF:\n"
" Mágico: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4552,125 +4546,125 @@
"\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 @@
" Í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 @@
"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 @@
"[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 @@
"[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 @@
" 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 @@
" 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 @@
"\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 @@
"\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 @@
" 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 @@
" 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 @@
"\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 @@
#. 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 @@
"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 @@
"\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:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2686
-#, c-format
-msgid "bad dynamic symbol"
-msgstr "símbolo dinámico erróneo"
-
-#: 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 @@
" 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 @@
" 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 @@
" 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 @@
" 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 @@
" 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 @@
" 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 @@
"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 @@
" 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 @@
"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 @@
"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 @@
"\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 @@
"\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 @@
"\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 @@
" 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 @@
"\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 @@
"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 @@
"\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 @@
"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 @@
"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 @@
" 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 @@
" 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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"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 @@
"\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 @@
"\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 @@
#. 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 @@
" %*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 @@
"\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 @@
"\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 @@
"\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 @@
" 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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"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 @@
"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 @@
"\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 @@
"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 @@
"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 @@
"\n"
"sección [%lu] no existe"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6425,12 +6448,12 @@
"\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 @@
"\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 @@
"\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 @@
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 @@
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 @@
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 @@
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr ""
@@ -7507,6 +7530,12 @@
msgid "Show instances of inlined functions"
msgstr ""
+#, c-format
+#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
+#~ msgstr ""
+#~ "Sección [%2d] '%s': tamaño de entrada de sección no coincide con "
+#~ "ElfXX_Rela\n"
+
#, fuzzy, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "no se pueden obtener datos de sección: %s"
diff --git a/po/ja.po b/po/ja.po
index 9e4e554..bca8f29 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@
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 @@
"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 @@
#: 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 @@
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 @@
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 @@
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 @@
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 @@
"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 @@
"圧縮(展開)する セクション名。 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 @@
"る"
#. 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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"クス用に使われる 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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
#. 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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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 @@
"セクション [%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
-#, c-format
-msgid ""
-"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
-msgstr ""
-
-#: src/elflint.c:3484
-#, c-format
-msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
-msgstr ""
-
-#: src/elflint.c:3496
-#, c-format
-msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
-msgstr ""
-
#: src/elflint.c:3513
#, c-format
msgid ""
-"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
+"section [%2d] '%s': offset %zu: zero length field in attribute section\n"
msgstr ""
#: src/elflint.c:3522
#, c-format
+msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n"
+msgstr ""
+
+#: src/elflint.c:3534
+#, c-format
+msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n"
+msgstr ""
+
+#: src/elflint.c:3551
+#, c-format
+msgid ""
+"section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n"
+msgstr ""
+
+#: 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"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 @@
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 @@
"ELF ヘッダー:\n"
" マジック: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4279,123 +4273,123 @@
"\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 @@
" セクションヘッダー文字列テーブル索引: 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 @@
" セクションヘッダー文字列テーブル索引: %<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 @@
"オフセット %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 @@
"[番] 名前 タイプ アドレス オフセ 大きさ 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 @@
"[番] 名前 タイプ アドレス オフセ 大きさ 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 @@
" タイプ オフセ 仮想アドレス 物理アドレス ファイル量メモ"
"量 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 @@
" セクションからセグメントへのマッビング:\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 @@
"署名 '%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 @@
"署名 '%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 @@
" アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: "
"[%2u] '%s'\n"
-#: src/readelf.c:1880
+#: src/readelf.c:1902
#, fuzzy, c-format
#| msgid ""
#| "\n"
@@ -4599,42 +4593,42 @@
" アドレス: %#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 @@
"\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 @@
#. 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 @@
"オフセット %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 @@
"\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:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2686
-#, c-format
-msgid "bad dynamic symbol"
-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 @@
" アドレス: %#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 @@
" アドレス: %#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 @@
" アドレス: %#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 @@
" アドレス: %#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 @@
" テストの平均数: 検索成功: %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 @@
" ビットマスクの大きさ: %zu バイト %<PRIuFAST32>%% ビット設定 第2ハッシュシフ"
"ト: %u\n"
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -4915,7 +4914,7 @@
"オフセット %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 @@
" ライブラリー タイムスタンプ チェックサム バー"
"ジョン フラグ"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -4934,107 +4933,107 @@
"オフセット %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 @@
"オフセット %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 @@
"\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 @@
"\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 @@
"オフセット %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 @@
"\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 @@
"\n"
"オフセット %3$#<PRIx64> の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n"
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
@@ -5303,65 +5302,65 @@
"\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 @@
"オフセット %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 @@
" バージョン: %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 @@
" バージョン: %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 @@
" バージョン: %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 @@
"\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 @@
"\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 @@
"\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 @@
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:8941
+#: src/readelf.c:9284
#, fuzzy
msgid " Entry Dir Time Size Name"
msgstr ""
@@ -5545,7 +5544,7 @@
"ファイル名テーブル:\n"
" Entry Dir 時刻 大きさ 名前"
-#: src/readelf.c:8987
+#: src/readelf.c:9330
#, fuzzy
msgid ""
"\n"
@@ -5554,7 +5553,7 @@
"\n"
"行 番号 文:"
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5562,129 +5561,129 @@
"\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 @@
#. 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 @@
# # "オフセット %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 @@
" %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 @@
"\n"
"呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
@@ -5841,22 +5840,22 @@
"\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 @@
"\n"
" 呼出しサイトテーブル:"
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -5877,12 +5876,12 @@
" 離着陸場: %#<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 @@
"オフセット %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 @@
"オフセット %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 @@
"オフセット %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 @@
"オフセット %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 @@
"\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 @@
"\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 @@
"オフセット %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 @@
"\n"
"オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n"
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, fuzzy, c-format
msgid ""
"\n"
@@ -6023,12 +6046,12 @@
"\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 @@
"オフセット %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 @@
"オフセット %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 @@
"\n"
"セクション [%Zu] '%s' にはダンプすべきデータがありません。\n"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, fuzzy, c-format
msgid ""
"\n"
@@ -6068,7 +6091,7 @@
"オフセット %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 @@
"オフセット %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 @@
"\n"
"セクション [%lu] がありません"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6097,12 +6120,12 @@
"\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 @@
"\n"
"アーカイブ '%s' にはシンボル索引がありません\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
@@ -6120,12 +6143,12 @@
"\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 @@
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 @@
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 @@
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 @@
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr ""
@@ -7139,6 +7162,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"
+
#, fuzzy, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "セクションデータを割り当てられません: %s"
diff --git a/po/pl.po b/po/pl.po
index 31ee867..a8bf8ce 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@
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 @@
"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 @@
#: 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 @@
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 @@
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 @@
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 @@
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 @@
"„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 @@
"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 @@
"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 @@
"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 @@
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
#. 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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
"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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"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 @@
"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 @@
"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 @@
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 @@
"Nagłówek ELF:\n"
" Magic: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4498,123 +4493,123 @@
"\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 @@
" 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 @@
" 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 @@
"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 @@
"[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 @@
"[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 @@
" 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 @@
" 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 @@
"\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 @@
"\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 @@
" 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 @@
" 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 @@
"\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 @@
#. 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 @@
"\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 @@
"\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[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:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2686
-#, c-format
-msgid "bad dynamic symbol"
-msgstr "błędny symbol dynamiczny"
-
-#: 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 @@
" 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 @@
" 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 @@
"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 @@
" 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 @@
" Ś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 @@
" 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 @@
"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 @@
" Biblioteka Czas Suma k. Wersja "
"Flagi"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -5254,107 +5254,107 @@
"\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 @@
"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 @@
"\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 @@
"\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 @@
"\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 @@
" [%*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 @@
"\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 @@
"\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 @@
" 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 @@
"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 @@
" %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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"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 @@
"%<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 @@
" 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 @@
" 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 @@
"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 @@
"\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[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 @@
"\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 @@
"\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 @@
"\n"
"Brak instrukcji numerów wierszy."
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5896,129 +5896,129 @@
"\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 @@
#. 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[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 @@
" %*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 @@
"\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 @@
"\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 @@
"\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 @@
" 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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"\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 @@
"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 @@
"\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 @@
"\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 @@
"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 @@
"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 @@
"\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 @@
"\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 @@
"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 @@
"\n"
"sekcja [%lu] nie istnieje"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6424,12 +6452,12 @@
"\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 @@
"\n"
"Archiwum „%s” nie ma indeksu symboli\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
@@ -6447,12 +6475,12 @@
"\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 @@
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 @@
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 @@
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 @@
"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 @@
msgstr "Wyświetla wystąpienia wstawionych funkcji"
#, c-format
+#~ msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n"
+#~ msgstr ""
+#~ "sekcja [%2d] „%s”: rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n"
+
+#, c-format
#~ msgid "cannot get .debug_addr section data: %s"
#~ msgstr "nie można uzyskać danych sekcji .debug_addr: %s"
diff --git a/po/uk.po b/po/uk.po
index 0d0609a..86f43dd 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@
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 @@
"початкових кодах. Умовами ліцензування програми НЕ передбачено жодних "
"гарантій, зокрема гарантій працездатності або придатності для певної мети.\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 @@
#: 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 @@
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 @@
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 @@
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 @@
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 @@
"назва — «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 @@
"назва РОЗДІЛу для розпакування або стискання, РОЗДІЛ є розширеним взірцем із "
"замінниками (типове значення -- «.?(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 @@
"Примусове стискання розділу, навіть якщо він стане більшим, або оновлення чи "
"перезапис файла, навіть якщо жодного розділу не буде розпаковано або стиснено"
-#: 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 @@
"певної міри неправильним"
#. 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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"відповідає 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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
#. 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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ хешу [%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 @@
"виявлено посилання на символ %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 @@
"виявлено посилання на символ %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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"кількість записів у розділі [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"нульовий розділ має ненульове значення розміру, хоча заголовок 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 @@
"нульовий розділ має ненульове значення компонування, хоча у заголовку 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 @@
"нульовий розділ має ненульове значення компонування, хоча у заголовку 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 @@
"розділ [%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 @@
"у розділ [%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 @@
"у розділі [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"розділ [%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 @@
"придатний до завантаження сегмент [%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 @@
"немає розділу .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 @@
"розділ [%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 @@
"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 @@
"розділ [%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 @@
"заголовки програм можуть бути лише у виконуваних файлів, об’єктних файлів "
"спільного використання або файлів 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 @@
"прапорці 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 @@
"запис заголовка програми %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 @@
"виконуваний модуль/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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"Використовується з -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 @@
"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 @@
"розпакувати розділ до створення дампу даних (якщо використано з -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 @@
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 @@
"Заголовок ELF:\n"
" Magic: "
-#: src/readelf.c:1112
+#: src/readelf.c:1134
#, c-format
msgid ""
"\n"
@@ -4520,123 +4514,123 @@
"\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 @@
" Індекс заголовка розділу у таблиці рядків: 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 @@
" Індекс заголовка розділу у таблиці рядків: %<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 @@
"Виявлено %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 @@
"[№ ] Назва Тип Адр Змі Розмір 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 @@
"[№ ] Назва Тип Адр Змі Розмір 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 @@
" Тип Зміщен ВіртАдр ФізАдр "
"РозмФайлРозмПам Пра Вирів"
-#: 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 @@
" Відображення розділів на сегмент:\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 @@
"\n"
"Група розділів COMDAT [%2zu] «%s» з підписом «%s» містить %zu записів:\n"
-#: src/readelf.c:1646
+#: src/readelf.c:1668
#, c-format
msgid ""
"\n"
@@ -4785,32 +4779,32 @@
"\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 @@
"Динамічний сегмент містить %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 @@
"Динамічний сегмент містить %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 @@
"\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 @@
#. 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 @@
"\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 @@
"\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[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:3002
+msgid "Dynamic symbol information is not available for displaying symbols."
+msgstr ""
-#: src/readelf.c:2686
-#, c-format
-msgid "bad dynamic symbol"
-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 @@
"Розділ потреби у версіях [%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 @@
"Розділ визначення версії [%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 @@
"Розділ символів версій [%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 @@
"блоками):\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 @@
" Середня кількість тестів: успішний пошук: %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 @@
" Розмір бітової маски: %zu байтів %<PRIuFAST32>%% встановлених бітів зсув "
"2-го хешу: %u\n"
-#: src/readelf.c:3624
+#: src/readelf.c:3955
#, c-format
msgid ""
"\n"
@@ -5241,7 +5240,7 @@
"Розділ списку бібліотек [%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 @@
" Бібліотека Часовий штамп Версія суми "
"Прапорці"
-#: src/readelf.c:3698
+#: src/readelf.c:4029
#, c-format
msgid ""
"\n"
@@ -5260,107 +5259,107 @@
"Розділ атрибутів об’єктів [%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 @@
"Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n"
" [ Код]\n"
-#: src/readelf.c:5323
+#: src/readelf.c:5666
#, c-format
msgid ""
"\n"
@@ -5380,20 +5379,20 @@
"\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 @@
"\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 @@
"\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 @@
" [%*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 @@
"\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 @@
"\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 @@
" Розмір сегмента: %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 @@
"Таблиця за зміщенням 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 @@
" %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 @@
"\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 @@
"\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 @@
"\n"
"Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#<PRIx64>:\n"
-#: src/readelf.c:6896
+#: src/readelf.c:7239
#, c-format
msgid ""
"\n"
@@ -5646,65 +5645,65 @@
"\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 @@
"Розділ 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 @@
"%<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 @@
" Версія: %<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 @@
" Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, "
"Зміщення: %<PRIu8>\n"
-#: src/readelf.c:8249
+#: src/readelf.c:8592
#, c-format
msgid ""
"\n"
@@ -5797,13 +5796,13 @@
"Розділ 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 @@
"\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[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 @@
"\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 @@
"\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 @@
"\n"
"Оператори номерів рядків:"
-#: src/readelf.c:8991
+#: src/readelf.c:9334
msgid ""
"\n"
"Line number statements:"
@@ -5906,129 +5905,129 @@
"\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 @@
#. 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[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 @@
" %*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 @@
"\n"
"Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n"
-#: src/readelf.c:10981
+#: src/readelf.c:11324
#, c-format
msgid ""
"\n"
@@ -6184,22 +6183,22 @@
"\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 @@
"\n"
" Таблиця місця виклику:"
-#: src/readelf.c:11064
+#: src/readelf.c:11407
#, c-format
msgid ""
" [%4u] Call site start: %#<PRIx64>\n"
@@ -6220,12 +6219,12 @@
" Місце застосування: %#<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 @@
"\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 @@
"\n"
" Список CU зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:11278
+#: src/readelf.c:11633
#, c-format
msgid ""
"\n"
@@ -6282,7 +6287,7 @@
"\n"
" Список TU зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:11307
+#: src/readelf.c:11662
#, c-format
msgid ""
"\n"
@@ -6291,7 +6296,7 @@
"\n"
" Список адрес зі зміщенням %#<PRIx32> містить %zu записів:\n"
-#: src/readelf.c:11339
+#: src/readelf.c:11705
#, c-format
msgid ""
"\n"
@@ -6300,18 +6305,40 @@
"\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 @@
"\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 @@
"Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням "
"%#0<PRIx64>:\n"
-#: src/readelf.c:12845
+#: src/readelf.c:13254
#, c-format
msgid ""
"\n"
@@ -6353,7 +6380,7 @@
"\n"
"Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12892
+#: src/readelf.c:13301
#, c-format
msgid ""
"\n"
@@ -6362,12 +6389,12 @@
"\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 @@
"\n"
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12929
+#: src/readelf.c:13338
#, c-format
msgid ""
"\n"
@@ -6387,7 +6414,7 @@
"Шіст. дамп розділу [%zu] «%s», %<PRIu64> байтів (%zd нестиснено) за "
"зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12943
+#: src/readelf.c:13352
#, c-format
msgid ""
"\n"
@@ -6396,7 +6423,7 @@
"\n"
"У розділі [%zu] «%s» не міститься рядків для створення дампу.\n"
-#: src/readelf.c:12975
+#: src/readelf.c:13384
#, c-format
msgid ""
"\n"
@@ -6405,7 +6432,7 @@
"\n"
"Розділ рядків [%zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n"
-#: src/readelf.c:12980
+#: src/readelf.c:13389
#, c-format
msgid ""
"\n"
@@ -6416,7 +6443,7 @@
"Рядок розділу [%zu] «%s» містить %<PRIu64> байти (%zd нестиснено) на "
"зміщенні %#0<PRIx64>:\n"
-#: src/readelf.c:13028
+#: src/readelf.c:13437
#, c-format
msgid ""
"\n"
@@ -6425,7 +6452,7 @@
"\n"
"розділу [%lu] не існує"
-#: src/readelf.c:13058
+#: src/readelf.c:13467
#, c-format
msgid ""
"\n"
@@ -6434,12 +6461,12 @@
"\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 @@
"\n"
"У архіві «%s» немає покажчика символів\n"
-#: src/readelf.c:13120
+#: src/readelf.c:13529
#, c-format
msgid ""
"\n"
@@ -6457,12 +6484,12 @@
"\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 @@
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 @@
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 @@
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 @@
"section PATH SECTION-NAME\n"
msgstr ""
-#: tests/backtrace.c:483
+#: tests/backtrace.c:491
msgid "Run executable"
msgstr "Запустити виконуваний файл"
@@ -7555,6 +7582,11 @@
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 f7252a4..83d43a2 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 c26dafd..ae62f4e 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 6cc019d..d3d9d40 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,7 +27,7 @@
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 @@
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 @@
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 18ade66..f771b92 100644
--- a/src/elfcompress.c
+++ b/src/elfcompress.c
@@ -529,30 +529,33 @@
}
}
- 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 dd42dcb..864de71 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 @@
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 @@
}
}
+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 @@
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 @@
{ ".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 @@
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 6950204..decfaf1 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_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_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 @@
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 @@
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 @@
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 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 @@
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 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 @@
_("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 @@
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 @@
/* 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 @@
Num: Value Size Type Bind Vis Ndx Name\n"),
stdout);
- for (unsigned int cnt = 0; cnt < nsyms; ++cnt)
+ process_symtab(ebl, nsyms, shdr->sh_link, verneed_stridx, verdef_stridx,
+ data, versym_data, NULL, verneed_data, verdef_data, xndx_data);
+ return true;
+}
+
+
+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)
{
- 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);
-
- 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)",
- 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",
- elf_strptr (ebl->elf, verdef_stridx,
- verdaux->vda_name));
- }
- }
- }
- }
-
- putchar_unlocked ('\n');
+ phdr = gelf_getphdr (ebl->elf, i, &phdr_mem);
+ if (phdr->p_type == PT_DYNAMIC)
+ break;
}
+ if (phdr == NULL)
+ return false;
+
+ 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);
+
+ size_t syments = 0;
+
+ GElf_Ehdr ehdr_mem;
+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem);
+
+ if (offs[i_hash] != 0)
+ {
+ /* In the original format, .hash says the size of .dynsym. */
+
+ 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. */
+
+ 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));
+
+ if (syments <= 0 || offs[i_strtab] == 0 || offs[i_symtab] == 0)
+ {
+ error_exit (0, _ ("Dynamic symbol information is not available for "
+ "displaying symbols."));
+ }
+
+ /* 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;
+
+ 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 @@
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 @@
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 @@
// 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 @@
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 @@
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 @@
}
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 0000000..3c7afdc
--- /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 2a2cc80..7f4788b 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -2543,8 +2543,7 @@
{
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 @@
{
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 @@
{
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 eb3e111..d97749f 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 fd58bf8..7fb8efb 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -61,7 +61,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 c1b0fa8..a4e4203 100644
--- a/tests/addsections.c
+++ b/tests/addsections.c
@@ -153,8 +153,8 @@
size_t bufsz;
if (sec_size == 0)
{
- buf = strdup ("extra");
- bufsz = strlen ("extra") + 1;
+ buf = "";
+ bufsz = 1;
}
else
{
@@ -293,7 +293,8 @@
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 afc12fb..5555530 100644
--- a/tests/backtrace.c
+++ b/tests/backtrace.c
@@ -90,6 +90,14 @@
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 ac70248..8381d42 100644
--- a/tests/dwarf-getmacros.c
+++ b/tests/dwarf-getmacros.c
@@ -82,6 +82,8 @@
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 @@
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 @@
}
}
+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 0000000..dc32e7a
--- /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 0000000..1f06e07
--- /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 0000000..d47a90e
--- /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 0000000..b563d9d
--- /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 0000000..631b7bb
--- /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 3ca31b8..da6b25c 100755
--- a/tests/run-debuginfod-extraction.sh
+++ b/tests/run-debuginfod-extraction.sh
@@ -32,7 +32,7 @@
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_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 3d71624..60fe69c 100755
--- a/tests/run-debuginfod-federation-metrics.sh
+++ b/tests/run-debuginfod-federation-metrics.sh
@@ -191,7 +191,8 @@
# 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 d932152..6b09007 100755
--- a/tests/run-debuginfod-federation-sqlite.sh
+++ b/tests/run-debuginfod-federation-sqlite.sh
@@ -157,7 +157,9 @@
# 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 2f551ff..d2cdfd6 100755
--- a/tests/run-debuginfod-query-retry.sh
+++ b/tests/run-debuginfod-query-retry.sh
@@ -26,7 +26,7 @@
# 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 8cb7b84..fbb6a48 100755
--- a/tests/run-debuginfod-response-headers.sh
+++ b/tests/run-debuginfod-response-headers.sh
@@ -78,8 +78,8 @@
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 @@
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 762a5d9..88c6270 100755
--- a/tests/run-lfs-symbols.sh
+++ b/tests/run-lfs-symbols.sh
@@ -42,13 +42,13 @@
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 d19007f..042a51c 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 fcbc3c5..cd437f5 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 @@
[ 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 f598459..de528d5 100755
--- a/tests/run-readelf-self.sh
+++ b/tests/run-readelf-self.sh
@@ -23,4 +23,4 @@
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 0000000..0e64dd2
--- /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 0000000..55fa74d
--- /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 0000000..239c34d
--- /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 0000000..68ed4cc
--- /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 02e626a..0000000
--- 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 b262177..cbbcf6c 100755
--- a/tests/run-varlocs.sh
+++ b/tests/run-varlocs.sh
@@ -206,7 +206,7 @@
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 @@
[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 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 @@
[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 @@
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 @@
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 @@
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 0000000..c4d55ce
--- /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 0000000..5a0e4e7
--- /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
similarity index 64%
rename from tests/run-copymany-sections.sh
rename to tests/test-copymany-subr.sh
index 84c052c..054103b 100755
--- a/tests/run-copymany-sections.sh
+++ b/tests/test-copymany-subr.sh
@@ -35,12 +35,13 @@
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 @@
# A collection of random testfiles to test 32/64bit, little/big endian
# and non-ET_REL (with phdrs)/ET_REL (without phdrs).
-# Try to add 0xffff sections twice.
+# Try to add 0x0fff sections twice.
-# 32bit, big endian, rel
-testfiles testfile29
-test_copy_and_add testfile29
-test_copy_and_add testfile29.copy
-
-# 64bit, big endian, rel
-testfiles testfile23
-test_copy_and_add testfile23
-test_copy_and_add testfile23.copy
-
-# 32bit, little endian, rel
-testfiles testfile9
-test_copy_and_add testfile9
-test_copy_and_add testfile9.copy
-
-# 64bit, little endian, rel
-testfiles testfile38
-test_copy_and_add testfile38
-test_copy_and_add testfile38.copy
-
-# 32bit, big endian, non-rel
-testfiles testfile26
-test_copy_and_add testfile26
-test_copy_and_add testfile26.copy
-
-# 64bit, big endian, non-rel
-testfiles testfile27
-test_copy_and_add testfile27
-test_copy_and_add testfile27.copy
-
-# 32bit, little endian, non-rel
-testfiles testfile
-test_copy_and_add testfile
-test_copy_and_add testfile.copy
-
-# 64bit, little endian, non-rel
-testfiles testfile10
-test_copy_and_add testfile10
-test_copy_and_add testfile10.copy
-
-exit 0
+# Separated out into subtests
+# run-copymany-be32.sh run-copymany-be64.sh
+# run-copymany-le32.sh run-copymany-le64.sh
diff --git a/tests/testfilegdbindex9-no-maininfo.bz2 b/tests/testfilegdbindex9-no-maininfo.bz2
new file mode 100755
index 0000000..043b8d3
--- /dev/null
+++ b/tests/testfilegdbindex9-no-maininfo.bz2
Binary files differ
diff --git a/tests/testfilegdbindex9.bz2 b/tests/testfilegdbindex9.bz2
new file mode 100755
index 0000000..9a2c189
--- /dev/null
+++ b/tests/testfilegdbindex9.bz2
Binary files differ
diff --git a/version.h b/version.h
index 5d86cd9..f3e0b00 100644
--- a/version.h
+++ b/version.h
@@ -30,7 +30,7 @@
#ifndef _ELFUTILS_VERSION_H
#define _ELFUTILS_VERSION_H 1
-#define _ELFUTILS_VERSION 189
+#define _ELFUTILS_VERSION 190
#define _ELFUTILS_PREREQ(major, minor) \
(_ELFUTILS_VERSION >= ((major) * 1000 + (minor)))